File: wsqrt.f

package info (click to toggle)
scilab 2.4-1
  • links: PTS
  • area: non-free
  • in suites: potato, slink
  • size: 55,196 kB
  • ctags: 38,019
  • sloc: ansic: 231,970; fortran: 148,976; tcl: 7,099; makefile: 4,585; sh: 2,978; csh: 154; cpp: 101; asm: 39; sed: 5
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