Re: [Javabdd-devel] Ranges
Brought to you by:
joewhaley
|
From: Ricardo O. <n3...@ho...> - 2008-07-28 21:37:27
|
Hi again,
I have another issue related to ranges. It seems that there's something odd happening when I select ranges with some values. So for instance, if I ask for a range to the following values:
BDDDomain domain = bddFactory.extDomain(16);
BDD bdd = domain.varRange(2, 3);
bdd.printSet();
I get:
Which means that the possible values are from 0 to 3 and not from 2 to 3:
0 0 0 0
0 0 0 1
0 0 1 0
0 0 1 1
So, I tried from 10 to 12 and got the strange values:
which represent the interval 8 to 12.
To test it further, I tried with 11 to 12 and got the exact same set:
It seems that this is making the range from the closest 8 bit partition(?) or whatever to the value you say. This means that any range between 0 and 16 that you ask will always be between 0 or 8 (according to the lowest bit) and the upper value you give it.
Here's the output for range 2 to 12:
0 0 0 0 - 0
0 1 0 0 - 4
1 0 0 0 - 8
1 1 0 0 - 12
0 0 1 0 - 2
1 0 1 0 - 10
0 1 1 0 - 6
0 0 0 1 - 1
0 0 1 1 - 3
1 0 0 1 - 9
1 0 1 1 - 11
0 1 0 1 - 5
0 1 1 1 - 7
Is this the expected behavior?
Thank you,
Ricardo.
> From: n3...@ho...
> To: jav...@li...
> Date: Mon, 28 Jul 2008 19:26:20 +0000
> Subject: [Javabdd-devel] Ranges
>
>
>
> Hi,
>
> I'm having problem using the varRange() method of BDDDomain.
>
> If I create BDDDomain with these sizes:
>
> long sizes[] = new long[] {65535, 65535};
> BDDDomain[] domain= bddFactory.extDomain(sizes);
>
> Every time I try to create a range for the maximum values (which should be inclusive):
>
> BDD bdd = domain[0].varRange(0, 65535);
>
> I get the following error:
>
> Exception in thread "main" net.sf.javabdd.BDDException: range is invalid
> at net.sf.javabdd.BDDDomain.varRange(BDDDomain.java:253)
> at net.sf.javabdd.BDDDomain.varRange(BDDDomain.java:249)
>
> If I try with:
>
> long sizes[] = new long[] {65536, 65536};
> BDDDomain[] domain= bddFactory.extDomain(sizes);
>
> I get:
>
> Exception in thread "main" java.lang.ArithmeticException: Negative bit address
> at java.math.BigInteger.testBit(Unknown Source)
> at net.sf.javabdd.BDDDomain.varRange(BDDDomain.java:262)
> at net.sf.javabdd.BDDDomain.varRange(BDDDomain.java:249)
>
> One solution is using one extra bit (increasing the size to 65535*2), but I was really hoping this wouldn't be necessary. Perhaps I'm doing something incredibly stupid, but I can't see what at this point.
>
> Thank you very much for your help,
> Ricardo.
> _________________________________________________________________
> Invite your mail contacts to join your friends list with Windows Live Spaces. It's easy!
> http://spaces.live.com/spacesapi.aspx?wx_action=create&wx_url=/friends.aspx&mkt=en-us
> -------------------------------------------------------------------------
> This SF.Net email is sponsored by the Moblin Your Move Developer's challenge
> Build the coolest Linux based applications with Moblin SDK & win great prizes
> Grand prize is a trip for two to an Open Source event anywhere in the world
> http://moblin-contest.org/redirect.php?banner_id=100&url=/
> _______________________________________________
> Javabdd-devel mailing list
> Jav...@li...
> https://lists.sourceforge.net/lists/listinfo/javabdd-devel
_________________________________________________________________
Discover the new Windows Vista
http://search.msn.com/results.aspx?q=windows+vista&mkt=en-US&form=QBRE
|