[{"name":"FastBenchmark.Backend","comment":"\n\n\n# Main application\n\n@docs app\n\n\n# Types\n\n@docs Msg, Ports, Program\n\n","unions":[{"name":"Msg","comment":" The message type for the backend.\n","args":["graph","function"],"cases":[]}],"aliases":[{"name":"Ports","comment":" Ports needed for the backend.\n","args":["msg"],"type":"{ fromFrontend : (Codec.Value -> msg) -> Platform.Sub.Sub msg, toFrontend : Codec.Value -> Platform.Cmd.Cmd msg }"},{"name":"Program","comment":" A convenient type for a backend `Program`.\n","args":["graph","function"],"type":"Platform.Program {} {} (FastBenchmark.Backend.Msg graph function)"}],"values":[{"name":"app","comment":" Main backend app.\n","type":"FastBenchmark.Config.Config graph function -> FastBenchmark.Backend.Ports (FastBenchmark.Backend.Msg graph function) -> FastBenchmark.Backend.Program graph function"}],"binops":[]},{"name":"FastBenchmark.Config","comment":"\n\n\n# Types\n\n@docs Config\n\n\n# Building configuration\n\n@docs init, withTimeout, withRetry\n\n\n# To params list\n\n@docs params\n\n\n# Visualization\n\n@docs functionToString, graphTitle\n\n\n# Other configuration\n\n@docs timeout, retry, runFunction\n\n\n# Codecs\n\n@docs functionCodec, graphCodec\n\n","unions":[{"name":"Config","comment":" All the information needed to run a benchmark.\n","args":["graph","function"],"cases":[]}],"aliases":[],"values":[{"name":"functionCodec","comment":" Codec for functions.\n","type":"FastBenchmark.Config.Config graph function -> Codec.Codec function"},{"name":"functionToString","comment":" Converts a function to a user-visible string.\n","type":"FastBenchmark.Config.Config graph function -> function -> String.String"},{"name":"graphCodec","comment":" Codec for graphs.\n","type":"FastBenchmark.Config.Config graph function -> Codec.Codec graph"},{"name":"graphTitle","comment":" Gets a graph title.\n","type":"FastBenchmark.Config.Config graph function -> graph -> String.String"},{"name":"init","comment":" Initializes the benchmark configuration with some mandatory options.\n","type":"{ graphTitle : graph -> String.String, functionToString : function -> String.String, graphCodec : Codec.Codec graph, functionCodec : Codec.Codec function, graphs : List.List graph, graphData : graph -> { functions : List.List function, sizes : List.List Basics.Int }, runFunction : FastBenchmark.Types.Param graph function -> () -> () } -> FastBenchmark.Config.Config graph function"},{"name":"params","comment":" Gets the list of all possible params to benchmark.\n","type":"FastBenchmark.Config.Config graph function -> List.List (FastBenchmark.Types.Param graph function)"},{"name":"retry","comment":" Gets the retry configuration.\n","type":"FastBenchmark.Config.Config graph function -> Maybe.Maybe { times : Basics.Int, percentage : Basics.Float }"},{"name":"runFunction","comment":" Prepares a function for running inside a benchmark\n","type":"FastBenchmark.Config.Config graph function -> FastBenchmark.Types.Param graph function -> Benchmark.LowLevel.Operation"},{"name":"timeout","comment":" Gets the timeout (in ms) for each `Param`.\n","type":"FastBenchmark.Config.Config graph function -> Maybe.Maybe Basics.Float"},{"name":"withRetry","comment":" Try running the benchmark more times (up to `times`) if `max - min` would be more than `percentage * median`.\n\nReasonable values are `5` for `times` and `0.5` for `percentage`.\n\n","type":"{ times : Basics.Int, percentage : Basics.Float } -> FastBenchmark.Config.Config graph function -> FastBenchmark.Config.Config graph function"},{"name":"withTimeout","comment":" Sets a timeout (in ms) for each `Param`.\n","type":"Basics.Float -> FastBenchmark.Config.Config graph function -> FastBenchmark.Config.Config graph function"}],"binops":[]},{"name":"FastBenchmark.Frontend","comment":"\n\n\n# Main application\n\n@docs app\n\n\n# Types\n\n@docs Flags, Msg, Model, Ports, Program\n\n","unions":[{"name":"Model","comment":" The frontend model.\n","args":["graph","function"],"cases":[]},{"name":"Msg","comment":" The message type for the frontend.\n","args":["graph","function"],"cases":[]}],"aliases":[{"name":"Flags","comment":" Flags needed for the frontend.\n","args":[],"type":"{ workersCount : Basics.Int }"},{"name":"Ports","comment":" Ports needed for the frontend.\n","args":["msg"],"type":"{ terminateAll : {} -> Platform.Cmd.Cmd msg, fromBackend : ({ index : Basics.Int, data : Codec.Value } -> msg) -> Platform.Sub.Sub msg, toBackend : { index : Basics.Int, data : Codec.Value } -> Platform.Cmd.Cmd msg }"},{"name":"Program","comment":" A convenient type for a frontend `Program`.\n","args":["graph","function"],"type":"Platform.Program FastBenchmark.Frontend.Flags (FastBenchmark.Frontend.Model graph function) (FastBenchmark.Frontend.Msg graph function)"}],"values":[{"name":"app","comment":" Main frontend app.\n","type":"FastBenchmark.Config.Config graph function -> FastBenchmark.Frontend.Ports (FastBenchmark.Frontend.Msg graph function) -> FastBenchmark.Frontend.Program graph function"}],"binops":[]},{"name":"FastBenchmark.Types","comment":"\n\n\n# Types\n\n@docs Stats, Param\n\n\n# Messages\n\n@docs ToFrontend, ToBackend, Index\n\n","unions":[{"name":"ToBackend","comment":" Message that gets sent to the backend.\n","args":["graph","function"],"cases":[["TBParams",[]],["TBRun",["FastBenchmark.Types.Param graph function"]]]},{"name":"ToFrontend","comment":" Message that gets sent to the frontend.\n","args":["graph","function"],"cases":[["TFParams",["{ timeout : Maybe.Maybe Basics.Float, params : List.List (FastBenchmark.Types.Param graph function) }"]],["TFResult",["FastBenchmark.Types.Param graph function","Result.Result String.String FastBenchmark.Types.Stats"]]]}],"aliases":[{"name":"Index","comment":" Index of the Web Worker.\n","args":[],"type":"Basics.Int"},{"name":"Param","comment":" Parameters needed to measure the timing.\n","args":["graph","function"],"type":"{ graph : graph, function : function, size : Basics.Int }"},{"name":"Stats","comment":" Statistics un run times.\n","args":[],"type":"{ firstQuartile : Basics.Float, median : Basics.Float, thirdQuartile : Basics.Float, max : Basics.Float, min : Basics.Float, outliers : List.List Basics.Float }"}],"values":[],"binops":[]}]