"Algebras/Pfunc/alg_ali_pfunc.gap" computes the partition function value for a candidate, where the input is an alignment of RNAs. As well as for Algebras/MFE/alg_ali_pfunc.gap functions have to iterate through all alignment rows and RNA structures might change. We cannot keep energy and covariance as separate components, because it is unclear how to express zero covariance with Boltzmann's formula. Separation would cause problems with stochastic sampling.

Since algebra functions are commonly used by another algebra (Algebras/Pfunc/alg_ali_outside_pfunc.gap), they are outsourced in the file Algebras/Pfunc/algpart_ali_pfunc_basic.gap.