defint.cpp 591 B

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859
  1. // definite integral
  2. #include "stdafx.h"
  3. #include "defs.h"
  4. #define F p2
  5. #define X p3
  6. #define A p4
  7. #define B p5
  8. void
  9. eval_defint(void)
  10. {
  11. push(cadr(p1));
  12. eval();
  13. F = pop();
  14. p1 = cddr(p1);
  15. while (iscons(p1)) {
  16. push(car(p1));
  17. p1 = cdr(p1);
  18. eval();
  19. X = pop();
  20. push(car(p1));
  21. p1 = cdr(p1);
  22. eval();
  23. A = pop();
  24. push(car(p1));
  25. p1 = cdr(p1);
  26. eval();
  27. B = pop();
  28. push(F);
  29. push(X);
  30. integral();
  31. F = pop();
  32. push(F);
  33. push(X);
  34. push(B);
  35. subst();
  36. eval();
  37. push(F);
  38. push(X);
  39. push(A);
  40. subst();
  41. eval();
  42. subtract();
  43. F = pop();
  44. }
  45. push(F);
  46. }