--- /dev/null
+<!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/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<title>RNAlib-2.1.2: /home/mescalin/ronny/public_html/programs/ViennaRNA/H/utils.h Source File</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="navtree.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="resize.js"></script>
+<script type="text/javascript" src="navtree.js"></script>
+<script type="text/javascript">
+ $(document).ready(initResizable);
+</script>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 56px;">
+ <td style="padding-left: 0.5em;">
+ <div id="projectname">RNAlib-2.1.2
+ </div>
+ </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.1.1 -->
+ <div id="navrow1" class="tabs">
+ <ul class="tablist">
+ <li><a href="index.html"><span>Main Page</span></a></li>
+ <li><a href="pages.html"><span>Related Pages</span></a></li>
+ <li><a href="modules.html"><span>Modules</span></a></li>
+ <li><a href="annotated.html"><span>Data Structures</span></a></li>
+ <li class="current"><a href="files.html"><span>Files</span></a></li>
+ </ul>
+ </div>
+ <div id="navrow2" class="tabs2">
+ <ul class="tablist">
+ <li><a href="files.html"><span>File List</span></a></li>
+ <li><a href="globals.html"><span>Globals</span></a></li>
+ </ul>
+ </div>
+</div><!-- top -->
+<div id="side-nav" class="ui-resizable side-nav-resizable">
+ <div id="nav-tree">
+ <div id="nav-tree-contents">
+ </div>
+ </div>
+ <div id="splitbar" style="-moz-user-select:none;"
+ class="ui-resizable-handle">
+ </div>
+</div>
+<script type="text/javascript">
+$(document).ready(function(){initNavTree('utils_8h.html','');});
+</script>
+<div id="doc-content">
+<div class="header">
+ <div class="headertitle">
+<div class="title">utils.h</div> </div>
+</div><!--header-->
+<div class="contents">
+<a href="utils_8h.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span> <span class="preprocessor">#ifndef __VIENNA_RNA_PACKAGE_UTILS_H__</span></div>
+<div class="line"><a name="l00002"></a><span class="lineno"> 2</span> <span class="preprocessor"></span><span class="preprocessor">#define __VIENNA_RNA_PACKAGE_UTILS_H__</span></div>
+<div class="line"><a name="l00003"></a><span class="lineno"> 3</span> <span class="preprocessor"></span></div>
+<div class="line"><a name="l00012"></a><span class="lineno"><a class="code" href="utils_8h.html#ad403c9ea58f1836689404c2931419c8c"> 12</a></span> <span class="preprocessor">#define VRNA_INPUT_ERROR 1U</span></div>
+<div class="line"><a name="l00013"></a><span class="lineno"> 13</span> <span class="preprocessor"></span></div>
+<div class="line"><a name="l00016"></a><span class="lineno"><a class="code" href="utils_8h.html#a72f3c6ca5c83d2b9baed2922d19c403d"> 16</a></span> <span class="preprocessor">#define VRNA_INPUT_QUIT 2U</span></div>
+<div class="line"><a name="l00017"></a><span class="lineno"> 17</span> <span class="preprocessor"></span></div>
+<div class="line"><a name="l00020"></a><span class="lineno"><a class="code" href="utils_8h.html#a8e3241b321c9c1a78a69e59e2e019a71"> 20</a></span> <span class="preprocessor">#define VRNA_INPUT_MISC 4U</span></div>
+<div class="line"><a name="l00021"></a><span class="lineno"> 21</span> <span class="preprocessor"></span></div>
+<div class="line"><a name="l00028"></a><span class="lineno"><a class="code" href="utils_8h.html#a2f0d8069e93d3ac54d9320d6bdb8e7e7"> 28</a></span> <span class="preprocessor">#define VRNA_INPUT_FASTA_HEADER 8U</span></div>
+<div class="line"><a name="l00029"></a><span class="lineno"> 29</span> <span class="preprocessor"></span></div>
+<div class="line"><a name="l00034"></a><span class="lineno"><a class="code" href="utils_8h.html#a8566d6787972100e68b5a2a159b4cf45"> 34</a></span> <span class="preprocessor">#define VRNA_INPUT_SEQUENCE 16U</span></div>
+<div class="line"><a name="l00035"></a><span class="lineno"> 35</span> <span class="preprocessor"></span></div>
+<div class="line"><a name="l00040"></a><span class="lineno"><a class="code" href="utils_8h.html#ac08a9df45b9721b97a47dbfe7a6e5f85"> 40</a></span> <span class="preprocessor">#define VRNA_INPUT_CONSTRAINT 32U</span></div>
+<div class="line"><a name="l00041"></a><span class="lineno"> 41</span> <span class="preprocessor"></span></div>
+<div class="line"><a name="l00046"></a><span class="lineno"><a class="code" href="utils_8h.html#a086742158293217a46ae2f71bb296937"> 46</a></span> <span class="preprocessor">#define VRNA_INPUT_NO_TRUNCATION 256U</span></div>
+<div class="line"><a name="l00047"></a><span class="lineno"> 47</span> <span class="preprocessor"></span></div>
+<div class="line"><a name="l00051"></a><span class="lineno"><a class="code" href="utils_8h.html#a7a2e8c50a0c7ce82e60da1016e1367fd"> 51</a></span> <span class="preprocessor">#define VRNA_INPUT_NO_REST 512U</span></div>
+<div class="line"><a name="l00052"></a><span class="lineno"> 52</span> <span class="preprocessor"></span></div>
+<div class="line"><a name="l00056"></a><span class="lineno"><a class="code" href="utils_8h.html#a0de536599b881c787b0943a2671da476"> 56</a></span> <span class="preprocessor">#define VRNA_INPUT_NO_SPAN 1024U</span></div>
+<div class="line"><a name="l00057"></a><span class="lineno"> 57</span> <span class="preprocessor"></span></div>
+<div class="line"><a name="l00061"></a><span class="lineno"><a class="code" href="utils_8h.html#ab4db885222b3b69608310d7c7e63e286"> 61</a></span> <span class="preprocessor">#define VRNA_INPUT_NOSKIP_BLANK_LINES 2048U</span></div>
+<div class="line"><a name="l00062"></a><span class="lineno"> 62</span> <span class="preprocessor"></span></div>
+<div class="line"><a name="l00066"></a><span class="lineno"><a class="code" href="utils_8h.html#a305474b93ccb79ae4c7754016a8ddd84"> 66</a></span> <span class="preprocessor">#define VRNA_INPUT_BLANK_LINE 4096U</span></div>
+<div class="line"><a name="l00067"></a><span class="lineno"> 67</span> <span class="preprocessor"></span></div>
+<div class="line"><a name="l00071"></a><span class="lineno"><a class="code" href="utils_8h.html#a0f6311f11bed1842e3a527ab27b294c6"> 71</a></span> <span class="preprocessor">#define VRNA_INPUT_NOSKIP_COMMENTS 128U</span></div>
+<div class="line"><a name="l00072"></a><span class="lineno"> 72</span> <span class="preprocessor"></span></div>
+<div class="line"><a name="l00076"></a><span class="lineno"><a class="code" href="utils_8h.html#af2062e0eeefffd3ed639af460b3d4fab"> 76</a></span> <span class="preprocessor">#define VRNA_INPUT_COMMENT 8192U</span></div>
+<div class="line"><a name="l00077"></a><span class="lineno"> 77</span> <span class="preprocessor"></span></div>
+<div class="line"><a name="l00078"></a><span class="lineno"> 78</span> </div>
+<div class="line"><a name="l00079"></a><span class="lineno"> 79</span> </div>
+<div class="line"><a name="l00080"></a><span class="lineno"> 80</span> </div>
+<div class="line"><a name="l00084"></a><span class="lineno"><a class="code" href="utils_8h.html#a4e8d7120619b21df0309af425acbc9a2"> 84</a></span> <span class="preprocessor">#define VRNA_CONSTRAINT_PIPE 1U</span></div>
+<div class="line"><a name="l00085"></a><span class="lineno"> 85</span> <span class="preprocessor"></span></div>
+<div class="line"><a name="l00088"></a><span class="lineno"><a class="code" href="utils_8h.html#a55e1d16fd693ae9ec8e987b0750da804"> 88</a></span> <span class="preprocessor">#define VRNA_CONSTRAINT_DOT 2U</span></div>
+<div class="line"><a name="l00089"></a><span class="lineno"> 89</span> <span class="preprocessor"></span></div>
+<div class="line"><a name="l00092"></a><span class="lineno"><a class="code" href="utils_8h.html#a077c56550c915d4516d84a5ed8d051f4"> 92</a></span> <span class="preprocessor">#define VRNA_CONSTRAINT_X 4U</span></div>
+<div class="line"><a name="l00093"></a><span class="lineno"> 93</span> <span class="preprocessor"></span></div>
+<div class="line"><a name="l00096"></a><span class="lineno"><a class="code" href="utils_8h.html#a0512d790f738742cbdcf3f7c87b46f48"> 96</a></span> <span class="preprocessor">#define VRNA_CONSTRAINT_ANG_BRACK 8U</span></div>
+<div class="line"><a name="l00097"></a><span class="lineno"> 97</span> <span class="preprocessor"></span></div>
+<div class="line"><a name="l00100"></a><span class="lineno"><a class="code" href="utils_8h.html#aa20bfca4bb2903c8548000a33d7bbb53"> 100</a></span> <span class="preprocessor">#define VRNA_CONSTRAINT_RND_BRACK 16U</span></div>
+<div class="line"><a name="l00101"></a><span class="lineno"> 101</span> <span class="preprocessor"></span></div>
+<div class="line"><a name="l00104"></a><span class="lineno"><a class="code" href="utils_8h.html#a7d725ef525b29891abef3f1ed42599a4"> 104</a></span> <span class="preprocessor">#define VRNA_CONSTRAINT_MULTILINE 32U</span></div>
+<div class="line"><a name="l00105"></a><span class="lineno"> 105</span> <span class="preprocessor"></span></div>
+<div class="line"><a name="l00108"></a><span class="lineno"><a class="code" href="utils_8h.html#a08d12a9a846ea593b7171d277c9f033f"> 108</a></span> <span class="preprocessor">#define VRNA_CONSTRAINT_NO_HEADER 64U</span></div>
+<div class="line"><a name="l00109"></a><span class="lineno"> 109</span> <span class="preprocessor"></span></div>
+<div class="line"><a name="l00112"></a><span class="lineno"><a class="code" href="utils_8h.html#a0a697f77a6fbb10f34e16fa68ed9e655"> 112</a></span> <span class="preprocessor">#define VRNA_CONSTRAINT_ALL 128U</span></div>
+<div class="line"><a name="l00113"></a><span class="lineno"> 113</span> <span class="preprocessor"></span></div>
+<div class="line"><a name="l00116"></a><span class="lineno"><a class="code" href="utils_8h.html#a99dc6b23dc4080a76e2ed1a81c20e94d"> 116</a></span> <span class="preprocessor">#define VRNA_CONSTRAINT_G 256U</span></div>
+<div class="line"><a name="l00117"></a><span class="lineno"> 117</span> <span class="preprocessor"></span></div>
+<div class="line"><a name="l00118"></a><span class="lineno"> 118</span> </div>
+<div class="line"><a name="l00119"></a><span class="lineno"> 119</span> </div>
+<div class="line"><a name="l00128"></a><span class="lineno"><a class="code" href="utils_8h.html#abec89c09874528c6cb73140a4c3d86d7"> 128</a></span> <span class="preprocessor">#define VRNA_OPTION_MULTILINE 32U</span></div>
+<div class="line"><a name="l00129"></a><span class="lineno"> 129</span> <span class="preprocessor"></span></div>
+<div class="line"><a name="l00130"></a><span class="lineno"> 130</span> </div>
+<div class="line"><a name="l00134"></a><span class="lineno"><a class="code" href="utils_8h.html#ae0b9cd0ce090bd69b951aa73e8fa4f7d"> 134</a></span> <span class="preprocessor">#define MIN2(A, B) ((A) < (B) ? (A) : (B))</span></div>
+<div class="line"><a name="l00135"></a><span class="lineno"> 135</span> <span class="preprocessor"></span></div>
+<div class="line"><a name="l00138"></a><span class="lineno"><a class="code" href="utils_8h.html#a33297b3679c713b0c4d897cd0fe3b122"> 138</a></span> <span class="preprocessor">#define MAX2(A, B) ((A) > (B) ? (A) : (B))</span></div>
+<div class="line"><a name="l00139"></a><span class="lineno"> 139</span> <span class="preprocessor"></span></div>
+<div class="line"><a name="l00142"></a><span class="lineno"><a class="code" href="utils_8h.html#a721b8d5f3abef17f10293f1f7f8c958e"> 142</a></span> <span class="preprocessor">#define MIN3(A, B, C) (MIN2( (MIN2((A),(B))) ,(C)))</span></div>
+<div class="line"><a name="l00143"></a><span class="lineno"> 143</span> <span class="preprocessor"></span></div>
+<div class="line"><a name="l00146"></a><span class="lineno"><a class="code" href="utils_8h.html#a8d577123d2e66d2b7d0bf9af6e172b93"> 146</a></span> <span class="preprocessor">#define MAX3(A, B, C) (MAX2( (MAX2((A),(B))) ,(C)))</span></div>
+<div class="line"><a name="l00147"></a><span class="lineno"> 147</span> <span class="preprocessor"></span></div>
+<div class="line"><a name="l00148"></a><span class="lineno"> 148</span> </div>
+<div class="line"><a name="l00152"></a><span class="lineno"><a class="code" href="utils_8h.html#a03943706e48069237cd57f2d35ca987e"> 152</a></span> <span class="preprocessor">#define XSTR(s) STR(s)</span></div>
+<div class="line"><a name="l00153"></a><span class="lineno"> 153</span> <span class="preprocessor"></span></div>
+<div class="line"><a name="l00156"></a><span class="lineno"><a class="code" href="utils_8h.html#a6388870e639eee9c0a69446876f1f8cc"> 156</a></span> <span class="preprocessor">#define STR(s) #s</span></div>
+<div class="line"><a name="l00157"></a><span class="lineno"> 157</span> <span class="preprocessor"></span></div>
+<div class="line"><a name="l00158"></a><span class="lineno"> 158</span> <span class="preprocessor">#ifndef FILENAME_MAX_LENGTH</span></div>
+<div class="line"><a name="l00159"></a><span class="lineno"> 159</span> <span class="preprocessor"></span></div>
+<div class="line"><a name="l00165"></a><span class="lineno"><a class="code" href="utils_8h.html#afb228174279df9486a5cb56ac0bc79a3"> 165</a></span> <span class="preprocessor">#define FILENAME_MAX_LENGTH 80</span></div>
+<div class="line"><a name="l00166"></a><span class="lineno"> 166</span> <span class="preprocessor"></span></div>
+<div class="line"><a name="l00172"></a><span class="lineno"><a class="code" href="utils_8h.html#a33c3b1826b8e2739f09f111ec719ded5"> 172</a></span> <span class="preprocessor">#define FILENAME_ID_LENGTH 42</span></div>
+<div class="line"><a name="l00173"></a><span class="lineno"> 173</span> <span class="preprocessor"></span><span class="preprocessor">#endif</span></div>
+<div class="line"><a name="l00174"></a><span class="lineno"> 174</span> <span class="preprocessor"></span></div>
+<div class="line"><a name="l00175"></a><span class="lineno"> 175</span> </div>
+<div class="line"><a name="l00176"></a><span class="lineno"> 176</span> <span class="preprocessor">#ifdef HAVE_CONFIG_H</span></div>
+<div class="line"><a name="l00177"></a><span class="lineno"> 177</span> <span class="preprocessor"></span><span class="preprocessor">#include <config.h></span></div>
+<div class="line"><a name="l00178"></a><span class="lineno"> 178</span> <span class="preprocessor">#ifndef HAVE_STRDUP</span></div>
+<div class="line"><a name="l00179"></a><span class="lineno"> 179</span> <span class="preprocessor"></span><span class="keywordtype">char</span> *strdup(<span class="keyword">const</span> <span class="keywordtype">char</span> *s);</div>
+<div class="line"><a name="l00180"></a><span class="lineno"> 180</span> <span class="preprocessor">#endif</span></div>
+<div class="line"><a name="l00181"></a><span class="lineno"> 181</span> <span class="preprocessor"></span><span class="preprocessor">#endif</span></div>
+<div class="line"><a name="l00182"></a><span class="lineno"> 182</span> <span class="preprocessor"></span><span class="preprocessor">#ifdef WITH_DMALLOC</span></div>
+<div class="line"><a name="l00183"></a><span class="lineno"> 183</span> <span class="preprocessor"></span><span class="comment">/* use dmalloc library to check for memory management bugs */</span></div>
+<div class="line"><a name="l00184"></a><span class="lineno"> 184</span> <span class="preprocessor">#include "dmalloc.h"</span></div>
+<div class="line"><a name="l00185"></a><span class="lineno"> 185</span> <span class="preprocessor">#define space(S) calloc(1,(S))</span></div>
+<div class="line"><a name="l00186"></a><span class="lineno"> 186</span> <span class="preprocessor"></span><span class="preprocessor">#else</span></div>
+<div class="line"><a name="l00187"></a><span class="lineno"> 187</span> <span class="preprocessor"></span></div>
+<div class="line"><a name="l00194"></a><span class="lineno"> 194</span> <span class="comment">/*@only@*/</span> <span class="comment">/*@notnull@*/</span></div>
+<div class="line"><a name="l00195"></a><span class="lineno"> 195</span> <span class="keywordtype">void</span> *<a class="code" href="utils_8h.html#ad7e1e137b3bf1f7108933d302a7f0177" title="Allocate space safely.">space</a>(<span class="keywordtype">unsigned</span> size) <span class="comment">/*@ensures MaxSet(result) == (size-1);@*/</span>;</div>
+<div class="line"><a name="l00196"></a><span class="lineno"> 196</span> </div>
+<div class="line"><a name="l00204"></a><span class="lineno"> 204</span> <span class="comment">/*@only@*/</span> <span class="comment">/*@notnull@*/</span></div>
+<div class="line"><a name="l00205"></a><span class="lineno"> 205</span> <span class="keywordtype">void</span> *<a class="code" href="utils_8h.html#a9037ada838835b1b9db41581a021b0c8" title="Reallocate space safely.">xrealloc</a>(<span class="comment">/*@null@*/</span> <span class="comment">/*@only@*/</span> <span class="comment">/*@out@*/</span> <span class="comment">/*@returned@*/</span> <span class="keywordtype">void</span> *p,</div>
+<div class="line"><a name="l00206"></a><span class="lineno"> 206</span>  <span class="keywordtype">unsigned</span> size) <span class="comment">/*@modifies *p @*/</span> <span class="comment">/*@ensures MaxSet(result) == (size-1) @*/</span>;</div>
+<div class="line"><a name="l00207"></a><span class="lineno"> 207</span> <span class="preprocessor">#endif</span></div>
+<div class="line"><a name="l00208"></a><span class="lineno"> 208</span> <span class="preprocessor"></span></div>
+<div class="line"><a name="l00215"></a><span class="lineno"> 215</span> <span class="comment">/*@exits@*/</span></div>
+<div class="line"><a name="l00216"></a><span class="lineno"> 216</span> <span class="keywordtype">void</span> <a class="code" href="utils_8h.html#a127ce946e56b5a5773781cabe68e38c5" title="Die with an error message.">nrerror</a>(<span class="keyword">const</span> <span class="keywordtype">char</span> message[]);</div>
+<div class="line"><a name="l00217"></a><span class="lineno"> 217</span> </div>
+<div class="line"><a name="l00225"></a><span class="lineno"> 225</span> <span class="keywordtype">void</span> <a class="code" href="utils_8h.html#af2355fa8746f2f30fbe71db65dea3d51" title="Print a warning message.">warn_user</a>(<span class="keyword">const</span> <span class="keywordtype">char</span> message[]);</div>
+<div class="line"><a name="l00226"></a><span class="lineno"> 226</span> </div>
+<div class="line"><a name="l00230"></a><span class="lineno"> 230</span> <span class="keywordtype">void</span> <a class="code" href="utils_8h.html#a8aaa6d9be6f803f496d9b97375c371f3" title="Make random number seeds.">init_rand</a>(<span class="keywordtype">void</span>);</div>
+<div class="line"><a name="l00231"></a><span class="lineno"> 231</span> </div>
+<div class="line"><a name="l00240"></a><span class="lineno"> 240</span> <span class="keyword">extern</span> <span class="keywordtype">unsigned</span> <span class="keywordtype">short</span> <a class="code" href="utils_8h.html#af9a866c8417afda7368bbac939ab3c47" title="Current 48 bit random number.">xsubi</a>[3];</div>
+<div class="line"><a name="l00241"></a><span class="lineno"> 241</span> </div>
+<div class="line"><a name="l00248"></a><span class="lineno"> 248</span> <span class="keywordtype">double</span> <a class="code" href="utils_8h.html#aaa328491c84996e445d027fde9800f2e" title="get a random number from [0..1]">urn</a>(<span class="keywordtype">void</span>);</div>
+<div class="line"><a name="l00249"></a><span class="lineno"> 249</span> </div>
+<div class="line"><a name="l00257"></a><span class="lineno"> 257</span> <span class="keywordtype">int</span> <a class="code" href="utils_8h.html#a68ff0849d44f62fe491800378a5ffcb4" title="Generates a pseudo random integer in a specified range.">int_urn</a>(<span class="keywordtype">int</span> from, <span class="keywordtype">int</span> to);</div>
+<div class="line"><a name="l00258"></a><span class="lineno"> 258</span> </div>
+<div class="line"><a name="l00259"></a><span class="lineno"> 259</span> <span class="keywordtype">void</span> filecopy(FILE *from, FILE *to); <span class="comment">/* inefficient `cp' */</span></div>
+<div class="line"><a name="l00260"></a><span class="lineno"> 260</span> </div>
+<div class="line"><a name="l00269"></a><span class="lineno"> 269</span> <span class="comment">/*@observer@*/</span></div>
+<div class="line"><a name="l00270"></a><span class="lineno"> 270</span> <span class="keywordtype">char</span> *<a class="code" href="utils_8h.html#a7afeb906cb36e9d77379eabc6907ac46" title="Get a timestamp.">time_stamp</a>(<span class="keywordtype">void</span>);</div>
+<div class="line"><a name="l00271"></a><span class="lineno"> 271</span> </div>
+<div class="line"><a name="l00279"></a><span class="lineno"> 279</span> <span class="comment">/*@only@*/</span> <span class="comment">/*@notnull@*/</span></div>
+<div class="line"><a name="l00280"></a><span class="lineno"> 280</span> <span class="keywordtype">char</span> *<a class="code" href="utils_8h.html#a1b95eac365a021572e1c37e5993a89be" title="Create a random string using characters from a specified symbol set.">random_string</a>(<span class="keywordtype">int</span> l, <span class="keyword">const</span> <span class="keywordtype">char</span> symbols[]);</div>
+<div class="line"><a name="l00281"></a><span class="lineno"> 281</span> </div>
+<div class="line"><a name="l00290"></a><span class="lineno"> 290</span> <span class="keywordtype">int</span> <a class="code" href="utils_8h.html#ad9dc7bfc9aa664dc6698f17ce07fc7e7" title="Calculate hamming distance between two sequences.">hamming</a>(<span class="keyword">const</span> <span class="keywordtype">char</span> *s1, <span class="keyword">const</span> <span class="keywordtype">char</span> *s2);</div>
+<div class="line"><a name="l00291"></a><span class="lineno"> 291</span> </div>
+<div class="line"><a name="l00301"></a><span class="lineno"> 301</span> <span class="keywordtype">int</span> <a class="code" href="utils_8h.html#a96d3c36717d624514055ce201cab1542" title="Calculate hamming distance between two sequences up to a specified length.">hamming_bound</a>(<span class="keyword">const</span> <span class="keywordtype">char</span> *s1, <span class="keyword">const</span> <span class="keywordtype">char</span> *s2, <span class="keywordtype">int</span> n);</div>
+<div class="line"><a name="l00302"></a><span class="lineno"> 302</span> </div>
+<div class="line"><a name="l00313"></a><span class="lineno"> 313</span> <span class="comment">/*@only@*/</span> <span class="comment">/*@null@*/</span></div>
+<div class="line"><a name="l00314"></a><span class="lineno"> 314</span> <span class="keywordtype">char</span> *<a class="code" href="utils_8h.html#abe51806d14cff0789a8c1df7dbc45b71" title="Read a line of arbitrary length from a stream.">get_line</a>(FILE *fp);</div>
+<div class="line"><a name="l00315"></a><span class="lineno"> 315</span> </div>
+<div class="line"><a name="l00316"></a><span class="lineno"> 316</span> <span class="keywordtype">int</span> skip_comment_lines(<span class="keywordtype">char</span> **line);</div>
+<div class="line"><a name="l00317"></a><span class="lineno"> 317</span> </div>
+<div class="line"><a name="l00338"></a><span class="lineno"> 338</span> <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> <a class="code" href="utils_8h.html#a8ef1835eb83f542396f59f0b205965e5">get_input_line</a>(<span class="keywordtype">char</span> **<span class="keywordtype">string</span>,</div>
+<div class="line"><a name="l00339"></a><span class="lineno"> 339</span>  <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> options);</div>
+<div class="line"><a name="l00340"></a><span class="lineno"> 340</span> </div>
+<div class="line"><a name="l00341"></a><span class="lineno"> 341</span> <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> get_multi_input_line(<span class="keywordtype">char</span> **<span class="keywordtype">string</span>,</div>
+<div class="line"><a name="l00342"></a><span class="lineno"> 342</span>  <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> options);</div>
+<div class="line"><a name="l00343"></a><span class="lineno"> 343</span> </div>
+<div class="line"><a name="l00396"></a><span class="lineno"> 396</span> <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> <a class="code" href="utils_8h.html#afd194a69af9d92b5b0412a7627ac1595" title="Get a data record from stdin.">read_record</a>( <span class="keywordtype">char</span> **header,</div>
+<div class="line"><a name="l00397"></a><span class="lineno"> 397</span>  <span class="keywordtype">char</span> **sequence,</div>
+<div class="line"><a name="l00398"></a><span class="lineno"> 398</span>  <span class="keywordtype">char</span> ***rest,</div>
+<div class="line"><a name="l00399"></a><span class="lineno"> 399</span>  <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> options);</div>
+<div class="line"><a name="l00400"></a><span class="lineno"> 400</span> </div>
+<div class="line"><a name="l00401"></a><span class="lineno"> 401</span> </div>
+<div class="line"><a name="l00402"></a><span class="lineno"> 402</span> <span class="comment">/* \brief Extract a dot-bracket structure string from (multiline)character array</span></div>
+<div class="line"><a name="l00403"></a><span class="lineno"> 403</span> <span class="comment"> *</span></div>
+<div class="line"><a name="l00404"></a><span class="lineno"> 404</span> <span class="comment"> * This function extracts a dot-bracket structure string from the 'rest' array as</span></div>
+<div class="line"><a name="l00405"></a><span class="lineno"> 405</span> <span class="comment"> * returned by read_record() and returns it. All occurences of comments within the</span></div>
+<div class="line"><a name="l00406"></a><span class="lineno"> 406</span> <span class="comment"> * 'lines' array will be skipped as long as they do not break the structure string.</span></div>
+<div class="line"><a name="l00407"></a><span class="lineno"> 407</span> <span class="comment"> * If no structure could be read, this function returns NULL.</span></div>
+<div class="line"><a name="l00408"></a><span class="lineno"> 408</span> <span class="comment"> *</span></div>
+<div class="line"><a name="l00409"></a><span class="lineno"> 409</span> <span class="comment"> * \see read_record()</span></div>
+<div class="line"><a name="l00410"></a><span class="lineno"> 410</span> <span class="comment"> *</span></div>
+<div class="line"><a name="l00411"></a><span class="lineno"> 411</span> <span class="comment"> * \param lines The (multiline) character array to be parsed</span></div>
+<div class="line"><a name="l00412"></a><span class="lineno"> 412</span> <span class="comment"> * \param length The assumed length of the dot-bracket string (passing a value < 1 results in no length limit)</span></div>
+<div class="line"><a name="l00413"></a><span class="lineno"> 413</span> <span class="comment"> * \param option Some options which may be passed to alter the behavior of the function, use 0 for no options</span></div>
+<div class="line"><a name="l00414"></a><span class="lineno"> 414</span> <span class="comment"> * \return The dot-bracket string read from lines or NULL</span></div>
+<div class="line"><a name="l00415"></a><span class="lineno"> 415</span> <span class="comment"> */</span></div>
+<div class="line"><a name="l00416"></a><span class="lineno"> 416</span> <span class="keywordtype">char</span> *extract_record_rest_structure(<span class="keyword">const</span> <span class="keywordtype">char</span> **lines,</div>
+<div class="line"><a name="l00417"></a><span class="lineno"> 417</span>  <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> length,</div>
+<div class="line"><a name="l00418"></a><span class="lineno"> 418</span>  <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> option);</div>
+<div class="line"><a name="l00419"></a><span class="lineno"> 419</span> </div>
+<div class="line"><a name="l00431"></a><span class="lineno"> 431</span> <span class="keywordtype">char</span> *<a class="code" href="utils_8h.html#ac6dfa5e22928c087c6e09ff0054a7ced" title="Pack secondary secondary structure, 5:1 compression using base 3 encoding.">pack_structure</a>(<span class="keyword">const</span> <span class="keywordtype">char</span> *struc);</div>
+<div class="line"><a name="l00432"></a><span class="lineno"> 432</span> </div>
+<div class="line"><a name="l00442"></a><span class="lineno"> 442</span> <span class="keywordtype">char</span> *<a class="code" href="utils_8h.html#a071c6921efe1eb974f115ee6fefa3c39" title="Unpack secondary structure previously packed with pack_structure()">unpack_structure</a>(<span class="keyword">const</span> <span class="keywordtype">char</span> *packed);</div>
+<div class="line"><a name="l00443"></a><span class="lineno"> 443</span> </div>
+<div class="line"><a name="l00453"></a><span class="lineno"> 453</span> <span class="keywordtype">short</span> *<a class="code" href="utils_8h.html#a89c32307ee50a0026f4a3131fac0845a" title="Create a pair table of a secondary structure.">make_pair_table</a>(<span class="keyword">const</span> <span class="keywordtype">char</span> *structure);</div>
+<div class="line"><a name="l00454"></a><span class="lineno"> 454</span> </div>
+<div class="line"><a name="l00455"></a><span class="lineno"> 455</span> <span class="keywordtype">short</span> *make_pair_table_pk(<span class="keyword">const</span> <span class="keywordtype">char</span> *structure);</div>
+<div class="line"><a name="l00456"></a><span class="lineno"> 456</span> </div>
+<div class="line"><a name="l00463"></a><span class="lineno"> 463</span> <span class="keywordtype">short</span> *<a class="code" href="utils_8h.html#afeaa6d68eef3a99d0a7aa08aa91c6601" title="Get an exact copy of a pair table.">copy_pair_table</a>(<span class="keyword">const</span> <span class="keywordtype">short</span> *pt);</div>
+<div class="line"><a name="l00464"></a><span class="lineno"> 464</span> </div>
+<div class="line"><a name="l00470"></a><span class="lineno"> 470</span> <span class="keywordtype">short</span> *<a class="code" href="utils_8h.html#a3c81b3967056c3888b8472b65fbb16f5">alimake_pair_table</a>(<span class="keyword">const</span> <span class="keywordtype">char</span> *structure);</div>
+<div class="line"><a name="l00471"></a><span class="lineno"> 471</span> </div>
+<div class="line"><a name="l00477"></a><span class="lineno"> 477</span> <span class="keywordtype">short</span> *<a class="code" href="utils_8h.html#a9aa3bf3b4346bb7fb88efc154dd07a79">make_pair_table_snoop</a>(<span class="keyword">const</span> <span class="keywordtype">char</span> *structure);</div>
+<div class="line"><a name="l00478"></a><span class="lineno"> 478</span> </div>
+<div class="line"><a name="l00491"></a><span class="lineno"> 491</span> <span class="keywordtype">int</span> *<a class="code" href="utils_8h.html#a4358e89f64cc87a563b7ef3855f75bed" title="Compute the "base pair" distance between two secondary structures s1 and s2.">make_loop_index_pt</a>(<span class="keywordtype">short</span> *pt);</div>
+<div class="line"><a name="l00492"></a><span class="lineno"> 492</span> </div>
+<div class="line"><a name="l00493"></a><span class="lineno"> 493</span> </div>
+<div class="line"><a name="l00494"></a><span class="lineno"> 494</span> <span class="keywordtype">int</span> bp_distance(<span class="keyword">const</span> <span class="keywordtype">char</span> *str1,</div>
+<div class="line"><a name="l00495"></a><span class="lineno"> 495</span>  <span class="keyword">const</span> <span class="keywordtype">char</span> *str2);</div>
+<div class="line"><a name="l00496"></a><span class="lineno"> 496</span> </div>
+<div class="line"><a name="l00502"></a><span class="lineno"> 502</span> <span class="keywordtype">void</span> <a class="code" href="utils_8h.html#a6bf778117d31b7fd90db435323f4ef74" title="Print a line to stdout that asks for an input sequence.">print_tty_input_seq</a>(<span class="keywordtype">void</span>);</div>
+<div class="line"><a name="l00503"></a><span class="lineno"> 503</span> </div>
+<div class="line"><a name="l00512"></a><span class="lineno"> 512</span> <span class="keywordtype">void</span> <a class="code" href="utils_8h.html#ae4ef89b662a3e9b5b5f0781d9757aba0" title="Print a line with a user defined string and a ruler to stdout.">print_tty_input_seq_str</a>(<span class="keyword">const</span> <span class="keywordtype">char</span> *s);</div>
+<div class="line"><a name="l00513"></a><span class="lineno"> 513</span> </div>
+<div class="line"><a name="l00519"></a><span class="lineno"> 519</span> <span class="keywordtype">void</span> <a class="code" href="utils_8h.html#ae8ae8a34962b9959be3f6c40f0a80ac1" title="Print structure constraint characters to stdout (full constraint support)">print_tty_constraint_full</a>(<span class="keywordtype">void</span>);</div>
+<div class="line"><a name="l00520"></a><span class="lineno"> 520</span> </div>
+<div class="line"><a name="l00537"></a><span class="lineno"> 537</span> <span class="keywordtype">void</span> <a class="code" href="utils_8h.html#a4d167deb70bb51723e44374dc981deb2" title="Print structure constraint characters to stdout. (constraint support is specified by option parameter...">print_tty_constraint</a>(<span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> option);</div>
+<div class="line"><a name="l00538"></a><span class="lineno"> 538</span> </div>
+<div class="line"><a name="l00546"></a><span class="lineno"> 546</span> <span class="keywordtype">void</span> <a class="code" href="utils_8h.html#ad3f18dd83f958f18b2f26ecb99305208" title="Convert a DNA input sequence to RNA alphabet.">str_DNA2RNA</a>(<span class="keywordtype">char</span> *sequence);</div>
+<div class="line"><a name="l00547"></a><span class="lineno"> 547</span> </div>
+<div class="line"><a name="l00553"></a><span class="lineno"> 553</span> <span class="keywordtype">void</span> <a class="code" href="utils_8h.html#a17b796b806f96b70382077fb5bc519bb" title="Convert an input sequence to uppercase.">str_uppercase</a>(<span class="keywordtype">char</span> *sequence);</div>
+<div class="line"><a name="l00554"></a><span class="lineno"> 554</span> </div>
+<div class="line"><a name="l00568"></a><span class="lineno"> 568</span> <span class="keywordtype">int</span> *<a class="code" href="utils_8h.html#a55c0f6b3b07b6adf2ee235ba901fe397" title="Get an index mapper array (iindx) for accessing the energy matrices, e.g. in partition function relat...">get_iindx</a>(<span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> length);</div>
+<div class="line"><a name="l00569"></a><span class="lineno"> 569</span> </div>
+<div class="line"><a name="l00584"></a><span class="lineno"> 584</span> <span class="keywordtype">int</span> *<a class="code" href="utils_8h.html#a4d9ee1572c1bfcd02d3d3f2db8a6530f" title="Get an index mapper array (indx) for accessing the energy matrices, e.g. in MFE related functions...">get_indx</a>(<span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> length);</div>
+<div class="line"><a name="l00585"></a><span class="lineno"> 585</span> </div>
+<div class="line"><a name="l00586"></a><span class="lineno"> 586</span> <span class="keywordtype">void</span> getConstraint( <span class="keywordtype">char</span> **cstruc,</div>
+<div class="line"><a name="l00587"></a><span class="lineno"> 587</span>  <span class="keyword">const</span> <span class="keywordtype">char</span> **lines,</div>
+<div class="line"><a name="l00588"></a><span class="lineno"> 588</span>  <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> option);</div>
+<div class="line"><a name="l00589"></a><span class="lineno"> 589</span> </div>
+<div class="line"><a name="l00601"></a><span class="lineno"> 601</span> <span class="keywordtype">void</span> <a class="code" href="utils_8h.html#a36c3a6c3218b041f992052767bc74549" title="Insert constraining pair types according to constraint structure string.">constrain_ptypes</a>(<span class="keyword">const</span> <span class="keywordtype">char</span> *constraint,</div>
+<div class="line"><a name="l00602"></a><span class="lineno"> 602</span>  <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> length,</div>
+<div class="line"><a name="l00603"></a><span class="lineno"> 603</span>  <span class="keywordtype">char</span> *ptype,</div>
+<div class="line"><a name="l00604"></a><span class="lineno"> 604</span>  <span class="keywordtype">int</span> *BP,</div>
+<div class="line"><a name="l00605"></a><span class="lineno"> 605</span>  <span class="keywordtype">int</span> min_loop_size,</div>
+<div class="line"><a name="l00606"></a><span class="lineno"> 606</span>  <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> idx_type);</div>
+<div class="line"><a name="l00607"></a><span class="lineno"> 607</span> </div>
+<div class="line"><a name="l00608"></a><span class="lineno"> 608</span> <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> *make_referenceBP_array(<span class="keywordtype">short</span> *reference_pt,</div>
+<div class="line"><a name="l00609"></a><span class="lineno"> 609</span>  <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> turn);</div>
+<div class="line"><a name="l00610"></a><span class="lineno"> 610</span> </div>
+<div class="line"><a name="l00611"></a><span class="lineno"> 611</span> <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> *compute_BPdifferences( <span class="keywordtype">short</span> *pt1,</div>
+<div class="line"><a name="l00612"></a><span class="lineno"> 612</span>  <span class="keywordtype">short</span> *pt2,</div>
+<div class="line"><a name="l00613"></a><span class="lineno"> 613</span>  <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> turn);</div>
+<div class="line"><a name="l00614"></a><span class="lineno"> 614</span> </div>
+<div class="line"><a name="l00615"></a><span class="lineno"> 615</span> <span class="preprocessor">#endif</span></div>
+</div><!-- fragment --></div><!-- contents -->
+</div><!-- doc-content -->
+<!-- start footer part -->
+<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
+ <ul>
+ <li class="navelem"><a class="el" href="dir_d72344b28b4f2089ce25682c4e6eba22.html">H</a></li><li class="navelem"><a class="el" href="utils_8h.html">utils.h</a></li>
+ <li class="footer">Generated on Wed Jul 24 2013 13:38:56 for RNAlib-2.1.2 by
+ <a href="http://www.doxygen.org/index.html">
+ <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.1.1 </li>
+ </ul>
+</div>
+</body>
+</html>