proj home

Files   Classes   Functions   Hierarchy  

rpnrealconvert Class Reference

#include <mathfunc.h>

Inheritance diagram for rpnrealconvert:
Collaboration diagram for rpnrealconvert:

List of all members.

Public Member Functions

 rpnrealconvert ()
 rpnrealconvert (deque< rpnbase * > &ds, bool const evaluate=true)
 ~rpnrealconvert ()
rpnbasecopy () const
void visit (deque< rpnbase * > &ds, rpnstring &s)
void visit (deque< rpnbase * > &ds, rpninteger &n)
void visit (deque< rpnbase * > &ds, rpncomplex &n)
string const name () const
void eval (deque< rpnbase * > &ds)


Detailed Description

Definition at line 518 of file mathfunc.h.


Constructor & Destructor Documentation

rpnrealconvert::rpnrealconvert (  )  [inline]

Definition at line 522 of file mathfunc.h.

Referenced by copy().

00522 {}

rpnrealconvert::rpnrealconvert ( deque< rpnbase * > &  ds,
bool const   evaluate = true 
)

Definition at line 34 of file mathfunc.cpp.

References eval().

00035 {
00036   if (evaluate)
00037     eval(ds);
00038   else
00039     ds.push_front(this);
00040 }

rpnrealconvert::~rpnrealconvert (  )  [inline]

Definition at line 524 of file mathfunc.h.

00524 {}


Member Function Documentation

rpnbase * rpnrealconvert::copy (  )  const [virtual]

Reimplemented from rpnfunction.

Definition at line 42 of file mathfunc.cpp.

References rpnrealconvert().

00043 {
00044   return new rpnrealconvert();
00045 }

void rpnrealconvert::eval ( deque< rpnbase * > &  ds  )  [virtual]

Reimplemented from rpnfunction.

Definition at line 47 of file mathfunc.cpp.

References rpnbase::accept(), and rpnbase::dec().

Referenced by rpnrealconvert().

00048 {
00049   if(!ds.empty())
00050     ds[0]->accept(ds,*this);
00051 
00052   dec();
00053 }

string const rpnrealconvert::name (  )  const [inline, virtual]

Reimplemented from rpnfunction.

Definition at line 531 of file mathfunc.h.

00531 { return string("real"); }

void rpnrealconvert::visit ( deque< rpnbase * > &  ds,
rpncomplex n 
) [virtual]

Reimplemented from rpnfunction.

Definition at line 79 of file mathfunc.cpp.

References rpnbase::dec(), and rpncomplex::num.

00080 {
00081   rpnbase* x0 = ds.front();
00082   ds.pop_front();
00083 
00084   new rpnreal(ds,real(n.num));
00085 
00086   x0->dec();
00087 
00088 }

void rpnrealconvert::visit ( deque< rpnbase * > &  ds,
rpninteger n 
) [virtual]

Reimplemented from rpnfunction.

Definition at line 68 of file mathfunc.cpp.

References rpnbase::dec(), and rpninteger::num.

00069 {
00070   rpnbase* x0 = ds.front();
00071   ds.pop_front();
00072 
00073   long double num = (long double)(n.num);
00074   new rpnreal(ds,num);
00075 
00076   x0->dec();
00077 }

void rpnrealconvert::visit ( deque< rpnbase * > &  ds,
rpnstring s 
) [virtual]

Reimplemented from rpnfunction.

Definition at line 55 of file mathfunc.cpp.

References rpnbase::dec(), and rpnstring::str.

00056 {
00057   rpnbase* x0 = ds.front();
00058   ds.pop_front();
00059 
00060   long double n;
00061   stringstream ss(s.str.c_str());
00062   ss >> n;
00063   new rpnreal(ds,n);
00064 
00065   x0->dec();
00066 }


The documentation for this class was generated from the following files:

Generated on Fri Mar 4 00:50:16 2011 for Chelton Evans Source by  doxygen 1.5.8