1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100
|
---
:name: slasv2
:md5sum: b294da011aae849d462bb6da2189b9d9
:category: :subroutine
:arguments:
- f:
:type: real
:intent: input
- g:
:type: real
:intent: input
- h:
:type: real
:intent: input
- ssmin:
:type: real
:intent: output
- ssmax:
:type: real
:intent: output
- snr:
:type: real
:intent: output
- csr:
:type: real
:intent: output
- snl:
:type: real
:intent: output
- csl:
:type: real
:intent: output
:substitutions: {}
:fortran_help: " SUBROUTINE SLASV2( F, G, H, SSMIN, SSMAX, SNR, CSR, SNL, CSL )\n\n\
* Purpose\n\
* =======\n\
*\n\
* SLASV2 computes the singular value decomposition of a 2-by-2\n\
* triangular matrix\n\
* [ F G ]\n\
* [ 0 H ].\n\
* On return, abs(SSMAX) is the larger singular value, abs(SSMIN) is the\n\
* smaller singular value, and (CSL,SNL) and (CSR,SNR) are the left and\n\
* right singular vectors for abs(SSMAX), giving the decomposition\n\
*\n\
* [ CSL SNL ] [ F G ] [ CSR -SNR ] = [ SSMAX 0 ]\n\
* [-SNL CSL ] [ 0 H ] [ SNR CSR ] [ 0 SSMIN ].\n\
*\n\n\
* Arguments\n\
* =========\n\
*\n\
* F (input) REAL\n\
* The (1,1) element of the 2-by-2 matrix.\n\
*\n\
* G (input) REAL\n\
* The (1,2) element of the 2-by-2 matrix.\n\
*\n\
* H (input) REAL\n\
* The (2,2) element of the 2-by-2 matrix.\n\
*\n\
* SSMIN (output) REAL\n\
* abs(SSMIN) is the smaller singular value.\n\
*\n\
* SSMAX (output) REAL\n\
* abs(SSMAX) is the larger singular value.\n\
*\n\
* SNL (output) REAL\n\
* CSL (output) REAL\n\
* The vector (CSL, SNL) is a unit left singular vector for the\n\
* singular value abs(SSMAX).\n\
*\n\
* SNR (output) REAL\n\
* CSR (output) REAL\n\
* The vector (CSR, SNR) is a unit right singular vector for the\n\
* singular value abs(SSMAX).\n\
*\n\n\
* Further Details\n\
* ===============\n\
*\n\
* Any input parameter may be aliased with any output parameter.\n\
*\n\
* Barring over/underflow and assuming a guard digit in subtraction, all\n\
* output quantities are correct to within a few units in the last\n\
* place (ulps).\n\
*\n\
* In IEEE arithmetic, the code works correctly if one matrix element is\n\
* infinite.\n\
*\n\
* Overflow will not occur unless the largest singular value itself\n\
* overflows or is within a few ulps of overflow. (On machines with\n\
* partial overflow, like the Cray, overflow may occur if the largest\n\
* singular value is within a factor of 2 of overflow.)\n\
*\n\
* Underflow is harmless if underflow is gradual. Otherwise, results\n\
* may correspond to a matrix modified by perturbations of size near\n\
* the underflow threshold.\n\
*\n\
* =====================================================================\n\
*\n"
|