mathlib-lapack-svd.c
1 //! @file mathlib-lapack-svd.c
2 //
3 //! @section copyright
4 //
5 // This file is part of VIF - vintage fortran compiler.
6 // Copyright 2020-2025 J. Marcel van der Veer <algol68g@xs4all.nl>.
7 //
8 //! @section license
9 //
10 // This program is free software; you can redistribute it and/or modify it
11 // under the terms of the gnu general public license as published by the
12 // free software foundation; either version 3 of the license, or
13 // (at your option) any later version.
14 //
15 // This program is distributed in the hope that it will be useful, but
16 // without any warranty; without even the implied warranty of merchantability
17 // or fitness for a particular purpose. See the GNU general public license for
18 // more details. you should have received a copy of the GNU general public
19 // license along with this program. If not, see <http://www.gnu.org/licenses/>.
20 //
21 //! @Synopsis
22 //
23 //! 85 subprograms from LAPACK-SVD
24
25 // Compiled from Fortran source code by VIF.
26 // Selected subprograms are:
27 //
28 // DBDSDC DGELSS DGSVJ1 DLALSA DLARF DLASD2 DLASDQ DLASQ6 DORGBR DORMQR
29 // DBDSQR DGEQP3 DISNAN DLALSD DLARFB DLASD3 DLASDT DLASR DORGL2 DPOCON
30 // DCOMBS DGEQR2 DLABAD DLAMRG DLARFG DLASD4 DLASET DLASRT DORGLQ DRSCL
31 // DGEBD2 DGEQRF DLABRD DLANGE DLARFT DLASD5 DLASQ1 DLASSQ DORGQR IEEECK
32 // DGEBRD DGESDD DLACN2 DLANST DLARTG DLASD6 DLASQ2 DLASV2 DORM2R ILADLC
33 // DGEJSV DGESVD DLACPY DLAPMT DLAS2 DLASD7 DLASQ3 DLASWP DORMBR ILADLR
34 // DGELQ2 DGESVD DLAED6 DLAPY2 DLASCL DLASD8 DLASQ4 DLATRS DORML2 ILAENV
35 // DGELQF DGESVJ DLAISN DLAQP2 DLASD0 DLASDA DLASQ5 DORG2R DORMLQ IPARMQ
36 // DGELSD DGSVJ0 DLALS0 DLAQPS DLASD1
37
38 // Selected SVD functionality from LAPACK.
39 //
40 // The original code is F90 from 2023, but could be made to compile
41 // with VIF trivially.
42 //
43 // Included LAPACK routines of interest to VIF are:
44 //
45 // DGEJSV
46 // DGELSD
47 // DGELSS
48 // DGESDD
49 // DGESVD
50 // DGESVDQ
51 // DGESVJ
52 //
53 // Source: netlib.org/lapack
54 // LAPACK 3.12.0
55
56 // The license for LAPACK Fortran source code is:
57 //
58 // Copyright (c) 1992-2013 The University of Tennessee and The University
59 // of Tennessee Research Foundation. All rights
60 // reserved.
61 // Copyright (c) 2000-2013 The University of California Berkeley. All
62 // rights reserved.
63 // Copyright (c) 2006-2013 The University of Colorado Denver. All rights
64 // reserved.
65 //
66 // $COPYRIGHT$
67 //
68 // Additional copyrights may follow
69 //
70 // $HEADER$
71 //
72 // Redistribution and use in source and binary forms, with or without
73 // modification, are permitted provided that the following conditions are
74 // met:
75 //
76 // - Redistributions of source code must retain the above copyright
77 // notice, this list of conditions and the following disclaimer.
78 //
79 // - Redistributions in binary form must reproduce the above copyright
80 // notice, this list of conditions and the following disclaimer listed
81 // in this license in the documentation and/or other materials
82 // provided with the distribution.
83 //
84 // - Neither the name of the copyright holders nor the names of its
85 // contributors may be used to endorse or promote products derived from
86 // this software without specific prior written permission.
87 //
88 // The copyright holders provide no reassurances that the source code
89 // provided does not infringe any patent, copyright, or any other
90 // intellectual property rights of third parties. The copyright holders
91 // disclaim any liability to any recipient for claims brought against
92 // recipient by any third party for infringement of that parties
93 // intellectual property rights.
94 //
95 // THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
96 // "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
97 // LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
98 // A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
99 // OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
100 // SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
101 // LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
102 // DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
103 // THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
104 // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
105 // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
106 // `
107
108 /*
109 Generated by VIF - experimental VIntage Fortran compiler.
110 VIF release 1.1.7
111 */
264 static CALLS __calls[__ncalls] = {
265 {"dbdsdc", 0}, // subroutine
266 {"dbdsqr", 0}, // subroutine
267 {"dcombssq", 0}, // subroutine
268 {"dgebd2", 0}, // subroutine
269 {"dgebrd", 0}, // subroutine
270 {"dgejsv", 0}, // subroutine
271 {"dgelq2", 0}, // subroutine
272 {"dgelqf", 0}, // subroutine
273 {"dgelsd", 0}, // subroutine
274 {"dgelss", 0}, // subroutine
275 {"dgeqp3", 0}, // subroutine
276 {"dgeqr2", 0}, // subroutine
277 {"dgeqrf", 0}, // subroutine
278 {"dgesdd", 0}, // subroutine
279 {"dgesvd", 0}, // subroutine
280 {"dgesvdq", 0}, // subroutine
281 {"dgesvj", 0}, // subroutine
282 {"dgsvj0", 0}, // subroutine
283 {"dgsvj1", 0}, // subroutine
284 {"disnan", 0}, // logical*4 function
285 {"dlabad", 0}, // subroutine
286 {"dlabrd", 0}, // subroutine
287 {"dlacn2", 0}, // subroutine
288 {"dlacpy", 0}, // subroutine
289 {"dlaed6", 0}, // subroutine
290 {"dlaisnan", 0}, // logical*4 function
291 {"dlals0", 0}, // subroutine
292 {"dlalsa", 0}, // subroutine
293 {"dlalsd", 0}, // subroutine
294 {"dlamrg", 0}, // subroutine
295 {"dlange", 0}, // real*8 function
296 {"dlanst", 0}, // real*8 function
297 {"dlapmt", 0}, // subroutine
298 {"dlapy2", 0}, // real*8 function
299 {"dlaqp2", 0}, // subroutine
300 {"dlaqps", 0}, // subroutine
301 {"dlarfb", 0}, // subroutine
302 {"dlarf", 0}, // subroutine
303 {"dlarfg", 0}, // subroutine
304 {"dlarft", 0}, // subroutine
305 {"dlartg", 0}, // subroutine
306 {"dlas2", 0}, // subroutine
307 {"dlascl", 0}, // subroutine
308 {"dlasd0", 0}, // subroutine
309 {"dlasd1", 0}, // subroutine
310 {"dlasd2", 0}, // subroutine
311 {"dlasd3", 0}, // subroutine
312 {"dlasd4", 0}, // subroutine
313 {"dlasd5", 0}, // subroutine
314 {"dlasd6", 0}, // subroutine
315 {"dlasd7", 0}, // subroutine
316 {"dlasd8", 0}, // subroutine
317 {"dlasda", 0}, // subroutine
318 {"dlasdq", 0}, // subroutine
319 {"dlasdt", 0}, // subroutine
320 {"dlaset", 0}, // subroutine
321 {"dlasq1", 0}, // subroutine
322 {"dlasq2", 0}, // subroutine
323 {"dlasq3", 0}, // subroutine
324 {"dlasq4", 0}, // subroutine
325 {"dlasq5", 0}, // subroutine
326 {"dlasq6", 0}, // subroutine
327 {"dlasr", 0}, // subroutine
328 {"dlasrt", 0}, // subroutine
329 {"dlassq", 0}, // subroutine
330 {"dlasv2", 0}, // subroutine
331 {"dlaswp", 0}, // subroutine
332 {"dlatrs", 0}, // subroutine
333 {"dorg2r", 0}, // subroutine
334 {"dorgbr", 0}, // subroutine
335 {"dorgl2", 0}, // subroutine
336 {"dorglq", 0}, // subroutine
337 {"dorgqr", 0}, // subroutine
338 {"dorm2r", 0}, // subroutine
339 {"dormbr", 0}, // subroutine
340 {"dorml2", 0}, // subroutine
341 {"dormlq", 0}, // subroutine
342 {"dormqr", 0}, // subroutine
343 {"dpocon", 0}, // subroutine
344 {"drscl", 0}, // subroutine
345 {"ieeeck", 0}, // integer*4 function
346 {"iladlc", 0}, // integer*4 function
347 {"iladlr", 0}, // integer*4 function
348 {"ilaenv", 0}, // integer*4 function
349 {"iparmq", 0}, // integer*4 function
350 {NULL, 0}
351 };
353 int_4 _p_ ldu_, real_8 _p_ vt_, int_4 _p_ ldvt_, real_8 _p_ q_, int_4 _p_ iq_, real_8 _p_ work_, int_4 _p_ iwork_,
354 int_4 _p_ info_);
356 real_8 _p_ e_, real_8 _p_ vt_, int_4 _p_ ldvt_, real_8 _p_ u_, int_4 _p_ ldu_, real_8 _p_ c_, int_4 _p_ ldc_, real_8
357 _p_ work_, int_4 _p_ info_);
360 real_8 _p_ tauq_, real_8 _p_ taup_, real_8 _p_ work_, int_4 _p_ info_);
362 real_8 _p_ tauq_, real_8 _p_ taup_, real_8 _p_ work_, int_4 _p_ lwork_, int_4 _p_ info_);
364 , int_4 _p_ m_, int_4 _p_ n_, real_8 _p_ a_, int_4 _p_ lda_, real_8 _p_ sva_, real_8 _p_ u_, int_4 _p_ ldu_, real_8 _p_
365 v_, int_4 _p_ ldv_, real_8 _p_ work_, int_4 _p_ lwork_, int_4 _p_ iwork_, int_4 _p_ info_);
367 int_4 _p_ info_);
369 int_4 _p_ lwork_, int_4 _p_ info_);
371 int_4 _p_ ldb_, real_8 _p_ s_, real_8 _p_ rcond_, int_4 _p_ rank_, real_8 _p_ work_, int_4 _p_ lwork_, int_4 _p_ iwork_
372 , int_4 _p_ info_);
374 int_4 _p_ ldb_, real_8 _p_ s_, real_8 _p_ rcond_, int_4 _p_ rank_, real_8 _p_ work_, int_4 _p_ lwork_, int_4 _p_ info_)
375 ;
377 real_8 _p_ work_, int_4 _p_ lwork_, int_4 _p_ info_);
379 int_4 _p_ info_);
381 int_4 _p_ lwork_, int_4 _p_ info_);
383 real_8 _p_ u_, int_4 _p_ ldu_, real_8 _p_ vt_, int_4 _p_ ldvt_, real_8 _p_ work_, int_4 _p_ lwork_, int_4 _p_ iwork_,
384 int_4 _p_ info_);
386 real_8 _p_ s_, real_8 _p_ u_, int_4 _p_ ldu_, real_8 _p_ vt_, int_4 _p_ ldvt_, real_8 _p_ work_, int_4 _p_ lwork_,
387 int_4 _p_ info_);
389 int_4 _p_ n_, real_8 _p_ a_, int_4 _p_ lda_, real_8 _p_ s_, real_8 _p_ u_, int_4 _p_ ldu_, real_8 _p_ v_, int_4 _p_
390 ldv_, int_4 _p_ numrank_, int_4 _p_ iwork_, int_4 _p_ liwork_, real_8 _p_ work_, int_4 _p_ lwork_, real_8 _p_ rwork_,
391 int_4 _p_ lrwork_, int_4 _p_ info_);
393 int_4 _p_ lda_, real_8 _p_ sva_, int_4 _p_ mv_, real_8 _p_ v_, int_4 _p_ ldv_, real_8 _p_ work_, int_4 _p_ lwork_,
394 int_4 _p_ info_);
396 real_8 _p_ sva_, int_4 _p_ mv_, real_8 _p_ v_, int_4 _p_ ldv_, real_8 _p_ eps_, real_8 _p_ sfmin_, real_8 _p_ tol_,
397 int_4 _p_ nsweep_, real_8 _p_ work_, int_4 _p_ lwork_, int_4 _p_ info_);
399 real_8 _p_ d_, real_8 _p_ sva_, int_4 _p_ mv_, real_8 _p_ v_, int_4 _p_ ldv_, real_8 _p_ eps_, real_8 _p_ sfmin_,
400 real_8 _p_ tol_, int_4 _p_ nsweep_, real_8 _p_ work_, int_4 _p_ lwork_, int_4 _p_ info_);
404 real_8 _p_ e_, real_8 _p_ tauq_, real_8 _p_ taup_, real_8 _p_ x_, int_4 _p_ ldx_, real_8 _p_ y_, int_4 _p_ ldy_);
406 int_4 _p_ isave_);
408 int_4 _p_ ldb_);
410 real_8 _p_ finit_, real_8 _p_ tau_, int_4 _p_ info_);
413 b_, int_4 _p_ ldb_, real_8 _p_ bx_, int_4 _p_ ldbx_, int_4 _p_ perm_, int_4 _p_ givptr_, int_4 _p_ givcol_, int_4 _p_
414 ldgcol_, real_8 _p_ givnum_, int_4 _p_ ldgnum_, real_8 _p_ poles_, real_8 _p_ difl_, real_8 _p_ difr_, real_8 _p_ z_,
415 int_4 _p_ k_, real_8 _p_ c_, real_8 _p_ s_, real_8 _p_ work_, int_4 _p_ info_);
417 ldb_, real_8 _p_ bx_, int_4 _p_ ldbx_, real_8 _p_ u_, int_4 _p_ ldu_, real_8 _p_ vt_, int_4 _p_ k_, real_8 _p_ difl_,
418 real_8 _p_ difr_, real_8 _p_ z_, real_8 _p_ poles_, int_4 _p_ givptr_, int_4 _p_ givcol_, int_4 _p_ ldgcol_, int_4 _p_
419 perm_, real_8 _p_ givnum_, real_8 _p_ c_, real_8 _p_ s_, real_8 _p_ work_, int_4 _p_ iwork_, int_4 _p_ info_);
421 , real_8 _p_ b_, int_4 _p_ ldb_, real_8 _p_ rcond_, int_4 _p_ rank_, real_8 _p_ work_, int_4 _p_ iwork_, int_4 _p_
422 info_);
424 index_);
428 );
431 real_8 _p_ tau_, real_8 _p_ vn1_, real_8 _p_ vn2_, real_8 _p_ work_);
433 int_4 _p_ lda_, int_4 _p_ jpvt_, real_8 _p_ tau_, real_8 _p_ vn1_, real_8 _p_ vn2_, real_8 _p_ auxv_, real_8 _p_ f_,
434 int_4 _p_ ldf_);
436 n_, int_4 _p_ k_, real_8 _p_ v_, int_4 _p_ ldv_, real_8 _p_ t_, int_4 _p_ ldt_, real_8 _p_ c_, int_4 _p_ ldc_, real_8
437 _p_ work_, int_4 _p_ ldwork_);
439 real_8 _p_ c_, int_4 _p_ ldc_, real_8 _p_ work_);
442 real_8 _p_ tau_, real_8 _p_ t_, int_4 _p_ ldt_);
446 , int_4 _p_ n_, real_8 _p_ a_, int_4 _p_ lda_, int_4 _p_ info_);
448 real_8 _p_ vt_, int_4 _p_ ldvt_, int_4 _p_ smlsiz_, int_4 _p_ iwork_, real_8 _p_ work_, int_4 _p_ info_);
450 beta_, real_8 _p_ u_, int_4 _p_ ldu_, real_8 _p_ vt_, int_4 _p_ ldvt_, int_4 _p_ idxq_, int_4 _p_ iwork_, real_8 _p_
451 work_, int_4 _p_ info_);
453 real_8 _p_ alpha_, real_8 _p_ beta_, real_8 _p_ u_, int_4 _p_ ldu_, real_8 _p_ vt_, int_4 _p_ ldvt_, real_8 _p_ dsigma_
454 , real_8 _p_ u2_, int_4 _p_ ldu2_, real_8 _p_ vt2_, int_4 _p_ ldvt2_, int_4 _p_ idxp_, int_4 _p_ idx_, int_4 _p_ idxc_,
455 int_4 _p_ idxq_, int_4 _p_ coltyp_, int_4 _p_ info_);
457 int_4 _p_ ldq_, real_8 _p_ dsigma_, real_8 _p_ u_, int_4 _p_ ldu_, real_8 _p_ u2_, int_4 _p_ ldu2_, real_8 _p_ vt_,
458 int_4 _p_ ldvt_, real_8 _p_ vt2_, int_4 _p_ ldvt2_, int_4 _p_ idxc_, int_4 _p_ ctot_, real_8 _p_ z_, int_4 _p_ info_);
460 real_8 _p_ sigma_, real_8 _p_ work_, int_4 _p_ info_);
462 dsigma_, real_8 _p_ work_);
464 vf_, real_8 _p_ vl_, real_8 _p_ alpha_, real_8 _p_ beta_, int_4 _p_ idxq_, int_4 _p_ perm_, int_4 _p_ givptr_, int_4
465 _p_ givcol_, int_4 _p_ ldgcol_, real_8 _p_ givnum_, int_4 _p_ ldgnum_, real_8 _p_ poles_, real_8 _p_ difl_, real_8 _p_
466 difr_, real_8 _p_ z_, int_4 _p_ k_, real_8 _p_ c_, real_8 _p_ s_, real_8 _p_ work_, int_4 _p_ iwork_, int_4 _p_ info_);
468 real_8 _p_ z_, real_8 _p_ zw_, real_8 _p_ vf_, real_8 _p_ vfw_, real_8 _p_ vl_, real_8 _p_ vlw_, real_8 _p_ alpha_,
469 real_8 _p_ beta_, real_8 _p_ dsigma_, int_4 _p_ idx_, int_4 _p_ idxp_, int_4 _p_ idxq_, int_4 _p_ perm_, int_4 _p_
470 givptr_, int_4 _p_ givcol_, int_4 _p_ ldgcol_, real_8 _p_ givnum_, int_4 _p_ ldgnum_, real_8 _p_ c_, real_8 _p_ s_,
471 int_4 _p_ info_);
473 real_8 _p_ difl_, real_8 _p_ difr_, int_4 _p_ lddifr_, real_8 _p_ dsigma_, real_8 _p_ work_, int_4 _p_ info_);
475 e_, real_8 _p_ u_, int_4 _p_ ldu_, real_8 _p_ vt_, int_4 _p_ k_, real_8 _p_ difl_, real_8 _p_ difr_, real_8 _p_ z_,
476 real_8 _p_ poles_, int_4 _p_ givptr_, int_4 _p_ givcol_, int_4 _p_ ldgcol_, int_4 _p_ perm_, real_8 _p_ givnum_, real_8
477 _p_ c_, real_8 _p_ s_, real_8 _p_ work_, int_4 _p_ iwork_, int_4 _p_ info_);
479 , real_8 _p_ d_, real_8 _p_ e_, real_8 _p_ vt_, int_4 _p_ ldvt_, real_8 _p_ u_, int_4 _p_ ldu_, real_8 _p_ c_, int_4
480 _p_ ldc_, real_8 _p_ work_, int_4 _p_ info_);
482 ndimr_, int_4 _p_ msub_);
484 , int_4 _p_ lda_);
488 sigma_, real_8 _p_ desig_, real_8 _p_ qmax_, int_4 _p_ nfail_, int_4 _p_ iter_, int_4 _p_ ndiv_, logical_4 _p_ ieee_,
489 int_4 _p_ ttype_, real_8 _p_ dmin1_, real_8 _p_ dmin2_, real_8 _p_ dn_, real_8 _p_ dn1_, real_8 _p_ dn2_, real_8 _p_ g_
490 , real_8 _p_ tau_);
492 real_8 _p_ dmin1_, real_8 _p_ dmin2_, real_8 _p_ dn_, real_8 _p_ dn1_, real_8 _p_ dn2_, real_8 _p_ tau_, int_4 _p_
493 ttype_, real_8 _p_ g_);
495 , real_8 _p_ dmin_, real_8 _p_ dmin1_, real_8 _p_ dmin2_, real_8 _p_ dn_, real_8 _p_ dnm1_, real_8 _p_ dnm2_, logical_4
496 _p_ ieee_, real_8 _p_ eps_);
498 dmin1_, real_8 _p_ dmin2_, real_8 _p_ dn_, real_8 _p_ dnm1_, real_8 _p_ dnm2_);
500 real_8 _p_ s_, real_8 _p_ a_, int_4 _p_ lda_);
504 snr_, real_8 _p_ csr_, real_8 _p_ snl_, real_8 _p_ csl_);
506 int_4 _p_ incx_);
508 , int_4 _p_ lda_, real_8 _p_ x_, real_8 _p_ scale_, real_8 _p_ cnorm_, int_4 _p_ info_);
510 real_8 _p_ work_, int_4 _p_ info_);
512 real_8 _p_ tau_, real_8 _p_ work_, int_4 _p_ lwork_, int_4 _p_ info_);
514 real_8 _p_ work_, int_4 _p_ info_);
516 real_8 _p_ work_, int_4 _p_ lwork_, int_4 _p_ info_);
518 real_8 _p_ work_, int_4 _p_ lwork_, int_4 _p_ info_);
520 int_4 _p_ lda_, real_8 _p_ tau_, real_8 _p_ c_, int_4 _p_ ldc_, real_8 _p_ work_, int_4 _p_ info_);
522 real_8 _p_ a_, int_4 _p_ lda_, real_8 _p_ tau_, real_8 _p_ c_, int_4 _p_ ldc_, real_8 _p_ work_, int_4 _p_ lwork_,
523 int_4 _p_ info_);
525 int_4 _p_ lda_, real_8 _p_ tau_, real_8 _p_ c_, int_4 _p_ ldc_, real_8 _p_ work_, int_4 _p_ info_);
527 int_4 _p_ lda_, real_8 _p_ tau_, real_8 _p_ c_, int_4 _p_ ldc_, real_8 _p_ work_, int_4 _p_ lwork_, int_4 _p_ info_);
529 int_4 _p_ lda_, real_8 _p_ tau_, real_8 _p_ c_, int_4 _p_ ldc_, real_8 _p_ work_, int_4 _p_ lwork_, int_4 _p_ info_);
531 rcond_, real_8 _p_ work_, int_4 _p_ iwork_, int_4 _p_ info_);
537 int_4 _p_ n4_);
539 , int_4 _p_ lwork_);
540 int_4 _dbdsdc (char _p_ uplo_, char _p_ compq_, int_4 _p_ n_, real_8 _p_ d_, real_8 _p_ e_, real_8 _p_ u_, int_4 _p_
541 ldu_, real_8 _p_ vt_, int_4 _p_ ldvt_, real_8 _p_ q_, int_4 _p_ iq_, real_8 _p_ work_, int_4 _p_ iwork_, int_4 _p_
542 info_)
543 { // ** body not listed **
771 }
772 int_4 _dbdsqr (char _p_ uplo_, int_4 _p_ n_, int_4 _p_ ncvt_, int_4 _p_ nru_, int_4 _p_ ncc_, real_8 _p_ d_, real_8 _p_
773 e_, real_8 _p_ vt_, int_4 _p_ ldvt_, real_8 _p_ u_, int_4 _p_ ldu_, real_8 _p_ c_, int_4 _p_ ldc_, real_8 _p_ work_,
774 int_4 _p_ info_)
775 { // ** body not listed **
1212 }
1213 int_4 _dcombssq (real_8 _p_ v1_, real_8 _p_ v2_)
1214 { // ** body not listed **
1230 }
1231 int_4 _dgebd2 (int_4 _p_ m_, int_4 _p_ n_, real_8 _p_ a_, int_4 _p_ lda_, real_8 _p_ d_, real_8 _p_ e_, real_8 _p_
1232 tauq_, real_8 _p_ taup_, real_8 _p_ work_, int_4 _p_ info_)
1233 { // ** body not listed **
1304 }
1305 int_4 _dgebrd (int_4 _p_ m_, int_4 _p_ n_, real_8 _p_ a_, int_4 _p_ lda_, real_8 _p_ d_, real_8 _p_ e_, real_8 _p_
1306 tauq_, real_8 _p_ taup_, real_8 _p_ work_, int_4 _p_ lwork_, int_4 _p_ info_)
1307 { // ** body not listed **
1394 }
1395 int_4 _dgejsv (char _p_ joba_, char _p_ jobu_, char _p_ jobv_, char _p_ jobr_, char _p_ jobt_, char _p_ jobp_, int_4
1396 _p_ m_, int_4 _p_ n_, real_8 _p_ a_, int_4 _p_ lda_, real_8 _p_ sva_, real_8 _p_ u_, int_4 _p_ ldu_, real_8 _p_ v_,
1397 int_4 _p_ ldv_, real_8 _p_ work_, int_4 _p_ lwork_, int_4 _p_ iwork_, int_4 _p_ info_)
1398 { // ** body not listed **
2381 }
2382 int_4 _dgelq2 (int_4 _p_ m_, int_4 _p_ n_, real_8 _p_ a_, int_4 _p_ lda_, real_8 _p_ tau_, real_8 _p_ work_, int_4 _p_
2383 info_)
2384 { // ** body not listed **
2418 }
2419 int_4 _dgelqf (int_4 _p_ m_, int_4 _p_ n_, real_8 _p_ a_, int_4 _p_ lda_, real_8 _p_ tau_, real_8 _p_ work_, int_4 _p_
2420 lwork_, int_4 _p_ info_)
2421 { // ** body not listed **
2494 }
2495 int_4 _dgelsd (int_4 _p_ m_, int_4 _p_ n_, int_4 _p_ nrhs_, real_8 _p_ a_, int_4 _p_ lda_, real_8 _p_ b_, int_4 _p_
2496 ldb_, real_8 _p_ s_, real_8 _p_ rcond_, int_4 _p_ rank_, real_8 _p_ work_, int_4 _p_ lwork_, int_4 _p_ iwork_, int_4
2497 _p_ info_)
2498 { // ** body not listed **
2736 }
2737 int_4 _dgelss (int_4 _p_ m_, int_4 _p_ n_, int_4 _p_ nrhs_, real_8 _p_ a_, int_4 _p_ lda_, real_8 _p_ b_, int_4 _p_
2738 ldb_, real_8 _p_ s_, real_8 _p_ rcond_, int_4 _p_ rank_, real_8 _p_ work_, int_4 _p_ lwork_, int_4 _p_ info_)
2739 { // ** body not listed **
3097 }
3098 int_4 _dgeqp3 (int_4 _p_ m_, int_4 _p_ n_, real_8 _p_ a_, int_4 _p_ lda_, int_4 _p_ jpvt_, real_8 _p_ tau_, real_8 _p_
3099 work_, int_4 _p_ lwork_, int_4 _p_ info_)
3100 { // ** body not listed **
3216 }
3217 int_4 _dgeqr2 (int_4 _p_ m_, int_4 _p_ n_, real_8 _p_ a_, int_4 _p_ lda_, real_8 _p_ tau_, real_8 _p_ work_, int_4 _p_
3218 info_)
3219 { // ** body not listed **
3253 }
3254 int_4 _dgeqrf (int_4 _p_ m_, int_4 _p_ n_, real_8 _p_ a_, int_4 _p_ lda_, real_8 _p_ tau_, real_8 _p_ work_, int_4 _p_
3255 lwork_, int_4 _p_ info_)
3256 { // ** body not listed **
3329 }
3330 int_4 _dgesdd (char _p_ jobz_, int_4 _p_ m_, int_4 _p_ n_, real_8 _p_ a_, int_4 _p_ lda_, real_8 _p_ s_, real_8 _p_ u_,
3331 int_4 _p_ ldu_, real_8 _p_ vt_, int_4 _p_ ldvt_, real_8 _p_ work_, int_4 _p_ lwork_, int_4 _p_ iwork_, int_4 _p_ info_)
3332 { // ** body not listed **
3975 }
3976 int_4 _dgesvd (char _p_ jobu_, char _p_ jobvt_, int_4 _p_ m_, int_4 _p_ n_, real_8 _p_ a_, int_4 _p_ lda_, real_8 _p_
3977 s_, real_8 _p_ u_, int_4 _p_ ldu_, real_8 _p_ vt_, int_4 _p_ ldvt_, real_8 _p_ work_, int_4 _p_ lwork_, int_4 _p_ info_
3978 )
3979 { // ** body not listed **
5574 }
5575 int_4 _dgesvdq (char _p_ joba_, char _p_ jobp_, char _p_ jobr_, char _p_ jobu_, char _p_ jobv_, int_4 _p_ m_, int_4 _p_
5576 n_, real_8 _p_ a_, int_4 _p_ lda_, real_8 _p_ s_, real_8 _p_ u_, int_4 _p_ ldu_, real_8 _p_ v_, int_4 _p_ ldv_, int_4
5577 _p_ numrank_, int_4 _p_ iwork_, int_4 _p_ liwork_, real_8 _p_ work_, int_4 _p_ lwork_, real_8 _p_ rwork_, int_4 _p_
5578 lrwork_, int_4 _p_ info_)
5579 {
5580 static int_4 ierr_, iwoff_, nr_, n1_, optratio_, p_, q_, lwcon_, lwqp3_, lwrk_dgelqf_, lwrk_dgesvd_, lwrk_dgesvd2_,
5581 lwrk_dgeqp3_, lwrk_dgeqrf_, lwrk_dormlq_, lwrk_dormqr_, lwrk_dormqr2_, lwlqf_, lwqrf_, lwsvd_, lwsvd2_, lworq_, lworq2_
5582 , lworlq_, minwrk_, minwrk2_, optwrk_, optwrk2_, iminwrk_, rminwrk_;
5583 static logical_4 accla_, acclm_, acclh_, ascaled_, conda_, dntwu_, dntwv_, lquery_, lsvc0_, lsvec_, rowprm_, rsvec_,
5584 rtrans_, wntua_, wntuf_, wntur_, wntus_, wntva_, wntvr_;
5586 int_4 $0_, $1_, $2_, $3_, $4_, $5_, $6_, $7_, $8_, $9_, $10_, $11_, $12_, $13_, $14_, $15_, $16_, $17_, $18_, $19_,
5587 $20_, $21_, $22_, $23_, $24_, $25_, $26_, $41_, $42_, $45_, $49_, $50_, $53_, $54_, $57_, $58_, $59_, $62_, $63_, $66_,
5588 $69_, $70_, $73_, $74_, $75_, $76_, $79_, $81_, $84_, $86_, $87_, $90_, $92_, $95_, $97_, $98_, $101_, $103_, $106_,
5589 $109_, $110_, $113_, $114_, $117_, $120_, $122_, $125_, $128_, $129_, $132_, $133_, $136_, $137_, $138_, $141_, $142_,
5590 $145_, $148_, $149_, $152_, $154_, $157_, $160_, $161_, $164_, $165_, $168_, $170_, $173_, $176_, $177_, $180_, $181_,
5591 $184_, $187_, $189_, $192_, $195_, $196_, $199_, $200_, $203_, $204_, $205_, $208_, $209_, $212_, $215_, $216_, $219_,
5592 $221_, $224_, $227_, $228_, $231_, $232_, $233_;
5593 logical_4 $80_, $85_, $91_, $96_, $102_, $121_, $153_, $169_, $188_, $220_;
5594 real_8 $27_, $28_, $29_, $30_, $31_, $32_, $33_, $34_, $35_, $36_, $37_, $38_, $39_, $40_, $43_, $44_, $46_, $47_, $48_
5595 , $51_, $52_, $55_, $56_, $60_, $61_, $64_, $65_, $67_, $68_, $71_, $72_, $77_, $78_, $82_, $83_, $88_, $89_, $93_,
5596 $94_, $99_, $100_, $104_, $105_, $107_, $108_, $111_, $112_, $115_, $116_, $118_, $119_, $123_, $124_, $126_, $127_,
5597 $130_, $131_, $134_, $135_, $139_, $140_, $143_, $144_, $146_, $147_, $150_, $151_, $155_, $156_, $158_, $159_, $162_,
5598 $163_, $166_, $167_, $171_, $172_, $174_, $175_, $178_, $179_, $182_, $183_, $185_, $186_, $190_, $191_, $193_, $194_,
5599 $197_, $198_, $201_, $202_, $206_, $207_, $210_, $211_, $213_, $214_, $217_, $218_, $222_, $223_, $225_, $226_, $229_,
5600 $230_, $234_, $235_, $236_, $237_;
5601 extern int_4 _dscal ();
5602 extern int_4 _xerbla ();
5603 extern logical_4 _lsame ();
5604 extern int_4 _idamax ();
5605 extern real_8 _dnrm2 ();
5606 extern real_8 _dlamch ();
5607 wntus_ = _lsame (jobu_, _dc_52) || _lsame (jobu_, _dc_0);
5608 wntur_ = _lsame (jobu_, _dc_15);
5609 wntua_ = _lsame (jobu_, _dc_7);
5610 wntuf_ = _lsame (jobu_, _dc_16);
5611 lsvc0_ = wntus_ || wntur_ || wntua_;
5612 lsvec_ = lsvc0_ || wntuf_;
5613 dntwu_ = _lsame (jobu_, _dc_2);
5614 wntvr_ = _lsame (jobv_, _dc_15);
5615 wntva_ = _lsame (jobv_, _dc_7) || _lsame (jobv_, _dc_11);
5616 rsvec_ = wntvr_ || wntva_;
5617 dntwv_ = _lsame (jobv_, _dc_2);
5618 accla_ = _lsame (joba_, _dc_7);
5619 acclm_ = _lsame (joba_, _dc_8);
5620 conda_ = _lsame (joba_, _dc_24);
5621 acclh_ = _lsame (joba_, _dc_60) || conda_;
5622 rowprm_ = _lsame (jobp_, _dc_3);
5623 rtrans_ = _lsame (jobr_, _dc_25);
5624 if (rowprm_) {
5625 if (conda_) {
5626 iminwrk_ = _max (1, (*n_) + (*m_) - 1 + (*n_));
5627 }
5628 else {
5629 iminwrk_ = _max (1, (*n_) + (*m_) - 1);
5630 }
5631 rminwrk_ = _max (2, (*m_));
5632 }
5633 else {
5634 if (conda_) {
5635 iminwrk_ = _max (1, (*n_) + (*n_));
5636 }
5637 else {
5638 iminwrk_ = _max (1, (*n_));
5639 }
5640 rminwrk_ = 2;
5641 }
5642 lquery_ = ((*liwork_) == -1 || (*lwork_) == -1 || (*lrwork_) == -1);
5643 (*info_) = 0;
5644 if (! ((accla_ || acclm_ || acclh_))) {
5645 (*info_) = -1;
5646 }
5647 else if (! ((rowprm_ || _lsame (jobp_, _dc_2)))) {
5648 (*info_) = -2;
5649 }
5650 else if (! ((rtrans_ || _lsame (jobr_, _dc_2)))) {
5651 (*info_) = -3;
5652 }
5653 else if (! ((lsvec_ || dntwu_))) {
5654 (*info_) = -4;
5655 }
5656 else if (wntur_ && wntva_) {
5657 (*info_) = -5;
5658 }
5659 else if (! ((rsvec_ || dntwv_))) {
5660 (*info_) = -5;
5661 }
5662 else if ((*m_) < 0) {
5663 (*info_) = -6;
5664 }
5665 else if (((*n_) < 0) || ((*n_) > (*m_))) {
5666 (*info_) = -7;
5667 }
5668 else if ((*lda_) < _max (1, (*m_))) {
5669 (*info_) = -9;
5670 }
5671 else if ((*ldu_) < 1 || (lsvc0_ && (*ldu_) < (*m_)) || (wntuf_ && (*ldu_) < (*n_))) {
5672 (*info_) = -12;
5673 }
5674 else if ((*ldv_) < 1 || (rsvec_ && (*ldv_) < (*n_)) || (conda_ && (*ldv_) < (*n_))) {
5675 (*info_) = -14;
5676 }
5677 else if ((*liwork_) < iminwrk_ && ! (lquery_)) {
5678 (*info_) = -17;
5679 }
5680 if ((*info_) == 0) {
5681 lwqp3_ = 3 * (*n_) + 1;
5682 if (wntus_ || wntur_) {
5683 lworq_ = _max ((*n_), 1);
5684 }
5685 else if (wntua_) {
5686 lworq_ = _max ((*m_), 1);
5687 }
5688 lwcon_ = 3 * (*n_);
5689 lwsvd_ = _max (5 * (*n_), 1);
5690 if (lquery_) {
5691 (void) _dgeqp3 (m_, n_, a_, lda_, iwork_, rdummy_, rdummy_, &_km1, &ierr_);
5692 lwrk_dgeqp3_ = (int_4) (_aintd (rdummy_[0]));
5693 if (wntus_ || wntur_) {
5694 (void) _dormqr (_dc_1, _dc_2, m_, n_, n_, a_, lda_, rdummy_, u_, ldu_, rdummy_, &_km1, &ierr_);
5695 lwrk_dormqr_ = (int_4) (_aintd (rdummy_[0]));
5696 }
5697 else if (wntua_) {
5698 (void) _dormqr (_dc_1, _dc_2, m_, m_, n_, a_, lda_, rdummy_, u_, ldu_, rdummy_, &_km1, &ierr_);
5699 lwrk_dormqr_ = (int_4) (_aintd (rdummy_[0]));
5700 }
5701 else {
5702 lwrk_dormqr_ = 0;
5703 }
5704 }
5705 minwrk_ = 2;
5706 optwrk_ = 2;
5707 if (! ((lsvec_ || rsvec_))) {
5708 if (conda_) {
5709 minwrk_ = ($0_ = _max ((*n_) + lwqp3_, lwcon_), _max ($0_, lwsvd_));
5710 }
5711 else {
5712 minwrk_ = _max ((*n_) + lwqp3_, lwsvd_);
5713 }
5714 if (lquery_) {
5715 (void) _dgesvd (_dc_2, _dc_2, n_, n_, a_, lda_, s_, u_, ldu_, v_, ldv_, rdummy_, &_km1, &ierr_);
5716 lwrk_dgesvd_ = (int_4) (_aintd (rdummy_[0]));
5717 if (conda_) {
5718 optwrk_ = ($1_ = _max ((*n_) + lwrk_dgeqp3_, (*n_) + lwcon_), _max ($1_, lwrk_dgesvd_));
5719 }
5720 else {
5721 optwrk_ = _max ((*n_) + lwrk_dgeqp3_, lwrk_dgesvd_);
5722 }
5723 }
5724 }
5725 else if (lsvec_ && (! (rsvec_))) {
5726 if (conda_) {
5727 minwrk_ = (*n_) + ($2_ = _max (lwqp3_, lwcon_), $2_ = _max ($2_, lwsvd_), _max ($2_, lworq_));
5728 }
5729 else {
5730 minwrk_ = (*n_) + ($3_ = _max (lwqp3_, lwsvd_), _max ($3_, lworq_));
5731 }
5732 if (lquery_) {
5733 if (rtrans_) {
5734 (void) _dgesvd (_dc_2, _dc_30, n_, n_, a_, lda_, s_, u_, ldu_, v_, ldv_, rdummy_, &_km1, &ierr_);
5735 }
5736 else {
5737 (void) _dgesvd (_dc_30, _dc_2, n_, n_, a_, lda_, s_, u_, ldu_, v_, ldv_, rdummy_, &_km1, &ierr_);
5738 }
5739 lwrk_dgesvd_ = (int_4) (_aintd (rdummy_[0]));
5740 if (conda_) {
5741 optwrk_ = (*n_) + ($4_ = _max (lwrk_dgeqp3_, lwcon_), $4_ = _max ($4_, lwrk_dgesvd_), _max ($4_, lwrk_dormqr_));
5742 }
5743 else {
5744 optwrk_ = (*n_) + ($5_ = _max (lwrk_dgeqp3_, lwrk_dgesvd_), _max ($5_, lwrk_dormqr_));
5745 }
5746 }
5747 }
5748 else if (rsvec_ && (! (lsvec_))) {
5749 if (conda_) {
5750 minwrk_ = (*n_) + ($6_ = _max (lwqp3_, lwcon_), _max ($6_, lwsvd_));
5751 }
5752 else {
5753 minwrk_ = (*n_) + _max (lwqp3_, lwsvd_);
5754 }
5755 if (lquery_) {
5756 if (rtrans_) {
5757 (void) _dgesvd (_dc_30, _dc_2, n_, n_, a_, lda_, s_, u_, ldu_, v_, ldv_, rdummy_, &_km1, &ierr_);
5758 }
5759 else {
5760 (void) _dgesvd (_dc_2, _dc_30, n_, n_, a_, lda_, s_, u_, ldu_, v_, ldv_, rdummy_, &_km1, &ierr_);
5761 }
5762 lwrk_dgesvd_ = (int_4) (_aintd (rdummy_[0]));
5763 if (conda_) {
5764 optwrk_ = (*n_) + ($7_ = _max (lwrk_dgeqp3_, lwcon_), _max ($7_, lwrk_dgesvd_));
5765 }
5766 else {
5767 optwrk_ = (*n_) + _max (lwrk_dgeqp3_, lwrk_dgesvd_);
5768 }
5769 }
5770 }
5771 else {
5772 if (rtrans_) {
5773 minwrk_ = ($8_ = _max (lwqp3_, lwsvd_), _max ($8_, lworq_));
5774 if (conda_) {
5775 minwrk_ = _max (minwrk_, lwcon_);
5776 }
5777 minwrk_ = minwrk_ + (*n_);
5778 if (wntva_) {
5779 lwqrf_ = _max ((*n_) / 2, 1);
5780 lwsvd2_ = _max (5 * ((*n_) / 2), 1);
5781 lworq2_ = _max ((*n_), 1);
5782 minwrk2_ = ($9_ = _max (lwqp3_, (*n_) / 2 + lwqrf_), $9_ = _max ($9_, (*n_) / 2 + lwsvd2_), $9_ = _max ($9_, (*n_) / 2
5783 + lworq2_), _max ($9_, lworq_));
5784 if (conda_) {
5785 minwrk2_ = _max (minwrk2_, lwcon_);
5786 }
5787 minwrk2_ = (*n_) + minwrk2_;
5788 minwrk_ = _max (minwrk_, minwrk2_);
5789 }
5790 }
5791 else {
5792 minwrk_ = ($10_ = _max (lwqp3_, lwsvd_), _max ($10_, lworq_));
5793 if (conda_) {
5794 minwrk_ = _max (minwrk_, lwcon_);
5795 }
5796 minwrk_ = minwrk_ + (*n_);
5797 if (wntva_) {
5798 lwlqf_ = _max ((*n_) / 2, 1);
5799 lwsvd2_ = _max (5 * ((*n_) / 2), 1);
5800 lworlq_ = _max ((*n_), 1);
5801 minwrk2_ = ($11_ = _max (lwqp3_, (*n_) / 2 + lwlqf_), $11_ = _max ($11_, (*n_) / 2 + lwsvd2_), $11_ = _max ($11_, (*n_)
5802 / 2 + lworlq_), _max ($11_, lworq_));
5803 if (conda_) {
5804 minwrk2_ = _max (minwrk2_, lwcon_);
5805 }
5806 minwrk2_ = (*n_) + minwrk2_;
5807 minwrk_ = _max (minwrk_, minwrk2_);
5808 }
5809 }
5810 if (lquery_) {
5811 if (rtrans_) {
5812 (void) _dgesvd (_dc_30, _dc_7, n_, n_, a_, lda_, s_, u_, ldu_, v_, ldv_, rdummy_, &_km1, &ierr_);
5813 lwrk_dgesvd_ = (int_4) (_aintd (rdummy_[0]));
5814 optwrk_ = ($12_ = _max (lwrk_dgeqp3_, lwrk_dgesvd_), _max ($12_, lwrk_dormqr_));
5815 if (conda_) {
5816 optwrk_ = _max (optwrk_, lwcon_);
5817 }
5818 optwrk_ = (*n_) + optwrk_;
5819 if (wntva_) {
5820 (void) _dgeqrf (n_, ($13_ = (*n_) / 2, &$13_), u_, ldu_, rdummy_, rdummy_, &_km1, &ierr_);
5821 lwrk_dgeqrf_ = (int_4) (_aintd (rdummy_[0]));
5822 (void) _dgesvd (_dc_52, _dc_30, ($14_ = (*n_) / 2, &$14_), ($15_ = (*n_) / 2, &$15_), v_, ldv_, s_, u_, ldu_, v_, ldv_,
5823 rdummy_, &_km1, &ierr_);
5824 lwrk_dgesvd2_ = (int_4) (_aintd (rdummy_[0]));
5825 (void) _dormqr (_dc_15, _dc_26, n_, n_, ($16_ = (*n_) / 2, &$16_), u_, ldu_, rdummy_, v_, ldv_, rdummy_, &_km1, &ierr_)
5826 ;
5827 lwrk_dormqr2_ = (int_4) (_aintd (rdummy_[0]));
5828 optwrk2_ = ($17_ = _max (lwrk_dgeqp3_, (*n_) / 2 + lwrk_dgeqrf_), $17_ = _max ($17_, (*n_) / 2 + lwrk_dgesvd2_), _max
5829 ($17_, (*n_) / 2 + lwrk_dormqr2_));
5830 if (conda_) {
5831 optwrk2_ = _max (optwrk2_, lwcon_);
5832 }
5833 optwrk2_ = (*n_) + optwrk2_;
5834 optwrk_ = _max (optwrk_, optwrk2_);
5835 }
5836 }
5837 else {
5838 (void) _dgesvd (_dc_52, _dc_30, n_, n_, a_, lda_, s_, u_, ldu_, v_, ldv_, rdummy_, &_km1, &ierr_);
5839 lwrk_dgesvd_ = (int_4) (_aintd (rdummy_[0]));
5840 optwrk_ = ($18_ = _max (lwrk_dgeqp3_, lwrk_dgesvd_), _max ($18_, lwrk_dormqr_));
5841 if (conda_) {
5842 optwrk_ = _max (optwrk_, lwcon_);
5843 }
5844 optwrk_ = (*n_) + optwrk_;
5845 if (wntva_) {
5846 (void) _dgelqf (($19_ = (*n_) / 2, &$19_), n_, u_, ldu_, rdummy_, rdummy_, &_km1, &ierr_);
5847 lwrk_dgelqf_ = (int_4) (_aintd (rdummy_[0]));
5848 (void) _dgesvd (_dc_52, _dc_30, ($20_ = (*n_) / 2, &$20_), ($21_ = (*n_) / 2, &$21_), v_, ldv_, s_, u_, ldu_, v_, ldv_,
5849 rdummy_, &_km1, &ierr_);
5850 lwrk_dgesvd2_ = (int_4) (_aintd (rdummy_[0]));
5851 (void) _dormlq (_dc_15, _dc_2, n_, n_, ($22_ = (*n_) / 2, &$22_), u_, ldu_, rdummy_, v_, ldv_, rdummy_, &_km1, &ierr_)
5852 ;
5853 lwrk_dormlq_ = (int_4) (_aintd (rdummy_[0]));
5854 optwrk2_ = ($23_ = _max (lwrk_dgeqp3_, (*n_) / 2 + lwrk_dgelqf_), $23_ = _max ($23_, (*n_) / 2 + lwrk_dgesvd2_), _max
5855 ($23_, (*n_) / 2 + lwrk_dormlq_));
5856 if (conda_) {
5857 optwrk2_ = _max (optwrk2_, lwcon_);
5858 }
5859 optwrk2_ = (*n_) + optwrk2_;
5860 optwrk_ = _max (optwrk_, optwrk2_);
5861 }
5862 }
5863 }
5864 }
5865 minwrk_ = _max (2, minwrk_);
5866 optwrk_ = _max (2, optwrk_);
5867 if ((*lwork_) < minwrk_ && (! (lquery_))) {
5868 (*info_) = -19;
5869 }
5870 }
5871 if ((*info_) == 0 && (*lrwork_) < rminwrk_ && ! (lquery_)) {
5872 (*info_) = -21;
5873 }
5874 if ((*info_) != 0) {
5875 (void) _xerbla (_dc_61, ($24_ = -(*info_), &$24_));
5876 goto _l0;
5877 }
5878 else if (lquery_) {
5879 iwork_[0] = iminwrk_;
5880 work_[0] = optwrk_;
5881 work_[1] = minwrk_;
5882 rwork_[0] = rminwrk_;
5883 goto _l0;
5884 }
5885 if (((*m_) == 0) || ((*n_) == 0)) {
5886 goto _l0;
5887 }
5888 big_ = _dlamch (_dc_30);
5889 ascaled_ = FALSE;
5890 iwoff_ = 1;
5891 if (rowprm_) {
5892 iwoff_ = (*m_);
5893 for (p_ = 1; p_ <= (*m_); (p_)++) {
5894 rwork_[p_ - 1] = _dlange (_dc_8, &_k1, n_, &a_[p_ - 1 + ((*lda_)) * ((0))], lda_, rdummy_);
5895 if ((rwork_[p_ - 1] != rwork_[p_ - 1]) || ((rwork_[p_ - 1] * 0.0) != 0.0)) {
5896 (*info_) = -8;
5897 (void) _xerbla (_dc_61, ($25_ = -(*info_), &$25_));
5898 goto _l0;
5899 }
5900 }
5901 for (p_ = 1; p_ <= (*m_) - 1; (p_)++) {
5902 q_ = _idamax (($26_ = (*m_) - p_ + 1, &$26_), &rwork_[p_ - 1], &_k1) + p_ - 1;
5903 iwork_[(*n_) + p_ - 1] = q_;
5904 if (p_ != q_) {
5905 rtmp_ = rwork_[p_ - 1];
5906 rwork_[p_ - 1] = rwork_[q_ - 1];
5907 rwork_[q_ - 1] = rtmp_;
5908 }
5909 }
5910 if (rwork_[0] == 0.0) {
5911 (*numrank_) = 0;
5912 (void) _dlaset (_dc_9, n_, &_k1, ($27_ = 0.0, &$27_), ($28_ = 0.0, &$28_), s_, n_);
5913 if (wntus_) {
5914 (void) _dlaset (_dc_9, m_, n_, ($29_ = 0.0, &$29_), ($30_ = 1.0, &$30_), u_, ldu_);
5915 }
5916 if (wntua_) {
5917 (void) _dlaset (_dc_9, m_, m_, ($31_ = 0.0, &$31_), ($32_ = 1.0, &$32_), u_, ldu_);
5918 }
5919 if (wntva_) {
5920 (void) _dlaset (_dc_9, n_, n_, ($33_ = 0.0, &$33_), ($34_ = 1.0, &$34_), v_, ldv_);
5921 }
5922 if (wntuf_) {
5923 (void) _dlaset (_dc_9, n_, &_k1, ($35_ = 0.0, &$35_), ($36_ = 0.0, &$36_), work_, n_);
5924 (void) _dlaset (_dc_9, m_, n_, ($37_ = 0.0, &$37_), ($38_ = 1.0, &$38_), u_, ldu_);
5925 }
5926 for (p_ = 1; p_ <= (*n_); (p_)++) {
5927 iwork_[p_ - 1] = p_;
5928 }
5929 if (rowprm_) {
5930 for (p_ = (*n_) + 1; p_ <= (*n_) + (*m_) - 1; (p_)++) {
5931 iwork_[p_ - 1] = p_ - (*n_);
5932 }
5933 }
5934 if (conda_) {
5935 rwork_[0] = -1;
5936 }
5937 rwork_[1] = -1;
5938 goto _l0;
5939 }
5940 if (rwork_[0] > big_ / sqrt ((real_8) ((*m_)))) {
5941 (void) _dlascl (_dc_9, &_k0, &_k0, ($39_ = sqrt ((real_8) ((*m_))), &$39_), ($40_ = 1.0, &$40_), m_, n_, a_, lda_,
5942 &ierr_);
5943 ascaled_ = TRUE;
5944 }
5945 (void) _dlaswp (n_, a_, lda_, &_k1, ($41_ = (*m_) - 1, &$41_), &iwork_[(*n_) + 1 - 1], &_k1);
5946 }
5947 if (! (rowprm_)) {
5948 rtmp_ = _dlange (_dc_8, m_, n_, a_, lda_, rdummy_);
5949 if ((rtmp_ != rtmp_) || ((rtmp_ * 0.0) != 0.0)) {
5950 (*info_) = -8;
5951 (void) _xerbla (_dc_61, ($42_ = -(*info_), &$42_));
5952 goto _l0;
5953 }
5954 if (rtmp_ > big_ / sqrt ((real_8) ((*m_)))) {
5955 (void) _dlascl (_dc_9, &_k0, &_k0, ($43_ = sqrt ((real_8) ((*m_))), &$43_), ($44_ = 1.0, &$44_), m_, n_, a_, lda_,
5956 &ierr_);
5957 ascaled_ = TRUE;
5958 }
5959 }
5960 for (p_ = 1; p_ <= (*n_); (p_)++) {
5961 iwork_[p_ - 1] = 0;
5962 }
5963 (void) _dgeqp3 (m_, n_, a_, lda_, iwork_, work_, &work_[(*n_) + 1 - 1], ($45_ = (*lwork_) - (*n_), &$45_), &ierr_);
5964 epsln_ = _dlamch (_dc_24);
5965 sfmin_ = _dlamch (_dc_52);
5966 nr_ = (*n_);
5967 if (accla_) {
5968 nr_ = 1;
5969 rtmp_ = sqrt ((real_8) ((*n_))) * epsln_;
5970 for (p_ = 2; p_ <= (*n_); (p_)++) {
5971 if (_abs (a_[p_ - 1 + ((*lda_)) * ((p_ - 1))]) < (rtmp_ * _abs (a_[0 + ((*lda_)) * ((0))]))) {
5972 goto _l3002;
5973 }
5974 nr_ = nr_ + 1;
5975 }
5976 _l3002:;
5977 }
5978 else if (acclm_) {
5979 nr_ = 1;
5980 for (p_ = 2; p_ <= (*n_); (p_)++) {
5981 if ((_abs (a_[p_ - 1 + ((*lda_)) * ((p_ - 1))]) < (epsln_ * _abs (a_[p_ - 1 - 1 + ((*lda_)) * ((p_ - 1 - 1))]))) ||
5982 (_abs (a_[p_ - 1 + ((*lda_)) * ((p_ - 1))]) < sfmin_)) {
5983 goto _l3402;
5984 }
5985 nr_ = nr_ + 1;
5986 }
5987 _l3402:;
5988 }
5989 else {
5990 nr_ = 1;
5991 for (p_ = 2; p_ <= (*n_); (p_)++) {
5992 if (_abs (a_[p_ - 1 + ((*lda_)) * ((p_ - 1))]) == 0.0) {
5993 goto _l3502;
5994 }
5995 nr_ = nr_ + 1;
5996 }
5997 _l3502:;
5998 if (conda_) {
5999 (void) _dlacpy (_dc_0, n_, n_, a_, lda_, v_, ldv_);
6000 for (p_ = 1; p_ <= nr_; (p_)++) {
6001 rtmp_ = _dnrm2 (&p_, &v_[0 + ((*ldv_)) * ((p_ - 1))], &_k1);
6002 (void) _dscal (&p_, ($46_ = 1.0 / rtmp_, &$46_), &v_[0 + ((*ldv_)) * ((p_ - 1))], &_k1);
6003 }
6004 if (! ((lsvec_ || rsvec_))) {
6005 (void) _dpocon (_dc_0, &nr_, v_, ldv_, ($47_ = 1.0, &$47_), &rtmp_, work_, &iwork_[(*n_) + iwoff_ - 1], &ierr_);
6006 }
6007 else {
6008 (void) _dpocon (_dc_0, &nr_, v_, ldv_, ($48_ = 1.0, &$48_), &rtmp_, &work_[(*n_) + 1 - 1], &iwork_[(*n_) + iwoff_ - 1],
6009 &ierr_);
6010 }
6011 sconda_ = 1.0 / sqrt (rtmp_);
6012 }
6013 }
6014 if (wntur_) {
6015 n1_ = nr_;
6016 }
6017 else if (wntus_ || wntuf_) {
6018 n1_ = (*n_);
6019 }
6020 else if (wntua_) {
6021 n1_ = (*m_);
6022 }
6023 if (! ((rsvec_ || lsvec_))) {
6024 if (rtrans_) {
6025 for (p_ = 1; p_ <= _min ((*n_), nr_); (p_)++) {
6026 for (q_ = p_ + 1; q_ <= (*n_); (q_)++) {
6027 a_[q_ - 1 + ((*lda_)) * ((p_ - 1))] = a_[p_ - 1 + ((*lda_)) * ((q_ - 1))];
6028 if (q_ <= nr_) {
6029 a_[p_ - 1 + ((*lda_)) * ((q_ - 1))] = 0.0;
6030 }
6031 }
6032 }
6033 (void) _dgesvd (_dc_2, _dc_2, n_, &nr_, a_, lda_, s_, u_, ldu_, v_, ldv_, work_, lwork_, info_);
6034 }
6035 else {
6036 if (nr_ > 1) {
6037 (void) _dlaset (_dc_1, ($49_ = nr_ - 1, &$49_), ($50_ = nr_ - 1, &$50_), ($51_ = 0.0, &$51_), ($52_ = 0.0, &$52_),
6038 &a_[1 + ((*lda_)) * ((0))], lda_);
6039 }
6040 (void) _dgesvd (_dc_2, _dc_2, &nr_, n_, a_, lda_, s_, u_, ldu_, v_, ldv_, work_, lwork_, info_);
6041 }
6042 }
6043 else if (lsvec_ && (! (rsvec_))) {
6044 if (rtrans_) {
6045 for (p_ = 1; p_ <= nr_; (p_)++) {
6046 for (q_ = p_; q_ <= (*n_); (q_)++) {
6047 u_[q_ - 1 + ((*ldu_)) * ((p_ - 1))] = a_[p_ - 1 + ((*lda_)) * ((q_ - 1))];
6048 }
6049 }
6050 if (nr_ > 1) {
6051 (void) _dlaset (_dc_0, ($53_ = nr_ - 1, &$53_), ($54_ = nr_ - 1, &$54_), ($55_ = 0.0, &$55_), ($56_ = 0.0, &$56_),
6052 &u_[0 + ((*ldu_)) * ((1))], ldu_);
6053 }
6054 (void) _dgesvd (_dc_2, _dc_30, n_, &nr_, u_, ldu_, s_, u_, ldu_, u_, ldu_, &work_[(*n_) + 1 - 1], ($57_ = (*lwork_) -
6055 (*n_), &$57_), info_);
6056 for (p_ = 1; p_ <= nr_; (p_)++) {
6057 for (q_ = p_ + 1; q_ <= nr_; (q_)++) {
6058 rtmp_ = u_[q_ - 1 + ((*ldu_)) * ((p_ - 1))];
6059 u_[q_ - 1 + ((*ldu_)) * ((p_ - 1))] = u_[p_ - 1 + ((*ldu_)) * ((q_ - 1))];
6060 u_[p_ - 1 + ((*ldu_)) * ((q_ - 1))] = rtmp_;
6061 }
6062 }
6063 }
6064 else {
6065 (void) _dlacpy (_dc_0, &nr_, n_, a_, lda_, u_, ldu_);
6066 if (nr_ > 1) {
6067 (void) _dlaset (_dc_1, ($58_ = nr_ - 1, &$58_), ($59_ = nr_ - 1, &$59_), ($60_ = 0.0, &$60_), ($61_ = 0.0, &$61_),
6068 &u_[1 + ((*ldu_)) * ((0))], ldu_);
6069 }
6070 (void) _dgesvd (_dc_30, _dc_2, &nr_, n_, u_, ldu_, s_, u_, ldu_, v_, ldv_, &work_[(*n_) + 1 - 1], ($62_ = (*lwork_) -
6071 (*n_), &$62_), info_);
6072 }
6073 if ((nr_ < (*m_)) && (! (wntuf_))) {
6074 (void) _dlaset (_dc_7, ($63_ = (*m_) - nr_, &$63_), &nr_, ($64_ = 0.0, &$64_), ($65_ = 0.0, &$65_), &u_[nr_ + 1 - 1 +
6075 ((*ldu_)) * ((0))], ldu_);
6076 if (nr_ < n1_) {
6077 (void) _dlaset (_dc_7, &nr_, ($66_ = n1_ - nr_, &$66_), ($67_ = 0.0, &$67_), ($68_ = 0.0, &$68_), &u_[0 + ((*ldu_)) *
6078 ((nr_ + 1 - 1))], ldu_);
6079 (void) _dlaset (_dc_7, ($69_ = (*m_) - nr_, &$69_), ($70_ = n1_ - nr_, &$70_), ($71_ = 0.0, &$71_), ($72_ = 1.0,
6080 &$72_), &u_[nr_ + 1 - 1 + ((*ldu_)) * ((nr_ + 1 - 1))], ldu_);
6081 }
6082 }
6083 if (! (wntuf_)) {
6084 (void) _dormqr (_dc_1, _dc_2, m_, &n1_, n_, a_, lda_, work_, u_, ldu_, &work_[(*n_) + 1 - 1], ($73_ = (*lwork_) -
6085 (*n_), &$73_), &ierr_);
6086 }
6087 if (rowprm_ && ! (wntuf_)) {
6088 (void) _dlaswp (&n1_, u_, ldu_, &_k1, ($74_ = (*m_) - 1, &$74_), &iwork_[(*n_) + 1 - 1], &_km1);
6089 }
6090 }
6091 else if (rsvec_ && (! (lsvec_))) {
6092 if (rtrans_) {
6093 for (p_ = 1; p_ <= nr_; (p_)++) {
6094 for (q_ = p_; q_ <= (*n_); (q_)++) {
6095 v_[q_ - 1 + ((*ldv_)) * ((p_ - 1))] = (a_[p_ - 1 + ((*lda_)) * ((q_ - 1))]);
6096 }
6097 }
6098 if (nr_ > 1) {
6099 (void) _dlaset (_dc_0, ($75_ = nr_ - 1, &$75_), ($76_ = nr_ - 1, &$76_), ($77_ = 0.0, &$77_), ($78_ = 0.0, &$78_),
6100 &v_[0 + ((*ldv_)) * ((1))], ldv_);
6101 }
6102 if (wntvr_ || (nr_ == (*n_))) {
6103 (void) _dgesvd (_dc_30, _dc_2, n_, &nr_, v_, ldv_, s_, u_, ldu_, u_, ldu_, &work_[(*n_) + 1 - 1], ($79_ = (*lwork_) -
6104 (*n_), &$79_), info_);
6105 for (p_ = 1; p_ <= nr_; (p_)++) {
6106 for (q_ = p_ + 1; q_ <= nr_; (q_)++) {
6107 rtmp_ = v_[q_ - 1 + ((*ldv_)) * ((p_ - 1))];
6108 v_[q_ - 1 + ((*ldv_)) * ((p_ - 1))] = v_[p_ - 1 + ((*ldv_)) * ((q_ - 1))];
6109 v_[p_ - 1 + ((*ldv_)) * ((q_ - 1))] = rtmp_;
6110 }
6111 }
6112 if (nr_ < (*n_)) {
6113 for (p_ = 1; p_ <= nr_; (p_)++) {
6114 for (q_ = nr_ + 1; q_ <= (*n_); (q_)++) {
6115 v_[p_ - 1 + ((*ldv_)) * ((q_ - 1))] = v_[q_ - 1 + ((*ldv_)) * ((p_ - 1))];
6116 }
6117 }
6118 }
6119 (void) _dlapmt (($80_ = FALSE, &$80_), &nr_, n_, v_, ldv_, iwork_);
6120 }
6121 else {
6122 (void) _dlaset (_dc_9, n_, ($81_ = (*n_) - nr_, &$81_), ($82_ = 0.0, &$82_), ($83_ = 0.0, &$83_), &v_[0 + ((*ldv_)) *
6123 ((nr_ + 1 - 1))], ldv_);
6124 (void) _dgesvd (_dc_30, _dc_2, n_, n_, v_, ldv_, s_, u_, ldu_, u_, ldu_, &work_[(*n_) + 1 - 1], ($84_ = (*lwork_) -
6125 (*n_), &$84_), info_);
6126 for (p_ = 1; p_ <= (*n_); (p_)++) {
6127 for (q_ = p_ + 1; q_ <= (*n_); (q_)++) {
6128 rtmp_ = v_[q_ - 1 + ((*ldv_)) * ((p_ - 1))];
6129 v_[q_ - 1 + ((*ldv_)) * ((p_ - 1))] = v_[p_ - 1 + ((*ldv_)) * ((q_ - 1))];
6130 v_[p_ - 1 + ((*ldv_)) * ((q_ - 1))] = rtmp_;
6131 }
6132 }
6133 (void) _dlapmt (($85_ = FALSE, &$85_), n_, n_, v_, ldv_, iwork_);
6134 }
6135 }
6136 else {
6137 (void) _dlacpy (_dc_0, &nr_, n_, a_, lda_, v_, ldv_);
6138 if (nr_ > 1) {
6139 (void) _dlaset (_dc_1, ($86_ = nr_ - 1, &$86_), ($87_ = nr_ - 1, &$87_), ($88_ = 0.0, &$88_), ($89_ = 0.0, &$89_),
6140 &v_[1 + ((*ldv_)) * ((0))], ldv_);
6141 }
6142 if (wntvr_ || (nr_ == (*n_))) {
6143 (void) _dgesvd (_dc_2, _dc_30, &nr_, n_, v_, ldv_, s_, u_, ldu_, v_, ldv_, &work_[(*n_) + 1 - 1], ($90_ = (*lwork_) -
6144 (*n_), &$90_), info_);
6145 (void) _dlapmt (($91_ = FALSE, &$91_), &nr_, n_, v_, ldv_, iwork_);
6146 }
6147 else {
6148 (void) _dlaset (_dc_9, ($92_ = (*n_) - nr_, &$92_), n_, ($93_ = 0.0, &$93_), ($94_ = 0.0, &$94_), &v_[nr_ + 1 - 1 +
6149 ((*ldv_)) * ((0))], ldv_);
6150 (void) _dgesvd (_dc_2, _dc_30, n_, n_, v_, ldv_, s_, u_, ldu_, v_, ldv_, &work_[(*n_) + 1 - 1], ($95_ = (*lwork_) -
6151 (*n_), &$95_), info_);
6152 (void) _dlapmt (($96_ = FALSE, &$96_), n_, n_, v_, ldv_, iwork_);
6153 }
6154 }
6155 }
6156 else {
6157 if (rtrans_) {
6158 if (wntvr_ || (nr_ == (*n_))) {
6159 for (p_ = 1; p_ <= nr_; (p_)++) {
6160 for (q_ = p_; q_ <= (*n_); (q_)++) {
6161 v_[q_ - 1 + ((*ldv_)) * ((p_ - 1))] = a_[p_ - 1 + ((*lda_)) * ((q_ - 1))];
6162 }
6163 }
6164 if (nr_ > 1) {
6165 (void) _dlaset (_dc_0, ($97_ = nr_ - 1, &$97_), ($98_ = nr_ - 1, &$98_), ($99_ = 0.0, &$99_), ($100_ = 0.0, &$100_),
6166 &v_[0 + ((*ldv_)) * ((1))], ldv_);
6167 }
6168 (void) _dgesvd (_dc_30, _dc_7, n_, &nr_, v_, ldv_, s_, v_, ldv_, u_, ldu_, &work_[(*n_) + 1 - 1], ($101_ = (*lwork_) -
6169 (*n_), &$101_), info_);
6170 for (p_ = 1; p_ <= nr_; (p_)++) {
6171 for (q_ = p_ + 1; q_ <= nr_; (q_)++) {
6172 rtmp_ = v_[q_ - 1 + ((*ldv_)) * ((p_ - 1))];
6173 v_[q_ - 1 + ((*ldv_)) * ((p_ - 1))] = v_[p_ - 1 + ((*ldv_)) * ((q_ - 1))];
6174 v_[p_ - 1 + ((*ldv_)) * ((q_ - 1))] = rtmp_;
6175 }
6176 }
6177 if (nr_ < (*n_)) {
6178 for (p_ = 1; p_ <= nr_; (p_)++) {
6179 for (q_ = nr_ + 1; q_ <= (*n_); (q_)++) {
6180 v_[p_ - 1 + ((*ldv_)) * ((q_ - 1))] = v_[q_ - 1 + ((*ldv_)) * ((p_ - 1))];
6181 }
6182 }
6183 }
6184 (void) _dlapmt (($102_ = FALSE, &$102_), &nr_, n_, v_, ldv_, iwork_);
6185 for (p_ = 1; p_ <= nr_; (p_)++) {
6186 for (q_ = p_ + 1; q_ <= nr_; (q_)++) {
6187 rtmp_ = u_[q_ - 1 + ((*ldu_)) * ((p_ - 1))];
6188 u_[q_ - 1 + ((*ldu_)) * ((p_ - 1))] = u_[p_ - 1 + ((*ldu_)) * ((q_ - 1))];
6189 u_[p_ - 1 + ((*ldu_)) * ((q_ - 1))] = rtmp_;
6190 }
6191 }
6192 if ((nr_ < (*m_)) && ! ((wntuf_))) {
6193 (void) _dlaset (_dc_7, ($103_ = (*m_) - nr_, &$103_), &nr_, ($104_ = 0.0, &$104_), ($105_ = 0.0, &$105_), &u_[nr_ + 1 -
6194 1 + ((*ldu_)) * ((0))], ldu_);
6195 if (nr_ < n1_) {
6196 (void) _dlaset (_dc_7, &nr_, ($106_ = n1_ - nr_, &$106_), ($107_ = 0.0, &$107_), ($108_ = 0.0, &$108_), &u_[0 +
6197 ((*ldu_)) * ((nr_ + 1 - 1))], ldu_);
6198 (void) _dlaset (_dc_7, ($109_ = (*m_) - nr_, &$109_), ($110_ = n1_ - nr_, &$110_), ($111_ = 0.0, &$111_), ($112_ = 1.0,
6199 &$112_), &u_[nr_ + 1 - 1 + ((*ldu_)) * ((nr_ + 1 - 1))], ldu_);
6200 }
6201 }
6202 }
6203 else {
6204 optratio_ = 2;
6205 if (optratio_ * nr_ > (*n_)) {
6206 for (p_ = 1; p_ <= nr_; (p_)++) {
6207 for (q_ = p_; q_ <= (*n_); (q_)++) {
6208 v_[q_ - 1 + ((*ldv_)) * ((p_ - 1))] = a_[p_ - 1 + ((*lda_)) * ((q_ - 1))];
6209 }
6210 }
6211 if (nr_ > 1) {
6212 (void) _dlaset (_dc_0, ($113_ = nr_ - 1, &$113_), ($114_ = nr_ - 1, &$114_), ($115_ = 0.0, &$115_), ($116_ = 0.0,
6213 &$116_), &v_[0 + ((*ldv_)) * ((1))], ldv_);
6214 }
6215 (void) _dlaset (_dc_7, n_, ($117_ = (*n_) - nr_, &$117_), ($118_ = 0.0, &$118_), ($119_ = 0.0, &$119_), &v_[0 +
6216 ((*ldv_)) * ((nr_ + 1 - 1))], ldv_);
6217 (void) _dgesvd (_dc_30, _dc_7, n_, n_, v_, ldv_, s_, v_, ldv_, u_, ldu_, &work_[(*n_) + 1 - 1], ($120_ = (*lwork_) -
6218 (*n_), &$120_), info_);
6219 for (p_ = 1; p_ <= (*n_); (p_)++) {
6220 for (q_ = p_ + 1; q_ <= (*n_); (q_)++) {
6221 rtmp_ = v_[q_ - 1 + ((*ldv_)) * ((p_ - 1))];
6222 v_[q_ - 1 + ((*ldv_)) * ((p_ - 1))] = v_[p_ - 1 + ((*ldv_)) * ((q_ - 1))];
6223 v_[p_ - 1 + ((*ldv_)) * ((q_ - 1))] = rtmp_;
6224 }
6225 }
6226 (void) _dlapmt (($121_ = FALSE, &$121_), n_, n_, v_, ldv_, iwork_);
6227 for (p_ = 1; p_ <= (*n_); (p_)++) {
6228 for (q_ = p_ + 1; q_ <= (*n_); (q_)++) {
6229 rtmp_ = u_[q_ - 1 + ((*ldu_)) * ((p_ - 1))];
6230 u_[q_ - 1 + ((*ldu_)) * ((p_ - 1))] = u_[p_ - 1 + ((*ldu_)) * ((q_ - 1))];
6231 u_[p_ - 1 + ((*ldu_)) * ((q_ - 1))] = rtmp_;
6232 }
6233 }
6234 if (((*n_) < (*m_)) && ! ((wntuf_))) {
6235 (void) _dlaset (_dc_7, ($122_ = (*m_) - (*n_), &$122_), n_, ($123_ = 0.0, &$123_), ($124_ = 0.0, &$124_), &u_[(*n_) + 1
6236 - 1 + ((*ldu_)) * ((0))], ldu_);
6237 if ((*n_) < n1_) {
6238 (void) _dlaset (_dc_7, n_, ($125_ = n1_ - (*n_), &$125_), ($126_ = 0.0, &$126_), ($127_ = 0.0, &$127_), &u_[0 +
6239 ((*ldu_)) * (((*n_) + 1 - 1))], ldu_);
6240 (void) _dlaset (_dc_7, ($128_ = (*m_) - (*n_), &$128_), ($129_ = n1_ - (*n_), &$129_), ($130_ = 0.0, &$130_), ($131_ =
6241 1.0, &$131_), &u_[(*n_) + 1 - 1 + ((*ldu_)) * (((*n_) + 1 - 1))], ldu_);
6242 }
6243 }
6244 }
6245 else {
6246 for (p_ = 1; p_ <= nr_; (p_)++) {
6247 for (q_ = p_; q_ <= (*n_); (q_)++) {
6248 u_[q_ - 1 + ((*ldu_)) * ((nr_ + p_ - 1))] = a_[p_ - 1 + ((*lda_)) * ((q_ - 1))];
6249 }
6250 }
6251 if (nr_ > 1) {
6252 (void) _dlaset (_dc_0, ($132_ = nr_ - 1, &$132_), ($133_ = nr_ - 1, &$133_), ($134_ = 0.0, &$134_), ($135_ = 0.0,
6253 &$135_), &u_[0 + ((*ldu_)) * ((nr_ + 2 - 1))], ldu_);
6254 }
6255 (void) _dgeqrf (n_, &nr_, &u_[0 + ((*ldu_)) * ((nr_ + 1 - 1))], ldu_, &work_[(*n_) + 1 - 1], &work_[(*n_) + nr_ + 1 -
6256 1], ($136_ = (*lwork_) - (*n_) - nr_, &$136_), &ierr_);
6257 for (p_ = 1; p_ <= nr_; (p_)++) {
6258 for (q_ = 1; q_ <= (*n_); (q_)++) {
6259 v_[q_ - 1 + ((*ldv_)) * ((p_ - 1))] = u_[p_ - 1 + ((*ldu_)) * ((nr_ + q_ - 1))];
6260 }
6261 }
6262 (void) _dlaset (_dc_0, ($137_ = nr_ - 1, &$137_), ($138_ = nr_ - 1, &$138_), ($139_ = 0.0, &$139_), ($140_ = 0.0,
6263 &$140_), &v_[0 + ((*ldv_)) * ((1))], ldv_);
6264 (void) _dgesvd (_dc_52, _dc_30, &nr_, &nr_, v_, ldv_, s_, u_, ldu_, v_, ldv_, &work_[(*n_) + nr_ + 1 - 1], ($141_ =
6265 (*lwork_) - (*n_) - nr_, &$141_), info_);
6266 (void) _dlaset (_dc_7, ($142_ = (*n_) - nr_, &$142_), &nr_, ($143_ = 0.0, &$143_), ($144_ = 0.0, &$144_), &v_[nr_ + 1 -
6267 1 + ((*ldv_)) * ((0))], ldv_);
6268 (void) _dlaset (_dc_7, &nr_, ($145_ = (*n_) - nr_, &$145_), ($146_ = 0.0, &$146_), ($147_ = 0.0, &$147_), &v_[0 +
6269 ((*ldv_)) * ((nr_ + 1 - 1))], ldv_);
6270 (void) _dlaset (_dc_7, ($148_ = (*n_) - nr_, &$148_), ($149_ = (*n_) - nr_, &$149_), ($150_ = 0.0, &$150_), ($151_ =
6271 1.0, &$151_), &v_[nr_ + 1 - 1 + ((*ldv_)) * ((nr_ + 1 - 1))], ldv_);
6272 (void) _dormqr (_dc_15, _dc_26, n_, n_, &nr_, &u_[0 + ((*ldu_)) * ((nr_ + 1 - 1))], ldu_, &work_[(*n_) + 1 - 1], v_,
6273 ldv_, &work_[(*n_) + nr_ + 1 - 1], ($152_ = (*lwork_) - (*n_) - nr_, &$152_), &ierr_);
6274 (void) _dlapmt (($153_ = FALSE, &$153_), n_, n_, v_, ldv_, iwork_);
6275 if ((nr_ < (*m_)) && ! ((wntuf_))) {
6276 (void) _dlaset (_dc_7, ($154_ = (*m_) - nr_, &$154_), &nr_, ($155_ = 0.0, &$155_), ($156_ = 0.0, &$156_), &u_[nr_ + 1 -
6277 1 + ((*ldu_)) * ((0))], ldu_);
6278 if (nr_ < n1_) {
6279 (void) _dlaset (_dc_7, &nr_, ($157_ = n1_ - nr_, &$157_), ($158_ = 0.0, &$158_), ($159_ = 0.0, &$159_), &u_[0 +
6280 ((*ldu_)) * ((nr_ + 1 - 1))], ldu_);
6281 (void) _dlaset (_dc_7, ($160_ = (*m_) - nr_, &$160_), ($161_ = n1_ - nr_, &$161_), ($162_ = 0.0, &$162_), ($163_ = 1.0,
6282 &$163_), &u_[nr_ + 1 - 1 + ((*ldu_)) * ((nr_ + 1 - 1))], ldu_);
6283 }
6284 }
6285 }
6286 }
6287 }
6288 else {
6289 if (wntvr_ || (nr_ == (*n_))) {
6290 (void) _dlacpy (_dc_0, &nr_, n_, a_, lda_, v_, ldv_);
6291 if (nr_ > 1) {
6292 (void) _dlaset (_dc_1, ($164_ = nr_ - 1, &$164_), ($165_ = nr_ - 1, &$165_), ($166_ = 0.0, &$166_), ($167_ = 0.0,
6293 &$167_), &v_[1 + ((*ldv_)) * ((0))], ldv_);
6294 }
6295 (void) _dgesvd (_dc_52, _dc_30, &nr_, n_, v_, ldv_, s_, u_, ldu_, v_, ldv_, &work_[(*n_) + 1 - 1], ($168_ = (*lwork_) -
6296 (*n_), &$168_), info_);
6297 (void) _dlapmt (($169_ = FALSE, &$169_), &nr_, n_, v_, ldv_, iwork_);
6298 if ((nr_ < (*m_)) && ! ((wntuf_))) {
6299 (void) _dlaset (_dc_7, ($170_ = (*m_) - nr_, &$170_), &nr_, ($171_ = 0.0, &$171_), ($172_ = 0.0, &$172_), &u_[nr_ + 1 -
6300 1 + ((*ldu_)) * ((0))], ldu_);
6301 if (nr_ < n1_) {
6302 (void) _dlaset (_dc_7, &nr_, ($173_ = n1_ - nr_, &$173_), ($174_ = 0.0, &$174_), ($175_ = 0.0, &$175_), &u_[0 +
6303 ((*ldu_)) * ((nr_ + 1 - 1))], ldu_);
6304 (void) _dlaset (_dc_7, ($176_ = (*m_) - nr_, &$176_), ($177_ = n1_ - nr_, &$177_), ($178_ = 0.0, &$178_), ($179_ = 1.0,
6305 &$179_), &u_[nr_ + 1 - 1 + ((*ldu_)) * ((nr_ + 1 - 1))], ldu_);
6306 }
6307 }
6308 }
6309 else {
6310 optratio_ = 2;
6311 if (optratio_ * nr_ > (*n_)) {
6312 (void) _dlacpy (_dc_0, &nr_, n_, a_, lda_, v_, ldv_);
6313 if (nr_ > 1) {
6314 (void) _dlaset (_dc_1, ($180_ = nr_ - 1, &$180_), ($181_ = nr_ - 1, &$181_), ($182_ = 0.0, &$182_), ($183_ = 0.0,
6315 &$183_), &v_[1 + ((*ldv_)) * ((0))], ldv_);
6316 }
6317 (void) _dlaset (_dc_7, ($184_ = (*n_) - nr_, &$184_), n_, ($185_ = 0.0, &$185_), ($186_ = 0.0, &$186_), &v_[nr_ + 1 - 1
6318 + ((*ldv_)) * ((0))], ldv_);
6319 (void) _dgesvd (_dc_52, _dc_30, n_, n_, v_, ldv_, s_, u_, ldu_, v_, ldv_, &work_[(*n_) + 1 - 1], ($187_ = (*lwork_) -
6320 (*n_), &$187_), info_);
6321 (void) _dlapmt (($188_ = FALSE, &$188_), n_, n_, v_, ldv_, iwork_);
6322 if (((*n_) < (*m_)) && ! ((wntuf_))) {
6323 (void) _dlaset (_dc_7, ($189_ = (*m_) - (*n_), &$189_), n_, ($190_ = 0.0, &$190_), ($191_ = 0.0, &$191_), &u_[(*n_) + 1
6324 - 1 + ((*ldu_)) * ((0))], ldu_);
6325 if ((*n_) < n1_) {
6326 (void) _dlaset (_dc_7, n_, ($192_ = n1_ - (*n_), &$192_), ($193_ = 0.0, &$193_), ($194_ = 0.0, &$194_), &u_[0 +
6327 ((*ldu_)) * (((*n_) + 1 - 1))], ldu_);
6328 (void) _dlaset (_dc_7, ($195_ = (*m_) - (*n_), &$195_), ($196_ = n1_ - (*n_), &$196_), ($197_ = 0.0, &$197_), ($198_ =
6329 1.0, &$198_), &u_[(*n_) + 1 - 1 + ((*ldu_)) * (((*n_) + 1 - 1))], ldu_);
6330 }
6331 }
6332 }
6333 else {
6334 (void) _dlacpy (_dc_0, &nr_, n_, a_, lda_, &u_[nr_ + 1 - 1 + ((*ldu_)) * ((0))], ldu_);
6335 if (nr_ > 1) {
6336 (void) _dlaset (_dc_1, ($199_ = nr_ - 1, &$199_), ($200_ = nr_ - 1, &$200_), ($201_ = 0.0, &$201_), ($202_ = 0.0,
6337 &$202_), &u_[nr_ + 2 - 1 + ((*ldu_)) * ((0))], ldu_);
6338 }
6339 (void) _dgelqf (&nr_, n_, &u_[nr_ + 1 - 1 + ((*ldu_)) * ((0))], ldu_, &work_[(*n_) + 1 - 1], &work_[(*n_) + nr_ + 1 -
6340 1], ($203_ = (*lwork_) - (*n_) - nr_, &$203_), &ierr_);
6341 (void) _dlacpy (_dc_1, &nr_, &nr_, &u_[nr_ + 1 - 1 + ((*ldu_)) * ((0))], ldu_, v_, ldv_);
6342 if (nr_ > 1) {
6343 (void) _dlaset (_dc_0, ($204_ = nr_ - 1, &$204_), ($205_ = nr_ - 1, &$205_), ($206_ = 0.0, &$206_), ($207_ = 0.0,
6344 &$207_), &v_[0 + ((*ldv_)) * ((1))], ldv_);
6345 }
6346 (void) _dgesvd (_dc_52, _dc_30, &nr_, &nr_, v_, ldv_, s_, u_, ldu_, v_, ldv_, &work_[(*n_) + nr_ + 1 - 1], ($208_ =
6347 (*lwork_) - (*n_) - nr_, &$208_), info_);
6348 (void) _dlaset (_dc_7, ($209_ = (*n_) - nr_, &$209_), &nr_, ($210_ = 0.0, &$210_), ($211_ = 0.0, &$211_), &v_[nr_ + 1 -
6349 1 + ((*ldv_)) * ((0))], ldv_);
6350 (void) _dlaset (_dc_7, &nr_, ($212_ = (*n_) - nr_, &$212_), ($213_ = 0.0, &$213_), ($214_ = 0.0, &$214_), &v_[0 +
6351 ((*ldv_)) * ((nr_ + 1 - 1))], ldv_);
6352 (void) _dlaset (_dc_7, ($215_ = (*n_) - nr_, &$215_), ($216_ = (*n_) - nr_, &$216_), ($217_ = 0.0, &$217_), ($218_ =
6353 1.0, &$218_), &v_[nr_ + 1 - 1 + ((*ldv_)) * ((nr_ + 1 - 1))], ldv_);
6354 (void) _dormlq (_dc_15, _dc_2, n_, n_, &nr_, &u_[nr_ + 1 - 1 + ((*ldu_)) * ((0))], ldu_, &work_[(*n_) + 1 - 1], v_,
6355 ldv_, &work_[(*n_) + nr_ + 1 - 1], ($219_ = (*lwork_) - (*n_) - nr_, &$219_), &ierr_);
6356 (void) _dlapmt (($220_ = FALSE, &$220_), n_, n_, v_, ldv_, iwork_);
6357 if ((nr_ < (*m_)) && ! ((wntuf_))) {
6358 (void) _dlaset (_dc_7, ($221_ = (*m_) - nr_, &$221_), &nr_, ($222_ = 0.0, &$222_), ($223_ = 0.0, &$223_), &u_[nr_ + 1 -
6359 1 + ((*ldu_)) * ((0))], ldu_);
6360 if (nr_ < n1_) {
6361 (void) _dlaset (_dc_7, &nr_, ($224_ = n1_ - nr_, &$224_), ($225_ = 0.0, &$225_), ($226_ = 0.0, &$226_), &u_[0 +
6362 ((*ldu_)) * ((nr_ + 1 - 1))], ldu_);
6363 (void) _dlaset (_dc_7, ($227_ = (*m_) - nr_, &$227_), ($228_ = n1_ - nr_, &$228_), ($229_ = 0.0, &$229_), ($230_ = 1.0,
6364 &$230_), &u_[nr_ + 1 - 1 + ((*ldu_)) * ((nr_ + 1 - 1))], ldu_);
6365 }
6366 }
6367 }
6368 }
6369 }
6370 if (! (wntuf_)) {
6371 (void) _dormqr (_dc_1, _dc_2, m_, &n1_, n_, a_, lda_, work_, u_, ldu_, &work_[(*n_) + 1 - 1], ($231_ = (*lwork_) -
6372 (*n_), &$231_), &ierr_);
6373 }
6374 if (rowprm_ && ! (wntuf_)) {
6375 (void) _dlaswp (&n1_, u_, ldu_, &_k1, ($232_ = (*m_) - 1, &$232_), &iwork_[(*n_) + 1 - 1], &_km1);
6376 }
6377 }
6378 p_ = nr_;
6379 for (q_ = p_; q_ >= 1; (q_)--) {
6380 if (s_[q_ - 1] > 0.0) {
6381 goto _l4002;
6382 }
6383 nr_ = nr_ - 1;
6384 }
6385 _l4002:;
6386 if (nr_ < (*n_)) {
6387 (void) _dlaset (_dc_9, ($233_ = (*n_) - nr_, &$233_), &_k1, ($234_ = 0.0, &$234_), ($235_ = 0.0, &$235_), &s_[nr_ + 1 -
6388 1], n_);
6389 }
6390 if (ascaled_) {
6391 (void) _dlascl (_dc_9, &_k0, &_k0, ($236_ = 1.0, &$236_), ($237_ = sqrt ((real_8) ((*m_))), &$237_), &nr_, &_k1, s_,
6392 n_, &ierr_);
6393 }
6394 if (conda_) {
6395 rwork_[0] = sconda_;
6396 }
6397 rwork_[1] = p_ - nr_;
6398 (*numrank_) = nr_;
6399 _l0:;
6400 __calls[15].calls++;
6401 return 0;
6402 }
6403 int_4 _dgesvj (char _p_ joba_, char _p_ jobu_, char _p_ jobv_, int_4 _p_ m_, int_4 _p_ n_, real_8 _p_ a_, int_4 _p_
6404 lda_, real_8 _p_ sva_, int_4 _p_ mv_, real_8 _p_ v_, int_4 _p_ ldv_, real_8 _p_ work_, int_4 _p_ lwork_, int_4 _p_
6405 info_)
6406 { // ** body not listed **
7299 }
7300 int_4 _dgsvj0 (char _p_ jobv_, int_4 _p_ m_, int_4 _p_ n_, real_8 _p_ a_, int_4 _p_ lda_, real_8 _p_ d_, real_8 _p_
7301 sva_, int_4 _p_ mv_, real_8 _p_ v_, int_4 _p_ ldv_, real_8 _p_ eps_, real_8 _p_ sfmin_, real_8 _p_ tol_, int_4 _p_
7302 nsweep_, real_8 _p_ work_, int_4 _p_ lwork_, int_4 _p_ info_)
7303 { // ** body not listed **
7927 }
7928 int_4 _dgsvj1 (char _p_ jobv_, int_4 _p_ m_, int_4 _p_ n_, int_4 _p_ n1_, real_8 _p_ a_, int_4 _p_ lda_, real_8 _p_ d_,
7929 real_8 _p_ sva_, int_4 _p_ mv_, real_8 _p_ v_, int_4 _p_ ldv_, real_8 _p_ eps_, real_8 _p_ sfmin_, real_8 _p_ tol_,
7930 int_4 _p_ nsweep_, real_8 _p_ work_, int_4 _p_ lwork_, int_4 _p_ info_)
7931 { // ** body not listed **
8322 }
8323 logical_4 _disnan (real_8 _p_ din_)
8324 { // ** body not listed **
8329 }
8330 int_4 _dlabad (real_8 _p_ small_, real_8 _p_ large_)
8331 { // ** body not listed **
8338 }
8339 int_4 _dlabrd (int_4 _p_ m_, int_4 _p_ n_, int_4 _p_ nb_, real_8 _p_ a_, int_4 _p_ lda_, real_8 _p_ d_, real_8 _p_ e_,
8340 real_8 _p_ tauq_, real_8 _p_ taup_, real_8 _p_ x_, int_4 _p_ ldx_, real_8 _p_ y_, int_4 _p_ ldy_)
8341 { // ** body not listed **
8465 }
8466 int_4 _dlacn2 (int_4 _p_ n_, real_8 _p_ v_, real_8 _p_ x_, int_4 _p_ isgn_, real_8 _p_ est_, int_4 _p_ kase_, int_4 _p_
8467 isave_)
8468 { // ** body not listed **
8579 }
8580 int_4 _dlacpy (char _p_ uplo_, int_4 _p_ m_, int_4 _p_ n_, real_8 _p_ a_, int_4 _p_ lda_, real_8 _p_ b_, int_4 _p_ ldb_
8581 )
8582 { // ** body not listed **
8608 }
8609 int_4 _dlaed6 (int_4 _p_ kniter_, logical_4 _p_ orgati_, real_8 _p_ rho_, real_8 _p_ d_, real_8 _p_ z_, real_8 _p_
8610 finit_, real_8 _p_ tau_, int_4 _p_ info_)
8611 { // ** body not listed **
8812 }
8813 logical_4 _dlaisnan (real_8 _p_ din1_, real_8 _p_ din2_)
8814 { // ** body not listed **
8819 }
8820 int_4 _dlals0 (int_4 _p_ icompq_, int_4 _p_ nl_, int_4 _p_ nr_, int_4 _p_ sqre_, int_4 _p_ nrhs_, real_8 _p_ b_, int_4
8821 _p_ ldb_, real_8 _p_ bx_, int_4 _p_ ldbx_, int_4 _p_ perm_, int_4 _p_ givptr_, int_4 _p_ givcol_, int_4 _p_ ldgcol_,
8822 real_8 _p_ givnum_, int_4 _p_ ldgnum_, real_8 _p_ poles_, real_8 _p_ difl_, real_8 _p_ difr_, real_8 _p_ z_, int_4 _p_
8823 k_, real_8 _p_ c_, real_8 _p_ s_, real_8 _p_ work_, int_4 _p_ info_)
8824 { // ** body not listed **
9000 }
9001 int_4 _dlalsa (int_4 _p_ icompq_, int_4 _p_ smlsiz_, int_4 _p_ n_, int_4 _p_ nrhs_, real_8 _p_ b_, int_4 _p_ ldb_,
9002 real_8 _p_ bx_, int_4 _p_ ldbx_, real_8 _p_ u_, int_4 _p_ ldu_, real_8 _p_ vt_, int_4 _p_ k_, real_8 _p_ difl_, real_8
9003 _p_ difr_, real_8 _p_ z_, real_8 _p_ poles_, int_4 _p_ givptr_, int_4 _p_ givcol_, int_4 _p_ ldgcol_, int_4 _p_ perm_,
9004 real_8 _p_ givnum_, real_8 _p_ c_, real_8 _p_ s_, real_8 _p_ work_, int_4 _p_ iwork_, int_4 _p_ info_)
9005 { // ** body not listed **
9151 }
9152 int_4 _dlalsd (char _p_ uplo_, int_4 _p_ smlsiz_, int_4 _p_ n_, int_4 _p_ nrhs_, real_8 _p_ d_, real_8 _p_ e_, real_8
9153 _p_ b_, int_4 _p_ ldb_, real_8 _p_ rcond_, int_4 _p_ rank_, real_8 _p_ work_, int_4 _p_ iwork_, int_4 _p_ info_)
9154 { // ** body not listed **
9389 }
9390 int_4 _dlamrg (int_4 _p_ n1_, int_4 _p_ n2_, real_8 _p_ a_, int_4 _p_ dtrd1_, int_4 _p_ dtrd2_, int_4 _p_ index_)
9391 { // ** body not listed **
9440 }
9441 real_8 _dlange (char _p_ norm_, int_4 _p_ m_, int_4 _p_ n_, real_8 _p_ a_, int_4 _p_ lda_, real_8 _p_ work_)
9442 { // ** body not listed **
9504 }
9505 real_8 _dlanst (char _p_ norm_, int_4 _p_ n_, real_8 _p_ d_, real_8 _p_ e_)
9506 { // ** body not listed **
9559 }
9560 int_4 _dlapmt (logical_4 _p_ forwrd_, int_4 _p_ m_, int_4 _p_ n_, real_8 _p_ x_, int_4 _p_ ldx_, int_4 _p_ k_)
9561 { // ** body not listed **
9619 }
9620 real_8 _dlapy2 (real_8 _p_ x_, real_8 _p_ y_)
9621 { // ** body not listed **
9648 }
9649 int_4 _dlaqp2 (int_4 _p_ m_, int_4 _p_ n_, int_4 _p_ offset_, real_8 _p_ a_, int_4 _p_ lda_, int_4 _p_ jpvt_, real_8
9650 _p_ tau_, real_8 _p_ vn1_, real_8 _p_ vn2_, real_8 _p_ work_)
9651 { // ** body not listed **
9711 }
9712 int_4 _dlaqps (int_4 _p_ m_, int_4 _p_ n_, int_4 _p_ offset_, int_4 _p_ nb_, int_4 _p_ kb_, real_8 _p_ a_, int_4 _p_
9713 lda_, int_4 _p_ jpvt_, real_8 _p_ tau_, real_8 _p_ vn1_, real_8 _p_ vn2_, real_8 _p_ auxv_, real_8 _p_ f_, int_4 _p_
9714 ldf_)
9715 { // ** body not listed **
9813 }
9814 int_4 _dlarfb (char _p_ side_, char _p_ trans_, char _p_ direct_, char _p_ storev_, int_4 _p_ m_, int_4 _p_ n_, int_4
9815 _p_ k_, real_8 _p_ v_, int_4 _p_ ldv_, real_8 _p_ t_, int_4 _p_ ldt_, real_8 _p_ c_, int_4 _p_ ldc_, real_8 _p_ work_,
9816 int_4 _p_ ldwork_)
9817 { // ** body not listed **
10036 }
10037 int_4 _dlarf (char _p_ side_, int_4 _p_ m_, int_4 _p_ n_, real_8 _p_ v_, int_4 _p_ incv_, real_8 _p_ tau_, real_8 _p_
10038 c_, int_4 _p_ ldc_, real_8 _p_ work_)
10039 { // ** body not listed **
10087 }
10088 int_4 _dlarfg (int_4 _p_ n_, real_8 _p_ alpha_, real_8 _p_ x_, int_4 _p_ incx_, real_8 _p_ tau_)
10089 { // ** body not listed **
10132 }
10133 int_4 _dlarft (char _p_ direct_, char _p_ storev_, int_4 _p_ n_, int_4 _p_ k_, real_8 _p_ v_, int_4 _p_ ldv_, real_8
10134 _p_ tau_, real_8 _p_ t_, int_4 _p_ ldt_)
10135 { // ** body not listed **
10248 }
10249 int_4 _dlartg (real_8 _p_ f_, real_8 _p_ g_, real_8 _p_ cs_, real_8 _p_ sn_, real_8 _p_ r_)
10250 { // ** body not listed **
10319 }
10320 int_4 _dlas2 (real_8 _p_ f_, real_8 _p_ g_, real_8 _p_ h_, real_8 _p_ ssmin_, real_8 _p_ ssmax_)
10321 { // ** body not listed **
10365 }
10366 int_4 _dlascl (char _p_ type_, int_4 _p_ kl_, int_4 _p_ ku_, real_8 _p_ cfrom_, real_8 _p_ cto_, int_4 _p_ m_, int_4
10367 _p_ n_, real_8 _p_ a_, int_4 _p_ lda_, int_4 _p_ info_)
10368 { // ** body not listed **
10534 }
10535 int_4 _dlasd0 (int_4 _p_ n_, int_4 _p_ sqre_, real_8 _p_ d_, real_8 _p_ e_, real_8 _p_ u_, int_4 _p_ ldu_, real_8 _p_
10536 vt_, int_4 _p_ ldvt_, int_4 _p_ smlsiz_, int_4 _p_ iwork_, real_8 _p_ work_, int_4 _p_ info_)
10537 { // ** body not listed **
10648 }
10649 int_4 _dlasd1 (int_4 _p_ nl_, int_4 _p_ nr_, int_4 _p_ sqre_, real_8 _p_ d_, real_8 _p_ alpha_, real_8 _p_ beta_,
10650 real_8 _p_ u_, int_4 _p_ ldu_, real_8 _p_ vt_, int_4 _p_ ldvt_, int_4 _p_ idxq_, int_4 _p_ iwork_, real_8 _p_ work_,
10651 int_4 _p_ info_)
10652 { // ** body not listed **
10712 }
10713 int_4 _dlasd2 (int_4 _p_ nl_, int_4 _p_ nr_, int_4 _p_ sqre_, int_4 _p_ k_, real_8 _p_ d_, real_8 _p_ z_, real_8 _p_
10714 alpha_, real_8 _p_ beta_, real_8 _p_ u_, int_4 _p_ ldu_, real_8 _p_ vt_, int_4 _p_ ldvt_, real_8 _p_ dsigma_, real_8
10715 _p_ u2_, int_4 _p_ ldu2_, real_8 _p_ vt2_, int_4 _p_ ldvt2_, int_4 _p_ idxp_, int_4 _p_ idx_, int_4 _p_ idxc_, int_4
10716 _p_ idxq_, int_4 _p_ coltyp_, int_4 _p_ info_)
10717 { // ** body not listed **
10945 }
10946 int_4 _dlasd3 (int_4 _p_ nl_, int_4 _p_ nr_, int_4 _p_ sqre_, int_4 _p_ k_, real_8 _p_ d_, real_8 _p_ q_, int_4 _p_
10947 ldq_, real_8 _p_ dsigma_, real_8 _p_ u_, int_4 _p_ ldu_, real_8 _p_ u2_, int_4 _p_ ldu2_, real_8 _p_ vt_, int_4 _p_
10948 ldvt_, real_8 _p_ vt2_, int_4 _p_ ldvt2_, int_4 _p_ idxc_, int_4 _p_ ctot_, real_8 _p_ z_, int_4 _p_ info_)
10949 { // ** body not listed **
11114 }
11115 int_4 _dlasd4 (int_4 _p_ n_, int_4 _p_ i_, real_8 _p_ d_, real_8 _p_ z_, real_8 _p_ delta_, real_8 _p_ rho_, real_8 _p_
11116 sigma_, real_8 _p_ work_, int_4 _p_ info_)
11117 { // ** body not listed **
11794 }
11795 int_4 _dlasd5 (int_4 _p_ i_, real_8 _p_ d_, real_8 _p_ z_, real_8 _p_ delta_, real_8 _p_ rho_, real_8 _p_ dsigma_,
11796 real_8 _p_ work_)
11797 { // ** body not listed **
11849 }
11850 int_4 _dlasd6 (int_4 _p_ icompq_, int_4 _p_ nl_, int_4 _p_ nr_, int_4 _p_ sqre_, real_8 _p_ d_, real_8 _p_ vf_, real_8
11851 _p_ vl_, real_8 _p_ alpha_, real_8 _p_ beta_, int_4 _p_ idxq_, int_4 _p_ perm_, int_4 _p_ givptr_, int_4 _p_ givcol_,
11852 int_4 _p_ ldgcol_, real_8 _p_ givnum_, int_4 _p_ ldgnum_, real_8 _p_ poles_, real_8 _p_ difl_, real_8 _p_ difr_, real_8
11853 _p_ z_, int_4 _p_ k_, real_8 _p_ c_, real_8 _p_ s_, real_8 _p_ work_, int_4 _p_ iwork_, int_4 _p_ info_)
11854 { // ** body not listed **
11921 }
11922 int_4 _dlasd7 (int_4 _p_ icompq_, int_4 _p_ nl_, int_4 _p_ nr_, int_4 _p_ sqre_, int_4 _p_ k_, real_8 _p_ d_, real_8
11923 _p_ z_, real_8 _p_ zw_, real_8 _p_ vf_, real_8 _p_ vfw_, real_8 _p_ vl_, real_8 _p_ vlw_, real_8 _p_ alpha_, real_8 _p_
11924 beta_, real_8 _p_ dsigma_, int_4 _p_ idx_, int_4 _p_ idxp_, int_4 _p_ idxq_, int_4 _p_ perm_, int_4 _p_ givptr_, int_4
11925 _p_ givcol_, int_4 _p_ ldgcol_, real_8 _p_ givnum_, int_4 _p_ ldgnum_, real_8 _p_ c_, real_8 _p_ s_, int_4 _p_ info_)
11926 { // ** body not listed **
12119 }
12120 int_4 _dlasd8 (int_4 _p_ icompq_, int_4 _p_ k_, real_8 _p_ d_, real_8 _p_ z_, real_8 _p_ vf_, real_8 _p_ vl_, real_8
12121 _p_ difl_, real_8 _p_ difr_, int_4 _p_ lddifr_, real_8 _p_ dsigma_, real_8 _p_ work_, int_4 _p_ info_)
12122 { // ** body not listed **
12214 }
12215 int_4 _dlasda (int_4 _p_ icompq_, int_4 _p_ smlsiz_, int_4 _p_ n_, int_4 _p_ sqre_, real_8 _p_ d_, real_8 _p_ e_,
12216 real_8 _p_ u_, int_4 _p_ ldu_, real_8 _p_ vt_, int_4 _p_ k_, real_8 _p_ difl_, real_8 _p_ difr_, real_8 _p_ z_, real_8
12217 _p_ poles_, int_4 _p_ givptr_, int_4 _p_ givcol_, int_4 _p_ ldgcol_, int_4 _p_ perm_, real_8 _p_ givnum_, real_8 _p_ c_
12218 , real_8 _p_ s_, real_8 _p_ work_, int_4 _p_ iwork_, int_4 _p_ info_)
12219 { // ** body not listed **
12396 }
12397 int_4 _dlasdq (char _p_ uplo_, int_4 _p_ sqre_, int_4 _p_ n_, int_4 _p_ ncvt_, int_4 _p_ nru_, int_4 _p_ ncc_, real_8
12398 _p_ d_, real_8 _p_ e_, real_8 _p_ vt_, int_4 _p_ ldvt_, real_8 _p_ u_, int_4 _p_ ldu_, real_8 _p_ c_, int_4 _p_ ldc_,
12399 real_8 _p_ work_, int_4 _p_ info_)
12400 { // ** body not listed **
12540 }
12541 int_4 _dlasdt (int_4 _p_ n_, int_4 _p_ lvl_, int_4 _p_ nd_, int_4 _p_ inode_, int_4 _p_ ndiml_, int_4 _p_ ndimr_, int_4
12542 _p_ msub_)
12543 { // ** body not listed **
12574 }
12575 int_4 _dlaset (char _p_ uplo_, int_4 _p_ m_, int_4 _p_ n_, real_8 _p_ alpha_, real_8 _p_ beta_, real_8 _p_ a_, int_4
12576 _p_ lda_)
12577 { // ** body not listed **
12606 }
12607 int_4 _dlasq1 (int_4 _p_ n_, real_8 _p_ d_, real_8 _p_ e_, real_8 _p_ work_, int_4 _p_ info_)
12608 { // ** body not listed **
12676 }
12677 int_4 _dlasq2 (int_4 _p_ n_, real_8 _p_ z_, int_4 _p_ info_)
12678 { // ** body not listed **
13009 }
13010 int_4 _dlasq3 (int_4 _p_ i0_, int_4 _p_ n0_, real_8 _p_ z_, int_4 _p_ pp_, real_8 _p_ dmin_, real_8 _p_ sigma_, real_8
13011 _p_ desig_, real_8 _p_ qmax_, int_4 _p_ nfail_, int_4 _p_ iter_, int_4 _p_ ndiv_, logical_4 _p_ ieee_, int_4 _p_ ttype_
13012 , real_8 _p_ dmin1_, real_8 _p_ dmin2_, real_8 _p_ dn_, real_8 _p_ dn1_, real_8 _p_ dn2_, real_8 _p_ g_, real_8 _p_
13013 tau_)
13014 { // ** body not listed **
13163 }
13164 int_4 _dlasq4 (int_4 _p_ i0_, int_4 _p_ n0_, real_8 _p_ z_, int_4 _p_ pp_, int_4 _p_ n0in_, real_8 _p_ dmin_, real_8
13165 _p_ dmin1_, real_8 _p_ dmin2_, real_8 _p_ dn_, real_8 _p_ dn1_, real_8 _p_ dn2_, real_8 _p_ tau_, int_4 _p_ ttype_,
13166 real_8 _p_ g_)
13167 { // ** body not listed **
13392 }
13393 int_4 _dlasq5 (int_4 _p_ i0_, int_4 _p_ n0_, real_8 _p_ z_, int_4 _p_ pp_, real_8 _p_ tau_, real_8 _p_ sigma_, real_8
13394 _p_ dmin_, real_8 _p_ dmin1_, real_8 _p_ dmin2_, real_8 _p_ dn_, real_8 _p_ dnm1_, real_8 _p_ dnm2_, logical_4 _p_
13395 ieee_, real_8 _p_ eps_)
13396 { // ** body not listed **
13621 }
13622 int_4 _dlasq6 (int_4 _p_ i0_, int_4 _p_ n0_, real_8 _p_ z_, int_4 _p_ pp_, real_8 _p_ dmin_, real_8 _p_ dmin1_, real_8
13623 _p_ dmin2_, real_8 _p_ dn_, real_8 _p_ dnm1_, real_8 _p_ dnm2_)
13624 { // ** body not listed **
13726 }
13727 int_4 _dlasr (char _p_ side_, char _p_ pivot_, char _p_ direct_, int_4 _p_ m_, int_4 _p_ n_, real_8 _p_ c_, real_8 _p_
13728 s_, real_8 _p_ a_, int_4 _p_ lda_)
13729 { // ** body not listed **
13935 }
13936 int_4 _dlasrt (char _p_ id_, int_4 _p_ n_, real_8 _p_ d_, int_4 _p_ info_)
13937 { // ** body not listed **
14111 }
14112 int_4 _dlassq (int_4 _p_ n_, real_8 _p_ x_, int_4 _p_ incx_, real_8 _p_ scale_, real_8 _p_ sumsq_)
14113 { // ** body not listed **
14134 }
14135 int_4 _dlasv2 (real_8 _p_ f_, real_8 _p_ g_, real_8 _p_ h_, real_8 _p_ ssmin_, real_8 _p_ ssmax_, real_8 _p_ snr_,
14136 real_8 _p_ csr_, real_8 _p_ snl_, real_8 _p_ csl_)
14137 { // ** body not listed **
14252 }
14253 int_4 _dlaswp (int_4 _p_ n_, real_8 _p_ a_, int_4 _p_ lda_, int_4 _p_ k1_, int_4 _p_ k2_, int_4 _p_ ipiv_, int_4 _p_
14254 incx_)
14255 { // ** body not listed **
14308 }
14309 int_4 _dlatrs (char _p_ uplo_, char _p_ trans_, char _p_ diag_, char _p_ normin_, int_4 _p_ n_, real_8 _p_ a_, int_4
14310 _p_ lda_, real_8 _p_ x_, real_8 _p_ scale_, real_8 _p_ cnorm_, int_4 _p_ info_)
14311 { // ** body not listed **
14659 }
14660 int_4 _dorg2r (int_4 _p_ m_, int_4 _p_ n_, int_4 _p_ k_, real_8 _p_ a_, int_4 _p_ lda_, real_8 _p_ tau_, real_8 _p_
14661 work_, int_4 _p_ info_)
14662 { // ** body not listed **
14711 }
14712 int_4 _dorgbr (char _p_ vect_, int_4 _p_ m_, int_4 _p_ n_, int_4 _p_ k_, real_8 _p_ a_, int_4 _p_ lda_, real_8 _p_ tau_
14713 , real_8 _p_ work_, int_4 _p_ lwork_, int_4 _p_ info_)
14714 { // ** body not listed **
14828 }
14829 int_4 _dorgl2 (int_4 _p_ m_, int_4 _p_ n_, int_4 _p_ k_, real_8 _p_ a_, int_4 _p_ lda_, real_8 _p_ tau_, real_8 _p_
14830 work_, int_4 _p_ info_)
14831 { // ** body not listed **
14884 }
14885 int_4 _dorglq (int_4 _p_ m_, int_4 _p_ n_, int_4 _p_ k_, real_8 _p_ a_, int_4 _p_ lda_, real_8 _p_ tau_, real_8 _p_
14886 work_, int_4 _p_ lwork_, int_4 _p_ info_)
14887 { // ** body not listed **
14976 }
14977 int_4 _dorgqr (int_4 _p_ m_, int_4 _p_ n_, int_4 _p_ k_, real_8 _p_ a_, int_4 _p_ lda_, real_8 _p_ tau_, real_8 _p_
14978 work_, int_4 _p_ lwork_, int_4 _p_ info_)
14979 { // ** body not listed **
15068 }
15069 int_4 _dorm2r (char _p_ side_, char _p_ trans_, int_4 _p_ m_, int_4 _p_ n_, int_4 _p_ k_, real_8 _p_ a_, int_4 _p_ lda_
15070 , real_8 _p_ tau_, real_8 _p_ c_, int_4 _p_ ldc_, real_8 _p_ work_, int_4 _p_ info_)
15071 { // ** body not listed **
15151 }
15152 int_4 _dormbr (char _p_ vect_, char _p_ side_, char _p_ trans_, int_4 _p_ m_, int_4 _p_ n_, int_4 _p_ k_, real_8 _p_ a_
15153 , int_4 _p_ lda_, real_8 _p_ tau_, real_8 _p_ c_, int_4 _p_ ldc_, real_8 _p_ work_, int_4 _p_ lwork_, int_4 _p_ info_)
15154 { // ** body not listed **
15289 }
15290 int_4 _dorml2 (char _p_ side_, char _p_ trans_, int_4 _p_ m_, int_4 _p_ n_, int_4 _p_ k_, real_8 _p_ a_, int_4 _p_ lda_
15291 , real_8 _p_ tau_, real_8 _p_ c_, int_4 _p_ ldc_, real_8 _p_ work_, int_4 _p_ info_)
15292 { // ** body not listed **
15372 }
15373 int_4 _dormlq (char _p_ side_, char _p_ trans_, int_4 _p_ m_, int_4 _p_ n_, int_4 _p_ k_, real_8 _p_ a_, int_4 _p_ lda_
15374 , real_8 _p_ tau_, real_8 _p_ c_, int_4 _p_ ldc_, real_8 _p_ work_, int_4 _p_ lwork_, int_4 _p_ info_)
15375 { // ** body not listed **
15493 }
15494 int_4 _dormqr (char _p_ side_, char _p_ trans_, int_4 _p_ m_, int_4 _p_ n_, int_4 _p_ k_, real_8 _p_ a_, int_4 _p_ lda_
15495 , real_8 _p_ tau_, real_8 _p_ c_, int_4 _p_ ldc_, real_8 _p_ work_, int_4 _p_ lwork_, int_4 _p_ info_)
15496 { // ** body not listed **
15607 }
15608 int_4 _dpocon (char _p_ uplo_, int_4 _p_ n_, real_8 _p_ a_, int_4 _p_ lda_, real_8 _p_ anorm_, real_8 _p_ rcond_,
15609 real_8 _p_ work_, int_4 _p_ iwork_, int_4 _p_ info_)
15610 { // ** body not listed **
15679 }
15680 int_4 _drscl (int_4 _p_ n_, real_8 _p_ sa_, real_8 _p_ sx_, int_4 _p_ incx_)
15681 { // ** body not listed **
15718 }
15719 int_4 _ieeeck (int_4 _p_ ispec_, real_4 _p_ zero_, real_4 _p_ one_)
15720 { // ** body not listed **
15800 }
15801 int_4 _iladlc (int_4 _p_ m_, int_4 _p_ n_, real_8 _p_ a_, int_4 _p_ lda_)
15802 { // ** body not listed **
15823 }
15824 int_4 _iladlr (int_4 _p_ m_, int_4 _p_ n_, real_8 _p_ a_, int_4 _p_ lda_)
15825 { // ** body not listed **
15846 }
15847 int_4 _ilaenv (int_4 _p_ ispec_, char _p_ name_, char _p_ opts_, int_4 _p_ n1_, int_4 _p_ n2_, int_4 _p_ n3_, int_4 _p_
15848 n4_)
15849 { // ** body not listed **
16399 }
16400 int_4 _iparmq (int_4 _p_ ispec_, char _p_ name_, char _p_ opts_, int_4 _p_ n_, int_4 _p_ ilo_, int_4 _p_ ihi_, int_4
16401 _p_ lwork_)
16402 { // ** body not listed **
16516 }
© 2002-2025 J.M. van der Veer (jmvdveer@xs4all.nl)
|