UNPKG

774 Btext/coffeescriptView Raw
1### denominator =====================================================================
2
3Tags
4----
5scripting, JS, internal, treenode, general concept
6
7Parameters
8----------
9x
10
11General description
12-------------------
13Returns the denominator of expression x.
14
15###
16
17
18Eval_denominator = ->
19 push(cadr(p1))
20 Eval()
21 denominator()
22
23denominator = ->
24 h = 0
25
26 save()
27
28 p1 = pop()
29
30 if (car(p1) == symbol(ADD))
31 push(p1)
32 rationalize()
33 p1 = pop()
34
35 if (car(p1) == symbol(MULTIPLY))
36 h = tos
37 p1 = cdr(p1)
38 while (iscons(p1))
39 push(car(p1))
40 denominator()
41 p1 = cdr(p1)
42 multiply_all(tos - h)
43 else if (isrational(p1))
44 push(p1)
45 mp_denominator()
46 else if (car(p1) == symbol(POWER) && isnegativeterm(caddr(p1)))
47 push(p1)
48 reciprocate()
49 else
50 push(one)
51
52 restore()
53