File: intdgeqrf.f

package info (click to toggle)
scilab 2.6-4
  • links: PTS
  • area: non-free
  • in suites: woody
  • size: 54,632 kB
  • ctags: 40,267
  • sloc: ansic: 267,851; fortran: 166,549; sh: 10,005; makefile: 4,119; tcl: 1,070; cpp: 233; csh: 143; asm: 135; perl: 130; java: 39
file content (42 lines) | stat: -rw-r--r-- 1,015 bytes parent folder | download | duplicates (4)
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
      subroutine intdgeqrf(fname)

c     [A,TAU]=dgeqrf(A)

      include 'stack.h'
      logical getrhsvar,createvar
      logical checklhs,checkrhs
      character fname*(*)
c
       minrhs=1
       maxrhs=1
       minlhs=1
       maxlhs=2
c
       if(.not.checkrhs(fname,minrhs,maxrhs)) return
       if(.not.checklhs(fname,minlhs,maxlhs)) return

       if(.not.getrhsvar(1,'d', M, N, lA)) return
       if(.not.createvar(2,'d', 1, min(M,N), ltau)) return
       LWORKMIN = MAX(1,N)
       LWORK=maxvol(3,'d')
       if(LWORK.le.LWORKMIN) then
         buf='dgeqrf'//': not enough memory (use stacksize)'
         call error(998)
         return
      endif
      if(.not.createvar(3,'d',1,LWORK,lDWORK)) return

      call DGEQRF( M, N, stk(lA), M, stk(lTAU), stk(lDWORK),
     $     LWORK, INFO )
c     SUBROUTINE DGEQRF( M, N, A, LDA, TAU, WORK, LWORK, INFO )
       if(info.ne.0) then
         call errorinfo("dgeqrf",info)
         return
       endif
       lhsvar(1)=1
       lhsvar(2)=2
c
       end