Safe Haskell | None |
---|---|
Language | Haskell2010 |
- type LPState = LP Var Constant
- type Solution = Map Var Double
- type Constant = Double
- type Expr = LinExpr Var Constant
- data Point' a = Point {}
- type Frozen x = x Constant
- type FrozenPoint = Frozen Point'
- type FrozenPath = Frozen Path'
- data Segment v
- data Path' a
- newtype Decoration = Decoration String
- data LineTip
- type Color = String
- data LineCap
- data LineJoin
- type DashPattern = [(Constant, Constant)]
- data PathOptions = PathOptions {}
- startTip :: Lens' PathOptions LineTip
- lineWidth :: Lens' PathOptions Constant
- lineJoin :: Lens' PathOptions LineJoin
- lineCap :: Lens' PathOptions LineCap
- fillColor :: Lens' PathOptions (Maybe Color)
- endTip :: Lens' PathOptions LineTip
- drawColor :: Lens' PathOptions (Maybe Color)
- decoration :: Lens' PathOptions Decoration
- dashPattern :: Lens' PathOptions DashPattern
- data BoxSpec = BoxSpec {}
- nilBoxSpec :: BoxSpec
- data Backend lab m = Backend {
- _tracePath :: PathOptions -> FrozenPath -> m ()
- _traceLabel :: forall location x. Monad x => (location -> (FrozenPoint -> m ()) -> x ()) -> (forall a. m a -> x a) -> location -> lab -> x BoxSpec
- tracePath :: forall lab m. Lens' (Backend lab m) (PathOptions -> FrozenPath -> m ())
- traceLabel :: forall lab m location x. Monad x => Getter (Backend lab m) ((location -> (FrozenPoint -> m ()) -> x ()) -> (forall a. m a -> x a) -> location -> lab -> x BoxSpec)
- data Env lab m = Env {
- _diaTightness :: Constant
- _diaPathOptions :: PathOptions
- _diaBackend :: Backend lab m
- diaTightness :: forall lab m. Lens' (Env lab m) Constant
- diaPathOptions :: forall lab m. Lens' (Env lab m) PathOptions
- diaBackend :: forall lab m lab m. Lens (Env lab m) (Env lab m) (Backend lab m) (Backend lab m)
- defaultPathOptions :: PathOptions
- data Freeze m where
- newtype Diagram lab m a = Dia (RWST (Env lab m) [Freeze m] (Var, LPState) m a)
- freeze :: (Functor t, Monad m) => t Expr -> (t Constant -> m ()) -> Diagram lab m ()
- relax :: Monad m => Constant -> Diagram lab m a -> Diagram lab m a
- tighten :: Monad m => Constant -> Diagram lab m a -> Diagram lab m a
- rawNewVar :: Monad m => Diagram lab m Var
- newVar :: Monad m => Diagram lab m Expr
- newVars :: Monad m => [VarKind] -> Diagram lab m [Expr]
- newVars' :: Monad m => [(VarKind, Bounds Constant)] -> Diagram lab m [Expr]
- runDiagram :: Monad m => Backend lab m -> Diagram lab m a -> m a
- valueIn :: Solution -> Expr -> Double
- variable :: Var -> Expr
- constant :: Constant -> Expr
- (*-) :: Module Constant a => Constant -> a -> a
- avg :: Module Constant a => [a] -> a
- absoluteValue :: Monad m => Expr -> Diagram lab m Expr
- satAll :: Monad m => (Expr -> a -> Diagram lab m b) -> [a] -> Diagram lab m Expr
- maximVar :: Monad m => [Expr] -> Diagram lab m Expr
- minimVar :: Monad m => [Expr] -> Diagram lab m Expr
- (===) :: Expr -> Expr -> Monad m => Diagram lab m ()
- (>==) :: Expr -> Expr -> Monad m => Diagram lab m ()
- (<==) :: Expr -> Expr -> Monad m => Diagram lab m ()
- (=~=) :: Monad m => Expr -> Expr -> Diagram lab m ()
- minimize :: Monad m => Expr -> Diagram lab m ()
- maximize :: Monad m => Expr -> Diagram lab m ()
- drawText :: Monad m => Point' Expr -> lab -> Diagram lab m BoxSpec
- diaRaw :: Monad m => m a -> Diagram lab m a
Documentation
Functor Point' Source | |
Applicative Point' Source | |
Foldable Point' Source | |
Traversable Point' Source | |
Anchored Point Source | |
Module Constant v => Module Constant (Point' v) Source | |
Eq a => Eq (Point' a) Source | |
Group a => Num (Point' a) Source | |
Show a => Show (Point' a) Source | |
Group v => Group (Point' v) Source |
type FrozenPoint = Frozen Point' Source
type FrozenPath = Frozen Path' Source
Tikz line tip
type DashPattern = [(Constant, Constant)] Source
Tikz dash pattern
data PathOptions Source
Path drawing options
PathOptions | |
|
Size of a box, in points. boxDepth is how far the baseline is from the bottom. boxHeight is how far the baseline is from the top. (These are TeX meanings)
Backend | |
|
tracePath :: forall lab m. Lens' (Backend lab m) (PathOptions -> FrozenPath -> m ()) Source
traceLabel :: forall lab m location x. Monad x => Getter (Backend lab m) ((location -> (FrozenPoint -> m ()) -> x ()) -> (forall a. m a -> x a) -> location -> lab -> x BoxSpec) Source
Env | |
|
Monad m => MonadReader (Env lab m) (Diagram lab m) Source |
diaTightness :: forall lab m. Lens' (Env lab m) Constant Source
diaPathOptions :: forall lab m. Lens' (Env lab m) PathOptions Source
diaBackend :: forall lab m lab m. Lens (Env lab m) (Env lab m) (Backend lab m) (Backend lab m) Source
Monad m => MonadWriter [Freeze m] (Diagram lab m) Source |
runDiagram :: Monad m => Backend lab m -> Diagram lab m a -> m a Source
absoluteValue :: Monad m => Expr -> Diagram lab m Expr Source
Absolute value, which can be MINIMIZED or put and upper bound on (but not the other way around).
maximVar :: Monad m => [Expr] -> Diagram lab m Expr Source
Minimum or maximum of a list of expressions.
minimVar :: Monad m => [Expr] -> Diagram lab m Expr Source
Minimum or maximum of a list of expressions.