Compare commits

...
Author SHA1 Message Date
thijssteel 7094cb0f7c add steqr wrappers for comparison 2024-03-06 17:07:20 +01:00
thijssteel 7a2ecc24e5 add fortran wrappers for steqr3 2024-03-06 16:33:46 +01:00
thijssteel b44c64faef add steqr3 2024-03-06 15:58:48 +01:00
thijssteel a4c4a4eb52 add steqr3 2024-03-06 14:24:35 +01:00
thijssteel 0d9803a29c add c wrapper to cpp rot 2024-03-06 11:58:41 +01:00
thijssteel 81be118bcb change filenames 2024-03-04 09:41:25 +01:00
thijssteel f57a792304 use direct overloading for rot 2024-03-01 18:10:27 +01:00
thijssteel 2bdd724ecf small change in template of lasr3 2024-03-01 18:10:08 +01:00
thijssteel 1a95ff9b67 add fortran wrappers for lasr3 2024-02-29 16:21:40 +01:00
thijssteel 5b521e6ccc copy over files from lapackv4 repo 2024-02-29 16:04:38 +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
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
langou 7866626840 Merge pull request #751 from weslleyspereira/lapack-3.11-preparation
Preparing LAPACK 3.11
2022-11-11 10:49:54 -07:00
Weslley da Silva Pereira 57f15d84c1 Change ILAVER and Doxyfile accordingly 2022-11-10 10:43:17 -07:00
Weslley da Silva Pereira 9300418fe4 Change README and CMakeLists to LAPACK 3.11 2022-11-10 10:29:22 -07:00
langou e7253049ce Merge pull request #739 from scr2016/master
added new routines [S,D,C,Z]GELST and test code for the least squares
2022-11-10 08:08:40 -07:00
scr2016 d5203e94d5 added missing testing for error exits for ZGELST routine, i.e.
modified TESTING/LIN/zerrls.f accordingly. Also fixed comments typo in
[S,D,C,Z]GELST.
modified:   SRC/cgelst.f
modified:   SRC/dgelst.f
modified:   SRC/sgelst.f
modified:   SRC/zgelst.f
modified:   TESTING/LIN/zerrls.f
2022-11-10 07:00:47 -08:00
Weslley S. Pereira d7614a37b4 Merge pull request #627 from martin-frbg/appveyor-conda
Update conda version used in Appveyor
2022-11-09 10:26:30 -07:00
Weslley S. Pereira c30e50270b Merge pull request #631 from weslleyspereira/fix-precision-in-clartgf90-2
New algorithms for computing Givens rotations
2022-11-09 10:24:43 -07:00
langou 5c5ddfd4bf Merge pull request #747 from weslleyspereira/fix-733
Fix wrong documentation as reported in #733
2022-11-09 10:08:15 -07:00
Weslley S. Pereira 4911ca48b1 Update .appveyor.yml
Removing comments.

Keep the one commented line that disabled automatic updates of conda itself.
2022-11-09 10:00:46 -07:00
Daniel Bielich fd272e7f44 Progress to the testing implementation in double precision 2022-11-09 11:40:48 -05:00
Martin Kroeker b095fc6b5b temporarily disable build cache 2022-11-09 11:37:01 +01:00
Martin Kroeker 4c8b76da4e use newer miniconda 2022-11-09 11:22:53 +01:00
Martin Kroeker a790c4dbe5 Update .appveyor.yml 2022-11-08 22:23:59 +01:00
Martin Kroeker f7fa63f973 Update .appveyor.yml 2022-11-08 22:06:05 +01:00
Martin Kroeker 798ab5f8c3 Update .appveyor.yml 2022-11-08 21:54:38 +01:00
Martin Kroeker ac7d655484 Update .appveyor.yml 2022-11-08 18:53:46 +01:00
Martin Kroeker 70373e1a4c Update .appveyor.yml 2022-11-08 17:24:27 +01:00
Martin Kroeker ab12b85909 Update .appveyor.yml 2022-11-08 17:09:50 +01:00
Martin Kroeker 4bf5eb723c Update .appveyor.yml 2022-11-08 16:03:37 +01:00
Martin Kroeker 6fa0844c31 Update .appveyor.yml 2022-11-08 14:33:37 +01:00
Martin Kroeker f076f7482b reshuffle conda commands 2022-11-08 14:14:42 +01:00
Martin Kroeker 211fbbed0e allow conda updates again 2022-11-08 13:22:32 +01:00
Weslley da Silva Pereira f8b6b40498 Fix wrong documentation as reported in #733 2022-11-07 15:48:55 -07:00
Daniel Bielich 7aeab0792e Fix for complex dmdq codes and progress to tester 2022-11-02 14:11:16 -04:00
langou 1e7759a9f2 Merge pull request #742 from ACSimon33/LAPACKE_xLARFB_nancheck
Lapacke x larfb nancheck
2022-10-30 18:37:12 -06:00
langou 20b45b995d Merge pull request #741 from ACSimon33/lapacke_xtrsyl3_iwork_query
Added missing iwork query.
2022-10-30 18:37:00 -06:00
Simon Maertens 48377cdf6f Added missing iwork query. 2022-10-31 00:29:43 +01:00
langou 755c71b24b Merge pull request #740 from ACSimon33/LAPACKE_ctrsyl3_work
Added missing declaration for LAPACKE_ctrsyl3_work
2022-10-30 17:16:16 -06:00
Simon Maertens 80392de422 Added missing declaration for LAPACKE_ctrsyl3_work. 2022-10-31 00:01:47 +01:00
Simon Maertens 6ef9ae99da Updated build system. 2022-10-30 23:47:16 +01:00
Simon Maertens de9eb94acf Updated lapacke_utils header 2022-10-30 23:46:55 +01:00
Simon Maertens 87cb1d113c Added trapezoidal transpositions to LAPACKE_?larfb_work. 2022-10-30 23:37:31 +01:00
Simon Maertens c91f13e2f7 Fixed rows and cols order in ?larfb 2022-10-30 21:32:46 +01:00
Simon Maertens 6b5c5bba7f Implemented transpose function for trapezoidal matrices. 2022-10-30 21:09:03 +01:00
Simon Maertens 70c4244912 Paranthesis formatting. 2022-10-30 21:02:31 +01:00
Simon Maertens c43d27a889 Paranthesis formatting. 2022-10-30 20:14:32 +01:00
Simon Maertens 2da7000a7f Fixed bug in trapezoidal NaN check. 2022-10-30 20:12:09 +01:00
Simon Maertens a7e0724530 Used trapezoidal NaN check in LAPACKE_?larfb 2022-10-30 17:30:26 +01:00
scr2016 b8f586bcc4 added a new routines [S,D,C,Z]GELST and test code for the least
squares algorithm that solves overdetermined or underdetermined systems for
GE matrices using QR or LQ factorization with compact WY representation
of Q inside the routine.

*GELST is similar to *GELS, but unlike *GELS does not compute triangular blocks
twice, i.e. runs faster.

modified:   SRC/Makefile
new file:   SRC/cgelst.f
new file:   SRC/dgelst.f
new file:   SRC/sgelst.f
new file:   SRC/zgelst.f
modified:   TESTING/LIN/alahd.f
modified:   TESTING/LIN/cdrvls.f
modified:   TESTING/LIN/cerrls.f
modified:   TESTING/LIN/ddrvls.f
modified:   TESTING/LIN/derrls.f
modified:   TESTING/LIN/sdrvls.f
modified:   TESTING/LIN/serrls.f
modified:   TESTING/LIN/zdrvls.f
2022-10-29 02:47:52 -07:00
langou 17f99f2836 Merge pull request #738 from ACSimon33/LAPACKE_norm_routines
NaN check for trapezoidal routines.
2022-10-27 12:11:56 -06:00
Simon Maertens bcfdb93aed Removed tabs. 2022-10-27 17:56:17 +02:00
Simon Maertens 14ff62a81e Removed empty lines. 2022-10-27 17:54:04 +02:00
Simon Maertens 0b36d01679 Formatting. 2022-10-27 17:34:42 +02:00
Simon Maertens 9d4f2e0cc7 Added NaN check for trapezoidal matrices and applied it to LAPACKE_?lantr 2022-10-27 17:26:11 +02:00
Simon Maertens ed72332590 Added LAPACK_?langb.o objects to the Makefile. 2022-10-23 15:42:57 +02: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
langou 0b7c0830b1 Merge pull request #735 from eltociear/patch-1
Fix typo in ieeeck.f
2022-10-19 10:46:54 -06:00
Ikko Ashimine 8371b0b9de Fix typo in ieeeck.f
inifinity -> infinity
2022-10-20 01:16:46 +09:00
Daniel Bielich cea00a7ae7 Adding DMD algorithm in four precisions, tester will follow 2022-10-18 17:52:57 -04:00
langou e94df5383a Merge pull request #540 from weslleyspereira/fix-404-LAPACKE-dtpmqrt
Fix error on LAPACKE_*tpmqrt_work for ROW MAJOR matrices
2022-10-18 13:55:37 -06:00
langou 28f7e83096 Merge pull request #728 from angsch/master
Fix lower triangular band matrix generation
2022-10-12 18:19:11 -06:00
Weslley da Silva Pereira c9e012152f Apply the fixes on lapacke_(c,s,z)tpmqrt_work.c 2022-10-12 13:14:21 -06:00
Angelika Schwarz ca9fa5a016 Fix lower triangular band matrix generation
Closes #343
2022-10-12 18:22:51 +02:00
langou 96bd210ccd Merge pull request #655 from weslleyspereira/try-improve-convergence-dlaed4
Try improve convergence dlaed4
2022-10-11 19:39:14 -06:00
Weslley da Silva Pereira 64a0db9b19 Applies fixes thanks to @angsch 2022-10-10 13:51:07 -06:00
Weslley S. Pereira 79a37b29a5 Merge pull request #721 from angsch/cblas
Fix 2 CBLAS issues
2022-10-06 14:49:25 -06:00
langou 7012e36507 Merge pull request #651 from angsch/master
Add level-3 BLAS triangular Sylvester equation solver
2022-10-06 14:22:58 -06:00
langou 34b804e996 Merge pull request #698 from thijssteel/qz-revert-infinite-eigenvalue-criterion
Use normwise criterion for inf eigenvalues in QZ
2022-10-06 14:11:05 -06:00
langou 64023f5699 Merge pull request #725 from ACSimon33/LAPACKE_xlangb
Implemented a LAPACKE_?langb interface
2022-10-06 14:09:55 -06:00
langou 83c7e0def1 Merge pull request #703 from weslleyspereira/explicit-all-conversions
Define conversions explicitly, and use more rigorous flags in the CI
2022-10-06 13:57:21 -06:00
Simon Maertens 15e62c3e70 Use the same trick as in ?lange to remove the matrix transposition. 2022-10-06 13:59:10 +01:00
Simon Maertens 945bb8d170 Removed unnecessary assign to info. 2022-10-05 19:58:26 +01:00
Simon Maertens 6c6c5a5372 Changed copyright year of LAPACKE_?langb files. 2022-10-05 19:48:52 +01:00
Simon Maertens 12ce4ff977 Changed auther of LAPACKE_?langb files. 2022-10-05 19:38:32 +01:00
Simon Maertens 1de378bbb9 Added LAPACKE_?langb interfaces. 2022-10-05 18:00:40 +01:00
Angelika Schwarz a8028e9ddc Fix undefined reference to cblas_[sd]cabs1
cblas.h defines

   double cblas_dcabs1(const void  *z);
   float  cblas_scabs1(const void  *c);

but does not provide an implementation. This commit adds
the missing implementation in the common CBLAS style and
eliminates the linker error when calling the above function.
2022-10-02 16:54:32 +02:00
langou 7c16bc09a8 Merge pull request #712 from angsch/scale
Set SCALE early for robust triangular solvers
2022-09-29 17:45:02 -06:00
langou 291d268f03 Merge pull request #720 from MonicaLiu0311/vcpkg-installition
Add vcpkg installation instructions
2022-09-27 17:45:58 -06:00
Angelika Schwarz 02b71fcbc6 Add interfaces cblas_[c,z]rotg, cblas_[cs,zd]rot
Closes #473
2022-09-27 19:46:08 +02:00
Angelika Schwarz 0a7dec1ff1 Avoid NaN generation in LATRS
Fixes #714
2022-09-25 17:38:34 +02:00
Angelika Schwarz 7ce9bf5fca Set SCALE early for robust triangular solvers
1) The docs define SCALE as an output argument. Set SCALE *before*
the quick return case to have SCALE defined in all cases. This is
how the similar routine TRSYL handles the case already.

2) Remove invocations of LABAD in complex routines and be consistent
with their real counterparts, which do not call LABAD.
2022-09-19 17:20:47 +02:00
langou 4f5e185894 Merge pull request #697 from weslleyspereira/fix-sorcsd
Fix sorcsd
2022-09-18 12:00:32 -06:00
Angelika Schwarz 970a7721d8 Add BLAS-3 robust triangular solver T*X = B*diag(s1, ..., sN)
An extensions of LATRS solving T*x = s*x to many right-hand sides,
allowing the usage of BLAS-3.

The new algorithm tends to use less aggressive scaling,
in particular for larger matrices.
2022-09-18 15:22:13 +02:00
Monica 3067a050e9 Add vcpkg installation instructions 2022-09-15 15:29:47 +08:00
Angelika Schwarz 1c1263ec24 Use unblocked code if insufficient workspace is provided 2022-09-14 20:12:53 +02:00
Angelika Schwarz 8f441098cc LAPACKE interface of [cz]trsyl3 2022-09-14 20:12:53 +02:00
Angelika Schwarz 05f9e54f0f Add ctrsyl3 and corresponding tests 2022-09-14 20:12:53 +02:00
Angelika Schwarz 079c185c6a Add ztrsyl3 and corresponding tests
The tests of ztrsyl via zget35 are on tiny matrices that fall into the
unblocked section of ztrsyl3. Add a new test file that checks ztrsyl(3)
for larger matrices and their compatibility: Every problem that is
solvable by ztrsyl must be solvable by ztrsyl3.
2022-09-14 20:12:53 +02:00
Angelika Schwarz 46275f0d78 LAPACKE interface of [sd]trsyl3 2022-09-14 20:12:53 +02:00
Angelika Schwarz 833cd585b5 Test [sd]trsyl3 2022-09-14 20:12:53 +02:00
Angelika Schwarz cda8a83b76 Add level-3 BLAS triangular Sylvester equation solver
Force compatibility with [ds]trsyl. Use two floating-point
scaling factors (rather than integer scaling factors).
This does not eliminate the problem that scalings can be flushed,
making any result useless. That problem could be eliminated
by replacing the floating-point scale factor with an integer
scale factor.
2022-09-14 20:12:53 +02:00
langou 801ac2ff7a Merge pull request #696 from ACSimon33/time_check_flag_propagation
Time check flag propagation and default value.
2022-08-31 07:08:33 -06:00
langou be3a076e1c Merge pull request #713 from ACSimon33/test_summary_fix
Fixed the test dependencies of the test summary
2022-08-28 08:15:33 -06:00
Simon Maertens 40f565c4d6 Fixed the test dependencies of the test summary. Improved status message. 2022-08-22 10:49:19 +01:00
Weslley S. Pereira dcba2e274a Merge pull request #700 from ACSimon33/cblas_int64_warning_fix
Fixed format warnings in 64 bit integer builds.
2022-08-11 12:33:20 -06:00
Weslley da Silva Pereira 9f6566470e Use LTO and warnings for unused variables only on the Makefile CI 2022-08-11 10:07:59 -06:00
Weslley da Silva Pereira fdcd1de954 Removes all implicit conversions from the Fortran and add -Werror=conversion to the CI 2022-08-11 08:55:37 -06:00
Weslley da Silva Pereira 5792a1dc93 Add more information and more strict rules to the CI 2022-08-10 17:26:53 -06:00
Weslley da Silva Pereira 0b9757db86 Explicit all conversions in the Fortran code 2022-08-10 17:26:53 -06:00
Weslley S. Pereira cb8d38c76b Merge pull request #706 from mjacobse/testing-type-mismatches
Fix type mismatches in function calls of testing code
2022-08-10 17:23:18 -06:00
Marcel Jacobse 35dd277cdd Fix type mismatches in function calls of testing code 2022-08-10 20:18:54 +02:00
Simon Maertens 0b5b0fa478 Added 64-bit integer switch to lapack.h header 2022-08-10 16:27:32 +02:00
Weslley da Silva Pereira 2ba5e8e042 Fix bug in DORCSD2BY1 (found by doing a diff between single and double precision files) 2022-08-10 07:07:34 -06:00
Weslley da Silva Pereira 2beef68075 Fix documentation for double, complex and double complex 2022-08-10 07:07:34 -06:00
Weslley da Silva Pereira 02836f353d Revert "SORCSD2BY1: remove dead code"
This reverts commit d245b4f6ef.
2022-08-10 07:07:34 -06:00
Weslley da Silva Pereira 6a44057f06 Revert "SORCSD: fix documentation on matrix dimensions"
This reverts commit bdcd890a18.
2022-08-10 07:07:34 -06:00
Weslley S. Pereira d073b03ec4 Merge pull request #702 from mjacobse/master
Fix type precision in dorbdb6 and zunbdb6
2022-08-10 06:51:31 -06:00
Marcel Jacobse c5287143de Fix type precision in dorbdb6 and zunbdb6 2022-08-10 00:19:35 +02:00
Weslley S. Pereira 984dcc059c Merge pull request #699 from ivan-pi/lsame
Add const to LAPACK_lsame_base
2022-08-09 09:05:06 -06:00
Simon Maertens 57259965ea Added guard around LAPACK_IFMT define. 2022-08-09 07:30:02 +01:00
Simon Maertens 82014d9396 Added LAPACK_IFMT in lapack.h for 32-bit integer builds. Replaced int with int32_t as default type. 2022-08-09 07:28:01 +01:00
Simon Maertens 6030bc410a Fixed LAPACKE integer formats for 64bit build. 2022-08-08 16:41:30 +02:00
Simon Maertens 86d37075ed Fixed CBLAS integer formats for 64bit build. 2022-08-08 16:41:04 +02:00
Ivan Pribec 9079671c6a Add const to LAPACK_lsame_base 2022-08-08 14:52:46 +02:00
thijs e7033666f8 Use normwise criterion in multishift QZ 2022-08-08 10:48:34 +02:00
thijs c6994068c3 Use normwise criterion for inf eigenvalues in QZ 2022-08-08 10:28:18 +02:00
Simon Maertens 4c189dd8fc Fixed default value for TIME_FUNC. 2022-08-05 11:02:36 +02:00
Simon Maertens fc4d4ff59b Propagate Fortran flags as well as linker flags to the time check subproject. Enable verbose output (will only show in the log files). Bit of formatting. 2022-08-05 10:49:21 +02:00
langou 3381a0ec82 Merge pull request #685 from angsch/fixes
Fixes
2022-08-03 17:53:31 -06:00
Angelika Schwarz c8a5cf510e Fix out-of-bounds write in [ds]get40
The test driver allocates a scalar for INFO,
but the test writes to 3 entries. Revise
INFO allocation & propagation:

* Allocate sufficient space for the two INFOs
* Instead of discarding INFO computed in [ds]get40, return
  INFO to test driver
* Fix documentation of input/output arguments

[ds]get31: Fix typo in docs
2022-08-03 09:02:51 +01:00
Angelika Schwarz ecca781af8 Closes #217 2022-08-03 09:02:44 +01:00
Weslley S. Pereira 79bfdd46de Merge pull request #690 from weslleyspereira/master
Fix the left-looking variant of geqrf following #638
2022-07-18 11:20:41 -06:00
Weslley da Silva Pereira e9c4a7af8e Fix the left-looking variant of geqrf following #638 thanks to @angsch. 2022-07-18 10:27:56 -06:00
Weslley S. Pereira 675d71659f Merge pull request #693 from friedc/master
Revert "Do not check the FortranCInterface if LAPACKE is not built."
2022-07-17 20:10:23 -06:00
Christian Friedl 1de2b70cc8 Revert "Do not check the FortranCInterface if LAPACKE is not built."
This reverts commit 8d3ae005a3.
2022-07-16 12:21:07 +02:00
langou 8b3bbfa662 Merge pull request #647 from christoph-conrads/634-xORBDB6-performs-numerically-unadvisable-operations
Fix xORBDB6 performs numerically unadvisable operations
2022-07-15 11:22:37 -06:00
Weslley S. Pereira 3995eacd24 Merge pull request #691 from neil-lindquist/fix-evd-workspace-query
Fix workspace query for *syevd and *heevd routines
2022-07-14 14:19:42 -06:00
Christoph Conrads 145b1c329a xORBDB6/xUNBDB6: fix read of uninitialized variable
There is no warning with GCC 11 about an undeclared and uninitialized
varible being read without the `-Wextra` flag. Why?
2022-07-14 19:28:29 +00:00
Neil Lindquist 423813d720 Fix workspace query for *syevd and *heevd routines 2022-07-14 11:03:38 -04:00
Christoph Conrads 54b3964b0f ZUNBDB6: improve numerical stability, documentation
* Require unit-norm vector X for otherwise the following computations
  might underflow
* Avoid over- and underflows in the computation of the Euclidean norm of
  X
* Fix the Euclidean norm computation after the second Gram-Schmidt
  iteration
* Consider round-off errors when checking for zero vectors
* Update identifiers

Note that the caller ZUNBDB5 always passed unit-norm vectors X.

Thank you @angsch for discovering typos in the function names (`CLASSQ`
was called instead of `ZLASSQ`).
2022-07-10 19:35:19 +00:00
Christoph Conrads 6479e0f531 CUNBDB6: improve numerical stability, documentation
* Require unit-norm vector X for otherwise the following computations
  might underflow
* Avoid over- and underflows in the computation of the Euclidean norm of
  X
* Fix the Euclidean norm computation after the second Gram-Schmidt
  iteration
* Consider round-off errors when checking for zero vectors
* Update identifiers

Note that the caller CUNBDB5 always passed unit-norm vectors X.
2022-07-10 19:34:20 +00:00
Christoph Conrads 94419e8bfa DORBDB6: improve numerical stability, documentation
* Require unit-norm vector X for otherwise the following computations
  might underflow
* Avoid over- and underflows in the computation of the Euclidean norm of
  X
* Fix the Euclidean norm computation after the second Gram-Schmidt
  iteration
* Consider round-off errors when checking for zero vectors
* Update identifiers

Note that the caller DORBDB5 always passed unit-norm vectors X.
2022-07-10 19:34:20 +00:00
Christoph Conrads a015b21445 SORBDB6: replace integer literal with constant
This change makes it easier to port the recent changes to SORBDB6 to
(complex) double precision.
2022-07-10 19:34:20 +00:00
Christoph Conrads deed8f372d SORBDB6: improve numerical stability
* Require unit-norm vector X for otherwise the following computations
  might underflow
* Avoid over- and underflows in the computation of the Euclidean norm of
  X
* Fix the Euclidean norm computation after the second Gram-Schmidt
  iteration
* Consider round-off errors when checking for zero vectors
* Update identifiers
2022-07-10 19:34:20 +00:00
Christoph Conrads 774e5a9f7b SORBDB6: document algorithm, when output is zero 2022-07-10 19:34:20 +00:00
Christoph Conrads 643e7e3581 SORBDB6: fix indexing, set vectors to zero
This patch was authored by Brian D. Sutton and posted to the discussion
of LAPACK pull request #406.

* fix indexing for vector increments different from one
* always set vectors that are numerically zero to zero

Previously SORBDB6 would only set vectors to zero if a second iteration
of Gram-Schmidt was necessary. This would cause problems on the caller
site if the test for a zero vector differed from the SORBDB6 test for
zero.
2022-07-10 19:34:20 +00:00
Christoph Conrads bdcd890a18 SORCSD: fix documentation on matrix dimensions 2022-07-10 19:34:20 +00:00
Christoph Conrads d245b4f6ef SORCSD2BY1: remove dead code
The zeros are overwritten by the following SORGQR call.
2022-07-10 19:34:20 +00: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
langou 4f97df9669 Merge pull request #677 from friedc/master
Solve build issues with ibm xlf
2022-07-05 08:38:36 -06:00
friedc f039b8c40a Merge branch 'master' into master 2022-07-05 16:23:35 +02:00
langou 08de16639d Merge pull request #687 from ACSimon33/fix_nagfor_warnings 2022-07-01 14:10:51 +02:00
Simon Maertens 7f2f7a339e Fixed nagfor warning: 'Low-precision data-value assigned to high-precision data-object' 2022-07-01 11:44:33 +01:00
langou fbeea59ddd Merge pull request #684 from angsch/gelss-work
GELSS: Cast work sizes to INT
2022-06-30 22:07:31 +02:00
langou 2789c76170 Merge pull request #686 from ACSimon33/cmake_nagfor_support
Adding NAG Fortran compiler (nagfor) support in the CMake build system.
2022-06-30 22:01:40 +02:00
Simon Maertens 7eacb5f6de Fixed line length > 72 in test files. 2022-06-29 09:43:18 +01:00
Simon Maertens 4dba796894 Added nagfor specific flags. 2022-06-29 09:41:57 +01:00
Angelika Schwarz 5355068120 GELSS: Cast work sizes to INT 2022-06-25 16:01:36 +01:00
langou 7d90a679e4 Merge pull request #681 from angsch/laqr5
Improve FMA usage in laqr5
2022-06-25 14:08:33 +02:00
Angelika Schwarz bd8f99b154 Improve FMA usage in laqr5
Rearrange the application of the Householder reflector
to save one instruction per dot product if FMA is
available.

The update from the right, H * (I - tau * v * v**T),
for example, changes from
    H - (tau * (H * v)) * v**T
to
    H - (H * (v * tau)) * v**T.
The instruction savings are due to the special structure
of v, whose first component is implicitly one (and used
for storing tau).
2022-06-20 17:08:12 +01:00
Christian Friedl 9551a31c68 Add proper ILP Flags for xlf. 2022-05-30 10:34:57 +02:00
friedc e5dc8d07c8 Replace empty strings with a single blank. 2022-05-30 09:37:24 +02:00
Christian Friedl 7939cb1b4d Replace empty strings with a single blank. This fixes errors when compiling with ibm xlf. 2022-05-29 22:15:29 +02:00
Christian Friedl 8d3ae005a3 Do not check the FortranCInterface if LAPACKE is not built. 2022-05-29 22:05:40 +02:00
langou f40d2208b9 Merge pull request #675 from angsch/tests
Improve testing
2022-05-25 17:57:21 -06:00
Angelika Schwarz d2a547a392 Fix precision mismatches in tests
* For REAL tests, replace 1.D0 with 1.0
* For CMPLX tests, replace CMPLX(1.D0, 1.D0) with CMPLX(1.0, 1.0)
* [sz]het01_aa.f: replace dimension cast DBLE(N) with REAL(N)
* [cz]syt01_aa.f: replace dimension cast DBLE(N) with REAL(N)
  and init CONE and CZERO as complex numbers
2022-05-25 19:36:47 +01:00
Angelika Schwarz b9b3c787fb Add missing error exit checks for nep
* add tests of TREVC3
* add workspace test for [DS]HSEQR that was already implemented for [CZ]HSEQR
2022-05-25 19:36:47 +01:00
Angelika Schwarz 50b17a234d Test error exists of [CZ]GEBD2
[SD]GEBD2 are already tested. Closes #47
2022-05-25 19:36:41 +01:00
langou 0eb77066be Merge pull request #674 from angsch/scal
Update scaling routines to return immediately when scaling with one
2022-05-21 10:25:48 -06:00
Angelika Schwarz d0ad95ced2 Scaling routines do a quick return if scaling with one
* SCAL: Quick return if scaling factor is one
 * LASCL: If cto == cfrom and neither input is NaN or Inf, skip scaling
2022-05-21 16:18:47 +01:00
Weslley S. Pereira a19611303b Merge pull request #671 from dbakshee/master
Do not gitignore TESTING/CMakeLists.txt
2022-05-19 08:53:12 -06:00
Dmitry Baksheev 7a5ecf552a Do not gitignore TESTING/CMakeLists.txt 2022-05-19 12:32:43 +07:00
langou 655e588cfa Merge pull request #665 from angsch/fixes
Two small fixes
2022-05-02 10:03:22 -06:00
Angelika Schwarz 9523efe40b Fix docs stprfb
Use transpose rather than conjugate transpose to
be consistent with other real routines
2022-05-02 15:54:19 +01:00
Angelika Schwarz ea86668bfc Fix leading dimension check of eigen-/Schur vectors in LAPACKE
Closes #327
2022-05-01 11:51:12 +01:00
Weslley S. Pereira 3b177e95d4 Merge pull request #663 from mtowara/master
Fix CBLAS/src/CMakeLists.txt
2022-04-27 12:45:46 -06:00
Markus Towara da11f0945b Fix CBLAS/src/CMakeLists.txt
remove spurious ../ from target_include_directories path
2022-04-27 18:05:39 +02:00
langou def1271eda Merge pull request #623 from weslleyspereira/try-test-fotrancompiler_abs_div_operations
Test the Fortran intrinsic ABS and complex divisions and report fails during build
2022-04-25 21:25:00 -06:00
langou 82565038dd Merge pull request #601 from PhillHS/master
Fix for overwritten LD_LIBRARY_PATH and LIBRARY_PATH
2022-04-25 21:24:23 -06:00
Weslley S. Pereira 25274dfebb Merge pull request #622 from matcross/master
Regression test for illegal modification of Y in xGEMV.
2022-04-15 14:48:03 -06:00
Weslley S. Pereira 32b062a333 Merge pull request #659 from weslleyspereira/prepare-lapack-3.10.1
Prepare software to release 3.10.1
2022-04-12 14:19:52 -06:00
Weslley da Silva Pereira e7ad0370d4 Preparing software to release 3.10.1 2022-04-12 14:11:40 -06:00
Weslley S. Pereira 5559978672 Merge pull request #617 from ajaypanyala/master
use integer64 flag for Cray Fortran compiler
2022-04-12 09:11:08 -06:00
Weslley S. Pereira 2821eadc72 Merge pull request #640 from mathstuf/cmake-osx-deployment-target
cmake: forward the macOS deployment target to the TIME function test
2022-04-12 09:09:39 -06:00
Weslley S. Pereira fc556054ff Merge pull request #653 from weslleyspereira/master
Adds __attribute__((const)) to LAPACKE_lsame
2022-04-12 09:00:34 -06:00
langou 9ec7de983e Merge pull request #657 from angsch/ls
Fix workspace size returned by getsls
2022-04-12 09:52:42 -05:00
Weslley S. Pereira 10634c138e Merge pull request #658 from angsch/fix
Fix tests
2022-04-11 17:43:00 -06:00
Angelika Schwarz c137eb15fa Fix leading dimension check
* TPMLQT, GEMLQT: Revert check of ldv and correct docs
* Add input parameter checks for LASWLQ
* LAMSWLQ: Fix mixed up column count of rhs (n) and original matrix (m)
2022-04-03 13:16:40 +01:00
Angelika Schwarz 11d3fa9436 Fix mixed up column count of rhs (n) and original matrix (k)
* add input parameter tests
* revert check of n when it denotes the column of the matrix to be updated
  and correct the docs
* relax constraint on mb and update docs - special cases outside of the docs
  are handled by a call to GEQRT
2022-04-03 13:12:06 +01:00
Angelika Schwarz a3262e52b0 Fix returned workspace size
* [dz]getsls: cast workspace size with dble, not real
* Move workspace write to precede xerbla. Follow the documentation
  and return the optimal workspace in work(1) even on quick return
* Remove unused variables
2022-03-30 21:36:45 +01:00
langou 2f132eee6e Merge pull request #656 from angsch/laswlq
Improve input argument check swlq
2022-03-17 15:07:16 -06:00
Angelika Schwarz d1349aacd9 Improve input argument check swlq 2022-03-17 18:57:34 +00:00
Weslley da Silva Pereira 5a392d9cc5 Improve slaed4 following the same strategy fromdlaed4 2022-03-15 16:09:26 -06:00
Weslley da Silva Pereira db0abe5e59 Improve dlaed4 thanks to Li, Ren-Cang 2022-03-15 16:05:13 -06:00
Weslley S. Pereira e499638a16 Merge branch 'Reference-LAPACK:master' into master 2022-03-15 15:16:52 -06:00
langou a7c0392a19 Merge pull request #654 from angsch/tsqr
Improve input arg check lamtsqr
2022-03-09 16:57:27 -07:00
Angelika Schwarz 201353b433 Improve input arg check lamtsqr 2022-03-09 19:32:41 +00:00
Weslley da Silva Pereira eac5d3e43d Adds __attribute__((const)) to LAPACKE_lsame. This change allows for optimizations on GCC. This solution was proposed by @martin-frbg 2022-03-02 11:43:39 -07:00
langou 2a39774316 Merge pull request #637 from christoph-conrads/632-lapack_h-only-installed-in-LAPACKE-builds
CMake selective build improvements
2022-02-15 08:38:20 -07:00
Weslley S. Pereira 32019884f2 Merge pull request #649 from weslleyspereira/fix-bug-nrm2
Fixes a bug in the Blue's scaling constants of nrm2
2022-02-15 08:03:04 -07:00
Weslley da Silva Pereira 0400fb5ddb Fixes a bug in the Blue's scaling constants of nrm2 thanks to Arm Performance Libraries!
This is the same bug fixed on #559 for la_constants.f90.
2022-02-14 19:23:50 -07:00
Christoph Conrads ca0b206d88 CMake: always install lapack.h header
fixes #632
2022-01-30 19:25:43 +00:00
Christoph Conrads 09af64a8ef CMake: fix selective arithmetic linking
Fix linking when only a subset of the available arithmetic (e.g., only
complex double-precision arithmetic) is built.
2022-01-30 19:25:43 +00:00
Christoph Conrads bd1fba15d0 CMake: have LAPACKE check available LAPACK arithmetic
If the user requests LAPACKE to be built for a certain arithmetic (e.g.,
real double-precision), check if the LAPACK library contains code for
the requested arithmetic.
2022-01-30 19:25:43 +00:00
Weslley S. Pereira 1dd9548c4d Adding tests with intrinsic MIN, MAX and complex multiplication 2022-01-03 16:09:55 -07:00
Martin Kroeker 1acee2241a Update .appveyor.yml 2021-12-28 19:43:01 +01:00
Martin Kroeker 83f13fb2c7 Update .appveyor.yml 2021-12-28 19:28:30 +01:00
Martin Kroeker 9c6729e351 Update .appveyor.yml 2021-12-15 21:35:57 +01:00
Martin Kroeker 5a585d7f6a Update .appveyor.yml 2021-12-15 20:27:21 +01:00
Martin Kroeker 64487cc5de Update .appveyor.yml 2021-12-15 17:34:50 +01:00
Martin Kroeker f78c6acd35 Update .appveyor.yml 2021-12-15 16:24:24 +01:00
Martin Kroeker ed834d4613 Update .appveyor.yml 2021-12-15 13:43:59 +01:00
Ajay Panyala f3e8010382 Merge branch 'master' of github.com:Reference-LAPACK/lapack 2021-12-14 18:42:03 -08:00
Martin Kroeker 75082fa032 Update .appveyor.yml 2021-12-14 22:18:45 +01:00
Martin Kroeker 56b6ebf71a Update .appveyor.yml 2021-12-14 21:54:46 +01:00
Martin Kroeker eb5c151e10 Update .appveyor.yml 2021-12-14 21:27:11 +01:00
Martin Kroeker bb66bc2280 Update .appveyor.yml 2021-12-14 19:34:37 +01:00
Martin Kroeker bcdff44254 try to work around failed install of charset-normalizer 2021-12-14 19:32:49 +01:00
Weslley S. Pereira c362fff1ee Minor changes 2021-12-13 13:23:06 -07:00
Weslley S. Pereira cdc8f33194 Fix documentation thanks to @vladimir-ch 2021-12-13 09:06:20 -07:00
Ben Boeckel dd0b532f60 cmake: forward the macOS deployment target to the TIME function test
When using newer Xcode releases, older `gfortran` may be given a
deployment target that is not understood if the host is on a new enough
version. Forward the deployment target from the main project to the
testing project to check with similar settings as the main project.
2021-12-10 21:45:12 -05:00
Weslley S. Pereira 95b6e84b03 Updates Givens rotations with preciser algorithms 2021-12-10 15:43:43 -07:00
Weslley S. Pereira 2904d8763e Algorithm precise and with no bias in the error 2021-11-22 18:11:04 -07:00
Weslley S. Pereira a49a659938 Merge branch 'fix-precision-in-clartgf90-2' of github.com:weslleyspereira/lapack into fix-precision-in-clartgf90-2 2021-11-03 10:37:01 -06:00
weslley.spereira 37a1a1e689 Fix all other Givens rotation routines 2021-11-02 18:49:08 -06:00
Weslley S. Pereira 43208822cb Starting to modify zlartg 2021-10-28 10:27:14 -06:00
Weslley S. Pereira ac11f62708 Several changes to reduce the computation error 2021-10-26 17:50:27 -06:00
Weslley S. Pereira b89b15b2f4 Removes one line from clartg 2021-10-18 09:49:56 -06:00
Weslley S. Pereira 2495f1ced2 Solves a precision bug in clartg 2021-10-15 14:11:16 -06:00
Martin Kroeker 217d935085 Update conda before enabling conda-forge 2021-10-10 17:36:57 +02:00
Weslley S. Pereira f461d4f03b Fixes bugs. Updates documentation. Tests for ABS and complex division run on the Makefile build 2021-09-22 14:55:27 -06:00
Weslley S. Pereira 19fafd4fd2 Test the Fortran intrinsic ABS and complex divisions and report during compile time. Currently only working with the CMake build! 2021-09-22 14:20:50 -06:00
Mat Cross 6c876d4a5c Regression test for illegal modification of Y in CGEMV, SGEMV and ZGEMV observed with Apple vecLib on SGEMV and DGEMV. 2021-09-19 13:58:52 +01:00
Mat Cross 6d10d14731 Regression test for illegal modification of Y in DGEMV observed with Apple vecLib. 2021-09-19 12:24:23 +01:00
Ajay Panyala 9c2380cd3d integer type flag for nvfortran 2021-09-08 17:30:18 -07:00
Ajay Panyala a5e7d99568 Check PE_ENV 2021-08-31 18:59:26 -07:00
Ajay Panyala 7c74fc085c use -sinteger64 flag for 64-bit integers 2021-08-31 17:49:34 -07:00
Ajay Panyala fe7b4281e2 use default64 flag for Cray ftn compiler 2021-08-31 17:16:46 -07:00
Phill Harvey-Smith 6771c15041 Fix for overwritten LD_LIBRARY_PATH and LIBRARY_PATH 2021-07-21 11:22:12 +01:00
weslley.spereira 1c33cdac1c Fix double routine LAPACKE_dtpmqrt_work 2021-04-22 10:18:18 -03:00
5656 changed files with 124873 additions and 47827 deletions
+4 -7
View File
@@ -11,18 +11,15 @@ skip_commits:
# Add [av skip] to commit messages
message: /\[av skip\]/
cache:
- '%APPVEYOR_BUILD_FOLDER%\build'
environment:
global:
CONDA_INSTALL_LOCN: C:\\Miniconda36-x64
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 config --add channels conda-forge --force
- conda install --yes --quiet flang jom
# - conda config --set auto_update_conda false
- 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.
+113 -28
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,35 +62,38 @@ jobs:
strategy:
fail-fast: true
matrix:
os: [ macos-latest, ubuntu-latest ]
os: [ macos-latest, ubuntu-latest, windows-latest ]
fflags: [
"-fimplicit-none -frecursive -fcheck=all",
"-fimplicit-none -frecursive -fcheck=all -fopenmp" ]
"-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" ]
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: Use GCC-11 on MacOS
if: ${{ matrix.os == 'macos-latest' }}
run: >
cmake -B build
cmake -B build -G Ninja
-D CMAKE_C_COMPILER="gcc-11"
-D CMAKE_Fortran_COMPILER="gfortran-11"
-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
+36 -6
View File
@@ -31,9 +31,19 @@ on:
- '!**CMakeLists.txt'
- '!**md'
permissions:
contents: read
env:
CFLAGS: "-Wall -pedantic"
FFLAGS: "-fimplicit-none -frecursive -fopenmp -fcheck=all"
CC: "gcc"
FC: "gfortran"
CFLAGS: "-O3 -flto -Wall -pedantic-errors"
FFLAGS: "-O2 -flto -Wall -Werror=conversion -pedantic -fimplicit-none -frecursive -fopenmp -fcheck=all"
FFLAGS_NOOPT: "-O0 -flto -Wall -fimplicit-none -frecursive -fopenmp -fcheck=all"
LDFLAGS: ""
AR: "ar"
ARFLAGS: "cr"
RANLIB: "ranlib"
defaults:
run:
@@ -45,10 +55,20 @@ 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
echo "FFLAGS_DRV = ${{env.FFLAGS}}" >> make.inc
echo "TIMER = INT_ETIME" >> make.inc
echo "BLASLIB = ${{github.workspace}}/librefblas.a" >> make.inc
echo "CBLASLIB = ${{github.workspace}}/libcblas.a" >> make.inc
echo "LAPACKLIB = ${{github.workspace}}/liblapack.a" >> make.inc
echo "TMGLIB = ${{github.workspace}}/libtmglib.a" >> make.inc
echo "LAPACKELIB = ${{github.workspace}}/liblapacke.a" >> make.inc
echo "DOCSDIR = ${{github.workspace}}/DOCS" >> make.inc
- name: Install
run: |
cp make.inc.example make.inc
make -s -j2 all
make -j2 lapack_install
@@ -56,13 +76,23 @@ 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
echo "FFLAGS_DRV = ${{env.FFLAGS}}" >> make.inc
echo "TIMER = INT_ETIME" >> make.inc
echo "BLASLIB = ${{github.workspace}}/librefblas.a" >> make.inc
echo "CBLASLIB = ${{github.workspace}}/libcblas.a" >> make.inc
echo "LAPACKLIB = ${{github.workspace}}/liblapack.a" >> make.inc
echo "TMGLIB = ${{github.workspace}}/libtmglib.a" >> make.inc
echo "LAPACKELIB = ${{github.workspace}}/liblapacke.a" >> make.inc
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
- name: Install
run: |
cp make.inc.example make.inc
make -s -j2 all
make -j2 lapack_install
+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@c85c95e3d7251135ab7dc9ce3241c5835cc595a9 # v3.5.3
with:
persist-credentials: false
- name: "Run analysis"
uses: ossf/scorecard-action@08b4669551908b1024bb425080c797723083c031 # v2.2.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@0b7f8abb1508181956e8e162db84b466c27e18ce # v3.1.2
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@f9a7c6738f28efb36e31d49c53a201a9c5d6a476 # v2.14.2
with:
sarif_file: results.sarif
+5
View File
@@ -25,8 +25,10 @@ CBLAS/examples/cblas_ex2
# LAPACK testing
TESTING/LIN/xlintst*
TESTING/EIG/xeigtst*
TESTING/EIG/xdmd*
TESTING/*.out
TESTING/*.txt
!TESTING/CMakeLists.txt
TESTING/x*
# LAPACKE example
@@ -41,3 +43,6 @@ build*
DOCS/man
DOCS/explore-html
output_err
# Editor config files
.vscode/
+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)
+58 -4
View File
@@ -38,12 +38,22 @@ set(CBLAS1 scabs1.f scasum.f scnrm2.f90 icamax.f caxpy.f ccopy.f
set(DBLAS1 idamax.f dasum.f daxpy.f dcopy.f ddot.f dnrm2.f90
drot.f drotg.f90 dscal.f dsdot.f dswap.f drotmg.f drotm.f)
set(DB1AUX sscal.f isamax.f)
set(ZBLAS1 dcabs1.f dzasum.f dznrm2.f90 izamax.f zaxpy.f zcopy.f
zdotc.f zdotu.f zdscal.f zrotg.f90 zscal.f zswap.f zdrot.f)
set(CB1AUX isamax.f sasum.f saxpy.f scopy.f snrm2.f90 sscal.f)
set(CB1AUX
isamax.f idamax.f
sasum.f saxpy.f scopy.f sdot.f sgemm.f sgemv.f snrm2.f90 srot.f sscal.f
sswap.f)
set(ZB1AUX idamax.f dasum.f daxpy.f dcopy.f dnrm2.f90 dscal.f)
set(ZB1AUX
icamax.f 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
scabs1.f)
#---------------------------------------------------------------------
# Auxiliary routines needed by both the Level 2 and Level 3 BLAS
@@ -88,7 +98,8 @@ if(BUILD_SINGLE)
list(APPEND SOURCES ${SBLAS1} ${ALLBLAS} ${SBLAS2} ${SBLAS3})
endif()
if(BUILD_DOUBLE)
list(APPEND SOURCES ${DBLAS1} ${ALLBLAS} ${DBLAS2} ${DBLAS3})
list(APPEND SOURCES
${DBLAS1} ${DB1AUX} ${ALLBLAS} ${DBLAS2} ${DBLAS3} ${SBLAS3})
endif()
if(BUILD_COMPLEX)
list(APPEND SOURCES ${CBLAS1} ${CB1AUX} ${ALLBLAS} ${CBLAS2} ${CBLAS3})
@@ -98,10 +109,53 @@ 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})
if( TEST_FORTRAN_COMPILER )
add_dependencies( ${BLASLIB} run_test_zcomplexabs run_test_zcomplexdiv run_test_zcomplexmult run_test_zminMax )
endif()
+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, --
+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:
* =====================
+3 -3
View File
@@ -149,7 +149,7 @@
*> \author Univ. of Colorado Denver
*> \author NAG Ltd.
*
*> \ingroup complex_blas_level3
*> \ingroup herk
*
*> \par Further Details:
* =====================
@@ -352,7 +352,7 @@
200 CONTINUE
RTEMP = ZERO
DO 210 L = 1,K
RTEMP = RTEMP + CONJG(A(L,J))*A(L,J)
RTEMP = RTEMP + REAL(CONJG(A(L,J))*A(L,J))
210 CONTINUE
IF (BETA.EQ.ZERO) THEN
C(J,J) = ALPHA*RTEMP
@@ -364,7 +364,7 @@
DO 260 J = 1,N
RTEMP = ZERO
DO 230 L = 1,K
RTEMP = RTEMP + CONJG(A(L,J))*A(L,J)
RTEMP = RTEMP + REAL(CONJG(A(L,J))*A(L,J))
230 CONTINUE
IF (BETA.EQ.ZERO) THEN
C(J,J) = ALPHA*RTEMP
+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:
* =====================
+107 -60
View File
@@ -1,31 +1,28 @@
!> \brief \b CROTG
!> \brief \b CROTG generates a Givens rotation with real cosine and complex sine.
!
! =========== DOCUMENTATION ===========
!
! 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
!> = 1 if x = 0
!> c = |a| / sqrt(|a|**2 + |b|**2)
!> s = sgn(a) * conjg(b) / sqrt(|a|**2 + |b|**2)
!> When a and b are real and r /= 0, the formulas simplify to
!> r = sgn(a)*sqrt(|a|**2 + |b|**2)
!> When a and b are real and r /= 0, the formulas simplify to
!> c = a / r
!> s = b / r
!> the same as in SROTG when |a| > |b|. When |b| >= |a|, the
@@ -33,6 +30,8 @@
!> if the signs of a and b are not the same.
!>
!> \endverbatim
!>
!> @see lartg, @see lartgp
!
! Arguments:
! ==========
@@ -65,20 +64,19 @@
! Authors:
! ========
!
!> \author Edward Anderson, Lockheed Martin
!> \author Weslley Pereira, University of Colorado Denver, USA
!
!> \par Contributors:
! ==================
!>
!> Weslley Pereira, University of Colorado Denver, USA
!> \date December 2021
!
!> \ingroup single_blas_level1
!> \ingroup rotg
!
!> \par Further Details:
! =====================
!>
!> \verbatim
!>
!> Based on the algorithm from
!>
!> Anderson E. (2017)
!> Algorithm 978: Safe Scaling in the Level 1 BLAS
!> ACM Trans Math Softw 44:1--28
@@ -108,21 +106,14 @@ subroutine CROTG( a, b, c, s )
1-minexponent(0._wp), &
maxexponent(0._wp)-1 &
)
real(wp), parameter :: rtmin = sqrt( real(radix(0._wp),wp)**max( &
minexponent(0._wp)-1, &
1-maxexponent(0._wp) &
) / epsilon(0._wp) )
real(wp), parameter :: rtmax = sqrt( real(radix(0._wp),wp)**max( &
1-minexponent(0._wp), &
maxexponent(0._wp)-1 &
) * epsilon(0._wp) )
real(wp), parameter :: rtmin = sqrt( safmin )
! ..
! .. Scalar Arguments ..
real(wp) :: c
complex(wp) :: a, b, s
! ..
! .. Local Scalars ..
real(wp) :: d, f1, f2, g1, g2, h2, p, u, uu, v, vv, w
real(wp) :: d, f1, f2, g1, g2, h2, u, v, w, rtmax
complex(wp) :: f, fs, g, gs, r, t
! ..
! .. Intrinsic Functions ..
@@ -144,30 +135,43 @@ subroutine CROTG( a, b, c, s )
r = f
else if( f == czero ) then
c = zero
g1 = max( abs(real(g)), abs(aimag(g)) )
if( g1 > rtmin .and. g1 < rtmax ) then
if( real(g) == zero ) then
r = abs(aimag(g))
s = conjg( g ) / r
elseif( aimag(g) == zero ) then
r = abs(real(g))
s = conjg( g ) / r
else
g1 = max( abs(real(g)), abs(aimag(g)) )
rtmax = sqrt( safmax/2 )
if( g1 > rtmin .and. g1 < rtmax ) then
!
! Use unscaled algorithm
!
g2 = ABSSQ( g )
d = sqrt( g2 )
s = conjg( g ) / d
r = d
else
! The following two lines can be replaced by `d = abs( g )`.
! This algorithm do not use the intrinsic complex abs.
g2 = ABSSQ( g )
d = sqrt( g2 )
s = conjg( g ) / d
r = d
else
!
! Use scaled algorithm
!
u = min( safmax, max( safmin, g1 ) )
uu = one / u
gs = g*uu
g2 = ABSSQ( gs )
d = sqrt( g2 )
s = conjg( gs ) / d
r = d*u
u = min( safmax, max( safmin, g1 ) )
gs = g / u
! The following two lines can be replaced by `d = abs( gs )`.
! This algorithm do not use the intrinsic complex abs.
g2 = ABSSQ( gs )
d = sqrt( g2 )
s = conjg( gs ) / d
r = d*u
end if
end if
else
f1 = max( abs(real(f)), abs(aimag(f)) )
g1 = max( abs(real(g)), abs(aimag(g)) )
rtmax = sqrt( safmax/4 )
if( f1 > rtmin .and. f1 < rtmax .and. &
g1 > rtmin .and. g1 < rtmax ) then
!
@@ -176,32 +180,51 @@ subroutine CROTG( a, b, c, s )
f2 = ABSSQ( f )
g2 = ABSSQ( g )
h2 = f2 + g2
if( f2 > rtmin .and. h2 < rtmax ) then
d = sqrt( f2*h2 )
! safmin <= f2 <= h2 <= safmax
if( f2 >= h2 * safmin ) then
! safmin <= f2/h2 <= 1, and h2/f2 is finite
c = sqrt( f2 / h2 )
r = f / c
rtmax = rtmax * 2
if( f2 > rtmin .and. h2 < rtmax ) then
! safmin <= sqrt( f2*h2 ) <= safmax
s = conjg( g ) * ( f / sqrt( f2*h2 ) )
else
s = conjg( g ) * ( r / h2 )
end if
else
d = sqrt( f2 )*sqrt( h2 )
! f2/h2 <= safmin may be subnormal, and h2/f2 may overflow.
! Moreover,
! safmin <= f2*f2 * safmax < f2 * h2 < h2*h2 * safmin <= safmax,
! sqrt(safmin) <= sqrt(f2 * h2) <= sqrt(safmax).
! Also,
! g2 >> f2, which means that h2 = g2.
d = sqrt( f2 * h2 )
c = f2 / d
if( c >= safmin ) then
r = f / c
else
! f2 / sqrt(f2 * h2) < safmin, then
! sqrt(safmin) <= f2 * sqrt(safmax) <= h2 / sqrt(f2 * h2) <= h2 * (safmin / f2) <= h2 <= safmax
r = f * ( h2 / d )
end if
s = conjg( g ) * ( f / d )
end if
p = 1 / d
c = f2*p
s = conjg( g )*( f*p )
r = f*( h2*p )
else
!
! Use scaled algorithm
!
u = min( safmax, max( safmin, f1, g1 ) )
uu = one / u
gs = g*uu
gs = g / u
g2 = ABSSQ( gs )
if( f1*uu < rtmin ) then
if( f1 / u < rtmin ) then
!
! f is not well-scaled when scaled by g1.
! Use a different scaling for f.
!
v = min( safmax, max( safmin, f1 ) )
vv = one / v
w = v * uu
fs = f*vv
w = v / u
fs = f / v
f2 = ABSSQ( fs )
h2 = f2*w**2 + g2
else
@@ -209,19 +232,43 @@ subroutine CROTG( a, b, c, s )
! Otherwise use the same scaling for f and g.
!
w = one
fs = f*uu
fs = f / u
f2 = ABSSQ( fs )
h2 = f2 + g2
end if
if( f2 > rtmin .and. h2 < rtmax ) then
d = sqrt( f2*h2 )
! safmin <= f2 <= h2 <= safmax
if( f2 >= h2 * safmin ) then
! safmin <= f2/h2 <= 1, and h2/f2 is finite
c = sqrt( f2 / h2 )
r = fs / c
rtmax = rtmax * 2
if( f2 > rtmin .and. h2 < rtmax ) then
! safmin <= sqrt( f2*h2 ) <= safmax
s = conjg( gs ) * ( fs / sqrt( f2*h2 ) )
else
s = conjg( gs ) * ( r / h2 )
end if
else
d = sqrt( f2 )*sqrt( h2 )
! f2/h2 <= safmin may be subnormal, and h2/f2 may overflow.
! Moreover,
! safmin <= f2*f2 * safmax < f2 * h2 < h2*h2 * safmin <= safmax,
! sqrt(safmin) <= sqrt(f2 * h2) <= sqrt(safmax).
! Also,
! g2 >> f2, which means that h2 = g2.
d = sqrt( f2 * h2 )
c = f2 / d
if( c >= safmin ) then
r = fs / c
else
! f2 / sqrt(f2 * h2) < safmin, then
! sqrt(safmin) <= f2 * sqrt(safmax) <= h2 / sqrt(f2 * h2) <= h2 * (safmin / f2) <= h2 <= safmax
r = fs * ( h2 / d )
end if
s = conjg( gs ) * ( fs / d )
end if
p = 1 / d
c = ( f2*p )*w
s = conjg( gs )*( fs*p )
r = ( fs*( h2*p ) )*u
! Rescale c and r
c = c * w
r = r * u
end if
end if
a = r
+6 -2
View File
@@ -61,7 +61,7 @@
*> \author Univ. of Colorado Denver
*> \author NAG Ltd.
*
*> \ingroup complex_blas_level1
*> \ingroup scal
*
*> \par Further Details:
* =====================
@@ -93,7 +93,11 @@
* .. Local Scalars ..
INTEGER I,NINCX
* ..
IF (N.LE.0 .OR. INCX.LE.0) RETURN
* .. Parameters ..
COMPLEX ONE
PARAMETER (ONE= (1.0E+0,0.0E+0))
* ..
IF (N.LE.0 .OR. INCX.LE.0 .OR. CA.EQ.ONE) RETURN
IF (INCX.EQ.1) THEN
*
* code for increment equal to 1
+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 )
+6 -2
View File
@@ -61,7 +61,7 @@
*> \author Univ. of Colorado Denver
*> \author NAG Ltd.
*
*> \ingroup complex_blas_level1
*> \ingroup scal
*
*> \par Further Details:
* =====================
@@ -93,10 +93,14 @@
* .. Local Scalars ..
INTEGER I,NINCX
* ..
* .. Parameters ..
REAL ONE
PARAMETER (ONE=1.0E+0)
* ..
* .. Intrinsic Functions ..
INTRINSIC AIMAG,CMPLX,REAL
* ..
IF (N.LE.0 .OR. INCX.LE.0) RETURN
IF (N.LE.0 .OR. INCX.LE.0 .OR. SA.EQ.ONE) RETURN
IF (INCX.EQ.1) THEN
*
* code for increment equal to 1
+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, --
+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:
* =====================
+4 -4
View File
@@ -60,7 +60,7 @@
!
!> \date August 2016
!
!> \ingroup single_blas_level1
!> \ingroup nrm2
!
!> \par Contributors:
! ==================
@@ -99,15 +99,15 @@ function DNRM2( n, x, incx )
real(wp), parameter :: one = 1.0_wp
real(wp), parameter :: maxN = huge(0.0_wp)
! ..
! .. Blue's ccaling constants ..
! .. Blue's scaling constants ..
real(wp), parameter :: tsml = real(radix(0._wp), wp)**ceiling( &
(minexponent(0._wp) - 1) * 0.5_wp)
real(wp), parameter :: tbig = real(radix(0._wp), wp)**floor( &
(maxexponent(0._wp) - digits(0._wp) + 1) * 0.5_wp)
real(wp), parameter :: ssml = real(radix(0._wp), wp)**( - floor( &
(minexponent(0._wp) - 1) * 0.5_wp))
(minexponent(0._wp) - digits(0._wp)) * 0.5_wp))
real(wp), parameter :: sbig = real(radix(0._wp), wp)**( - ceiling( &
(maxexponent(0._wp) - digits(0._wp) + 1) * 0.5_wp))
(maxexponent(0._wp) + digits(0._wp) - 1) * 0.5_wp))
! ..
! .. Scalar Arguments ..
integer :: incx, n
+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:
! =====================
+1 -1
View File
@@ -89,7 +89,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:
* =====================
+5 -2
View File
@@ -62,7 +62,7 @@
*> \author Univ. of Colorado Denver
*> \author NAG Ltd.
*
*> \ingroup double_blas_level1
*> \ingroup scal
*
*> \par Further Details:
* =====================
@@ -93,11 +93,14 @@
*
* .. Local Scalars ..
INTEGER I,M,MP1,NINCX
* .. Parameters ..
DOUBLE PRECISION ONE
PARAMETER (ONE=1.0D+0)
* ..
* .. Intrinsic Functions ..
INTRINSIC MOD
* ..
IF (N.LE.0 .OR. INCX.LE.0) RETURN
IF (N.LE.0 .OR. INCX.LE.0 .OR. DA.EQ.ONE) RETURN
IF (INCX.EQ.1) THEN
*
* code for increment equal to 1
+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:
* =====================
+4 -4
View File
@@ -61,7 +61,7 @@
!
!> \date August 2016
!
!> \ingroup single_blas_level1
!> \ingroup nrm2
!
!> \par Contributors:
! ==================
@@ -100,15 +100,15 @@ function DZNRM2( n, x, incx )
real(wp), parameter :: one = 1.0_wp
real(wp), parameter :: maxN = huge(0.0_wp)
! ..
! .. Blue's ccaling constants ..
! .. Blue's scaling constants ..
real(wp), parameter :: tsml = real(radix(0._wp), wp)**ceiling( &
(minexponent(0._wp) - 1) * 0.5_wp)
real(wp), parameter :: tbig = real(radix(0._wp), wp)**floor( &
(maxexponent(0._wp) - digits(0._wp) + 1) * 0.5_wp)
real(wp), parameter :: ssml = real(radix(0._wp), wp)**( - floor( &
(minexponent(0._wp) - 1) * 0.5_wp))
(minexponent(0._wp) - digits(0._wp)) * 0.5_wp))
real(wp), parameter :: sbig = real(radix(0._wp), wp)**( - ceiling( &
(maxexponent(0._wp) - digits(0._wp) + 1) * 0.5_wp))
(maxexponent(0._wp) + digits(0._wp) - 1) * 0.5_wp))
! ..
! .. Scalar Arguments ..
integer :: incx, n
+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:
* =====================
+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:
* =====================
+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:
* =====================
+4 -4
View File
@@ -61,7 +61,7 @@
!
!> \date August 2016
!
!> \ingroup single_blas_level1
!> \ingroup nrm2
!
!> \par Contributors:
! ==================
@@ -100,15 +100,15 @@ function SCNRM2( n, x, incx )
real(wp), parameter :: one = 1.0_wp
real(wp), parameter :: maxN = huge(0.0_wp)
! ..
! .. Blue's ccaling constants ..
! .. Blue's scaling constants ..
real(wp), parameter :: tsml = real(radix(0._wp), wp)**ceiling( &
(minexponent(0._wp) - 1) * 0.5_wp)
real(wp), parameter :: tbig = real(radix(0._wp), wp)**floor( &
(maxexponent(0._wp) - digits(0._wp) + 1) * 0.5_wp)
real(wp), parameter :: ssml = real(radix(0._wp), wp)**( - floor( &
(minexponent(0._wp) - 1) * 0.5_wp))
(minexponent(0._wp) - digits(0._wp)) * 0.5_wp))
real(wp), parameter :: sbig = real(radix(0._wp), wp)**( - ceiling( &
(maxexponent(0._wp) - digits(0._wp) + 1) * 0.5_wp))
(maxexponent(0._wp) + digits(0._wp) - 1) * 0.5_wp))
! ..
! .. Scalar Arguments ..
integer :: incx, n
+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:
* =====================
+3 -3
View File
@@ -82,7 +82,7 @@
*> \author Univ. of Colorado Denver
*> \author NAG Ltd.
*
*> \ingroup single_blas_level1
*> \ingroup dot
*
*> \par Further Details:
* =====================
@@ -130,7 +130,7 @@
* ..
DSDOT = SB
IF (N.LE.0) THEN
SDSDOT = DSDOT
SDSDOT = REAL(DSDOT)
RETURN
END IF
IF (INCX.EQ.INCY .AND. INCX.GT.0) THEN
@@ -155,7 +155,7 @@
KY = KY + INCY
END DO
END IF
SDSDOT = DSDOT
SDSDOT = REAL(DSDOT)
RETURN
*
* End of SDSDOT
+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, --
+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 single_blas_level2
*> \ingroup gemv
*
*> \par Further Details:
* =====================
+1 -1
View File
@@ -109,7 +109,7 @@
*> \author Univ. of Colorado Denver
*> \author NAG Ltd.
*
*> \ingroup single_blas_level2
*> \ingroup ger
*
*> \par Further Details:
* =====================
+4 -4
View File
@@ -60,7 +60,7 @@
!
!> \date August 2016
!
!> \ingroup single_blas_level1
!> \ingroup nrm2
!
!> \par Contributors:
! ==================
@@ -99,15 +99,15 @@ function SNRM2( n, x, incx )
real(wp), parameter :: one = 1.0_wp
real(wp), parameter :: maxN = huge(0.0_wp)
! ..
! .. Blue's ccaling constants ..
! .. Blue's scaling constants ..
real(wp), parameter :: tsml = real(radix(0._wp), wp)**ceiling( &
(minexponent(0._wp) - 1) * 0.5_wp)
real(wp), parameter :: tbig = real(radix(0._wp), wp)**floor( &
(maxexponent(0._wp) - digits(0._wp) + 1) * 0.5_wp)
real(wp), parameter :: ssml = real(radix(0._wp), wp)**( - floor( &
(minexponent(0._wp) - 1) * 0.5_wp))
(minexponent(0._wp) - digits(0._wp)) * 0.5_wp))
real(wp), parameter :: sbig = real(radix(0._wp), wp)**( - ceiling( &
(maxexponent(0._wp) - digits(0._wp) + 1) * 0.5_wp))
(maxexponent(0._wp) + digits(0._wp) - 1) * 0.5_wp))
! ..
! .. Scalar Arguments ..
integer :: incx, n
+1 -1
View File
@@ -76,7 +76,7 @@
*> \author Univ. of Colorado Denver
*> \author NAG Ltd.
*
*> \ingroup single_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:
! ===========
!
! SROTG constructs a plane rotation
! [ c s ] [ a ] = [ r ]
! [ -s c ] [ b ] [ 0 ]
! satisfying c**2 + s**2 = 1.
!
!> \par Purpose:
! =============
!>
!> \verbatim
!>
!> SROTG 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:
! =====================

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