oc)  None &*3=BJK   is a portmanteau of  Hermitian and metric6 (in the sense as used in e.g. general relativity).    (c) Justus Sagemller 2013GPL v3!(@) sagemuej $ smail.uni-koeln.de experimentalrequires GHC>6 extensions Safe-InferredContrast orange.Contrast magenta.Contrast violet.Contrast cyan.0Either black or white, depending on the context. !Unlike the typical types such as , this one has semantic more than physical meaning.!" #$%&'()*+,-./012345678!" #$%&'()*+,-./012345678!" &%$#'()*+,-./012345678(c) Justus Sagemller 2013-2014GPL v3"(@) sagemueller $ geo.uni-koeln.de experimentalrequires GHC>6 extensionsNone!"*-234=BEHJKMT Plot a sequence of points (x,y). The appearance of the plot will be automatically chosen to match resolution and point density: at low densities, each point will simply get displayed on its own. When the density goes so high you couldn't distinguish individual points anyway, we switch to a trace view , approximating the probability density function around a local mean path , which is rather more insightful (and much less obstructive/clunky) than a simple cloud of independent points.In principle, this should be able to handle vast amounts of data (so you can, say, directly plot an audio file); at the moment the implementation isn't efficient enough and will get slow for more than some 100000 data points.9Build an interval from specified boundary points. No matter which of these points is higher, the result will always be the interval in between (i.e., 3 9 1f will yield the interval [1,3], not an empty set or some "oriented interval" [3,1]). The fixity infixl 6: was chosen so you can write 2D bounding-boxes as e.g. -1...4 -*| -1...1.:Cartesian product of intervals.; Inverse of  uncurry (:). This is a partial function , since <es can be empty.Plot some plot objects to a new interactive GTK window. Useful for a quick preview of some unknown data or real-valued functions; things like selection of reasonable view range and colourisation are automatically chosen.Example:  plotWindow [ fnPlot cos , tracePlot [(x,y) | x<-[-1,-0.96..1] , y<-[0,0.01..1] , abs (x^2 + y^2 - 1) < 0.01 ]] This gives such a plot window: 'images/examples/cos-encircle-points.png9And that can with the mouse wheel be zoomed/browsed, like +images/examples/cos-encircle-points-far.pngThe individual objects you want to plot can be evaluated in multiple threads, so a single hard calculatation won't freeze the responsitivity of the whole window. Invoke e.g. from  ghci +RTS -N4 to benefit from this._Plot an (assumed continuous) function in the usual way. Since this uses functions of actual = values, you have more liberty of defining functions with range-pattern-matching etc., which is at the moment not possible in the > category.However, because = can't really proove properties of a mathematical function, aliasing and similar problems are not taken into account. So it only works accurately when the function is locally linear on pixel scales (what most other plot programs just assume silently). In case of singularities, the nave thing is done (extend as far as possible; vertical line at sign change), which again is common enough though not really right.We'd like to recommend using  whenever possible, which automatically adjusts the resolution so the plot is guaranteed accurate (but it's not usable yet for a lot of real applications).Plot a continuous function in the usual way, taking arguments from the x-Coordinate and results to the y one. The signature looks more complicated than it is; think about it as requiring a polymorphic ?) function. Any simple expression like  (\x -> sin x / exp (x^2))< will work (but the view must not contain singularities).?Under the hood this uses the category of continuous functions, >, to proove that no details are omitted (like small high-frequency bumps). The flip side is that this does not always work very efficiently, in fact it can easily become exponentially slow for some parameters. Make sure to run multithreaded, to prevent hanging your program this way. Also consider limiting the memory: if you try to plot across singularities, the program may well eat up all available resorces before failing. (But it will never succeed  and plot something wrong!)In the future, we would like to switch to the category of piecewise continuously-differentiable functions. That wouldn't suffer from said problems, and should also generally be more efficient. (That category is not yet implemented in Haskell.)XPlot a continuous, parametric function , i.e. mapping the real line to a path in !.When you plot   /  , it is ensured that the (initial) view encompasses (at least) the specified range. Note there is nothing special about these flag  objects: any o can request a certain view, e.g. for a discrete point cloud it's obvious and a function defines at least a y-range for a given x/-range. Only use explicit range when necessary. When you plot   /  , it is ensured that the (initial) view encompasses (at least) the specified range. Note there is nothing special about these flag  objects: any o can request a certain view, e.g. for a discrete point cloud it's obvious and a function defines at least a y-range for a given x/-range. Only use explicit range when necessary.@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~$Number of subdivisions to "go down".Relative translation (xw, yh).Relative zoom.9:;   m@ABCDEFGHIJKNMLOPQRSTUVWXYZ[\]^_`abcdefghijklm vutsrqponwyxz{|}~9:; 9:      !"#$%&'()*'+,-./0123456789:;<=>?@ABCDEFGHIJKLLMNOPQRRSTUVWXYYZ[\]^_`abbcdefgghiijklmmnopqrstuvwxyz{|}~dynamic-plot-0.1.0.0Graphics.Dynamic.Plot.R2Data.LinearMap.HerMetricGraphics.Dynamic.Plot.ColourDrawColorDynamicPlottable Plottableplot tracePlot plotWindow continFnPlotfnPlot paramPlot xInterval yInterval HerMetric getHerMetric HasMetric DualSpace<.>^^<.> projectormetricSqmetric metriScalemetrics$fVectorSpaceHerMetric$fAdditiveGroupHerMetric $fHasMetricR2$fHasMetric(,)$fHasMetricDoubleBlueGreenYellowRedNeutralColour ColourScheme BaseColour CustomColourPalerContrastAColourFColourneutralcontrastgreymagentaredorangeyellowgreencyanbluevioletpaleroppositedefaultColourSchemedefaultColourSeq hueInvert...-*|xyRangesdiagrams-lib-1.2.0.3Diagrams.BoundingBox BoundingBoxghc-prim GHC.TypesDoublemanifolds-0.1.0.0 Data.Manifold:-->base GHC.FloatFloatingTextTK txtCairoStyletxtSizexAspectpadding extraTopPad DiagramTK textTools viewScope AlignmentAlignTopAlignMid AlignBottom TextAlignmenthAlignvAlignTextObj PlainTextAnnotationPlace ExactPlace AnnotationObjTextAnnotation Annotation getAnnotation placement isOptional NecessityAxis axisPosition AxisClass visibleAxes axisStrength decPrecision DynamicAxes yAxisClasses xAxisClasses AxesStyleDynamicAxesStyle KeyAction QuitProgram ZoomOut_yZoomIn_y ZoomOut_xZoomIn_xMoveDownMoveUp MoveRightMoveLeft ScrollAction ScrollZoomOut ScrollZoomInGraphViewStatelastStableView realtimeView nextTgtView graphColorrelevantRange_xrelevantRange_yisTintableMonochromic axesNecessity dynamicPlotPlotplotAnnotationsgetPlotIntervalGraphWindowSpeclBoundrBoundbBoundtBound xResolution yResolution colourScheme-.^> RecursivePCMRecursiveSamplesRecursiveSamples' rPCMlinFitdetailspFitDeviations samplingSpecsplIdLen rPCMNodeInfoPCMRangepcmStartpcmSampleDurationDevBoxes deviations maxDeviation LinFitParams constCoefflinCoeff SplitList getSplListDiffList getDiffList diffListLenTriplePairDiagramR^diffList presplitList splitEvenly fromDiffListlinFitMeanInCtrdUnitIntvfmapRPCMNodeInforecursiveSamples'lRouterRouterecursiveSamples recursivePCM splineRep l₀splineRep rPCMSampleflattenPCM_resoCutflattenPCM_P2_resoCutturnLeftrPCM_R2_boundingBox solveToLinFit normlsdIddrPCMLinFitRangerPCMPlot moveStepRel realInterval onInterval spInterval intersectsincludesautoDefaultViewdefResXdefResYdefaultScrollBehaviourscrollZoomStrength defaultKeyMapcrtDynamicAxes dynamicAxes superfluent simpleLineprettyFloatShow maybeReaddefaultTxtStyleprerenderAnnotationprovidedlgceilflorfromInt $fNFDataPoint $fMonoidPlot$fSemigroupPlot$fSemigroupInterval$fShowGraphWindowSpec$fPlottableRecursiveSamples'$fPlottableRecursiveSamples'0$fPlottableRecursiveSamples'1$fFunctorRecursiveSamples'$fSemigroupSplitList$fMonoidDiffList$fSemigroupDiffList$fPlottableQDiagram $fPlottable[]$fPlottable:-->$fPlottable:-->0$fPlottable(->)