xref: /csrg-svn/old/eqn/common_source/sqrt.c (revision 11023)
1 /*	sqrt.c	4.2	83/02/12	*/
2 
3 # include "e.h"
4 
5 sqrt(p2) int p2; {
6 #ifndef NEQN
7 	int nps;
8 
9 	nps = EFFPS(((eht[p2]*9)/10+5)/6);
10 #endif NEQN
11 	yyval = p2;
12 #ifndef NEQN
13 	eht[yyval] = VERT( (nps*6*12)/10 );
14 	if(dbg)printf(".\tsqrt: S%d <- S%d;b=%d, h=%d\n",
15 		yyval, p2, ebase[yyval], eht[yyval]);
16 	if (rfont[yyval] == ITAL)
17 		printf(".as %d \\|\n", yyval);
18 #endif NEQN
19 	nrwid(p2, ps, p2);
20 #ifndef NEQN
21 	printf(".ds %d \\v'%du'\\s%d\\v'-.2m'\\(sr\\l'\\n(%du\\(rn'\\v'.2m'\\s%d",
22 		yyval, ebase[p2], nps, p2, ps);
23 	printf("\\v'%du'\\h'-\\n(%du'\\*(%d\n", -ebase[p2], p2, p2);
24 	lfont[yyval] = ROM;
25 #else NEQN
26 	printf(".ds %d \\v'%du'\\e\\L'%du'\\l'\\n(%du'",
27 		p2, ebase[p2], -eht[p2], p2);
28 	printf("\\v'%du'\\h'-\\n(%du'\\*(%d\n", eht[p2]-ebase[p2], p2, p2);
29 	eht[p2] += VERT(1);
30 	if(dbg)printf(".\tsqrt: S%d <- S%d;b=%d, h=%d\n",
31 		p2, p2, ebase[p2], eht[p2]);
32 #endif NEQN
33 }
34