
2009/9/21 Markus Werle <numerical.simulation@web.de>:
Joachim Faulhaber <afojgo <at> googlemail.com> writes:
the Interval Template Library is now in a state where I think it does conform the requirements and guidelines for boost libraries fairly well.
Actually I am very unlucky with the name "itl".
1. Any boost library is using templates, so using "Template" in the library name is somewhat redundant. Same with "Library". All boost components are libraries, except Boost.Build and Boost.Book
isn't it amazing how much redundancy can be put into such a short name ;-) Joking aside -- you are addressing a good point. Names should be concise. The *tl naming fashion is surely widespread and carries unnecessary redundancy. Yet it is very tempting for an author of a generic library to follow the footsteps of the giant ancestor (stl). Itl is a working title for me and after using it for more than two years now in postings and titles like in my talk in the boostcon09 it has gathered some recognition, so I am not going to change it lightly. But I agree, there may be other suitable names that can be precise and more appropriate.
Remains "Interval" which is already in use: http://www.boost.org/doc/libs/1_40_0/libs/numeric/interval/doc/interval.htm
Can you please take the time to explain the difference in math and aim of the lib compared to Boost.Interval?
There are two major differences between boost::numeric::intervals and itl::intervals. (1) A numeric::interval from the boost Interval Arithmetic Library works on intervals of (floating point) numbers. An itl::interval can be instantiated with numeric and non numeric data types. The only requirement for an itl::interval<T> is that there is a strict weak ordering on T. So an itl::interval can be instantiated with floating point numbers, intergral numbers, std::strings and many types more. (2) boost::numeric::intervals are always closed: They contain their lower and upper bound. Itl::intervals can have open or closed bounds. This property is decisive for the design of the itl, because we want to combine e.g. intervals [0.0, 1.0) and [1.0, 2.0] and decide if those intervals are combinable to single new interval, if they abut without intersecting e.t.c. Boost::numeric::interval and itl::interval can coexist nicely, because of their different scopes and purposes. While boost::numeric::interval implements interval arithmetic itl::interval does not aim to implement interval arithmetic at all. The aim of itl::intervals is to model sets of values that occur between a lower and upper bound w.r.t. a given order.
2. ITL is already in use for the iterative template library http://www.osl.iu.edu/research/itl/ which has functionality that should enter boost within the next decade - IMHO. (Where its name will be "iterative"? or "krylov_subspace_methods"? ...)
My plea: Try to find a unique name, not something that gives you 4.710.000 hits on google.
I am not worrying about the number of hits. Yet I am going to consider your plea because your arguments are justified.
Besides that I find your library promising and will try to use it in a future project.
Good! Let me know about your experiences, critics and suggestions. Cheers Joachim