File: wsqrt.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 (15 lines) | stat: -rw-r--r-- 466 bytes parent folder | download | duplicates (2)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
      subroutine wsqrt(xr,xi,yr,yi)
c     Copyright INRIA
      double precision xr,xi,yr,yi,s,tr,ti,pythag
c     y = sqrt(x) with yr .ge. 0.0 and sign(yi) .eq. sign(xi)
c
      tr = xr
      ti = xi
      s = sqrt(0.50d+0*(pythag(tr,ti) + abs(tr)))
      if (tr .ge. 0.0d+0) yr = s
      if (ti .lt. 0.0d+0) s = -s
      if (tr .le. 0.0d+0) yi = s
      if (tr .lt. 0.0d+0) yr = 0.50d+0*(ti/yi)
      if (tr .gt. 0.0d+0) yi = 0.50d+0*(ti/yr)
      return
      end