packages feed

math-grads 0.1.6.2 → 0.1.6.4

raw patch · 3 files changed

+22/−16 lines, 3 filesPVP: minor bump suggested

API additions: PVP suggests at least a minor version bump

API changes (from Hackage documentation)

+ Math.Grads.GenericGraph: instance (GHC.Classes.Ord v, GHC.Classes.Eq v) => GHC.Base.Monoid (Math.Grads.GenericGraph.GenericGraph v e)
+ Math.Grads.GenericGraph: instance GHC.Classes.Ord v => GHC.Base.Semigroup (Math.Grads.GenericGraph.GenericGraph v e)

Files

math-grads.cabal view
@@ -1,6 +1,6 @@ cabal-version: >=1.10 name: math-grads-version: 0.1.6.2+version: 0.1.6.4 license: BSD3 license-file: LICENSE copyright: 2017 Alexandr Sadovnikov
src/Math/Grads/Algo/SSSR.hs view
@@ -5,22 +5,23 @@   ( findSSSR   ) where -import           Prelude                 hiding (map)--import           Control.Arrow           ((***))-import           Control.Lens            (over, _1, _2)-import           Data.Bimap              ((!>))-import           Data.List               (intersect, nub, sort)-import           Data.List.Index         (ifoldl)-import           Data.Map.Strict         (Map)-import qualified Data.Map.Strict         as M (empty, insert, member, (!))-import           Data.Matrix             (Matrix, matrix, unsafeGet, unsafeSet)-import qualified Data.Set                as S+import           Prelude                    hiding (map) -import           Math.Grads.Algo.Cycles  (getCyclic)-import           Math.Grads.GenericGraph (GenericGraph, subgraphWithReindex)-import           Math.Grads.Graph        (EdgeList, toList)+import           Control.Arrow              ((***))+import           Control.Lens               (over, _1, _2)+import           Data.Bimap                 ((!>))+import           Data.List                  (intersect, nub, sort)+import           Data.List.Index            (ifoldl)+import           Data.Map.Strict            (Map)+import qualified Data.Map.Strict            as M (empty, insert, member, (!))+import           Data.Matrix                (Matrix, matrix, unsafeGet,+                                             unsafeSet)+import qualified Data.Set                   as S +import           Math.Grads.Algo.Cycles     (getCyclic)+import           Math.Grads.Algo.Traversals (getComps)+import           Math.Grads.GenericGraph    (GenericGraph, subgraphWithReindex)+import           Math.Grads.Graph           (EdgeList, toList)  -- | RP-Path algorithm for searching the smallest set of smallest rings. -- <https://www.ncbi.nlm.nih.gov/pubmed/19805142>@@ -31,7 +32,7 @@     (reindex, cyclicGraph) = subgraphWithReindex graph . S.toList $ getCyclic graph     g@(_, edges)           = toList cyclicGraph     (n, m)                 = (length *** length) g-    maxSSSRs               = m - n + 1+    maxSSSRs               = m - n + length (getComps cyclicGraph)      edgeIndex :: Map (Int, Int) Int     edgeIndex = ifoldl insertEdge M.empty edges
src/Math/Grads/GenericGraph.hs view
@@ -114,6 +114,11 @@ instance Functor (GenericGraph v) where   fmap f (GenericGraph idxArr revMap adjArr) = GenericGraph idxArr revMap (((f <$>) <$>) <$> adjArr) +instance Ord v => Semigroup (GenericGraph v e) where+  (<>) = sumGraphs++instance (Ord v, Eq v) => Monoid (GenericGraph v e) where+  mempty = fromList ([], [])  -- | 'fmap' which acts on adjacency lists of each vertex. --