Example #1
0
int 
main(
    int argc,
    char *argv[]) 
{
	Environment::initialize("calculator.log", AXIS2_LOG_LEVEL_TRACE);
	string endpointUri = "http://localhost:9090/axis2/services/Calculator";
	string clientHome = AXIS2_GETENV("WSFCPP_HOME");
	if(clientHome.empty())
	{
		cout<<"Please set the WSFCPP_HOME environment variable"<<endl;
	}
	CalculatorStub *stub = new CalculatorStub(clientHome, endpointUri);
	Add *addIn = new Add();
	addIn->setA(10);
	addIn->setB(10);
	AddResponse *addResponse  = stub->add(addIn);
	if(addResponse)
	{
		cout<<"Calculation, 10 + 10 result is "<<addResponse->getAddReturn()<<endl;
	}

	Sub *subIn = new Sub();
	subIn->setA(20);
	subIn->setB(10);
	SubResponse *subResponse = stub->sub(subIn);
	if(subResponse)
	{
		cout<<"Calculation, 20 - 10 result is "<<subResponse->getSubReturn()<<endl;
	}

	Mul *mulIn =  new Mul();
	mulIn->setA(15);
	mulIn->setB(15);
	MulResponse *mulResponse = stub->mul(mulIn);
	if(mulResponse)
	{
		cout<<"Calculation, 15 * 15 result is "<<mulResponse->getMulReturn() <<endl;
	}

	Div *divIn = new Div();
	divIn->setA(100);
	divIn->setB(10);
	DivResponse *divResponse = stub->div(divIn);
	if(divResponse)
	{
		cout<<"Calculation, 100/10 result is "<<divResponse->getDivReturn()<<endl;
	}
	delete stub;
}
Example #2
0
    void bvisit(const Mul &x)
    {

        RCP<const Basic> curr_num = one;
        RCP<const Basic> curr_den = one;
        RCP<const Basic> arg_num, arg_den, t;

        for (const auto &arg : x.get_args()) {
            as_numer_denom(arg, outArg(arg_num), outArg(arg_den));
            // TODO: This is naive and slow. Fix it
            t = div(curr_num, arg_den);
            if (neq(*t, x)) {
                as_numer_denom(t, outArg(curr_num), outArg(arg_den));
            }
            t = div(curr_den, arg_num);
            if (neq(*t, x)) {
                as_numer_denom(t, outArg(curr_den), outArg(arg_num));
            }
            curr_num = mul(curr_num, arg_num);
            curr_den = mul(curr_den, arg_den);
        }

        *numer_ = curr_num;
        *denom_ = curr_den;
    }
Example #3
0
 void bvisit(const Mul &x) {
     mpfr_class t(mpfr_get_prec(result_));
     auto d = x.get_args();
     auto p = d.begin();
     apply(result_, *(*p));
     p++;
     for (; p != d.end();  p++) {
         apply(t.get_mpfr_t(), *(*p));
         mpfr_mul(result_, result_, t.get_mpfr_t(), rnd_);
     }
 }