wcslib (8.2.2)

(root)/
share/
doc/
wcslib-8.2.2/
html/
wcsutil_8h.html
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" lang="en-US">
<head>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=11"/>
<meta name="generator" content="Doxygen 1.9.8"/>
<meta name="viewport" content="width=device-width, initial-scale=1"/>
<title>WCSLIB: wcsutil.h File Reference</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="search/search.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="search/searchdata.js"></script>
<script type="text/javascript" src="search/search.js"></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 id="projectrow">
  <td id="projectalign">
   <div id="projectname">WCSLIB<span id="projectnumber">&#160;8.2.2</span>
   </div>
  </td>
 </tr>
 </tbody>
</table>
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.9.8 -->
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
var searchBox = new SearchBox("searchBox", "search/",'.html');
/* @license-end */
</script>
<script type="text/javascript" src="menudata.js"></script>
<script type="text/javascript" src="menu.js"></script>
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
$(function() {
  initMenu('',true,false,'search.php','Search');
  $(document).ready(function() { init_search(); });
});
/* @license-end */
</script>
<div id="main-nav"></div>
<!-- window showing the filter options -->
<div id="MSearchSelectWindow"
     onmouseover="return searchBox.OnSearchSelectShow()"
     onmouseout="return searchBox.OnSearchSelectHide()"
     onkeydown="return searchBox.OnSearchSelectKey(event)">
</div>

<!-- iframe showing the search results (closed by default) -->
<div id="MSearchResultsWindow">
<div id="MSearchResults">
<div class="SRPage">
<div id="SRIndex">
<div id="SRResults"></div>
<div class="SRStatus" id="Loading">Loading...</div>
<div class="SRStatus" id="Searching">Searching...</div>
<div class="SRStatus" id="NoMatches">No Matches</div>
</div>
</div>
</div>
</div>

<div id="nav-path" class="navpath">
  <ul>
<li class="navelem"><a class="el" href="dir_af99bb3c152a306abd27951285ad1127.html">C</a></li>  </ul>
</div>
</div><!-- top -->
<div class="header">
  <div class="summary">
<a href="#func-members">Functions</a>  </div>
  <div class="headertitle"><div class="title">wcsutil.h File Reference</div></div>
</div><!--header-->
<div class="contents">

<p><a href="wcsutil_8h_source.html">Go to the source code of this file.</a></p>
<table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a id="func-members" name="func-members"></a>
Functions</h2></td></tr>
<tr class="memitem:a6b603ff362203ad122fe67a47d10cb9a" id="r_a6b603ff362203ad122fe67a47d10cb9a"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="wcsutil_8h.html#a6b603ff362203ad122fe67a47d10cb9a">wcsdealloc</a> (void *ptr)</td></tr>
<tr class="memdesc:a6b603ff362203ad122fe67a47d10cb9a"><td class="mdescLeft">&#160;</td><td class="mdescRight">free memory allocated by WCSLIB functions.  <br /></td></tr>
<tr class="separator:a6b603ff362203ad122fe67a47d10cb9a"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a803812fd67b053f3084e0d40d68125f1" id="r_a803812fd67b053f3084e0d40d68125f1"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="wcsutil_8h.html#a803812fd67b053f3084e0d40d68125f1">wcsutil_strcvt</a> (int n, char c, int nt, const char src[], char dst[])</td></tr>
<tr class="memdesc:a803812fd67b053f3084e0d40d68125f1"><td class="mdescLeft">&#160;</td><td class="mdescRight">Copy character string with padding.  <br /></td></tr>
<tr class="separator:a803812fd67b053f3084e0d40d68125f1"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a38322fa65b3bad54552d374d873ad037" id="r_a38322fa65b3bad54552d374d873ad037"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="wcsutil_8h.html#a38322fa65b3bad54552d374d873ad037">wcsutil_blank_fill</a> (int n, char c[])</td></tr>
<tr class="memdesc:a38322fa65b3bad54552d374d873ad037"><td class="mdescLeft">&#160;</td><td class="mdescRight">Fill a character string with blanks.  <br /></td></tr>
<tr class="separator:a38322fa65b3bad54552d374d873ad037"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a9d96f343fc444f8c6f1fa01367c4d765" id="r_a9d96f343fc444f8c6f1fa01367c4d765"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="wcsutil_8h.html#a9d96f343fc444f8c6f1fa01367c4d765">wcsutil_null_fill</a> (int n, char c[])</td></tr>
<tr class="memdesc:a9d96f343fc444f8c6f1fa01367c4d765"><td class="mdescLeft">&#160;</td><td class="mdescRight">Fill a character string with NULLs.  <br /></td></tr>
<tr class="separator:a9d96f343fc444f8c6f1fa01367c4d765"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ad6a7b226aa497d078c6dc16279417a11" id="r_ad6a7b226aa497d078c6dc16279417a11"><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="wcsutil_8h.html#ad6a7b226aa497d078c6dc16279417a11">wcsutil_all_ival</a> (int nelem, int ival, const int iarr[])</td></tr>
<tr class="memdesc:ad6a7b226aa497d078c6dc16279417a11"><td class="mdescLeft">&#160;</td><td class="mdescRight">Test if all elements an int array have a given value.  <br /></td></tr>
<tr class="separator:ad6a7b226aa497d078c6dc16279417a11"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ab187f2189905b9f1a9102ef578a47e19" id="r_ab187f2189905b9f1a9102ef578a47e19"><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="wcsutil_8h.html#ab187f2189905b9f1a9102ef578a47e19">wcsutil_all_dval</a> (int nelem, double dval, const double darr[])</td></tr>
<tr class="memdesc:ab187f2189905b9f1a9102ef578a47e19"><td class="mdescLeft">&#160;</td><td class="mdescRight">Test if all elements a double array have a given value.  <br /></td></tr>
<tr class="separator:ab187f2189905b9f1a9102ef578a47e19"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a19b45e9365d1f01c92958fc1f1485f11" id="r_a19b45e9365d1f01c92958fc1f1485f11"><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="wcsutil_8h.html#a19b45e9365d1f01c92958fc1f1485f11">wcsutil_all_sval</a> (int nelem, const char *sval, const char(*sarr)[72])</td></tr>
<tr class="memdesc:a19b45e9365d1f01c92958fc1f1485f11"><td class="mdescLeft">&#160;</td><td class="mdescRight">Test if all elements a string array have a given value.  <br /></td></tr>
<tr class="separator:a19b45e9365d1f01c92958fc1f1485f11"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a4c7c5a686aaa39f511598b32e944ac68" id="r_a4c7c5a686aaa39f511598b32e944ac68"><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="wcsutil_8h.html#a4c7c5a686aaa39f511598b32e944ac68">wcsutil_allEq</a> (int nvec, int nelem, const double *first)</td></tr>
<tr class="memdesc:a4c7c5a686aaa39f511598b32e944ac68"><td class="mdescLeft">&#160;</td><td class="mdescRight">Test for equality of a particular vector element.  <br /></td></tr>
<tr class="separator:a4c7c5a686aaa39f511598b32e944ac68"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aa192ce2ee7e50735284c5748ecdd7cce" id="r_aa192ce2ee7e50735284c5748ecdd7cce"><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="wcsutil_8h.html#aa192ce2ee7e50735284c5748ecdd7cce">wcsutil_dblEq</a> (int nelem, double tol, const double *arr1, const double *arr2)</td></tr>
<tr class="memdesc:aa192ce2ee7e50735284c5748ecdd7cce"><td class="mdescLeft">&#160;</td><td class="mdescRight">Test for equality of two arrays of type double.  <br /></td></tr>
<tr class="separator:aa192ce2ee7e50735284c5748ecdd7cce"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aa5bbbba74625c61cc2aec6f592021239" id="r_aa5bbbba74625c61cc2aec6f592021239"><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="wcsutil_8h.html#aa5bbbba74625c61cc2aec6f592021239">wcsutil_intEq</a> (int nelem, const int *arr1, const int *arr2)</td></tr>
<tr class="memdesc:aa5bbbba74625c61cc2aec6f592021239"><td class="mdescLeft">&#160;</td><td class="mdescRight">Test for equality of two arrays of type int.  <br /></td></tr>
<tr class="separator:aa5bbbba74625c61cc2aec6f592021239"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:abd917d05f3d66f641a2edf11edc34137" id="r_abd917d05f3d66f641a2edf11edc34137"><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="wcsutil_8h.html#abd917d05f3d66f641a2edf11edc34137">wcsutil_strEq</a> (int nelem, char(*arr1)[72], char(*arr2)[72])</td></tr>
<tr class="memdesc:abd917d05f3d66f641a2edf11edc34137"><td class="mdescLeft">&#160;</td><td class="mdescRight">Test for equality of two string arrays.  <br /></td></tr>
<tr class="separator:abd917d05f3d66f641a2edf11edc34137"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:afe7f963c2038673015bbce204c4a8171" id="r_afe7f963c2038673015bbce204c4a8171"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="wcsutil_8h.html#afe7f963c2038673015bbce204c4a8171">wcsutil_setAll</a> (int nvec, int nelem, double *first)</td></tr>
<tr class="memdesc:afe7f963c2038673015bbce204c4a8171"><td class="mdescLeft">&#160;</td><td class="mdescRight">Set a particular vector element.  <br /></td></tr>
<tr class="separator:afe7f963c2038673015bbce204c4a8171"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ab32722081f8cda184d7ada6d734c637c" id="r_ab32722081f8cda184d7ada6d734c637c"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="wcsutil_8h.html#ab32722081f8cda184d7ada6d734c637c">wcsutil_setAli</a> (int nvec, int nelem, int *first)</td></tr>
<tr class="memdesc:ab32722081f8cda184d7ada6d734c637c"><td class="mdescLeft">&#160;</td><td class="mdescRight">Set a particular vector element.  <br /></td></tr>
<tr class="separator:ab32722081f8cda184d7ada6d734c637c"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a0d982911e7f694a751f2887ea38890e4" id="r_a0d982911e7f694a751f2887ea38890e4"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="wcsutil_8h.html#a0d982911e7f694a751f2887ea38890e4">wcsutil_setBit</a> (int nelem, const int *sel, int bits, int *array)</td></tr>
<tr class="memdesc:a0d982911e7f694a751f2887ea38890e4"><td class="mdescLeft">&#160;</td><td class="mdescRight">Set bits in selected elements of an array.  <br /></td></tr>
<tr class="separator:a0d982911e7f694a751f2887ea38890e4"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ab2c00908a4de5c3838a7e30de2cd8944" id="r_ab2c00908a4de5c3838a7e30de2cd8944"><td class="memItemLeft" align="right" valign="top">char *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="wcsutil_8h.html#ab2c00908a4de5c3838a7e30de2cd8944">wcsutil_fptr2str</a> (void(*fptr)(void), char hext[19])</td></tr>
<tr class="memdesc:ab2c00908a4de5c3838a7e30de2cd8944"><td class="mdescLeft">&#160;</td><td class="mdescRight">Translate pointer-to-function to string.  <br /></td></tr>
<tr class="separator:ab2c00908a4de5c3838a7e30de2cd8944"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a1f7aec8e3deb2a3f206f81f0cdc50843" id="r_a1f7aec8e3deb2a3f206f81f0cdc50843"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="wcsutil_8h.html#a1f7aec8e3deb2a3f206f81f0cdc50843">wcsutil_double2str</a> (char *buf, const char *format, double value)</td></tr>
<tr class="memdesc:a1f7aec8e3deb2a3f206f81f0cdc50843"><td class="mdescLeft">&#160;</td><td class="mdescRight">Translate double to string ignoring the locale.  <br /></td></tr>
<tr class="separator:a1f7aec8e3deb2a3f206f81f0cdc50843"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ac0d3806fca9d81d31e345e688d832663" id="r_ac0d3806fca9d81d31e345e688d832663"><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="wcsutil_8h.html#ac0d3806fca9d81d31e345e688d832663">wcsutil_str2double</a> (const char *buf, double *value)</td></tr>
<tr class="memdesc:ac0d3806fca9d81d31e345e688d832663"><td class="mdescLeft">&#160;</td><td class="mdescRight">Translate string to a double, ignoring the locale.  <br /></td></tr>
<tr class="separator:ac0d3806fca9d81d31e345e688d832663"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a858672ab9b8658db53c13b17619a7026" id="r_a858672ab9b8658db53c13b17619a7026"><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="wcsutil_8h.html#a858672ab9b8658db53c13b17619a7026">wcsutil_str2double2</a> (const char *buf, double *value)</td></tr>
<tr class="memdesc:a858672ab9b8658db53c13b17619a7026"><td class="mdescLeft">&#160;</td><td class="mdescRight">Translate string to doubles, ignoring the locale.  <br /></td></tr>
<tr class="separator:a858672ab9b8658db53c13b17619a7026"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table>
<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
<div class="textblock"><p>Simple utility functions. With the exception of <a class="el" href="wcsutil_8h.html#a6b603ff362203ad122fe67a47d10cb9a" title="free memory allocated by WCSLIB functions.">wcsdealloc()</a>, these functions are intended for <b>internal use only</b> by WCSLIB.</p>
<p>The internal-use functions are documented here solely as an aid to understanding the code. They are not intended for external use - the API may change without notice! </p>
</div><h2 class="groupheader">Function Documentation</h2>
<a id="a6b603ff362203ad122fe67a47d10cb9a" name="a6b603ff362203ad122fe67a47d10cb9a"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a6b603ff362203ad122fe67a47d10cb9a">&#9670;&#160;</a></span>wcsdealloc()</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void wcsdealloc </td>
          <td>(</td>
          <td class="paramtype">void *&#160;</td>
          <td class="paramname"><em>ptr</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>free memory allocated by WCSLIB functions. </p>
<p><b>wcsdealloc</b>() invokes the free() system routine to free memory. Specifically, it is intended to free memory allocated (using calloc()) by certain WCSLIB functions (e.g. <a class="el" href="wcshdr_8h.html#ace387e4a5f6c519ad2a0e1fdebe62381" title="Write out a wcsprm struct as a FITS header.">wcshdo()</a>, <a class="el" href="wcsfix_8h.html#a62298e0fb06332a282d9daab718a1286" title="Translate a non-standard WCS struct.">wcsfixi()</a>, <a class="el" href="fitshdr_8h.html#aebb4607327b6db35b468517328f67878" title="FITS header parser routine.">fitshdr()</a>), which it is the user's responsibility to deallocate.</p>
<p>In certain situations, for example multithreading, it may be important that this be done within the WCSLIB sharable library's runtime environment.</p>
<p><b>PLEASE NOTE:</b> <b>wcsdealloc</b>() must not be used in place of the destructors for particular structs, such as <a class="el" href="wcs_8h.html#a4ab38bc642c4656f62c43acf84a849f1" title="Destructor for the wcsprm struct.">wcsfree()</a>, <a class="el" href="cel_8h.html#a39bb7bf8e545c200191d51884ecfb89b" title="Destructor for the celprm struct.">celfree()</a>, etc.</p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramdir">[in,out]</td><td class="paramname">ptr</td><td>Address of the allocated memory.</td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd></dd></dl>

</div>
</div>
<a id="a803812fd67b053f3084e0d40d68125f1" name="a803812fd67b053f3084e0d40d68125f1"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a803812fd67b053f3084e0d40d68125f1">&#9670;&#160;</a></span>wcsutil_strcvt()</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void wcsutil_strcvt </td>
          <td>(</td>
          <td class="paramtype">int&#160;</td>
          <td class="paramname"><em>n</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">char&#160;</td>
          <td class="paramname"><em>c</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">int&#160;</td>
          <td class="paramname"><em>nt</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const char&#160;</td>
          <td class="paramname"><em>src</em>[], </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">char&#160;</td>
          <td class="paramname"><em>dst</em>[]&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Copy character string with padding. </p>
<p><b>INTERNAL USE ONLY.</b></p>
<p><b>wcsutil_strcvt</b>() copies one character string to another up to the specified maximum number of characters.</p>
<p>If the given string is null-terminated, then the NULL character copied to the returned string, and all characters following it up to the specified maximum, are replaced with the specified substitute character, either blank or NULL.</p>
<p>If the source string is not null-terminated and the substitute character is blank, then copy the maximum number of characters and do nothing further. However, if the substitute character is NULL, then the last character and all consecutive blank characters preceding it will be replaced with NULLs.</p>
<p>Used by the Fortran wrapper functions in translating C strings into Fortran CHARACTER variables and vice versa.</p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramdir">[in]</td><td class="paramname">n</td><td>Maximum number of characters to copy. </td></tr>
    <tr><td class="paramdir">[in]</td><td class="paramname">c</td><td>Substitute character, either NULL or blank (anything other than NULL). </td></tr>
    <tr><td class="paramdir">[in]</td><td class="paramname">nt</td><td>If true, then dst is of length n+1, with the last character always set to NULL. </td></tr>
    <tr><td class="paramdir">[in]</td><td class="paramname">src</td><td>Character string to be copied. If null-terminated, then need not be of length n, otherwise it must be.</td></tr>
    <tr><td class="paramdir">[out]</td><td class="paramname">dst</td><td>Destination character string, which must be long enough to hold n characters. Note that this string will not be null-terminated if the substitute character is blank.</td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd></dd></dl>

</div>
</div>
<a id="a38322fa65b3bad54552d374d873ad037" name="a38322fa65b3bad54552d374d873ad037"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a38322fa65b3bad54552d374d873ad037">&#9670;&#160;</a></span>wcsutil_blank_fill()</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void wcsutil_blank_fill </td>
          <td>(</td>
          <td class="paramtype">int&#160;</td>
          <td class="paramname"><em>n</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">char&#160;</td>
          <td class="paramname"><em>c</em>[]&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Fill a character string with blanks. </p>
<p><b>INTERNAL USE ONLY.</b></p>
<p><b>wcsutil_blank_fill</b>() pads a character sub-string with blanks starting with the terminating NULL character (if any).</p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramdir">[in]</td><td class="paramname">n</td><td>Length of the sub-string.</td></tr>
    <tr><td class="paramdir">[in,out]</td><td class="paramname">c</td><td>The character sub-string, which will not be null-terminated on return.</td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd></dd></dl>

</div>
</div>
<a id="a9d96f343fc444f8c6f1fa01367c4d765" name="a9d96f343fc444f8c6f1fa01367c4d765"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a9d96f343fc444f8c6f1fa01367c4d765">&#9670;&#160;</a></span>wcsutil_null_fill()</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void wcsutil_null_fill </td>
          <td>(</td>
          <td class="paramtype">int&#160;</td>
          <td class="paramname"><em>n</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">char&#160;</td>
          <td class="paramname"><em>c</em>[]&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Fill a character string with NULLs. </p>
<p><b>INTERNAL USE ONLY.</b></p>
<p><b>wcsutil_null_fill</b>() strips trailing blanks from a string (or sub-string) and propagates the terminating NULL character (if any) to the end of the string.</p>
<p>If the string is not null-terminated, then the last character and all consecutive blank characters preceding it will be replaced with NULLs.</p>
<p>Mainly used in the C library to strip trailing blanks from FITS keyvalues. Also used to make character strings intelligible in the GNU debugger, which prints the rubbish following the terminating NULL character, thereby obscuring the valid part of the string.</p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramdir">[in]</td><td class="paramname">n</td><td>Number of characters.</td></tr>
    <tr><td class="paramdir">[in,out]</td><td class="paramname">c</td><td>The character (sub-)string.</td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd></dd></dl>

</div>
</div>
<a id="ad6a7b226aa497d078c6dc16279417a11" name="ad6a7b226aa497d078c6dc16279417a11"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ad6a7b226aa497d078c6dc16279417a11">&#9670;&#160;</a></span>wcsutil_all_ival()</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">int wcsutil_all_ival </td>
          <td>(</td>
          <td class="paramtype">int&#160;</td>
          <td class="paramname"><em>nelem</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">int&#160;</td>
          <td class="paramname"><em>ival</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const int&#160;</td>
          <td class="paramname"><em>iarr</em>[]&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Test if all elements an int array have a given value. </p>
<p><b>INTERNAL USE ONLY.</b></p>
<p><b>wcsutil_all_ival</b>() tests whether all elements of an array of type int all have the specified value.</p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramdir">[in]</td><td class="paramname">nelem</td><td>The length of the array. </td></tr>
    <tr><td class="paramdir">[in]</td><td class="paramname">ival</td><td>Value to be tested. </td></tr>
    <tr><td class="paramdir">[in]</td><td class="paramname">iarr</td><td>Pointer to the first element of the array.</td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>Status return value:<ul>
<li>0: Not all equal.</li>
<li>1: All equal. </li>
</ul>
</dd></dl>

</div>
</div>
<a id="ab187f2189905b9f1a9102ef578a47e19" name="ab187f2189905b9f1a9102ef578a47e19"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ab187f2189905b9f1a9102ef578a47e19">&#9670;&#160;</a></span>wcsutil_all_dval()</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">int wcsutil_all_dval </td>
          <td>(</td>
          <td class="paramtype">int&#160;</td>
          <td class="paramname"><em>nelem</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">double&#160;</td>
          <td class="paramname"><em>dval</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const double&#160;</td>
          <td class="paramname"><em>darr</em>[]&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Test if all elements a double array have a given value. </p>
<p><b>INTERNAL USE ONLY.</b></p>
<p><b>wcsutil_all_dval</b>() tests whether all elements of an array of type double all have the specified value.</p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramdir">[in]</td><td class="paramname">nelem</td><td>The length of the array. </td></tr>
    <tr><td class="paramdir">[in]</td><td class="paramname">dval</td><td>Value to be tested. </td></tr>
    <tr><td class="paramdir">[in]</td><td class="paramname">darr</td><td>Pointer to the first element of the array.</td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>Status return value:<ul>
<li>0: Not all equal.</li>
<li>1: All equal. </li>
</ul>
</dd></dl>

</div>
</div>
<a id="a19b45e9365d1f01c92958fc1f1485f11" name="a19b45e9365d1f01c92958fc1f1485f11"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a19b45e9365d1f01c92958fc1f1485f11">&#9670;&#160;</a></span>wcsutil_all_sval()</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">int wcsutil_all_sval </td>
          <td>(</td>
          <td class="paramtype">int&#160;</td>
          <td class="paramname"><em>nelem</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const char *&#160;</td>
          <td class="paramname"><em>sval</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const char(*)&#160;</td>
          <td class="paramname"><em>sarr</em>[72]&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Test if all elements a string array have a given value. </p>
<p><b>INTERNAL USE ONLY.</b></p>
<p><b>wcsutil_all_sval</b>() tests whether the elements of an array of type char (*)[72] all have the specified value.</p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramdir">[in]</td><td class="paramname">nelem</td><td>The length of the array. </td></tr>
    <tr><td class="paramdir">[in]</td><td class="paramname">sval</td><td>String to be tested. </td></tr>
    <tr><td class="paramdir">[in]</td><td class="paramname">sarr</td><td>Pointer to the first element of the array.</td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>Status return value:<ul>
<li>0: Not all equal.</li>
<li>1: All equal. </li>
</ul>
</dd></dl>

</div>
</div>
<a id="a4c7c5a686aaa39f511598b32e944ac68" name="a4c7c5a686aaa39f511598b32e944ac68"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a4c7c5a686aaa39f511598b32e944ac68">&#9670;&#160;</a></span>wcsutil_allEq()</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">int wcsutil_allEq </td>
          <td>(</td>
          <td class="paramtype">int&#160;</td>
          <td class="paramname"><em>nvec</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">int&#160;</td>
          <td class="paramname"><em>nelem</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const double *&#160;</td>
          <td class="paramname"><em>first</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Test for equality of a particular vector element. </p>
<p><b>INTERNAL USE ONLY.</b></p>
<p><b>wcsutil_allEq</b>() tests for equality of a particular element in a set of vectors.</p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramdir">[in]</td><td class="paramname">nvec</td><td>The number of vectors. </td></tr>
    <tr><td class="paramdir">[in]</td><td class="paramname">nelem</td><td>The length of each vector. </td></tr>
    <tr><td class="paramdir">[in]</td><td class="paramname">first</td><td>Pointer to the first element to test in the array. The elements tested for equality are <div class="fragment"><div class="line">*first == *(first + nelem)</div>
<div class="line">       == *(first + nelem*2)</div>
<div class="line">                  :</div>
<div class="line">       == *(first + nelem*(nvec-1));</div>
</div><!-- fragment --> <br  />
 The array might be dimensioned as <div class="fragment"><div class="line"><span class="keywordtype">double</span> v[nvec][nelem];</div>
</div><!-- fragment --></td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>Status return value:<ul>
<li>0: Not all equal.</li>
<li>1: All equal. </li>
</ul>
</dd></dl>

</div>
</div>
<a id="aa192ce2ee7e50735284c5748ecdd7cce" name="aa192ce2ee7e50735284c5748ecdd7cce"></a>
<h2 class="memtitle"><span class="permalink"><a href="#aa192ce2ee7e50735284c5748ecdd7cce">&#9670;&#160;</a></span>wcsutil_dblEq()</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">int wcsutil_dblEq </td>
          <td>(</td>
          <td class="paramtype">int&#160;</td>
          <td class="paramname"><em>nelem</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">double&#160;</td>
          <td class="paramname"><em>tol</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const double *&#160;</td>
          <td class="paramname"><em>arr1</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const double *&#160;</td>
          <td class="paramname"><em>arr2</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Test for equality of two arrays of type double. </p>
<p><b>INTERNAL USE ONLY.</b></p>
<p><b>wcsutil_dblEq</b>() tests for equality of two double-precision arrays.</p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramdir">[in]</td><td class="paramname">nelem</td><td>The number of elements in each array. </td></tr>
    <tr><td class="paramdir">[in]</td><td class="paramname">tol</td><td>Tolerance for comparison of the floating-point values. For example, for tol == 1e-6, all floating-point values in the arrays must be equal to the first 6 decimal places. A value of 0 implies exact equality. </td></tr>
    <tr><td class="paramdir">[in]</td><td class="paramname">arr1</td><td>The first array. </td></tr>
    <tr><td class="paramdir">[in]</td><td class="paramname">arr2</td><td>The second array</td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>Status return value:<ul>
<li>0: Not equal.</li>
<li>1: Equal. </li>
</ul>
</dd></dl>

</div>
</div>
<a id="aa5bbbba74625c61cc2aec6f592021239" name="aa5bbbba74625c61cc2aec6f592021239"></a>
<h2 class="memtitle"><span class="permalink"><a href="#aa5bbbba74625c61cc2aec6f592021239">&#9670;&#160;</a></span>wcsutil_intEq()</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">int wcsutil_intEq </td>
          <td>(</td>
          <td class="paramtype">int&#160;</td>
          <td class="paramname"><em>nelem</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const int *&#160;</td>
          <td class="paramname"><em>arr1</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const int *&#160;</td>
          <td class="paramname"><em>arr2</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Test for equality of two arrays of type int. </p>
<p><b>INTERNAL USE ONLY.</b></p>
<p><b>wcsutil_intEq</b>() tests for equality of two int arrays.</p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramdir">[in]</td><td class="paramname">nelem</td><td>The number of elements in each array. </td></tr>
    <tr><td class="paramdir">[in]</td><td class="paramname">arr1</td><td>The first array. </td></tr>
    <tr><td class="paramdir">[in]</td><td class="paramname">arr2</td><td>The second array</td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>Status return value:<ul>
<li>0: Not equal.</li>
<li>1: Equal. </li>
</ul>
</dd></dl>

</div>
</div>
<a id="abd917d05f3d66f641a2edf11edc34137" name="abd917d05f3d66f641a2edf11edc34137"></a>
<h2 class="memtitle"><span class="permalink"><a href="#abd917d05f3d66f641a2edf11edc34137">&#9670;&#160;</a></span>wcsutil_strEq()</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">int wcsutil_strEq </td>
          <td>(</td>
          <td class="paramtype">int&#160;</td>
          <td class="paramname"><em>nelem</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">char(*)&#160;</td>
          <td class="paramname"><em>arr1</em>[72], </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">char(*)&#160;</td>
          <td class="paramname"><em>arr2</em>[72]&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Test for equality of two string arrays. </p>
<p><b>INTERNAL USE ONLY.</b></p>
<p><b>wcsutil_strEq</b>() tests for equality of two string arrays.</p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramdir">[in]</td><td class="paramname">nelem</td><td>The number of elements in each array. </td></tr>
    <tr><td class="paramdir">[in]</td><td class="paramname">arr1</td><td>The first array. </td></tr>
    <tr><td class="paramdir">[in]</td><td class="paramname">arr2</td><td>The second array</td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>Status return value:<ul>
<li>0: Not equal.</li>
<li>1: Equal. </li>
</ul>
</dd></dl>

</div>
</div>
<a id="afe7f963c2038673015bbce204c4a8171" name="afe7f963c2038673015bbce204c4a8171"></a>
<h2 class="memtitle"><span class="permalink"><a href="#afe7f963c2038673015bbce204c4a8171">&#9670;&#160;</a></span>wcsutil_setAll()</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void wcsutil_setAll </td>
          <td>(</td>
          <td class="paramtype">int&#160;</td>
          <td class="paramname"><em>nvec</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">int&#160;</td>
          <td class="paramname"><em>nelem</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">double *&#160;</td>
          <td class="paramname"><em>first</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Set a particular vector element. </p>
<p><b>INTERNAL USE ONLY.</b></p>
<p><b>wcsutil_setAll</b>() sets the value of a particular element in a set of vectors of type double.</p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramdir">[in]</td><td class="paramname">nvec</td><td>The number of vectors. </td></tr>
    <tr><td class="paramdir">[in]</td><td class="paramname">nelem</td><td>The length of each vector.</td></tr>
    <tr><td class="paramdir">[in,out]</td><td class="paramname">first</td><td>Pointer to the first element in the array, the value of which is used to set the others <div class="fragment"><div class="line">*(first + nelem) = *first;</div>
<div class="line">*(first + nelem*2) = *first;</div>
<div class="line">        :</div>
<div class="line">*(first + nelem*(nvec-1)) = *first;</div>
</div><!-- fragment --> <br  />
 The array might be dimensioned as <div class="fragment"><div class="line"><span class="keywordtype">double</span> v[nvec][nelem];</div>
</div><!-- fragment --></td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd></dd></dl>

</div>
</div>
<a id="ab32722081f8cda184d7ada6d734c637c" name="ab32722081f8cda184d7ada6d734c637c"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ab32722081f8cda184d7ada6d734c637c">&#9670;&#160;</a></span>wcsutil_setAli()</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void wcsutil_setAli </td>
          <td>(</td>
          <td class="paramtype">int&#160;</td>
          <td class="paramname"><em>nvec</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">int&#160;</td>
          <td class="paramname"><em>nelem</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">int *&#160;</td>
          <td class="paramname"><em>first</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Set a particular vector element. </p>
<p><b>INTERNAL USE ONLY.</b></p>
<p><b>wcsutil_setAli</b>() sets the value of a particular element in a set of vectors of type int.</p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramdir">[in]</td><td class="paramname">nvec</td><td>The number of vectors. </td></tr>
    <tr><td class="paramdir">[in]</td><td class="paramname">nelem</td><td>The length of each vector.</td></tr>
    <tr><td class="paramdir">[in,out]</td><td class="paramname">first</td><td>Pointer to the first element in the array, the value of which is used to set the others <div class="fragment"><div class="line">*(first + nelem) = *first;</div>
<div class="line">*(first + nelem*2) = *first;</div>
<div class="line">        :</div>
<div class="line">*(first + nelem*(nvec-1)) = *first;</div>
</div><!-- fragment --> <br  />
 The array might be dimensioned as <div class="fragment"><div class="line"><span class="keywordtype">int</span> v[nvec][nelem];</div>
</div><!-- fragment --></td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd></dd></dl>

</div>
</div>
<a id="a0d982911e7f694a751f2887ea38890e4" name="a0d982911e7f694a751f2887ea38890e4"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a0d982911e7f694a751f2887ea38890e4">&#9670;&#160;</a></span>wcsutil_setBit()</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void wcsutil_setBit </td>
          <td>(</td>
          <td class="paramtype">int&#160;</td>
          <td class="paramname"><em>nelem</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const int *&#160;</td>
          <td class="paramname"><em>sel</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">int&#160;</td>
          <td class="paramname"><em>bits</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">int *&#160;</td>
          <td class="paramname"><em>array</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Set bits in selected elements of an array. </p>
<p><b>INTERNAL USE ONLY.</b></p>
<p><b>wcsutil_setBit</b>() sets bits in selected elements of an array.</p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramdir">[in]</td><td class="paramname">nelem</td><td>Number of elements in the array. </td></tr>
    <tr><td class="paramdir">[in]</td><td class="paramname">sel</td><td>Address of a selection array of length nelem. May be specified as the null pointer in which case all elements are selected. </td></tr>
    <tr><td class="paramdir">[in]</td><td class="paramname">bits</td><td>Bit mask.</td></tr>
    <tr><td class="paramdir">[in,out]</td><td class="paramname">array</td><td>Address of the array of length nelem.</td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd></dd></dl>

</div>
</div>
<a id="ab2c00908a4de5c3838a7e30de2cd8944" name="ab2c00908a4de5c3838a7e30de2cd8944"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ab2c00908a4de5c3838a7e30de2cd8944">&#9670;&#160;</a></span>wcsutil_fptr2str()</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">char * wcsutil_fptr2str </td>
          <td>(</td>
          <td class="paramtype">void(*)(void)&#160;</td>
          <td class="paramname"><em>fptr</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">char&#160;</td>
          <td class="paramname"><em>hext</em>[19]&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Translate pointer-to-function to string. </p>
<p><b>INTERNAL USE ONLY.</b></p>
<p><b>wcsutil_fptr2str</b>() translates a pointer-to-function to hexadecimal string representation for output. It is used by the various routines that print the contents of WCSLIB structs, noting that it is not strictly legal to type-pun a function pointer to void*. See <a href="http://stackoverflow.com/questions/2741683/how-to-format-a-function-pointer">http://stackoverflow.com/questions/2741683/how-to-format-a-function-pointer</a></p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramdir">[in]</td><td class="paramname">fptr</td><td></td></tr>
    <tr><td class="paramdir">[out]</td><td class="paramname">hext</td><td>Null-terminated string. Should be at least 19 bytes in size to accomodate a 64-bit address (16 bytes in hex), plus the leading &quot;0x&quot; and trailing '\0'.</td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>The address of hext. </dd></dl>

</div>
</div>
<a id="a1f7aec8e3deb2a3f206f81f0cdc50843" name="a1f7aec8e3deb2a3f206f81f0cdc50843"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a1f7aec8e3deb2a3f206f81f0cdc50843">&#9670;&#160;</a></span>wcsutil_double2str()</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void wcsutil_double2str </td>
          <td>(</td>
          <td class="paramtype">char *&#160;</td>
          <td class="paramname"><em>buf</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const char *&#160;</td>
          <td class="paramname"><em>format</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">double&#160;</td>
          <td class="paramname"><em>value</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Translate double to string ignoring the locale. </p>
<p><b>INTERNAL USE ONLY.</b></p>
<p><b>wcsutil_double2str</b>() converts a double to a string, but unlike <code>sprintf()</code> it ignores the locale and always uses a '.' as the decimal separator. Also, unless it includes an exponent, the formatted value will always have a fractional part, &quot;.0&quot; being appended if necessary.</p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramdir">[out]</td><td class="paramname">buf</td><td>The buffer to write the string into.</td></tr>
    <tr><td class="paramdir">[in]</td><td class="paramname">format</td><td>The formatting directive, such as &quot;f&quot;. This may be any of the forms accepted by <code>sprintf()</code>, but should only include a formatting directive and nothing else. For &quot;g&quot; and &quot;G&quot; formats, unless it includes an exponent, the formatted value will always have a fractional part, &quot;.0&quot; being appended if necessary. </td></tr>
    <tr><td class="paramdir">[in]</td><td class="paramname">value</td><td>The value to convert to a string. </td></tr>
  </table>
  </dd>
</dl>

</div>
</div>
<a id="ac0d3806fca9d81d31e345e688d832663" name="ac0d3806fca9d81d31e345e688d832663"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ac0d3806fca9d81d31e345e688d832663">&#9670;&#160;</a></span>wcsutil_str2double()</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">int wcsutil_str2double </td>
          <td>(</td>
          <td class="paramtype">const char *&#160;</td>
          <td class="paramname"><em>buf</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">double *&#160;</td>
          <td class="paramname"><em>value</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Translate string to a double, ignoring the locale. </p>
<p><b>INTERNAL USE ONLY.</b></p>
<p><b>wcsutil_str2double</b>() converts a string to a double, but unlike <code>sscanf()</code> it ignores the locale and always expects a '.' as the decimal separator.</p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramdir">[in]</td><td class="paramname">buf</td><td>The string containing the value</td></tr>
    <tr><td class="paramdir">[out]</td><td class="paramname">value</td><td>The double value parsed from the string. </td></tr>
  </table>
  </dd>
</dl>

</div>
</div>
<a id="a858672ab9b8658db53c13b17619a7026" name="a858672ab9b8658db53c13b17619a7026"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a858672ab9b8658db53c13b17619a7026">&#9670;&#160;</a></span>wcsutil_str2double2()</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">int wcsutil_str2double2 </td>
          <td>(</td>
          <td class="paramtype">const char *&#160;</td>
          <td class="paramname"><em>buf</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">double *&#160;</td>
          <td class="paramname"><em>value</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Translate string to doubles, ignoring the locale. </p>
<p><b>INTERNAL USE ONLY.</b></p>
<p><b>wcsutil_str2double2</b>() converts a string to a pair of doubles containing the integer and fractional parts. Unlike <code>sscanf()</code> it ignores the locale and always expects a '.' as the decimal separator.</p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramdir">[in]</td><td class="paramname">buf</td><td>The string containing the value</td></tr>
    <tr><td class="paramdir">[out]</td><td class="paramname">value</td><td>parts, parsed from the string. </td></tr>
  </table>
  </dd>
</dl>

</div>
</div>
</div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
Generated on Wed Nov 29 2023 19:09:57 for WCSLIB by&#160;<a href="https://www.doxygen.org/index.html"><img class="footer" src="doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.9.8
</small></address>
</body>
</html>