packages feed

moonlight-homology-0.1.0.0: src-topology/Moonlight/Homology/Pure/Topology/Observation.hs

module Moonlight.Homology.Pure.Topology.Observation
  ( TopologyObservationConfig (..),
    defaultTopologyObservationConfig,
  )
where

import Data.Kind (Type)
import Moonlight.Homology.Pure.Topology.Core (FilteredFiniteChainComplex)
import Moonlight.Homology.Pure.Topology.MacroScaffold (ScalarPotentialField)

type TopologyObservationConfig :: Type -> Type
data TopologyObservationConfig r = TopologyObservationConfig
  { observationFiltration :: Maybe (FilteredFiniteChainComplex r),
    observationPotential :: Maybe ScalarPotentialField,
    observationLowModeCount :: Int
  }

defaultTopologyObservationConfig :: TopologyObservationConfig r
defaultTopologyObservationConfig =
  TopologyObservationConfig
    { observationFiltration = Nothing,
      observationPotential = Nothing,
      observationLowModeCount = 0
    }