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>BO__ArrayBlk (infer.BO__ArrayBlk)</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>» BO__ArrayBlk</nav><h1>Module <code>BO__ArrayBlk</code></h1></header><divclass="spec module"id="module-ArrInfo"><ahref="#module-ArrInfo"class="anchor"></a><code><spanclass="keyword">module</span><ahref="ArrInfo/index.html">ArrInfo</a> : <spanclass="keyword">sig</span> ... <spanclass="keyword">end</span></code></div><div><divclass="spec include"><divclass="doc"><detailsopen="open"><summary><spanclass="def"><code><spanclass="keyword">include</span><ahref="../Absint/AbstractDomain/index.html#module-type-MapS">Absint.AbstractDomain.MapS</a><spanclass="keyword">with</span><spanclass="keyword">type</span><ahref="../Absint/AbstractDomain/module-type-MapS/index.html#type-key">key</a> = <ahref="../BO/AbsLoc/Allocsite/index.html#type-t">BO.AbsLoc.Allocsite.t</a><spanclass="keyword">and</span><spanclass="keyword">type</span><ahref="../Absint/AbstractDomain/module-type-MapS/index.html#type-value">value</a> = <ahref="ArrInfo/index.html#type-t">ArrInfo.t</a></code></span></summary><div><divclass="spec include"><divclass="doc"><detailsopen="open"><summary><spanclass="def"><code><spanclass="keyword">include</span><ahref="../IStdlib/PrettyPrintable/index.html#module-type-PPMonoMap">IStdlib.PrettyPrintable.PPMonoMap</a></code></span></summary><div><divclass="spec include"><divclass="doc"><detailsopen="open"><summary><spanclass="def"><code><spanclass="keyword">include</span><ahref="../IStdlib/PrettyPrintable/index.html#module-type-MonoMap">IStdlib.PrettyPrintable.MonoMap</a></code></span></summary><dl><dtclass="spec type"id="type-key"><ahref="#type-key"class="anchor"></a><code><spanclass="keyword">type</span> key</code></dt><dtclass="spec type"id="type-value"><ahref="#type-value"class="anchor"></a><code><spanclass="keyword">type</span> value</code></dt><dtclass="spec type"id="type-t"><ahref="#type-t"class="anchor"></a><code><spanclass="keyword">type</span> t</code></dt></dl><dl><dtclass="spec value"id="val-empty"><ahref="#val-empty"class="anchor"></a><code><spanclass="keyword">val</span> empty : <ahref="index.html#type-t">t</a></code></dt><dtclass="spec value"id="val-is_empty"><ahref="#val-is_empty"class="anchor"></a><code><spanclass="keyword">val</span> is_empty : <ahref="index.html#type-t">t</a><span>-></span> bool</code></dt><dtclass="spec value"id="val-mem"><ahref="#val-mem"class="anchor"></a><code><spanclass="keyword">val</span> mem : <ahref="index.html#type-key">key</a><span>-></span><ahref="index.html#type-t">t</a><span>-></span> bool</code></dt><dtclass="spec value"id="val-add"><ahref="#val-add"class="anchor"></a><code><spanclass="keyword">val</span> add : <ahref="index.html#type-key">key</a><span>-></span><ahref="index.html#type-value">value</a><span>-></span><ahref="index.html#type-t">t</a><span>-></span><ahref="index.html#type-t">t</a></code></dt><dtclass="spec value"id="val-update"><ahref="#val-update"class="anchor"></a><code><spanclass="keyword">val</span> update : <ahref="index.html#type-key">key</a><span>-></span><span>(<span><ahref="index.html#type-value">value</a> option</span><span>-></span><span><ahref="index.html#type-value">value</a> option</span>)</span><span>-></span><ahref="index.html#type-t">t</a><span>-></span><ahref="index.html#type-t">t</a></code></dt><dtclass="spec value"id="val-singleton"><ahref="#val-singleton"class="anchor"></a><code><spanclass="keyword">val</span> singleton : <ahref="index.html#type-key">key</a><span>-></span><ahref="index.html#type-value">value</a><span>-></span><ahref="index.html#type-t">t</a></code></dt><dtclass="spec value"id="val-remove"><ahref="#val-remove"class="anchor"></a><code><spanclass="keyword">val</span> remove : <ahref="index.html#type-key">key</a><span>-></span><ahref="index.html#type-t">t</a><span>-></span><ahref="index.html#type-t">t</a></code></dt><dtclass="spec value"id="val-merge"><ahref="#val-merge"class="anchor"></a><code><spanclass="keyword">val</span> merge : <span>(<ahref="index.html#type-key">key</a><span>-></span><span><ahref="index.html#type-value">value</a> option</span><span>-></span><span><ahref="index.html#type-value">value</a> option</span><span>-></span><span><ahref="index.html#type-value">value</a> option</span>)</span><span>-></span><ahref="index.html#type-t">t</a><span>-></span><ahref="index.html#type-t">t</a><span>-></span><ahref="index.html#type-t">t</a></code></dt><dtclass="spec value"id="val-union"><ahref="#val-union"class="anchor"></a><code><spanclass="keyword">val</span> union : <span>(<ahref="index.html#type-key">key</a><span>-></span><ahref="index.html#type-value">value</a><span>-></span><ahref="index.html#type-value">value</a><span>-></span><span><ahref="index.html#type-value">value</a> option</span>)</span><span>-></span><ahref="index.html#type-t">t</a><span>-></span><ahref="index.html#type-t">t</a><span>-></span><ahref="index.html#type-t">t</a></code></dt><dtclass="spec value"id="val-compare"><ahref="#val-compare"class="anchor"></a><code><spanclass="keyword">val</span> compare : <span>(<ahref="index.html#type-value">value</a><span>-></span><ahref="index.html#type-value">value</a><span>-></span> int)</span><span>-></span><ahref="index.html#type-t">t</a><span>-></span><ahref="index.html#type-t">t</a><span>-></span> int</code></dt><dtclass="spec value"id="val-equal"><ahref="#val-equal"class="anchor"></a><code><spanclass="keyword">val</span> equal : <span>(<ahref="index.html#type-value">value</a><span>-></span><ahref="index.html#type-value">value</a><span>-></span> bool)</span><span>-></span><ahref="index.html#type-t">t</a><span>-></span><ahref="index.html#type-t">t</a><span>-></span> bool</code></dt><dtclass="spec value"id="val-iter"><ahref="#val-iter"class="anchor"></a><code><spanclass="keyword">val</span> iter : <span>(<ahref="index.html#type-key">key</a><span>-></span><ahref="index.html#type-value">value</a><span>-></span> unit)</span><span>-></span><ahref="index.html#type-t">t</a><span>-></span> unit</code></dt><dtclass="spec value"id="val-fold"><ahref="#val-fold"class="anchor"></a><code><spanclass="keyword">val</span> fold : <span>(<ahref="index.html#type-key">key</a><span>-></span><ahref="index.html#type-value">value</a><span>-></span><spanclass="type-var">'a</span><span>-></span><spanclass="type-var">'a</span>)</span><span>-></span><ahref="index.html#type-t">t</a><span>-></span><spanclass="type-var">'a</span><span>-></span><spanclass="type-var">'a</span></code></dt><dtclass="spec value"id="val-for_all"><ahref="#val-for_all"class="anchor"></a><code><spanclass="keyword">val</span> for_all : <span>(<ahref="index.html#type-key">key</a><span>-></span><ahref="index.html#type-value">value</a><span>-></span> bool)</span><span>-></span><ahref="index.html#type-t">t</a><span>-></span> bool</code></dt><dtclass="spec value"id="val-exists"><ahref="#val-exists"class="anchor"></a><code><spanclass="keyword">val</span> exists : <span>(<ahref="index.html#type-key">key</a><span>-></span><ahref="index.html#type-value">value</a><span>-></span> bool)</span><span>-></span><ahref="index.html#type-t">t</a><span>-></span> bool</code></dt><dtclass="spec value"id="val-filter"><ahref="#val-filter"class="anchor"></a><code><spanclass="keyword">val</span> filter : <span>(<ahref="index.html#type-key">key</a><span>-></span><ahref="index.html#type-value">value</a><span>-></span> bool)</span><span>-></span><ahref="index.html#type-t">t</a><span>-></span><ahref="index.html#type-t">t</a></code></dt><dtclass="spec value"id="val-filter_map"><ahref="#val-filter_map"class="anchor"></a><code><spanclass="keyword">val</span> filter_map : <span>(<ahref="index.html#type-key">key</a><span>-></span><ahref="index.html#type-value">value</a><span>-></span><span><ahref="index.html#type-value">value</a> option</span>)</span><span>-></span><ahref="index.html#type-t">t</a><span>-></span><ahref="index.html#type-t">t</a></code></dt><dtclass="spec value"id="val-partition"><ahref="#val-partition"class="anchor"></a><code><spanclass="keyword">val</span> partition : <span>(<ahref="index.html#type-key">key</a><span>-></span><ahref="index.html#type-value">value</a><span>-></span> bool)</span><span>-></span><ahref="index.html#type-t">t</a><span>-></span><ahref="index.html#type-t">t</a> * <ahref="index.html#type-t">t</a></code></dt><dtclass="spec value"id="val-cardinal"><ahref="#val-cardinal"class="anchor"></a><code><spanclass="keyword">val</span> cardinal : <ahref="index.html#type-t">t</a><span>-></span> int</code></dt><dtclass="spec value"id="val-bindings"><ahref="#val-bindings"class="anchor"></a><code><spanclass="keyword">val</span> bindings : <ahref="index.html#type-t">t</a><span>-></span><span><span>(<ahref="index.html#type-key">key</a> * <ahref="index.html#type-value">value</a>)</span> list</span></code></dt><dtclass="spec value"id="val-min_binding"><ahref="#val-min_binding"class="anchor"></a><code><spanclass="keyword">val</span> min_binding : <ahref="index.html#type-t">t</a><span>-></span><ahref="index.html#type-key">key</a> * <ahref="index.html#type-value">value</a></code></dt><dtclass="spec value"id="val-min_binding_opt"><ahref="#val-min_binding_opt"class="anchor"></a><code><spanclass="keyword">val</span> min_binding_opt : <ahref="index.html#type-t">t</a><span>-></span><span><span>(<ahref="index.html#type-key">key</a> * <ahref="index.html#type-value">value</a>)</span> option</span></code></dt><dtclass="spec value"id="val-max_binding"><ahref="#val-max_binding"class="anchor"></a><code><spanclass="keyword">val</span> max_binding : <ahref="index.html#type-t">t</a><span>-></span><ahref="index.html#type-key">key</a> * <ahref="index.html#type-value">value</a></code></dt><dtclass="spec value"id="val-max_binding_opt"><ahref="#val-max_binding_opt"class="anchor"></a><code><spanclass="keyword">val</span> max_binding_opt : <ahref="index.html#type-t">t</a><span>-></span><span><span>(<ahref="index.html#type-key">key</a> * <ahref="index.html#type-value">value</a>)</span> option</span></code></dt><dtclass="spec value"id="val-choose"><ahref="#val-choose"class="anchor"></a><code><spanclass="keyword">val</span> choose : <ahref="index.html#type-t">t</a><span>-></span><ahref="index.html#type-key">key</a> * <ahref="index.html#type-value">value</a></code></dt><dtclass="spec value"id="val-choose_opt"><ahref="#val-choose_opt"class="anchor"></a><code><spanclass="keyword">val</span> choose_opt : <ahref="index.html#type-t">t</a><span>-></span><span><span>(<ahref="index.html#type-key">key</a> * <ahref="index.html#type-value">value</a>)</span> option</span></code></dt><dtclass="spec value"id="val-split"><ahref="#val-split"class="anchor"></a><code><spanclass="keyword">val</span> split : <ahref="index.html#type-key">key</a><span>-></span><ahref="index.html#type-t">t</a><span>-></span><ahref="index.html#type-t">t</a> * <span><ahref="index.html#type-value">value</a> option</span> * <ahref="index.html#type-t">t</a></code></dt><dtclass="spec value"id="val-find"><ahref="#val-find"class="anchor"></a><code><spanclass="keyword">val</span> find : <ahref="index.html#type-key">key</a><span>-></span><ahref="index.html#type-t">t</a><span>-></span><ahref="index.html#type-value">value</a></code></dt><dtclass="spec value"id="val-find_opt"><ahref="#val-find_opt"class="anchor"></a><code><spanclass="keyword">val</span> find_opt : <ahref="index.html#type-key">key</a><span>-></span><ahref="index.html#type-t">t</a><span>-></span><span><ahref="index.html#type-value">value</a> option</span></code></dt><dtclass="spec value"id="val-find_first"><ahref="#val-find_first"class="anchor"></a><code><spanclass="keyword">val</span> find_first : <span>(<ahref="index.html#type-key">key</a><span>-></span> bool)</span><span>-></span><ahref="index.html#type-t">t</a><span>-></span><ahref="index.html#type-key">key</a> * <ahref="index.html#type-value">value</a></code></dt><dtclass="spec value"id="val-find_first_opt"><ahref="#val-find_first_opt"class="anchor"></a><code><spanclass="keyword">val</span> find_first_opt : <span>(<ahref="index.html#type-key">key</a><span>-></span> bool)</span><span>-></span><ahref="index.html#type-t">t</a><span>-></span><span><span>(<ahref="index.html#type-key">key</a> * <ahref="index.html#type-value">value</a>)</span> option</span></code></dt><dtclass="spec value"id="val-find_last"><ahref="#val-find_last"class="anchor"></a><code><spanclass="keyword">val</span> find_last : <span>(<ahref="index.html#type-key">key</a><span>-></span> bool)</span><span>-></span><ahref="index.html#type-t">t</a><span>-></span><ahref="index.html#type-key">key</a> * <ahref="index.html#type-value">value</a></code></dt><dtclass="spec value"id="val-find_last_opt"><ahref="#val-find_last_opt"class="anchor"></a><code><spanclass="keyword">val</span> find_last_opt : <span>(<ahref="index.html#type-key">key</a><span>-></span> bool)</span><span>-></span><ahref="index.html#type-t">t</a><span>-></span><span><span>(<ahref="index.html#type-key">key</a> * <ahref="index.html#type-value">value</a>)</span> option</span></code></dt><dtclass="spec value"id="val-map"><ahref="#val-map"class="anchor"></a><code><spanclass="keyword">val</span> map : <span>(<ahref="index.html#type-value">value</a><span>-></span><ahref="index.html#type-value">value</a>)</span><span>-></span><ahref="index.html#type-t">t</a><span>-></span><ahref="index.html#type-t">t</a></code></dt><dtclass="spec value"id="val-mapi"><ahref="#val-mapi"class="anchor"></a><code><spanclass="keyword">val</span> mapi : <span>(<ahref="index.html#type-key">key</a><span>-></span><ahref="index.html#type-value">value</a><span>-></span><ahref="index.html#type-value">value</a>)</span><span>-></span><ahref="index.html#type-t">t</a><span>-></span><ahref="index.html#type-t">t</a></code></dt><dtclass="spec value"id="val-is_singleton_or_more"><ahref="#val-is_singleton_or_more"class="anchor"></a><code><spanclass="keyword">val</span> is_singleton_or_more : <ahref="index.html#type-t">t</a><span>-></span><span><span>(<ahref="index.html#type-key">key</a> * <ahref="index.html#type-value">value</a>)</span><ahref="../IStdlib/IContainer/index.html#type-singleton_or_more">IStdlib.IContainer.singleton_or_more</a></span></code></dt><dtclass="spec value"id="val-fold_map"><ahref="#val-fold_map"class="anchor"></a><code><spanclass="keyword">val</span> fold_map : <ahref="index.html#type-t">t</a><span>-></span><span>init:<spanclass="type-var">'a</span></span><span>-></span><span>f:<span>(<spanclass="type-var">'a</span><span>-></span><ahref="index.html#type-value">value</a><span>-></span><spanclass="type-var">'a</span> * <ahref="index.html#type-value">value</a>)</span></span><span>-></span><spanclass="type-var">'a</span> * <ahref="index.html#type-t">t</a></code></dt><dtclass="spec value"id="val-fold_mapi"><ahref="#val-fold_mapi"class="anchor"></a><code><spanclass="keyword">val</span> fold_mapi : <ahref="index.html#type-t">t</a><span>-></span><span>init:<spanclass="type-var">'a</span></span><span>-></span><span>f:<span>(<ahref="index.html#type-key">key</a><span>-></span><spanclass="type-var">'a</span><span>-></span><ahref="index.html#type-value">value</a><span>-></span><spanclass="type-var">'a</span> * <ahref="index.html#type-value">value</a>)</span></span><span>-></span><spanclass="type-var">'a</span> * <ahref="index.html#type-t">t</a></code></dt><dtclass="spec value"id="val-of_seq"><ahref="#val-of_seq"class="anchor"></a><code><spanclass="keyword">val</span> of_seq : <span><span>(<ahref="index.html#type-key">key</a> * <ahref="index.html#type-value">value</a>)</span> Stdlib.Seq.t</span><span>-></span><ahref="index.html#type-t">t</a></code></dt></dl></details></div></div></div><div><divclass="spec include"><divclass="doc"><detailsopen="open"><summary><spanclass="def"><code><spanclass="keyword">include</span><ahref="../IStdlib/PrettyPrintable/index.html#module-type-PrintableType">IStdlib.PrettyPrintable.PrintableType</a><spanclass="keyword">with</span><spanclass="keyword">type</span><ahref="../IStdlib/PrettyPrintable/module-type-PrintableType/index.html#type-t">t</a> := <ahref="index.html#type-t">t</a></code></span></summary><dl><dtclass="spec type"id="type-t"><ahref="#type-t"class="anchor"></a><code><spanclass="keyword">type</span> t</code></dt></dl><dl><dtclass="spec value"id="val-pp"><ahref="#val-pp"class="anchor"></a><code><spanclass="keyword">val</span> pp : <ahref="../IStdlib/PrettyPrintable/index.html#module-F">IStdlib.PrettyPrintable.F</a>.formatter <span>-></span><ahref="index.html#type-t">t</a><span>-></span> unit</code></dt></dl></details></div></div></div><dl><dtclass="spec value"id="val-pp_key"><ahref="#val-pp_key"class="anchor"></a><code><spanclass="keyword">val</span> pp_key : <ahref="../IStdlib/PrettyPrintable/index.html#module-F">IStdlib.PrettyPrintable.F</a>.formatter <span>-></span><ahref="index.html#type-key">key</a><span>-></span> unit</code></dt></dl></details></div></div></div><div><divclass="spec include"><divclass="doc"><detailsopen="open"><summary><spanclass="def"><code><spanclass="keyword">include</span><ahref="../Absint/AbstractDomain/index.html#module-type-WithBottom">Absint.AbstractDomain.WithBottom</a><spanclass="keyword">with</span><spanclass="keyword">type</span><ahref="../Absint/AbstractDomain/module-type-WithBottom/index.html#type-t">t</a> := <ahref="index.html#type-t">t</a></code></span></summary><div><divclass="spec include"><divclass="doc"><detailsopen="open"><summary><spanclass="def"><code><spanclass="keyword">include</span><ahref="../Absint/AbstractDomain/index.html#module-type-S">Absint.AbstractDomain.S</a></code></span></summary><div><divclass="spec include"><divclass="doc"><detailsopen="open"><summary><spanclass="def"><code><spanclass="keyword">include</span><ahref="../Absint/AbstractDomain/index.html#module-type-NoJoin">Absint.AbstractDomain.NoJoin</a></code></span></summary><div><divclass="spec include"><divclass="doc"><detailsopen="open"><summary><spanclass="def"><code><spanclass="keyword">include</span><ahref="../IStdlib/PrettyPrintable/index.html#module-type-PrintableType">IStdlib.PrettyPrintable.PrintableType</a></code></span></summary><dl><dtclass="spec type"id="type-t"><ahref="#type-t"class="anchor"></a><code><spanclass="keyword">type</span> t</code></dt></dl><dl><dtclass="spec value"id="val-pp"><ahref="#val-pp"class="anchor"></a><code><spanclass="keyword">val</span> pp : <ahref="../IStdlib/PrettyPrintable/index.html#module-F">IStdlib.PrettyPrintable.F</a>.formatter <span>-></span><ahref="index.html#type-t">t</a><span>-></span> unit</code></dt></dl></details></div></div></div><dl><dtclass="spec value"id="val-leq"><ahref="#val-leq"class="anchor"></a><code><spanclass="keyword">val</span> leq : <span>lhs:<ahref="index.html#type-t">t</a></span><span>-></span><span>rhs:<ahref="index.html#type-t">t</a></span><span>-></span> bool</code></dt><dd><p>the implication relation: <code>lhs <= rhs</code> means <code>lhs |- rhs</code></p></dd></dl></details></div></div></div><dl><dtclass="spec value"id="val-join"><ahref="#val-join"class="anchor"></a><code><spanclass="keyword">val</span> join : <ahref="index.html#type-t">t</a><span>-></span><ahref="index.html#type-t">t</a><span>-></span><ahref="index.html#type-t">t</a></code></dt><dtclass="spec value"id="val-widen"><ahref="#val-widen"class="anchor"></a><code><spanclass="keyword">val</span> widen : <span>prev:<ahref="index.html#type-t">t</a></span><span>-></span><span>next:<ahref="index.html#type-t">t</a></span><span>-></span><span>num_iters:int</span><span>-></span><ahref="index.html#type-t">t</a></code></dt></dl></details></div></div></div><dl><dtclass="spec value"id="val-bottom"><ahref="#val-bottom"class="anchor"></a><code><spanclass="keyword">val</span> bottom : <ahref="index.html#type-t">t</a></code></dt><dd><p>The bottom value of the domain.</p></dd></dl><dl><dtclass="spec value"id="val-is_bottom"><ahref="#val-is_bottom"class="anchor"></a><code><spanclass="keyword">val</span> is_bottom : <ahref="index.html#type-t">t</a><span>-></span> bool</code></dt><dd><p>Return true if this is the bottom value</p></dd></dl></details></div></div></div></details></div></div></div><dl><dtclass="spec value"id="val-compare"><ahref="#val-compare"class="anchor"></a><code><spanclass="keyword">val</span> compare : <ahref="index.html#type-t">t</a><span>-></span><ahref="index.html#type-t">t</a><span>-></span> int</code></dt><dtclass="spec value"id="val-bot"><ahref="#val-bot"class="anchor"></a><code><spanclass="keyword">val</span> bot : <ahref="index.html#type-t">t</a></code></dt><dtclass="spec value"id="val-make_c"><ahref="#val-make_c"class="anchor"></a><code><spanclass="keyword">val</span> make_c : <ahref="../BO/AbsLoc/Allocsite/index.html#type-t">BO.AbsLoc.Allocsite.t</a><span>-></span><span>offset:<ahref="../BO/Itv/index.html#type-t">BO.Itv.t</a></span><span>-></span><span>size:<ahref="../BO/Itv/index.html#type-t">BO.Itv.t</a></span><span>-></span><span>stride:<ahref="../BO/Itv/index.html#type-t">BO.Itv.t</a></span><span>-></span><ahref="index.html#type-t">t</a></code></dt><dd><p>Make an array block for C</p></dd></dl><dl><dtclass="spec value"id="val-make_java"><ahref="#val-make_java"class="anchor"></a><code><spanclass="keyword">val</span> make_java : <ahref="../BO/AbsLoc/Allocsite/index.html#type-t">BO.AbsLoc.Allocsite.t</a><span>-></span><span>length:<ahref="../BO/Itv/index.html#type-t">BO.Itv.t</a></span><span>-></span><ahref="index.html#type-t">t</a></code></dt><dd><p>Make an array block for Java</p></dd></dl><dl><dtclass="spec value"id="val-unknown"><ahref="#val-unknown"class="anchor"></a><code><spanclass="keyword">val</span> unknown : <ahref="index.html#type-t">t</a></code></dt><dtclass="spec value"id="val-get_pow_loc"><ahref="#val-get_pow_loc"class="anchor"></a><code><spanclass="keyword">val</span> get_pow_loc : <ahref="index.html#type-t">t</a><span>-></span><ahref="../BO/AbsLoc/PowLoc/index.html#type-t">BO.AbsLoc.PowLoc.t</a></code></dt><dd><p>Return all allocsites as <code>PowLoc.t</code></p></dd></dl><dl><dtclass="spec value"id="val-is_bot"><ahref="#val-is_bot"class="anchor"></a><code><spanclass="keyword">val</span> is_bot : <ahref="index.html#type-t">t</a><span>-></span> bool</code></dt><dtclass="spec value"id="val-is_symbolic"><ahref="#val-is_symbolic"class="anchor"></a><code><spanclass="keyword">val</span> is_symbolic : <ahref="index.html#type-t">t</a><span>-></span> bool</code></dt><dd><p>Check if there is a symbolic integer value in its offset or size</p></dd></dl><dl><dtclass="spec value"id="val-lift_cmp_itv"><ahref="#val-lift_cmp_itv"class="anchor"></a><code><spanclass="keyword">val</span> lift_cmp_itv : <span>(<ahref="../BO/Itv/index.html#type-t">BO.Itv.t</a><span>-></span><ahref="../BO/Itv/index.html#type-t">BO.Itv.t</a><span>-></span><ahref="../BO/Boolean/index.html#type-t">BO.Boolean.t</a>)</span><span>-></span><ahref="../BO/Boolean/EqualOrder/index.html#type-t">BO.Boolean.EqualOrder.t</a><span>-></span><ahref="index.html#type-t">t</a><span>-></span><ahref="index.html#type-t">t</a><span>-></span><ahref="../BO/Boolean/index.html#type-t">BO.Boolean.t</a></code></dt><dd><p>Lift a comparison of <code>Itv.t</code> and <code>Loc.t</code> to that of <code>t</code>. The comparison for <code>Itv.t</code> is used for integer values such as offset and size, and the comparison for <code>Loc.t</code> is used for allocsites.</p></dd></dl><dl><dtclass="spec value"id="val-transform_length"><ahref="#val-transform_length"class="anchor"></a><code><spanclass="keyword">val</span> transform_length : <span>f:<span>(<ahref="../BO/Itv/index.html#type-t">BO.Itv.t</a><span>-></span><ahref="../BO/Itv/index.html#type-t">BO.Itv.t</a>)</span></span><span>-></span><ahref="index.html#type-t">t</a><span>-></span><ahref="index.html#type-t">t</a></code></dt><dd><p>Apply <code>f</code> to all sizes</p></dd></dl><dl><dtclass="spec value"id="val-prune_binop"><ahref="#val-prune_binop"class="anchor"></a><code><spanclass="keyword">val</span> prune_binop : <ahref="../IR/Binop/index.html#type-t">IR.Binop.t</a><span>-></span><ahref="index.html#type-t">t</a><span>-></span><ahref="index.html#type-t">t</a><span>-></span><ahref="index.html#type-t">t</a></code></dt><dd><p><code>prune_binop bop x y</code> returns a pruned value of <code>x</code> by <code>bop</code> and <code>y</code>.</p></dd></dl><dl><dtclass="spec value"id="val-prune_eq"><ahref="#val-prune_eq"class="anchor"></a><code><spanclass="keyword">val</span> prune_eq : <ahref="index.html#type-t">t</a><span>-></span><ahref="index.html#type-t">t</a><span>-></span><ahref="index.html#type-t">t</a></code></dt><dd><p><code>prune_eq x y</code> returns a pruned value of <code>x</code> by <code>== y</code>.</p></dd></dl><dl><dtclass="spec value"id="val-prune_ne"><ahref="#val-prune_ne"class="anchor"></a><code><spanclass="keyword">val</span> prune_ne : <ahref="index.html#type-t">t</a><span>-></span><ahref="index.html#type-t">t</a><span>-></span><ahref="index.html#type-t">t</a></code></dt><dd><p><code>prune_ne x y</code> returns a pruned value of <code>x</code> by <code>!= y</code>.</p></dd></dl><dl><dtclass="spec value"id="val-prune_offset_le_size"><ahref="#val-prune_offset_le_size"class="anchor"></a><code><spanclass="keyword">val</span> prune_offset_le_size : <ahref="index.html#type-t">t</a><span>-></span><ahref="index.html#type-t">t</a></code></dt><dd><p>Prune offset by <code>offset <= size</code></p></dd></dl><dl><dtclass="spec value"id="val-minus_offset"><ahref="#val-minus_offset"class="anchor"></a><code><spanclass="keyword">val</span> minus_offset : <ahref="index.html#type-t">t</a><span>-></span><ahref="../BO/Itv/index.html#type-t">BO.Itv.t</a><span>-></span><ahref="index.html#type-t">t</a></code></dt><dtclass="spec value"id="val-plus_offset"><ahref="#val-plus_offset"class="anchor"></a><code><spanclass="keyword">val</span> plus_offset : <ahref="index.html#type-t">t</a><span>-></span><ahref="../BO/Itv/index.html#type-t">BO.Itv.t</a><span>-></span><ahref="index.html#type-t">t</a></code></dt><dtclass="spec value"id="val-diff"><ahref="#val-diff"class="anchor"></a><code><spanclass="keyword">val</span> diff : <ahref="index.html#type-t">t</a><span>-></span><ahref="index.html#type-t">t</a><span>-></span><ahref="../BO/Itv/index.html#type-t">BO.Itv.t</a></code></dt><dd><p>Return difference of offsets between given array blocks</p></dd></dl><dl><dtclass="spec value"id="val-normalize"><ahref="#val-normalize"class="anchor"></a><code><spanclass="keyword">val</span> normalize : <ahref="index.html#type-t">t</a><span>-></span><ahref="index.html#type-t">t</a></code></dt><dd><p>Normalize all interval values such as offset and size in it. Thus, if an interval value is invalid, the interval value is replaced with bottom.</p></dd></dl><dl><dtclass="spec value"id="val-subst"><ahref="#val-subst"class="anchor"></a><code><spanclass="keyword">val</span> subst : <ahref="index.html#type-t">t</a><span>-></span><ahref="../BO/Bounds/Bound/index.html#type-eval_sym">BO.Bounds.Bound.eval_sym</a><span>-></span><ahref="../BO/AbsLoc/PowLoc/index.html#type-eval_locpath">BO.AbsLoc.PowLoc.eval_locpath</a><span>-></span><ahref="../BO/AbsLoc/PowLoc/index.html#type-t">BO.AbsLoc.PowLoc.t</a> * <ahref="index.html#type-t">t</a></code></dt><dd><p>Substitute symbolic abstract locations and symbolic interval value in the array block. <code>eval_sym</code> is to get substituted interval values and <code>eval_locpath</code> is to get substituted abstract locaion values. It also returns a set of abstract locations containing non-allocsite locations from the substitution results. Since the key of <code>ArrayBlk.t</code> is <code>AbsLoc.Allocsite.t</code>, they cannot be written in this domain.</p></dd></dl><dl><dtclass="spec value"id="val-set_length"><ahref="#val-set_length"class="anchor"></a><code><spanclass="keyword">val</span> set_length : <ahref="../BO/Itv/index.html#type-t">BO.Itv.t</a><span>-></span><ahref="index.html#type-t">t</a><span>-></span><ahref="index.html#type-t">t</a></code></dt><dtclass="spec value"id="val-set_offset"><ahref="#val-set_offset"class="anchor"></a><code><spanclass="keyword">val</span> set_offset : <ahref="../BO/Itv/index.html#type-t">BO.Itv.t</a><span>-></span><ahref="index.html#type-t">t</a><span>-></span><ahref="index.html#type-t">t</a></code></dt><dtclass="spec value"id="val-set_stride"><ahref="#val-set_stride"class="anchor"></a><code><spanclass="keyword">val</span> set_stride : Z.t <span>-></span><ahref="index.html#type-t">t</a><span>-></span><ahref="index.html#type-t">t</a></code></dt><dtclass="spec value"id="val-get_symbols"><ahref="#val-get_symbols"class="anchor"></a><code><spanclass="keyword">val</span> get_symbols : <ahref="index.html#type-t">t</a><span>-></span><ahref="../BO__Symb/index.html#module-SymbolSet">BO.Symb.SymbolSet</a>.t</code></dt><dd><p>Return all symbols for integer values in it</p></dd></dl><dl><dtclass="spec value"id="val-get_offset"><ahref="#val-get_offset"class="anchor"></a><code><spanclass="keyword">val</span> get_offset : <span>?⁠cost_mode:bool</span><span>-></span><ahref="index.html#type-t">t</a><span>-></span><ahref="../BO/Itv/index.html#type-t">BO.Itv.t</a></code></dt><dd><p>Return offset of the array block. If <code>cost_mode</code> is <code>true</code>, it returns a conservative (bigger than correct one), but not correct offset results.</p></dd></dl><dl><dtclass="spec value"id="val-get_size"><ahref="#val-get_size"class="anchor"></a><code><spanclass="keyword">val</span> get_size : <span>?⁠cost_mode:bool</span><span>-></span><ahref="index.html#type-t">t</a><span>-></span><ahref="../BO/Itv/index.html#type-t">BO.Itv.t</a></code></dt><dd><p>Return size of the array block. If <code>cost_mode</code> is <code>true</code>, it returns a conservative (bigger than correct one), but not correct size results.</p></dd></dl></div></body></html>