00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020 #include <FunctionExpressionBinaryOperation.hpp>
00021
00022 #include <ScalarFunctionBuilder.hpp>
00023
00024 void
00025 FunctionExpressionBinaryOperation::
00026 execute()
00027 {
00028 __fExpression->execute();
00029 __gExpression->execute();
00030
00031 ScalarFunctionBuilder functionBuilder;
00032 functionBuilder.setFunction(__fExpression->function());
00033 functionBuilder.setBinaryOperation(__type,
00034 __gExpression->function());
00035 __scalarFunction = functionBuilder.getBuiltFunction();
00036 }
00037
00038 bool
00039 FunctionExpressionBinaryOperation::
00040 hasBoundaryExpression() const
00041 {
00042 return (__fExpression->hasBoundaryExpression()
00043 or __gExpression->hasBoundaryExpression());
00044 }
00045
00046 FunctionExpressionBinaryOperation::
00047 FunctionExpressionBinaryOperation(const std::string& operatorName,
00048 ReferenceCounting<FunctionExpression> f,
00049 ReferenceCounting<FunctionExpression> g)
00050 : FunctionExpression(FunctionExpression::binaryOperation),
00051 __type(operatorName),
00052 __fExpression(f),
00053 __gExpression(g)
00054 {
00055 ;
00056 }
00057
00058 FunctionExpressionBinaryOperation::
00059 FunctionExpressionBinaryOperation(const BinaryOperation::Type& type,
00060 ReferenceCounting<FunctionExpression> f,
00061 ReferenceCounting<FunctionExpression> g)
00062 : FunctionExpression(FunctionExpression::binaryOperation),
00063 __type(type),
00064 __fExpression(f),
00065 __gExpression(g)
00066 {
00067 ;
00068 }
00069
00070 FunctionExpressionBinaryOperation::
00071 FunctionExpressionBinaryOperation(const FunctionExpressionBinaryOperation& f)
00072 : FunctionExpression(f),
00073 __type(f.__type),
00074 __fExpression(f.__fExpression),
00075 __gExpression(f.__gExpression)
00076 {
00077 ;
00078 }
00079
00080 FunctionExpressionBinaryOperation::
00081 ~FunctionExpressionBinaryOperation()
00082 {
00083 ;
00084 }