UNPKG

582 Btext/coffeescriptView Raw
1###
2 Return the leading coefficient of a polynomial.
3
4Example
5
6 leading(5x^2+x+1,x)
7
8Result
9
10 5
11
12The result is undefined if P is not a polynomial.
13###
14
15Eval_leading = ->
16 push(cadr(p1))
17 Eval()
18 push(caddr(p1))
19 Eval()
20 p1 = pop()
21 if (p1 == symbol(NIL))
22 guess()
23 else
24 push(p1)
25 leading()
26
27#define P p1
28#define X p2
29#define N p3
30
31leading = ->
32 save()
33
34 p2 = pop()
35 p1 = pop()
36
37 push(p1) # N = degree of P
38 push(p2)
39 degree()
40 p3 = pop()
41
42 push(p1) # divide through by X ^ N
43 push(p2)
44 push(p3)
45 power()
46 divide()
47
48 push(p2) # remove terms that depend on X
49 filter()
50
51 restore()