I wonder if there's some way to introduce strictfp into the drl. (I'm not even sure if that would even solve the problem. But I figure it'd get you in the ballpark.) But I think it would be useful to be able to inject strictfp into the declarations of any generated drools classes.
--- On Mon, 5/4/09, Femke De Backere <[email protected]> wrote: > From: Femke De Backere <[email protected]> > Subject: Re: [rules-users] Rule problem > To: "Rules Users List" <[email protected]> > Date: Monday, May 4, 2009, 4:11 PM > I solved the problem by removing every double in the > sample.drl. How > van I fix the double problem if I really wanted to :)? In > this case it > is unnecassary but there must be a solution? > > Thanks for all the help! > > Femke > > Op 4-mei-09, om 21:48 heeft Wolfgang Laun het volgende > geschreven: > > > Don't use doubles. Try the same thing, scaling the > random weights > > with 10 (or 100) convert to int, and use suitably > scaled integer > > limits for your weight classes. > > > > I'm not at all sure, what various JVM versions > and/or Rand > > generators could produce. > > > > The javadoc for java.lang.Math is an indicator that > things might not > > be as simple as they ought to be. > > > > I could reproduce the problem this afternoon, but now > I can't any > > more, on the same machine, same JVM and same Drools > version. > > > > -W > > > > > > 2009/5/4 Femke De Backere <[email protected]> > > So, I did as you suggested, with the following as > result: > > BMI of 10 U heeft ondergewicht: 10 > > BMI of 30 U heeft ondergewicht: 30 > > BMI of 30 U heeft obesitas: 30 > > BMI of 20 U heeft ondergewicht: 20 > > > > So, I really don't get it, I used exactly the same > code as you. > > > > Femke > > > > Op 4-mei-09, om 17:11 heeft Greg Barton het volgende > geschreven: > > > >> > >> Well, approach this systematically, then: Create a > new Drools > >> project in Eclipse and replace the DroolsTest.java > and Sample.drl > >> with the ones I sent before. What results do you > get? If they are > >> correct, modify the project one step at a time > until the problem is > >> uncovered. > >> > >> One place to focus on: you're using rule > flows. I have no idea how > >> that could cause a false positive result like > you've seen, but you > >> never know. > >> > >> Finally, if you're comparing performance of > rules vs plain java, > >> plain java will easily win in this case. The rule > of thumb is > >> this: if you can easily write a plain non-rules > algorithm it will > >> outperform the rules solution. > >> > >> --- On Mon, 5/4/09, Femke De Backere > <[email protected]> wrote: > >> > >>> From: Femke De Backere > <[email protected]> > >>> Subject: Re: [rules-users] Rule problem > >>> To: "Rules Users List" > <[email protected]> > >>> Date: Monday, May 4, 2009, 6:53 AM > >>> I'm using this: > >>> package bmi > >>> > >>> import bmi.DroolsTest.BMIClass; > >>> > >>> rule "Overgewicht" > >>> ruleflow-group "BMIrules" > >>> when > >>> bmiClass : BMIClass($bmi: bmi >= 25, bmi > < 30) > >>> then > >>> System.out.println("U heeft > overgewicht: " + > >>> $bmi); > >>> end > >>> > >>> rule "Obesitas" > >>> ruleflow-group "BMIrules" > >>> when > >>> bmiClass : BMIClass($bmi : bmi >= 30) > >>> then > >>> System.out.println("U heeft obesitas: > " + > >>> $bmi); > >>> end > >>> > >>> > >>> rule "Ondergewicht" > >>> ruleflow-group "BMIrules" > >>> when > >>> bmiClass : BMIClass($bmi : bmi < 18.5) > >>> then > >>> System.out.println("U heeft > ondergewicht: " + > >>> $bmi); > >>> end > >>> > >>> > >>> rule "Normaal" > >>> ruleflow-group "BMIrules" > >>> when > >>> bmiClass : BMIClass($bmi : bmi >= 18.5, > bmi < 25) > >>> then > >>> System.out.println("U heeft een normaal > gewicht: > >>> " + $bmi); > >>> end > >>> > >>> But in essence it is the same as Greg's. I > get outputs > >>> as: > >>> > >>> U heeft ondergewicht: 25.0 > >>> U heeft overgewicht: 25.0 > >>> > >>> But I really don't see the problem. > >>> > >>> Femke > >>> > >>> Op 4-mei-09, om 13:25 heeft Wolfgang Laun het > volgende > >>> geschreven: > >>> > >>>> I cannot reproduce your findings. > >>>> Which bmi values cause the firing of two > rules? > >>>> Are you using exactly the same .drl file > Greg sent? > >>>> -W > >>>> > >>>> 2009/5/4 Femke De Backere > <[email protected]> > >>>> Thanks for the answer! But I sometimes get > 2 rules > >>> that are correct, > >>>> and that is impossible. I embedded > Greg's > >>> DroolsTest class in my > >>>> class (I am doing some test on performance > and > >>> studying the > >>>> difference between performance with a > plain java > >>> class), and it > >>>> still doesn't work, and I really > don't see > >>> why. Anyone any > >>>> suggestions, in attachement, my class. > >>>> > >>>> Thx, > >>>> > >>>> Femke > >>>> > >>>> > >>>> > >>>> > >>>> Op 4-mei-09, om 02:47 heeft Greg Barton > het volgende > >>> geschreven: > >>>> > >>>> Try the attached code. > >>>> > >>>> --- On Sun, 5/3/09, Femke De Backere > >>> <[email protected]> wrote: > >>>> > >>>> From: Femke De Backere > <[email protected]> > >>>> Subject: Re: [rules-users] Rule problem > >>>> To: "Rules Users List" > >>> <[email protected]> > >>>> Date: Sunday, May 3, 2009, 6:18 PM > >>>> Thx for the answer. I tried this but I > doesn't > >>> seem to > >>>> work. For a BMI of 20, i get the result > >>>> "ondergewicht", and it should be > >>>> "normal". > >>>> > >>>> Op 4-mei-09, om 01:04 heeft Ingomar Otter > het volgende > >>>> geschreven: > >>>> > >>>> Femke, > >>>> The "Overgewicht| rule matches for > _two_ BMIClass > >>>> facts, one with bmi >- 25 and one for > BMIClass > >>> <30. > >>>> If you want to apply multiple constraints > to a single > >>>> fact you have to list them as such: > >>>> > >>>> rule "Overgewicht" > >>>> when > >>>> bmiClass : BMIClass(bmi > >= 25 > >>> && bmi > >>>> <30) > >>>> then > >>>> System.out.println("U > heeft > >>>> overgewicht"); > >>>> end > >>>> > >>>> > >>>> Cheers, > >>>> Ingomar > >>>> > >>>> > >>>> Am 04.05.2009 um 00:48 schrieb Femke De > Backere: > >>>> > >>>> Hi! > >>>> > >>>> I want to make en BMI rule application, so > I need > >>>> to test the BMI values. But in rule > >>> "Overgewicht" > >>>> and "Normaal", I need to use an > AND, but it > >>>> doesn't seem to work in any way I > tried. > >>>> > >>>> Does anybody see the problem? The rest of > the > >>>> application is based on de sample project > (created > >>> when > >>>> making a new Drools project). > >>>> > >>>> Thx, > >>>> > >>>> Femke > >>>> > >>>> package bmi > >>>> > >>>> import bmi.DroolsTest.BMIClass; > >>>> > >>>> rule "Overgewicht" > >>>> when > >>>> bmiClass : BMIClass(bmi > >= 25) > >>>> bmiClass : BMIClass(bmi < > 30) > >>>> then > >>>> System.out.println("U > heeft > >>>> overgewicht"); > >>>> end > >>>> > >>>> rule "Obesitas" > >>>> when > >>>> bmiClass : BMIClass($bmi : > bmi >= > >>> 30) > >>>> then > >>>> System.out.println("U > heeft > >>>> obesitas"); > >>>> end > >>>> > >>>> rule "Ondergewicht" > >>>> when > >>>> bmiClass : BMIClass($bmi : > bmi < > >>> 18.5) > >>>> then > >>>> System.out.println("U > heeft > >>>> ondergewicht"); > >>>> end > >>>> > >>>> rule "Normaal" > >>>> when > >>>> bmiClass : BMIClass(bmi > >= 18.5) > >>>> bmiClass : BMIClass(bmi < > 25) > >>>> then > >>>> System.out.println("U > heeft een > >>> normaal > >>>> gewicht"); > >>>> > >>>> end > >>> > _______________________________________________ > >>>> rules-users mailing list > >>>> [email protected] > >>>> > >>>> > https://lists.jboss.org/mailman/listinfo/rules-users > >>>> > >>>> > _______________________________________________ > >>>> rules-users mailing list > >>>> [email protected] > >>>> > https://lists.jboss.org/mailman/listinfo/rules-users > >>>> > >>>> > _______________________________________________ > >>>> rules-users mailing list > >>>> [email protected] > >>>> > https://lists.jboss.org/mailman/listinfo/rules-users > >>>> > >>>> > >>>> < > >>>> DroolsTest > >>>> > >>> > .java><Sample.drl>_______________________________________________ > >>>> rules-users mailing list > >>>> [email protected] > >>>> > https://lists.jboss.org/mailman/listinfo/rules-users > >>>> > >>>> > >>>> > _______________________________________________ > >>>> rules-users mailing list > >>>> [email protected] > >>>> > https://lists.jboss.org/mailman/listinfo/rules-users > >>>> > >>>> > >>>> > _______________________________________________ > >>>> rules-users mailing list > >>>> [email protected] > >>>> > https://lists.jboss.org/mailman/listinfo/rules-users > >>> > >>> > _______________________________________________ > >>> rules-users mailing list > >>> [email protected] > >>> > https://lists.jboss.org/mailman/listinfo/rules-users > >> > >> > >> > >> _______________________________________________ > >> rules-users mailing list > >> [email protected] > >> > https://lists.jboss.org/mailman/listinfo/rules-users > > > > > > _______________________________________________ > > rules-users mailing list > > [email protected] > > https://lists.jboss.org/mailman/listinfo/rules-users > > > > > > _______________________________________________ > > rules-users mailing list > > [email protected] > > https://lists.jboss.org/mailman/listinfo/rules-users > > _______________________________________________ > rules-users mailing list > [email protected] > https://lists.jboss.org/mailman/listinfo/rules-users _______________________________________________ rules-users mailing list [email protected] https://lists.jboss.org/mailman/listinfo/rules-users
