[{"name":"CsvData","comment":" The aim of this library is to provide functions for extracting csv data from\nstrings, and for extracting columns of data and list of points from csv data. Asuume\nthat you already have valid Csv data. Then\n\n       getColumnAsFloats k csv\n\nwill extract a list of floating point numbers from column `k` of the data `csv`.\nIn the same vein,\n\n       getPointList i j csv\n\nwill return a list of points using the data from columns i and column j.\n\nGetting csv data out of a string would be trivial if all data followed\nreasnoable conventions, as in the case of the data below:\n\n    Global Land and Ocean Temperature Anomalies\n    January-December 1880-2016\n    Units: Degrees Celsius\n    Base Period: 1901-2000\n    Year,Value\n    1880,-0.12\n    1881,-0.07\n    ...\n    2015,0.91\n    2016,0.95\n\nIn this example there are four lines of header text, distinguished by the\nfact that they contain no commans. At the fifth line, csv data begins,\ngiving names to the columns. The rest is good data: pairs of numbers.\nThe function `intelligentGet sep str` tries its best to return good\ncsv data from the string `str` using the separator `sep`, typically `\",\"`.\nIt returns a tuple `(Maybe Csv, Maybe String)`. If succesful, the return\nvalue is `(Just csv, Just header)`, where `csv : Csv` is good data and\n`header` is the header as discussed above. More details on this below.\n\n@docs get, getColumnAsFloats, getColumnAsStrings, getPointList, intelligentGet\n\n","unions":[],"aliases":[],"values":[{"name":"get","comment":" Return a Csv value for the string after\nfiltering out obvious bad fields (no commaa)\n","type":"String.String -> Maybe.Maybe Csv.Csv"},{"name":"getColumnAsFloats","comment":" Return column k of Csv data, converted to Floats\n","type":"Basics.Int -> Csv.Csv -> List.List Basics.Float"},{"name":"getColumnAsStrings","comment":" Return column k of Csv data.\n","type":"Basics.Int -> Csv.Csv -> List.List String.String"},{"name":"getPointList","comment":" Extract columns i and j from Csv data and return\nthe corresponding list of points.\n","type":"Basics.Int -> Basics.Int -> Csv.Csv -> Stat.Data"},{"name":"intelligentGet","comment":" Find the DataState of the string `str` using\na given separator, e.g., \",\" and attempt to Return\na pair `(Just csvData, Just headerString)`. To do this,\nfirst find the `DataState` of the input string. If it is\nNothing, representing invalid data, return `(Nothing, Nothing)`.\nOtherwise, return `(Just csvData, Just headerString)`\nNotice that if the data consists of a single column, it\nassumed to be a time series and so is augmented by prepending\na column `1,2,3, ...` using `makeSeries`.\n","type":"String.String -> String.String -> ( Maybe.Maybe Csv.Csv, Maybe.Maybe String.String )"}],"binops":[]},{"name":"Stat","comment":" \\\\ The aim of this library is to copmute statistics for 2D data, of type\n`Data = List Point`, where `Paint = { x : Float , y : Float }.  Thus, if\ndata is of type`Data`, you would calculate the aveerage of the x-values\nas in`average .x data`.  To get the full packate of statisitcal information\non such a value, use`statistis data`.  The result is a value of type`Statitiscs`, described in detail below. It is a record containting the\nmean and standard deviation of the x and y values, the coefficeints`m`and`b`(as in`y = mx + b`of the regression line, the`R^2\\` coefficient,\netc.\n)\n\n@docs Data, Point, Statistics, average, filterData, maximum, minimum, statistics, stdev\n\n","unions":[],"aliases":[{"name":"Data","comment":" The fundamental data structure: a list of points.\n","args":[],"type":"List.List Stat.Point"},{"name":"Point","comment":" A point in the Cartesian plane\ngiven by x and y coordinates\n","args":[],"type":"{ x : Basics.Float, y : Basics.Float }"},{"name":"Statistics","comment":" A `Statistics` value holds information like\nthe mean and standard deviation of the x and y\nvalues of `Data` value (list of points), as well\nas the coefficients `m` and `b` of the regression\nline, the `R^2` value, etc. Compute using\n`statistics data`.\n","args":[],"type":"{ m : Basics.Float, b : Basics.Float, n : Basics.Int, r2 : Basics.Float, xMin : Basics.Float, xMax : Basics.Float, xMean : Basics.Float, yMean : Basics.Float, xStdev : Basics.Float, yStdev : Basics.Float, leftDataPoint : Stat.Point, rightDataPoint : Stat.Point, leftRegressionPoint : Stat.Point, rightRegressionPoint : Stat.Point }"}],"values":[{"name":"average","comment":" Compute the average of a column in a list of data, e.g.,\n\n    ```average .x data```\n\nwhich computes the average of the x-values.\n\n","type":"(data -> Basics.Float) -> List.List data -> Maybe.Maybe Basics.Float"},{"name":"filterData","comment":" Apply filters to the data, This is set\nup as a pipeline so that other filters\ncan be added later. We may have to go\nwith different architectue if we have\nmay filters -- best to avoid too many\nrepeated list traversals.\n","type":"Stat.Filter -> Stat.Data -> Stat.Data"},{"name":"maximum","comment":" Compute the maximum of a column in a list of data, e.g.,\n\n    ```maximum .x data```\n\nwhich computes the maximum of the x-values.\n\n","type":"(data -> Basics.Float) -> List.List data -> Maybe.Maybe Basics.Float"},{"name":"minimum","comment":" Compute the minimum of a column in a list of data, e.g.,\n\n    ```minimum .x data```\n\nwhich computes the minimum of the x-values.\n\n","type":"(data -> Basics.Float) -> List.List data -> Maybe.Maybe Basics.Float"},{"name":"statistics","comment":" Compute the statistics of a `Data` value.\n","type":"Stat.Data -> Maybe.Maybe Stat.Statistics"},{"name":"stdev","comment":" Compute the standard deviation of a column in a list of data, e.g.,\n\n    ```stdev .x data```\n\nwhich computes the standard deviation of the x-values.\n\n","type":"(data -> Basics.Float) -> List.List data -> Maybe.Maybe Basics.Float"}],"binops":[]}]