Blame


1 5cedca1b 2004-05-15 devnull #include "e.h"
2 5cedca1b 2004-05-15 devnull
3 5cedca1b 2004-05-15 devnull void sqrt(int p2)
4 5cedca1b 2004-05-15 devnull {
5 5cedca1b 2004-05-15 devnull static int af = 0;
6 5cedca1b 2004-05-15 devnull int nps; /* point size for radical */
7 5cedca1b 2004-05-15 devnull double radscale = 0.95;
8 5cedca1b 2004-05-15 devnull
9 5cedca1b 2004-05-15 devnull if (ttype == DEVPOST)
10 5cedca1b 2004-05-15 devnull radscale = 1.05;
11 5cedca1b 2004-05-15 devnull nps = ps * radscale * eht[p2] / EM(1.0,ps) + 0.99; /* kludgy */
12 5cedca1b 2004-05-15 devnull nps = max(EFFPS(nps), ps);
13 5cedca1b 2004-05-15 devnull yyval = p2;
14 5cedca1b 2004-05-15 devnull if (ttype == DEVCAT || ttype == DEVAPS)
15 5cedca1b 2004-05-15 devnull eht[yyval] = EM(1.2, nps);
16 5cedca1b 2004-05-15 devnull else if (ttype == DEVPOST)
17 5cedca1b 2004-05-15 devnull eht[yyval] = EM(1.15, nps);
18 5cedca1b 2004-05-15 devnull else /* DEV202, DEVPOST */
19 5cedca1b 2004-05-15 devnull eht[yyval] = EM(1.15, nps);
20 5cedca1b 2004-05-15 devnull dprintf(".\tS%d <- sqrt S%d;b=%g, h=%g, nps=%d\n",
21 5cedca1b 2004-05-15 devnull yyval, p2, ebase[yyval], eht[yyval], nps);
22 5cedca1b 2004-05-15 devnull printf(".as %d \\|\n", yyval);
23 5cedca1b 2004-05-15 devnull nrwid(p2, ps, p2);
24 5cedca1b 2004-05-15 devnull if (af++ == 0)
25 5cedca1b 2004-05-15 devnull printf(".af 10 01\n"); /* make it two digits when it prints */
26 5cedca1b 2004-05-15 devnull printf(".nr 10 %.3fu*\\n(.su/10\n", 9.2*eht[p2]); /* this nonsense */
27 5cedca1b 2004-05-15 devnull /* guesses point size corresponding to height of stuff */
28 5cedca1b 2004-05-15 devnull printf(".ds %d \\v'%gm'\\s(\\n(10", yyval, REL(ebase[p2],ps));
29 5cedca1b 2004-05-15 devnull if (ttype == DEVCAT || ttype == DEVAPS)
30 5cedca1b 2004-05-15 devnull printf("\\v'-.2m'\\(sr\\l'\\n(%du\\(rn'\\v'.2m'", p2);
31 5cedca1b 2004-05-15 devnull else /* DEV202, DEVPOST so far */
32 5cedca1b 2004-05-15 devnull printf("\\(sr\\l'\\n(%du\\(rn'", p2);
33 5cedca1b 2004-05-15 devnull printf("\\s0\\v'%gm'\\h'-\\n(%du'\\^\\*(%d\n", REL(-ebase[p2],ps), p2, p2);
34 5cedca1b 2004-05-15 devnull lfont[yyval] = rfont[yyval] = ROM;
35 5cedca1b 2004-05-15 devnull }