#include "stdio.h"#include "tran.c"double pop(),push();double stack[6];int sp=0;main(){double dp=1;int x,i,df=0;while ((x=getchar()) != 'q' && x != 'Q') {	if (x>='0' && x<='9') {	  if (df) dp=10*dp;	  stack[0]=10*stack[0]+x-'0';	}	else if (x=='.') df=1;	else {	  stack[0] = stack[0] / dp;	  dp=1;	  df=0;	  if (x==',' && stack[0] == 0) stack[0]=stack[sp];	  if (stack[0] == 0) stack[0]=pop();	  switch (x) {	  case ',' :	  case '\13' :	    break;	  case '+' :	    stack[0] = stack[0]+pop();	    break;	  case '-' :	    stack[0] = pop()-stack[0];	    break;	  case '*' :	    stack[0] = pop()*stack[0];	    break;	  case '/' :	    stack[0] = pop()/stack[0];	    break;	  case '^' :	    stack[0] = exp( stack[0] * log( pop(0) ) ) ;	    break;	  case 'I' :	  case 'i' :	    stack[0] = 1/stack[0];	    break;	  case 'N' :	  case 'n' :	    stack[0] = -stack[0];	    break;	  case 'r' :	  case 'R' :	    stack[0]=root(stack[0]);	    break;	  case 'l' :	  case 'L' :	    stack[0]=log(stack[0]);	    break;	  case 'e' :	  case 'E' :	    stack[0]=exp(stack[0]);	    break;	  }	  push (stack[0]);	  stack[0]=0;	  if (x != '\0') {	  for (i=1;i<=sp;i++) printf("%f  ",stack[i]);	  printf ("%c\n",x);	  }	  }	  }}/* Pop floating from stack */double pop(){if (sp>0) return (stack[sp--]);else return (0);}/* Push floating onto stack */double push(x)double x;{if (sp<5) stack[++sp] = x;}turn (stack[sp--]);else return (0);}/* Push floating onto stack */double pus