Little fix after the last commit (mostly a git fail)
[eigenmath-fx.git] / ceiling.cpp
blobb396ff3415726bae44b81a31a37f6b763f37afd2
1 #include "stdafx.h"
2 #include "defs.h"
4 void
5 eval_ceiling(void)
7 push(cadr(p1));
8 eval();
9 ceiling();
12 void
13 ceiling(void)
15 save();
16 yyceiling();
17 restore();
20 void
21 yyceiling(void)
23 double d;
25 p1 = pop();
27 if (!isnum(p1)) {
28 push_symbol(CEILING);
29 push(p1);
30 list(2);
31 return;
34 if (isdouble(p1)) {
35 d = ceil(p1->u.d);
36 push_double(d);
37 return;
40 if (isinteger(p1)) {
41 push(p1);
42 return;
45 p3 = alloc();
46 p3->k = NUM;
47 p3->u.q.a = mdiv(p1->u.q.a, p1->u.q.b);
48 p3->u.q.b = mint(1);
49 push(p3);
51 if (isnegativenumber(p1))
53 else {
54 push_integer(1);
55 add();