|
List Info
Thread: Order of operations
|
|
| Order of operations |
  United States |
2008-04-09 11:31:13 |
|
I have a question regarding
order of operations in the consequence of a rule when using the mvel dialect.
When executed the Drl below provides Right =30.0 and Wrong =140.0. The
only difference is the parens around the multiplying expressions, which shouldn217;t
be necessary given order of operations. Is this a problem with the drools/mvel
interaction or is it completely an issue with mvel?
Is the general expectation that all
expressions must be completely scoped by parens when using mvel?
package test;
dialect "mvel"
rule "test 11"
when
then
double
rightVal=((10-5)*2) + (5*(8-4));
double
wrongVal=(10-5)*2 + 5*(8-4);
System.out.println("Right ="+rightVal);
System.out.println("Wrong ="+wrongVal);
End
After execution:
Right =30.0
Wrong =140.0
Thank you for all of your help. We are using drools 4.0.4.
Joe
Also, I haven̵7;t figured out how it
arrives at 140. The following format also produces 140, which seems a little
more strange.
double
wrongVal=10-5*2 + 5*8-4;
|
| Re: Order of operations |

|
2008-04-09 13:38:30 |
|
Hi Joe,
It seems someone skipped the elementary math lessons at school... :(
Will open a JIRA for that.
[]s Edson
2008/4/9 Joe White < Joe.White  recondotec h.com">Joe.White recondotech.com>:
I have a question regarding
order of operations in the consequence of a rule when using the mvel dialect.
When executed the Drl below provides Right =30.0 and Wrong =140.0. The
only difference is the parens around the multiplying expressions, which shouldn't
be necessary given order of operations. Is this a problem with the drools/mvel
interaction or is it completely an issue with mvel?
Is the general expectation that all
expressions must be completely scoped by parens when using mvel?
package test;
dialect "mvel"
rule "test 11"
when
then
double
rightVal=((10-5)*2) + (5*(8-4));
double
wrongVal=(10-5)*2 + 5*(8-4);
System.out.println("Right ="+rightVal);
System.out.println("Wrong ="+wrongVal);
End
After execution:
Right =30.0
Wrong =140.0
Thank you for all of your help. We are using drools 4.0.4.
Joe
Also, I haven't figured out how it
arrives at 140. The following format also produces 140, which seems a little
more strange.
double
wrongVal=10-5*2 + 5*8-4;
_______________________________________________
rules-users mailing list
rules-users lists.jboss.org">rules-users lists.jboss.org
https://lists.jboss.org/mailman/listinfo/rules-users
-- Edson Tirelli JBoss Drools Core Development Office: +55 11 3529-6000 Mobile: +55 11 9287-5646 JBoss, a division of Red Hat www.jboss.com
|
| RE: Order of operations |
  United States |
2008-04-09 14:27:48 |
|
Another bug that I just came across while working on getting my
parens to work involved not handling scoped numbers properly. Similar to the
previous one, but different in that it ends the expression evaluation
prematurely. See the drl and result below:
package test;
dialect "mvel"
rule "test 12"
when
then
double rightVal=(10 +
12);
double wrongVal=(10) +
(12);
double wrongValTwo =
((10)+12)
System.out.println("Right
"+rightVal);
System.out.println("Wrong
"+wrongVal);
System.out.println("WrongTwo
"+wrongValTwo);
End
Results in:
Right 22.0
Wrong 10.0
WrongTwo 10.0
Thanks,
Joe
From:
rules-users-bounces lists.jboss.org
[mailto:rules-users-bounces lists.jboss.org] On Behalf Of Edson Tirelli
Sent: Wednesday, April 09, 2008 12:39 PM
To: Rules Users List
Subject: Re: [rules-users] Order of operations
Hi Joe,
It seems someone skipped the elementary math lessons at school...
:(
Will open a JIRA for that.
[]s
Edson
2008/4/9 Joe White <recondotech.com">Joe.White recondotech.com>:
I have a question regarding order of operations in the consequence of a rule
when using the mvel dialect. When executed the Drl below provides Right =30.0 and Wrong =140.0. The only difference is the
parens around the multiplying expressions, which shouldn't be necessary given
order of operations. Is this a problem with the drools/mvel interaction or is
it completely an issue with mvel?
Is the general expectation that
all expressions must be completely scoped by parens when using mvel?
package test;
dialect "mvel"
rule "test 11"
when
then
double rightVal=((10-5)*2) + (5*(8-4));
double wrongVal=(10-5)*2 + 5*(8-4);
System.out.println("Right
="+rightVal);
System.out.println("Wrong
="+wrongVal);
End
After execution:
Right =30.0
Wrong =140.0
Thank you for all of your help.
We are using drools 4.0.4.
Joe
Also, I haven't figured out how
it arrives at 140. The following format also produces 140, which seems a little
more strange.
double
wrongVal=10-5*2 + 5*8-4;
_______________________________________________
rules-users mailing list
rules-users lists.jboss.org">rules-users lists.jboss.org
https://lists.jboss.org/mailman/listinfo/rules-users
--
Edson Tirelli
JBoss Drools Core Development
Office: +55 11 3529-6000
Mobile: +55 11 9287-5646
JBoss, a division of Red Hat www.jboss.com
|
| Re: Order of operations |

|
2008-04-09 15:17:15 |
|
Joe,
Thanks, I added this information to the ticket too. Mike is already taking care of the problem.
In case you want to follow the progress:
http://jira.codehaus.org/browse/MVEL-83
[]s Edson
2008/4/9 Joe White < Joe.White  recondotec h.com">Joe.White recondotech.com>:
Another bug that I just came across while working on getting my
parens to work involved not handling scoped numbers properly. Similar to the
previous one, but different in that it ends the expression evaluation
prematurely. See the drl and result below:
package test;
dialect "mvel"
rule "test 12"
when
then
double rightVal=(10 +
12);
double wrongVal=(10) +
(12);
double wrongValTwo =
((10)+12)
System.out.println("Right
"+rightVal);
System.out.println("Wrong
"+wrongVal);
System.out.println("WrongTwo
"+wrongValTwo);
End
Results in:
Right 22.0
Wrong 10.0
WrongTwo 10.0
Thanks,
Joe
Hi Joe,
It seems someone skipped the elementary math lessons at school...
:(
Will open a JIRA for that.
[]s
Edson
2008/4/9 Joe White < Joe.White recondotech.com" target="_blank">Joe.White recondotech.com>:
I have a question regarding order of operations in the consequence of a rule
when using the mvel dialect. When executed the Drl below provides Right =30.0 and Wrong =140.0. The only difference is the
parens around the multiplying expressions, which shouldn9;t be necessary given
order of operations. Is this a problem with the drools/mvel interaction or is
it completely an issue with mvel?
Is the general expectation that
all expressions must be completely scoped by parens when using mvel?
package test;
dialect "mvel"
rule "test 11"
when
then
double rightVal=((10-5)*2) + (5*(8-4));
double wrongVal=(10-5)*2 + 5*(8-4);
System.out.println("Right
="+rightVal);
System.out.println("Wrong
="+wrongVal);
End
After execution:
Right =30.0
Wrong =140.0
Thank you for all of your help.
We are using drools 4.0.4.
Joe
Also, I haven't figured out how
it arrives at 140. The following format also produces 140, which seems a little
more strange.
double
wrongVal=10-5*2 + 5*8-4;
_______________________________________________
rules-users mailing list
rules-users lists.jboss.org" target="_blank">rules-users lists.jboss.org
https://lists.jboss.org/mailman/listinfo/rules-users
--
Edson Tirelli
JBoss Drools Core Development
Office: +55 11 3529-6000
Mobile: +55 11 9287-5646
JBoss, a division of Red Hat www.jboss.com
_______________________________________________
rules-users mailing list
rules-users lists.jboss.org">rules-users lists.jboss.org
https://lists.jboss.org/mailman/listinfo/rules-users
-- Edson Tirelli JBoss Drools Core Development Office: +55 11 3529-6000 Mobile: +55 11 9287-5646 JBoss, a division of Red Hat www.jboss.com
|
[1-4]
|
|
|
about | contact Other archives ( Real Estate discussion Medical topics )
|