Spec Fixed CyclicShape
CyclicShape defined at compile time.

Extends CyclicShape
All Extended CyclicShape
Defined in <seqan/modifier.h>
Signature template <unsigned L, typename THardwiredShape, unsigned R> class CycledShape<FixedShape<L, GappedShape<THardwiredShape>, R> >;

Template Parameters

L Left offset. Number of leading zeros of the Shape.
R Right offset. Number of trailing zeros of the Shape.
THardwiredShape A specialization of HardwiredShape
TSize Size type of the CyclicShape

Member Function Overview

Interface Function Overview

Interface Functions Inherited From CyclicShape

Interface Metafunction Overview

Interface Metafunctions Inherited From CyclicShape

Member Variable Overview

Member Variables Inherited From CyclicShape

Detailed Description

Fixed CylcicShapes contain their information at compile time, so in most cases no object must be created. The notation is similar to the one of HardwiredShape: Template paramters code for the distance between ones. Additionally you have to specify the number of leading and trailing zeros.

The notation is chosen in such a way that predefined Shapes like PatternHunter can be plugged into a CyclicShape. Like HardwiredShapes, Fixed CyclicShapes are limited to a weight of 21.

See CyclicShape for an example on how to use a CyclicShape.

See Also

Member Functions Detail

CyclicShape(); CyclicShape(shape);

The constructor


shape A FixedCyclicShape of this type

This constructor does not do anything, the FixedCyclicShape is defined by its type alone. See the example on how to create a CyclicShape:

        typedef GappedShape<HardwiredShape<1, 1, 3, 2> >       TInnerShape; // 11100101
        // ^--You can also use predefied Shapes here, e.g. Patternhunter

        typedef CyclicShape<FixedShape<2, TInnerShape, 1> > TShape;     // 00111001010
        TShape shape;

Data Races

Thread safety unknown!

Interface Metafunctions Detail

WEIGHT<CyclicShape<FixedShape<L, TInnerShape, R> > >::VALUE;

Weight (number of care-positions) of Fixed CyclicShapes

Template Parameters

L left offset
R right offset
TInnerShape specialization of a hardwired GappedShape


Weight of a fixed CyclicShape (enum).

Member Variables Detail

TSize[] FixedCyclicShape::diffs

Distances between care positions.

static const TSize diffs[] has weight many non-zero entries in the beginning, the remaining ones are zero. An additional entry at position weight1 holds the cyclic distance from the last "1" to the first one. During the iteration with a ModCyclicShapeModifiedIterator an index position keeps track of the position inside diffs.