wcslib (8.2.2)

(root)/
share/
doc/
wcslib-8.2.2/
html/
spx_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: spx.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="#nested-classes">Data Structures</a> &#124;
<a href="#define-members">Macros</a> &#124;
<a href="#enum-members">Enumerations</a> &#124;
<a href="#func-members">Functions</a> &#124;
<a href="#var-members">Variables</a>  </div>
  <div class="headertitle"><div class="title">spx.h File Reference</div></div>
</div><!--header-->
<div class="contents">

<p><a href="spx_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="nested-classes" name="nested-classes"></a>
Data Structures</h2></td></tr>
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">struct &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structspxprm.html">spxprm</a></td></tr>
<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">Spectral variables and their derivatives.  <a href="structspxprm.html#details">More...</a><br /></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a id="define-members" name="define-members"></a>
Macros</h2></td></tr>
<tr class="memitem:a45f0db5bb967998f070cad30e5e68180" id="r_a45f0db5bb967998f070cad30e5e68180"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="spx_8h.html#a45f0db5bb967998f070cad30e5e68180">SPXLEN</a>&#160;&#160;&#160;(sizeof(struct <a class="el" href="structspxprm.html">spxprm</a>)/sizeof(int))</td></tr>
<tr class="memdesc:a45f0db5bb967998f070cad30e5e68180"><td class="mdescLeft">&#160;</td><td class="mdescRight">Size of the spxprm struct in <em>int</em> units.  <br /></td></tr>
<tr class="separator:a45f0db5bb967998f070cad30e5e68180"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a777e5c4790da397aefcada61445a1bb3" id="r_a777e5c4790da397aefcada61445a1bb3"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="spx_8h.html#a777e5c4790da397aefcada61445a1bb3">SPX_ARGS</a></td></tr>
<tr class="memdesc:a777e5c4790da397aefcada61445a1bb3"><td class="mdescLeft">&#160;</td><td class="mdescRight">For use in declaring spectral conversion function prototypes.  <br /></td></tr>
<tr class="separator:a777e5c4790da397aefcada61445a1bb3"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a id="enum-members" name="enum-members"></a>
Enumerations</h2></td></tr>
<tr class="memitem:ad99a404f496d5b8ce3ef6e53c630ecaf" id="r_ad99a404f496d5b8ce3ef6e53c630ecaf"><td class="memItemLeft" align="right" valign="top">enum &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="spx_8h.html#ad99a404f496d5b8ce3ef6e53c630ecaf">spx_errmsg</a> { <br />
&#160;&#160;<a class="el" href="spx_8h.html#ad99a404f496d5b8ce3ef6e53c630ecafa45313ec670a74e7effc1bcee16cb0b56">SPXERR_SUCCESS</a> = 0
, <a class="el" href="spx_8h.html#ad99a404f496d5b8ce3ef6e53c630ecafa7342349cd1dc5b4581ae9c39f31d055e">SPXERR_NULL_POINTER</a> = 1
, <a class="el" href="spx_8h.html#ad99a404f496d5b8ce3ef6e53c630ecafa23753b512249d3752a74ce7497d9c852">SPXERR_BAD_SPEC_PARAMS</a> = 2
, <a class="el" href="spx_8h.html#ad99a404f496d5b8ce3ef6e53c630ecafa6b6639fb6d3683c9d356dbd7cf705de1">SPXERR_BAD_SPEC_VAR</a> = 3
, <br />
&#160;&#160;<a class="el" href="spx_8h.html#ad99a404f496d5b8ce3ef6e53c630ecafae795e388e346496b34e57864af841ae2">SPXERR_BAD_INSPEC_COORD</a> = 4
<br />
 }</td></tr>
<tr class="separator:ad99a404f496d5b8ce3ef6e53c630ecaf"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table><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:a192c7ea1edb2fc79d391a51bec7442e0" id="r_a192c7ea1edb2fc79d391a51bec7442e0"><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="spx_8h.html#a192c7ea1edb2fc79d391a51bec7442e0">specx</a> (const char *type, double spec, double restfrq, double restwav, struct <a class="el" href="structspxprm.html">spxprm</a> *specs)</td></tr>
<tr class="memdesc:a192c7ea1edb2fc79d391a51bec7442e0"><td class="mdescLeft">&#160;</td><td class="mdescRight">Spectral cross conversions (scalar).  <br /></td></tr>
<tr class="separator:a192c7ea1edb2fc79d391a51bec7442e0"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a4f810fff1834f8490c1db3094bec3279" id="r_a4f810fff1834f8490c1db3094bec3279"><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="spx_8h.html#a4f810fff1834f8490c1db3094bec3279">spxperr</a> (const struct <a class="el" href="structspxprm.html">spxprm</a> *spx, const char *prefix)</td></tr>
<tr class="memdesc:a4f810fff1834f8490c1db3094bec3279"><td class="mdescLeft">&#160;</td><td class="mdescRight">Print error messages from a spxprm struct.  <br /></td></tr>
<tr class="separator:a4f810fff1834f8490c1db3094bec3279"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a6ee182e1185978bc6e7f69e4604fe341" id="r_a6ee182e1185978bc6e7f69e4604fe341"><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="spx_8h.html#a6ee182e1185978bc6e7f69e4604fe341">freqafrq</a> (<a class="el" href="spx_8h.html#a777e5c4790da397aefcada61445a1bb3">SPX_ARGS</a>)</td></tr>
<tr class="memdesc:a6ee182e1185978bc6e7f69e4604fe341"><td class="mdescLeft">&#160;</td><td class="mdescRight">Convert frequency to angular frequency (vector).  <br /></td></tr>
<tr class="separator:a6ee182e1185978bc6e7f69e4604fe341"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ad0a5167b8e52a0cdc3990e35a324ba02" id="r_ad0a5167b8e52a0cdc3990e35a324ba02"><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="spx_8h.html#ad0a5167b8e52a0cdc3990e35a324ba02">afrqfreq</a> (<a class="el" href="spx_8h.html#a777e5c4790da397aefcada61445a1bb3">SPX_ARGS</a>)</td></tr>
<tr class="memdesc:ad0a5167b8e52a0cdc3990e35a324ba02"><td class="mdescLeft">&#160;</td><td class="mdescRight">Convert angular frequency to frequency (vector).  <br /></td></tr>
<tr class="separator:ad0a5167b8e52a0cdc3990e35a324ba02"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a5c2eb2d8649eaab21e71efcd25d9236c" id="r_a5c2eb2d8649eaab21e71efcd25d9236c"><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="spx_8h.html#a5c2eb2d8649eaab21e71efcd25d9236c">freqener</a> (<a class="el" href="spx_8h.html#a777e5c4790da397aefcada61445a1bb3">SPX_ARGS</a>)</td></tr>
<tr class="memdesc:a5c2eb2d8649eaab21e71efcd25d9236c"><td class="mdescLeft">&#160;</td><td class="mdescRight">Convert frequency to photon energy (vector).  <br /></td></tr>
<tr class="separator:a5c2eb2d8649eaab21e71efcd25d9236c"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a89a689b848429cfa5780757a5eee9347" id="r_a89a689b848429cfa5780757a5eee9347"><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="spx_8h.html#a89a689b848429cfa5780757a5eee9347">enerfreq</a> (<a class="el" href="spx_8h.html#a777e5c4790da397aefcada61445a1bb3">SPX_ARGS</a>)</td></tr>
<tr class="memdesc:a89a689b848429cfa5780757a5eee9347"><td class="mdescLeft">&#160;</td><td class="mdescRight">Convert photon energy to frequency (vector).  <br /></td></tr>
<tr class="separator:a89a689b848429cfa5780757a5eee9347"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a9eb861d7c7437c5f974ad425da8b5664" id="r_a9eb861d7c7437c5f974ad425da8b5664"><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="spx_8h.html#a9eb861d7c7437c5f974ad425da8b5664">freqwavn</a> (<a class="el" href="spx_8h.html#a777e5c4790da397aefcada61445a1bb3">SPX_ARGS</a>)</td></tr>
<tr class="memdesc:a9eb861d7c7437c5f974ad425da8b5664"><td class="mdescLeft">&#160;</td><td class="mdescRight">Convert frequency to wave number (vector).  <br /></td></tr>
<tr class="separator:a9eb861d7c7437c5f974ad425da8b5664"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a5eed4e6f2879b4607e60b4f77e2736bd" id="r_a5eed4e6f2879b4607e60b4f77e2736bd"><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="spx_8h.html#a5eed4e6f2879b4607e60b4f77e2736bd">wavnfreq</a> (<a class="el" href="spx_8h.html#a777e5c4790da397aefcada61445a1bb3">SPX_ARGS</a>)</td></tr>
<tr class="memdesc:a5eed4e6f2879b4607e60b4f77e2736bd"><td class="mdescLeft">&#160;</td><td class="mdescRight">Convert wave number to frequency (vector).  <br /></td></tr>
<tr class="separator:a5eed4e6f2879b4607e60b4f77e2736bd"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a51b714ff0ed788c20f1b273ec551b6f6" id="r_a51b714ff0ed788c20f1b273ec551b6f6"><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="spx_8h.html#a51b714ff0ed788c20f1b273ec551b6f6">freqwave</a> (<a class="el" href="spx_8h.html#a777e5c4790da397aefcada61445a1bb3">SPX_ARGS</a>)</td></tr>
<tr class="memdesc:a51b714ff0ed788c20f1b273ec551b6f6"><td class="mdescLeft">&#160;</td><td class="mdescRight">Convert frequency to vacuum wavelength (vector).  <br /></td></tr>
<tr class="separator:a51b714ff0ed788c20f1b273ec551b6f6"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a6c79d97dcc410e1a7a3e6e26ba3dabe6" id="r_a6c79d97dcc410e1a7a3e6e26ba3dabe6"><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="spx_8h.html#a6c79d97dcc410e1a7a3e6e26ba3dabe6">wavefreq</a> (<a class="el" href="spx_8h.html#a777e5c4790da397aefcada61445a1bb3">SPX_ARGS</a>)</td></tr>
<tr class="memdesc:a6c79d97dcc410e1a7a3e6e26ba3dabe6"><td class="mdescLeft">&#160;</td><td class="mdescRight">Convert vacuum wavelength to frequency (vector).  <br /></td></tr>
<tr class="separator:a6c79d97dcc410e1a7a3e6e26ba3dabe6"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a3e86c3462619b4fdf0aeeeea9874757e" id="r_a3e86c3462619b4fdf0aeeeea9874757e"><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="spx_8h.html#a3e86c3462619b4fdf0aeeeea9874757e">freqawav</a> (<a class="el" href="spx_8h.html#a777e5c4790da397aefcada61445a1bb3">SPX_ARGS</a>)</td></tr>
<tr class="memdesc:a3e86c3462619b4fdf0aeeeea9874757e"><td class="mdescLeft">&#160;</td><td class="mdescRight">Convert frequency to air wavelength (vector).  <br /></td></tr>
<tr class="separator:a3e86c3462619b4fdf0aeeeea9874757e"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a16bc2fef69c592c5bcdc695633f17df0" id="r_a16bc2fef69c592c5bcdc695633f17df0"><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="spx_8h.html#a16bc2fef69c592c5bcdc695633f17df0">awavfreq</a> (<a class="el" href="spx_8h.html#a777e5c4790da397aefcada61445a1bb3">SPX_ARGS</a>)</td></tr>
<tr class="memdesc:a16bc2fef69c592c5bcdc695633f17df0"><td class="mdescLeft">&#160;</td><td class="mdescRight">Convert air wavelength to frequency (vector).  <br /></td></tr>
<tr class="separator:a16bc2fef69c592c5bcdc695633f17df0"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a5a497ffd57345f2f0bf1c9abc56842c4" id="r_a5a497ffd57345f2f0bf1c9abc56842c4"><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="spx_8h.html#a5a497ffd57345f2f0bf1c9abc56842c4">waveawav</a> (<a class="el" href="spx_8h.html#a777e5c4790da397aefcada61445a1bb3">SPX_ARGS</a>)</td></tr>
<tr class="memdesc:a5a497ffd57345f2f0bf1c9abc56842c4"><td class="mdescLeft">&#160;</td><td class="mdescRight">Convert vacuum wavelength to air wavelength (vector).  <br /></td></tr>
<tr class="separator:a5a497ffd57345f2f0bf1c9abc56842c4"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a413fa882d2b67a792a35938738214057" id="r_a413fa882d2b67a792a35938738214057"><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="spx_8h.html#a413fa882d2b67a792a35938738214057">awavwave</a> (<a class="el" href="spx_8h.html#a777e5c4790da397aefcada61445a1bb3">SPX_ARGS</a>)</td></tr>
<tr class="memdesc:a413fa882d2b67a792a35938738214057"><td class="mdescLeft">&#160;</td><td class="mdescRight">Convert air wavelength to vacuum wavelength (vector).  <br /></td></tr>
<tr class="separator:a413fa882d2b67a792a35938738214057"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a8aba8fe47efe098740991771e97fe756" id="r_a8aba8fe47efe098740991771e97fe756"><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="spx_8h.html#a8aba8fe47efe098740991771e97fe756">velobeta</a> (<a class="el" href="spx_8h.html#a777e5c4790da397aefcada61445a1bb3">SPX_ARGS</a>)</td></tr>
<tr class="memdesc:a8aba8fe47efe098740991771e97fe756"><td class="mdescLeft">&#160;</td><td class="mdescRight">Convert relativistic velocity to relativistic beta (vector).  <br /></td></tr>
<tr class="separator:a8aba8fe47efe098740991771e97fe756"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a09b951b08ac818b9da44389a3ddf614a" id="r_a09b951b08ac818b9da44389a3ddf614a"><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="spx_8h.html#a09b951b08ac818b9da44389a3ddf614a">betavelo</a> (<a class="el" href="spx_8h.html#a777e5c4790da397aefcada61445a1bb3">SPX_ARGS</a>)</td></tr>
<tr class="memdesc:a09b951b08ac818b9da44389a3ddf614a"><td class="mdescLeft">&#160;</td><td class="mdescRight">Convert relativistic beta to relativistic velocity (vector).  <br /></td></tr>
<tr class="separator:a09b951b08ac818b9da44389a3ddf614a"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aa626b0cad9206c62e7e265bdf8c92c31" id="r_aa626b0cad9206c62e7e265bdf8c92c31"><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="spx_8h.html#aa626b0cad9206c62e7e265bdf8c92c31">freqvelo</a> (<a class="el" href="spx_8h.html#a777e5c4790da397aefcada61445a1bb3">SPX_ARGS</a>)</td></tr>
<tr class="memdesc:aa626b0cad9206c62e7e265bdf8c92c31"><td class="mdescLeft">&#160;</td><td class="mdescRight">Convert frequency to relativistic velocity (vector).  <br /></td></tr>
<tr class="separator:aa626b0cad9206c62e7e265bdf8c92c31"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a974f799a8ee19dd23114ca01b225a02f" id="r_a974f799a8ee19dd23114ca01b225a02f"><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="spx_8h.html#a974f799a8ee19dd23114ca01b225a02f">velofreq</a> (<a class="el" href="spx_8h.html#a777e5c4790da397aefcada61445a1bb3">SPX_ARGS</a>)</td></tr>
<tr class="memdesc:a974f799a8ee19dd23114ca01b225a02f"><td class="mdescLeft">&#160;</td><td class="mdescRight">Convert relativistic velocity to frequency (vector).  <br /></td></tr>
<tr class="separator:a974f799a8ee19dd23114ca01b225a02f"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:af4784a764fd0f36c82548ef755c470bd" id="r_af4784a764fd0f36c82548ef755c470bd"><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="spx_8h.html#af4784a764fd0f36c82548ef755c470bd">freqvrad</a> (<a class="el" href="spx_8h.html#a777e5c4790da397aefcada61445a1bb3">SPX_ARGS</a>)</td></tr>
<tr class="memdesc:af4784a764fd0f36c82548ef755c470bd"><td class="mdescLeft">&#160;</td><td class="mdescRight">Convert frequency to radio velocity (vector).  <br /></td></tr>
<tr class="separator:af4784a764fd0f36c82548ef755c470bd"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a772a14e27c613ea7b63697efdb765205" id="r_a772a14e27c613ea7b63697efdb765205"><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="spx_8h.html#a772a14e27c613ea7b63697efdb765205">vradfreq</a> (<a class="el" href="spx_8h.html#a777e5c4790da397aefcada61445a1bb3">SPX_ARGS</a>)</td></tr>
<tr class="memdesc:a772a14e27c613ea7b63697efdb765205"><td class="mdescLeft">&#160;</td><td class="mdescRight">Convert radio velocity to frequency (vector).  <br /></td></tr>
<tr class="separator:a772a14e27c613ea7b63697efdb765205"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a0459c65496512f270d3c569c346ce413" id="r_a0459c65496512f270d3c569c346ce413"><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="spx_8h.html#a0459c65496512f270d3c569c346ce413">wavevelo</a> (<a class="el" href="spx_8h.html#a777e5c4790da397aefcada61445a1bb3">SPX_ARGS</a>)</td></tr>
<tr class="memdesc:a0459c65496512f270d3c569c346ce413"><td class="mdescLeft">&#160;</td><td class="mdescRight">Conversions between wavelength and velocity types (vector).  <br /></td></tr>
<tr class="separator:a0459c65496512f270d3c569c346ce413"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:acc02a893f538f5f0c0d1d9baae2b0e10" id="r_acc02a893f538f5f0c0d1d9baae2b0e10"><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="spx_8h.html#acc02a893f538f5f0c0d1d9baae2b0e10">velowave</a> (<a class="el" href="spx_8h.html#a777e5c4790da397aefcada61445a1bb3">SPX_ARGS</a>)</td></tr>
<tr class="memdesc:acc02a893f538f5f0c0d1d9baae2b0e10"><td class="mdescLeft">&#160;</td><td class="mdescRight">Convert relativistic velocity to vacuum wavelength (vector).  <br /></td></tr>
<tr class="separator:acc02a893f538f5f0c0d1d9baae2b0e10"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:af7a2d05c2db901488d68576343aad873" id="r_af7a2d05c2db901488d68576343aad873"><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="spx_8h.html#af7a2d05c2db901488d68576343aad873">awavvelo</a> (<a class="el" href="spx_8h.html#a777e5c4790da397aefcada61445a1bb3">SPX_ARGS</a>)</td></tr>
<tr class="memdesc:af7a2d05c2db901488d68576343aad873"><td class="mdescLeft">&#160;</td><td class="mdescRight">Convert air wavelength to relativistic velocity (vector).  <br /></td></tr>
<tr class="separator:af7a2d05c2db901488d68576343aad873"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a56a7d77413c654541fb29f58561c16f9" id="r_a56a7d77413c654541fb29f58561c16f9"><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="spx_8h.html#a56a7d77413c654541fb29f58561c16f9">veloawav</a> (<a class="el" href="spx_8h.html#a777e5c4790da397aefcada61445a1bb3">SPX_ARGS</a>)</td></tr>
<tr class="memdesc:a56a7d77413c654541fb29f58561c16f9"><td class="mdescLeft">&#160;</td><td class="mdescRight">Convert relativistic velocity to air wavelength (vector).  <br /></td></tr>
<tr class="separator:a56a7d77413c654541fb29f58561c16f9"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a61a1980ff0683231529b784af1c48eaa" id="r_a61a1980ff0683231529b784af1c48eaa"><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="spx_8h.html#a61a1980ff0683231529b784af1c48eaa">wavevopt</a> (<a class="el" href="spx_8h.html#a777e5c4790da397aefcada61445a1bb3">SPX_ARGS</a>)</td></tr>
<tr class="memdesc:a61a1980ff0683231529b784af1c48eaa"><td class="mdescLeft">&#160;</td><td class="mdescRight">Convert vacuum wavelength to optical velocity (vector).  <br /></td></tr>
<tr class="separator:a61a1980ff0683231529b784af1c48eaa"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ab23cb997ad699b59f91f4dfe4e8b28b0" id="r_ab23cb997ad699b59f91f4dfe4e8b28b0"><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="spx_8h.html#ab23cb997ad699b59f91f4dfe4e8b28b0">voptwave</a> (<a class="el" href="spx_8h.html#a777e5c4790da397aefcada61445a1bb3">SPX_ARGS</a>)</td></tr>
<tr class="memdesc:ab23cb997ad699b59f91f4dfe4e8b28b0"><td class="mdescLeft">&#160;</td><td class="mdescRight">Convert optical velocity to vacuum wavelength (vector).  <br /></td></tr>
<tr class="separator:ab23cb997ad699b59f91f4dfe4e8b28b0"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a544be13048057701c37a8e9c4f761be2" id="r_a544be13048057701c37a8e9c4f761be2"><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="spx_8h.html#a544be13048057701c37a8e9c4f761be2">wavezopt</a> (<a class="el" href="spx_8h.html#a777e5c4790da397aefcada61445a1bb3">SPX_ARGS</a>)</td></tr>
<tr class="memdesc:a544be13048057701c37a8e9c4f761be2"><td class="mdescLeft">&#160;</td><td class="mdescRight">Convert vacuum wavelength to redshift (vector).  <br /></td></tr>
<tr class="separator:a544be13048057701c37a8e9c4f761be2"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ada5d4cf3e8791d64da68575da692e3f3" id="r_ada5d4cf3e8791d64da68575da692e3f3"><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="spx_8h.html#ada5d4cf3e8791d64da68575da692e3f3">zoptwave</a> (<a class="el" href="spx_8h.html#a777e5c4790da397aefcada61445a1bb3">SPX_ARGS</a>)</td></tr>
<tr class="memdesc:ada5d4cf3e8791d64da68575da692e3f3"><td class="mdescLeft">&#160;</td><td class="mdescRight">Convert redshift to vacuum wavelength (vector).  <br /></td></tr>
<tr class="separator:ada5d4cf3e8791d64da68575da692e3f3"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a id="var-members" name="var-members"></a>
Variables</h2></td></tr>
<tr class="memitem:a286f473d94247fbd7c2485e515fee67f" id="r_a286f473d94247fbd7c2485e515fee67f"><td class="memItemLeft" align="right" valign="top">const char *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="spx_8h.html#a286f473d94247fbd7c2485e515fee67f">spx_errmsg</a> []</td></tr>
<tr class="separator:a286f473d94247fbd7c2485e515fee67f"><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>Routines in this suite implement the spectral coordinate systems recognized by the FITS World Coordinate System (WCS) standard, as described in </p><div class="fragment"><div class="line"><span class="stringliteral">&quot;Representations of world coordinates in FITS&quot;</span>,</div>
<div class="line">Greisen, E.W., &amp; Calabretta, M.R. 2002, A&amp;A, 395, 1061 (WCS Paper I)</div>
<div class="line"> </div>
<div class="line"><span class="stringliteral">&quot;Representations of spectral coordinates in FITS&quot;</span>,</div>
<div class="line">Greisen, E.W., Calabretta, M.R., Valdes, F.G., &amp; Allen, S.L.</div>
<div class="line">2006, A&amp;A, 446, 747 (WCS Paper III)</div>
</div><!-- fragment --><p><a class="el" href="spx_8h.html#a192c7ea1edb2fc79d391a51bec7442e0" title="Spectral cross conversions (scalar).">specx()</a> is a scalar routine that, given one spectral variable (e.g. frequency), computes all the others (e.g. wavelength, velocity, etc.) plus the required derivatives of each with respect to the others. The results are returned in the spxprm struct.</p>
<p><a class="el" href="spx_8h.html#a4f810fff1834f8490c1db3094bec3279" title="Print error messages from a spxprm struct.">spxperr()</a> prints the error message(s) (if any) stored in a spxprm struct.</p>
<p>The remaining routines are all vector conversions from one spectral variable to another. The API of these functions only differ in whether the rest frequency or wavelength need be supplied.</p>
<p><b>Non-linear:</b> <br  />
 </p><ul>
<li>
<a class="el" href="spx_8h.html#a51b714ff0ed788c20f1b273ec551b6f6" title="Convert frequency to vacuum wavelength (vector).">freqwave()</a> frequency -&gt; vacuum wavelength </li>
<li>
<p class="startli"><a class="el" href="spx_8h.html#a6c79d97dcc410e1a7a3e6e26ba3dabe6" title="Convert vacuum wavelength to frequency (vector).">wavefreq()</a> vacuum wavelength -&gt; frequency</p>
<p class="endli"></p>
</li>
<li>
<a class="el" href="spx_8h.html#a3e86c3462619b4fdf0aeeeea9874757e" title="Convert frequency to air wavelength (vector).">freqawav()</a> frequency -&gt; air wavelength </li>
<li>
<p class="startli"><a class="el" href="spx_8h.html#a16bc2fef69c592c5bcdc695633f17df0" title="Convert air wavelength to frequency (vector).">awavfreq()</a> air wavelength -&gt; frequency</p>
<p class="endli"></p>
</li>
<li>
<a class="el" href="spx_8h.html#aa626b0cad9206c62e7e265bdf8c92c31" title="Convert frequency to relativistic velocity (vector).">freqvelo()</a> frequency -&gt; relativistic velocity </li>
<li>
<p class="startli"><a class="el" href="spx_8h.html#a974f799a8ee19dd23114ca01b225a02f" title="Convert relativistic velocity to frequency (vector).">velofreq()</a> relativistic velocity -&gt; frequency</p>
<p class="endli"></p>
</li>
<li>
<a class="el" href="spx_8h.html#a5a497ffd57345f2f0bf1c9abc56842c4" title="Convert vacuum wavelength to air wavelength (vector).">waveawav()</a> vacuum wavelength -&gt; air wavelength </li>
<li>
<p class="startli"><a class="el" href="spx_8h.html#a413fa882d2b67a792a35938738214057" title="Convert air wavelength to vacuum wavelength (vector).">awavwave()</a> air wavelength -&gt; vacuum wavelength</p>
<p class="endli"></p>
</li>
<li>
<a class="el" href="spx_8h.html#a0459c65496512f270d3c569c346ce413" title="Conversions between wavelength and velocity types (vector).">wavevelo()</a> vacuum wavelength -&gt; relativistic velocity </li>
<li>
<p class="startli"><a class="el" href="spx_8h.html#acc02a893f538f5f0c0d1d9baae2b0e10" title="Convert relativistic velocity to vacuum wavelength (vector).">velowave()</a> relativistic velocity -&gt; vacuum wavelength</p>
<p class="endli"></p>
</li>
<li>
<a class="el" href="spx_8h.html#af7a2d05c2db901488d68576343aad873" title="Convert air wavelength to relativistic velocity (vector).">awavvelo()</a> air wavelength -&gt; relativistic velocity </li>
<li>
<a class="el" href="spx_8h.html#a56a7d77413c654541fb29f58561c16f9" title="Convert relativistic velocity to air wavelength (vector).">veloawav()</a> relativistic velocity -&gt; air wavelength </li>
</ul>
<p><b>Linear:</b> <br  />
 </p><ul>
<li>
<a class="el" href="spx_8h.html#a6ee182e1185978bc6e7f69e4604fe341" title="Convert frequency to angular frequency (vector).">freqafrq()</a> frequency -&gt; angular frequency </li>
<li>
<p class="startli"><a class="el" href="spx_8h.html#ad0a5167b8e52a0cdc3990e35a324ba02" title="Convert angular frequency to frequency (vector).">afrqfreq()</a> angular frequency -&gt; frequency</p>
<p class="endli"></p>
</li>
<li>
<a class="el" href="spx_8h.html#a5c2eb2d8649eaab21e71efcd25d9236c" title="Convert frequency to photon energy (vector).">freqener()</a> frequency -&gt; energy </li>
<li>
<p class="startli"><a class="el" href="spx_8h.html#a89a689b848429cfa5780757a5eee9347" title="Convert photon energy to frequency (vector).">enerfreq()</a> energy -&gt; frequency</p>
<p class="endli"></p>
</li>
<li>
<a class="el" href="spx_8h.html#a9eb861d7c7437c5f974ad425da8b5664" title="Convert frequency to wave number (vector).">freqwavn()</a> frequency -&gt; wave number </li>
<li>
<p class="startli"><a class="el" href="spx_8h.html#a5eed4e6f2879b4607e60b4f77e2736bd" title="Convert wave number to frequency (vector).">wavnfreq()</a> wave number -&gt; frequency</p>
<p class="endli"></p>
</li>
<li>
<a class="el" href="spx_8h.html#af4784a764fd0f36c82548ef755c470bd" title="Convert frequency to radio velocity (vector).">freqvrad()</a> frequency -&gt; radio velocity </li>
<li>
<p class="startli"><a class="el" href="spx_8h.html#a772a14e27c613ea7b63697efdb765205" title="Convert radio velocity to frequency (vector).">vradfreq()</a> radio velocity -&gt; frequency</p>
<p class="endli"></p>
</li>
<li>
<a class="el" href="spx_8h.html#a61a1980ff0683231529b784af1c48eaa" title="Convert vacuum wavelength to optical velocity (vector).">wavevopt()</a> vacuum wavelength -&gt; optical velocity </li>
<li>
<p class="startli"><a class="el" href="spx_8h.html#ab23cb997ad699b59f91f4dfe4e8b28b0" title="Convert optical velocity to vacuum wavelength (vector).">voptwave()</a> optical velocity -&gt; vacuum wavelength</p>
<p class="endli"></p>
</li>
<li>
<a class="el" href="spx_8h.html#a544be13048057701c37a8e9c4f761be2" title="Convert vacuum wavelength to redshift (vector).">wavezopt()</a> vacuum wavelength -&gt; redshift </li>
<li>
<p class="startli"><a class="el" href="spx_8h.html#ada5d4cf3e8791d64da68575da692e3f3" title="Convert redshift to vacuum wavelength (vector).">zoptwave()</a> redshift -&gt; vacuum wavelength</p>
<p class="endli"></p>
</li>
<li>
<a class="el" href="spx_8h.html#a8aba8fe47efe098740991771e97fe756" title="Convert relativistic velocity to relativistic beta (vector).">velobeta()</a> relativistic velocity -&gt; beta ( <picture><source srcset="form_54_dark.png" media="(prefers-color-scheme: dark)"/><img class="formulaInl" alt="$\beta = v/c$" src="form_54.png" width="44" height="14"/></picture>) </li>
<li>
<a class="el" href="spx_8h.html#a09b951b08ac818b9da44389a3ddf614a" title="Convert relativistic beta to relativistic velocity (vector).">betavelo()</a> beta ( <picture><source srcset="form_54_dark.png" media="(prefers-color-scheme: dark)"/><img class="formulaInl" alt="$\beta = v/c$" src="form_54.png" width="44" height="14"/></picture>) -&gt; relativistic velocity </li>
</ul>
<p>These are the workhorse routines, to be used for fast transformations. Conversions may be done &quot;in place&quot; by calling the routine with the output vector set to the input.</p>
<p><b>Air-to-vacuum wavelength conversion:</b> <br  />
The air-to-vacuum wavelength conversion in early drafts of WCS Paper III cites Cox (ed., 2000, Allen’s Astrophysical Quantities, AIP Press, Springer-Verlag, New York), which itself derives from Edlén (1953, Journal of the Optical Society of America, 43, 339). This is the IAU standard, adopted in 1957 and again in 1991. No more recent IAU resolution replaces this relation, and it is the one used by WCSLIB.</p>
<p>However, the Cox relation was replaced in later drafts of Paper III, and as eventually published, by the IUGG relation (1999, International Union of Geodesy and Geophysics, comptes rendus of the 22nd General Assembly, Birmingham UK, p111). There is a nearly constant ratio between the two, with IUGG/Cox = 1.000015 over most of the range between 200nm and 10,000nm.</p>
<p>The IUGG relation itself is derived from the work of Ciddor (1996, Applied Optics, 35, 1566), which is used directly by the Sloan Digital Sky Survey. It agrees closely with Cox; longwards of 2500nm, the ratio Ciddor/Cox is fixed at 1.000000021, decreasing only slightly, to 1.000000018, at 1000nm.</p>
<p>The Cox, IUGG, and Ciddor relations all accurately provide the wavelength dependence of the air-to-vacuum wavelength conversion. However, for full accuracy, the atmospheric temperature, pressure, and partial pressure of water vapour must be taken into account. These will determine a small, wavelength-independent scale factor and offset, which is not considered by WCS Paper III.</p>
<p>WCS Paper III is also silent on the question of the range of validity of the air-to-vacuum wavelength conversion. Cox's relation would appear to be valid in the range 200nm to 10,000nm. Both the Cox and the Ciddor relations have singularities below 200nm, with Cox's at 156nm and 83nm. WCSLIB checks neither the range of validity, nor for these singularities.</p>
<p><b>Argument checking:</b> <br  />
The input spectral values are only checked for values that would result in floating point exceptions. In particular, negative frequencies and wavelengths are allowed, as are velocities greater than the speed of light. The same is true for the spectral parameters - rest frequency and wavelength.</p>
<p><b>Accuracy:</b> <br  />
No warranty is given for the accuracy of these routines (refer to the copyright notice); intending users must satisfy for themselves their adequacy for the intended purpose. However, closure effectively to within double precision rounding error was demonstrated by test routine tspec.c which accompanies this software. </p>
</div><h2 class="groupheader">Macro Definition Documentation</h2>
<a id="a45f0db5bb967998f070cad30e5e68180" name="a45f0db5bb967998f070cad30e5e68180"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a45f0db5bb967998f070cad30e5e68180">&#9670;&#160;</a></span>SPXLEN</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">#define SPXLEN&#160;&#160;&#160;(sizeof(struct <a class="el" href="structspxprm.html">spxprm</a>)/sizeof(int))</td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Size of the spxprm struct in <em>int</em> units. </p>
<p>Size of the spxprm struct in <em>int</em> units, used by the Fortran wrappers. </p>

</div>
</div>
<a id="a777e5c4790da397aefcada61445a1bb3" name="a777e5c4790da397aefcada61445a1bb3"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a777e5c4790da397aefcada61445a1bb3">&#9670;&#160;</a></span>SPX_ARGS</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">#define SPX_ARGS</td>
        </tr>
      </table>
</div><div class="memdoc">
<b>Value:</b><div class="fragment"><div class="line">    <span class="keywordtype">double</span> param, <span class="keywordtype">int</span> nspec, <span class="keywordtype">int</span> instep, <span class="keywordtype">int</span> outstep, \</div>
<div class="line">    <span class="keyword">const</span> <span class="keywordtype">double</span> inspec[], <span class="keywordtype">double</span> outspec[], <span class="keywordtype">int</span> stat[]</div>
</div><!-- fragment -->
<p>For use in declaring spectral conversion function prototypes. </p>
<p>Preprocessor macro used for declaring spectral conversion function prototypes. </p>

</div>
</div>
<h2 class="groupheader">Enumeration Type Documentation</h2>
<a id="ad99a404f496d5b8ce3ef6e53c630ecaf" name="ad99a404f496d5b8ce3ef6e53c630ecaf"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ad99a404f496d5b8ce3ef6e53c630ecaf">&#9670;&#160;</a></span>spx_errmsg</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">enum <a class="el" href="spx_8h.html#ad99a404f496d5b8ce3ef6e53c630ecaf">spx_errmsg</a></td>
        </tr>
      </table>
</div><div class="memdoc">
<table class="fieldtable">
<tr><th colspan="2">Enumerator</th></tr><tr><td class="fieldname"><a id="ad99a404f496d5b8ce3ef6e53c630ecafa45313ec670a74e7effc1bcee16cb0b56" name="ad99a404f496d5b8ce3ef6e53c630ecafa45313ec670a74e7effc1bcee16cb0b56"></a>SPXERR_SUCCESS&#160;</td><td class="fielddoc"></td></tr>
<tr><td class="fieldname"><a id="ad99a404f496d5b8ce3ef6e53c630ecafa7342349cd1dc5b4581ae9c39f31d055e" name="ad99a404f496d5b8ce3ef6e53c630ecafa7342349cd1dc5b4581ae9c39f31d055e"></a>SPXERR_NULL_POINTER&#160;</td><td class="fielddoc"></td></tr>
<tr><td class="fieldname"><a id="ad99a404f496d5b8ce3ef6e53c630ecafa23753b512249d3752a74ce7497d9c852" name="ad99a404f496d5b8ce3ef6e53c630ecafa23753b512249d3752a74ce7497d9c852"></a>SPXERR_BAD_SPEC_PARAMS&#160;</td><td class="fielddoc"></td></tr>
<tr><td class="fieldname"><a id="ad99a404f496d5b8ce3ef6e53c630ecafa6b6639fb6d3683c9d356dbd7cf705de1" name="ad99a404f496d5b8ce3ef6e53c630ecafa6b6639fb6d3683c9d356dbd7cf705de1"></a>SPXERR_BAD_SPEC_VAR&#160;</td><td class="fielddoc"></td></tr>
<tr><td class="fieldname"><a id="ad99a404f496d5b8ce3ef6e53c630ecafae795e388e346496b34e57864af841ae2" name="ad99a404f496d5b8ce3ef6e53c630ecafae795e388e346496b34e57864af841ae2"></a>SPXERR_BAD_INSPEC_COORD&#160;</td><td class="fielddoc"></td></tr>
</table>

</div>
</div>
<h2 class="groupheader">Function Documentation</h2>
<a id="a192c7ea1edb2fc79d391a51bec7442e0" name="a192c7ea1edb2fc79d391a51bec7442e0"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a192c7ea1edb2fc79d391a51bec7442e0">&#9670;&#160;</a></span>specx()</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">int specx </td>
          <td>(</td>
          <td class="paramtype">const char *&#160;</td>
          <td class="paramname"><em>type</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">double&#160;</td>
          <td class="paramname"><em>spec</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">double&#160;</td>
          <td class="paramname"><em>restfrq</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">double&#160;</td>
          <td class="paramname"><em>restwav</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">struct <a class="el" href="structspxprm.html">spxprm</a> *&#160;</td>
          <td class="paramname"><em>specs</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Spectral cross conversions (scalar). </p>
<p>Given one spectral variable <b>specx</b>() computes all the others, plus the required derivatives of each with respect to the others.</p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramdir">[in]</td><td class="paramname">type</td><td>The type of spectral variable given by spec, <code><b>FREQ</b></code>, <code><b>AFRQ</b></code>, <code><b>ENER</b></code>, <code><b>WAVN</b></code>, <code><b>VRAD</b></code>, <code><b>WAVE</b></code>, <code><b>VOPT</b></code>, <code><b>ZOPT</b></code>, <code><b>AWAV</b></code>, <code><b>VELO</b></code>, or <code><b>BETA</b></code> (case sensitive). </td></tr>
    <tr><td class="paramdir">[in]</td><td class="paramname">spec</td><td>The spectral variable given, in SI units. </td></tr>
    <tr><td class="paramdir">[in]</td><td class="paramname">restfrq,restwav</td><td>Rest frequency [Hz] or rest wavelength in vacuo [m], only one of which need be given. The other should be set to zero. If both are zero, only a subset of the spectral variables can be computed, the remainder are set to zero. Specifically, given one of <code><b>FREQ</b></code>, <code><b>AFRQ</b></code>, <code><b>ENER</b></code>, <code><b>WAVN</b></code>, <code><b>WAVE</b></code>, or <code><b>AWAV</b></code> the others can be computed without knowledge of the rest frequency. Likewise, <code><b>VRAD</b></code>, <code><b>VOPT</b></code>, <code><b>ZOPT</b></code>, <code><b>VELO</b></code>, and <code><b>BETA</b></code>.</td></tr>
    <tr><td class="paramdir">[in,out]</td><td class="paramname">specs</td><td>Data structure containing all spectral variables and their derivatives, in SI units.</td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>Status return value:<ul>
<li>0: Success.</li>
<li>1: Null spxprm pointer passed.</li>
<li>2: Invalid spectral parameters.</li>
<li>3: Invalid spectral variable.</li>
</ul>
For returns &gt; 1, a detailed error message is set in <a class="el" href="structspxprm.html#ab232cb470b7f96330512dea46791644e">spxprm::err</a> if enabled, see <a class="el" href="wcserr_8h.html#a1691b8bd184d40ca6fda255be078fa53" title="Enable/disable error messaging.">wcserr_enable()</a>.</dd></dl>
<p><a class="el" href="spx_8h.html#a6ee182e1185978bc6e7f69e4604fe341" title="Convert frequency to angular frequency (vector).">freqafrq()</a>, <a class="el" href="spx_8h.html#ad0a5167b8e52a0cdc3990e35a324ba02" title="Convert angular frequency to frequency (vector).">afrqfreq()</a>, <a class="el" href="spx_8h.html#a5c2eb2d8649eaab21e71efcd25d9236c" title="Convert frequency to photon energy (vector).">freqener()</a>, <a class="el" href="spx_8h.html#a89a689b848429cfa5780757a5eee9347" title="Convert photon energy to frequency (vector).">enerfreq()</a>, <a class="el" href="spx_8h.html#a9eb861d7c7437c5f974ad425da8b5664" title="Convert frequency to wave number (vector).">freqwavn()</a>, <a class="el" href="spx_8h.html#a5eed4e6f2879b4607e60b4f77e2736bd" title="Convert wave number to frequency (vector).">wavnfreq()</a>, <a class="el" href="spx_8h.html#a51b714ff0ed788c20f1b273ec551b6f6" title="Convert frequency to vacuum wavelength (vector).">freqwave()</a>, <a class="el" href="spx_8h.html#a6c79d97dcc410e1a7a3e6e26ba3dabe6" title="Convert vacuum wavelength to frequency (vector).">wavefreq()</a>, <a class="el" href="spx_8h.html#a3e86c3462619b4fdf0aeeeea9874757e" title="Convert frequency to air wavelength (vector).">freqawav()</a>, <a class="el" href="spx_8h.html#a16bc2fef69c592c5bcdc695633f17df0" title="Convert air wavelength to frequency (vector).">awavfreq()</a>, <a class="el" href="spx_8h.html#a5a497ffd57345f2f0bf1c9abc56842c4" title="Convert vacuum wavelength to air wavelength (vector).">waveawav()</a>, <a class="el" href="spx_8h.html#a413fa882d2b67a792a35938738214057" title="Convert air wavelength to vacuum wavelength (vector).">awavwave()</a>, <a class="el" href="spx_8h.html#a8aba8fe47efe098740991771e97fe756" title="Convert relativistic velocity to relativistic beta (vector).">velobeta()</a>, and <a class="el" href="spx_8h.html#a09b951b08ac818b9da44389a3ddf614a" title="Convert relativistic beta to relativistic velocity (vector).">betavelo()</a> implement vector conversions between wave-like or velocity-like spectral types (i.e. conversions that do not need the rest frequency or wavelength). They all have the same API. </p>

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

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">int spxperr </td>
          <td>(</td>
          <td class="paramtype">const struct <a class="el" href="structspxprm.html">spxprm</a> *&#160;</td>
          <td class="paramname"><em>spx</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const char *&#160;</td>
          <td class="paramname"><em>prefix</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Print error messages from a spxprm struct. </p>
<p><b>spxperr</b>() prints the error message(s) (if any) stored in a spxprm struct. If there are no errors then nothing is printed. It uses <a class="el" href="wcserr_8h.html#a6585b9fc3a59b369e3336f3133dd1ca9" title="Print a wcserr struct.">wcserr_prt()</a>, q.v.</p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramdir">[in]</td><td class="paramname">spx</td><td>Spectral variables and their derivatives. </td></tr>
    <tr><td class="paramdir">[in]</td><td class="paramname">prefix</td><td>If non-NULL, each output line will be prefixed with this string.</td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>Status return value:<ul>
<li>0: Success.</li>
<li>1: Null spxprm pointer passed. </li>
</ul>
</dd></dl>

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

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">int freqafrq </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="spx_8h.html#a777e5c4790da397aefcada61445a1bb3">SPX_ARGS</a>&#160;</td>
          <td class="paramname"></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Convert frequency to angular frequency (vector). </p>
<p><b>freqafrq</b>() converts frequency to angular frequency.</p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramdir">[in]</td><td class="paramname">param</td><td>Ignored. </td></tr>
    <tr><td class="paramdir">[in]</td><td class="paramname">nspec</td><td>Vector length. </td></tr>
    <tr><td class="paramdir">[in]</td><td class="paramname">instep,outstep</td><td>Vector strides. </td></tr>
    <tr><td class="paramdir">[in]</td><td class="paramname">inspec</td><td>Input spectral variables, in SI units.</td></tr>
    <tr><td class="paramdir">[out]</td><td class="paramname">outspec</td><td>Output spectral variables, in SI units. </td></tr>
    <tr><td class="paramdir">[out]</td><td class="paramname">stat</td><td>Status return value for each vector element:<ul>
<li>0: Success.</li>
<li>1: Invalid value of inspec.</li>
</ul>
</td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>Status return value:<ul>
<li>0: Success.</li>
<li>2: Invalid spectral parameters.</li>
<li>4: One or more of the inspec coordinates were invalid, as indicated by the stat vector. </li>
</ul>
</dd></dl>

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

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">int afrqfreq </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="spx_8h.html#a777e5c4790da397aefcada61445a1bb3">SPX_ARGS</a>&#160;</td>
          <td class="paramname"></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Convert angular frequency to frequency (vector). </p>
<p><b>afrqfreq</b>() converts angular frequency to frequency.</p>
<p>See <a class="el" href="spx_8h.html#a6ee182e1185978bc6e7f69e4604fe341" title="Convert frequency to angular frequency (vector).">freqafrq()</a> for a description of the API. </p>

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

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">int freqener </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="spx_8h.html#a777e5c4790da397aefcada61445a1bb3">SPX_ARGS</a>&#160;</td>
          <td class="paramname"></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Convert frequency to photon energy (vector). </p>
<p><b>freqener</b>() converts frequency to photon energy.</p>
<p>See <a class="el" href="spx_8h.html#a6ee182e1185978bc6e7f69e4604fe341" title="Convert frequency to angular frequency (vector).">freqafrq()</a> for a description of the API. </p>

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

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">int enerfreq </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="spx_8h.html#a777e5c4790da397aefcada61445a1bb3">SPX_ARGS</a>&#160;</td>
          <td class="paramname"></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Convert photon energy to frequency (vector). </p>
<p><b>enerfreq</b>() converts photon energy to frequency.</p>
<p>See <a class="el" href="spx_8h.html#a6ee182e1185978bc6e7f69e4604fe341" title="Convert frequency to angular frequency (vector).">freqafrq()</a> for a description of the API. </p>

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

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">int freqwavn </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="spx_8h.html#a777e5c4790da397aefcada61445a1bb3">SPX_ARGS</a>&#160;</td>
          <td class="paramname"></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Convert frequency to wave number (vector). </p>
<p><b>freqwavn</b>() converts frequency to wave number.</p>
<p>See <a class="el" href="spx_8h.html#a6ee182e1185978bc6e7f69e4604fe341" title="Convert frequency to angular frequency (vector).">freqafrq()</a> for a description of the API. </p>

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

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">int wavnfreq </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="spx_8h.html#a777e5c4790da397aefcada61445a1bb3">SPX_ARGS</a>&#160;</td>
          <td class="paramname"></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Convert wave number to frequency (vector). </p>
<p><b>wavnfreq</b>() converts wave number to frequency.</p>
<p>See <a class="el" href="spx_8h.html#a6ee182e1185978bc6e7f69e4604fe341" title="Convert frequency to angular frequency (vector).">freqafrq()</a> for a description of the API. </p>

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

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">int freqwave </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="spx_8h.html#a777e5c4790da397aefcada61445a1bb3">SPX_ARGS</a>&#160;</td>
          <td class="paramname"></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Convert frequency to vacuum wavelength (vector). </p>
<p><b>freqwave</b>() converts frequency to vacuum wavelength.</p>
<p>See <a class="el" href="spx_8h.html#a6ee182e1185978bc6e7f69e4604fe341" title="Convert frequency to angular frequency (vector).">freqafrq()</a> for a description of the API. </p>

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

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">int wavefreq </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="spx_8h.html#a777e5c4790da397aefcada61445a1bb3">SPX_ARGS</a>&#160;</td>
          <td class="paramname"></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Convert vacuum wavelength to frequency (vector). </p>
<p><b>wavefreq</b>() converts vacuum wavelength to frequency.</p>
<p>See <a class="el" href="spx_8h.html#a6ee182e1185978bc6e7f69e4604fe341" title="Convert frequency to angular frequency (vector).">freqafrq()</a> for a description of the API. </p>

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

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">int freqawav </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="spx_8h.html#a777e5c4790da397aefcada61445a1bb3">SPX_ARGS</a>&#160;</td>
          <td class="paramname"></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Convert frequency to air wavelength (vector). </p>
<p><b>freqawav</b>() converts frequency to air wavelength.</p>
<p>See <a class="el" href="spx_8h.html#a6ee182e1185978bc6e7f69e4604fe341" title="Convert frequency to angular frequency (vector).">freqafrq()</a> for a description of the API. </p>

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

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">int awavfreq </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="spx_8h.html#a777e5c4790da397aefcada61445a1bb3">SPX_ARGS</a>&#160;</td>
          <td class="paramname"></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Convert air wavelength to frequency (vector). </p>
<p><b>awavfreq</b>() converts air wavelength to frequency.</p>
<p>See <a class="el" href="spx_8h.html#a6ee182e1185978bc6e7f69e4604fe341" title="Convert frequency to angular frequency (vector).">freqafrq()</a> for a description of the API. </p>

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

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">int waveawav </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="spx_8h.html#a777e5c4790da397aefcada61445a1bb3">SPX_ARGS</a>&#160;</td>
          <td class="paramname"></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Convert vacuum wavelength to air wavelength (vector). </p>
<p><b>waveawav</b>() converts vacuum wavelength to air wavelength.</p>
<p>See <a class="el" href="spx_8h.html#a6ee182e1185978bc6e7f69e4604fe341" title="Convert frequency to angular frequency (vector).">freqafrq()</a> for a description of the API. </p>

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

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">int awavwave </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="spx_8h.html#a777e5c4790da397aefcada61445a1bb3">SPX_ARGS</a>&#160;</td>
          <td class="paramname"></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Convert air wavelength to vacuum wavelength (vector). </p>
<p><b>awavwave</b>() converts air wavelength to vacuum wavelength.</p>
<p>See <a class="el" href="spx_8h.html#a6ee182e1185978bc6e7f69e4604fe341" title="Convert frequency to angular frequency (vector).">freqafrq()</a> for a description of the API. </p>

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

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">int velobeta </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="spx_8h.html#a777e5c4790da397aefcada61445a1bb3">SPX_ARGS</a>&#160;</td>
          <td class="paramname"></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Convert relativistic velocity to relativistic beta (vector). </p>
<p><b>velobeta</b>() converts relativistic velocity to relativistic beta.</p>
<p>See <a class="el" href="spx_8h.html#a6ee182e1185978bc6e7f69e4604fe341" title="Convert frequency to angular frequency (vector).">freqafrq()</a> for a description of the API. </p>

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

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">int betavelo </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="spx_8h.html#a777e5c4790da397aefcada61445a1bb3">SPX_ARGS</a>&#160;</td>
          <td class="paramname"></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Convert relativistic beta to relativistic velocity (vector). </p>
<p><b>betavelo</b>() converts relativistic beta to relativistic velocity.</p>
<p>See <a class="el" href="spx_8h.html#a6ee182e1185978bc6e7f69e4604fe341" title="Convert frequency to angular frequency (vector).">freqafrq()</a> for a description of the API. </p>

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

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">int freqvelo </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="spx_8h.html#a777e5c4790da397aefcada61445a1bb3">SPX_ARGS</a>&#160;</td>
          <td class="paramname"></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Convert frequency to relativistic velocity (vector). </p>
<p><b>freqvelo</b>() converts frequency to relativistic velocity.</p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramdir">[in]</td><td class="paramname">param</td><td>Rest frequency [Hz]. </td></tr>
    <tr><td class="paramdir">[in]</td><td class="paramname">nspec</td><td>Vector length. </td></tr>
    <tr><td class="paramdir">[in]</td><td class="paramname">instep,outstep</td><td>Vector strides. </td></tr>
    <tr><td class="paramdir">[in]</td><td class="paramname">inspec</td><td>Input spectral variables, in SI units.</td></tr>
    <tr><td class="paramdir">[out]</td><td class="paramname">outspec</td><td>Output spectral variables, in SI units. </td></tr>
    <tr><td class="paramdir">[out]</td><td class="paramname">stat</td><td>Status return value for each vector element:<ul>
<li>0: Success.</li>
<li>1: Invalid value of inspec.</li>
</ul>
</td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>Status return value:<ul>
<li>0: Success.</li>
<li>2: Invalid spectral parameters.</li>
<li>4: One or more of the inspec coordinates were invalid, as indicated by the stat vector. </li>
</ul>
</dd></dl>

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

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">int velofreq </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="spx_8h.html#a777e5c4790da397aefcada61445a1bb3">SPX_ARGS</a>&#160;</td>
          <td class="paramname"></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Convert relativistic velocity to frequency (vector). </p>
<p><b>velofreq</b>() converts relativistic velocity to frequency.</p>
<p>See <a class="el" href="spx_8h.html#aa626b0cad9206c62e7e265bdf8c92c31" title="Convert frequency to relativistic velocity (vector).">freqvelo()</a> for a description of the API. </p>

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

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">int freqvrad </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="spx_8h.html#a777e5c4790da397aefcada61445a1bb3">SPX_ARGS</a>&#160;</td>
          <td class="paramname"></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Convert frequency to radio velocity (vector). </p>
<p><b>freqvrad</b>() converts frequency to radio velocity.</p>
<p>See <a class="el" href="spx_8h.html#aa626b0cad9206c62e7e265bdf8c92c31" title="Convert frequency to relativistic velocity (vector).">freqvelo()</a> for a description of the API. </p>

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

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">int vradfreq </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="spx_8h.html#a777e5c4790da397aefcada61445a1bb3">SPX_ARGS</a>&#160;</td>
          <td class="paramname"></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Convert radio velocity to frequency (vector). </p>
<p><b>vradfreq</b>() converts radio velocity to frequency.</p>
<p>See <a class="el" href="spx_8h.html#aa626b0cad9206c62e7e265bdf8c92c31" title="Convert frequency to relativistic velocity (vector).">freqvelo()</a> for a description of the API. </p>

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

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">int wavevelo </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="spx_8h.html#a777e5c4790da397aefcada61445a1bb3">SPX_ARGS</a>&#160;</td>
          <td class="paramname"></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Conversions between wavelength and velocity types (vector). </p>
<p><b>wavevelo</b>() converts vacuum wavelength to relativistic velocity.</p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramdir">[in]</td><td class="paramname">param</td><td>Rest wavelength in vacuo [m]. </td></tr>
    <tr><td class="paramdir">[in]</td><td class="paramname">nspec</td><td>Vector length. </td></tr>
    <tr><td class="paramdir">[in]</td><td class="paramname">instep,outstep</td><td>Vector strides. </td></tr>
    <tr><td class="paramdir">[in]</td><td class="paramname">inspec</td><td>Input spectral variables, in SI units.</td></tr>
    <tr><td class="paramdir">[out]</td><td class="paramname">outspec</td><td>Output spectral variables, in SI units. </td></tr>
    <tr><td class="paramdir">[out]</td><td class="paramname">stat</td><td>Status return value for each vector element:<ul>
<li>0: Success.</li>
<li>1: Invalid value of inspec.</li>
</ul>
</td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>Status return value:<ul>
<li>0: Success.</li>
<li>2: Invalid spectral parameters.</li>
<li>4: One or more of the inspec coordinates were invalid, as indicated by the stat vector. </li>
</ul>
</dd></dl>

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

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">int velowave </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="spx_8h.html#a777e5c4790da397aefcada61445a1bb3">SPX_ARGS</a>&#160;</td>
          <td class="paramname"></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Convert relativistic velocity to vacuum wavelength (vector). </p>
<p><b>velowave</b>() converts relativistic velocity to vacuum wavelength.</p>
<p>See <a class="el" href="spx_8h.html#aa626b0cad9206c62e7e265bdf8c92c31" title="Convert frequency to relativistic velocity (vector).">freqvelo()</a> for a description of the API. </p>

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

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">int awavvelo </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="spx_8h.html#a777e5c4790da397aefcada61445a1bb3">SPX_ARGS</a>&#160;</td>
          <td class="paramname"></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Convert air wavelength to relativistic velocity (vector). </p>
<p><b>awavvelo</b>() converts air wavelength to relativistic velocity.</p>
<p>See <a class="el" href="spx_8h.html#aa626b0cad9206c62e7e265bdf8c92c31" title="Convert frequency to relativistic velocity (vector).">freqvelo()</a> for a description of the API. </p>

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

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">int veloawav </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="spx_8h.html#a777e5c4790da397aefcada61445a1bb3">SPX_ARGS</a>&#160;</td>
          <td class="paramname"></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Convert relativistic velocity to air wavelength (vector). </p>
<p><b>veloawav</b>() converts relativistic velocity to air wavelength.</p>
<p>See <a class="el" href="spx_8h.html#aa626b0cad9206c62e7e265bdf8c92c31" title="Convert frequency to relativistic velocity (vector).">freqvelo()</a> for a description of the API. </p>

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

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">int wavevopt </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="spx_8h.html#a777e5c4790da397aefcada61445a1bb3">SPX_ARGS</a>&#160;</td>
          <td class="paramname"></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Convert vacuum wavelength to optical velocity (vector). </p>
<p><b>wavevopt</b>() converts vacuum wavelength to optical velocity.</p>
<p>See <a class="el" href="spx_8h.html#aa626b0cad9206c62e7e265bdf8c92c31" title="Convert frequency to relativistic velocity (vector).">freqvelo()</a> for a description of the API. </p>

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

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">int voptwave </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="spx_8h.html#a777e5c4790da397aefcada61445a1bb3">SPX_ARGS</a>&#160;</td>
          <td class="paramname"></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Convert optical velocity to vacuum wavelength (vector). </p>
<p><b>voptwave</b>() converts optical velocity to vacuum wavelength.</p>
<p>See <a class="el" href="spx_8h.html#aa626b0cad9206c62e7e265bdf8c92c31" title="Convert frequency to relativistic velocity (vector).">freqvelo()</a> for a description of the API. </p>

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

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">int wavezopt </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="spx_8h.html#a777e5c4790da397aefcada61445a1bb3">SPX_ARGS</a>&#160;</td>
          <td class="paramname"></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Convert vacuum wavelength to redshift (vector). </p>
<p><b>wavevopt</b>() converts vacuum wavelength to redshift.</p>
<p>See <a class="el" href="spx_8h.html#aa626b0cad9206c62e7e265bdf8c92c31" title="Convert frequency to relativistic velocity (vector).">freqvelo()</a> for a description of the API. </p>

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

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">int zoptwave </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="spx_8h.html#a777e5c4790da397aefcada61445a1bb3">SPX_ARGS</a>&#160;</td>
          <td class="paramname"></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Convert redshift to vacuum wavelength (vector). </p>
<p><b>zoptwave</b>() converts redshift to vacuum wavelength.</p>
<p>See <a class="el" href="spx_8h.html#aa626b0cad9206c62e7e265bdf8c92c31" title="Convert frequency to relativistic velocity (vector).">freqvelo()</a> for a description of the API. </p>

</div>
</div>
<h2 class="groupheader">Variable Documentation</h2>
<a id="a286f473d94247fbd7c2485e515fee67f" name="a286f473d94247fbd7c2485e515fee67f"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a286f473d94247fbd7c2485e515fee67f">&#9670;&#160;</a></span>spx_errmsg</h2>

<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">const char* <a class="el" href="spx_8h.html#ad99a404f496d5b8ce3ef6e53c630ecaf">spx_errmsg</a>[]</td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">extern</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

</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>