This file contains ambiguous Unicode characters that may be confused with others in your current locale. If your use case is intentional and legitimate, you can safely ignore this warning. Use the Escape button to highlight these characters.
<!DOCTYPE html>
<htmlxmlns="http://www.w3.org/1999/xhtml"><head><title>CostUtils (infer.Costlib.CostUtils)</title><linkrel="stylesheet"href="../../../odoc.css"/><metacharset="utf-8"/><metaname="generator"content="odoc 1.5.2"/><metaname="viewport"content="width=device-width,initial-scale=1.0"/><scriptsrc="../../../highlight.pack.js"></script><script>hljs.initHighlightingOnLoad();</script></head><body><divclass="content"><header><nav><ahref="../index.html">Up</a>–<ahref="../../index.html">infer</a>»<ahref="../index.html">Costlib</a>» CostUtils</nav><h1>Module <code>Costlib.CostUtils</code></h1></header><divclass="spec module"id="module-L"><ahref="#module-L"class="anchor"></a><code><spanclass="keyword">module</span> L = <ahref="../../IBase/index.html#module-Logging">IBase.Logging</a></code></div><divclass="spec module"id="module-BasicCost"><ahref="#module-BasicCost"class="anchor"></a><code><spanclass="keyword">module</span> BasicCost = <ahref="../CostDomain/index.html#module-BasicCost">CostDomain.BasicCost</a></code></div><divclass="spec module"id="module-CostModelEnv"><ahref="#module-CostModelEnv"class="anchor"></a><code><spanclass="keyword">module</span><ahref="CostModelEnv/index.html">CostModelEnv</a> : <spanclass="keyword">sig</span> ... <spanclass="keyword">end</span></code></div><dl><dtclass="spec type"id="type-model"><ahref="#type-model"class="anchor"></a><code><spanclass="keyword">type</span> model</code><code> = <ahref="CostModelEnv/index.html#type-cost_model_env">CostModelEnv.cost_model_env</a><span>-></span><span>ret:<span>(<ahref="../../IR/Ident/index.html#type-t">IR.Ident.t</a> * <ahref="../../IR/Typ/index.html#type-t">IR.Typ.t</a>)</span></span><span>-></span><ahref="../../BO/BufferOverrunDomain/Mem/index.html#type-t">BO.BufferOverrunDomain.Mem.t</a><span>-></span><ahref="../../Costlib__CostDomain/BasicCost/index.html#type-t">BasicCost.t</a></code></dt></dl><dl><dtclass="spec value"id="val-unit_cost_of"><ahref="#val-unit_cost_of"class="anchor"></a><code><spanclass="keyword">val</span> unit_cost_of : <span>of_function:string</span><span>-></span><ahref="../../IBase/Location/index.html#type-t">IBase.Location.t</a><span>-></span><ahref="../../Costlib__CostDomain/BasicCost/index.html#type-t">BasicCost.t</a></code></dt><dtclass="spec value"id="val-of_itv"><ahref="#val-of_itv"class="anchor"></a><code><spanclass="keyword">val</span> of_itv : <span>itv:<ahref="../../BO/Itv/index.html#type-t">BO.Itv.t</a></span><span>-></span><span>degree_kind:<ahref="../../BO__Polynomials/DegreeKind/index.html#type-t">BO__Polynomials.DegreeKind.t</a></span><span>-></span><span>of_function:string</span><span>-></span><ahref="../../IBase/Location/index.html#type-t">IBase.Location.t</a><span>-></span><ahref="../../Costlib__CostDomain/BasicCost/index.html#type-t">BasicCost.t</a></code></dt><dtclass="spec value"id="val-string_len_range_itv"><ahref="#val-string_len_range_itv"class="anchor"></a><code><spanclass="keyword">val</span> string_len_range_itv : <ahref="../../BO/BufferOverrunUtils/ModelEnv/index.html#type-model_env">BO.BufferOverrunUtils.ModelEnv.model_env</a><span>-></span><ahref="../../IR/Exp/index.html#type-t">IR.Exp.t</a><span>-></span><span>from:<span><span>(<ahref="../../IR/Exp/index.html#type-t">IR.Exp.t</a> * <ahref="../../IR/Typ/IntegerWidths/index.html#type-t">IR.Typ.IntegerWidths.t</a>)</span> option</span></span><span>-></span><ahref="../../BO/BufferOverrunDomain/Mem/index.html#type-t">BO.BufferOverrunDomain.Mem.t</a><span>-></span><ahref="../../BO/Itv/index.html#type-t">BO.Itv.t</a></code></dt><dd><p>Given a string of length n and an optional starting index i (0 by default), return itv <code>0, n_u-i_l</code></p></dd></dl><divclass="spec module-type"id="module-type-S"><ahref="#module-type-S"class="anchor"></a><code><spanclass="keyword">module</span><spanclass="keyword">type</span><ahref="module-type-S/index.html">S</a> = <spanclass="keyword">sig</span> ... <spanclass="keyword">end</span></code></div><divclass="spec module"id="module-Array"><ahref="#module-Array"class="anchor"></a><code><spanclass="keyword">module</span><ahref="Array/index.html">Array</a> : <ahref="index.html#module-type-S">S</a></code></div><divclass="spec module"id="module-Collection"><ahref="#module-Collection"class="anchor"></a><code><spanclass="keyword">module</span><ahref="Collection/index.html">Collection</a> : <ahref="index.html#module-type-S">S</a></code></div><divclass="spec module"id="module-NSCollection"><ahref="#module-NSCollection"class="anchor"></a><code><spanclass="keyword">module</span><ahref="NSCollection/index.html">NSCollection</a> : <ahref="index.html#module-type-S">S</a></code></div><divclass="spec module"id="module-CString"><ahref="#module-CString"class="anchor"></a><code><spanclass="keyword">module</span><ahref="CString/index.html">CString</a> : <ahref="index.html#module-type-S">S</a></code></div><dl><dtclass="spec value"id="val-get_nodes_in_block"><ahref="#val-get_nodes_in_block"class="anchor"></a><code><spanclass="keyword">val</span> get_nodes_in_block : <span>block_start:<ahref="../../IR/Procdesc/Node/index.html#type-t">IR.Procdesc.Node.t</a></span><span>-></span><span>block_exit:<ahref="../../IR/Procdesc/Node/index.html#type-t">IR.Procdesc.Node.t</a></span><span>-></span><ahref="../../IR__Procdesc/index.html#module-NodeSet">IR.Procdesc.NodeSet</a>.t</code></dt><dtclass="spec value"id="val-get_nodes_in_autoreleasepool"><ahref="#val-get_nodes_in_autoreleasepool"class="anchor"></a><code><spanclass="keyword">val</span> get_nodes_in_autoreleasepool : <ahref="../../IR/Procdesc/index.html#type-t">IR.Procdesc.t</a><span>-></span><ahref="../../IR__Procdesc/index.html#module-NodeSet">IR.Procdesc.NodeSet</a>.t</code></dt></dl></div></body></html>