Boost logo

Boost :

Subject: Re: [boost] Google Summer Of Code
From: vicente.botet (vicente.botet_at_[hidden])
Date: 2010-03-30 14:56:51


Hi Brian,
----- Original Message -----
From: "Brian Bartman" <bbartmanboost_at_[hidden]>
To: <boost_at_[hidden]>
Sent: Tuesday, March 30, 2010 4:55 PM
Subject: Re: [boost] Google Summer Of Code

> I was writing my proposal and going over some of the different ways to
> suggest implementation for bit masks and utilities, and was wondering if it
> would be alright to propose to do the work in C++0x which I have been
> working in for the last two years or so.
>
> The project would benefit from the following features in C++0x,
> Varidic templates (a compact tupple)
> static_assert (for preventing the user from causing a massive error with 0
> width bit fields)
> constexper s (not part of GCC but its been a couple of months since I last
> updated)

I think that the better is to implement something that can be used on a large set of compilers. This includes of course compilers providing C++0x support. For the other, you will need to emulate the C++0x features that are not available, so you will need to emulate variadic templates. static assert is already emmulated either by BOOST_STATEIC_ASSERT or BOOST_MPL_STATIC_ASSERT.

You can present a plan that starts with the use of C++0x features if you think it is more convenient, but as the project is not too large I consider that support for the common C++98 compilers is desirable.

Best,
Vicente

 
> On Thu, Mar 18, 2010 at 2:56 PM, vicente.botet <vicente.botet_at_[hidden]>wrote:
>
>>
>> ----- Original Message -----
>> From: "Andrew Sutton" <andrew.n.sutton_at_[hidden]>
>> To: <boost_at_[hidden]>
>> Sent: Thursday, March 18, 2010 8:26 PM
>> Subject: Re: [boost] Google Summer Of Code
>>
>>
>> >
>> >> > Hello my name is Brian Bartman and I am an undergraduate at Kent State
>> >> > University Majoring in computer science.
>> >>
>> >>
>> > I don't know if you are interested in improving Boost.Bitfield. I had two
>> >> features I wanted to add since long time but I had not time lastly
>> finish
>> >> them. You can find information related to Boost.Bitfield in
>> >>
>> https://svn.boost.org/trac/boost/wiki/LibrariesUnderConstruction#Boost.Bitfield
>> >> .
>> >>
>> >
>> > Hi Vicente.
>> >
>> > I think these would be great components of a "bit-based" proposal. I
>> think
>> > I'd like to see a compact or compressed vector to replace the 1- and
>> 2-bit
>> > color maps in Boost (and generalize the concept),
>>
>> Could you point me to the library is using this kind of maps? An example?
>>
>> > and a compact tuple, which
>> > (I think) is basically what you described for the RGB structure.
>>
>> Yes I suppose we talk of the same thing.
>>
>> > I think the
>> > pointer_plus_bits may make the project a bit extensive for the summer,
>> but
>> > definitely something to think about as an extension.
>>
>> Maybe :(
>>
>> > On my part, I'd like to see compact_vector, compact_tuple and tools for
>> bit
>> > and bitmask manipulation, with the pointer space reuse being an optional
>> > component.
>> >
>> > Would you be willing to mentor?
>>
>> Who has posted the idea for Bits & Ints? is you?
>> "Bits & Ints
>>
>> Boost could use a utility library that brings together and extends a number
>> of existing data structrues and utilities for working with binary data. This
>> library might include:
>>
>> a.. Multidimensional bitfields or dynamic_bitfields.
>> b.. Compressed value array and vector (like vector<bool> but also for
>> multi-bit values)
>> c.. Programming utilities for bit and bitmask manipulation
>> This may also cover a number of integral special functions, including:
>>
>> a.. Functions for getting carry bits from addition and the high-half of an
>> integer multiply
>> b.. Sign extension from a length of m bits to a length of n
>> c.. Rounding right-shifts (correctly rounded integer divide by powers of
>> 2)
>> d.. Saturating arithmetic operations
>> e.. Multi-word shifts (used for things like inserting in the middle of a
>> vector<bool>)
>> f.. Bit reversal
>> g.. Two-word divide by one-word value (there is often a special
>> instruction for that)
>> h.. Bit-interleaved arithmetic operations (used for Morton
>> order/cache-oblivious traversals of matrices and similar things)
>> i.. Everything from chapter 5 of
>> https://www-01.ibm.com/chips/techlib/techlib.nsf/techdocs/852569B20050FF7785256996007558C6
>> "
>>
>> In order to mentor this program I will need to understand what is behind
>> each line.
>>
>> Be free to contact me off line, and we will discuss of this subject.
>>
>> Best,
>> Vicente
>>
>>
>>
>> _______________________________________________
>> Unsubscribe & other changes:
>> http://lists.boost.org/mailman/listinfo.cgi/boost
>>
> _______________________________________________
> Unsubscribe & other changes: http://lists.boost.org/mailman/listinfo.cgi/boost
>


Boost list run by bdawes at acm.org, gregod at cs.rpi.edu, cpdaniel at pacbell.net, john at johnmaddock.co.uk