[gecode-users] FloatVar alpha release

David Rijsman David.Rijsman at quintiq.com
Wed Jun 25 15:53:17 CEST 2008


Being on the topic of 3.0.0, is there documentation on what might make
it in 3.0.0 and what has been postponed and or rejected?

David J Rijsman
Software Architect
Quintiq
 
T +31 (0)73 691 07 39
F +31 (0)73 691 07 54
M +31 (0)62 127 68 29
E david.rijsman at quintiq.nl
I www.quintiq.com


>>> 
From: 	"Christian Schulte" <cschulte at kth.se>
To:	"'Filip Konvička'" <filip.konvicka at logis.cz>,
<users at gecode.org>
CC:	"'Luboš Moric'" <lubomir.moric at logis.cz>
Date: 	6/25/2008 3:12 PM
Subject: 	Re: [gecode-users] FloatVar alpha release

Dear Filip,

thanks for the contribution. When we release Gecode 3.0.0 (late autumn)
we will check whether we can make it an experimental contribution.

Thanks for your effort!

All the best
Christian

--
Christian Schulte, www.ict.kth.se/~cschulte/ 

-----Original Message-----
From: users-bounces at gecode.org [mailto:users-bounces at gecode.org] On
Behalf Of Filip Konvicka
Sent: Tuesday, June 17, 2008 4:27 PM
To: users at gecode.org 
Cc: Luboš Moric
Subject: [gecode-users] FloatVar alpha release

Dear all,

sorry for taking so long, here's the initial version of our float
variable efforts. The purpose of this release is to get initial feedback
and start discussions about both the design and implementation.

The code has been lying here for at least a month and we're currently
busy with many other things, but I do not want to wait any longer so I
hope that any feedback we might get from you will make us improve what
we've done so far. Any feedback is highly welcome!


The patch (float.zip/float.patch) is generated against the 2.1.1
release. I hope I've included all that is necessary.

The changes to Gecode itself are the float.patch and the float.vis file
(that goes to the source root directory, where "variables.vsl" resides).

The change involves adding a new variable type "slot" to Gecode,
without adding a corresponding variable implementation.

The actual implementation of "FloatVars" is in float_var.hpp and
float_view.hpp. These are template classes that are instantiated in your
application based on what interval library implementation you use with
them. We provide a specialization of the templates for Boost.Interval,
which ( to make things more obscure :-) ) can be used with multiple
low-level FP libraries itself.

The release includes:

template<typename DomainType> struct FloatVarImp;
- a "concept", unspecialized template FloatVar implementation
   class and an associated delta class

template<typename IntervalArg>
struct FloatVarImp<boost::numeric::interval<IntervalArg> >;
- specialization of the above template for Boost.Interval.

- Delta and View classes for the same


I also include a preview of propagator implementations for
boost::numeric::interval<double> (see float_prop_preview.zip). Now these
are really a preview (although we are currently using similar code in
our development branch) and need some serious work that I hope I get to
soon. The provided propagators are:
- binary minimum, maximum
- binary relational and reifieed binary relational (lq, gq, eq)
- arithmetic (add, sub, mul, div)

The intended changes include changing the classes to templates to
support other Boost.Interval types and renaming of the propagators.

Overall, I'd like to address at least the following topics before a
"beta" release:
- Finish the propagators and maybe provide a simple "splitting"
branching.
- Support explicit instantiation of the templates. This means moving
implementation out of the .hpp files, both for the variable and
propagators.
- Verify the overall design. And this is my question to you all - is
there some reason to have a Delta class at all? (I always forget what
the deltas are supposed to represent...)


Cheers,
Filip








_______________________________________________
Gecode users mailing list
users at gecode.org 
https://www.gecode.org/mailman/listinfo/gecode-users


This message contains information that may be privileged or confidential
and is the property of Quintiq. It is only intended for the person to
whom it is addressed. If you are not the intended recipient, you are not
authorized to read, print, retain, copy, disseminate, distribute or use
this message or any part thereof. If you have received this message in
error, please notify the sender immediately and delete all copies of
this message. Please note that e-mails are susceptible to change,
therefore they are not binding.




More information about the gecode-users mailing list