[gecode-users] FloatVar alpha release

Filip Konvička filip.konvicka at logis.cz
Wed Jun 25 15:45:11 CEST 2008


Hi Christian,

we're quite close to making another release. My mere releasing the alpha 
version made us take a look at our code again and much of the work I 
described is already done. I'll review the code personally over the next 
few weeks and I'll submit it as soon as possible.

Cheers,
Filip

> 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
>
>
>
>
>
>
>
>   


-- 
Filip Konvička

LOGIS, s.r.o.
tel. +420 556 841 100
mob. +420 736 758 714





More information about the gecode-users mailing list