Compare commits

...
Author SHA1 Message Date
Martin Kroeker caf674f0d2 Revert "Avoid memory corruption with non-finite inputs in ?GEEV" 2025-06-26 16:41:21 +02:00
langou 49ff1770ef Merge pull request #1139 from angsch/issue-1132
Adjust line reflow in LA_GEAM for ILP64 build
2025-06-24 12:33:01 -06:00
Angelika Schwarz ea67169477 Adjust line reflow in LA_GEAM for ILP64 build 2025-06-24 19:25:39 +02:00
langou 52a9434793 Merge pull request #1116 from weslleyspereira/try-new-icamax
Adds new icamax with exception handling
2025-06-16 07:11:37 -06:00
langou 14df73a8c6 Merge pull request #1135 from langou/try___fix_cunmlq_zunmlq_in_LAPACKE 2025-06-13 20:29:33 -06:00
langou 18587a4169 Merge pull request #1124 from grisuthedragon/fix-const-cblas
Fix const qualifier warnings in CBLAS
2025-06-13 17:51:02 -06:00
langou fd138de5e5 Merge pull request #1129 from martin-frbg/issue1128
Avoid memory corruption with non-finite inputs in ?GEEV
2025-06-13 17:48:29 -06:00
Julien Langou 709a34bb95 Fix #1134 - Bug in Reference LAPACKE’s cunmlq and zunmlq for row-major layout and side right
Bug reported by @neil-lindquist. Thanks Neil!

On line 93 of both lapacke_cunmlq_work.c and lapacke_zunmlq_work.c, m is passed
to LAPACKE_zge_trans as the 2nd dimension. However, the 2nd dimension should be
r to handle side right correctly. All the other versions of {or,un}m{qr,lq} seem
to be correct.

Also line 52 of lapacke_cunmlq.c and lapacke_zunmlq.c have the same issue: m is
used for the column dimension instead of r. (Those files also do not currently
compute r). The real valued cases have the correct behavior.
2025-06-13 17:40:01 -06:00
langou 8b24458ab6 Merge pull request #1133 from langou/fix_1127__missing_external_declartion_in_larf1f_and_larf1l
Fix #1127 - Add some EXTERNAL declaration in xLARF1L and xLARF1F
2025-06-13 17:08:27 -06:00
Julien Langou aed00bf394 Fix #1127 - Add some EXTERNAL declaration in xLARF1L and xLARF1F
Thanks @syx828
2025-06-13 16:15:35 -06:00
langou 8282ae9688 Merge pull request #1130 from angsch/rm-version
Remove hardcoded "version 3.X"
2025-06-13 14:54:49 -06:00
langou 4758c863f5 Merge pull request #1131 from angsch/czgeqp3rk
Fix bypassing corner cases due to uninitialized variable in [c,z]geqp3rk
2025-06-09 19:17:45 -06:00
Angelika Schwarz b5b4661ba8 Fix bypassing corner cases due to uninitialized variable in [c,z]geqp3rk 2025-06-10 01:41:48 +02:00
Angelika Schwarz 1a92dcac7c Remove hardcoded "version 3.X" 2025-06-03 12:28:23 +02:00
langou 2475f7b391 Merge pull request #1126 from ajz34/fix-gesdd-ldvt_1
Fix too strict leading dimension check on LAPACKE_?gesdd_work
2025-05-31 08:32:29 -06:00
Martin Kroeker d72484317a Avoid memory corruption if INFO<0 2025-05-17 15:00:44 +02:00
Martin Kroeker 76ce5053f4 Avoid memory corruption if INFO<0 2025-05-17 14:59:29 +02:00
Martin Kroeker 4ac1c6922e Update dgeev.f 2025-05-17 14:58:27 +02:00
Martin Kroeker 8f2d86aff6 Fix potential memory corruption if INFO<0 2025-05-17 14:52:15 +02:00
ajz34 88f65d66b5 fix ldvt check in ?gesdd 2025-05-12 19:42:53 +08:00
langou b054023bcd Merge pull request #1094 from wdconinc/gelqs-geqrs-work-lwork
?ge(lq|qr)s.f: WORK( LWORK ) -> WORK( * )
2025-05-09 07:49:46 -06:00
Martin Köhler c1c39a8a14 Fixed cast-qual and other warnings in LAPACKE 2025-04-24 10:40:18 +02:00
Martin Köhler 3e9035955f Add typecasts to outputs 2025-04-23 23:38:11 +02:00
Martin Köhler a077ce6f53 Fix warnings in CBLAS testing and examples 2025-04-23 23:27:09 +02:00
Martin Köhler fc067149ee Fix const qualifier for double complex routines 2025-04-23 23:12:05 +02:00
Martin Köhler dbc45f746f Fix const qualifier for float complex routines 2025-04-23 22:40:59 +02:00
langou 72df25ba80 Merge pull request #1117 from weslleyspereira/fix-docs-rotm 2025-04-16 09:36:10 -06:00
langou 3610ceb837 Merge pull request #1119 from dklyuchinskiy/lapack-fix-geev-err-test
fix missed error message in test for eigenvalue driver routines ed
2025-04-07 09:59:21 -06:00
Dmitry Klyuchinsky ea84abe35f fix missed error message in test for eigenvalue driver routines *ed 2025-04-07 11:40:21 +07:00
Weslley da Silva Pereira d70c8c040d Improvements following @angsch's review 2025-03-31 13:32:24 -06:00
Weslley da Silva Pereira e338bb87e1 Change my affiliation in icamax and izamax 2025-03-28 09:24:58 -06:00
Weslley da Silva Pereira e3a48809c8 use /= instead of isnan 2025-03-28 08:23:58 -06:00
Weslley da Silva Pereira 50dc1bf238 Adds new izamax with exception handling 2025-03-27 16:12:17 -06:00
Weslley da Silva Pereira 3c32809d15 Adds disclaimer about non listed values in ROTM 2025-03-27 15:59:40 -06:00
Weslley da Silva Pereira 97bc2e3134 Adds new icamax with exception handling 2025-03-27 15:42:03 -06:00
langou ca82e5ea5c Merge pull request #1111 from zaikunzhang/patch-1
Update README.md
2025-03-07 08:04:20 -07:00
Zaikun ZHANG 39523862cd Update README.md
Fix a typo in README.
2025-03-07 19:02:29 +08:00
langou 6b1827041f Merge pull request #1107 from grisuthedragon/improve-gemmtr-tests
Fix the testsuite of xGEMMTR
2025-02-06 19:00:27 -07:00
Martin Köhler 4c637b8329 Fix the test of xGEMMTR
- make the SRNAME in XERBLA more robust against strings passed from C (e.g. OpenBLAS)
- adjust the maximum length of a function name from 6 to 7 characters
- add a missing parameter in the error output for z/cgemmtr.
2025-02-06 15:20:50 +01:00
langou a00531096f Merge pull request #1101 from julielangou/master
Update Source code to fix issue with links in Doxygen
2025-01-20 23:57:11 -07:00
Julie 59f136760f Update Source code to fix issue with links in Doxygen
Removed \htmlonly and \endhtmlonly (causing links to not work)
Increase DOT_GRAPH_MAX_NODES   to 200
2025-01-20 17:34:06 -08:00
langou 447fd4e784 Merge pull request #1099 from martin-frbg/reflow_lines
Fix line reflow in some of the DEPRECATED sources
2025-01-20 01:02:07 -07:00
Martin Kroeker 3c209c6bdf Fix line reflow on addition of _64 symbol suffix 2025-01-19 22:59:21 +01:00
Martin Kroeker bc0c38f247 Fix line reflow on addition of _64 symbol suffix 2025-01-19 22:58:19 +01:00
Martin Kroeker 304fa305e8 Fix line reflow on addition of _64 symbol suffixes 2025-01-19 22:55:52 +01:00
langou ba83427c03 Merge pull request #1096 from mgates3/docs
updates for doxygen 1.12
2025-01-13 22:43:57 -07:00
Mark Gates 31cd658cbd updates for doxygen 1.12 2025-01-13 15:10:51 -05:00
langou 0799b59571 Merge pull request #1093 from wdconinc/patch-1
dlahrd.f: consistent line reflow for DTRMV calls
2025-01-13 01:27:33 -07:00
langou cf2c4402e9 Merge pull request #1095 from julielangou/master
Updating LAPACK version to 3.12.1
2025-01-13 01:08:10 -07:00
Julie 3e242fc8d5 Updating LAPACK version to 3.12.1 2025-01-12 14:42:24 -08:00
Wouter Deconinck f5103fc3b4 ?ge(lq|qr)s.f: WORK( LWORK ) -> WORK( * ) 2025-01-10 14:32:30 -06:00
Wouter Deconinck 3aa877584b dlahrd.f: consistent line reflow for DTRMV calls 2025-01-10 13:05:28 -06:00
langou 6ec7f2bc4e Merge pull request #1080 from jprhyne/master
Adding a recursive xLARFT
2024-12-03 04:39:11 -07:00
langou 7b4c3a3e10 Merge pull request #1079 from hjjvandam/fix/line_lengths
Fix line lengths for the extended API
2024-12-03 04:38:58 -07:00
langou 1b0c6a7a05 Merge pull request #1081 from jprhyne/gemmtrDoc
Fixing misspelling of 'triangular' in {s,d,c,z}gemmtr.f
2024-12-02 00:12:06 -07:00
langou e7d27c7a6c Merge pull request #1082 from jprhyne/gitignoreModFile
updating gitignore to ignore the mod files when we compile
2024-12-02 00:04:41 -07:00
Johnathan Rhyne 487c60ac55 updating gitignore to ignore the mod files when we compile 2024-12-02 00:04:06 -05:00
Johnathan Rhyne 29dbac94c3 Fixing misspelling of 'triangular' in {s,d,c,z}gemmtr.f 2024-12-01 23:50:10 -05:00
Johnathan Rhyne e9b05ef6e9 Updated variants information as well as fixed trailing line in zlarft 2024-11-30 11:19:15 -05:00
Johnathan Rhyne db48820da7 lowered line length to hopefully fix build failures in the CI 2024-11-30 11:05:04 -05:00
Johnathan Rhyne d4741c8a57 removed all extranous changes 2024-11-30 08:52:03 -05:00
Johnathan Rhyne 273ab49035 removed extranous changes (hopefully x2) 2024-11-30 08:51:18 -05:00
Johnathan Rhyne 354a16f22f Removed mod files and extranous file changes (hopefully) 2024-11-30 08:49:18 -05:00
Hubertus van Dam a6c1dd6ce8 Adding missing entries 2024-11-28 19:39:21 +01:00
Hubertus van Dam 0e4c25b00e Adding extra space for extended API 2024-11-28 15:28:34 +01:00
Hubertus van Dam 37e4061ec4 Add extra space for extended API 2024-11-28 12:41:58 +01:00
Hubertus van Dam 76361efae0 Add extra space for extended API 2024-11-28 12:38:40 +01:00
Hubertus van Dam 97e39473f3 Add extra space for extended API 2024-11-28 12:36:07 +01:00
Hubertus van Dam 494425c908 Add extra space for extended API 2024-11-28 12:29:49 +01:00
Hubertus van Dam 97c7845511 And once more. 2024-11-28 12:23:28 +01:00
Hubertus van Dam 47f3d2ae07 Add extra space for extended API 2024-11-28 12:21:28 +01:00
Hubertus van Dam 3f9b12c4ca The extended API needs extra space for _64
For the extended API subroutine names are extended with _64 (e.g.
CGEGS becomes CGEGS_64). Extra space is needed so that the extension
does not violate Fortran line length conventions.
2024-11-28 12:10:45 +01:00
Johnathan Rhyne dadd80e753 Merge branch 'master' of github.com:jprhyne/lapack 2024-11-22 16:08:42 -07:00
Johnathan Rhyne 2534b59e31 updating documentation to be more descriptive 2024-11-22 16:08:21 -07:00
Johnathan Rhyne 60c66af71b Merge pull request #2 from jprhyne/larft
Merge branch 'Reference-LAPACK:master' into larft
2024-11-22 22:55:35 +00:00
Johnathan Rhyne 3065ee8667 Merge branch 'Reference-LAPACK:master' into larft 2024-11-22 22:54:58 +00:00
Johnathan Rhyne 828db43a7c Merge branch 'Reference-LAPACK:master' into master 2024-11-15 17:25:35 -07:00
langou 9128e2051a Merge pull request #1071 from angsch/scorecard
[Github workflow] Bump scorecard version
2024-11-07 10:32:58 -07:00
Angelika Schwarz 747d971136 [Github workflow] Bump scorecard version 2024-11-06 21:33:00 +01:00
Johnathan Rhyne 46e8388218 Merge branch 'Reference-LAPACK:master' into master 2024-11-03 19:28:18 -07:00
langou 1573c82754 Merge pull request #1069 from angsch/use-gemmtr
Use GEMMTR for SY/HE linear updates
2024-10-26 12:39:30 -07:00
Angelika Schwarz 09cb849a23 Use GEMMTR for SY/HE linear updates 2024-10-25 13:25:02 +02:00
Johnathan Rhyne 1ba075ccd8 updating parameter definition in the single complex version 2024-10-16 11:40:20 -06:00
Johnathan Rhyne b966220510 Merge pull request #1 from jprhyne/larft
Larft
2024-10-16 11:16:44 -06:00
Johnathan Rhyne 298804e738 Merge branch 'Reference-LAPACK:master' into larft 2024-10-16 11:13:40 -06:00
Johnathan Rhyne 13aab4adf0 Merge branch 'Reference-LAPACK:master' into master 2024-10-16 11:09:43 -06:00
Johnathan Rhyne 54956283e2 CAN MERGE: Implemented my version of xlarft with comments added, and moved the previous version into VARIANTS 2024-10-16 11:08:37 -06:00
langou 60618095bc Merge pull request #1062 from schnorr/master
Remove comparison as these conditions are never true
2024-10-15 07:31:51 -07:00
Lucas M. Schnorr a848e1e760 fix environment variable name 2024-10-15 10:10:37 -03:00
Johnathan Rhyne 212270836b DO NOT MERGE: demonstrating changes work 2024-10-14 11:16:34 -06:00
langou d60614e022 Merge pull request #1064 from dklyuchinskiy/lapack-fix-ldb-in-get52
fix leading dimension for matrix B in test routine get52
2024-10-14 08:14:13 -07:00
Johnathan Rhyne 4490848058 Merge branch 'master' of github.com:jprhyne/lapack 2024-10-14 08:08:59 -06:00
Johnathan Rhyne d1f787c82b Merge branch 'master' of github.com:jprhyne/lapack 2024-10-14 08:08:01 -06:00
Dmitry Klyuchinsky 5efeb474ec fix leading dimension for matrix B in test routine get52 2024-10-14 18:52:58 +07:00
Lucas M. Schnorr f04808c2ab remove comparison as these conditions are never true 2024-10-12 01:14:13 -03:00
Weslley S. Pereira fd3985f06b Merge pull request #1045 from martin-frbg/fix_macos_ci
CI: Update the MacOS jobs to use gcc-14 in github workflows
2024-10-02 10:32:50 -06:00
langou db1bcd2186 Merge pull request #1059 from Reference-LAPACK/revert-1058-revert-1046-fixup-1042
Revert "Revert "Add a few forgotten API_SUFFIX wrappers in the recently changed LAPACKE ?TFSM""
2024-10-02 09:26:49 -07:00
Weslley S. Pereira 17e7f9ee22 Revert "Revert "Add a few forgotten API_SUFFIX wrappers in the recently changed LAPACKE ?TFSM"" 2024-10-02 10:01:14 -06:00
Weslley S. Pereira 1ae4bd76ed Merge pull request #1058 from Reference-LAPACK/revert-1046-fixup-1042
Revert "Add a few forgotten API_SUFFIX wrappers in the recently changed LAPACKE ?TFSM"
2024-10-02 09:30:05 -06:00
langou dd627fcb20 Revert "Add a few forgotten API_SUFFIX wrappers in the recently changed LAPACKE ?TFSM" 2024-10-01 09:04:40 -06:00
langou 847c5a0dd3 Merge pull request #1046 from martin-frbg/fixup-1042
Add a few forgotten API_SUFFIX wrappers in the recently changed LAPACKE ?TFSM
2024-10-01 07:33:54 -07:00
langou 4b3d8a4643 Merge pull request #1051 from ilayn/trsyl_real_docs
DOC:trsly3: Add dtrsyl3/strsyl3 grouping statements
2024-09-14 08:06:49 -07:00
Ilhan Polat 4d1f73ccdb DOC:trsly3: Add dtrsyl3/strsyl3 grouping statements 2024-09-14 15:09:24 +02:00
Martin Kroeker 2cbabee96f Merge pull request #1044 from martin-frbg/removec++dependency
Declare project dependency on C to avoid the CMAKE default of C,C++
2024-08-21 14:54:39 +02:00
Martin Kroeker 427a9b4526 Add another missing API_SUFFIX wrapper 2024-08-20 17:16:31 +02:00
Martin Kroeker 9d56cfff6d Add missing API_SUFFIX wrapper 2024-08-20 17:13:38 +02:00
Martin Kroeker 4416581d75 Add missing API_SUFFIX wrapper 2024-08-20 17:12:47 +02:00
Martin Kroeker 8048b74f54 Add missing API_SUFFIX wrapper 2024-08-20 17:11:57 +02:00
Martin Kroeker 04b02f0107 Add missing API_SUFFIX wrapper 2024-08-20 17:11:12 +02:00
Martin Kroeker a7b82edbae Add missing API_SUFFIX wrapper 2024-08-20 17:10:17 +02:00
Martin Kroeker e612c6df83 Add missing API_SUFFIX wrapper 2024-08-20 17:09:17 +02:00
Martin Kroeker 4b85a11e56 Add missing API_SUFFIX wrapper 2024-08-20 17:07:42 +02:00
Martin Kroeker 5c03f73611 add missing API_SUFFIX wrapper 2024-08-20 17:05:15 +02:00
Martin Kroeker 43add02e4f Update to gcc-14 on MacOS following removal of gcc-11 2024-08-20 16:18:12 +02:00
Martin Kroeker 87ffaf9e17 Use gcc-14 on MacOS following removal of gcc-11 2024-08-20 16:16:24 +02:00
Martin Kroeker 9f998c493e Declare dependency on C to avoid the CMAKE default of C,C++ 2024-08-20 15:10:00 +02:00
langou 9c0ef6653d Merge pull request #1040 from haampie/fix/rpath-once-again
Remove CMake < 3 CMP0042 workarounds
2024-08-11 09:16:54 -07:00
langou dd49b19c08 Merge pull request #1042 from sergey-v-kuznetsov/lapacke_tfsm_fixes 2024-08-09 19:21:37 -07:00
sergey-v-kuznetsov 7fd3d47b03 PR contains bug fixes found in ?tfsm 2024-08-09 17:17:35 -07:00
Harmen Stoppels 6411588a72 Remove CMake < 3 CMP0042 workarounds
CMake only sets install names on darwin to `@rpath/<name>` (which is
desired otherwise rpaths don't work at all) when CMP0042 is ON. That's
the default when CMake 3.0 or higher is required. And lapack requires it
already for years: as of v3.9.1
(8f004b353a).

So, delete the old workarounds that effectively set CMP0042 to ON.

Further, delete the following three options that are redefinitions of
builtin with values that are builtin defaults:
- `CMAKE_MACOSX_RPATH`
- `CMAKE_SKIP_BUILD_RPATH`
- `CMAKE_BUILD_WITH_INSTALL_RPATH`

Lastly, lapack automatically sets `CMAKE_INSTALL_RPATH_USE_LINK_PATH` to
`ON` whenever installing to a non-system dir. The assumption is that
whenever you install something to a non-system dir, you need rpaths to
locate dependencies. But this is just an assumption which may or may
not hold. The downside of it is that the option can be annoying when
lapack is used as a sub-project as it affects a global CMake variable
(for example OpenBLAS uses lapack as a sub-project). Instead, let users
or packagers provide this on the command line if they really need it --
remove it from lapack as it's as helpful as it is harmful.
2024-08-07 10:00:00 +02:00
langou 3c351aad41 Merge pull request #924 from TiborGY/master
Clarify documentation of singularity/rank-deficiency checks
2024-07-25 11:23:10 -07:00
GYT c3c505b1c7 Add notes to *GGGLM about how only exact rank-deficiency is checked 2024-07-25 12:50:47 +02:00
GYT b7335217c1 Add notes to *GGLSE about how only exact rank-deficiency is checked 2024-07-25 12:50:47 +02:00
GYT 3ed4768ed0 Add notes to *GETSLS about how only exact rank-deficiency is checked 2024-07-25 12:50:47 +02:00
GYT ba91e7eddb Add notes to *GELST about how only exact rank-deficiency is checked 2024-07-25 12:50:47 +02:00
GYT 1bf0ea2f93 Add notes to *GELS about how only exact rank-deficiency is checked 2024-07-25 12:50:47 +02:00
GYT 6922840707 Add notes to *TPTRS about how only exact singularity is checked 2024-07-25 12:50:47 +02:00
GYT 4afdca25b2 Add "exact" to *TRTRS and *TBTRS info value descriptions 2024-07-25 12:50:47 +02:00
GYT 5475251aba Add note to *TRTRS and *TBTRS about how only exact singularity is checked 2024-07-25 12:50:47 +02:00
langou 9840f504b4 Merge pull request #1033 from ACSimon33/eigenvalue_fma_error
Prevent compilers from using FMA instructions
2024-07-13 01:17:55 -07:00
Simon Maertens 349b76a5ee Remove trailing whitespace 2024-07-12 15:00:39 +01:00
Simon Maertens 22f9be6a47 Added parentheses to multiplications to prevent compilers from using FMAs where the different rounding can lead to a change in control flow. 2024-07-12 14:52:11 +01:00
langou 694e3375b0 Merge pull request #887 from grisuthedragon/implement-gemmt
Implement xGEMMTR and cblas_xGEMMTR
2024-06-28 00:16:21 -07:00
Martin Köhler c57c156bd1 Add gemmtr group to Doxygen
updated:
 * BLAS/SRC/sgemmtr.f
 * BLAS/SRC/zgemmtr.f
 * BLAS/SRC/cgemmtr.f
 * BLAS/SRC/dgemmtr.f
2024-06-27 14:01:49 +02:00
Martin Köhler 0e37c5cc37 Fix CMake Build 2024-06-24 15:35:14 +02:00
Martin Köhler 34adaba0e6 Add tests for cblas_s/d/zgemmtr 2024-06-24 15:18:22 +02:00
Martin Köhler 85717807e9 Working error tests on cblas_cgemmtr 2024-06-24 15:12:49 +02:00
Martin Köhler 63d2b3af58 add cblas_sgemmtr tests 2024-06-24 14:04:03 +02:00
Martin Köhler b681b1eaec Add cblas_dgemmtr test 2024-06-24 14:04:03 +02:00
Martin Köhler adaf7248e7 Update comments 2024-06-24 14:04:03 +02:00
Martin Köhler b721a55048 Working CBLAS_ZGEMMTR Test 2024-06-24 14:04:03 +02:00
Martin Köhler 60d0e76444 Adding cblas_zgemmtr test 2024-06-24 14:04:03 +02:00
Martin Köhler f9ea71ef3d Fix missing arguments in tests 2024-06-24 14:04:03 +02:00
Martin Köhler cb81e003b8 Adjust BLAS test for routine names with at most 7 characters 2024-06-24 14:04:03 +02:00
Martin Köhler 81b3767a5a Change xGEMMT to xGEMMTR in CBLAS/ 2024-06-24 14:04:03 +02:00
Martin Köhler 327869db1b Rename GEMMT to GEMMTR in BLAS/
After the discussion on

    https://github.com/Reference-LAPACK/lapack/pull/887

the name changed from xGEMMT to xGEMMTR.
2024-06-24 14:04:03 +02:00
Martin Köhler 6173b6e474 Fix another variable 2024-06-24 14:04:02 +02:00
Martin Köhler 785d734bf5 Fix wrong write 2024-06-24 14:04:02 +02:00
Martin Köhler 6f66c83ae0 Remove useless variable 2024-06-24 14:04:02 +02:00
Martin Köhler 05d01da9f2 Fix missing comma 2024-06-24 14:04:02 +02:00
Martin Köhler 2f80551ce3 Fix further implicit variables 2024-06-24 14:04:02 +02:00
Martin Köhler fb5325d58d Fix implicit variable 2024-06-24 14:04:02 +02:00
Martin Köhler b25cf2c8d4 Update documentation of xGEMMT 2024-06-24 14:04:02 +02:00
Martin Köhler 630fb5b85c Tests for cblas_cgemmt 2024-06-24 14:04:02 +02:00
Martin Köhler 5daea4888b CBLAS routines for xGEMMT added 2024-06-24 14:04:02 +02:00
Martin Köhler 19b00163aa Add xGEMMT and their test cases
The xGEMMT subroutines are added in the Fortran
API. The tests are updated as well.
2024-06-24 14:04:02 +02:00
langou d54857fa41 Merge pull request #1030 from dklyuchinskiy/fix-few-typos-and-sytrd-workspace
fix few typos and sytrd boundary workspace
2024-06-21 09:22:38 -07:00
Dmitry Klyuchinsky 69992ad76d fix few typos and sytrd boundary workspace 2024-06-21 18:29:42 +07:00
langou e60ea22d90 Merge pull request #961 from ACSimon33/unintialized_variables
Fixed usage of uninitialized variables in TESTING
2024-06-21 02:17:39 -07:00
Simon Maertens 7113caa0ec Fixed commented out result initialization 2024-06-21 11:05:16 +02:00
langou 2d49fb6ce3 Merge pull request #1029 from dklyuchinskiy/fix-bdsqr-documentation
align documentation of BDSQR workspace with code
2024-06-21 01:36:36 -07:00
Dmitry Klyuchinsky 7320891517 align documentation of bdsqr workspace with code 2024-06-21 15:11:33 +07:00
langou 95530dd25c Merge pull request #1028 from ACSimon33/nagfor_strlength_type_on_linux
Fix NAG Fortran compiler flag
2024-06-20 08:20:10 -07:00
langou 564dae9965 Merge pull request #1027 from ACSimon33/fix_lto_type_mismatch
Fix lto type mismatch
2024-06-20 08:19:54 -07:00
Simon Maertens b8ee7a533e Fixed wrong NAG Fortran compiler flag / definition for strlen type on Linux 2024-06-20 16:11:08 +01:00
Simon Maertens ed17a255af Removed spurious char lenght arguments in LSAME declaration 2024-06-20 16:04:55 +01:00
langou dbc2fbdd89 Merge pull request #1020 from jprhyne/orm2r
Implementation of dorm2r and dlarf1f
2024-06-20 05:48:30 -07:00
Johnathan Rhyne 9a51a35c8b fixing compilation errors in test suite 2024-06-19 23:36:02 -04:00
Johnathan Rhyne 57b267c902 fixing compilation errors due to not checking for lastc=0 2024-06-19 22:09:04 -04:00
Simon Maertens 51219d2328 Fixed use of F77_xerbla in CBLAS testing framework 2024-06-19 19:31:04 +01:00
Simon Maertens 4f504e0236 Fixed use of F77_xerbla in CBLAS testing framework 2024-06-19 19:29:01 +01:00
Simon Maertens f47a8708b9 Added missing FORTRAN_STRLEN arguments in CBLAS testting framework 2024-06-19 18:58:50 +01:00
Simon Maertens a926c938eb Fixed wrong F77 C declarations for complex BLAS routines. Some complex arrays were declared as float* or double* instead of void*. 2024-06-19 18:56:09 +01:00
Simon Maertens 50a943dad9 Fixed external 64bit api CBLAS example. CBLAS_API64 needs to be defined before including cblas_64.h 2024-06-19 18:54:32 +01:00
langou a56dbda146 Merge pull request #964 from cdluminate/master
Fix the wrong implementation of the new tests for xblat1.f
2024-06-19 09:34:56 -07:00
langou 256c836898 Merge pull request #1019 from EduardFedorenkov/1011-add-larf1f-and-larf1l-in-lapack
develop DLARF1F and implement in ORM2R, #1011
2024-06-19 08:03:18 -07:00
langou 2121711ff6 Merge pull request #1025 from ACSimon33/fortran_strlen_types
Configurable type of hidden Fortran strlen arguments
2024-06-19 08:03:02 -07:00
Simon Maertens 6cd9d27cd5 Made the type of hidden Fortran strlen arguments configurable for the NAG Fortran compiler and old GFortran 2024-06-19 15:31:45 +02:00
Johnathan Rhyne 59533536f4 Merge branch 'Reference-LAPACK:master' into orm2r 2024-06-19 07:22:20 -04:00
Johnathan Rhyne 4a5139ee3f adding macro to lapack_64.h 2024-06-18 10:43:44 -04:00
Johnathan Rhyne b564666e6c adding macro to lapack_64.h 2024-06-18 10:43:28 -04:00
Johnathan Rhyne 12075f5c4a updating documentation, using xLARF1y where applicable, and removing some extraneous variables 2024-06-15 10:21:35 -04:00
Johnathan Rhyne 63461c1753 updating documentation, using xLARF1y where applicable, and removing some extraneous variables 2024-06-15 10:19:13 -04:00
Johnathan Rhyne 48fbcb11a6 updating documentation, using xLARF1y where applicable, and removing some extraneous variables 2024-06-15 10:19:00 -04:00
Johnathan Rhyne 35d6a7b0db updating documentation, using xLARF1y where applicable, and removing some extraneous variables 2024-06-15 10:01:13 -04:00
Johnathan Rhyne d2190178d8 implement zlarf1l and use it in relevant routines. TODO: update comments and cleanup 2024-06-14 08:42:18 -04:00
Johnathan Rhyne 35b3758662 implement zlarf1l and use it in relevant routines. TODO: update comments and cleanup 2024-06-14 08:42:10 -04:00
Eduard Fedorenkov c8b1a514cd code style small fixes, #1011 2024-06-13 15:31:25 +07:00
langou 8b468db25c Merge pull request #1024 from cenewcombe/ddrvst_bug
Fix infinite loop when an error occurs in tests ddrvst and sdrvst
2024-06-13 00:37:21 -07:00
Caroline Newcombe 7f30ba884d Fix infinite loop when an error occurs in tests ddrvst and sdrvst 2024-06-12 15:54:20 -05:00
Johnathan Rhyne 7fdd3469c7 Merge branch 'master' of github.com:jprhyne/lapack 2024-06-12 08:02:45 -04:00
Johnathan Rhyne b69186b1bd updating dlarf1l.f 2024-06-12 08:02:00 -04:00
Johnathan Rhyne c744ebe3c4 updating dlarf1l to use firstv scanner properly 2024-06-12 07:23:31 -04:00
langou 163c34bcdd Merge pull request #1022 from ACSimon33/use_more_modern_cmake
Use more modern CMake
2024-06-11 10:27:34 -07:00
Simon Maertens 7159cfb377 Fix Intel compiler flags which contain a space 2024-06-11 15:56:46 +01:00
Eduard Fedorenkov 690067c218 add firstv param in larf1l, #1011 2024-06-11 17:17:45 +07:00
Johnathan Rhyne 741907cae0 updating dlarf1f and dlarf1l to fix a bug found within dorg2l 2024-06-10 00:49:40 -04:00
Eduard Fedorenkov ba27bf02d7 small fix in routines to use larf1f and larf1l, #1011 2024-06-07 16:50:29 +07:00
Eduard Fedorenkov cbd638d9d0 define larf1f and larf1l in lapack_64.h, #1011 2024-06-07 16:29:15 +07:00
Eduard Fedorenkov b579759036 small fix in larf1f and larf1l, #1011 2024-06-07 15:41:39 +07:00
Eduard Fedorenkov 8ed1ab507f update single complex routines to use clarf1f and clarf1l, #1011 2024-06-07 14:30:34 +07:00
langou 017dbf4eee Merge pull request #1023 from Goddan-wq/lapack_issue1021
changing the order of loop to improve performance
2024-06-06 11:11:49 -07:00
Bogdan 2bee293487 solving the issue 2024-06-06 19:26:27 +03:00
Johnathan Rhyne 7708f1e9c8 update dlarf1f.f and zlarf1f.f to not reference v(1) 2024-06-06 07:57:41 -04:00
Eduard Fedorenkov b8b97714c3 implement clarf1l, #1011 2024-06-06 16:36:51 +07:00
Eduard Fedorenkov ea943fc1c7 fix lastv possible range in clarf1f, #1011 2024-06-06 16:35:50 +07:00
Eduard Fedorenkov 1d4010e26a fix lastv possible range in slarf1f and slarf1l, #1011 2024-06-06 15:01:52 +07:00
Simon Maertens d638ddba42 Disable BUILD_INDEX64_EXT_API by default if the CMake version is less than 3.18.0 2024-06-05 14:13:25 +02:00
Simon Maertens fe5c2529fe Set minimum CMake version for INDEX64_EXT_API to 3.18 due to the need of the Fortran_PREPROCESS target property 2024-06-05 14:06:32 +02:00
Simon Maertens 0af92d8230 Bump minimum CMake version to 3.13 2024-06-05 13:13:38 +02:00
Simon Maertens 231db955f2 Use add_compile_options(...) and add_link_options(...) instead of appending flags to CACHE variables. 2024-06-05 13:12:09 +02:00
Eduard Fedorenkov 5889e3e22f try clarf1f in cunm2r, #1011 2024-06-05 17:54:22 +07:00
Eduard Fedorenkov 6c0a98f8c4 implement clarf1f, #1011 2024-06-05 17:50:09 +07:00
Eduard Fedorenkov 8dd7e138a9 update single precision routines to use slarf1f and slarf1l, #1011 2024-06-04 16:56:49 +07:00
Johnathan Rhyne 468cb59c9b alternative formulation more similar to dlarf1f.f 2024-06-04 03:39:05 -04:00
Johnathan Rhyne 15ec3327ec updating comment on zlarf1f.f 2024-06-04 03:21:36 -04:00
Johnathan Rhyne 491c0cf770 updating zlarf1f.f 2024-06-04 03:20:42 -04:00
Eduard Fedorenkov 5e7dad37c9 remove dlarf1f prototype and add slarf1f, slarf1l, #1011 2024-06-03 18:10:21 +07:00
Johnathan Rhyne 2d8314f59e updating double precision routines to use dlarf1f and dlarf1l. Still developing zlarf1f.f 2024-06-03 04:30:08 -04:00
langou a4d0691259 Merge pull request #1002 from ahnaf-tahmid-chowdhury/rpath-fix
Allow User Configuration of RPATH Settings
2024-06-02 17:03:34 -07:00
Johnathan Rhyne 0be01da03e implementing into dorm2l.f 2024-05-31 08:54:09 -04:00
Eduard Fedorenkov a4698c3c9c align DLARF1F versions, #1011 2024-05-31 17:15:51 +07:00
Johnathan Rhyne 2a8775845d updated CMakeLists and added dlarf1l.f 2024-05-30 09:04:33 -04:00
Johnathan Rhyne 648d221026 updated check for if we are a trivial case from m/n=1 to lastv=1 2024-05-30 08:57:31 -04:00
Eduard Fedorenkov 0d2bff7886 fix DLARF1F in case lastv = 1, #1011 2024-05-30 15:37:46 +07:00
Johnathan Rhyne 3267d4143c small change for tau 2024-05-29 17:30:20 -04:00
Johnathan Rhyne 8a338cf2ba a 2024-05-29 17:28:45 -04:00
Eduard Fedorenkov b8a644358e develop DLARF1F and implement in ORM2R, #1011 2024-05-29 18:49:34 +07:00
Johnathan Rhyne 559a7e9a62 fixed dlarf1f and dorm2r implementation 2024-05-28 01:06:26 -04:00
Johnathan Rhyne af491a4d35 fixed dlarf1f and dorm2r implementation 2024-05-28 01:05:35 -04:00
langou dd2e5efd8f Merge pull request #1018 from mgates3/orhr_col_fix
fix out-of-bounds access in orhr_col
2024-05-24 07:23:23 -07:00
Mark Gates 0d2d60173b fix out-of-bounds access in orhr_col 2024-05-23 14:59:23 -04:00
Ahnaf Tahmid Chowdhury c308ea602e CMAKE_INSTALL_RPATH_USE_LINK_PATH TRUE 2024-05-22 23:47:19 +06:00
Ahnaf Tahmid Chowdhury ffc3a93c22 CMAKE_INSTALL_FULL_LIBDIR 2024-05-22 23:29:07 +06:00
langou 4a8ed6be3d Merge pull request #1016 from EduardFedorenkov/1011-fix-larfb-documentation
fix LARFB documentation, #1011
2024-05-20 17:28:20 -07:00
Eduard Fedorenkov 201a5c49f6 fix LARFB documentation, #1011 2024-05-20 12:57:46 +07:00
Johnathan Rhyne 4c8684d05b current state of testing implementation 2024-05-16 10:53:13 +02:00
Johnathan Rhyne fb5dc39422 current state of testing implementation 2024-05-16 10:53:04 +02:00
Johnathan Rhyne 2ec963d93d initial skeleton with tests ran 2024-05-15 15:37:52 +02:00
Johnathan Rhyne db65b3102e initial skeleton with tests ran 2024-05-15 15:37:42 +02:00
langou 59fe2954fb Merge pull request #1009 from lepus2589/1008-allow-installing-of-binaries-to-subdirectory-while-keeping-cmake-package-scripts-in-the-same-place
#1008 Allow installing binaries to subdirectory while keeping CMake package scripts in the same place
2024-04-17 09:12:28 -06:00
Tim Kaune eedcda61c1 Fix CMake installation instructions in LAPACK README
The `CMAKE_INSTALL_LIBDIR` was used here from the command line, probably
accidentally. It is a variable provided by the core CMake module
GNUInstallDirs and shouldn't be overridden. The variable, that makes
sense in this context is the `CMAKE_INSTALL_PREFIX` variable, which is
intended to be set by the user.
2024-04-17 11:58:19 +02:00
Tim Kaune 157f602f14 Add the project option LAPACK_BINARY_PATH_SUFFIX
It names a subdirectory added to the install location of all LAPACK
binaries. It is empty by default.

This allows a consumer, to install the Reference LAPACK binaries into a
subdirectory of, e.g., `/usr/local/lib` without inadvertantly changing
the install location of the CMake package scripts, which remain
unchanged in `/usr/local/lib/cmake`.

This can be necessary to avoid conflicts with other BLAS/LAPACK
distributions. Previously, this would require the consumer to override
`CMAKE_INSTALL_LIBDIR` directly. This shouldn't be done, though, because
the variable is provided by the core CMake module GNUInstallDirs and is
used in many places. Thus, changing it can have unforeseen consequences.
Here, overriding it also changed the install locations of the CMake
package scripts and PKGConfig files, which prevents them from being
discovered by default by their respective tools.
2024-04-17 11:56:10 +02:00
langou c4a1f76070 Merge pull request #1007 from jip/fix
fix comments
2024-04-10 08:09:03 -06:00
Igor Zhuravlov 173a3f475c fix comments
1) add definition to xTRSYL3
2) minor formatting unifications
2024-04-10 17:11:51 +10:00
langou a6f8371369 Merge pull request #1004 from jip/fix
fix comments
2024-04-09 13:27:01 -06:00
Igor Zhuravlov 06fc0d8970 fix comments
add datatype declaration for LWORK
2024-04-08 19:12:19 +10:00
Ahnaf Tahmid Chowdhury ace63d1837 configure RPATH 2024-03-29 00:47:16 +06:00
langou 7295ac130f Merge pull request #998 from christoph-conrads/997-xSYEVR-clarify-use-of-multiple-algorithms
xSY/HEEVR: clarify use of multiple algorithms
2024-03-21 11:34:56 -06:00
Christoph Conrads e79eae6c4e xHEEVR: fix a copy-and-paste error
Thanks to @langou for proof-reading.
2024-03-21 18:32:02 +01:00
Christoph Conrads 88f15c2631 xSY/HEEVR: clarify use of multiple algorithms
fixes #997
2024-03-21 17:53:49 +01:00
Christoph Conrads 742c35546b C/ZHEEVR: add remark about safe parameter choice
The remark was only found in the real-valued implementations.
2024-03-21 17:51:58 +01:00
langou 54261473ab Merge pull request #993 from christoph-conrads/xGEDMD-fix-iso-fortran-warnings-with-64bit-integers
xGEDMD(Q): silence warning with 64-bit integers
2024-03-01 13:08:44 -07:00
Christoph Conrads e02fbdaebc xGEDMD(Q): silence warning with 64-bit integers
Fix the following warning by GCC 12.2.0:

  Warning: Use of the NUMERIC_STORAGE_SIZE named constant from intrinsic
  module ISO_FORTRAN_ENV at (1) is incompatible with option
  -fdefault-integer-8
2024-03-01 16:52:32 +01:00
langou fe843f99d6 Merge pull request #989 from angsch/bdsqr
Two small fixes of bdsqr
2024-02-26 06:19:52 -07:00
Angelika Schwarz 230b8c4862 Fix -ZERO singular value in bdsqr
[D,Z]BDSQR returns for

D = [ -4.0, -3.0, -2.0, -1.0, 0.0, 1.0, 2.0, 3.0, 4.0, 5.0]
E = [ 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0, 10.0]

as singular value  D(10) = -ZERO. By definition, singular values
are non-negative. LASQ1 already fixes the sign and returns +ZERO.
2024-02-23 19:46:45 +01:00
Angelika Schwarz acbac1092c Update documentation of work size in bdsqr (thanks @TarcioV)
In https://github.com/Reference-LAPACK/lapack/pull/234
only dbdsqr was updated. This updates the documentation
of the other precisions.
2024-02-23 19:46:34 +01:00
langou c6bc40164a Merge pull request #888 from mkrainiuk/lapacke_64
Add Index-64 API as extended API with _64 suffix for LAPACKE
2024-02-10 13:08:07 -07:00
Maria Kraynyuk bc5d836a31 resolve conflicts after rebasing 2024-02-05 11:37:53 -08:00
Maria Kraynyuk 15d05b4fbc fix code style in LAPACKE DGESV examples 2024-02-05 10:54:16 -08:00
Maria Kraynyuk 41909fd0c5 Add missed memory deallocation to LAPACKE DGESV examples 2024-02-05 10:54:16 -08:00
Maria Kraynyuk 21299d28eb Enable Index-64 extended API only for Intel and GNU compilers
Other compilers might not fully support preprocessing
2024-02-05 10:54:15 -08:00
Maria Kraynyuk 40ca7a2713 Include lapack_64.h only during the build 2024-02-05 10:54:04 -08:00
Maria Kraynyuk ee213a3ed3 resolve conflicts after rebasing 2024-02-05 10:32:21 -08:00
Maria Kraynyuk fe3e793c16 Remove unused lapack_64.h from la_constants 2024-02-05 10:32:21 -08:00
Maria Kraynyuk 81823e958c Fix -Werror=conversion problems in LAPACK with integer-8 2024-02-05 10:32:17 -08:00
Maria Kraynyuk ac2c5681bc MATGEN fix -Werror=conversion problems 2024-02-05 10:28:27 -08:00
Maria Kraynyuk 56aa979416 Fix problem with missed mod files in parallel LAPACK build 2024-02-05 10:28:27 -08:00
Maria Kraynyuk dae4c5a3a4 Add LAPACKE examples for extended _64 API 2024-02-05 10:28:27 -08:00
Maria Kraynyuk ba11da8301 MATGEN long lines updated by script 2024-02-05 10:28:27 -08:00
Maria Kraynyuk 19d3a4e638 Add extended API with _64 suffix to MATGEN 2024-02-05 10:28:26 -08:00
Maria Kraynyuk 3ccdccea9b LAPACK SRC long lines updated manually 2024-02-05 10:28:26 -08:00
Maria Kraynyuk a1e8cb4845 LAPACK SRC long lines updated by script 2024-02-05 10:28:25 -08:00
Maria Kraynyuk b891145899 Add extended API with _64 suffix to LAPACK with lapack_64.h 2024-02-05 10:28:08 -08:00
Maria Kraynyuk 907725572a Wrap all functions to macro for Index-64 API in LAPACKE 2024-02-05 10:21:06 -08:00
Maria Kraynyuk 741a2c2ee0 Add extended API with _64 suffix to LAPACKE 2024-02-05 10:20:49 -08:00
langou 50d689057a Merge pull request #984 from FrK5E/lapack_testing_py_typo
Typo
2024-01-25 14:35:21 -07:00
FrK5E cc90d869b0 Typo 2024-01-25 22:09:22 +01:00
langou add94979e9 Merge pull request #981 from christoph-conrads/980-CZLARFGP-must-re-scale-when-ALPHA-is-not-real
{C,Z}LARFGP: re-scale input vector more often
2024-01-18 08:33:55 -07:00
Christoph Conrads 827cb8e8eb {C,Z}LARFGP: re-scale input vector more often
Re-scale the input vector even if `X` is negligibly small in norm if the
imaginary part of `ALPHA` is nonzero. For otherwise `XNORM` will not be
computed with a small _relative_ error.

fixes #980
2024-01-17 18:52:16 +01:00
langou 0a3aa4db40 Merge pull request #979 from turboencabulator/doxygen-warnings
Fix Doxygen warnings
2024-01-16 22:40:41 -07:00
Kyle Guinn dead4e4dfd Fix missing DONE parameter name
SRC/slaqp3rk.f:585: warning: unexpected command endverbatim
SRC/dlaqp3rk.f:585: warning: unexpected command endverbatim
SRC/claqp3rk.f:579: warning: unexpected command endverbatim
SRC/zlaqp3rk.f:579: warning: unexpected command endverbatim
2024-01-16 22:46:23 -06:00
Kyle Guinn 6597d4803b Fix mismatched verbatim/endverbatim commands
SRC/zgedmd.f90:213: warning: reached end of comment while inside a \verbatim block; check for missing \endverbatim tag!
SRC/zgedmdq.f90:710: warning: unexpected command endverbatim
2024-01-16 22:46:23 -06:00
Kyle Guinn aa41ed6b5e Fix ZWORK parameter name
SRC/cgedmdq.f90:548: warning: argument 'lzwork' from the argument list of cgedmdq has multiple @param documentation sections
SRC/zgedmdq.f90:546: warning: argument 'lzwork' from the argument list of zgedmdq has multiple @param documentation sections
2024-01-16 22:46:13 -06:00
Kyle Guinn 79a0785334 Normalize line endings
sed -i 's/\s\+$//' SRC/*dmd* TESTING/EIG/*dmd*
Plus manually stripping empty lines at EOF.
2024-01-16 22:43:58 -06:00
langou 5d705a1a20 Merge pull request #978 from turboencabulator/doxygen-sync
Re-sync Doxyfile with CMake
2024-01-16 20:57:46 -07:00
Kyle Guinn 55d73a2ef2 Prevent html options from being applied to manpage generation
When both BUILD_HTML_DOCUMENTATION and BUILD_MAN_DOCUMENTATION are ON,
DOXYGEN_GENERATE_HTML was set to YES (and some other HTML-only variables
were set) whenever Doxyfile.man was generated, and therefore `make man`
would also populate DOCS/explore-html, but with less detail due to the
other differences between Doxyfile.man and Doxyfile.html.
2024-01-15 23:11:04 -06:00
Kyle Guinn 7952995ba0 Adjust Doxygen source and output paths
This removes another difference with DOCS/Doxyfile.

From the CMake 3.9.6 documentation (earliest version describing
doxygen_add_docs, I've updated cmake_minimum_required to match):

"So that relative input paths work as expected, by default the working
directory of the Doxygen command will be the current source directory
(i.e. CMAKE_CURRENT_SOURCE_DIR)."

Likewise for the output directory:

"Set to CMAKE_CURRENT_BINARY_DIR by this module.  Note that if the
project provides its own value for this and it is a relative path, it
will be converted to an absolute path relative to the current binary
directory.  This is necessary because doxygen will normally be run from
a directory within the source tree so that relative source paths work as
expected."
2024-01-15 22:35:16 -06:00
Kyle Guinn cf9b217c50 Add options missing from the existing Doxyfile
Both have been present in DOCS/Doxyfile since that file was added.
2024-01-15 21:55:08 -06:00
Kyle Guinn bd6fece37b Reset several Doxygen options to their default values
The goal is to minimize the output of `doxygen -x DOCS/Doxyfile` so that
it contains only the settings specified in CMakeLists.txt.  In all
cases, the changed values are intended to match what CMake is generating
when using -DBUILD_HTML_DOCUMENTATION=ON, and ideally the changes should
have no effect.

Comments for ABBREVIATE_BRIEF and EXAMPLE_PATTERNS describe the default
behavior when they are blank, but our blank values show up in the output
of `doxygen -x DOCS/Doxyfile` indicating that blank is not the default
value.  Setting values to match the current default behavior should have
no effect, unless Doxygen changes in the future.  On the other hand,
MATHJAX_RELPATH has changed and will change again in newer Doxygen
versions.

CMake automatically inserts its own set of EXCLUDE_PATTERNS that
contains none of the patterns previously listed here.  Neither the
previous values nor the CMake-generated ones should have any effect due
to our choice of INPUT and FILE_PATTERNS.

MATHJAX_RELPATH, LATEX_CMD_NAME, RTF_HYPERLINKS, and MAN_LINKS all
require some other option (USE_MATHJAX, GENERATE_LATEX, GENERATE_RTF,
and GENERATE_MAN, respectively) to be set to YES to take effect, and all
are set to NO, so these changes should have no effect.  Note that the
CMake-generated Doxyfile.man sets MAN_LINKS=YES in addition to
GENERATE_MAN=YES.
2024-01-15 21:31:50 -06:00
Kyle Guinn 62c9cd885a Skip setting Doxygen options to default values
QUIET defaults to NO, WARNINGS defaults to YES.
2024-01-15 15:55:41 -06:00
Kyle Guinn f81db935ca Sort Doxygen lists for comparison purposes 2024-01-15 15:54:41 -06:00
langou 8254fbdd80 Merge pull request #976 from christoph-conrads/975-LAPACK-requires-CMake-3.11-or-newer
CMake: restore compatibility with v3.10 and older
2024-01-13 09:48:01 -07:00
Christoph Conrads ec2805b5e9 CMake: restore compatibility with v3.10 and older
The COMPILE_OPTIONS property exists only from CMake 3.11 onwards.

fixes #975
2024-01-13 17:08:59 +01:00
langou d7ea9c52b9 Merge pull request #970 from turboencabulator/perms 2024-01-06 18:44:07 -07:00
Kyle Guinn 464f532552 Remove executable permissions from source files 2024-01-06 18:20:41 -06:00
Mo Zhou d371e22ff0 Fix the wrong implementation of the new tests for xblat1.f. (Fixes: #963)
Since this is a regression after upgrading from v3.11.0 to v3.12.0, we can
narrow down the range of the bug into the newly added SB1NRM2 subroutine.
According to the buildlog and the documentation in the code, the VALUES(9),
calculated as SXVALS(XX,2) should be infty. But the current code is returning
a zero (or randomly) initialized variable YY, which does not make sense.

In fact, if you go back to the reference implementation, namely the
supplementary material of this paper
  https://dl.acm.org/doi/abs/10.1145/3061665
You can find a similar implementation of the SXVALS function in the
`la_xxvals.F90` file. This patch corrests the test following the reference
code.
2023-12-21 13:58:38 -05:00
Simon Maertens 4bd18e2663 Refactor test result initialization and reporting
Consolidated the initialization of the RESULT array and the reporting of
test outcomes for the xCHKQP3RK tests. The initialization of the RESULT array to
zeros is now occurring immediately before the tests, ensuring a clean
slate without scattering across different test phases. Reporting
functionality has been centralized at the end of the 5 tests,
eliminating redundant blocks and improving maintainability.
2023-12-18 17:17:07 +00:00
Simon Maertens f6355dc769 Updated array index calculations in cchkqp3rk.f, dchkqp3rk.f,
schkqp3rk.f, and zchkqp3rk.f to use the leading dimension (LDA) instead
of the fixed size (M)
2023-12-15 17:54:40 +00:00
Simon Maertens 4a26507b5f Initialize test results to zero in LIN testing routines to preempt potential garbage data
influencing the test evaluations.
2023-12-15 17:36:33 +00:00
langou db501d91ba Merge pull request #959 from dklyuchinskiy/lapack-fix-dmd-issues
fix some DMD issues
2023-12-12 09:00:09 -07:00
Dmitry Klyuchinsky 4787915207 init variable SSUM before call of LASSQ in DMD 2023-12-12 13:42:37 +07:00
Dmitry Klyuchinsky 101800018d add DMD tests into CMakeLists 2023-12-12 12:42:50 +07:00
langou c2255a8d4d Merge pull request #942 from dklyuchinskiy/lapack-257-zero-lwork 2023-12-04 08:15:01 -07:00
Dmitry Klyuchinsky 280e16145d add missed usage of sroundup_lwork in several functions 2023-12-04 18:29:06 +07:00
Dmitry Klyuchinsky cd7523d5b2 handle corner case of lwork in evr/evr_2stage and fix output format in chkxer 2023-12-04 16:35:36 +07:00
Dmitry Klyuchinsky 9dc24803a2 handle and document corner cases of lwork in lapack, align all precisions 2023-12-04 16:35:36 +07:00
Elizaveta Tokmasheva 7d15f830c2 handle and document corner cases of lwork in lapack, double complex precision 2023-12-04 16:35:35 +07:00
Elizaveta Tokmasheva e0d8afbed6 handle and document corner cases of lwork in lapack, single complex precision 2023-12-04 16:35:35 +07:00
Dmitry Klyuchinsky 0c1e0c3e75 handle and document corner cases of lwork in lapack, single precision 2023-12-04 16:35:35 +07:00
Dmitry Klyuchinsky 6032a6bca0 handle and document corner cases of lwork in lapack, double precision 2023-12-04 16:35:35 +07:00
langou a4298d5ff6 Merge pull request #954 from ACSimon33/lapack_testing_python_summary_bug
Fixed search phrase for determining the amount of successful tests
2023-12-01 07:37:55 -07:00
Simon Maertens 5b0687f429 Fixed search phrase for determining the amount of successful tests 2023-12-01 14:05:54 +00:00
langou 3200980553 Merge pull request #953 from ACSimon33/test_memory_leak
Fixed memory leak in testing framework
2023-11-29 08:43:39 -07:00
Simon Maertens 3d2b9cbdcd Fixed memory leak in testing framework (?chkaa.F) 2023-11-29 15:18:49 +00:00
langou af77ebfa6c Merge pull request #950 from ACSimon33/cblas_weak_attribute 2023-11-29 08:08:00 -07:00
langou 9560fe2fe3 Merge pull request #951 from ACSimon33/nagfor_imag_fix 2023-11-29 08:06:10 -07:00
Simon Maertens 2a0aea9c4c Added missing comma in FORMAT expression 2023-11-29 14:34:26 +00:00
Simon Maertens c69a96ea9e Added missing comma in FORMAT expression 2023-11-29 14:33:00 +00:00
Simon Maertens 8c54a57d66 Replaced non-standard IMAG function with its standard counterpart `AIMAG. 2023-11-29 14:31:16 +00:00
Simon Maertens 26db2da3eb Fixed Fortran compiler flags check for nagfor compiler and usage in CBLAS target 2023-11-29 14:30:30 +00:00
Simon Maertens 10432bb5e8 Fixed HAS_ATTRIBUTE_WEAK_SUPPORT flag for CBLAS objects 2023-11-29 12:53:09 +00:00
langou e78a2ad18c Merge pull request #948 from weslleyspereira/fix-945
Enables Fortran before including CheckFortranFunctionExists in CMakeL…
2023-11-27 12:04:16 -07:00
Weslley S Pereira cbb553627e Enables Fortran before including CheckFortranFunctionExists in CMakeLists.txt 2023-11-27 10:29:11 -07:00
langou 04b044e020 Merge pull request #944 from julielangou/master
LAPACK 3.12.0 release
2023-11-24 13:41:15 -07:00
Julie d7be813203 LAPACK 3.12.0 release
Update documentation for coming release
2023-11-24 12:36:54 -08:00
langou b231dd57cd Merge pull request #941 from Reference-LAPACK/lapack-new-feature
Update of the documentation to the pull request "Truncated QR with Pivoting #891"
2023-11-21 07:14:44 -07:00
scr2016 bd4455fb82 updated descriptions for the truncated QR routines second time 2023-11-21 03:02:10 -08:00
scr2016 dcbd80331e updated descriptions for the truncated QR routines 2023-11-20 23:07:59 -08:00
scr2016 aec6cb3281 Fixed an error in the description of complex routines, changed othogonal into unitary 2023-11-20 22:58:28 -08:00
langou d811d855d8 Merge pull request #940 from ACSimon33/void_main_fix_for_apple_clang 2023-11-15 08:16:04 -07:00
Simon Maertens d2c2de1d54 Changed void main() to int main() in CMake check because AppleClang doesn't allow it 2023-11-15 15:04:56 +00:00
langou 4b8a925006 Merge pull request #939 from ACSimon33/nagfor_fix
Fixed Fortran preprocessor flag for NAG Fortran compiler
2023-11-15 07:40:26 -07:00
Simon Maertens b29d75131e Fixed Fortran preprocessor flag for NAG Fortran compiler 2023-11-15 14:22:26 +00:00
langou d58d59a99d Merge pull request #891 from Reference-LAPACK/lapack-new-feature
Truncated QR with Pivoting
2023-11-14 21:02:04 -07:00
scr2016 8d44861982 fixed a type for adding TESTING/LIN/zchkqp3rk.f into CMakeLists.txt 2023-11-14 05:35:24 -08:00
scr2016 a1322ff40e merged with git pull 2023-11-14 05:16:11 -08:00
scr2016 21e33bd707 final trucated QR 2023-11-14 04:42:11 -08:00
scr2016 d64a6ca96d fixed a typo-bug for intrinsics in dlaqp3rk.f 2023-11-14 04:42:11 -08:00
scr2016 7603b62709 UPDATED the descriptions of the new truncated QR routines 2023-11-14 04:42:11 -08:00
scr2016 ea4787ca59 added complex precision truncated QR and testing for CGEQP3RK, CLAQP2RK, CLAQP3RK 2023-11-14 04:42:11 -08:00
scr2016 6a15917836 added declaration of intrinsics REAL or DBLE in SRC/dchkqp3rk.f zchkqp3rk.f schkqp3rk.f 2023-11-14 04:42:11 -08:00
scr2016 ee81706f4f fxed comments in zchkqp3rk.f schkqp3rk.f 2023-11-14 04:42:11 -08:00
scr2016 036fef485f fixed description in SRC/zlaqp2rk.f SRC/zlaqp3rk.f 2023-11-14 04:42:10 -08:00
scr2016 0a6744177a fixed comments in SLAQP3RK 2023-11-14 04:42:10 -08:00
scr2016 c2228e10e1 forgot add in the previous commit TESTING/LIN/schkqp3rk.f, adding now 2023-11-14 04:42:10 -08:00
scr2016 7019c6345c added single precision ant testing for truncated QR i.e. SGEQP3RK, SLAQP2RK, SLAQP3RK 2023-11-14 04:42:10 -08:00
scr2016 540e4eb0a9 Changed ArrayE allocation from static to dynamic 2023-11-14 04:42:10 -08:00
scr2016 0c440488d9 changed LWORK_DORMQR into LWORK_MQR name in LIN/dchkqp3rk.f LIN/zchkqp3rk.f 2023-11-14 04:42:10 -08:00
scr2016 10e12a4001 Intrinsic DBLE declaration from DLAQP3RK, since it is not used 2023-11-14 04:42:10 -08:00
scr2016 bd42f8ebaf DOWNDATED comments in TESTING/LIN/dchkqp3rk.f 2023-11-14 04:42:10 -08:00
scr2016 5bcd5859e5 added comments symbols '*' in TESTING/LIN/zchkqp3rk.f 2023-11-14 04:42:10 -08:00
scr2016 c64027aa5e DOWNDATED commnets in SRC/dgeqp3rk.f SRC/dlaqp2rk.f SRC/dlaqp3rk.f 2023-11-14 04:42:10 -08:00
scr2016 349a295b93 removed one comment sign * in SRC/zlaqp3rk.f 2023-11-14 04:42:10 -08:00
scr2016 d086a3d5b8 DOWNDATED comments in LIN/zchkqp3rk.f 2023-11-14 04:42:10 -08:00
scr2016 bfbd799e1a DOWNDATED comments in SRC/zgeqp3rk.f SRC/zlaqp2rk.f SRC/zlaqp3rk.f 2023-11-14 04:42:10 -08:00
scr2016 7656583a53 changed formatting in the RELTOL description WE recomment RELTOL to be ... and for complex case added a factor of 10 as min( 10*max(M,N)*EPS, sqrt(EPS) ) <= RELTOL 2023-11-14 04:42:10 -08:00
scr2016 e3b58c4cda added testing code for DGEQP3RK 2023-11-14 04:42:10 -08:00
scr2016 c037c322b7 added SRC/zgeqp3rk.f SRC/zlaqp2rk.f SRC/zlaqp2rk.f and changed Makefile and CMakeLists.txt accordingly 2023-11-14 04:42:10 -08:00
scr2016 c3eaab30c6 corrected comments in TESTING/LIN/dchkqp3rk.f for KMAX loop 2023-11-14 04:42:09 -08:00
scr2016 667f08c385 corrected comment in update the i-th row of A in DLAQP3RK 2023-11-14 04:42:09 -08:00
scr2016 1309b6c5cc fixed an DLARFG index bug in dlaqp2rk.f and inserted debug statement in dlaqp3rk.f 2023-11-14 04:42:09 -08:00
scr2016 231dd99d0c changed alligment of if statements in generation matrices with zeros in TESTINg/LIN/dchkqp3rk.f 2023-11-14 04:42:09 -08:00
scr2016 6abbd2b64d merged if MINMN contition with matrix types conditon for matrixces with ZEROes generation in DCHKQP3RK 2023-11-14 04:42:09 -08:00
scr2016 35634f322c changed the matrix IMAT in DCHKQP3RK to call DLATB4 to 14 2023-11-14 04:42:09 -08:00
scr2016 8e888aaa61 changed comments in dlatb4.f and changed text allignment for function calls in dchkqp3rk.f 2023-11-14 04:42:09 -08:00
scr2016 59fc007bc2 simplified the formula in the descriotion from LWORK >= (2*N + N+NRHS - 1) to LWORK >= (3*N + NRHS - 1) 2023-11-14 04:42:09 -08:00
scr2016 93b5bc325e changed comments in dlatb4.f 2023-11-14 04:42:09 -08:00
scr2016 f1bbf6c1c3 fixed comments of function signature description in TESTING/LIN/dchkqp3rk.f 2023-11-14 04:42:09 -08:00
scr2016 86cf705308 Updated description of the INFO about NaN detection in DGEQP3RK, DLAQP3RK, DLAQP2RK 2023-11-14 04:42:09 -08:00
scr2016 2c939526a5 changed comments about checking TAU for NaN in dlaqp2rk.f and dlaqp3rk.f and changed aligment of IMPLICIT NONE in the description of DGEQP3RK in dgeqp3rk.f 2023-11-14 04:42:09 -08:00
scr2016 8ecf1119ab changed text aligment for DGEMM and DGEMV function calls in DLAQP3RK 2023-11-14 04:42:09 -08:00
scr2016 a39a28f68c changed comments about TAU in dlaqp2rk.f and dlaqp3rk.f 2023-11-14 04:42:09 -08:00
scr2016 37b19bffed changed the description of DLAQP3RK to include real 2023-11-14 04:42:09 -08:00
scr2016 b20545c6d4 cnanged doxigen comments in \brief for dgeqp3rk.f dlaqp2rk.f dlaqp3rk.f to have real in matrix A and B description 2023-11-14 04:42:09 -08:00
scr2016 a020ed05b8 changed comment in DLAQP2RK in the code section about IF guard for DLARF 2023-11-14 04:42:09 -08:00
scr2016 f1a95eebeb changed comment for LWORK in dgeqp3rk.f for minimum LWORK brackets, cosmetic change 2023-11-14 04:42:08 -08:00
scr2016 8e5b70565c Removed blank line in the comments of dgeqp3rk.f 2023-11-14 04:42:08 -08:00
scr2016 8482937cfa added GEQP3RK to ILAENV routine, it changed ilaenv.f and dgeqp3rk.f 2023-11-14 04:42:08 -08:00
scr2016 4161851dd6 changed padding of parameters in the function signature of DGEQP3RK 2023-11-14 04:42:08 -08:00
scr2016 12e939727a Corrected WORK array size requirements for minimum and optimal size in DGEQP3RK and tests as well. Also reduces the requirement for WORK array size in DLAQP2RK to from N to N-1 2023-11-14 04:42:08 -08:00
scr2016 18c19a461c fixed a typo in TESTING/LIN/alahd.f 2023-11-14 04:42:08 -08:00
scr2016 46ef59fcee fixed description from '\ingroup heqp3rk' to '\ingroup geqp3rk' in SRC/dgeqp3rk.f 2023-11-14 04:42:08 -08:00
scr2016 36fa12432d added IMPLICIT NONE to TESTING/LIN/dchkqp3rk.f 2023-11-14 04:42:08 -08:00
scr2016 8d7f615330 added DQK test path for DGEQP3RK into TESTING/dtest.in 2023-11-14 04:42:08 -08:00
scr2016 2eac2f6332 replaced GO TO statements with DO J=1,M ... END DO in dqrt12.f and corrected description formula 2023-11-14 04:42:08 -08:00
scr2016 ea810c995c replaced GO TO statements with DO J=1,M ... END DO in dqrt11.f 2023-11-14 04:42:08 -08:00
scr2016 a111c9bb61 Changed comments and updated GOTO statements in LIN/dqpt01.f 2023-11-14 04:42:08 -08:00
scr2016 14e5f471f3 matrix configuration for DGEQP3RK in LIN/dlatb4.f 2023-11-14 04:42:08 -08:00
scr2016 e209e73925 added test matrices types reporting and test type reporinting for DGEQP3RK in TESTING/LIN/alahd.f 2023-11-14 04:42:08 -08:00
scr2016 7c1c8b0271 updated LIN/alaerh.f with GEQP3RK 2023-11-14 04:42:08 -08:00
scr2016 79f4d030e3 added testing for truncated Qr TESTING/LIN/dchkq3rk.f 2023-11-14 04:42:08 -08:00
scr2016 a0341b292d added a new file for testing TESTING/LIN/dchkqp3rk.f LIN/Makefile LIN/CMakeLists.txt 2023-11-14 04:42:08 -08:00
scr2016 395d04e7f6 Changed tha text alignment in INFO description in DGEQP3RK and DLAQP3RK 2023-11-14 04:42:07 -08:00
scr2016 1798bdba70 Renamed parameter the number of factorized columns so far KF into K , and column loop index into K into KK in DLAQP2RK 2023-11-14 04:42:07 -08:00
scr2016 bfbcec20f6 optimized, deleted not needed setting of MAXC2NRMK and RELMAXC2NRMK when (IOFFSET + K) =1 in DLAQP3RK 2023-11-14 04:42:07 -08:00
scr2016 3fc6c23e44 optimized, deleted not neede setting of MAXC2NRMK and RELMAXC2NRMK when (IOFFSET + K) =1 2023-11-14 04:42:07 -08:00
scr2016 f84ee6c9cc Revert "renamed old auxiliary index J into J1 in DLAQP2RK"
This reverts commit ea0c1ca130a0e628a28651db0475f6da6be07813.

This reverts a rename of J into J1 in DLAQP2RK.
2023-11-14 04:42:07 -08:00
scr2016 1b7bf32c20 renamed old auxiliary index J into J1 in DLAQP2RK 2023-11-14 04:42:07 -08:00
scr2016 4603e69a5f updated the description of DLAQP3RK 2023-11-14 04:42:07 -08:00
scr2016 46e75194d1 changed the description of DGEQP3RK (added imlicit stopping criterion for the residual zero matrix) and fixed a typo in DLAQP3RK 2023-11-14 04:42:07 -08:00
scr2016 e9e939400f changed the description of DGEQP3RK, DLAQP3RK, DLAQP2RK and removed the KMAX parameter from DLAQP3RK 2023-11-14 04:42:07 -08:00
scr2016 8ebb7c88fd fixed INFO NaN and Inf reporting bug in DGEQP3RK and added debug code to DLAQP3RK and DLAQP2RK 2023-11-14 04:42:07 -08:00
scr2016 33c8a2a392 modified descriptions after review number 1 in dgeqp3rk.f dlaqp2rk.f dlaqp3rk.f 2023-11-14 04:42:07 -08:00
scr2016 785b734760 modified descriptions and corrected grammatical errors in dgeqp3rk.f dlaqp2rk.f dlaqp3rk.f 2023-11-14 04:42:07 -08:00
scr2016 352ffe958f fixed grammatical error in the description of INFO in dgeqp3rk.f dlaqp2rk.f dlaqp3rk.f 2023-11-14 04:42:07 -08:00
scr2016 6aac08032d added NaN and INf checks to dgeqp3rk.f dlaqp2rk.f dlaqp3rk.f 2023-11-14 04:42:07 -08:00
scr2016 ecaf99b88c removed KF argument in DLAQP3RK, KF is the number of factorized partial columns in the whole original matrix indexing 2023-11-14 04:42:07 -08:00
scr2016 214842c9bd changed the meaing of K to mean the rank of R instead of the number of fctorizaed colums 2023-11-14 04:42:07 -08:00
scr2016 8391371122 added to the description of DGEQP3Rk, DLAQP2RK and DLAQP3RK references to Zlatko Drmac paper in ACM Trans. Math. Softw. 2023-11-14 04:42:07 -08:00
scr2016 9ea14cddad in DLAQP2RK moved ABSTOL condition into ELSE clause of IF(I.EQ.1) 2023-11-14 04:42:06 -08:00
scr2016 115d5a4c46 in DLAQP3RK chahged ABSTOL and RELTOL condition to return from the look rather then exit from the loop and return at the end of the routine 2023-11-14 04:42:06 -08:00
scr2016 39828c7f67 Changed bar length in the comments in DLAQP3RK 2023-11-14 04:42:06 -08:00
scr2016 43eb003a74 Moved ABSTOL and RELTOL verification in DLAQP3RK in ELSE clause of IF(I.EQ.1) 2023-11-14 04:42:06 -08:00
scr2016 9c0a21ebd3 changed comments and variable names and assigment for KB, IF, KF in DLAQP3RK 2023-11-14 04:42:06 -08:00
scr2016 7bc3615d79 removed redundant IF(.NOT.DONE.) statement at the end of the DGEQP3RK routine 2023-11-14 04:42:06 -08:00
scr2016 762496f6fc moved zero submatrix check in (if(ioffset ==0) else) clause into else part in DLAQP3RK 2023-11-14 04:42:06 -08:00
scr2016 9de1ee7775 changed indent in in one line in SRC/dlaqp2rk.f 2023-11-14 04:42:06 -08:00
scr2016 d152705578 added zero submatrix check to DLAQP3RK and changed the position of DONE parameter in the calling sequence 2023-11-14 04:42:06 -08:00
scr2016 b943dee7c7 in dlaqp3rk.f added comments TODO 2023-11-14 04:42:06 -08:00
scr2016 46f90f6f87 in dlaqp2rk.f moved ZERO submatrix condition check under if statement, when I!=1 2023-11-14 04:42:06 -08:00
scr2016 3fc469a5dd changes in dlaqp2rk.f IF( IOFFSET.EQ.0 .AND. K.EQ.1 ) THEN into IF( I.QE.1 ) THEN and F( MAXC2NRMK.EQ.ZERO ) THEN into IF( I.NE.1 .AND. MAXC2NRMK.EQ.ZERO ) THEN 2023-11-14 04:42:06 -08:00
scr2016 73bfa95e71 replaced MAXK with KMAX in dgeqp3rk.f 2023-11-14 04:42:06 -08:00
scr2016 8da81bc473 replaced MAXK with KMAX in glaqp3rk.f 2023-11-14 04:42:06 -08:00
scr2016 4c09d8efbf changed comments in SRC/dlaqp2rk.f 2023-11-14 04:42:06 -08:00
scr2016 e965983eb9 Added zero submatrix optimization and changed MAXK into KMAX in dlaqp2k.f 2023-11-14 04:42:06 -08:00
scr2016 f0b12a2193 fixed a bug in dgeqp3rk.f in quick return if possible for the whole original matrix when MAXC2NRM<= ABSTOL and ONE <=RELTOL 2023-11-14 04:42:05 -08:00
scr2016 8d5c716a64 fixe the comment in dgeqp3rk.f and changed design in dlaqp2rk.f to return from the loop instead of exiting the loop when ABSTOL or RELTOL criterion is satisfied 2023-11-14 04:42:05 -08:00
scr2016 f8edd87189 added quick return if possible at the beginning for 1) MAXK = 0; 2) ABSTOL and RELTOL criteria satisfaction for the whole original matrix A 2023-11-14 04:42:05 -08:00
scr2016 1287f67c9e added quick return if possible for MAXK = 0 in dgeqp3rk.f 2023-11-14 04:42:05 -08:00
scr2016 614452f28e changed KMAX into MAXK in dlaqp2rk.f, dgeqp3rk.f 2023-11-14 04:42:05 -08:00
scr2016 f5a907d796 changed comments for JPIV in dgeqp3rk.f dlaqp2rk.f dlaqp3rk.f 2023-11-14 04:42:05 -08:00
scr2016 e8517680f9 changed order of code blocks at the beginning in dgeqp3rk.f and added comments at the end of dlaqp2rk.f about setting MAXC2NRMK, RELMAXC2NRMK and TAU 2023-11-14 04:42:05 -08:00
scr2016 6e9d74860c Changed KP0 to KP1 in dgeqp3rk.f dlaqp2rk.f dlaqp3rk.f 2023-11-14 04:42:05 -08:00
scr2016 dd4c896894 added IMPLCIT NONE to dgeqp3rk.f dlaqp2rk.f dlaqp3rk.f and fixed comments in dlaqp3rk.f 2023-11-14 04:42:05 -08:00
scr2016 ba5afcdadb modified comments in TESTING/LIN/alareq.f TESTING/EIG/alareq.f TESTING/EIG/alarqg.f 2023-11-14 04:42:05 -08:00
scr2016 f238faeafb fixes to implicit declarations 2023-11-14 04:42:05 -08:00
scr2016 706fd1a7f5 added dgeqp3rk.f dlaqp2rk.f dlaqp3rk.f 2023-11-14 04:42:05 -08:00
scr2016 af1bb9e4b4 changed comment in dchkq3 2023-11-14 04:42:05 -08:00
langou ae9c818530 Merge pull request #925 from angsch/master
Add Anderson's tests of NRM2
2023-11-12 08:43:44 -07:00
Angelika Schwarz 26df4b3599 Improve testing of NRM2
Add tests covering arrays with extreme numbers provided in
Anderson E. (2017)
Algorithm 978: Safe Scaling in the Level 1 BLAS
ACM Trans Math Softw 44:1--28
https://doi.org/10.1145/3061665

[D,S]NRM2 coverage improves
lines     59.1% -> 100.0%
branches  30.0% ->  90.0%.

[DZ,SC]NRM2 coverage improves
lines     67.0% -> 100.0%
branches  41.7% ->  91.7%
2023-11-12 07:44:37 +01:00
Weslley S. Pereira f568a60945 Merge pull request #936 from Reference-LAPACK/DMD_improve_comments
make the DMD comments in the header Doxygen compliant
2023-11-11 14:47:37 -07:00
Julien Langou 466401c52b defgroup for DMD in groups-usr.dox 2023-11-11 14:44:58 -07:00
Julien Langou 3ac3bf9fa4 some more improvements to the doxygen documentation 2023-11-11 14:40:20 -07:00
Julien Langou 5d35af84fd add Tennessee, Berkeley, Colorado and NAG 2023-11-11 10:42:03 -07:00
Weslley S. Pereira 2382be4f23 Merge pull request #926 from weslleyspereira/fix-nan-propag-gecon
GECON returns 1 if RCOND is NaN
2023-11-11 10:35:32 -07:00
langou 6261d629e1 Merge pull request #930 from christoph-conrads/917-sorcsd2by1-computes-inaccurate-result
Make vector orthogonalization more reliable
2023-11-11 09:46:20 -07:00
Julien Langou a383745e50 make the DMD comments in the header Doxygen compliant 2023-11-10 20:36:27 -07:00
Christoph Conrads 64897c4474 xLARFGP: avoid overflows
Avoid overflows when XNORM << ABS(ALPHA) << 1.

fixes #934
2023-11-10 20:08:50 +01:00
Weslley S. Pereira d469b91278 Merge pull request #929 from martin-frbg/appv-flang11
Appveyor CI: Expressly request flang 11.0.1 from conda
2023-11-10 09:25:50 -07:00
Weslley S. Pereira 43a55bc960 Merge pull request #933 from Reference-LAPACK/issue931_timdavis__incorrect_blas_level_in_dtrsv
fix #931
2023-11-10 09:02:14 -07:00
Julien Langou 44e942df6d fix #931
fix typo for the blas level of BLAS/SRC/DTRSV
2023-11-10 08:49:41 -07:00
Christoph Conrads 5b0bc5e555 xORBDB5/xUNBDB5: ensure xORBDB6 input has unit norm
Call sites may run into problems when this subroutine computes nonzero
vectors that are very small in norm.
2023-11-10 16:29:41 +01:00
Christoph Conrads 7eb4057d6d xORBDB5/xUNBDB5: detect numerically zero vectors
Do not call xORBDB6/xUNBDB6 with input vectors x that are numerically
zero because this can cause problems at the call sites (xLARFGP
computations might underflow) leading to, e.g., the computation of
nonunitary matrices in the xORCSD2BY1/xUNCSD2BY1 output.
2023-11-09 17:14:58 +01:00
Christoph Conrads 80d7c69a52 xORBDB5/xUNBDB5: introduce real zero parameter
* introduce a parameter representing a real zero for consistency
* stop comparing real values with complex zero
2023-11-09 17:14:58 +01:00
Christoph Conrads ad3d9b8fc4 xORBDB6/xUNBDB6: use safe termination criterion
With a modest amount of random testing on a work station, it is possible
to detect the loss of orthogonality caused by the old early termination
criterion.
2023-11-09 17:14:58 +01:00
Christoph Conrads bc2b374725 xORBDB6/xUNBDB6: do not require unit-norm vector
Do not assume that the vector x passed to these subroutines has
Euclidean norm one (the norm is almost surely smaller than one when
xORBDB5/xUNBDB5 calls this subroutine for the first time).

This commit fixes the occasional inaccurate results computed by
xORCSD2BY1/xUNCSD2BY1.
2023-11-09 17:14:58 +01:00
Weslley S Pereira 68eafc69a8 Makes NaN an illegal value for ANORM on input of GECON. Let NaNs propagate in the computation of RCOND 2023-11-09 09:10:49 -07:00
Martin Kroeker eaa105b0e0 Expressly request flang 11.0.1 from conda 2023-11-08 23:35:08 +01:00
langou 8ecaaf9869 Merge pull request #928 from christoph-conrads/fix-critical-xUNBDB6-typo
xORBDB6/xUNBDB6: fix a constant
2023-11-06 13:47:02 -07:00
Christoph Conrads e0370cabce xORBDB6/xUNBDB6: fix a constant
The commits listed below updated xORBDB6/xUNBDB6 with the aim of
improving numerical stability by avoiding the use of squared values.
With the exception of SORBDB6 these commits did not properly up a magic
constant called `ALPHA` in the code. SORBDB6 was initially updated
correctly before commit a015b21445
inserted an incorrect value again.

The incorrect magic constant may lead to early returns with only
partially orthogonalized output vectors.

Relevant commits:
* 54b3964b0f
* 6479e0f531
* 94419e8bfa
2023-11-06 19:25:22 +01:00
Weslley S. Pereira ada20a01db Merge pull request #927 from pleshkovvli/fix-complex-bdsqr-maxit
Fix complex BDSQR maxit
2023-11-03 08:36:29 -06:00
Vladimir Pleshkov da7f21005e Fix complex BDSQR maxit 2023-11-03 10:29:44 +07:00
Weslley S Pereira 09abbd017b GECON returns 1 if RCOND is NaN 2023-11-02 11:21:34 -06:00
Weslley S. Pereira 3a6f4629e3 Merge pull request #922 from colleeneb/master
Adding in quotes in cmake for Intel ifx and linux build
2023-11-01 11:21:52 -06:00
Weslley S. Pereira e18529f945 Merge pull request #844 from weslleyspereira/try-valgrind
Uses Valgrind for ExperimentalMemCheck in ctest
2023-11-01 11:07:10 -06:00
Weslley S Pereira cfe1114651 Avoid spourious memory leaks in valgrind 2023-11-01 10:56:57 -06:00
Weslley S Pereira 88277c5b8e Solves two memory leaks in the examples 2023-11-01 09:32:50 -06:00
langou 7a29cfe543 Merge pull request #920 from weslleyspereira/makes-cmake-independent-from-Fortran
Always use C as linker language for CBLAS
2023-10-31 19:18:07 -06:00
Weslley S Pereira d8f668cf50 Add option to disable usage of Python in the tests 2023-10-31 17:57:52 -06:00
Weslley S Pereira 833ae881d3 Use Debug mode in valgrind CI 2023-10-31 16:24:52 -06:00
Weslley S Pereira 1cae5392c0 Trying to improve time of the memory check job 2023-10-31 15:02:09 -06:00
Weslley S Pereira 7216a7cd1b Uses Valgrind for ExperimentalMemCheck in ctest 2023-10-31 15:00:42 -06:00
Colleen Bertoni bfc7838cd9 Update CheckLAPACKCompilerFlags.cmake
Adding quotes around a flag passed to the Intel compiler.
2023-10-31 15:40:21 -05:00
Weslley S Pereira dfb84d0c3b Always use C as linker language for CBLAS 2023-10-31 12:40:38 -06:00
langou 33b3a45a90 Merge pull request #834 from weslleyspereira/makes-cmake-independent-from-Fortran
Compilation of LAPACKE possibly independent from Fortran
2023-10-31 12:09:06 -06:00
Weslley S Pereira bf50aff0de Adds test in the CI for the installation of CBLAS and LAPACKE without Fortran compiler 2023-10-31 11:59:50 -06:00
langou 163820243e Merge pull request #904 from kleineLi/apply-roundup_lwork-in-lapack
Apply ROUNDUP_LWORK function in lapack
2023-10-31 11:20:29 -06:00
Weslley S Pereira 981af1160b Fix a minor bug 2023-10-31 11:18:28 -06:00
Weslley S Pereira 6a74005272 Solve a few bugs generated in the previous commit 2023-10-31 11:18:28 -06:00
Weslley S Pereira f70c3febac Some changes to make a possible compilation of LAPACKE independent from a Fortran compiler 2023-10-31 11:18:28 -06:00
langou 02ea2d3c77 Merge pull request #909 from weslleyspereira/fix-xlassq
Fix issue #908 related to accumulation in xLASSQ
2023-10-31 10:42:28 -06:00
langou 461cc2cc8b Merge pull request #896 from weslleyspereira/master
Adds OpenSSF Scorecard badge
2023-10-31 10:41:53 -06:00
Weslley S. Pereira aca7ad1ec6 Merge pull request #907 from soypat/master
dtgex2: add 2 to iwork length to prevent OOB interaction in Dtgsy2
2023-10-31 10:40:59 -06:00
Weslley S. Pereira fa75a821b6 Merge pull request #893 from chayleaf/gnu-install-dirs
allow absolute GNU install dirs
2023-10-31 10:40:31 -06:00
Weslley S. Pereira 62e6bdfc71 Merge pull request #880 from martin-frbg/issue879
Update C prototypes and LAPACKE interfaces for ?GEDMD/?GEDMDQ
2023-10-31 10:40:09 -06:00
kleine_li 88810e4079 Apply ROUNDUP_LWORK func in SRC/VARIANTS/qr/LL 2023-10-31 21:53:13 +07:00
kleine_li f01a4d7c5f Apply ROUNDUP_LWORK func in lapack 2023-10-31 21:53:10 +07:00
Weslley S. Pereira 4174d8d080 Merge pull request #910 from scivision/cmake_min
Fix build for CMake >= 3.27
2023-10-12 15:05:52 -06:00
scivision 0a52d71f09 LAPACK CMakeLists.txt was using features from CMake 3.6 already
CMake 3.27 warns for cmake_minimum_required < 3.5
2023-10-12 15:42:13 -04:00
Weslley S Pereira c4f8085e66 Applies fix following @angsch's suggestions 2023-09-15 15:31:30 -06:00
Weslley S Pereira 78b3aab273 fix issue #908 2023-09-14 13:05:08 -06:00
chayleaf ddca8374dc respect GNU install dirs
CMAKE_INSTALL_LIBDIR is allowed to be an absolute path. Use
CMAKE_INSTALL_FULL_LIBDIR instead.
2023-09-13 11:15:53 +07:00
soypat 710c8bb61d same change to stgex2 2023-09-12 18:35:00 -03:00
soypat f43a41db80 dtgex2: add 2 to iwork length to prevent OOB interaction in Dtgsy2 2023-09-08 20:10:54 -03:00
Weslley S. Pereira ae2f14fe1f Merge pull request #898 from ACSimon33/intelllvm_and_nvhpc
CMake config for IntelLLVM (ifx) and NVIDIA HPC SDK (nvfortran)
2023-08-30 11:02:55 -06:00
langou 8da11d1c4f Merge pull request #900 from angsch/master
Remove auxiliary GEQRS, GELQS
2023-08-28 23:07:20 -06:00
Angelika Schwarz 0d1e3ecdd9 Remove auxiliary GEQRS, GELQS
GEQRS and GELQS were likely computational routines once,
(they have an input argument check, which auxiliary/test
routines typically do not have) but have been superseded by
GELS a long time ago. The only remaining occurrences
are in the tests CHKQR and CHKLQ, where they are auxiliary
routines to widen the test coverage.

* Replace GEQRS and GELQS by calls to GELS in tests
* Remove the functions from the error exit tests
* Move GEQRS and GELQS to the deprecated routines

Closes #709
2023-08-28 19:49:41 +02:00
Simon Maertens 64d95ed569 Added CMake config for NVIDIA HPC compilers (nvfortran) 2023-08-24 15:32:47 +01:00
Simon Maertens 3f1aef1497 Fixed compiler flags for IntelLLVM compiler (ifx) 2023-08-24 15:06:37 +01:00
Weslley S Pereira d5c4999fcb Adds OpenSSF Scorecard badge 2023-08-22 16:19:26 -06:00
langou 8fb58fb33c Merge pull request #895 from gabibguti/master 2023-08-22 16:04:33 -06:00
Gabriela Gutierrez f4c28d6b89 Add Scorecard
Since actions are referenced by commit SHA, it's important to make sure the SHA's are from the original repositories and not forks.

For reference:

https://github.com/actions/checkout/releases/tag/v3.5.3
https://github.com/actions/checkout/commit/c85c95e3d7251135ab7dc9ce3241c5835cc595a9

https://github.com/ossf/scorecard-action/releases/tag/v2.2.0
https://github.com/ossf/scorecard-action/commit/08b4669551908b1024bb425080c797723083c031

https://github.com/actions/upload-artifact/releases/tag/v3.1.2
https://github.com/actions/upload-artifact/commit/0b7f8abb1508181956e8e162db84b466c27e18ce

https://github.com/github/codeql-action/releases/tag/codeql-bundle-v2.14.2
https://github.com/github/codeql-action/commit/f9a7c6738f28efb36e31d49c53a201a9c5d6a476


Signed-off-by: Gabriela Gutierrez <gabigutierrez@google.com>
2023-08-22 17:31:51 -03:00
langou 29832988b5 Merge pull request #843 from weslleyspereira/fix-248
Updates the documentation of xGEMV and xGBMV related to when M=0 and N=0
2023-08-22 12:58:28 -06:00
Weslley S Pereira 658ac9dbbb Updates documentation of *gemv.f, *gbmv.f, *la_gbamv.f, *la_geamv.f 2023-08-22 11:58:49 -06:00
Weslley S. Pereira 9138a87629 Merge pull request #892 from weslleyspereira/try-disabling-experimental-ctest
Removes usage of Experimental (interactive) mode in ctest
2023-08-12 09:36:20 -07:00
Weslley S Pereira 7c7b380e2d Removes usage of Experimental (interactive) mode in ctest. It is not working well in the Github Actions 2023-08-11 18:01:53 -07:00
scr2016 30b43ed625 fixes to implicit declarations 2023-08-11 14:43:09 -07:00
langou 47fd4fde6a Merge pull request #889 from angsch/master
Improve Cholesky variants
2023-08-11 11:06:49 -06:00
Angelika Schwarz 8e4ad311c1 Use potrf2 in Cholesky variants
Replace the scalar potf2 with the recursive potrf2 implementation.
The latter is already used in the default Cholesky factorization.
2023-08-09 19:12:09 +02:00
scr2016 b8475a728d added dgeqp3rk.f dlaqp2rk.f dlaqp3rk.f 2023-08-09 09:07:52 -07:00
scr2016 fffd38fedc changed comment in dchkq3 2023-08-08 17:00:44 -07:00
langou 129637ea6f Merge pull request #885 from mjacobse/fix_procedure_args
Fix actual arguments in some procedure calls
2023-07-18 08:33:40 -06:00
Marcel Jacobse 2f2e7cb5f5 Fix actual arguments in some procedure calls
Some calls did not match the actual procedure definition
2023-07-14 13:26:31 +02:00
Martin Kroeker 914f719422 properly cast from zwork_query result to lzwork 2023-07-12 15:29:39 +02:00
Martin Kroeker b85e2bd578 fix types of work and zwork array in c/zgedmd interfaces 2023-07-11 23:25:46 +02:00
Martin Kroeker 6eecdf6c0c update to match c/zgedmd interface fixes 2023-07-11 23:24:10 +02:00
langou c57e36a43b Merge pull request #883 from angsch/master
Fix workspace query corner cases
2023-07-11 08:55:54 -06:00
Angelika Schwarz 98f3f675f9 Fix workspace query corner case
If N = 0, a workspace query returns WORK( 1 ) = 0 as the required
workspace. If this result is used to allocate workspace, then
LWORK = 0 and the next call triggers xerbla since LWORK.LT.1.
2023-07-11 15:56:42 +02:00
Martin Kroeker cc4798ea38 Adjust prototypes of Dynamic Mode Decomposition functions 2023-07-09 18:20:22 +02:00
Martin Kroeker 1575bb8e19 Update LAPACKE interfaces for Dynamic Mode Decomposition 2023-07-09 18:10:48 +02:00
langou 308bf2f9dc Merge pull request #878 from vladimir-ch/fix-lapacke-xlarfb
Fix computation of uplo in LAPACKE_xlarfb
2023-07-07 12:36:39 -06:00
Vladimir Chalupecky 5ea1d00b4c Fix computation of uplo in LAPACKE_xlarfb
The shape of V depends on how the vectors are stored, not from which
side the block reflector is applied.

Fixes #877
2023-07-07 19:12:29 +02:00
langou f92afd2c86 Merge pull request #876 from eaberendeev/master
fix nrhs=0 case in ?gelss
2023-07-07 01:01:13 -06:00
Evgeny Berendeev 2778e092a0 fix nrhs=0 case in ?gelss 2023-07-07 10:02:40 +07:00
langou 4b54a336a4 Merge pull request #839 from weslleyspereira/try-crscl
Adds CRSCL
2023-07-04 09:48:24 -06:00
langou 8b7f5106d4 Merge pull request #867 from aravindh-krishnamoorthy/826
Correct the order of returned eigenvalue and eigenvectors for 2x2 matrices with IL=IU in C/D/S/Z/STEMR
2023-07-04 08:38:55 -06:00
langou 3b4fea67ce Merge pull request #861 from mkrainiuk/blas_64_macro
Reduce number of macros in fortran compilation line for BLAS _64 API
2023-07-04 07:44:25 -06:00
langou a1f308a2f0 Merge pull request #853 from mkrainiuk/master
Create DOCS/CBLAS.md
2023-07-04 05:18:42 -06:00
langou d19d6f5321 Merge pull request #802 from mgates3/docs
new doxygen group structure
2023-07-04 05:06:45 -06:00
Mark Gates 71079551f2 doxygen: customize layout to rename Modules to Routines 2023-07-04 02:52:03 -04:00
Mark Gates c125c2dd2d doxygen: add default layout 2023-07-04 02:52:01 -04:00
Mark Gates 3c5ca872da doxygen: update config and Makefile, use same config for html and man 2023-07-04 02:50:22 -04:00
Mark Gates 303a3ecaa5 rotg: add description to doxygen 2023-07-04 01:29:14 -04:00
Mark Gates bd9bf0bb4c lassq: rename variable scale to match docs 2023-07-04 01:29:14 -04:00
Mark Gates fd23cd98a3 lagtm: fix matrix-vector to matrix-matrix 2023-07-04 01:29:14 -04:00
Mark Gates 62b19990a2 doxygen: new group structure 2023-07-04 01:29:12 -04:00
Maria Kraynyuk fd230d2335 Update CBLAS.md 2023-07-03 12:16:54 -07:00
Maria Kraynyuk 80b492d102 Reduce number of macros in fortran compilation line for BLAS_64 2023-06-28 16:09:08 -07:00
Aravindh Krishnamoorthy 128b0a9b5f Issue #826: Initial version of the fix in c/d/s/z/stemr.f for 2x2 matrices. 2023-06-28 10:51:20 +02:00
Aravindh Krishnamoorthy 326b78e1e3 #826: Whitespace correction 2023-06-27 21:14:32 +02:00
Aravindh Krishnamoorthy 6f039cb044 #826: Eigenvectors bug in dstemr.f 2023-06-27 21:13:54 +02:00
Aravindh Krishnamoorthy 3a7690c094 #826: Correct bug in dstemr.f 2023-06-27 20:08:22 +02:00
Weslley S Pereira d212879672 Fix bugs in ZRSCL 2023-06-26 10:12:50 -06:00
Weslley S Pereira c9a49d98cf Adds zrscl in the build environments 2023-06-26 09:39:40 -06:00
Weslley S Pereira bfcece32ec Adding zrscl.f 2023-06-26 09:34:24 -06:00
Weslley S. Pereira e2428ec4cb Merge pull request #860 from chrwarm/openmp_bug
[cz]hetrd_hb2st.F, [sd]sytrd_sb2st.F OpenMP fixes
2023-06-26 11:18:26 -04:00
langou a763f93844 Merge pull request #857 from mkrainiuk/cblas_64
Add Index-64 API as extended API with _64 suffix for CBLAS
2023-06-26 08:17:05 -06:00
langou 94f7c9e881 Merge pull request #858 from mkrainiuk/build_verbose 2023-06-24 00:51:28 -06:00
Maria Kraynyuk ad219dc3c3 Add verbose build to CI 2023-06-23 16:17:48 -07:00
Maria Kraynyuk c2c4dc1d1e Create DOCS/CBLAS.md 2023-06-22 16:23:05 -07:00
Maria Kraynyuk b48dd0df13 Make blas dependency public for cblas 2023-06-22 16:15:42 -07:00
Maria Kraynyuk ce3f662e12 Add Index-64 API as extended API with _64 suffix for CBLAS 2023-06-22 16:15:41 -07:00
Chris Armstrong bed71eb125 [cz]hetrd_hb2st.F, [sd]sytrd_sb2st.F OpenMP fixes
TID is an unmodified OpenMP private variable,
whose value is undefined in this code path. Since
it's within 'OMP MASTER', safe to assume its
value should be zero.
2023-06-22 17:56:40 +01:00
langou 934313c7d4 Merge pull request #852 from angsch/clean-no-guard-digit
Remove legacy warning for non IEEE 754 compliant machines
2023-06-21 10:30:38 -06:00
Angelika Schwarz e186ae44b7 Remove manipulation of lambda due to missing guard digit
* Rename dlamda -> dlambda
* Remove those calls to lamc3 that are a workaround for
  old Cray machines
* Document the purpose of the remaining lamc3 calls
* Update documentation where dlambda has become an input
  rather than input & output

Thanks to @langou and Prof Demmel for investigating
the purpose of the lamc3 calls and suggesting
a solution.
2023-06-21 18:01:49 +02:00
Angelika Schwarz ba727de304 Remove legacy overflow warning for non-IEEE 754 machines 2023-06-21 18:01:49 +02:00
Angelika Schwarz 5590164fe2 Remove outdated warning when guard digits are missing
This comment is irrelevant on any machine that realizes
IEEE 754.
2023-06-21 18:01:49 +02:00
Weslley S. Pereira ccdc1a5ba6 Merge pull request #856 from Reference-LAPACK/revert-846-master
Revert "Add Index-64 API as extended API with _64 suffix for CBLAS"
2023-06-21 09:48:00 -04:00
langou 88aa204975 Revert "Add Index-64 API as extended API with _64 suffix for CBLAS" 2023-06-21 02:33:49 -06:00
langou a9a4288159 Merge pull request #855 from mtowara/markust/fix_doc
fix dlasd0 / slasd0 documentation issue
2023-06-19 03:45:21 -06:00
towara 3735794d62 fix dlasd0 / slasd0 documentation issue 2023-06-19 11:30:20 +02:00
langou 824c1cfeae Merge pull request #854 from angsch/dynamic-alloc
Attempt to fix Appveyor on Windows
2023-06-17 04:07:51 -06:00
Angelika Schwarz e6a8f4b98d Use dynamic allocation in SYL01 tests 2023-06-17 10:51:33 +02:00
langou a83d8d2821 Merge pull request #846 from mkrainiuk/master
Add Index-64 API as extended API with _64 suffix for CBLAS
2023-06-06 14:54:08 -06:00
Maria Kraynyuk 4c2236a536 Add Index-64 API as extended API with _64 suffix for CBLAS 2023-06-06 10:56:33 -07:00
langou bd77187e75 Merge pull request #849 from jaganmn/gh848
fixes #848
2023-06-05 08:46:48 -06:00
Mikael Jagan 2202db0753 fix misuse of term "minor" 2023-06-05 10:33:54 -04:00
langou 53361bfddd Merge pull request #736 from dbielich/master
Adding Dynamic Mode Decomposition (DMD) into LAPACK
2023-06-05 08:15:11 -06:00
langou cea4a6315c Merge pull request #847 from angsch/master
Improve variants of Cholesky and QR
2023-06-03 10:52:01 -06:00
Angelika Schwarz 65df15e8f5 Remove SCEIL, replace calls with intrinsic CEILING
sceil.f is only referenced in SRC/VARIANTS/qr/LL/.
Replace all occurrences of calls to sceil with
the Fortran intrinsics CEILING, which is already
used by a bunch of other routines.
2023-06-02 18:02:13 +02:00
Angelika Schwarz de83ba6bb9 Fix typos in docs of variants of Cholesky and QR 2023-06-02 17:38:27 +02:00
Daniel Bielich 561e5bdabc Requested changes for typos and convention errors in branch 2023-06-02 07:28:31 -05:00
langou fd82c8710b Merge branch 'master' into master 2023-06-01 10:42:23 -06:00
Weslley S Pereira 59a1772336 (Last?) version of RSCL 2023-06-01 08:22:06 -06:00
Daniel Bielich 8ade5d11d2 Pushing final comments on PR for current progress 2023-05-31 22:51:27 -05:00
langou f86d08bae6 Merge pull request #845 from weslleyspereira/try-better-message-fortran-intrinsic-tests 2023-05-30 12:28:23 -06:00
Weslley S Pereira 35b7a4b5d3 Use a better (more informative) message when we say the compiler intrinsics fail 2023-05-30 11:53:40 -06:00
Weslley S Pereira 9e7c7ae87b Updates the documentation of xGEMV and xGBMV related to when M=0 and N=0 2023-05-26 09:32:11 -06:00
Weslley S. Pereira c8f7bbb0ea Merge pull request #832 from weslleyspereira/fix-243
Removes unused variable from bdsqr
2023-05-26 09:11:24 -06:00
Weslley S Pereira 8b27cefdc9 Apply suggestions from @angsch 2023-05-26 08:46:04 -06:00
langou de2b976093 Merge pull request #836 from weslleyspereira/fix_lapacke_dgeesx
Fix bug in lapacke_[s,d]geesx
2023-05-26 07:19:05 -06:00
Weslley S. Pereira bd82aa0dfc Merge pull request #524 from weslleyspereira/try-github-actions-for-windows
Create GitHub action to test CMake build system on Windows
2023-05-25 10:53:21 -06:00
Weslley S Pereira 88f56cef6d For now, do not run tests on Windows 2023-05-25 10:08:56 -06:00
Weslley S Pereira f7b6056501 Test adding unlimited stack size for tests 2023-05-25 09:27:26 -06:00
Weslley S Pereira f37aa33819 Removes -j2 from build flags. Ninja should manage the parallel build 2023-05-24 17:47:41 -06:00
Weslley S Pereira 633440e5d5 Adds tests for windows-latest on cmake.yml 2023-05-24 17:25:42 -06:00
Weslley S Pereira 831ac96880 Adds CRSCL 2023-05-24 16:59:25 -06:00
langou 0c44dd4a6c Merge pull request #837 from weslleyspereira/fix-laruv
Exits xLARUV when N < 1
2023-05-24 16:23:45 -06:00
Weslley S Pereira 8db97d347d Applies changes from @zerothi at #225 2023-05-24 16:19:53 -06:00
langou 24c6a91e8c Merge pull request #830 from weslleyspereira/fix-103
Fix scaling in (S/D)TGSNA, fix #103, thanks to @elivanova
2023-05-24 14:12:58 -06:00
Weslley S Pereira 14bb2a9605 Fix bug in lapacke_[s,d]geesx 2023-05-24 11:09:50 -06:00
langou 971b058eb3 Merge pull request #831 from weslleyspereira/fix-230
update brief descriptions of function purpose, Closes #230
2023-05-24 06:40:07 -06:00
langou 0e91dd38e8 Merge pull request #833 from weslleyspereira/fix-258
Adds comment related to zero-sized matrix B in GELSY
2023-05-24 06:38:47 -06:00
Weslley S. Pereira 9f4b5d27d4 Merge pull request #768 from sbite0138/fix-766
Thanks @sbite0138 !!
2023-05-23 19:04:30 -06:00
Weslley S Pereira b354d10d6f Remove unnecessary transposition of t_t on input 2023-05-23 19:03:16 -06:00
Weslley S Pereira b788b4ad20 Fix comments to close issue #259 2023-05-23 18:45:34 -06:00
Weslley S Pereira f17dc240ef Adds comment related to zero-sized matrix B in GELSY 2023-05-23 18:25:27 -06:00
Weslley S Pereira ae54ebc87c Removes unused SMIN from bdsqr 2023-05-23 18:03:00 -06:00
Weslley S Pereira 48adc215a0 Closes #230 2023-05-23 17:49:53 -06:00
Weslley S Pereira 5db45a2c4e Fix 103 thanks to @elivanova 2023-05-23 14:51:32 -06:00
langou dfad0d5639 Merge pull request #827 from sknepper/fix-726
LAPACKE interfaces for [cz]unhr_col and [sd]orhr_col
2023-05-15 12:49:46 -06:00
Weslley S. Pereira 133e753f9c Merge pull request #829 from gabibguti/master
Reference actions by commit SHA
2023-05-09 12:16:31 -06:00
Gabriela Gutierrez a2e8d06412 Ref actions/checkout by commit SHA in makefile.yml
Signed-off-by: Gabriela Gutierrez <gabigutierrez@google.com>
2023-05-09 13:04:18 -03:00
Gabriela Gutierrez 466b9b3ccf Ref actions/checkout by commit SHA in cmake.yml
Signed-off-by: Gabriela Gutierrez <gabigutierrez@google.com>
2023-05-09 13:02:56 -03:00
Knepper, Sarah 3b4587fb0d LAPACKE interfaces for [cz]unhr_col and [sd]orhr_col 2023-05-07 19:39:11 -07:00
Daniel Bielich 59f4d5828b Documentation fix 2023-05-07 16:52:06 -04:00
Daniel Bielich c6c26897d5 Fixes for the integer workspace 2023-05-07 16:47:21 -04:00
Daniel Bielich e798ab29fd Fixing interger workspace allocation 2023-04-18 18:08:06 -04:00
langou 6d6189d1da Merge pull request #822 from nim65s/ci 2023-04-18 15:27:14 -06:00
Daniel Bielich 7e422850f5 Addressing lapacke incorrectness and comments to the PR in general 2023-04-18 14:53:16 -04:00
langou 3c858f714b Merge pull request #821 from nim65s/master
CMake: avoid "make" in blas++ & lapack++
2023-04-18 11:40:32 -06:00
Guilhem Saurel 92399d4863 appveyor: output test failures 2023-04-18 18:18:22 +02:00
Guilhem Saurel 5ca88518a1 cmake: avoid make in blaspp/lapackpp 2023-04-18 13:44:56 +02:00
langou e860053d30 Merge pull request #795 from dklyuchinskiy/lapack-extend-error-checks-sysv-sytd2-gehd2
extend tests for error exit sysv sytd2 gehd2
2023-04-14 19:08:37 -06:00
langou c791b99b46 Merge pull request #820 from vaerksted/master
typos
2023-04-11 13:06:06 -06:00
musvaage f3fff11ccf typos 2023-04-11 13:52:58 -05:00
langou 647dded38e Merge pull request #819 from gabibguti/master
Add Security Policy
2023-04-11 12:12:36 -06:00
Gabriela Gutierrez 92f96a0cac Create SECURITY.md
Signed-off-by: Gabriela Gutierrez <gabigutierrez@google.com>
2023-04-11 11:21:54 -03:00
langou e270bf800d Merge pull request #812 from svillemot/master 2023-04-06 06:54:08 -06:00
Martin Kroeker a6c76767b0 Merge pull request #807 from martin-frbg/issue790
Replace the (partially defined) constant index variable INDIBL in ?SBGVX and related
2023-04-05 21:02:51 +02:00
Weslley S. Pereira 313ef8058a Merge pull request #814 from Reference-LAPACK/typos_issue_813
fix #813
2023-04-05 08:57:57 -06:00
Julien Langou 45b5d663d4 fix #813 2023-04-04 20:21:43 -06:00
Sébastien Villemot 52aaaabfa9 CTGEVC, ZTGEVC: fix typo in description of VR argument 2023-04-04 17:10:19 +02:00
langou 3d816ea72c Merge pull request #811 from jip/fix
Fix typos in comments
2023-04-02 19:12:18 -06:00
Igor Zhuravlov a608bc2bb4 fix comments
add datatype declaration for LWORK
2023-04-03 09:41:09 +10:00
Igor Zhuravlov d61b9bb00a fix doxygen markup 2023-04-03 09:39:21 +10:00
langou 1d86d5327a Merge pull request #810 from joseeroman/jose/cmake-updates
cmake: allow setting a prefix for the library names
2023-04-02 08:11:56 -06:00
Jose E. Roman 1c163c83fe cmake: allow setting a prefix for the library names 2023-04-01 11:08:09 +02:00
Jose E. Roman a765f60b99 cmake: include LAPACKE subdir only if it was selected 2023-04-01 11:06:40 +02:00
langou 31a36682a2 Merge pull request #809 from jip/fix
Fix typos and errors in comments
2023-03-29 06:58:20 -06:00
Igor Zhuravlov 1f0d9615f1 fix comments about workspace length
Some subroutines use WORK(1) but declare WORK length pro rata N which could be equal to 0.
2023-03-29 16:09:45 +10:00
Igor Zhuravlov c30a2531bb fix typos in documentation of GEJSV
RWORK was mentioned as WORK
2023-03-29 16:07:04 +10:00
langou 38f7703fd8 Merge pull request #808 from eprovst/gebal
Refactor xGEBAL
2023-03-28 07:36:29 -06:00
Evert Provoost 9c489fd829 Spend less time checking for NaN in xGEBAL 2023-03-28 12:10:47 +02:00
Evert Provoost 21231d88ef Refactored GEBAL family 2023-03-28 12:10:47 +02:00
Daniel Bielich b5f984f213 Fixing lapacke wrappers for memory leak conventions 2023-03-27 11:58:41 -04:00
Martin Kroeker a37f229a71 Replace the partially defined constant INDIBL with 1 2023-03-26 17:09:15 +02:00
Daniel Bielich f74a632337 Finishing up first impl of lapacke wrappers, waiting for review to revise 2023-03-24 14:31:13 -04:00
Daniel Bielich cc502278b1 Adding first precision of dmdq impl for lapacke 2023-03-24 11:48:51 -04:00
Daniel Bielich fbd853cc3a Adding lapacke wrappers for dmd routines - dmdq is needed yet 2023-03-24 11:04:17 -04:00
langou 7ac31faec5 Merge pull request #805 from angsch/labad
Remove legacy function LABAD
2023-03-22 07:53:02 -06:00
Angelika Schwarz 542f4f894d Remove LABAD from testing routines 2023-03-22 09:00:44 +01:00
Daniel Bielich e52daa3151 Fixing compilation warning error for git 2023-03-21 17:14:46 -04:00
Daniel Bielich 1e2d26e27e adding correction to schkdmd tester 2023-03-21 17:11:25 -04:00
Daniel Bielich c91783e615 Merge branch 'master' of https://github.com/dbielich/lapack88 2023-03-21 16:12:27 -04:00
Daniel Bielich 25030ae79e Improving testers - will need to investigate float precision impl 2023-03-21 16:11:43 -04:00
Daniel Bielich bd1204d726 Merge branch 'Reference-LAPACK:master' into master 2023-03-21 14:59:40 -04:00
Angelika Schwarz add62ef56a Remove legacy function LABAD
See https://github.com/Reference-LAPACK/lapack/issues/96
2023-03-21 18:27:13 +01:00
langou cfaa5aefab Merge pull request #682 from angsch/trevc3
Add numerical tests for trevc3
2023-03-18 07:17:43 -06:00
Daniel Bielich 3b08c51597 Updating src files, testing all precisions. Some clean-up remains but overall addition is complete 2023-03-16 17:28:32 -04:00
langou f505ed3f3f Merge pull request #804 from gabibguti/master
Add minimum permissions to workflows
2023-03-15 09:05:29 -06:00
Gabriela Gutierrez 984abd0561 Add minimum permissions to cmake.yml
Signed-off-by: Gabriela Gutierrez <gabigutierrez@google.com>
2023-03-15 14:16:40 +00:00
Gabriela Gutierrez 4420a7de2d Add minimum permissions to makefile.yml
Signed-off-by: Gabriela Gutierrez <gabigutierrez@google.com>
2023-03-15 14:16:34 +00:00
langou 3caa4c0688 Merge pull request #750 from angsch/master
Fix typos in documentation
2023-03-05 15:10:55 -07:00
Angelika Schwarz cda0ad3d9a Fix typos in documentation of GEJSV 2023-03-05 18:33:20 +01:00
Weslley S. Pereira 52e4974b59 Merge pull request #761 from jschueller/patch-3
CMake: Disable TEST_FORTRAN_COMPILER by default
2023-02-26 21:16:44 -07:00
langou 23587aaf81 Merge pull request #798 from EduardFedorenkov/master
fix bug in complex precision tests (c|z)het21
2023-02-17 18:38:25 -07:00
EduardFedorenkov ef12723763 fix bug in complex precision tests (c|z)het21 2023-02-17 15:32:00 +07:00
langou eb8f5fa646 Merge pull request #796 from dklyuchinskiy/678-fix-test-rfp
fix rfp test for DIAG = U
2023-02-14 07:05:38 -07:00
Dmitry Klyuchinsky 5fd6d64734 fix rfp test: divide rows of matrix by corresponding diagonal element for DIAG = U 2023-02-14 15:21:46 +07:00
Dmitry Klyuchinsky 56934c7699 fix typo in driver for sysv_aa_2stage to run correct error checker 2023-02-14 12:33:38 +07:00
Dmitry Klyuchinsky aa43f301e5 add test for error exit gehd2 2023-02-14 12:30:58 +07:00
Dmitry Klyuchinsky 86d01a7aa2 extend test for error exit for sysv routines 2023-02-14 12:27:24 +07:00
Dmitry Klyuchinsky ab92781296 add test for error exit sytd2/hetd2 2023-02-14 12:18:26 +07:00
langou b1e25a3b67 Merge pull request #794 from thijssteel/multishiftqz-fix-shiftpos
don't subtract N_DEFLATED from istop twice
2023-02-10 20:24:38 -07:00
thijs 65850558e0 don't subtract N_DEFLATED from istop twice 2023-02-10 08:51:57 +01:00
Daniel Bielich c65a7a77d4 Progress to resolving the bug with complex testers 2023-02-09 13:10:42 -05:00
langou 10abd46dd1 Merge pull request #792 from dklyuchinskiy/fix-sbgv-xerbla-call
remove redundant space from xerbla call sbgv/hbgv
2023-02-08 07:03:14 -07:00
Dmitry Klyuchinsky 9f7c029040 remove redundant space from xerbla call sbgv/hbgv 2023-02-08 14:46:12 +07:00
langou 1fafb88f2c Merge pull request #782 from jgpallero/master
Warnings supression and deletion of unnecessary check in some LAPACKE xLARFB functions
2023-01-13 15:56:44 -07:00
J.L.G. Pallero 08f7efeba8 Warnings supression and deletion of unnecessary check in some LAPACKE xLARFB functions 2023-01-13 23:39:24 +01:00
Weslley S. Pereira 3a8b7579c6 Merge pull request #781 from Reference-LAPACK/revert-780-master
Revert "Warnings supression in some LAPACKE functions"
2023-01-13 13:31:03 -07:00
langou 60a3770406 Revert "Warnings supression in some LAPACKE functions" 2023-01-13 12:48:55 -07:00
langou 5bb9ab9a8f Merge pull request #780 from jgpallero/master
Warnings supression in some LAPACKE functions
2023-01-13 12:42:13 -07:00
J.L.G. Pallero b0b4577451 Warnings supression in some LAPACKE functions 2023-01-13 19:29:46 +01:00
langou 5aa66ade01 Merge pull request #775 from echeresh/echeresh/fix-larr
Fix uninitialized out variables in *LARR* functions
2022-12-19 09:20:19 -07:00
langou 351b443ef2 Merge pull request #764 from bartoldeman/fix-cslatrs3-test 2022-12-07 11:11:53 -07:00
sbite0138 a942408a9a Revert change regarding ldt_t value 2022-12-08 01:55:19 +09:00
Daniel Bielich 21059dca70 Progressing code 2022-12-06 16:17:38 -05:00
Chereshnev, Eugene 9a616e191c Fix uninitialized out vars in *LARR* functions 2022-12-05 09:46:47 -08:00
langou 687bec3241 Merge pull request #773 from mgates3/tgsen
In LAPACKE tgsen, allocate iwork when ijob = 0. Fixes #772.
2022-12-01 16:15:51 -07:00
Mark Gates 01fb2060b5 In LAPACKE tgsen, allocate iwork when ijob = 0. Fixes #772. 2022-12-01 15:24:59 -07:00
langou 690e111e8f Merge pull request #769 from akobotov/fix_quick_return_in_larrd
Fix uninitialized M when quick return in DLARRD and SLARRD
2022-11-29 08:12:22 -07:00
Alexandr Kobotov 6ae0fbe7aa Fix uninitialized M when quick return in DLARRD and SLARRD 2022-11-29 18:55:08 +07:00
sbite0138 9764e5c703 fix segfault problem when executing with row major #766 2022-11-28 23:35:11 +09:00
langou a72090a912 Merge pull request #767 from svillemot/master
Fix CBLAS tests with 64-bit indexing
2022-11-27 09:11:01 -07:00
Sébastien Villemot 776a0223b0 Fix CBLAS tests with 64-bit indexing
This patch replaces all instances of “int” by “CBLAS_INT” in CBLAS/testing/*.c
(except for RowMajorStrg which has must remain an “int”, since it is declared
as such in CBLAS main code).

Interestingly, the bug would not manifest on low endian architectures,
because interpreting an int64_t pointer as an int32_t pointer works there (as
long as the integers fits in 31 bits, which is the case here). But on big
endian architectures, this of course fails badly.
2022-11-27 13:18:46 +01:00
langou 77fac7e835 Merge pull request #758 from dklyuchinskiy/lapack-fix-failure-eigtstz-zec
Fixed bug in array bounds in complex syl01 test
2022-11-23 07:08:41 -07:00
langou 9d85a7abbf Merge pull request #765 from weslleyspereira/master
Check for NaNs in *GECON
2022-11-22 18:51:14 -07:00
Weslley S Pereira 5d8a3a804b Check for NaNs in xGECON 2022-11-22 18:44:40 -07:00
Weslley S. Pereira 9b6076ab66 Merge branch 'master' into fix-cslatrs3-test 2022-11-22 12:08:31 -07:00
Weslley S. Pereira 9067b6b23c Merge pull request #755 from dklyuchinskiy/master
Fix bug in new test case for LAPACK 3.11 SLATRS3
2022-11-22 12:06:50 -07:00
Bart Oldeman 7f09f40bf4 Fix SLATRS3 and CLATRS3 tests
Some SLATRS3 tests were failing with OpenBLAS where the RHS has
a BIGNUM (=Infinity in this test) component. OpenBLAS SSCAL, when
multiplying with 0, will turn this component into 0, unlike
reference BLAS which turns it into NaN. While NaN looks more correct
it still did not explain why DLATRS3 tests were succeeding where
DSCAL has the same difference between reference and OpenBLAS.

Diffing the test code unmasked a few bugs, which makes the test succeed
and also unmasked a bug in the CLATRS3 test.

The ZLATRS3 and DLATRS3 tests look correct to me.
2022-11-22 01:08:27 +00:00
langou 159cdae627 Merge pull request #762 from ACSimon33/osx_flat_namespace
Added option to enable flat namespace on macOS
2022-11-21 07:04:18 -07:00
Simon Maertens 12f2f0ab37 Enabled flat namespace in macOS github workflows. 2022-11-20 00:22:20 +01:00
Simon Maertens 05043da7a6 Formatting. 2022-11-19 23:56:42 +01:00
Simon Maertens 9448b7ea99 Enabled flat namespace in macOS travis builds. 2022-11-19 23:36:27 +01:00
Simon Maertens 615727d1d4 Added option to enable flat namespace on macOS. 2022-11-19 23:18:45 +01:00
Simon Maertens e7afed35fb Fixed usage of HAS_ATTRIBUTE_WEAK_SUPPORT. Formatted cblas_f77.h 2022-11-19 21:25:15 +01:00
Julien Schueller feed6a7534 CMake: Disable TEST_FORTRAN_COMPILER
Closes #757
2022-11-18 19:23:41 +01:00
langou ca40397913 Merge pull request #760 from ACSimon33/windows_build_fix
Windows build fix
2022-11-18 08:50:46 -07:00
Simon Märtens 273d758e4a Fixed wrong external function name '[D|Z]GESVQ' -> '[D|Z]GESVDQ' 2022-11-18 16:37:47 +01:00
Simon Märtens 846f3cb324 Removed unnecessary return statement in void function. 2022-11-18 16:36:53 +01:00
Dmitry Klyuchinsky 9b5e2c50e3 fixed bug in array bounds in complex syl01 test 2022-11-18 17:58:06 +07:00
Daniel Bielich 7bfb8ffbff single precision tester finished, working on double complex 2022-11-17 14:43:09 -05:00
Dmitry Klyuchinsky a4dd9261ef use lsame instead EQ in iparam2stage 2022-11-17 19:10:08 +07:00
Dmitry Klyuchinsky 7f9f67572a fix wrong indexation in slatrs3 test 2022-11-17 19:06:00 +07:00
Daniel Bielich c4adf64dc0 Removing unused variables 2022-11-15 13:25:11 -05:00
Daniel Bielich fd272e7f44 Progress to the testing implementation in double precision 2022-11-09 11:40:48 -05:00
Daniel Bielich 7aeab0792e Fix for complex dmdq codes and progress to tester 2022-11-02 14:11:16 -04:00
Daniel Bielich a8e4012130 Adding the DMDQ codes 2022-10-21 22:20:42 -04:00
Daniel Bielich dc9b4e8552 Updating precision routines and beginning integration of tester 2022-10-19 14:37:12 -04:00
Daniel Bielich cea00a7ae7 Adding DMD algorithm in four precisions, tester will follow 2022-10-18 17:52:57 -04:00
Angelika Schwarz 0a6cd43189 Rewrite [ds]hgeqz to use FMA with Householder reflectors 2022-07-06 18:48:23 +01:00
Angelika Schwarz 9f9295f572 standardize style in laqr5 2022-07-06 18:48:23 +01:00
Angelika Schwarz 22d172188c Add missing numerical tests for TREVC3
At least some tests, though there are still code paths
that are not covered
* input sizes defined in nep.in are small
* RWORK in [CZ]TREVC3 is de factor defined as N-vector
  from the input file and limits the blocked computation
2022-07-06 18:48:17 +01:00
5592 changed files with 120061 additions and 55335 deletions
+2 -1
View File
@@ -14,11 +14,12 @@ skip_commits:
environment:
global:
CONDA_INSTALL_LOCN: C:\\Miniconda37-x64
CTEST_OUTPUT_ON_FAILURE: 1
install:
- call %CONDA_INSTALL_LOCN%\Scripts\activate.bat
# - conda config --set auto_update_conda false
- conda install -c conda-forge --yes --quiet flang jom
- conda install -c conda-forge --yes --quiet flang=11.0.1 jom
- call "C:\Program Files (x86)\Microsoft Visual Studio 14.0\VC\vcvarsall.bat" amd64
- set "LIB=%CONDA_INSTALL_LOCN%\Library\lib;%LIB%"
- set "CPATH=%CONDA_INSTALL_LOCN%\Library\include;%CPATH%"
+13
View File
@@ -0,0 +1,13 @@
# Security Policy
## Supported Versions
Security updates are applied only to the latest release.
## Reporting a Vulnerability
If you have discovered a security vulnerability in this project, please report it privately. **Do not disclose it as a public issue.** This gives us time to work with you to fix the issue before public exposure, reducing the chance that the exploit will be used before a patch is released.
Please disclose it at [security advisory](https://github.com/Reference-LAPACK/lapack/security/advisories/new).
This project is maintained by a team of volunteers on a reasonable-effort basis. As such, please give us at least 90 days to work on a fix before public exposure.
+114 -29
View File
@@ -4,7 +4,7 @@ on:
push:
branches:
- master
- try-github-actions
- try-github-actions-for-windows
paths:
- .github/workflows/cmake.yml
- '**CMakeLists.txt'
@@ -33,6 +33,9 @@ on:
- '!**Makefile'
- '!**md'
permissions:
contents: read
env:
CFLAGS: "-Wall -pedantic"
# Customize the CMake build type here (Release, Debug, RelWithDebInfo, etc.)
@@ -59,7 +62,7 @@ jobs:
strategy:
fail-fast: true
matrix:
os: [ macos-latest, ubuntu-latest ]
os: [ macos-latest, ubuntu-latest, windows-latest ]
fflags: [
"-Wall -Wno-unused-dummy-argument -Wno-unused-variable -Wno-unused-label -Werror=conversion -fimplicit-none -frecursive -fcheck=all",
"-Wall -Wno-unused-dummy-argument -Wno-unused-variable -Wno-unused-label -Werror=conversion -fimplicit-none -frecursive -fcheck=all -fopenmp" ]
@@ -67,27 +70,30 @@ jobs:
steps:
- name: Checkout LAPACK
uses: actions/checkout@v2
uses: actions/checkout@8e5e7e5ab8b370d6c329ec480221332ada57f0ab # v3.5.2
- name: Use GCC-11 on MacOS
- name: Install ninja-build tool
uses: seanmiddleditch/gha-setup-ninja@16b940825621068d98711680b6c3ff92201f8fc0 # v3
- name: Use GCC-14 on MacOS
if: ${{ matrix.os == 'macos-latest' }}
run: >
cmake -B build
-D CMAKE_C_COMPILER="gcc-11"
-D CMAKE_Fortran_COMPILER="gfortran-11"
cmake -B build -G Ninja
-D CMAKE_C_COMPILER="gcc-14"
-D CMAKE_Fortran_COMPILER="gfortran-14"
-D USE_FLAT_NAMESPACE:BOOL=ON
# - name: Use Unix Makefiles on Windows
# if: ${{ matrix.os == 'windows-latest' }}
# run: >
# cmake -B build
# -G "Unix Makefiles"
# -D CMAKE_C_FLAGS="${{env.CFLAGS}} -Wl,--stack=1000000000"
- name: Special flags for Windows
if: ${{ matrix.os == 'windows-latest' }}
run: >
cmake -B build -G Ninja
-D CMAKE_EXE_LINKER_FLAGS="-Wl,--stack=2097152"
- name: Configure CMake
# Configure CMake in a 'build' subdirectory. `CMAKE_BUILD_TYPE` is only required if you are using a single-configuration generator such as make.
# See https://cmake.org/cmake/help/latest/variable/CMAKE_BUILD_TYPE.html?highlight=cmake_build_type
run: >
cmake -B build
cmake -B build -G Ninja
-D CMAKE_BUILD_TYPE=${{env.BUILD_TYPE}}
-D CMAKE_INSTALL_PREFIX=${{github.workspace}}/lapack_install
-D CBLAS:BOOL=ON
@@ -97,27 +103,19 @@ jobs:
-D BUILD_SHARED_LIBS:BOOL=ON
- name: Build
working-directory: ${{github.workspace}}/build
# Execute tests defined by the CMake configuration.
# See https://cmake.org/cmake/help/latest/manual/ctest.1.html for more detail
run: |
ctest -D ExperimentalStart
ctest -D ExperimentalConfigure
ctest -D ExperimentalBuild -j2
run: cmake --build build --config ${{env.BUILD_TYPE}}
- name: Test with OpenMP
working-directory: ${{github.workspace}}/build
if: ${{ contains( matrix.fflags, 'openmp' ) }}
run: |
ctest -D ExperimentalTest --schedule-random -j1 --output-on-failure --timeout 100
ctest -D ExperimentalSubmit
if: ${{ contains( matrix.fflags, 'openmp' ) && (matrix.os != 'windows-latest') }}
run: ctest -C ${{env.BUILD_TYPE}} --schedule-random -j1 --output-on-failure --timeout 100
- name: Test
working-directory: ${{github.workspace}}/build
if: ${{ !contains( matrix.fflags, 'openmp' ) }}
run: |
ctest -D ExperimentalTest --schedule-random -j2 --output-on-failure --timeout 100
ctest -D ExperimentalSubmit
if: ${{ !contains( matrix.fflags, 'openmp' ) && (matrix.os != 'windows-latest') }}
run: ctest -C ${{env.BUILD_TYPE}} --schedule-random -j2 --output-on-failure --timeout 100
- name: Install
run: cmake --build build --target install -j2
@@ -130,13 +128,16 @@ jobs:
steps:
- name: Checkout LAPACK
uses: actions/checkout@v2
uses: actions/checkout@8e5e7e5ab8b370d6c329ec480221332ada57f0ab # v3.5.2
- name: Install ninja-build tool
uses: seanmiddleditch/gha-setup-ninja@16b940825621068d98711680b6c3ff92201f8fc0 # v3
- name: Configure CMake
# Configure CMake in a 'build' subdirectory. `CMAKE_BUILD_TYPE` is only required if you are using a single-configuration generator such as make.
# See https://cmake.org/cmake/help/latest/variable/CMAKE_BUILD_TYPE.html?highlight=cmake_build_type
run: >
cmake -B build
cmake -B build -G Ninja
-D CMAKE_BUILD_TYPE=${{env.BUILD_TYPE}}
-D CMAKE_INSTALL_PREFIX=${{github.workspace}}/lapack_install
-D CBLAS:BOOL=ON
@@ -153,3 +154,87 @@ jobs:
echo "Coverage"
cmake --build build --target coverage
bash <(curl -s https://codecov.io/bash) -X gcov
test-install-cblas-lapacke-without-fortran-compiler:
runs-on: ubuntu-latest
steps:
- name: Checkout LAPACK
uses: actions/checkout@8e5e7e5ab8b370d6c329ec480221332ada57f0ab # v3.5.2
- name: Install ninja-build tool
uses: seanmiddleditch/gha-setup-ninja@16b940825621068d98711680b6c3ff92201f8fc0 # v3
- name: Install basics
run: |
sudo apt update
sudo apt install -y cmake liblapack-dev libblas-dev
sudo apt purge gfortran
- name: Configure CMake
run: >
cmake -B build -G Ninja
-D CMAKE_BUILD_TYPE=Release
-D CMAKE_INSTALL_PREFIX=${{github.workspace}}/lapack_install
-D CBLAS:BOOL=ON
-D LAPACKE:BOOL=ON
-D USE_OPTIMIZED_BLAS:BOOL=ON
-D USE_OPTIMIZED_LAPACK:BOOL=ON
-D BUILD_TESTING:BOOL=OFF
-D LAPACKE_WITH_TMG:BOOL=OFF
-D BUILD_SHARED_LIBS:BOOL=ON
- name: Install
run: cmake --build build --target install -j2
memory-check:
runs-on: ubuntu-latest
env:
BUILD_TYPE: Debug
steps:
- name: Checkout LAPACK
uses: actions/checkout@8e5e7e5ab8b370d6c329ec480221332ada57f0ab # v3.5.2
- name: Install ninja-build tool
uses: seanmiddleditch/gha-setup-ninja@16b940825621068d98711680b6c3ff92201f8fc0 # v3
- name: Install APT packages
run: |
sudo apt update
sudo apt install -y cmake valgrind gfortran
- name: Configure CMake
run: >
cmake -B build -G Ninja
-D CMAKE_BUILD_TYPE=${{env.BUILD_TYPE}}
-D CBLAS:BOOL=ON
-D LAPACKE:BOOL=ON
-D BUILD_TESTING:BOOL=ON
-D LAPACKE_WITH_TMG:BOOL=ON
-D BUILD_SHARED_LIBS:BOOL=ON
-D LAPACK_TESTING_USE_PYTHON:BOOL=OFF
- name: Build
run: cmake --build build --config ${{env.BUILD_TYPE}}
- name: Test
working-directory: ${{github.workspace}}/build
run: |
ctest -C ${{env.BUILD_TYPE}} --schedule-random -j2 -T memcheck > memcheck.out
cat memcheck.out
if tail -n 1 memcheck.out | grep -q "Memory checking results:"; then
exit 0
else
for f in Testing/Temporary/MemoryChecker.*.log; do
if tail -n 1 $f | grep -q "ERROR SUMMARY: 0 errors"; then
tail -n 1 $f
continue
else
echo "Memory check failed in $f"
cat $f
exit 1
fi
done
exit 0
fi
+7 -4
View File
@@ -31,6 +31,9 @@ on:
- '!**CMakeLists.txt'
- '!**md'
permissions:
contents: read
env:
CC: "gcc"
FC: "gfortran"
@@ -52,7 +55,7 @@ jobs:
runs-on: ubuntu-latest
steps:
- name: Checkout LAPACK
uses: actions/checkout@v2
uses: actions/checkout@8e5e7e5ab8b370d6c329ec480221332ada57f0ab # v3.5.2
- name: Set configurations
run: |
echo "SHELL = /bin/sh" >> make.inc
@@ -73,7 +76,7 @@ jobs:
runs-on: macos-latest
steps:
- name: Checkout LAPACK
uses: actions/checkout@v2
uses: actions/checkout@8e5e7e5ab8b370d6c329ec480221332ada57f0ab # v3.5.2
- name: Set configurations
run: |
echo "SHELL = /bin/sh" >> make.inc
@@ -87,8 +90,8 @@ jobs:
echo "DOCSDIR = ${{github.workspace}}/DOCS" >> make.inc
- name: Alias for GCC compilers
run: |
sudo ln -s $(which gcc-11) /usr/local/bin/gcc
sudo ln -s $(which gfortran-11) /usr/local/bin/gfortran
sudo ln -s $(which gcc-14) /usr/local/bin/gcc
sudo ln -s $(which gfortran-14) /usr/local/bin/gfortran
- name: Install
run: |
make -s -j2 all
+72
View File
@@ -0,0 +1,72 @@
# This workflow uses actions that are not certified by GitHub. They are provided
# by a third-party and are governed by separate terms of service, privacy
# policy, and support documentation.
name: Scorecard supply-chain security
on:
# For Branch-Protection check. Only the default branch is supported. See
# https://github.com/ossf/scorecard/blob/main/docs/checks.md#branch-protection
branch_protection_rule:
# To guarantee Maintained check is occasionally updated. See
# https://github.com/ossf/scorecard/blob/main/docs/checks.md#maintained
schedule:
- cron: '40 17 * * 2'
push:
branches: [ "master" ]
# Declare default permissions as read only.
permissions: read-all
jobs:
analysis:
name: Scorecard analysis
runs-on: ubuntu-latest
permissions:
# Needed to upload the results to code-scanning dashboard.
security-events: write
# Needed to publish results and get a badge (see publish_results below).
id-token: write
# Uncomment the permissions below if installing in a private repository.
# contents: read
# actions: read
steps:
- name: "Checkout code"
uses: actions/checkout@d632683dd7b4114ad314bca15554477dd762a938 # tag=v4.2.0
with:
persist-credentials: false
- name: "Run analysis"
uses: ossf/scorecard-action@62b2cac7ed8198b15735ed49ab1e5cf35480ba46 # v2.4.0
with:
results_file: results.sarif
results_format: sarif
# (Optional) "write" PAT token. Uncomment the `repo_token` line below if:
# - you want to enable the Branch-Protection check on a *public* repository, or
# - you are installing Scorecard on a *private* repository
# To create the PAT, follow the steps in https://github.com/ossf/scorecard-action#authentication-with-pat.
# repo_token: ${{ secrets.SCORECARD_TOKEN }}
# Public repositories:
# - Publish results to OpenSSF REST API for easy access by consumers
# - Allows the repository to include the Scorecard badge.
# - See https://github.com/ossf/scorecard-action#publishing-results.
# For private repositories:
# - `publish_results` will always be set to `false`, regardless
# of the value entered here.
publish_results: true
# Upload the results as artifacts (optional). Commenting out will disable uploads of run results in SARIF
# format to the repository Actions tab.
- name: "Upload artifact"
uses: actions/upload-artifact@b4b15b8c7c6ac21ea08fcf65892d2ee8f75cf882 # v4.4.3
with:
name: SARIF file
path: results.sarif
retention-days: 5
# Upload the results to GitHub's code scanning dashboard.
- name: "Upload to code-scanning"
uses: github/codeql-action/upload-sarif@662472033e021d55d94146f66f6058822b0b39fd # v3.27.0
with:
sarif_file: results.sarif
+5
View File
@@ -25,6 +25,7 @@ CBLAS/examples/cblas_ex2
# LAPACK testing
TESTING/LIN/xlintst*
TESTING/EIG/xeigtst*
TESTING/EIG/xdmd*
TESTING/*.out
TESTING/*.txt
!TESTING/CMakeLists.txt
@@ -42,3 +43,7 @@ build*
DOCS/man
DOCS/explore-html
output_err
# Mod files from compilation in SRC
SRC/la_constants.mod
SRC/la_xisnan.mod
+6
View File
@@ -1,3 +1,9 @@
enable_language(Fortran)
# Check for any necessary platform specific compiler flags
include(CheckLAPACKCompilerFlags)
CheckLAPACKCompilerFlags()
add_subdirectory(SRC)
if(BUILD_TESTING)
add_subdirectory(TESTING)
+47 -8
View File
@@ -32,7 +32,7 @@
set(SBLAS1 isamax.f sasum.f saxpy.f scopy.f sdot.f snrm2.f90
srot.f srotg.f90 sscal.f sswap.f sdsdot.f srotmg.f srotm.f)
set(CBLAS1 scabs1.f scasum.f scnrm2.f90 icamax.f caxpy.f ccopy.f
set(CBLAS1 scabs1.f scasum.f scnrm2.f90 icamax.f90 caxpy.f ccopy.f
cdotc.f cdotu.f csscal.f crotg.f90 cscal.f cswap.f csrot.f)
set(DBLAS1 idamax.f dasum.f daxpy.f dcopy.f ddot.f dnrm2.f90
@@ -40,7 +40,7 @@ set(DBLAS1 idamax.f dasum.f daxpy.f dcopy.f ddot.f dnrm2.f90
set(DB1AUX sscal.f isamax.f)
set(ZBLAS1 dcabs1.f dzasum.f dznrm2.f90 izamax.f zaxpy.f zcopy.f
set(ZBLAS1 dcabs1.f dzasum.f dznrm2.f90 izamax.f90 zaxpy.f zcopy.f
zdotc.f zdotu.f zdscal.f zrotg.f90 zscal.f zswap.f zdrot.f)
set(CB1AUX
@@ -49,7 +49,7 @@ set(CB1AUX
sswap.f)
set(ZB1AUX
icamax.f idamax.f
icamax.f90 idamax.f
cgemm.f cherk.f cscal.f ctrsm.f
dasum.f daxpy.f dcopy.f ddot.f dgemm.f dgemv.f dnrm2.f90 drot.f dscal.f
dswap.f
@@ -82,15 +82,15 @@ set(ZBLAS2 zgemv.f zgbmv.f zhemv.f zhbmv.f zhpmv.f
#---------------------------------------------------------
# Level 3 BLAS
#---------------------------------------------------------
set(SBLAS3 sgemm.f ssymm.f ssyrk.f ssyr2k.f strmm.f strsm.f)
set(SBLAS3 sgemm.f ssymm.f ssyrk.f ssyr2k.f strmm.f strsm.f sgemmtr.f)
set(CBLAS3 cgemm.f csymm.f csyrk.f csyr2k.f ctrmm.f ctrsm.f
chemm.f cherk.f cher2k.f)
chemm.f cherk.f cher2k.f cgemmtr.f)
set(DBLAS3 dgemm.f dsymm.f dsyrk.f dsyr2k.f dtrmm.f dtrsm.f)
set(DBLAS3 dgemm.f dsymm.f dsyrk.f dsyr2k.f dtrmm.f dtrsm.f dgemmtr.f)
set(ZBLAS3 zgemm.f zsymm.f zsyrk.f zsyr2k.f ztrmm.f ztrsm.f
zhemm.f zherk.f zher2k.f)
zhemm.f zherk.f zher2k.f zgemmtr.f)
set(SOURCES)
@@ -109,11 +109,50 @@ if(BUILD_COMPLEX16)
endif()
list(REMOVE_DUPLICATES SOURCES)
add_library(${BLASLIB} ${SOURCES})
add_library(${BLASLIB}_obj OBJECT ${SOURCES})
set_target_properties(${BLASLIB}_obj PROPERTIES POSITION_INDEPENDENT_CODE ON)
if(BUILD_INDEX64_EXT_API)
set(SOURCES_64_F)
# Copy files so we can set source property specific to /${BLASLIB}_64_obj target
file(MAKE_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}/${BLASLIB}_64_obj)
file(COPY ${SOURCES} DESTINATION ${CMAKE_CURRENT_BINARY_DIR}/${BLASLIB}_64_obj)
file(GLOB SOURCES_64_F ${CMAKE_CURRENT_BINARY_DIR}/${BLASLIB}_64_obj/*.f*)
add_library(${BLASLIB}_64_obj OBJECT ${SOURCES_64_F})
target_compile_options(${BLASLIB}_64_obj PRIVATE ${FOPT_ILP64})
set_target_properties(${BLASLIB}_64_obj PROPERTIES POSITION_INDEPENDENT_CODE ON)
#Add _64 suffix to all Fortran functions via macros
foreach(F IN LISTS SOURCES_64_F)
if(CMAKE_Fortran_COMPILER_ID STREQUAL "NAG")
set_source_files_properties(${F} PROPERTIES COMPILE_FLAGS "-fpp")
else()
set_source_files_properties(${F} PROPERTIES COMPILE_FLAGS "-cpp")
endif()
file(STRINGS ${F} ${F}.lst)
list(FILTER ${F}.lst INCLUDE REGEX "subroutine|SUBROUTINE|external|EXTERNAL|function|FUNCTION")
list(FILTER ${F}.lst EXCLUDE REGEX "^!.*")
list(FILTER ${F}.lst EXCLUDE REGEX "^[*].*")
list(FILTER ${F}.lst EXCLUDE REGEX "end|END")
foreach(FUNC IN LISTS ${F}.lst)
string(REGEX REPLACE "^[a-zA-Z0-9_ *]*(subroutine|SUBROUTINE|external|EXTERNAL|function|FUNCTION)[ ]*[*]?" "" FUNC ${FUNC})
string(REGEX REPLACE "[(][a-zA-Z0-9_, )]*$" "" FUNC ${FUNC})
string(STRIP ${FUNC} FUNC)
list(APPEND COPT_64_F "${FUNC}=${FUNC}_64")
endforeach()
list(REMOVE_DUPLICATES COPT_64_F)
set_source_files_properties(${F} PROPERTIES COMPILE_DEFINITIONS "${COPT_64_F}")
endforeach()
endif()
add_library(${BLASLIB}
$<TARGET_OBJECTS:${BLASLIB}_obj>
$<$<BOOL:${BUILD_INDEX64_EXT_API}>: $<TARGET_OBJECTS:${BLASLIB}_64_obj>>)
set_target_properties(
${BLASLIB} PROPERTIES
VERSION ${LAPACK_VERSION}
SOVERSION ${LAPACK_MAJOR_VERSION}
POSITION_INDEPENDENT_CODE ON
)
lapack_install_library(${BLASLIB})
@@ -54,7 +54,7 @@
*> \author Univ. of Colorado Denver
*> \author NAG Ltd.
*
*> \ingroup aux_blas
*> \ingroup iamax
*
*> \par Further Details:
* =====================
@@ -54,7 +54,7 @@
*> \author Univ. of Colorado Denver
*> \author NAG Ltd.
*
*> \ingroup aux_blas
*> \ingroup iamax
*
*> \par Further Details:
* =====================
+4 -4
View File
@@ -127,18 +127,18 @@ $(ZBLAS2): $(FRC)
# Comment out the next 4 definitions if you already have
# the Level 3 BLAS.
#---------------------------------------------------------
SBLAS3 = sgemm.o ssymm.o ssyrk.o ssyr2k.o strmm.o strsm.o
SBLAS3 = sgemm.o ssymm.o ssyrk.o ssyr2k.o strmm.o strsm.o sgemmtr.o
$(SBLAS3): $(FRC)
CBLAS3 = cgemm.o csymm.o csyrk.o csyr2k.o ctrmm.o ctrsm.o \
chemm.o cherk.o cher2k.o
chemm.o cherk.o cher2k.o cgemmtr.o
$(CBLAS3): $(FRC)
DBLAS3 = dgemm.o dsymm.o dsyrk.o dsyr2k.o dtrmm.o dtrsm.o
DBLAS3 = dgemm.o dsymm.o dsyrk.o dsyr2k.o dtrmm.o dtrsm.o dgemmtr.o
$(DBLAS3): $(FRC)
ZBLAS3 = zgemm.o zsymm.o zsyrk.o zsyr2k.o ztrmm.o ztrsm.o \
zhemm.o zherk.o zher2k.o
zhemm.o zherk.o zher2k.o zgemmtr.o
$(ZBLAS3): $(FRC)
ALLOBJ = $(SBLAS1) $(SBLAS2) $(SBLAS3) $(DBLAS1) $(DBLAS2) $(DBLAS3) \
+1 -1
View File
@@ -72,7 +72,7 @@
*> \author Univ. of Colorado Denver
*> \author NAG Ltd.
*
*> \ingroup complex_blas_level1
*> \ingroup axpy
*
*> \par Further Details:
* =====================
+1 -1
View File
@@ -65,7 +65,7 @@
*> \author Univ. of Colorado Denver
*> \author NAG Ltd.
*
*> \ingroup complex_blas_level1
*> \ingroup copy
*
*> \par Further Details:
* =====================
+1 -1
View File
@@ -67,7 +67,7 @@
*> \author Univ. of Colorado Denver
*> \author NAG Ltd.
*
*> \ingroup complex_blas_level1
*> \ingroup dot
*
*> \par Further Details:
* =====================
+1 -1
View File
@@ -67,7 +67,7 @@
*> \author Univ. of Colorado Denver
*> \author NAG Ltd.
*
*> \ingroup complex_blas_level1
*> \ingroup dot
*
*> \par Further Details:
* =====================
+5 -2
View File
@@ -148,6 +148,8 @@
*> ( 1 + ( n - 1 )*abs( INCY ) ) otherwise.
*> Before entry, the incremented array Y must contain the
*> vector y. On exit, Y is overwritten by the updated vector y.
*> If either m or n is zero, then Y not referenced and the function
*> performs a quick return.
*> \endverbatim
*>
*> \param[in] INCY
@@ -165,7 +167,7 @@
*> \author Univ. of Colorado Denver
*> \author NAG Ltd.
*
*> \ingroup complex_blas_level2
*> \ingroup gbmv
*
*> \par Further Details:
* =====================
@@ -183,7 +185,8 @@
*> \endverbatim
*>
* =====================================================================
SUBROUTINE CGBMV(TRANS,M,N,KL,KU,ALPHA,A,LDA,X,INCX,BETA,Y,INCY)
SUBROUTINE CGBMV(TRANS,M,N,KL,KU,ALPHA,A,LDA,X,INCX,
+ BETA,Y,INCY)
*
* -- Reference BLAS level2 routine --
* -- Reference BLAS is a software package provided by Univ. of Tennessee, --
+3 -2
View File
@@ -166,7 +166,7 @@
*> \author Univ. of Colorado Denver
*> \author NAG Ltd.
*
*> \ingroup complex_blas_level3
*> \ingroup gemm
*
*> \par Further Details:
* =====================
@@ -183,7 +183,8 @@
*> \endverbatim
*>
* =====================================================================
SUBROUTINE CGEMM(TRANSA,TRANSB,M,N,K,ALPHA,A,LDA,B,LDB,BETA,C,LDC)
SUBROUTINE CGEMM(TRANSA,TRANSB,M,N,K,ALPHA,A,LDA,B,LDB,
+ BETA,C,LDC)
*
* -- Reference BLAS level3 routine --
* -- Reference BLAS is a software package provided by Univ. of Tennessee, --
+569
View File
@@ -0,0 +1,569 @@
*> \brief \b CGEMMTR
*
* =========== DOCUMENTATION ===========
*
* Online html documentation available at
* http://www.netlib.org/lapack/explore-html/
*
* Definition:
* ===========
*
* SUBROUTINE CGEMMTR(UPLO,TRANSA,TRANSB,N,K,ALPHA,A,LDA,B,LDB,BETA,
* C,LDC)
*
* .. Scalar Arguments ..
* COMPLEX ALPHA,BETA
* INTEGER K,LDA,LDB,LDC,N
* CHARACTER TRANSA,TRANSB, UPLO
* ..
* .. Array Arguments ..
* COMPLEX A(LDA,*),B(LDB,*),C(LDC,*)
* ..
*
*
*> \par Purpose:
* =============
*>
*> \verbatim
*>
*> CGEMMTR performs one of the matrix-matrix operations
*>
*> C := alpha*op( A )*op( B ) + beta*C,
*>
*> where op( X ) is one of
*>
*> op( X ) = X or op( X ) = X**T,
*>
*> alpha and beta are scalars, and A, B and C are matrices, with op( A )
*> an n by k matrix, op( B ) a k by n matrix and C an n by n matrix.
*> Thereby, the routine only accesses and updates the upper or lower
*> triangular part of the result matrix C. This behaviour can be used if
*> the resulting matrix C is known to be Hermitian or symmetric.
*> \endverbatim
*
* Arguments:
* ==========
*
*> \param[in] UPLO
*> \verbatim
*> UPLO is CHARACTER*1
*> On entry, UPLO specifies whether the lower or the upper
*> triangular part of C is access and updated.
*>
*> UPLO = 'L' or 'l', the lower triangular part of C is used.
*>
*> UPLO = 'U' or 'u', the upper triangular part of C is used.
*> \endverbatim
*
*> \param[in] TRANSA
*> \verbatim
*> TRANSA is CHARACTER*1
*> On entry, TRANSA specifies the form of op( A ) to be used in
*> the matrix multiplication as follows:
*>
*> TRANSA = 'N' or 'n', op( A ) = A.
*>
*> TRANSA = 'T' or 't', op( A ) = A**T.
*>
*> TRANSA = 'C' or 'c', op( A ) = A**H.
*> \endverbatim
*>
*> \param[in] TRANSB
*> \verbatim
*> TRANSB is CHARACTER*1
*> On entry, TRANSB specifies the form of op( B ) to be used in
*> the matrix multiplication as follows:
*>
*> TRANSB = 'N' or 'n', op( B ) = B.
*>
*> TRANSB = 'T' or 't', op( B ) = B**T.
*>
*> TRANSB = 'C' or 'c', op( B ) = B**H.
*> \endverbatim
*>
*> \param[in] N
*> \verbatim
*> N is INTEGER
*> On entry, N specifies the number of rows and columns of
*> the matrix C, the number of columns of op(B) and the number
*> of rows of op(A). N must be at least zero.
*> \endverbatim
*>
*> \param[in] K
*> \verbatim
*> K is INTEGER
*> On entry, K specifies the number of columns of the matrix
*> op( A ) and the number of rows of the matrix op( B ). K must
*> be at least zero.
*> \endverbatim
*>
*> \param[in] ALPHA
*> \verbatim
*> ALPHA is COMPLEX.
*> On entry, ALPHA specifies the scalar alpha.
*> \endverbatim
*>
*> \param[in] A
*> \verbatim
*> A is COMPLEX array, dimension ( LDA, ka ), where ka is
*> k when TRANSA = 'N' or 'n', and is n otherwise.
*> Before entry with TRANSA = 'N' or 'n', the leading n by k
*> part of the array A must contain the matrix A, otherwise
*> the leading k by m part of the array A must contain the
*> matrix A.
*> \endverbatim
*>
*> \param[in] LDA
*> \verbatim
*> LDA is INTEGER
*> On entry, LDA specifies the first dimension of A as declared
*> in the calling (sub) program. When TRANSA = 'N' or 'n' then
*> LDA must be at least max( 1, n ), otherwise LDA must be at
*> least max( 1, k ).
*> \endverbatim
*>
*> \param[in] B
*> \verbatim
*> B is COMPLEX array, dimension ( LDB, kb ), where kb is
*> n when TRANSB = 'N' or 'n', and is k otherwise.
*> Before entry with TRANSB = 'N' or 'n', the leading k by n
*> part of the array B must contain the matrix B, otherwise
*> the leading n by k part of the array B must contain the
*> matrix B.
*> \endverbatim
*>
*> \param[in] LDB
*> \verbatim
*> LDB is INTEGER
*> On entry, LDB specifies the first dimension of B as declared
*> in the calling (sub) program. When TRANSB = 'N' or 'n' then
*> LDB must be at least max( 1, k ), otherwise LDB must be at
*> least max( 1, n ).
*> \endverbatim
*>
*> \param[in] BETA
*> \verbatim
*> BETA is COMPLEX.
*> On entry, BETA specifies the scalar beta. When BETA is
*> supplied as zero then C need not be set on input.
*> \endverbatim
*>
*> \param[in,out] C
*> \verbatim
*> C is COMPLEX array, dimension ( LDC, N )
*> Before entry, the leading n by n part of the array C must
*> contain the matrix C, except when beta is zero, in which
*> case C need not be set on entry.
*> On exit, the upper or lower triangular part of the matrix
*> C is overwritten by the n by n matrix
*> ( alpha*op( A )*op( B ) + beta*C ).
*> \endverbatim
*>
*> \param[in] LDC
*> \verbatim
*> LDC is INTEGER
*> On entry, LDC specifies the first dimension of C as declared
*> in the calling (sub) program. LDC must be at least
*> max( 1, n ).
*> \endverbatim
*
* Authors:
* ========
*
*> \author Martin Koehler
*
*> \ingroup gemmtr
*
*> \par Further Details:
* =====================
*>
*> \verbatim
*>
*> Level 3 Blas routine.
*>
*> -- Written on 19-July-2023.
*> Martin Koehler, MPI Magdeburg
*> \endverbatim
*>
* =====================================================================
SUBROUTINE CGEMMTR(UPLO,TRANSA,TRANSB,N,K,ALPHA,A,LDA,B,LDB,
+ BETA,C,LDC)
IMPLICIT NONE
*
* -- Reference BLAS level3 routine --
* -- Reference BLAS is a software package provided by Univ. of Tennessee, --
* -- Univ. of California Berkeley, Univ. of Colorado Denver and NAG Ltd..--
*
* .. Scalar Arguments ..
COMPLEX ALPHA,BETA
INTEGER K,LDA,LDB,LDC,N
CHARACTER TRANSA,TRANSB,UPLO
* ..
* .. Array Arguments ..
COMPLEX A(LDA,*),B(LDB,*),C(LDC,*)
* ..
*
* =====================================================================
*
* .. External Functions ..
LOGICAL LSAME
EXTERNAL LSAME
* ..
* .. External Subroutines ..
EXTERNAL XERBLA
* ..
* .. Intrinsic Functions ..
INTRINSIC CONJG,MAX
* ..
* .. Local Scalars ..
COMPLEX TEMP
INTEGER I,INFO,J,L,NROWA,NROWB,ISTART, ISTOP
LOGICAL CONJA,CONJB,NOTA,NOTB,UPPER
* ..
* .. Parameters ..
COMPLEX ONE
PARAMETER (ONE= (1.0E+0,0.0E+0))
COMPLEX ZERO
PARAMETER (ZERO= (0.0E+0,0.0E+0))
* ..
*
* Set NOTA and NOTB as true if A and B respectively are not
* conjugated or transposed, set CONJA and CONJB as true if A and
* B respectively are to be transposed but not conjugated and set
* NROWA and NROWB as the number of rows of A and B respectively.
*
NOTA = LSAME(TRANSA,'N')
NOTB = LSAME(TRANSB,'N')
CONJA = LSAME(TRANSA,'C')
CONJB = LSAME(TRANSB,'C')
IF (NOTA) THEN
NROWA = N
ELSE
NROWA = K
END IF
IF (NOTB) THEN
NROWB = K
ELSE
NROWB = N
END IF
UPPER = LSAME(UPLO, 'U')
*
* Test the input parameters.
*
INFO = 0
IF ((.NOT. UPPER) .AND. (.NOT. LSAME(UPLO, 'L'))) THEN
INFO = 1
ELSE IF ((.NOT.NOTA) .AND. (.NOT.CONJA) .AND.
+ (.NOT.LSAME(TRANSA,'T'))) THEN
INFO = 2
ELSE IF ((.NOT.NOTB) .AND. (.NOT.CONJB) .AND.
+ (.NOT.LSAME(TRANSB,'T'))) THEN
INFO = 3
ELSE IF (N.LT.0) THEN
INFO = 4
ELSE IF (K.LT.0) THEN
INFO = 5
ELSE IF (LDA.LT.MAX(1,NROWA)) THEN
INFO = 8
ELSE IF (LDB.LT.MAX(1,NROWB)) THEN
INFO = 10
ELSE IF (LDC.LT.MAX(1,N)) THEN
INFO = 13
END IF
IF (INFO.NE.0) THEN
CALL XERBLA('CGEMMTR',INFO)
RETURN
END IF
*
* Quick return if possible.
*
IF (N.EQ.0) RETURN
*
* And when alpha.eq.zero.
*
IF (ALPHA.EQ.ZERO) THEN
IF (BETA.EQ.ZERO) THEN
DO 20 J = 1,N
IF (UPPER) THEN
ISTART = 1
ISTOP = J
ELSE
ISTART = J
ISTOP = N
END IF
DO 10 I = ISTART, ISTOP
C(I,J) = ZERO
10 CONTINUE
20 CONTINUE
ELSE
DO 40 J = 1,N
IF (UPPER) THEN
ISTART = 1
ISTOP = J
ELSE
ISTART = J
ISTOP = N
END IF
DO 30 I = ISTART, ISTOP
C(I,J) = BETA*C(I,J)
30 CONTINUE
40 CONTINUE
END IF
RETURN
END IF
*
* Start the operations.
*
IF (NOTB) THEN
IF (NOTA) THEN
*
* Form C := alpha*A*B + beta*C.
*
DO 90 J = 1,N
IF (UPPER) THEN
ISTART = 1
ISTOP = J
ELSE
ISTART = J
ISTOP = N
END IF
IF (BETA.EQ.ZERO) THEN
DO 50 I = ISTART, ISTOP
C(I,J) = ZERO
50 CONTINUE
ELSE IF (BETA.NE.ONE) THEN
DO 60 I = ISTART, ISTOP
C(I,J) = BETA*C(I,J)
60 CONTINUE
END IF
DO 80 L = 1,K
TEMP = ALPHA*B(L,J)
DO 70 I = ISTART, ISTOP
C(I,J) = C(I,J) + TEMP*A(I,L)
70 CONTINUE
80 CONTINUE
90 CONTINUE
ELSE IF (CONJA) THEN
*
* Form C := alpha*A**H*B + beta*C.
*
DO 120 J = 1,N
IF (UPPER) THEN
ISTART = 1
ISTOP = J
ELSE
ISTART = J
ISTOP = N
END IF
DO 110 I = ISTART, ISTOP
TEMP = ZERO
DO 100 L = 1,K
TEMP = TEMP + CONJG(A(L,I))*B(L,J)
100 CONTINUE
IF (BETA.EQ.ZERO) THEN
C(I,J) = ALPHA*TEMP
ELSE
C(I,J) = ALPHA*TEMP + BETA*C(I,J)
END IF
110 CONTINUE
120 CONTINUE
ELSE
*
* Form C := alpha*A**T*B + beta*C
*
DO 150 J = 1,N
IF (UPPER) THEN
ISTART = 1
ISTOP = J
ELSE
ISTART = J
ISTOP = N
END IF
DO 140 I = ISTART, ISTOP
TEMP = ZERO
DO 130 L = 1,K
TEMP = TEMP + A(L,I)*B(L,J)
130 CONTINUE
IF (BETA.EQ.ZERO) THEN
C(I,J) = ALPHA*TEMP
ELSE
C(I,J) = ALPHA*TEMP + BETA*C(I,J)
END IF
140 CONTINUE
150 CONTINUE
END IF
ELSE IF (NOTA) THEN
IF (CONJB) THEN
*
* Form C := alpha*A*B**H + beta*C.
*
DO 200 J = 1,N
IF (UPPER) THEN
ISTART = 1
ISTOP = J
ELSE
ISTART = J
ISTOP = N
END IF
IF (BETA.EQ.ZERO) THEN
DO 160 I = ISTART,ISTOP
C(I,J) = ZERO
160 CONTINUE
ELSE IF (BETA.NE.ONE) THEN
DO 170 I = ISTART, ISTOP
C(I,J) = BETA*C(I,J)
170 CONTINUE
END IF
DO 190 L = 1,K
TEMP = ALPHA*CONJG(B(J,L))
DO 180 I = ISTART, ISTOP
C(I,J) = C(I,J) + TEMP*A(I,L)
180 CONTINUE
190 CONTINUE
200 CONTINUE
ELSE
*
* Form C := alpha*A*B**T + beta*C
*
DO 250 J = 1,N
IF (UPPER) THEN
ISTART = 1
ISTOP = J
ELSE
ISTART = J
ISTOP = N
END IF
IF (BETA.EQ.ZERO) THEN
DO 210 I = ISTART, ISTOP
C(I,J) = ZERO
210 CONTINUE
ELSE IF (BETA.NE.ONE) THEN
DO 220 I = ISTART, ISTOP
C(I,J) = BETA*C(I,J)
220 CONTINUE
END IF
DO 240 L = 1,K
TEMP = ALPHA*B(J,L)
DO 230 I = ISTART, ISTOP
C(I,J) = C(I,J) + TEMP*A(I,L)
230 CONTINUE
240 CONTINUE
250 CONTINUE
END IF
ELSE IF (CONJA) THEN
IF (CONJB) THEN
*
* Form C := alpha*A**H*B**H + beta*C.
*
DO 280 J = 1,N
IF (UPPER) THEN
ISTART = 1
ISTOP = J
ELSE
ISTART = J
ISTOP = N
END IF
DO 270 I = ISTART, ISTOP
TEMP = ZERO
DO 260 L = 1,K
TEMP = TEMP + CONJG(A(L,I))*CONJG(B(J,L))
260 CONTINUE
IF (BETA.EQ.ZERO) THEN
C(I,J) = ALPHA*TEMP
ELSE
C(I,J) = ALPHA*TEMP + BETA*C(I,J)
END IF
270 CONTINUE
280 CONTINUE
ELSE
*
* Form C := alpha*A**H*B**T + beta*C
*
DO 310 J = 1,N
IF (UPPER) THEN
ISTART = 1
ISTOP = J
ELSE
ISTART = J
ISTOP = N
END IF
DO 300 I = ISTART, ISTOP
TEMP = ZERO
DO 290 L = 1,K
TEMP = TEMP + CONJG(A(L,I))*B(J,L)
290 CONTINUE
IF (BETA.EQ.ZERO) THEN
C(I,J) = ALPHA*TEMP
ELSE
C(I,J) = ALPHA*TEMP + BETA*C(I,J)
END IF
300 CONTINUE
310 CONTINUE
END IF
ELSE
IF (CONJB) THEN
*
* Form C := alpha*A**T*B**H + beta*C
*
DO 340 J = 1,N
IF (UPPER) THEN
ISTART = 1
ISTOP = J
ELSE
ISTART = J
ISTOP = N
END IF
DO 330 I = ISTART, ISTOP
TEMP = ZERO
DO 320 L = 1,K
TEMP = TEMP + A(L,I)*CONJG(B(J,L))
320 CONTINUE
IF (BETA.EQ.ZERO) THEN
C(I,J) = ALPHA*TEMP
ELSE
C(I,J) = ALPHA*TEMP + BETA*C(I,J)
END IF
330 CONTINUE
340 CONTINUE
ELSE
*
* Form C := alpha*A**T*B**T + beta*C
*
DO 370 J = 1,N
IF (UPPER) THEN
ISTART = 1
ISTOP = J
ELSE
ISTART = J
ISTOP = N
END IF
DO 360 I = ISTART, ISTOP
TEMP = ZERO
DO 350 L = 1,K
TEMP = TEMP + A(L,I)*B(J,L)
350 CONTINUE
IF (BETA.EQ.ZERO) THEN
C(I,J) = ALPHA*TEMP
ELSE
C(I,J) = ALPHA*TEMP + BETA*C(I,J)
END IF
360 CONTINUE
370 CONTINUE
END IF
END IF
*
RETURN
*
* End of CGEMMTR
*
END
+3 -1
View File
@@ -119,6 +119,8 @@
*> Before entry with BETA non-zero, the incremented array Y
*> must contain the vector y. On exit, Y is overwritten by the
*> updated vector y.
*> If either m or n is zero, then Y not referenced and the function
*> performs a quick return.
*> \endverbatim
*>
*> \param[in] INCY
@@ -136,7 +138,7 @@
*> \author Univ. of Colorado Denver
*> \author NAG Ltd.
*
*> \ingroup complex_blas_level2
*> \ingroup gemv
*
*> \par Further Details:
* =====================
+1 -1
View File
@@ -109,7 +109,7 @@
*> \author Univ. of Colorado Denver
*> \author NAG Ltd.
*
*> \ingroup complex_blas_level2
*> \ingroup ger
*
*> \par Further Details:
* =====================
+1 -1
View File
@@ -109,7 +109,7 @@
*> \author Univ. of Colorado Denver
*> \author NAG Ltd.
*
*> \ingroup complex_blas_level2
*> \ingroup ger
*
*> \par Further Details:
* =====================
+1 -1
View File
@@ -165,7 +165,7 @@
*> \author Univ. of Colorado Denver
*> \author NAG Ltd.
*
*> \ingroup complex_blas_level2
*> \ingroup hbmv
*
*> \par Further Details:
* =====================
+5 -3
View File
@@ -170,7 +170,7 @@
*> \author Univ. of Colorado Denver
*> \author NAG Ltd.
*
*> \ingroup complex_blas_level3
*> \ingroup hemm
*
*> \par Further Details:
* =====================
@@ -238,9 +238,11 @@
* Test the input parameters.
*
INFO = 0
IF ((.NOT.LSAME(SIDE,'L')) .AND. (.NOT.LSAME(SIDE,'R'))) THEN
IF ((.NOT.LSAME(SIDE,'L')) .AND.
+ (.NOT.LSAME(SIDE,'R'))) THEN
INFO = 1
ELSE IF ((.NOT.UPPER) .AND. (.NOT.LSAME(UPLO,'L'))) THEN
ELSE IF ((.NOT.UPPER) .AND.
+ (.NOT.LSAME(UPLO,'L'))) THEN
INFO = 2
ELSE IF (M.LT.0) THEN
INFO = 3
+1 -1
View File
@@ -132,7 +132,7 @@
*> \author Univ. of Colorado Denver
*> \author NAG Ltd.
*
*> \ingroup complex_blas_level2
*> \ingroup hemv
*
*> \par Further Details:
* =====================
+1 -1
View File
@@ -114,7 +114,7 @@
*> \author Univ. of Colorado Denver
*> \author NAG Ltd.
*
*> \ingroup complex_blas_level2
*> \ingroup her
*
*> \par Further Details:
* =====================
+1 -1
View File
@@ -129,7 +129,7 @@
*> \author Univ. of Colorado Denver
*> \author NAG Ltd.
*
*> \ingroup complex_blas_level2
*> \ingroup her2
*
*> \par Further Details:
* =====================
+1 -1
View File
@@ -173,7 +173,7 @@
*> \author Univ. of Colorado Denver
*> \author NAG Ltd.
*
*> \ingroup complex_blas_level3
*> \ingroup her2k
*
*> \par Further Details:
* =====================
+1 -1
View File
@@ -149,7 +149,7 @@
*> \author Univ. of Colorado Denver
*> \author NAG Ltd.
*
*> \ingroup complex_blas_level3
*> \ingroup herk
*
*> \par Further Details:
* =====================
+1 -1
View File
@@ -127,7 +127,7 @@
*> \author Univ. of Colorado Denver
*> \author NAG Ltd.
*
*> \ingroup complex_blas_level2
*> \ingroup hpmv
*
*> \par Further Details:
* =====================
+1 -1
View File
@@ -109,7 +109,7 @@
*> \author Univ. of Colorado Denver
*> \author NAG Ltd.
*
*> \ingroup complex_blas_level2
*> \ingroup hpr
*
*> \par Further Details:
* =====================
+1 -1
View File
@@ -124,7 +124,7 @@
*> \author Univ. of Colorado Denver
*> \author NAG Ltd.
*
*> \ingroup complex_blas_level2
*> \ingroup hpr2
*
*> \par Further Details:
* =====================
+10 -11
View File
@@ -5,19 +5,16 @@
! Online html documentation available at
! http://www.netlib.org/lapack/explore-html/
!
! Definition:
! ===========
!
! CROTG constructs a plane rotation
! [ c s ] [ a ] = [ r ]
! [ -conjg(s) c ] [ b ] [ 0 ]
! where c is real, s is complex, and c**2 + conjg(s)*s = 1.
!
!> \par Purpose:
! =============
!>
!> \verbatim
!>
!> CROTG constructs a plane rotation
!> [ c s ] [ a ] = [ r ]
!> [ -conjg(s) c ] [ b ] [ 0 ]
!> where c is real, s is complex, and c**2 + conjg(s)*s = 1.
!>
!> The computation uses the formulas
!> |x| = sqrt( Re(x)**2 + Im(x)**2 )
!> sgn(x) = x / |x| if x /= 0
@@ -33,6 +30,8 @@
!> if the signs of a and b are not the same.
!>
!> \endverbatim
!>
!> @see lartg, @see lartgp
!
! Arguments:
! ==========
@@ -69,7 +68,7 @@
!
!> \date December 2021
!
!> \ingroup single_blas_level1
!> \ingroup rotg
!
!> \par Further Details:
! =====================
@@ -181,7 +180,7 @@ subroutine CROTG( a, b, c, s )
f2 = ABSSQ( f )
g2 = ABSSQ( g )
h2 = f2 + g2
! safmin <= f2 <= h2 <= safmax
! safmin <= f2 <= h2 <= safmax
if( f2 >= h2 * safmin ) then
! safmin <= f2/h2 <= 1, and h2/f2 is finite
c = sqrt( f2 / h2 )
@@ -237,7 +236,7 @@ subroutine CROTG( a, b, c, s )
f2 = ABSSQ( fs )
h2 = f2 + g2
end if
! safmin <= f2 <= h2 <= safmax
! safmin <= f2 <= h2 <= safmax
if( f2 >= h2 * safmin ) then
! safmin <= f2/h2 <= 1, and h2/f2 is finite
c = sqrt( f2 / h2 )
+1 -1
View File
@@ -61,7 +61,7 @@
*> \author Univ. of Colorado Denver
*> \author NAG Ltd.
*
*> \ingroup complex_blas_level1
*> \ingroup scal
*
*> \par Further Details:
* =====================
+1 -1
View File
@@ -91,7 +91,7 @@
*> \author Univ. of Colorado Denver
*> \author NAG Ltd.
*
*> \ingroup complex_blas_level1
*> \ingroup rot
*
* =====================================================================
SUBROUTINE CSROT( N, CX, INCX, CY, INCY, C, S )
+1 -1
View File
@@ -61,7 +61,7 @@
*> \author Univ. of Colorado Denver
*> \author NAG Ltd.
*
*> \ingroup complex_blas_level1
*> \ingroup scal
*
*> \par Further Details:
* =====================
+1 -1
View File
@@ -65,7 +65,7 @@
*> \author Univ. of Colorado Denver
*> \author NAG Ltd.
*
*> \ingroup complex_blas_level1
*> \ingroup swap
*
*> \par Further Details:
* =====================
+5 -3
View File
@@ -168,7 +168,7 @@
*> \author Univ. of Colorado Denver
*> \author NAG Ltd.
*
*> \ingroup complex_blas_level3
*> \ingroup hemm
*
*> \par Further Details:
* =====================
@@ -236,9 +236,11 @@
* Test the input parameters.
*
INFO = 0
IF ((.NOT.LSAME(SIDE,'L')) .AND. (.NOT.LSAME(SIDE,'R'))) THEN
IF ((.NOT.LSAME(SIDE,'L')) .AND.
+ (.NOT.LSAME(SIDE,'R'))) THEN
INFO = 1
ELSE IF ((.NOT.UPPER) .AND. (.NOT.LSAME(UPLO,'L'))) THEN
ELSE IF ((.NOT.UPPER) .AND.
+ (.NOT.LSAME(UPLO,'L'))) THEN
INFO = 2
ELSE IF (M.LT.0) THEN
INFO = 3
+1 -1
View File
@@ -167,7 +167,7 @@
*> \author Univ. of Colorado Denver
*> \author NAG Ltd.
*
*> \ingroup complex_blas_level3
*> \ingroup her2k
*
*> \par Further Details:
* =====================
+1 -1
View File
@@ -146,7 +146,7 @@
*> \author Univ. of Colorado Denver
*> \author NAG Ltd.
*
*> \ingroup complex_blas_level3
*> \ingroup herk
*
*> \par Further Details:
* =====================
+5 -3
View File
@@ -164,7 +164,7 @@
*> \author Univ. of Colorado Denver
*> \author NAG Ltd.
*
*> \ingroup complex_blas_level2
*> \ingroup tbmv
*
*> \par Further Details:
* =====================
@@ -223,10 +223,12 @@
INFO = 0
IF (.NOT.LSAME(UPLO,'U') .AND. .NOT.LSAME(UPLO,'L')) THEN
INFO = 1
ELSE IF (.NOT.LSAME(TRANS,'N') .AND. .NOT.LSAME(TRANS,'T') .AND.
ELSE IF (.NOT.LSAME(TRANS,'N') .AND.
+ .NOT.LSAME(TRANS,'T') .AND.
+ .NOT.LSAME(TRANS,'C')) THEN
INFO = 2
ELSE IF (.NOT.LSAME(DIAG,'U') .AND. .NOT.LSAME(DIAG,'N')) THEN
ELSE IF (.NOT.LSAME(DIAG,'U') .AND.
+ .NOT.LSAME(DIAG,'N')) THEN
INFO = 3
ELSE IF (N.LT.0) THEN
INFO = 4
+5 -3
View File
@@ -168,7 +168,7 @@
*> \author Univ. of Colorado Denver
*> \author NAG Ltd.
*
*> \ingroup complex_blas_level2
*> \ingroup tbsv
*
*> \par Further Details:
* =====================
@@ -226,10 +226,12 @@
INFO = 0
IF (.NOT.LSAME(UPLO,'U') .AND. .NOT.LSAME(UPLO,'L')) THEN
INFO = 1
ELSE IF (.NOT.LSAME(TRANS,'N') .AND. .NOT.LSAME(TRANS,'T') .AND.
ELSE IF (.NOT.LSAME(TRANS,'N') .AND.
+ .NOT.LSAME(TRANS,'T') .AND.
+ .NOT.LSAME(TRANS,'C')) THEN
INFO = 2
ELSE IF (.NOT.LSAME(DIAG,'U') .AND. .NOT.LSAME(DIAG,'N')) THEN
ELSE IF (.NOT.LSAME(DIAG,'U') .AND.
+ .NOT.LSAME(DIAG,'N')) THEN
INFO = 3
ELSE IF (N.LT.0) THEN
INFO = 4
+5 -3
View File
@@ -120,7 +120,7 @@
*> \author Univ. of Colorado Denver
*> \author NAG Ltd.
*
*> \ingroup complex_blas_level2
*> \ingroup tpmv
*
*> \par Further Details:
* =====================
@@ -179,10 +179,12 @@
INFO = 0
IF (.NOT.LSAME(UPLO,'U') .AND. .NOT.LSAME(UPLO,'L')) THEN
INFO = 1
ELSE IF (.NOT.LSAME(TRANS,'N') .AND. .NOT.LSAME(TRANS,'T') .AND.
ELSE IF (.NOT.LSAME(TRANS,'N') .AND.
+ .NOT.LSAME(TRANS,'T') .AND.
+ .NOT.LSAME(TRANS,'C')) THEN
INFO = 2
ELSE IF (.NOT.LSAME(DIAG,'U') .AND. .NOT.LSAME(DIAG,'N')) THEN
ELSE IF (.NOT.LSAME(DIAG,'U') .AND.
+ .NOT.LSAME(DIAG,'N')) THEN
INFO = 3
ELSE IF (N.LT.0) THEN
INFO = 4
+5 -3
View File
@@ -123,7 +123,7 @@
*> \author Univ. of Colorado Denver
*> \author NAG Ltd.
*
*> \ingroup complex_blas_level2
*> \ingroup tpsv
*
*> \par Further Details:
* =====================
@@ -181,10 +181,12 @@
INFO = 0
IF (.NOT.LSAME(UPLO,'U') .AND. .NOT.LSAME(UPLO,'L')) THEN
INFO = 1
ELSE IF (.NOT.LSAME(TRANS,'N') .AND. .NOT.LSAME(TRANS,'T') .AND.
ELSE IF (.NOT.LSAME(TRANS,'N') .AND.
+ .NOT.LSAME(TRANS,'T') .AND.
+ .NOT.LSAME(TRANS,'C')) THEN
INFO = 2
ELSE IF (.NOT.LSAME(DIAG,'U') .AND. .NOT.LSAME(DIAG,'N')) THEN
ELSE IF (.NOT.LSAME(DIAG,'U') .AND.
+ .NOT.LSAME(DIAG,'N')) THEN
INFO = 3
ELSE IF (N.LT.0) THEN
INFO = 4
+3 -2
View File
@@ -156,7 +156,7 @@
*> \author Univ. of Colorado Denver
*> \author NAG Ltd.
*
*> \ingroup complex_blas_level3
*> \ingroup trmm
*
*> \par Further Details:
* =====================
@@ -233,7 +233,8 @@
+ (.NOT.LSAME(TRANSA,'T')) .AND.
+ (.NOT.LSAME(TRANSA,'C'))) THEN
INFO = 3
ELSE IF ((.NOT.LSAME(DIAG,'U')) .AND. (.NOT.LSAME(DIAG,'N'))) THEN
ELSE IF ((.NOT.LSAME(DIAG,'U')) .AND.
+ (.NOT.LSAME(DIAG,'N'))) THEN
INFO = 4
ELSE IF (M.LT.0) THEN
INFO = 5
+5 -3
View File
@@ -125,7 +125,7 @@
*> \author Univ. of Colorado Denver
*> \author NAG Ltd.
*
*> \ingroup complex_blas_level2
*> \ingroup trmv
*
*> \par Further Details:
* =====================
@@ -184,10 +184,12 @@
INFO = 0
IF (.NOT.LSAME(UPLO,'U') .AND. .NOT.LSAME(UPLO,'L')) THEN
INFO = 1
ELSE IF (.NOT.LSAME(TRANS,'N') .AND. .NOT.LSAME(TRANS,'T') .AND.
ELSE IF (.NOT.LSAME(TRANS,'N') .AND.
+ .NOT.LSAME(TRANS,'T') .AND.
+ .NOT.LSAME(TRANS,'C')) THEN
INFO = 2
ELSE IF (.NOT.LSAME(DIAG,'U') .AND. .NOT.LSAME(DIAG,'N')) THEN
ELSE IF (.NOT.LSAME(DIAG,'U') .AND.
+ .NOT.LSAME(DIAG,'N')) THEN
INFO = 3
ELSE IF (N.LT.0) THEN
INFO = 4
+3 -2
View File
@@ -159,7 +159,7 @@
*> \author Univ. of Colorado Denver
*> \author NAG Ltd.
*
*> \ingroup complex_blas_level3
*> \ingroup trsm
*
*> \par Further Details:
* =====================
@@ -236,7 +236,8 @@
+ (.NOT.LSAME(TRANSA,'T')) .AND.
+ (.NOT.LSAME(TRANSA,'C'))) THEN
INFO = 3
ELSE IF ((.NOT.LSAME(DIAG,'U')) .AND. (.NOT.LSAME(DIAG,'N'))) THEN
ELSE IF ((.NOT.LSAME(DIAG,'U')) .AND.
+ (.NOT.LSAME(DIAG,'N'))) THEN
INFO = 4
ELSE IF (M.LT.0) THEN
INFO = 5
+5 -3
View File
@@ -128,7 +128,7 @@
*> \author Univ. of Colorado Denver
*> \author NAG Ltd.
*
*> \ingroup complex_blas_level2
*> \ingroup trsv
*
*> \par Further Details:
* =====================
@@ -186,10 +186,12 @@
INFO = 0
IF (.NOT.LSAME(UPLO,'U') .AND. .NOT.LSAME(UPLO,'L')) THEN
INFO = 1
ELSE IF (.NOT.LSAME(TRANS,'N') .AND. .NOT.LSAME(TRANS,'T') .AND.
ELSE IF (.NOT.LSAME(TRANS,'N') .AND.
+ .NOT.LSAME(TRANS,'T') .AND.
+ .NOT.LSAME(TRANS,'C')) THEN
INFO = 2
ELSE IF (.NOT.LSAME(DIAG,'U') .AND. .NOT.LSAME(DIAG,'N')) THEN
ELSE IF (.NOT.LSAME(DIAG,'U') .AND.
+ .NOT.LSAME(DIAG,'N')) THEN
INFO = 3
ELSE IF (N.LT.0) THEN
INFO = 4
+1 -1
View File
@@ -54,7 +54,7 @@
*> \author Univ. of Colorado Denver
*> \author NAG Ltd.
*
*> \ingroup double_blas_level1
*> \ingroup asum
*
*> \par Further Details:
* =====================
+1 -1
View File
@@ -73,7 +73,7 @@
*> \author Univ. of Colorado Denver
*> \author NAG Ltd.
*
*> \ingroup double_blas_level1
*> \ingroup axpy
*
*> \par Further Details:
* =====================
+1 -1
View File
@@ -40,7 +40,7 @@
*> \author Univ. of Colorado Denver
*> \author NAG Ltd.
*
*> \ingroup double_blas_level1
*> \ingroup abs1
*
* =====================================================================
DOUBLE PRECISION FUNCTION DCABS1(Z)
+1 -1
View File
@@ -66,7 +66,7 @@
*> \author Univ. of Colorado Denver
*> \author NAG Ltd.
*
*> \ingroup double_blas_level1
*> \ingroup copy
*
*> \par Further Details:
* =====================
+1 -1
View File
@@ -66,7 +66,7 @@
*> \author Univ. of Colorado Denver
*> \author NAG Ltd.
*
*> \ingroup double_blas_level1
*> \ingroup dot
*
*> \par Further Details:
* =====================
+5 -2
View File
@@ -146,6 +146,8 @@
*> ( 1 + ( n - 1 )*abs( INCY ) ) otherwise.
*> Before entry, the incremented array Y must contain the
*> vector y. On exit, Y is overwritten by the updated vector y.
*> If either m or n is zero, then Y not referenced and the function
*> performs a quick return.
*> \endverbatim
*>
*> \param[in] INCY
@@ -163,7 +165,7 @@
*> \author Univ. of Colorado Denver
*> \author NAG Ltd.
*
*> \ingroup double_blas_level2
*> \ingroup gbmv
*
*> \par Further Details:
* =====================
@@ -181,7 +183,8 @@
*> \endverbatim
*>
* =====================================================================
SUBROUTINE DGBMV(TRANS,M,N,KL,KU,ALPHA,A,LDA,X,INCX,BETA,Y,INCY)
SUBROUTINE DGBMV(TRANS,M,N,KL,KU,ALPHA,A,LDA,X,INCX,
+ BETA,Y,INCY)
*
* -- Reference BLAS level2 routine --
* -- Reference BLAS is a software package provided by Univ. of Tennessee, --
+3 -2
View File
@@ -166,7 +166,7 @@
*> \author Univ. of Colorado Denver
*> \author NAG Ltd.
*
*> \ingroup double_blas_level3
*> \ingroup gemm
*
*> \par Further Details:
* =====================
@@ -183,7 +183,8 @@
*> \endverbatim
*>
* =====================================================================
SUBROUTINE DGEMM(TRANSA,TRANSB,M,N,K,ALPHA,A,LDA,B,LDB,BETA,C,LDC)
SUBROUTINE DGEMM(TRANSA,TRANSB,M,N,K,ALPHA,A,LDA,B,LDB,
+ BETA,C,LDC)
*
* -- Reference BLAS level3 routine --
* -- Reference BLAS is a software package provided by Univ. of Tennessee, --
+431
View File
@@ -0,0 +1,431 @@
*> \brief \b DGEMMTR
*
* =========== DOCUMENTATION ===========
*
* Online html documentation available at
* http://www.netlib.org/lapack/explore-html/
*
* Definition:
* ===========
*
* SUBROUTINE DGEMMTR(UPLO,TRANSA,TRANSB,N,K,ALPHA,A,LDA,B,LDB,BETA,
* C,LDC)
*
* .. Scalar Arguments ..
* DOUBLE PRECISION ALPHA,BETA
* INTEGER K,LDA,LDB,LDC,N
* CHARACTER TRANSA,TRANSB, UPLO
* ..
* .. Array Arguments ..
* DOUBLE PRECISION A(LDA,*),B(LDB,*),C(LDC,*)
* ..
*
*
*> \par Purpose:
* =============
*>
*> \verbatim
*>
*> DGEMMTR performs one of the matrix-matrix operations
*>
*> C := alpha*op( A )*op( B ) + beta*C,
*>
*> where op( X ) is one of
*>
*> op( X ) = X or op( X ) = X**T,
*>
*> alpha and beta are scalars, and A, B and C are matrices, with op( A )
*> an n by k matrix, op( B ) a k by n matrix and C an n by n matrix.
*> Thereby, the routine only accesses and updates the upper or lower
*> triangular part of the result matrix C. This behaviour can be used if
*> the resulting matrix C is known to be symmetric.
*> \endverbatim
*
* Arguments:
* ==========
*
*> \param[in] UPLO
*> \verbatim
*> UPLO is CHARACTER*1
*> On entry, UPLO specifies whether the lower or the upper
*> triangular part of C is access and updated.
*>
*> UPLO = 'L' or 'l', the lower triangular part of C is used.
*>
*> UPLO = 'U' or 'u', the upper triangular part of C is used.
*> \endverbatim
*
*> \param[in] TRANSA
*> \verbatim
*> TRANSA is CHARACTER*1
*> On entry, TRANSA specifies the form of op( A ) to be used in
*> the matrix multiplication as follows:
*>
*> TRANSA = 'N' or 'n', op( A ) = A.
*>
*> TRANSA = 'T' or 't', op( A ) = A**T.
*>
*> TRANSA = 'C' or 'c', op( A ) = A**T.
*> \endverbatim
*>
*> \param[in] TRANSB
*> \verbatim
*> TRANSB is CHARACTER*1
*> On entry, TRANSB specifies the form of op( B ) to be used in
*> the matrix multiplication as follows:
*>
*> TRANSB = 'N' or 'n', op( B ) = B.
*>
*> TRANSB = 'T' or 't', op( B ) = B**T.
*>
*> TRANSB = 'C' or 'c', op( B ) = B**T.
*> \endverbatim
*>
*> \param[in] N
*> \verbatim
*> N is INTEGER
*> On entry, N specifies the number of rows and columns of
*> the matrix C, the number of columns of op(B) and the number
*> of rows of op(A). N must be at least zero.
*> \endverbatim
*>
*> \param[in] K
*> \verbatim
*> K is INTEGER
*> On entry, K specifies the number of columns of the matrix
*> op( A ) and the number of rows of the matrix op( B ). K must
*> be at least zero.
*> \endverbatim
*>
*> \param[in] ALPHA
*> \verbatim
*> ALPHA is DOUBLE PRECISION.
*> On entry, ALPHA specifies the scalar alpha.
*> \endverbatim
*>
*> \param[in] A
*> \verbatim
*> A is DOUBLE PRECISION array, dimension ( LDA, ka ), where ka is
*> k when TRANSA = 'N' or 'n', and is n otherwise.
*> Before entry with TRANSA = 'N' or 'n', the leading n by k
*> part of the array A must contain the matrix A, otherwise
*> the leading k by m part of the array A must contain the
*> matrix A.
*> \endverbatim
*>
*> \param[in] LDA
*> \verbatim
*> LDA is INTEGER
*> On entry, LDA specifies the first dimension of A as declared
*> in the calling (sub) program. When TRANSA = 'N' or 'n' then
*> LDA must be at least max( 1, n ), otherwise LDA must be at
*> least max( 1, k ).
*> \endverbatim
*>
*> \param[in] B
*> \verbatim
*> B is DOUBLE PRECISION array, dimension ( LDB, kb ), where kb is
*> n when TRANSB = 'N' or 'n', and is k otherwise.
*> Before entry with TRANSB = 'N' or 'n', the leading k by n
*> part of the array B must contain the matrix B, otherwise
*> the leading n by k part of the array B must contain the
*> matrix B.
*> \endverbatim
*>
*> \param[in] LDB
*> \verbatim
*> LDB is INTEGER
*> On entry, LDB specifies the first dimension of B as declared
*> in the calling (sub) program. When TRANSB = 'N' or 'n' then
*> LDB must be at least max( 1, k ), otherwise LDB must be at
*> least max( 1, n ).
*> \endverbatim
*>
*> \param[in] BETA
*> \verbatim
*> BETA is DOUBLE PRECISION.
*> On entry, BETA specifies the scalar beta. When BETA is
*> supplied as zero then C need not be set on input.
*> \endverbatim
*>
*> \param[in,out] C
*> \verbatim
*> C is DOUBLE PRECISION array, dimension ( LDC, N )
*> Before entry, the leading n by n part of the array C must
*> contain the matrix C, except when beta is zero, in which
*> case C need not be set on entry.
*> On exit, the upper or lower triangular part of the matrix
*> C is overwritten by the n by n matrix
*> ( alpha*op( A )*op( B ) + beta*C ).
*> \endverbatim
*>
*> \param[in] LDC
*> \verbatim
*> LDC is INTEGER
*> On entry, LDC specifies the first dimension of C as declared
*> in the calling (sub) program. LDC must be at least
*> max( 1, n ).
*> \endverbatim
*
* Authors:
* ========
*
*> \author Martin Koehler
*
*> \ingroup gemmtr
*
*> \par Further Details:
* =====================
*>
*> \verbatim
*>
*> Level 3 Blas routine.
*>
*> -- Written on 19-July-2023.
*> Martin Koehler, MPI Magdeburg
*> \endverbatim
*>
* =====================================================================
SUBROUTINE DGEMMTR(UPLO,TRANSA,TRANSB,N,K,ALPHA,A,LDA,B,LDB,
+ BETA,C,LDC)
IMPLICIT NONE
*
* -- Reference BLAS level3 routine --
* -- Reference BLAS is a software package provided by Univ. of Tennessee, --
* -- Univ. of California Berkeley, Univ. of Colorado Denver and NAG Ltd..--
*
* .. Scalar Arguments ..
DOUBLE PRECISION ALPHA,BETA
INTEGER K,LDA,LDB,LDC,N
CHARACTER TRANSA,TRANSB,UPLO
* ..
* .. Array Arguments ..
DOUBLE PRECISION A(LDA,*),B(LDB,*),C(LDC,*)
* ..
*
* =====================================================================
*
* .. External Functions ..
LOGICAL LSAME
EXTERNAL LSAME
* ..
* .. External Subroutines ..
EXTERNAL XERBLA
* ..
* .. Intrinsic Functions ..
INTRINSIC MAX
* ..
* .. Local Scalars ..
DOUBLE PRECISION TEMP
INTEGER I,INFO,J,L,NROWA,NROWB, ISTART, ISTOP
LOGICAL NOTA,NOTB, UPPER
* ..
* .. Parameters ..
DOUBLE PRECISION ONE,ZERO
PARAMETER (ONE=1.0D+0,ZERO=0.0D+0)
* ..
*
* Set NOTA and NOTB as true if A and B respectively are not
* transposed and set NROWA and NROWB as the number of rows of A
* and B respectively.
*
NOTA = LSAME(TRANSA,'N')
NOTB = LSAME(TRANSB,'N')
IF (NOTA) THEN
NROWA = N
ELSE
NROWA = K
END IF
IF (NOTB) THEN
NROWB = K
ELSE
NROWB = N
END IF
UPPER = LSAME(UPLO, 'U')
*
* Test the input parameters.
*
INFO = 0
IF ((.NOT. UPPER) .AND. (.NOT. LSAME(UPLO, 'L'))) THEN
INFO = 1
ELSE IF ((.NOT.NOTA) .AND. (.NOT.LSAME(TRANSA,'C')) .AND.
+ (.NOT.LSAME(TRANSA,'T'))) THEN
INFO = 2
ELSE IF ((.NOT.NOTB) .AND. (.NOT.LSAME(TRANSB,'C')) .AND.
+ (.NOT.LSAME(TRANSB,'T'))) THEN
INFO = 3
ELSE IF (N.LT.0) THEN
INFO = 4
ELSE IF (K.LT.0) THEN
INFO = 5
ELSE IF (LDA.LT.MAX(1,NROWA)) THEN
INFO = 8
ELSE IF (LDB.LT.MAX(1,NROWB)) THEN
INFO = 10
ELSE IF (LDC.LT.MAX(1,N)) THEN
INFO = 13
END IF
IF (INFO.NE.0) THEN
CALL XERBLA('DGEMMTR',INFO)
RETURN
END IF
*
* Quick return if possible.
*
IF (N.EQ.0) RETURN
*
* And if alpha.eq.zero.
*
IF (ALPHA.EQ.ZERO) THEN
IF (BETA.EQ.ZERO) THEN
DO 20 J = 1,N
IF (UPPER) THEN
ISTART = 1
ISTOP = J
ELSE
ISTART = J
ISTOP = N
END IF
DO 10 I = ISTART, ISTOP
C(I,J) = ZERO
10 CONTINUE
20 CONTINUE
ELSE
DO 40 J = 1,N
IF (UPPER) THEN
ISTART = 1
ISTOP = J
ELSE
ISTART = J
ISTOP = N
END IF
DO 30 I = ISTART, ISTOP
C(I,J) = BETA*C(I,J)
30 CONTINUE
40 CONTINUE
END IF
RETURN
END IF
*
* Start the operations.
*
IF (NOTB) THEN
IF (NOTA) THEN
*
* Form C := alpha*A*B + beta*C.
*
DO 90 J = 1,N
IF (UPPER) THEN
ISTART = 1
ISTOP = J
ELSE
ISTART = J
ISTOP = N
END IF
IF (BETA.EQ.ZERO) THEN
DO 50 I = ISTART, ISTOP
C(I,J) = ZERO
50 CONTINUE
ELSE IF (BETA.NE.ONE) THEN
DO 60 I = ISTART, ISTOP
C(I,J) = BETA*C(I,J)
60 CONTINUE
END IF
DO 80 L = 1,K
TEMP = ALPHA*B(L,J)
DO 70 I = ISTART, ISTOP
C(I,J) = C(I,J) + TEMP*A(I,L)
70 CONTINUE
80 CONTINUE
90 CONTINUE
ELSE
*
* Form C := alpha*A**T*B + beta*C
*
DO 120 J = 1,N
IF (UPPER) THEN
ISTART = 1
ISTOP = J
ELSE
ISTART = J
ISTOP = N
END IF
DO 110 I = ISTART, ISTOP
TEMP = ZERO
DO 100 L = 1,K
TEMP = TEMP + A(L,I)*B(L,J)
100 CONTINUE
IF (BETA.EQ.ZERO) THEN
C(I,J) = ALPHA*TEMP
ELSE
C(I,J) = ALPHA*TEMP + BETA*C(I,J)
END IF
110 CONTINUE
120 CONTINUE
END IF
ELSE
IF (NOTA) THEN
*
* Form C := alpha*A*B**T + beta*C
*
DO 170 J = 1,N
IF (UPPER) THEN
ISTART = 1
ISTOP = J
ELSE
ISTART = J
ISTOP = N
END IF
IF (BETA.EQ.ZERO) THEN
DO 130 I = ISTART,ISTOP
C(I,J) = ZERO
130 CONTINUE
ELSE IF (BETA.NE.ONE) THEN
DO 140 I = ISTART,ISTOP
C(I,J) = BETA*C(I,J)
140 CONTINUE
END IF
DO 160 L = 1,K
TEMP = ALPHA*B(J,L)
DO 150 I = ISTART,ISTOP
C(I,J) = C(I,J) + TEMP*A(I,L)
150 CONTINUE
160 CONTINUE
170 CONTINUE
ELSE
*
* Form C := alpha*A**T*B**T + beta*C
*
DO 200 J = 1,N
IF (UPPER) THEN
ISTART = 1
ISTOP = J
ELSE
ISTART = J
ISTOP = N
END IF
DO 190 I = ISTART, ISTOP
TEMP = ZERO
DO 180 L = 1,K
TEMP = TEMP + A(L,I)*B(J,L)
180 CONTINUE
IF (BETA.EQ.ZERO) THEN
C(I,J) = ALPHA*TEMP
ELSE
C(I,J) = ALPHA*TEMP + BETA*C(I,J)
END IF
190 CONTINUE
200 CONTINUE
END IF
END IF
*
RETURN
*
* End of SGEMM
*
END
+3 -1
View File
@@ -117,6 +117,8 @@
*> Before entry with BETA non-zero, the incremented array Y
*> must contain the vector y. On exit, Y is overwritten by the
*> updated vector y.
*> If either m or n is zero, then Y not referenced and the function
*> performs a quick return.
*> \endverbatim
*>
*> \param[in] INCY
@@ -134,7 +136,7 @@
*> \author Univ. of Colorado Denver
*> \author NAG Ltd.
*
*> \ingroup double_blas_level2
*> \ingroup gemv
*
*> \par Further Details:
* =====================
+1 -1
View File
@@ -109,7 +109,7 @@
*> \author Univ. of Colorado Denver
*> \author NAG Ltd.
*
*> \ingroup double_blas_level2
*> \ingroup ger
*
*> \par Further Details:
* =====================
+2 -2
View File
@@ -60,7 +60,7 @@
!
!> \date August 2016
!
!> \ingroup single_blas_level1
!> \ingroup nrm2
!
!> \par Contributors:
! ==================
@@ -89,7 +89,7 @@ function DNRM2( n, x, incx )
integer, parameter :: wp = kind(1.d0)
real(wp) :: DNRM2
!
! -- Reference BLAS level1 routine (version 3.9.1) --
! -- Reference BLAS level1 routine --
! -- Reference BLAS is a software package provided by Univ. of Tennessee, --
! -- Univ. of California Berkeley, Univ. of Colorado Denver and NAG Ltd..--
! March 2021
+1 -1
View File
@@ -76,7 +76,7 @@
*> \author Univ. of Colorado Denver
*> \author NAG Ltd.
*
*> \ingroup double_blas_level1
*> \ingroup rot
*
*> \par Further Details:
* =====================
+8 -9
View File
@@ -5,19 +5,16 @@
! Online html documentation available at
! http://www.netlib.org/lapack/explore-html/
!
! Definition:
! ===========
!
! DROTG constructs a plane rotation
! [ c s ] [ a ] = [ r ]
! [ -s c ] [ b ] [ 0 ]
! satisfying c**2 + s**2 = 1.
!
!> \par Purpose:
! =============
!>
!> \verbatim
!>
!> DROTG constructs a plane rotation
!> [ c s ] [ a ] = [ r ]
!> [ -s c ] [ b ] [ 0 ]
!> satisfying c**2 + s**2 = 1.
!>
!> The computation uses the formulas
!> sigma = sgn(a) if |a| > |b|
!> = sgn(b) if |b| >= |a|
@@ -34,6 +31,8 @@
!> If |z| > 1, set c = 1/z and s = sqrt( 1 - c**2).
!>
!> \endverbatim
!>
!> @see lartg, @see lartgp
!
! Arguments:
! ==========
@@ -74,7 +73,7 @@
!>
!> Weslley Pereira, University of Colorado Denver, USA
!
!> \ingroup single_blas_level1
!> \ingroup rotg
!
!> \par Further Details:
! =====================
+5 -1
View File
@@ -38,6 +38,10 @@
*> H=( ) ( ) ( ) ( )
*> (DH21 DH22), (DH21 1.D0), (-1.D0 DH22), (0.D0 1.D0).
*> SEE DROTMG FOR A DESCRIPTION OF DATA STORAGE IN DPARAM.
*>
*> IF DFLAG IS NOT ONE OF THE LISTED ABOVE, THE BEHAVIOR IS UNDEFINED.
*> NANS IN DFLAG MAY NOT PROPAGATE TO THE OUTPUT.
*>
*> \endverbatim
*
* Arguments:
@@ -89,7 +93,7 @@
*> \author Univ. of Colorado Denver
*> \author NAG Ltd.
*
*> \ingroup double_blas_level1
*> \ingroup rotm
*
* =====================================================================
SUBROUTINE DROTM(N,DX,INCX,DY,INCY,DPARAM)
+1 -1
View File
@@ -83,7 +83,7 @@
*> \author Univ. of Colorado Denver
*> \author NAG Ltd.
*
*> \ingroup double_blas_level1
*> \ingroup rotmg
*
* =====================================================================
SUBROUTINE DROTMG(DD1,DD2,DX1,DY1,DPARAM)
+1 -1
View File
@@ -162,7 +162,7 @@
*> \author Univ. of Colorado Denver
*> \author NAG Ltd.
*
*> \ingroup double_blas_level2
*> \ingroup hbmv
*
*> \par Further Details:
* =====================
+1 -1
View File
@@ -62,7 +62,7 @@
*> \author Univ. of Colorado Denver
*> \author NAG Ltd.
*
*> \ingroup double_blas_level1
*> \ingroup scal
*
*> \par Further Details:
* =====================
+1 -1
View File
@@ -84,7 +84,7 @@
*> \author Univ. of Colorado Denver
*> \author NAG Ltd.
*
*> \ingroup double_blas_level1
*> \ingroup dot
*
*> \par Further Details:
* =====================
+1 -1
View File
@@ -125,7 +125,7 @@
*> \author Univ. of Colorado Denver
*> \author NAG Ltd.
*
*> \ingroup double_blas_level2
*> \ingroup hpmv
*
*> \par Further Details:
* =====================
+1 -1
View File
@@ -106,7 +106,7 @@
*> \author Univ. of Colorado Denver
*> \author NAG Ltd.
*
*> \ingroup double_blas_level2
*> \ingroup hpr
*
*> \par Further Details:
* =====================
+1 -1
View File
@@ -121,7 +121,7 @@
*> \author Univ. of Colorado Denver
*> \author NAG Ltd.
*
*> \ingroup double_blas_level2
*> \ingroup hpr2
*
*> \par Further Details:
* =====================
+1 -1
View File
@@ -66,7 +66,7 @@
*> \author Univ. of Colorado Denver
*> \author NAG Ltd.
*
*> \ingroup double_blas_level1
*> \ingroup swap
*
*> \par Further Details:
* =====================
+3 -2
View File
@@ -168,7 +168,7 @@
*> \author Univ. of Colorado Denver
*> \author NAG Ltd.
*
*> \ingroup double_blas_level3
*> \ingroup hemm
*
*> \par Further Details:
* =====================
@@ -234,7 +234,8 @@
* Test the input parameters.
*
INFO = 0
IF ((.NOT.LSAME(SIDE,'L')) .AND. (.NOT.LSAME(SIDE,'R'))) THEN
IF ((.NOT.LSAME(SIDE,'L')) .AND.
+ (.NOT.LSAME(SIDE,'R'))) THEN
INFO = 1
ELSE IF ((.NOT.UPPER) .AND. (.NOT.LSAME(UPLO,'L'))) THEN
INFO = 2
+1 -1
View File
@@ -130,7 +130,7 @@
*> \author Univ. of Colorado Denver
*> \author NAG Ltd.
*
*> \ingroup double_blas_level2
*> \ingroup hemv
*
*> \par Further Details:
* =====================
+1 -1
View File
@@ -111,7 +111,7 @@
*> \author Univ. of Colorado Denver
*> \author NAG Ltd.
*
*> \ingroup double_blas_level2
*> \ingroup her
*
*> \par Further Details:
* =====================
+1 -1
View File
@@ -126,7 +126,7 @@
*> \author Univ. of Colorado Denver
*> \author NAG Ltd.
*
*> \ingroup double_blas_level2
*> \ingroup her2
*
*> \par Further Details:
* =====================
+1 -1
View File
@@ -170,7 +170,7 @@
*> \author Univ. of Colorado Denver
*> \author NAG Ltd.
*
*> \ingroup double_blas_level3
*> \ingroup her2k
*
*> \par Further Details:
* =====================
+1 -1
View File
@@ -148,7 +148,7 @@
*> \author Univ. of Colorado Denver
*> \author NAG Ltd.
*
*> \ingroup double_blas_level3
*> \ingroup herk
*
*> \par Further Details:
* =====================
+5 -3
View File
@@ -164,7 +164,7 @@
*> \author Univ. of Colorado Denver
*> \author NAG Ltd.
*
*> \ingroup double_blas_level2
*> \ingroup tbmv
*
*> \par Further Details:
* =====================
@@ -223,10 +223,12 @@
INFO = 0
IF (.NOT.LSAME(UPLO,'U') .AND. .NOT.LSAME(UPLO,'L')) THEN
INFO = 1
ELSE IF (.NOT.LSAME(TRANS,'N') .AND. .NOT.LSAME(TRANS,'T') .AND.
ELSE IF (.NOT.LSAME(TRANS,'N') .AND.
+ .NOT.LSAME(TRANS,'T') .AND.
+ .NOT.LSAME(TRANS,'C')) THEN
INFO = 2
ELSE IF (.NOT.LSAME(DIAG,'U') .AND. .NOT.LSAME(DIAG,'N')) THEN
ELSE IF (.NOT.LSAME(DIAG,'U') .AND.
+ .NOT.LSAME(DIAG,'N')) THEN
INFO = 3
ELSE IF (N.LT.0) THEN
INFO = 4
+5 -3
View File
@@ -168,7 +168,7 @@
*> \author Univ. of Colorado Denver
*> \author NAG Ltd.
*
*> \ingroup double_blas_level2
*> \ingroup tbsv
*
*> \par Further Details:
* =====================
@@ -226,10 +226,12 @@
INFO = 0
IF (.NOT.LSAME(UPLO,'U') .AND. .NOT.LSAME(UPLO,'L')) THEN
INFO = 1
ELSE IF (.NOT.LSAME(TRANS,'N') .AND. .NOT.LSAME(TRANS,'T') .AND.
ELSE IF (.NOT.LSAME(TRANS,'N') .AND.
+ .NOT.LSAME(TRANS,'T') .AND.
+ .NOT.LSAME(TRANS,'C')) THEN
INFO = 2
ELSE IF (.NOT.LSAME(DIAG,'U') .AND. .NOT.LSAME(DIAG,'N')) THEN
ELSE IF (.NOT.LSAME(DIAG,'U') .AND.
+ .NOT.LSAME(DIAG,'N')) THEN
INFO = 3
ELSE IF (N.LT.0) THEN
INFO = 4
+5 -3
View File
@@ -120,7 +120,7 @@
*> \author Univ. of Colorado Denver
*> \author NAG Ltd.
*
*> \ingroup double_blas_level2
*> \ingroup tpmv
*
*> \par Further Details:
* =====================
@@ -176,10 +176,12 @@
INFO = 0
IF (.NOT.LSAME(UPLO,'U') .AND. .NOT.LSAME(UPLO,'L')) THEN
INFO = 1
ELSE IF (.NOT.LSAME(TRANS,'N') .AND. .NOT.LSAME(TRANS,'T') .AND.
ELSE IF (.NOT.LSAME(TRANS,'N') .AND.
+ .NOT.LSAME(TRANS,'T') .AND.
+ .NOT.LSAME(TRANS,'C')) THEN
INFO = 2
ELSE IF (.NOT.LSAME(DIAG,'U') .AND. .NOT.LSAME(DIAG,'N')) THEN
ELSE IF (.NOT.LSAME(DIAG,'U') .AND.
+ .NOT.LSAME(DIAG,'N')) THEN
INFO = 3
ELSE IF (N.LT.0) THEN
INFO = 4
+5 -3
View File
@@ -123,7 +123,7 @@
*> \author Univ. of Colorado Denver
*> \author NAG Ltd.
*
*> \ingroup double_blas_level2
*> \ingroup tpsv
*
*> \par Further Details:
* =====================
@@ -178,10 +178,12 @@
INFO = 0
IF (.NOT.LSAME(UPLO,'U') .AND. .NOT.LSAME(UPLO,'L')) THEN
INFO = 1
ELSE IF (.NOT.LSAME(TRANS,'N') .AND. .NOT.LSAME(TRANS,'T') .AND.
ELSE IF (.NOT.LSAME(TRANS,'N') .AND.
+ .NOT.LSAME(TRANS,'T') .AND.
+ .NOT.LSAME(TRANS,'C')) THEN
INFO = 2
ELSE IF (.NOT.LSAME(DIAG,'U') .AND. .NOT.LSAME(DIAG,'N')) THEN
ELSE IF (.NOT.LSAME(DIAG,'U') .AND.
+ .NOT.LSAME(DIAG,'N')) THEN
INFO = 3
ELSE IF (N.LT.0) THEN
INFO = 4
+3 -2
View File
@@ -156,7 +156,7 @@
*> \author Univ. of Colorado Denver
*> \author NAG Ltd.
*
*> \ingroup double_blas_level3
*> \ingroup trmm
*
*> \par Further Details:
* =====================
@@ -230,7 +230,8 @@
+ (.NOT.LSAME(TRANSA,'T')) .AND.
+ (.NOT.LSAME(TRANSA,'C'))) THEN
INFO = 3
ELSE IF ((.NOT.LSAME(DIAG,'U')) .AND. (.NOT.LSAME(DIAG,'N'))) THEN
ELSE IF ((.NOT.LSAME(DIAG,'U')) .AND.
+ (.NOT.LSAME(DIAG,'N'))) THEN
INFO = 4
ELSE IF (M.LT.0) THEN
INFO = 5
+5 -3
View File
@@ -125,7 +125,7 @@
*> \author Univ. of Colorado Denver
*> \author NAG Ltd.
*
*> \ingroup double_blas_level2
*> \ingroup trmv
*
*> \par Further Details:
* =====================
@@ -184,10 +184,12 @@
INFO = 0
IF (.NOT.LSAME(UPLO,'U') .AND. .NOT.LSAME(UPLO,'L')) THEN
INFO = 1
ELSE IF (.NOT.LSAME(TRANS,'N') .AND. .NOT.LSAME(TRANS,'T') .AND.
ELSE IF (.NOT.LSAME(TRANS,'N') .AND.
+ .NOT.LSAME(TRANS,'T') .AND.
+ .NOT.LSAME(TRANS,'C')) THEN
INFO = 2
ELSE IF (.NOT.LSAME(DIAG,'U') .AND. .NOT.LSAME(DIAG,'N')) THEN
ELSE IF (.NOT.LSAME(DIAG,'U') .AND.
+ .NOT.LSAME(DIAG,'N')) THEN
INFO = 3
ELSE IF (N.LT.0) THEN
INFO = 4
+3 -2
View File
@@ -159,7 +159,7 @@
*> \author Univ. of Colorado Denver
*> \author NAG Ltd.
*
*> \ingroup double_blas_level3
*> \ingroup trsm
*
*> \par Further Details:
* =====================
@@ -234,7 +234,8 @@
+ (.NOT.LSAME(TRANSA,'T')) .AND.
+ (.NOT.LSAME(TRANSA,'C'))) THEN
INFO = 3
ELSE IF ((.NOT.LSAME(DIAG,'U')) .AND. (.NOT.LSAME(DIAG,'N'))) THEN
ELSE IF ((.NOT.LSAME(DIAG,'U')) .AND.
+ (.NOT.LSAME(DIAG,'N'))) THEN
INFO = 4
ELSE IF (M.LT.0) THEN
INFO = 5
+6 -4
View File
@@ -136,12 +136,12 @@
*> \author Univ. of Colorado Denver
*> \author NAG Ltd.
*
*> \ingroup double_blas_level1
*> \ingroup trsv
*
* =====================================================================
SUBROUTINE DTRSV(UPLO,TRANS,DIAG,N,A,LDA,X,INCX)
*
* -- Reference BLAS level1 routine --
* -- Reference BLAS level2 routine --
* -- Reference BLAS is a software package provided by Univ. of Tennessee, --
* -- Univ. of California Berkeley, Univ. of Colorado Denver and NAG Ltd..--
*
@@ -180,10 +180,12 @@
INFO = 0
IF (.NOT.LSAME(UPLO,'U') .AND. .NOT.LSAME(UPLO,'L')) THEN
INFO = 1
ELSE IF (.NOT.LSAME(TRANS,'N') .AND. .NOT.LSAME(TRANS,'T') .AND.
ELSE IF (.NOT.LSAME(TRANS,'N') .AND.
+ .NOT.LSAME(TRANS,'T') .AND.
+ .NOT.LSAME(TRANS,'C')) THEN
INFO = 2
ELSE IF (.NOT.LSAME(DIAG,'U') .AND. .NOT.LSAME(DIAG,'N')) THEN
ELSE IF (.NOT.LSAME(DIAG,'U') .AND.
+ .NOT.LSAME(DIAG,'N')) THEN
INFO = 3
ELSE IF (N.LT.0) THEN
INFO = 4
+1 -1
View File
@@ -55,7 +55,7 @@
*> \author Univ. of Colorado Denver
*> \author NAG Ltd.
*
*> \ingroup double_blas_level1
*> \ingroup asum
*
*> \par Further Details:
* =====================
+2 -2
View File
@@ -61,7 +61,7 @@
!
!> \date August 2016
!
!> \ingroup single_blas_level1
!> \ingroup nrm2
!
!> \par Contributors:
! ==================
@@ -90,7 +90,7 @@ function DZNRM2( n, x, incx )
integer, parameter :: wp = kind(1.d0)
real(wp) :: DZNRM2
!
! -- Reference BLAS level1 routine (version 3.9.1) --
! -- Reference BLAS level1 routine --
! -- Reference BLAS is a software package provided by Univ. of Tennessee, --
! -- Univ. of California Berkeley, Univ. of Colorado Denver and NAG Ltd..--
! March 2021
+189
View File
@@ -0,0 +1,189 @@
!> \brief \b ICAMAX
!
! =========== DOCUMENTATION ===========
!
! Online html documentation available at
! http://www.netlib.org/lapack/explore-html/
!
! Definition:
! ===========
!
! INTEGER FUNCTION ICAMAX(N,X,INCX)
!
! .. Scalar Arguments ..
! INTEGER INCX,N
! ..
! .. Array Arguments ..
! COMPLEX X(*)
! ..
!
!
!> \par Purpose:
! =============
!>
!> \verbatim
!>
!> ICAMAX finds the index of the first element having maximum |Re(.)| + |Im(.)|
!> \endverbatim
!
! Arguments:
! ==========
!
!> \param[in] N
!> \verbatim
!> N is INTEGER
!> number of elements in input vector(s)
!> \endverbatim
!>
!> \param[in] X
!> \verbatim
!> X is COMPLEX array, dimension ( 1 + ( N - 1 )*abs( INCX ) )
!> \endverbatim
!>
!> \param[in] INCX
!> \verbatim
!> INCX is INTEGER
!> storage spacing between elements of X
!> \endverbatim
!
! Authors:
! ========
!
!> James Demmel, University of California Berkeley, USA
!> Weslley Pereira, National Renewable Energy Laboratory, USA
!
!> \ingroup iamax
!
!> \par Further Details:
! =====================
!>
!> \verbatim
!>
!> James Demmel et al. Proposed Consistent Exception Handling for the BLAS and
!> LAPACK, 2022 (https://arxiv.org/abs/2207.09281).
!>
!> \endverbatim
!>
! =====================================================================
integer function icamax(n, x, incx)
integer, parameter :: wp = kind(1.e0)
!
! -- Reference BLAS level1 routine --
! -- Reference BLAS is a software package provided by Univ. of Tennessee, --
! -- Univ. of California Berkeley, Univ. of Colorado Denver and NAG Ltd..--
!
! .. Constants ..
real(wp), parameter :: hugeval = huge(0.0_wp)
!
! .. Scalar Arguments ..
integer :: n, incx
!
! .. Array Arguments ..
complex(wp) :: x(*)
! ..
! .. Local Scalars ..
integer :: i, j, ix, jx
real(wp) :: val, smax
logical :: scaledsmax
!
! Quick return if possible
!
icamax = 0
if (n < 1 .or. incx < 1) return
!
icamax = 1
if (n == 1) return
!
icamax = 0
scaledsmax = .false.
smax = -1
!
! scaledsmax = .true. indicates that x(icamax) is finite but
! abs(real(x(icamax))) + abs(imag(x(icamax))) overflows
!
if (incx == 1) then
! code for increment equal to 1
do i = 1, n
if (x(i) /= x(i)) then
! return when first NaN found
icamax = i
return
elseif (abs(real(x(i))) > hugeval .or. abs(imag(x(i))) > hugeval) then
! keep looking for first NaN
do j = i+1, n
if (x(j) /= x(j)) then
! return when first NaN found
icamax = j
return
endif
enddo
! record location of first Inf
icamax = i
return
else ! still no Inf found yet
if (.not. scaledsmax) then
! no abs(real(x(i))) + abs(imag(x(i))) = Inf yet
val = abs(real(x(i))) + abs(imag(x(i)))
if (val > hugeval) then
scaledsmax = .true.
smax = 0.25*abs(real(x(i))) + 0.25*abs(imag(x(i)))
icamax = i
elseif (val > smax) then ! everything finite so far
smax = val
icamax = i
endif
else ! scaledsmax
val = 0.25*abs(real(x(i))) + 0.25*abs(imag(x(i)))
if (val > smax) then
smax = val
icamax = i
endif
endif
endif
end do
else
! code for increment not equal to 1
ix = 1
do i = 1, n
if (x(ix) /= x(ix)) then
! return when first NaN found
icamax = i
return
elseif (abs(real(x(ix))) > hugeval .or. abs(imag(x(ix))) > hugeval) then
! keep looking for first NaN
jx = ix + incx
do j = i+1, n
if (x(jx) /= x(jx)) then
! return when first NaN found
icamax = j
return
endif
jx = jx + incx
enddo
! record location of first Inf
icamax = i
return
else ! still no Inf found yet
if (.not. scaledsmax) then
! no abs(real(x(ix))) + abs(imag(x(ix))) = Inf yet
val = abs(real(x(ix))) + abs(imag(x(ix)))
if (val > hugeval) then
scaledsmax = .true.
smax = 0.25*abs(real(x(ix))) + 0.25*abs(imag(x(ix)))
icamax = i
elseif (val > smax) then ! everything finite so far
smax = val
icamax = i
endif
else ! scaledsmax
val = 0.25*abs(real(x(ix))) + 0.25*abs(imag(x(ix)))
if (val > smax) then
smax = val
icamax = i
endif
endif
endif
ix = ix + incx
end do
endif
end
+1 -1
View File
@@ -54,7 +54,7 @@
*> \author Univ. of Colorado Denver
*> \author NAG Ltd.
*
*> \ingroup aux_blas
*> \ingroup iamax
*
*> \par Further Details:
* =====================
+1 -1
View File
@@ -54,7 +54,7 @@
*> \author Univ. of Colorado Denver
*> \author NAG Ltd.
*
*> \ingroup aux_blas
*> \ingroup iamax
*
*> \par Further Details:
* =====================
+189
View File
@@ -0,0 +1,189 @@
!> \brief \b IZAMAX
!
! =========== DOCUMENTATION ===========
!
! Online html documentation available at
! http://www.netlib.org/lapack/explore-html/
!
! Definition:
! ===========
!
! INTEGER FUNCTION IZAMAX(N,X,INCX)
!
! .. Scalar Arguments ..
! INTEGER INCX,N
! ..
! .. Array Arguments ..
! DOUBLE COMPLEX X(*)
! ..
!
!
!> \par Purpose:
! =============
!>
!> \verbatim
!>
!> IZAMAX finds the index of the first element having maximum |Re(.)| + |Im(.)|
!> \endverbatim
!
! Arguments:
! ==========
!
!> \param[in] N
!> \verbatim
!> N is INTEGER
!> number of elements in input vector(s)
!> \endverbatim
!>
!> \param[in] X
!> \verbatim
!> X is DOUBLE COMPLEX array, dimension ( 1 + ( N - 1 )*abs( INCX ) )
!> \endverbatim
!>
!> \param[in] INCX
!> \verbatim
!> INCX is INTEGER
!> storage spacing between elements of X
!> \endverbatim
!
! Authors:
! ========
!
!> James Demmel, University of California Berkeley, USA
!> Weslley Pereira, National Renewable Energy Laboratory, USA
!
!> \ingroup iamax
!
!> \par Further Details:
! =====================
!>
!> \verbatim
!>
!> James Demmel et al. Proposed Consistent Exception Handling for the BLAS and
!> LAPACK, 2022 (https://arxiv.org/abs/2207.09281).
!>
!> \endverbatim
!>
! =====================================================================
integer function izamax(n, x, incx)
integer, parameter :: wp = kind(1.d0)
!
! -- Reference BLAS level1 routine --
! -- Reference BLAS is a software package provided by Univ. of Tennessee, --
! -- Univ. of California Berkeley, Univ. of Colorado Denver and NAG Ltd..--
!
! .. Constants ..
real(wp), parameter :: hugeval = huge(0.0_wp)
!
! .. Scalar Arguments ..
integer :: n, incx
!
! .. Array Arguments ..
complex(wp) :: x(*)
! ..
! .. Local Scalars ..
integer :: i, j, ix, jx
real(wp) :: val, smax
logical :: scaledsmax
!
! Quick return if possible
!
izamax = 0
if (n < 1 .or. incx < 1) return
!
izamax = 1
if (n == 1) return
!
izamax = 0
scaledsmax = .false.
smax = -1
!
! scaledsmax = .true. indicates that x(izamax) is finite but
! abs(real(x(izamax))) + abs(imag(x(izamax))) overflows
!
if (incx == 1) then
! code for increment equal to 1
do i = 1, n
if (x(i) /= x(i)) then
! return when first NaN found
izamax = i
return
elseif (abs(real(x(i))) > hugeval .or. abs(imag(x(i))) > hugeval) then
! keep looking for first NaN
do j = i+1, n
if (x(j) /= x(j)) then
! return when first NaN found
izamax = j
return
endif
enddo
! record location of first Inf
izamax = i
return
else ! still no Inf found yet
if (.not. scaledsmax) then
! no abs(real(x(i))) + abs(imag(x(i))) = Inf yet
val = abs(real(x(i))) + abs(imag(x(i)))
if (val > hugeval) then
scaledsmax = .true.
smax = 0.25*abs(real(x(i))) + 0.25*abs(imag(x(i)))
izamax = i
elseif (val > smax) then ! everything finite so far
smax = val
izamax = i
endif
else ! scaledsmax
val = 0.25*abs(real(x(i))) + 0.25*abs(imag(x(i)))
if (val > smax) then
smax = val
izamax = i
endif
endif
endif
end do
else
! code for increment not equal to 1
ix = 1
do i = 1, n
if (x(ix) /= x(ix)) then
! return when first NaN found
izamax = i
return
elseif (abs(real(x(ix))) > hugeval .or. abs(imag(x(ix))) > hugeval) then
! keep looking for first NaN
jx = ix + incx
do j = i+1, n
if (x(jx) /= x(jx)) then
! return when first NaN found
izamax = j
return
endif
jx = jx + incx
enddo
! record location of first Inf
izamax = i
return
else ! still no Inf found yet
if (.not. scaledsmax) then
! no abs(real(x(ix))) + abs(imag(x(ix))) = Inf yet
val = abs(real(x(ix))) + abs(imag(x(ix)))
if (val > hugeval) then
scaledsmax = .true.
smax = 0.25*abs(real(x(ix))) + 0.25*abs(imag(x(ix)))
izamax = i
elseif (val > smax) then ! everything finite so far
smax = val
izamax = i
endif
else ! scaledsmax
val = 0.25*abs(real(x(ix))) + 0.25*abs(imag(x(ix)))
if (val > smax) then
smax = val
izamax = i
endif
endif
endif
ix = ix + incx
end do
endif
end
+1 -1
View File
@@ -46,7 +46,7 @@
*> \author Univ. of Colorado Denver
*> \author NAG Ltd.
*
*> \ingroup aux_blas
*> \ingroup lsame
*
* =====================================================================
LOGICAL FUNCTION LSAME(CA,CB)
+1 -1
View File
@@ -55,7 +55,7 @@
*> \author Univ. of Colorado Denver
*> \author NAG Ltd.
*
*> \ingroup single_blas_level1
*> \ingroup asum
*
*> \par Further Details:
* =====================
+1 -1
View File
@@ -73,7 +73,7 @@
*> \author Univ. of Colorado Denver
*> \author NAG Ltd.
*
*> \ingroup single_blas_level1
*> \ingroup axpy
*
*> \par Further Details:
* =====================
+1 -1
View File
@@ -39,7 +39,7 @@
*> \author Univ. of Colorado Denver
*> \author NAG Ltd.
*
*> \ingroup single_blas_level1
*> \ingroup abs1
*
* =====================================================================
REAL FUNCTION SCABS1(Z)
+1 -1
View File
@@ -55,7 +55,7 @@
*> \author Univ. of Colorado Denver
*> \author NAG Ltd.
*
*> \ingroup single_blas_level1
*> \ingroup asum
*
*> \par Further Details:
* =====================
+2 -2
View File
@@ -61,7 +61,7 @@
!
!> \date August 2016
!
!> \ingroup single_blas_level1
!> \ingroup nrm2
!
!> \par Contributors:
! ==================
@@ -90,7 +90,7 @@ function SCNRM2( n, x, incx )
integer, parameter :: wp = kind(1.e0)
real(wp) :: SCNRM2
!
! -- Reference BLAS level1 routine (version 3.9.1) --
! -- Reference BLAS level1 routine --
! -- Reference BLAS is a software package provided by Univ. of Tennessee, --
! -- Univ. of California Berkeley, Univ. of Colorado Denver and NAG Ltd..--
! March 2021
+1 -1
View File
@@ -66,7 +66,7 @@
*> \author Univ. of Colorado Denver
*> \author NAG Ltd.
*
*> \ingroup single_blas_level1
*> \ingroup copy
*
*> \par Further Details:
* =====================
+1 -1
View File
@@ -66,7 +66,7 @@
*> \author Univ. of Colorado Denver
*> \author NAG Ltd.
*
*> \ingroup single_blas_level1
*> \ingroup dot
*
*> \par Further Details:
* =====================
+1 -1
View File
@@ -82,7 +82,7 @@
*> \author Univ. of Colorado Denver
*> \author NAG Ltd.
*
*> \ingroup single_blas_level1
*> \ingroup dot
*
*> \par Further Details:
* =====================
+5 -2
View File
@@ -146,6 +146,8 @@
*> ( 1 + ( n - 1 )*abs( INCY ) ) otherwise.
*> Before entry, the incremented array Y must contain the
*> vector y. On exit, Y is overwritten by the updated vector y.
*> If either m or n is zero, then Y not referenced and the function
*> performs a quick return.
*> \endverbatim
*>
*> \param[in] INCY
@@ -163,7 +165,7 @@
*> \author Univ. of Colorado Denver
*> \author NAG Ltd.
*
*> \ingroup single_blas_level2
*> \ingroup gbmv
*
*> \par Further Details:
* =====================
@@ -181,7 +183,8 @@
*> \endverbatim
*>
* =====================================================================
SUBROUTINE SGBMV(TRANS,M,N,KL,KU,ALPHA,A,LDA,X,INCX,BETA,Y,INCY)
SUBROUTINE SGBMV(TRANS,M,N,KL,KU,ALPHA,A,LDA,X,INCX,
+ BETA,Y,INCY)
*
* -- Reference BLAS level2 routine --
* -- Reference BLAS is a software package provided by Univ. of Tennessee, --
+3 -2
View File
@@ -166,7 +166,7 @@
*> \author Univ. of Colorado Denver
*> \author NAG Ltd.
*
*> \ingroup single_blas_level3
*> \ingroup gemm
*
*> \par Further Details:
* =====================
@@ -183,7 +183,8 @@
*> \endverbatim
*>
* =====================================================================
SUBROUTINE SGEMM(TRANSA,TRANSB,M,N,K,ALPHA,A,LDA,B,LDB,BETA,C,LDC)
SUBROUTINE SGEMM(TRANSA,TRANSB,M,N,K,ALPHA,A,LDA,B,LDB,
+ BETA,C,LDC)
*
* -- Reference BLAS level3 routine --
* -- Reference BLAS is a software package provided by Univ. of Tennessee, --

Some files were not shown because too many files have changed in this diff Show More