<!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">
<head>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<meta name="generator" content="Doxygen 1.8.20"/>
<meta name="viewport" content="width=device-width, initial-scale=1"/>
<title>FastQFact: TraceBline.cu 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 style="height: 56px;">
  <td id="projectalign" style="padding-left: 0.5em;">
   <div id="projectname">FastQFact
   &#160;<span id="projectnumber">0.0.1</span>
   </div>
   <div id="projectbrief">GPU accelerated Q factor calculation</div>
  </td>
 </tr>
 </tbody>
</table>
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.8.20 -->
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
var searchBox = new SearchBox("searchBox", "search",false,'Search');
/* @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:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
$(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">
<iframe src="javascript:void(0)" frameborder="0" 
        name="MSearchResults" id="MSearchResults">
</iframe>
</div>

</div><!-- top -->
<div class="header">
  <div class="summary">
<a href="#define-members">Macros</a> &#124;
<a href="#func-members">Functions</a>  </div>
  <div class="headertitle">
<div class="title">TraceBline.cu File Reference</div>  </div>
</div><!--header-->
<div class="contents">
<div class="textblock"><code>#include &lt;math.h&gt;</code><br />
<code>#include &lt;stdio.h&gt;</code><br />
</div><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="define-members"></a>
Macros</h2></td></tr>
<tr class="memitem:ae71449b1cc6e6250b91f539153a7a0d3"><td class="memItemLeft" align="right" valign="top"><a id="ae71449b1cc6e6250b91f539153a7a0d3"></a>
#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="_trace_bline_8cu.html#ae71449b1cc6e6250b91f539153a7a0d3">M_PI</a>&#160;&#160;&#160;3.14159265</td></tr>
<tr class="memdesc:ae71449b1cc6e6250b91f539153a7a0d3"><td class="mdescLeft">&#160;</td><td class="mdescRight">Mathematical constant PI. <br /></td></tr>
<tr class="separator:ae71449b1cc6e6250b91f539153a7a0d3"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a5d5b14d9ec9df4d02fa464da0e38c7c0"><td class="memItemLeft" align="right" valign="top"><a id="a5d5b14d9ec9df4d02fa464da0e38c7c0"></a>
#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="_trace_bline_8cu.html#a5d5b14d9ec9df4d02fa464da0e38c7c0">MAX_STEP_RATIO</a>&#160;&#160;&#160;4</td></tr>
<tr class="memdesc:a5d5b14d9ec9df4d02fa464da0e38c7c0"><td class="mdescLeft">&#160;</td><td class="mdescRight">Maximum step length compared to box size. <br /></td></tr>
<tr class="separator:a5d5b14d9ec9df4d02fa464da0e38c7c0"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="func-members"></a>
Functions</h2></td></tr>
<tr class="memitem:a14ffb3fba5c33b2bee0ee0b25e17c11a"><td class="memItemLeft" align="right" valign="top"><a id="a14ffb3fba5c33b2bee0ee0b25e17c11a"></a>
__device__ float&#160;</td><td class="memItemRight" valign="bottom"><b>lenVec3</b> (float xx, float yy, float zz)</td></tr>
<tr class="separator:a14ffb3fba5c33b2bee0ee0b25e17c11a"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a96d7d9843d77ceb68a1aef2bee179250"><td class="memItemLeft" align="right" valign="top"><a id="a96d7d9843d77ceb68a1aef2bee179250"></a>
__forceinline__ __device__ float&#160;</td><td class="memItemRight" valign="bottom"><b>dot</b> (float3 a, float3 b)</td></tr>
<tr class="separator:a96d7d9843d77ceb68a1aef2bee179250"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a856de7ae16ba7ab7211557cb53abb314"><td class="memItemLeft" align="right" valign="top"><a id="a856de7ae16ba7ab7211557cb53abb314"></a>
__forceinline__ __device__ float3&#160;</td><td class="memItemRight" valign="bottom"><b>divide3</b> (float3 a, float b)</td></tr>
<tr class="separator:a856de7ae16ba7ab7211557cb53abb314"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ad1674337208cc670938b0759692ef411"><td class="memItemLeft" align="right" valign="top">__forceinline__ __device__ float&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="_trace_bline_8cu.html#ad1674337208cc670938b0759692ef411">get_Idx3d</a> (float *Arr, int3 AShapeN3, int Idx0, int Idx1, int Idx2)</td></tr>
<tr class="separator:ad1674337208cc670938b0759692ef411"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ae8af923d4c24dd904d40bce5f89ac2f4"><td class="memItemLeft" align="right" valign="top">__global__ void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="_trace_bline_8cu.html#ae8af923d4c24dd904d40bce5f89ac2f4">test_Idx3d</a> (float *Arr, int *AShapeN, int *getIdx, float *res)</td></tr>
<tr class="separator:ae8af923d4c24dd904d40bce5f89ac2f4"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ae7e7d74af11d683f3de2eb527700b508"><td class="memItemLeft" align="right" valign="top">__device__ float&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="_trace_bline_8cu.html#ae7e7d74af11d683f3de2eb527700b508">Interp3d</a> (float *Arr, int3 AShapeN3, float inPoint_0, float inPoint_1, float inPoint_2)</td></tr>
<tr class="separator:ae7e7d74af11d683f3de2eb527700b508"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a24a7081311ef9318478f7f71e864870a"><td class="memItemLeft" align="right" valign="top">__device__ float3&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="_trace_bline_8cu.html#a24a7081311ef9318478f7f71e864870a">Interp3dxyz</a> (float *Arr_x, float *Arr_y, float *Arr_z, int3 AShapeN3, float inPoint_0, float inPoint_1, float inPoint_2)</td></tr>
<tr class="separator:a24a7081311ef9318478f7f71e864870a"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a24a6d841c1fc840a3f7e6ab951b9f41e"><td class="memItemLeft" align="right" valign="top"><a id="a24a6d841c1fc840a3f7e6ab951b9f41e"></a>
__global__ void&#160;</td><td class="memItemRight" valign="bottom"><b>test_Interp3dxyz</b> (float *Arr_x, float *Arr_y, float *Arr_z, int *AShapeN, float *inPoint_0, float *inPoint_1, float *inPoint_2)</td></tr>
<tr class="separator:a24a6d841c1fc840a3f7e6ab951b9f41e"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aaf2597142adae3f797544f0b9316846d"><td class="memItemLeft" align="right" valign="top"><a id="aaf2597142adae3f797544f0b9316846d"></a>
__device__ void&#160;</td><td class="memItemRight" valign="bottom"><b>stepForward</b> (float *Bx, float *By, float *Bz, int3 BshapeN3, float *P_start, float *P_end, float s_len)</td></tr>
<tr class="separator:aaf2597142adae3f797544f0b9316846d"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a276794cf4a2b0e38982e7de46bd6bec3"><td class="memItemLeft" align="right" valign="top">__device__ float4&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="_trace_bline_8cu.html#a276794cf4a2b0e38982e7de46bd6bec3">RKF45</a> (float *Bx, float *By, float *Bz, int3 BshapeN3, float3 P0, float s_len)</td></tr>
<tr class="separator:a276794cf4a2b0e38982e7de46bd6bec3"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a8e7ba8fd252a7c5a410dc94e33217836"><td class="memItemLeft" align="right" valign="top">__device__ float3&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="_trace_bline_8cu.html#a8e7ba8fd252a7c5a410dc94e33217836">RK4</a> (float *Bx, float *By, float *Bz, int3 BshapeN3, float3 P0, float s_len)</td></tr>
<tr class="separator:a8e7ba8fd252a7c5a410dc94e33217836"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a5e730aa4bbd7a928f54fcafa64937ba5"><td class="memItemLeft" align="right" valign="top"><a id="a5e730aa4bbd7a928f54fcafa64937ba5"></a>
__device__ float3&#160;</td><td class="memItemRight" valign="bottom"><b>RK4_boundary</b> (float *Bx, float *By, float *Bz, int3 BshapeN3, float3 P0, float s_len, int b_dim)</td></tr>
<tr class="separator:a5e730aa4bbd7a928f54fcafa64937ba5"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a8cb90f94555f6b1e9e05fa3d29a30062"><td class="memItemLeft" align="right" valign="top"><a id="a8cb90f94555f6b1e9e05fa3d29a30062"></a>
__device__ int&#160;</td><td class="memItemRight" valign="bottom"><b>checkFlag</b> (int3 BshapeN3, float3 P_cur)</td></tr>
<tr class="separator:a8cb90f94555f6b1e9e05fa3d29a30062"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a9693aaa63c601ccd4a84161d21b31016"><td class="memItemLeft" align="right" valign="top"><a id="a9693aaa63c601ccd4a84161d21b31016"></a>
__device__ void&#160;</td><td class="memItemRight" valign="bottom"><b>TraceBline</b> (float *Bx, float *By, float *Bz, int3 BshapeN3, float *P_0, float *P_out, float s_len, int *flag, unsigned long long *step_len_this)</td></tr>
<tr class="separator:a9693aaa63c601ccd4a84161d21b31016"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a96ae954db553e06dfa03ebedb274f407"><td class="memItemLeft" align="right" valign="top"><a id="a96ae954db553e06dfa03ebedb274f407"></a>
__global__ void&#160;</td><td class="memItemRight" valign="bottom"><b>test_Interp3d</b> (float *Arr, int *AShapeN, float *inPoint, float *res)</td></tr>
<tr class="separator:a96ae954db553e06dfa03ebedb274f407"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a2bcd7febe6127a0fec1bbe9b50651f8e"><td class="memItemLeft" align="right" valign="top"><a id="a2bcd7febe6127a0fec1bbe9b50651f8e"></a>
__global__ void&#160;</td><td class="memItemRight" valign="bottom"><b>TraceAllBline</b> (float *Bx, float *By, float *Bz, int *BshapeN, float *inp_x, float *inp_y, float *inp_z, float *out_x, float *out_y, float *out_z, float *s_len, float *B_inp_x, float *B_inp_y, float *B_inp_z, float *B_out_x, float *B_out_y, float *B_out_z, int *flag_out, unsigned long long *N, unsigned long long *stepLineLen)</td></tr>
<tr class="separator:a2bcd7febe6127a0fec1bbe9b50651f8e"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a4b84b0f693abcb28a6184508580fdadd"><td class="memItemLeft" align="right" valign="top"><a id="a4b84b0f693abcb28a6184508580fdadd"></a>
__global__ void&#160;</td><td class="memItemRight" valign="bottom"><b>TestMem</b> (int *flag_out)</td></tr>
<tr class="separator:a4b84b0f693abcb28a6184508580fdadd"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table>
<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
<div class="textblock"><dl class="section author"><dt>Author</dt><dd>Peijin Zhang The kernel of the Q-factor computation: tracing the magnetic field </dd></dl>
</div><h2 class="groupheader">Function Documentation</h2>
<a id="ad1674337208cc670938b0759692ef411"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ad1674337208cc670938b0759692ef411">&#9670;&nbsp;</a></span>get_Idx3d()</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">__forceinline__ __device__ float get_Idx3d </td>
          <td>(</td>
          <td class="paramtype">float *&#160;</td>
          <td class="paramname"><em>Arr</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">int3&#160;</td>
          <td class="paramname"><em>AShapeN3</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">int&#160;</td>
          <td class="paramname"><em>Idx0</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">int&#160;</td>
          <td class="paramname"><em>Idx1</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">int&#160;</td>
          <td class="paramname"><em>Idx2</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">
<p>Obtain value from a 3D array, for a given point P. </p><dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramdir">[in]</td><td class="paramname">Arr</td><td>The pointer of the input array </td></tr>
    <tr><td class="paramdir">[in]</td><td class="paramname">AShapeN3</td><td>The shape of the input array, in the form of int3{x,y,z} </td></tr>
    <tr><td class="paramdir">[in]</td><td class="paramname">Idx0</td><td>The index of P in the first demention </td></tr>
    <tr><td class="paramdir">[in]</td><td class="paramname">Idx1</td><td>The index of P in the second demention </td></tr>
    <tr><td class="paramdir">[in]</td><td class="paramname">Idx2</td><td>The index of P in the third demention </td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>The value of P in the array. </dd></dl>

</div>
</div>
<a id="ae7e7d74af11d683f3de2eb527700b508"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ae7e7d74af11d683f3de2eb527700b508">&#9670;&nbsp;</a></span>Interp3d()</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">__device__ float Interp3d </td>
          <td>(</td>
          <td class="paramtype">float *&#160;</td>
          <td class="paramname"><em>Arr</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">int3&#160;</td>
          <td class="paramname"><em>AShapeN3</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">float&#160;</td>
          <td class="paramname"><em>inPoint_0</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">float&#160;</td>
          <td class="paramname"><em>inPoint_1</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">float&#160;</td>
          <td class="paramname"><em>inPoint_2</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">
<p>Interpolation of a 3D array for a given point. Assuming that the coordinate is the same as the grid index of xyz The point out of the range is evaluated by fixed value extrapolation </p><dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramdir">[in]</td><td class="paramname">Arr</td><td>The pointer to the 3D array for interpolation </td></tr>
    <tr><td class="paramdir">[in]</td><td class="paramname">AShapeN3</td><td>The shape of the array </td></tr>
    <tr><td class="paramdir">[in]</td><td class="paramname">inPoint_0</td><td>Position in x axis </td></tr>
    <tr><td class="paramdir">[in]</td><td class="paramname">inPoint_0</td><td>Position in y axis </td></tr>
    <tr><td class="paramdir">[in]</td><td class="paramname">inPoint_0</td><td>Position in z axis </td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>The interpolated value </dd></dl>

</div>
</div>
<a id="a24a7081311ef9318478f7f71e864870a"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a24a7081311ef9318478f7f71e864870a">&#9670;&nbsp;</a></span>Interp3dxyz()</h2>

<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">__device__ float3 Interp3dxyz </td>
          <td>(</td>
          <td class="paramtype">float *&#160;</td>
          <td class="paramname"><em>Arr_x</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">float *&#160;</td>
          <td class="paramname"><em>Arr_y</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">float *&#160;</td>
          <td class="paramname"><em>Arr_z</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">int3&#160;</td>
          <td class="paramname"><em>AShapeN3</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">float&#160;</td>
          <td class="paramname"><em>inPoint_0</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">float&#160;</td>
          <td class="paramname"><em>inPoint_1</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">float&#160;</td>
          <td class="paramname"><em>inPoint_2</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">
<p>Interpolation of Bx,By,Bz at one time, the position for interpolation is the same for all three arrays. </p><dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramdir">[in]</td><td class="paramname">Arr_x</td><td>Bx, array for interpolation </td></tr>
    <tr><td class="paramdir">[in]</td><td class="paramname">Arr_y</td><td>By, array for interpolation </td></tr>
    <tr><td class="paramdir">[in]</td><td class="paramname">Arr_z</td><td>Bz, array for interpolation </td></tr>
    <tr><td class="paramdir">[in]</td><td class="paramname">AShapeN3</td><td>The shape of the arrays,(should be the same) </td></tr>
    <tr><td class="paramdir">[in]</td><td class="paramname">inPoint_0</td><td>Position in x axis </td></tr>
    <tr><td class="paramdir">[in]</td><td class="paramname">inPoint_0</td><td>Position in y axis </td></tr>
    <tr><td class="paramdir">[in]</td><td class="paramname">inPoint_0</td><td>Position in z axis </td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>The interpolated value of Bx,By,Bz </dd></dl>

</div>
</div>
<a id="a8e7ba8fd252a7c5a410dc94e33217836"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a8e7ba8fd252a7c5a410dc94e33217836">&#9670;&nbsp;</a></span>RK4()</h2>

<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">__device__ float3 RK4 </td>
          <td>(</td>
          <td class="paramtype">float *&#160;</td>
          <td class="paramname"><em>Bx</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">float *&#160;</td>
          <td class="paramname"><em>By</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">float *&#160;</td>
          <td class="paramname"><em>Bz</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">int3&#160;</td>
          <td class="paramname"><em>BshapeN3</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">float3&#160;</td>
          <td class="paramname"><em>P0</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">float&#160;</td>
          <td class="paramname"><em>s_len</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">
<p>4-stage Runge-Kutta integral function </p>

</div>
</div>
<a id="a276794cf4a2b0e38982e7de46bd6bec3"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a276794cf4a2b0e38982e7de46bd6bec3">&#9670;&nbsp;</a></span>RKF45()</h2>

<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">__device__ float4 RKF45 </td>
          <td>(</td>
          <td class="paramtype">float *&#160;</td>
          <td class="paramname"><em>Bx</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">float *&#160;</td>
          <td class="paramname"><em>By</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">float *&#160;</td>
          <td class="paramname"><em>Bz</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">int3&#160;</td>
          <td class="paramname"><em>BshapeN3</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">float3&#160;</td>
          <td class="paramname"><em>P0</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">float&#160;</td>
          <td class="paramname"><em>s_len</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">
<p>Adaptive step-size integral scheme </p>

</div>
</div>
<a id="ae8af923d4c24dd904d40bce5f89ac2f4"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ae8af923d4c24dd904d40bce5f89ac2f4">&#9670;&nbsp;</a></span>test_Idx3d()</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">__global__ void test_Idx3d </td>
          <td>(</td>
          <td class="paramtype">float *&#160;</td>
          <td class="paramname"><em>Arr</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">int *&#160;</td>
          <td class="paramname"><em>AShapeN</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">int *&#160;</td>
          <td class="paramname"><em>getIdx</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">float *&#160;</td>
          <td class="paramname"><em>res</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">
<p>A test terminal of the indexing of function "get_Idx3d" </p>

</div>
</div>
</div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
Generated by&#160;<a href="http://www.doxygen.org/index.html"><img class="footer" src="doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.8.20
</small></address>
</body>
</html>
