Listing 12. Perform the operations
public static double operation_result( double operand1, double operand2, String op )
{
double result=0;
if ( op.equals( "^" ) || op.equals( "**" ) )
result=Mathematic.pow( operand1, operand2 );
else if ( op.equals( "*" ) )
result=Mathematic.multiply( operand1, operand2 );
else if ( op.equals( "/" ) )
result=Mathematic.divide( operand1, operand2 );
else if ( op.equals( "mod" ) )
result=Math.IEEEremainder( operand1, operand2 );
else if ( op.equals( "%" ) )
result=operand1%operand2;
else if ( op.equals( "+" ) )
result=Mathematic.add( operand1, operand2 );
else if ( op.equals( "-" ) )
result=Mathematic.subtract( operand1, operand2 );
else if ( op.equals( "<<" ) )
result=(long)operand1<<(long)operand2;
else if ( op.equals( ">>" ) )
result=(long)operand1>>(long)operand2;
else if ( op.equals( ">>>" ) )
result=(long)operand1>>>(long)operand2;
else if ( op.equals( "<" ) )
result=operand1<operand2 ? 1:0;
else if ( op.equals( ">" ) )
result=operand1>operand2 ? 1:0;
else if ( op.equals( "<=" ) )
result=operand1<=operand2 ? 1:0;
else if ( op.equals( ">=" ) )
result=operand1>=operand2 ? 1:0;
else if ( op.equals( "==" ) )
result=operand1==operand2 ? 1:0;
else if ( op.equals( "!=" ) || op.equals( "<>" ) )
result=operand1!=operand2 ? 1:0;
else if ( op.equals( "and" ) )
result=(long)operand1 & (long)operand2;
else if ( op.equals( "xor" ) )
result=(long)operand1 ^ (long)operand2;
else if ( op.equals( "or" ) )
result=(long)operand1 | (long)operand2;
else if ( op.equals( "&&" ) )
result=(operand1!=0 && operand2!=0) ? 1:0;
else if ( op.equals( "||" ) )
result=(operand1!=0 || operand2!=0) ? 1:0;
return result;
}
|