Safe Haskell | None |
---|---|
Language | Haskell2010 |
Simple oldstyle RNAfold constraints. A constraint yields a bonus or malus to energy.
- class MkConstraint a where
- newtype Constraint = Constraint {
- unConstraint :: Vector (Char, Int)
- bonusCC :: Vector Char
- nobonusCC :: Vector Char
- bonusTable :: Double -> Double -> Constraint -> Unboxed ((Z :. Int) :. Int) Double
Documentation
class MkConstraint a where Source #
We can create a constraint from different sources.
mkConstraint :: a -> Constraint Source #
newtype Constraint Source #
A constraint is nothing more than a vector of constraint characters together with a possible pairing for each character.
Constraint | |
|
bonusTable :: Double -> Double -> Constraint -> Unboxed ((Z :. Int) :. Int) Double Source #
Given a Constraint
, create an NxN matrix with bonus energies. These
energies can be included in all pair-creating functions and will disallow or
strongly favor certain pairings, while others will receive neither bonus nor
malus.
In case, a pair (i,j) is annotated as both, bonus- and malus-receiving, it will be set to receive a malus. This can happen, if something like "<" would give a bonus, but "x" gives a malus (and other cases).
TODO and again, we should parametrize over Energy, Score, etc (that is, Prim a)