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: [EMAIL PROTECTED] [mailto:[EMAIL PROTECTED] On Behalf Of Filip Konvicka
Sent: Tuesday, June 17, 2008 4:27 PM
To: [EMAIL PROTECTED]
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
[EMAIL PROTECTED]
https://www.gecode.org/mailman/listinfo/gecode-users

Reply via email to