boltzmann-brain-1.4: Boltzmann sampler compiler for combinatorial systems.

Copyright(c) Maciej Bendkowski 2017-2018
Safe HaskellNone



The following module implements subroutines for combinatorial systems based on the excellent paper of Carine Pivoteau, Bruno Salvy, and Michèle Soria:

Algorithms for combinatorial structures: Well-founded systems and Newton iterations. Journal of Combinatorial Theory, Series A 119 (2012) p. 1711–1773.



isEmptyAtZero :: (Eq a, Num a) => System a -> Bool Source #

Evaluates the given system Y = H(Z, Y) at coordinates Z = 0 and Y = 0 and checks if the outcome system is empty, i.e. H(0, 0) = 0 or not.

zeroCoordinates :: System a -> Bool Source #

Detects whether the given system, satisfying H(0,0) = 0 and having a nilpotent Jacobian matrix, admits zero coordinates in its solution. See also the 0-coord subroutine of Pivoteau et al.

wellFoundedAtZero :: (Eq a, Num a) => System a -> Bool Source #

Checks whether the given system is well-founded at zero. Note that the input system is assumed to satisfy H(0,0) = 0. See also the isWellFoundedAt0 subroutine of Pivoteau et al.