/* tcsqrt.c CCMATH mathematics library source code.
*
* Copyright (C) 2000 Daniel A. Atkinson All rights reserved.
* This code may be redistributed under the terms of the GNU library
* public license (LGPL). ( See the lgpl.license file for details.)
* ------------------------------------------------------------------------
*/
/*
Test: csqrt
Uses: cmul
interactive input with 'tcsqrt'
input from file with 'tcsqrt data/csqrt.dat'
*/
#include "ccmath.h"
void main(int na,char **av)
{ Cpx z,f; FILE *fp;
if(na>1) fp=fopen(*++av,"r");
while(1){
if(na==1){
printf(" z? "); /* enter Ctrl-Z to terminate input */
if(scanf("%lf %lf",&z.re,&z.im)==EOF) break;
}
else{ if(fscanf(fp,"%lf %lf",&z.re,&z.im)==EOF) break;
printf(" z=(%f, %f)\n",z.re,z.im);
}
f=csqrt(z);
printf(" sqrt=(%f, %f)\n",f.re,f.im);
f=cmul(f,f);
printf(" check=(%f, %f)\n",f.re,f.im);
}
}
/* Test output
z=(1.000000, 1.000000)
sqrt=(1.098684, 0.455090)
check=(1.000000, 1.000000)
z=(-1.000000, 0.500000)
sqrt=(0.242934, 1.029086)
check=(-1.000000, 0.500000)
z=(-1.000000, -0.500000)
sqrt=(0.242934, -1.029086)
check=(-1.000000, -0.500000)
z=(2.000000, -1.000000)
sqrt=(1.455347, -0.343561)
check=(2.000000, -1.000000)
*/
syntax highlighted by Code2HTML, v. 0.9.1