Changes between Version 10 and Version 11 of SoC2010


Ignore:
Timestamp:
Mar 8, 2010, 8:17:17 PM (13 years ago)
Author:
Andrew Sutton
Comment:

--

Legend:

Unmodified
Added
Removed
Modified
  • SoC2010

    v10 v11  
    6060 * Topology Generators - One useful set of algorithms not included in the BGL is the ability to easily generate graphs of specific topologies (e.g., [http://mathworld.wolfram.com/PathGraph.html path], [http://mathworld.wolfram.com/CycleGraph.html cycle], [http://mathworld.wolfram.com/StarGraph.html star], etc.). In addition to creating graphs of these topologies, it would be useful to induce these topologies on an existing set of vertices, and query a set of vertices to determine if the topology is admitted by a set of vertices.
    6161 
    62  * Graph Connectives - The Boost.Graph library is missing [http://mathworld.wolfram.com/Connective.html connectives].  Develop a set of generic algorithms for computing the [http://mathworld.wolfram.com/GraphUnion.html union], [http://mathworld.wolfram.com/GraphJoin.html join], [http://mathworld.wolfram.com/GraphIntersection.html intersection], and [http://mathworld.wolfram.com/GraphDifference.html difference] of graphs. Additional algorithms might be constructed for unary operations (e.g., line graph).
     62 * Graph Connectives - The Boost.Graph library is missing [http://mathworld.wolfram.com/Connective.html connectives].  Develop a set of generic algorithms for computing the [http://mathworld.wolfram.com/GraphUnion.html union], [http://mathworld.wolfram.com/GraphJoin.html join], [http://mathworld.wolfram.com/GraphIntersection.html intersection], and [http://mathworld.wolfram.com/GraphDifference.html difference] of graphs. Additional algorithms might be constructed for unary operations (e.g., line graph). Other operations may include a family of [http://mathworld.wolfram.com/GraphProduct.html graph products].
    6363
    64 == Heaps and Queues ==
     64== Heaps & Queues ==
    6565There are a number of data structures in `boost/pending` that implement different kinds of heaps and queues that are used in a number of different Boost.Graph (BGL) algorithms. These can be cleaned up, decoupled from the BGL and redeveloped into a useful library for advanced data structures.
    6666
     
    7272This project requires a working knowledge of C++, templates and data structures.
    7373
     74== Bits & Ints ==
     75Boost could use a utility library that brings together and extends a number of existing data structrues and utilities for working with binary data. Specifically, this library might include:
     76
     77 * Static and dynamic bitfields (i.e., in std, boost or the sandbox).
     78 * Compressed value array and vector (like `vector<bool>` but also for multi-bit values)
     79 * Programming utilities for bit and bitmask manipulation
     80 
     81This may also cover a number of integral special functions, including:
     82
     83 * Functions for getting carry bits from addition and the high-half of an integer multiply
     84 * Sign extension from a length of m bits to a length of n
     85 * Rounding right-shifts (correctly rounded integer divide by powers of 2)
     86 * Saturating arithmetic operations
     87 * Multi-word shifts (used for things like inserting in the middle of a vector<bool>)
     88 * Bit reversal
     89 * Two-word divide by one-word value (there is often a special instruction for that)
     90 * Bit-interleaved arithmetic operations (used for Morton order/cache-oblivious traversals of matrices and similar things)
     91 * Everything from chapter 5 of [https://www-01.ibm.com/chips/techlib/techlib.nsf/techdocs/
     92852569B20050FF7785256996007558C6]
     93
     94Students should be familiar with C++ templates, STL-style data structrues, and logic.
     95
     96
    7497= Summer of Code Policies =
    7598Forthcoming...