|
Boost : |
From: Dietmar Kuehl (dietmar.kuehl_at_[hidden])
Date: 1999-07-26 13:42:01
Hi,
At 11:50 26.07.99 -0400, Beman Dawes wrote:
>If anyone has requests to help seed the list, please post them to the
>mailing list, or email them directly to me.
Here are some of things I would be interested in but for which I'm not
interested
in programming them (I could probably do those but I'm more interested in
creating
other stuff):
- A generic pattern matching library. That is, the alphabet on which the
patterns are to be matched should not be restricted to be a set of
characters. If possible, the interface should fit to typical STL interfaces.
- A networking library built upon sockets. I can provide help if there is a
stream buffer to be created for this.
- A library for easy to use higher dimensional arrays (maybe with some fixed
dimensions or with arbitrary dimensions only limited by the number of nested
template levels), potentially built on top of valarray. However, I'm
speaking
of general purpose arrays, not of matrices: For numerics, I think Blitz++
is the way to go...
I'm interested in seeing a tree library in the Boost library which consists
probably of three parts:
- An abstraction to deal with trees.
- Tree algorithms which range from basic stuff like rotations to traversals
(... and maybe beyond but I have no idea what algorithms are applied to
trees).
- A sample collection of tree data structures.
I have started to write something down which is intended as something like a
starting point and I'm willing to implement things for this. However, I
definitely
need some input on algorithms to be used on trees to come up with ideas for
the abstraction. Of course, ideas for the abstraction and a discussion of
all those
ideas is welcome!
Finally, some libraries I'm planning to create (sooner or later)
- A library for stream buffers like eg. stdiobuf (I/O using FILE* but C++
streams),
teebuf (simultaneous writes to multiple destinations), nullbuf (don't do
anything
but also don't create errors), etc. I have a list of maybe 10 stream buffers
I want to implement, some of which are already implemented but using the
prestandard streams interface (ie. they are not templatized). If there is
urgent need for specific stream buffers, I'm probably able to supply an
implementation within a reasonable time frame for this.
- A graphs library. This is, of course, a huge thing, consisting of the
following:
- An abstraction for general graphs, building on the result of my Diploma
but
probably using not the exact approach taken there.
- A bunch of graph algorithms like eg. searches, flow algorithms, etc.
- A generic GUI for easy visualization and manipulation of graphs (eg.
absolutely
necessary for debugging algorithms). Of course, the GUI will be limited
to a
few platforms (eg. X11 and MFC; I have a basis for X11 and I'm pretty
sure I
can do it for MFC, too) unless Boost provides a GUI library (or should
we use
something like QT?).
- A collection of graph data structures containing probably both general
ones
as well as special ones for like planar graphs ("quad edge"), DAG,
grids, etc.
- A "data accessor" library. What the hell is this? Well, data accessors
are used
by the graph abstraction I'm using and might be useful for other things,
too.
For example, I heard that someone uses them in image processing and the tree
abstraction I'm envisioning also uses them. There was an article about "Data
Access Templates" in the July 1997 issue (I think) of the C++ Report.
Of course, this is all centered around my needs and ideas :-)
Dietmar
Boost list run by bdawes at acm.org, gregod at cs.rpi.edu, cpdaniel at pacbell.net, john at johnmaddock.co.uk