comp.lang.ada
 help / color / mirror / Atom feed
From: "Randy Brukardt" <randy@rrsoftware.com>
Subject: Re: BDD package in Ada.
Date: Wed, 8 Apr 2015 16:30:00 -0500
Date: 2015-04-08T16:30:00-05:00	[thread overview]
Message-ID: <mg46ko$u76$1@loke.gir.dk> (raw)
In-Reply-To: c7db12c1-10fa-40ee-a2df-ff8a8b2177bc@googlegroups.com

[-- Warning: decoded text below may be mangled, UTF-8 assumed --]
[-- Attachment #1: Type: text/plain, Size: 1923 bytes --]

"Vincent DIEMUNSCH" <vincent.diemunsch@gmail.com> wrote in message 
news:c7db12c1-10fa-40ee-a2df-ff8a8b2177bc@googlegroups.com...
>Le mercredi 8 avril 2015 08:38:19 UTC+2, Dmitry A. Kazakov a écrit :

>> I would not call it "fundamental". It is simply a tree with factored out
>> subtrees. Need not to be binary, BTW.
>A BINARY decision diagram needs to be binary, by definition. It is not 
>"simply" a tree,
> but a highly optimised data structure, not only by factoring the tree, but 
> through variable
> ordering, which is the key idea. (Briant's paper is about ORDERED BDD). It 
> is usefull
> for the implementation of Sets and operations on sets.

Sounds like premature optimization to me. If you want sets, use 
Ada.Containers.Ordered_Sets and see if it is fast enough. In the unlikely 
case that it is not, implement your own body to a similar specification 
using a different technology to handle the ordering.

The vast majority of uses of anything do not need "highly optimized" data 
structures. On top of which, it's likely that your implementer has spent 
plenty of time optimizing the standard containers, so it's quite likely that 
they will be faster than you might expect.

That's a lesson we all need to learn, and re-learn, and re-learn again, 
because "highly optimized data structures" are a lot more fun and satisfying 
to a programmer. But they're rarely actually needed. (I've made that mistake 
plenty of times.)

[Side note to another thread. That of course goes for GC as well. There is 
lots of junkware that doesn't need to be engineered well; that's why dynamic 
languages have such a following. But that's not Ada's target market.]

Whatever BDD is, it can't be very important since I've never heard of it 
until today. :-) I'm pretty sure I would have run across something that's 
actually fundamental in 30 years. YMMV.

                                                           Randy.


  parent reply	other threads:[~2015-04-08 21:30 UTC|newest]

Thread overview: 19+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2015-04-07 20:35 BDD package in Ada Vincent DIEMUNSCH
2015-04-08  6:38 ` Dmitry A. Kazakov
2015-04-08  7:44   ` Vincent DIEMUNSCH
2015-04-08 12:25     ` jan.de.kruyf
2015-04-08 18:39       ` vincent.diemunsch
2015-04-09  9:31         ` jan.de.kruyf
2015-04-09 16:51         ` jan.de.kruyf
2015-04-09 18:23           ` vincent.diemunsch
2015-04-08 21:30     ` Randy Brukardt [this message]
2015-04-08 23:40       ` Paul Rubin
2015-04-09  9:05         ` gautier_niouzes
2015-04-09 23:49           ` Randy Brukardt
2015-04-09  9:06       ` Georg Bauhaus
2015-04-09  9:29         ` Dmitry A. Kazakov
2015-04-10  0:05         ` Randy Brukardt
2015-04-08 21:20   ` Randy Brukardt
2015-04-08 18:27 ` Per Sandberg
2015-04-09 15:24 ` Paul Rubin
2015-04-09 20:02   ` vincent.diemunsch
replies disabled

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox