| Safe Haskell | Safe-Inferred |
|---|---|
| Language | Haskell2010 |
PlutusCore.Evaluation.Machine.CostingFun.SimpleJSON
Description
A JSON representation of costing functions for Plutus Core builtins which produces a simple cost model which can be used from Agda and other executables
Synopsis
- data LinearFunction = LinearFunction {}
- data TwoVariableLinearFunction = TwoVariableLinearFunction {}
- data OneVariableQuadraticFunction = OneVariableQuadraticFunction {}
- data TwoVariableQuadraticFunction = TwoVariableQuadraticFunction {}
- data TwoVariableWithInteractionFunction = TwoVariableWithInteractionFunction {}
- data ExpModCostingFunction = ExpModCostingFunction {}
- data Model
- = ConstantCost Integer
- | AddedSizes LinearFunction
- | MultipliedSizes LinearFunction
- | MinSize LinearFunction
- | MaxSize LinearFunction
- | LinearInX LinearFunction
- | LinearInY LinearFunction
- | LinearInY2 LinearFunction Integer
- | LinearInZ LinearFunction
- | LinearInU LinearFunction
- | LiteralInYOrLinearInZ LinearFunction
- | LinearInMaxYZ LinearFunction
- | LinearInXAndY TwoVariableLinearFunction
- | LinearInYAndZ TwoVariableLinearFunction
- | QuadraticInX OneVariableQuadraticFunction
- | QuadraticInY OneVariableQuadraticFunction
- | QuadraticInZ OneVariableQuadraticFunction
- | QuadraticInXAndY TwoVariableQuadraticFunction
- | WithInteractionInXAndY TwoVariableWithInteractionFunction
- | SubtractedSizes LinearFunction Integer
- | ConstAboveDiagonal Integer Model
- | ConstBelowDiagonal Integer Model
- | ConstOffDiagonal Integer Model
- | ExpModCost ExpModCostingFunction
- | AboveAndBelowDiagonal Integer Model
- data CpuAndMemoryModel = CpuAndMemoryModel {}
Documentation
data LinearFunction Source #
Constructors
| LinearFunction | |
Fields | |
Instances
| FromJSON LinearFunction Source # | |
Defined in PlutusCore.Evaluation.Machine.CostingFun.SimpleJSON Methods parseJSON ∷ Value → Parser LinearFunction Source # | |
| Show LinearFunction Source # | |
| Lift LinearFunction Source # | |
Defined in PlutusCore.Evaluation.Machine.CostingFun.SimpleJSON Methods lift ∷ Quote m ⇒ LinearFunction → m Exp Source # liftTyped ∷ ∀ (m ∷ Type → Type). Quote m ⇒ LinearFunction → Code m LinearFunction Source # | |
data TwoVariableLinearFunction Source #
Constructors
| TwoVariableLinearFunction | |
Instances
| FromJSON TwoVariableLinearFunction Source # | |
| Show TwoVariableLinearFunction Source # | |
| Lift TwoVariableLinearFunction Source # | |
Defined in PlutusCore.Evaluation.Machine.CostingFun.SimpleJSON Methods lift ∷ Quote m ⇒ TwoVariableLinearFunction → m Exp Source # liftTyped ∷ ∀ (m ∷ Type → Type). Quote m ⇒ TwoVariableLinearFunction → Code m TwoVariableLinearFunction Source # | |
data OneVariableQuadraticFunction Source #
Constructors
| OneVariableQuadraticFunction | |
Instances
data TwoVariableQuadraticFunction Source #
Constructors
| TwoVariableQuadraticFunction | |
Instances
data TwoVariableWithInteractionFunction Source #
Constructors
| TwoVariableWithInteractionFunction | |
Instances
data ExpModCostingFunction Source #
Constructors
| ExpModCostingFunction | |
Fields | |
Instances
| FromJSON ExpModCostingFunction Source # | |
| Show ExpModCostingFunction Source # | |
| Lift ExpModCostingFunction Source # | |
Defined in PlutusCore.Evaluation.Machine.CostingFun.SimpleJSON Methods lift ∷ Quote m ⇒ ExpModCostingFunction → m Exp Source # liftTyped ∷ ∀ (m ∷ Type → Type). Quote m ⇒ ExpModCostingFunction → Code m ExpModCostingFunction Source # | |
This type reflects what is actually in the JSON. The stuff in CostingFun.Core and CostingFun.JSON is much more rigid, allowing parsing only for the model types applicable to the various ModelNArguments types; it also requires entries for everything in DefaultFun. Using the type defined here allows us to be more flexible and parse stuff that's not exactly what's expected in builtinCostModel.json.
Constructors
data CpuAndMemoryModel Source #
A CPU usage modelling function and a memory usage modelling function bundled together
Constructors
| CpuAndMemoryModel | |
Fields | |
Instances
| FromJSON CpuAndMemoryModel Source # | |
| Show CpuAndMemoryModel Source # | |
| Lift CpuAndMemoryModel Source # | |
Defined in PlutusCore.Evaluation.Machine.CostingFun.SimpleJSON Methods lift ∷ Quote m ⇒ CpuAndMemoryModel → m Exp Source # liftTyped ∷ ∀ (m ∷ Type → Type). Quote m ⇒ CpuAndMemoryModel → Code m CpuAndMemoryModel Source # | |