Sophie

Sophie

distrib > Mageia > 5 > i586 > media > core-release > by-pkgid > 6e204a966e8c42d976f99a1700ce5f20 > files > 3164

ghc-7.4.2-4.mga5.i586.rpm

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"><html xmlns="http://www.w3.org/1999/xhtml"><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /><title>Vectorise.Utils</title><link href="ocean.css" rel="stylesheet" type="text/css" title="Ocean" /><script src="haddock-util.js" type="text/javascript"></script><script type="text/javascript">//<![CDATA[
window.onload = function () {pageLoad();setSynopsis("mini_Vectorise-Utils.html");};
//]]>
</script></head><body><div id="package-header"><ul class="links" id="page-menu"><li><a href="index.html">Contents</a></li><li><a href="doc-index.html">Index</a></li></ul><p class="caption">ghc-7.4.2: The GHC API</p></div><div id="content"><div id="module-header"><table class="info"><tr><th>Safe Haskell</th><td>None</td></tr></table><p class="caption">Vectorise.Utils</p></div><div id="table-of-contents"><p class="caption">Contents</p><ul><li><a href="#g:1">Annotated Exprs
</a></li><li><a href="#g:2">PD Functions
</a></li><li><a href="#g:3">Scalars
</a></li><li><a href="#g:4">Naming
</a></li></ul></div><div id="synopsis"><p id="control.syn" class="caption expander" onclick="toggleSection('syn')">Synopsis</p><ul id="section.syn" class="hide" onclick="toggleSection('syn')"><li class="src short">module <a href="Vectorise-Utils-Base.html">Vectorise.Utils.Base</a></li><li class="src short">module <a href="Vectorise-Utils-Closure.html">Vectorise.Utils.Closure</a></li><li class="src short">module <a href="Vectorise-Utils-Hoisting.html">Vectorise.Utils.Hoisting</a></li><li class="src short">module <a href="Vectorise-Utils-PADict.html">Vectorise.Utils.PADict</a></li><li class="src short">module <a href="Vectorise-Utils-Poly.html">Vectorise.Utils.Poly</a></li><li class="src short"><a href="#v:collectAnnTypeArgs">collectAnnTypeArgs</a> ::  <a href="CoreSyn.html#t:AnnExpr">AnnExpr</a> b ann -&gt; (<a href="CoreSyn.html#t:AnnExpr">AnnExpr</a> b ann, [<a href="Type.html#t:Type">Type</a>])</li><li class="src short"><a href="#v:collectAnnDictArgs">collectAnnDictArgs</a> ::  <a href="CoreSyn.html#t:AnnExpr">AnnExpr</a> <a href="Var.html#t:Var">Var</a> ann -&gt; (<a href="CoreSyn.html#t:AnnExpr">AnnExpr</a> <a href="Var.html#t:Var">Var</a> ann, [<a href="CoreSyn.html#t:AnnExpr">AnnExpr</a> <a href="Var.html#t:Var">Var</a> ann])</li><li class="src short"><a href="#v:collectAnnTypeBinders">collectAnnTypeBinders</a> ::  <a href="CoreSyn.html#t:AnnExpr">AnnExpr</a> <a href="Var.html#t:Var">Var</a> ann -&gt; ([<a href="Var.html#t:Var">Var</a>], <a href="CoreSyn.html#t:AnnExpr">AnnExpr</a> <a href="Var.html#t:Var">Var</a> ann)</li><li class="src short"><a href="#v:collectAnnValBinders">collectAnnValBinders</a> ::  <a href="CoreSyn.html#t:AnnExpr">AnnExpr</a> <a href="Var.html#t:Var">Var</a> ann -&gt; ([<a href="Var.html#t:Var">Var</a>], <a href="CoreSyn.html#t:AnnExpr">AnnExpr</a> <a href="Var.html#t:Var">Var</a> ann)</li><li class="src short"><a href="#v:isAnnTypeArg">isAnnTypeArg</a> ::  <a href="CoreSyn.html#t:AnnExpr">AnnExpr</a> b ann -&gt; <a href="../base-4.5.1.0/Data-Bool.html#t:Bool">Bool</a></li><li class="src short"><a href="#v:replicatePD">replicatePD</a> :: <a href="CoreSyn.html#t:CoreExpr">CoreExpr</a> -&gt; <a href="CoreSyn.html#t:CoreExpr">CoreExpr</a> -&gt; <a href="Vectorise-Monad-Base.html#t:VM">VM</a> <a href="CoreSyn.html#t:CoreExpr">CoreExpr</a></li><li class="src short"><a href="#v:emptyPD">emptyPD</a> :: <a href="Type.html#t:Type">Type</a> -&gt; <a href="Vectorise-Monad-Base.html#t:VM">VM</a> <a href="CoreSyn.html#t:CoreExpr">CoreExpr</a></li><li class="src short"><a href="#v:packByTagPD">packByTagPD</a> :: <a href="Type.html#t:Type">Type</a> -&gt; <a href="CoreSyn.html#t:CoreExpr">CoreExpr</a> -&gt; <a href="CoreSyn.html#t:CoreExpr">CoreExpr</a> -&gt; <a href="CoreSyn.html#t:CoreExpr">CoreExpr</a> -&gt; <a href="CoreSyn.html#t:CoreExpr">CoreExpr</a> -&gt; <a href="Vectorise-Monad-Base.html#t:VM">VM</a> <a href="CoreSyn.html#t:CoreExpr">CoreExpr</a></li><li class="src short"><a href="#v:combinePD">combinePD</a> :: <a href="Type.html#t:Type">Type</a> -&gt; <a href="CoreSyn.html#t:CoreExpr">CoreExpr</a> -&gt; <a href="CoreSyn.html#t:CoreExpr">CoreExpr</a> -&gt; [<a href="CoreSyn.html#t:CoreExpr">CoreExpr</a>] -&gt; <a href="Vectorise-Monad-Base.html#t:VM">VM</a> <a href="CoreSyn.html#t:CoreExpr">CoreExpr</a></li><li class="src short"><a href="#v:liftPD">liftPD</a> :: <a href="CoreSyn.html#t:CoreExpr">CoreExpr</a> -&gt; <a href="Vectorise-Monad-Base.html#t:VM">VM</a> <a href="CoreSyn.html#t:CoreExpr">CoreExpr</a></li><li class="src short"><a href="#v:zipScalars">zipScalars</a> :: [<a href="Type.html#t:Type">Type</a>] -&gt; <a href="Type.html#t:Type">Type</a> -&gt; <a href="Vectorise-Monad-Base.html#t:VM">VM</a> <a href="CoreSyn.html#t:CoreExpr">CoreExpr</a></li><li class="src short"><a href="#v:scalarClosure">scalarClosure</a> :: [<a href="Type.html#t:Type">Type</a>] -&gt; <a href="Type.html#t:Type">Type</a> -&gt; <a href="CoreSyn.html#t:CoreExpr">CoreExpr</a> -&gt; <a href="CoreSyn.html#t:CoreExpr">CoreExpr</a> -&gt; <a href="Vectorise-Monad-Base.html#t:VM">VM</a> <a href="CoreSyn.html#t:CoreExpr">CoreExpr</a></li><li class="src short"><a href="#v:newLocalVar">newLocalVar</a> :: <a href="FastString.html#t:FastString">FastString</a> -&gt; <a href="Type.html#t:Type">Type</a> -&gt; <a href="Vectorise-Monad-Base.html#t:VM">VM</a> <a href="Var.html#t:Var">Var</a></li></ul></div><div id="interface"><h1>Documentation</h1><div class="top"><p class="src">module <a href="Vectorise-Utils-Base.html">Vectorise.Utils.Base</a></p></div><div class="top"><p class="src">module <a href="Vectorise-Utils-Closure.html">Vectorise.Utils.Closure</a></p></div><div class="top"><p class="src">module <a href="Vectorise-Utils-Hoisting.html">Vectorise.Utils.Hoisting</a></p></div><div class="top"><p class="src">module <a href="Vectorise-Utils-PADict.html">Vectorise.Utils.PADict</a></p></div><div class="top"><p class="src">module <a href="Vectorise-Utils-Poly.html">Vectorise.Utils.Poly</a></p></div><h1 id="g:1">Annotated Exprs
</h1><div class="top"><p class="src"><a name="v:collectAnnTypeArgs" class="def">collectAnnTypeArgs</a> ::  <a href="CoreSyn.html#t:AnnExpr">AnnExpr</a> b ann -&gt; (<a href="CoreSyn.html#t:AnnExpr">AnnExpr</a> b ann, [<a href="Type.html#t:Type">Type</a>])</p></div><div class="top"><p class="src"><a name="v:collectAnnDictArgs" class="def">collectAnnDictArgs</a> ::  <a href="CoreSyn.html#t:AnnExpr">AnnExpr</a> <a href="Var.html#t:Var">Var</a> ann -&gt; (<a href="CoreSyn.html#t:AnnExpr">AnnExpr</a> <a href="Var.html#t:Var">Var</a> ann, [<a href="CoreSyn.html#t:AnnExpr">AnnExpr</a> <a href="Var.html#t:Var">Var</a> ann])</p></div><div class="top"><p class="src"><a name="v:collectAnnTypeBinders" class="def">collectAnnTypeBinders</a> ::  <a href="CoreSyn.html#t:AnnExpr">AnnExpr</a> <a href="Var.html#t:Var">Var</a> ann -&gt; ([<a href="Var.html#t:Var">Var</a>], <a href="CoreSyn.html#t:AnnExpr">AnnExpr</a> <a href="Var.html#t:Var">Var</a> ann)</p></div><div class="top"><p class="src"><a name="v:collectAnnValBinders" class="def">collectAnnValBinders</a> ::  <a href="CoreSyn.html#t:AnnExpr">AnnExpr</a> <a href="Var.html#t:Var">Var</a> ann -&gt; ([<a href="Var.html#t:Var">Var</a>], <a href="CoreSyn.html#t:AnnExpr">AnnExpr</a> <a href="Var.html#t:Var">Var</a> ann)</p><div class="doc"><p>Collect all consecutive value binders that are not dictionaries.
</p></div></div><div class="top"><p class="src"><a name="v:isAnnTypeArg" class="def">isAnnTypeArg</a> ::  <a href="CoreSyn.html#t:AnnExpr">AnnExpr</a> b ann -&gt; <a href="../base-4.5.1.0/Data-Bool.html#t:Bool">Bool</a></p></div><h1 id="g:2">PD Functions
</h1><div class="top"><p class="src"><a name="v:replicatePD" class="def">replicatePD</a></p><div class="subs arguments"><p class="caption">Arguments</p><table><tr><td class="src">:: <a href="CoreSyn.html#t:CoreExpr">CoreExpr</a></td><td class="doc"><p>Number of copies in the resulting array.
</p></td></tr><tr><td class="src">-&gt; <a href="CoreSyn.html#t:CoreExpr">CoreExpr</a></td><td class="doc"><p>Value to replicate.
</p></td></tr><tr><td class="src">-&gt; <a href="Vectorise-Monad-Base.html#t:VM">VM</a> <a href="CoreSyn.html#t:CoreExpr">CoreExpr</a></td><td class="doc empty">&nbsp;</td></tr></table></div><div class="doc"><p>Produce an array containing copies of a given element.
</p></div></div><div class="top"><p class="src"><a name="v:emptyPD" class="def">emptyPD</a> :: <a href="Type.html#t:Type">Type</a> -&gt; <a href="Vectorise-Monad-Base.html#t:VM">VM</a> <a href="CoreSyn.html#t:CoreExpr">CoreExpr</a></p><div class="doc"><p>An empty array of the given type.
</p></div></div><div class="top"><p class="src"><a name="v:packByTagPD" class="def">packByTagPD</a></p><div class="subs arguments"><p class="caption">Arguments</p><table><tr><td class="src">:: <a href="Type.html#t:Type">Type</a></td><td class="doc"><p>Element type.
</p></td></tr><tr><td class="src">-&gt; <a href="CoreSyn.html#t:CoreExpr">CoreExpr</a></td><td class="doc"><p>Source array.
</p></td></tr><tr><td class="src">-&gt; <a href="CoreSyn.html#t:CoreExpr">CoreExpr</a></td><td class="doc"><p>Length of resulting array.
</p></td></tr><tr><td class="src">-&gt; <a href="CoreSyn.html#t:CoreExpr">CoreExpr</a></td><td class="doc"><p>Tag values of elements in source array.
</p></td></tr><tr><td class="src">-&gt; <a href="CoreSyn.html#t:CoreExpr">CoreExpr</a></td><td class="doc"><p>The tag value for the elements to select.
</p></td></tr><tr><td class="src">-&gt; <a href="Vectorise-Monad-Base.html#t:VM">VM</a> <a href="CoreSyn.html#t:CoreExpr">CoreExpr</a></td><td class="doc empty">&nbsp;</td></tr></table></div><div class="doc"><p>Select some elements from an array that correspond to a particular tag value and pack them into a new
 array.
</p><pre> packByTagPD Int# [:23, 42, 95, 50, 27, 49:]  3 [:1, 2, 1, 2, 3, 2:] 2 
   ==&gt; [:42, 50, 49:]
</pre></div></div><div class="top"><p class="src"><a name="v:combinePD" class="def">combinePD</a></p><div class="subs arguments"><p class="caption">Arguments</p><table><tr><td class="src">:: <a href="Type.html#t:Type">Type</a></td><td class="doc"><p>Element type
</p></td></tr><tr><td class="src">-&gt; <a href="CoreSyn.html#t:CoreExpr">CoreExpr</a></td><td class="doc"><p>Length of resulting array
</p></td></tr><tr><td class="src">-&gt; <a href="CoreSyn.html#t:CoreExpr">CoreExpr</a></td><td class="doc"><p>Selector.
</p></td></tr><tr><td class="src">-&gt; [<a href="CoreSyn.html#t:CoreExpr">CoreExpr</a>]</td><td class="doc"><p>Arrays to combine.
</p></td></tr><tr><td class="src">-&gt; <a href="Vectorise-Monad-Base.html#t:VM">VM</a> <a href="CoreSyn.html#t:CoreExpr">CoreExpr</a></td><td class="doc empty">&nbsp;</td></tr></table></div><div class="doc"><p>Combine some arrays based on a selector.  The selector says which source array to choose for each
 element of the resulting array.
</p></div></div><div class="top"><p class="src"><a name="v:liftPD" class="def">liftPD</a> :: <a href="CoreSyn.html#t:CoreExpr">CoreExpr</a> -&gt; <a href="Vectorise-Monad-Base.html#t:VM">VM</a> <a href="CoreSyn.html#t:CoreExpr">CoreExpr</a></p><div class="doc"><p>Like <code><a href="Vectorise-Utils.html#v:replicatePD">replicatePD</a></code> but use the lifting context in the vectoriser state.
</p></div></div><h1 id="g:3">Scalars
</h1><div class="top"><p class="src"><a name="v:zipScalars" class="def">zipScalars</a> :: [<a href="Type.html#t:Type">Type</a>] -&gt; <a href="Type.html#t:Type">Type</a> -&gt; <a href="Vectorise-Monad-Base.html#t:VM">VM</a> <a href="CoreSyn.html#t:CoreExpr">CoreExpr</a></p></div><div class="top"><p class="src"><a name="v:scalarClosure" class="def">scalarClosure</a> :: [<a href="Type.html#t:Type">Type</a>] -&gt; <a href="Type.html#t:Type">Type</a> -&gt; <a href="CoreSyn.html#t:CoreExpr">CoreExpr</a> -&gt; <a href="CoreSyn.html#t:CoreExpr">CoreExpr</a> -&gt; <a href="Vectorise-Monad-Base.html#t:VM">VM</a> <a href="CoreSyn.html#t:CoreExpr">CoreExpr</a></p></div><h1 id="g:4">Naming
</h1><div class="top"><p class="src"><a name="v:newLocalVar" class="def">newLocalVar</a> :: <a href="FastString.html#t:FastString">FastString</a> -&gt; <a href="Type.html#t:Type">Type</a> -&gt; <a href="Vectorise-Monad-Base.html#t:VM">VM</a> <a href="Var.html#t:Var">Var</a></p><div class="doc"><p>Make a fresh local variable with the given type.
 The variable's name is formed using the given string as the prefix.
</p></div></div></div></div><div id="footer"><p>Produced by <a href="http://www.haskell.org/haddock/">Haddock</a> version 2.11.0</p></div></body></html>