Benchmarks and Utilities for BloBB and CompaSS

Hayward Chan and Igor Markov

All (small) C++ programs here are written for immediate convenience of the author. They are not expected to be robust.

Benchmarks (top)

MCNC and GSRC benchmarks in blocks/nets/pl format are available here.

Hard version Soft version (aspect ratio constraints)
[0.50,2.00] [0.55,1.80] [0.59,1.70] [0.63,1.60] [0.67,1.50]
MCNC (9 - 49 blks) txt soft format soft format soft format soft format soft format
GSRC (10 - 300 blks) txt soft format soft format soft format soft format soft format
ami49_X suite

(98 - 156K blks)

dimensions for larger benchmarks are divided by 10 txt --- --- --- --- ---

random test cases

(6 - 500 blks)

dimensions between 1..200

all distinct: txt

3-type: txt

2-type: txt --- --- --- --- ---

Format Converters (top)

These converters deal with the "txt", "soft", "bbb", "blocks/nets/pl" and "yal" formats. Details about the "txt", "soft" and "bbb" formats can be found in CompaSS' manual (available here), The "blocks/nets/pl" and "yal" formats are described here.

blocks2txt (source, Linux executable)

usage: blocks2txt <input-blocks-file> <output-txt-file>
example: blocks2txt input.blocks output.txt

blocks2soft (source, Linux executable)

usage: blocks2soft <input-blocks-file> <output-soft-file>
example: blocks2soft input.blocks output.soft

txt2blocks (source, Linux executable)

description: It converts a txt file to a set of output files in blocks/nets/pl format, which contains all the blocks with no nets and pads. The example below creates files output.blocks, output.nets and output.pl
usage: txt2blocks <input-blocks-file> <output-file-prefix>
example: txt2blocks input.txt output

txt2yal (source, Linux executable)

description: It converts a txt file to a yal file, which contains all the blocks with no nets and pads.
usage: txt2yal <input-txt-file> <output-yal-file>
example: txt2yal input.txt output.yal

txt2soft (source, Linux executable)

description: It converts a txt file to a soft file. The blocks in the soft file have the same area as they do in the txt file, but they are now soft. They can take aspect ratio from 1/<max-aspect-ratio> to <max-aspect-ratio>. In the example below, all blocks can take aspect ratio from 0.5 to 2.0 inclusive. If <max-aspect-ratio> is less than 1, it becomes the aspect-ratio lower bound instead.
usage: txt2soft <input-txt-file> <output-soft-file> <max-aspect-ratio>
example: txt2soft input.txt output.soft 2

soft2soft (source, Linux executable)

description: It allows the user to change the aspect ratio constraints for blocks in the input file. In the example below, the blocks in output.soft can take aspect ratios from 0.33 to 3.00, regardless their aspect ratio constraints in input.soft.
usage: soft2soft <input-soft-file> <output-soft-file> <new-max-aspect-ratio>
example: blocks2soft input.soft output.soft 3

bbb2pl (source, Linux executable)

description: It converts a bbb file to an output pl file, with no pads of course.
usage: bbb2pl <input-bbb-file> <output-pl-file>
example: bbb2pl input.bbb output.pl

Visualizers (top)

plotout (source, Linux executable)

description: It plots the packing specified by a bbb file using gnuplot. The gnuplot script "out" is created. Applying "gnuplot out" plots the packing, and saving it in postscript format.
usage: plotout <input-file> <output-file> [options]
example: The following sequence of commands create a postscript file "output.ps" from "input.bbb"

plotout input.bbb output.ps

gnuplot out

options:

bbb2matlab (source, Linux executable)

description: It converts a bbb file to an m-file that draws the packing in Matlab.
usage: bbb2matlab <input-file> <output-file> [options]
examples:
options:
hints: Suppose output.m is created. In Matlab, the following sequence of commands may be useful to create a tight eps file output.eps.

output; print -deps output.eps

Other Utilities (top)

multiply (source, Linux executable)

description: It creates a new instance that is X copies of the original. In the example below, output.txt constains 4 copies of input.txt and the dimensions of all blocks in output.txt are 1/C of those in input.txt. C equals 1 if it is not specified.
usage: multiply <input-txt-file> <output-txt-file> <X> [optional down-scaling constant C]
example: multiply input.txt output.txt 4 2

txtascend (source, Linux executable)

description: It sorts the blocks in input.txt according to their areas. Smaller blocks succeed larger blocks. The input instance is expected to be small. It uses a naive quadratic-time sorting algorithm.
usage: txtascend <input-txt-file> <output-txt-file>
example: txtascend input.txt output.txt

txtdescend (source, Linux executable)

Similar to txtascend, except that it returns the blocks in descending order, according to their areas.

Last update: May 12, 2004

AltStyle によって変換されたページ (->オリジナル) /