1
0
mirror of https://github.com/TREX-CoE/qmckl.git synced 2025-01-09 12:44:12 +01:00
This commit is contained in:
scemama 2020-11-04 23:47:05 +00:00
parent c51dcd7542
commit a0579526c0
7 changed files with 547 additions and 78 deletions

View File

@ -4,7 +4,7 @@
<html xmlns="http://www.w3.org/1999/xhtml" lang="en" xml:lang="en"> <html xmlns="http://www.w3.org/1999/xhtml" lang="en" xml:lang="en">
<head> <head>
<title>QMCkl source code documentation</title> <title>QMCkl source code documentation</title>
<!-- 2020-10-31 Sat 18:09 --> <!-- 2020-11-04 Wed 23:47 -->
<meta http-equiv="Content-Type" content="text/html;charset=utf-8" /> <meta http-equiv="Content-Type" content="text/html;charset=utf-8" />
<meta name="generator" content="Org-mode" /> <meta name="generator" content="Org-mode" />
<style type="text/css"> <style type="text/css">
@ -308,6 +308,11 @@ those exposed in the API suffixed by <code>_f</code>.
Fortran interface files should also be written in a file with a Fortran interface files should also be written in a file with a
<code>.fh</code> extension. <code>.fh</code> extension.
</p> </p>
<p>
For more guidelines on using Fortran to generate a C interface, see
<a href="http://fortranwiki.org/fortran/show/Generating+C+Interfaces">this link</a>
</p>
</div> </div>
</div> </div>
@ -395,6 +400,10 @@ and terminated by a zero character (C convention).
</li> </li>
</ul> </ul>
<p>
Complex numbers can be represented by an array of 2 floats.
</p>
<p> <p>
To facilitate the use in other languages than C, we provide some To facilitate the use in other languages than C, we provide some
bindings in other languages in other repositories. bindings in other languages in other repositories.
@ -540,7 +549,7 @@ be implemented adapted to different problem sizes.
</div> </div>
</div> </div>
<div id="postamble" class="status"> <div id="postamble" class="status">
<p class="date">Created: 2020-10-31 Sat 18:09</p> <p class="date">Created: 2020-11-04 Wed 23:47</p>
<p class="creator"><a href="http://www.gnu.org/software/emacs/">Emacs</a> 25.2.2 (<a href="http://orgmode.org">Org</a> mode 8.2.10)</p> <p class="creator"><a href="http://www.gnu.org/software/emacs/">Emacs</a> 25.2.2 (<a href="http://orgmode.org">Org</a> mode 8.2.10)</p>
<p class="validation"><a href="http://validator.w3.org/check?uri=referer">Validate</a></p> <p class="validation"><a href="http://validator.w3.org/check?uri=referer">Validate</a></p>
</div> </div>

View File

@ -4,7 +4,7 @@
<html xmlns="http://www.w3.org/1999/xhtml" lang="en" xml:lang="en"> <html xmlns="http://www.w3.org/1999/xhtml" lang="en" xml:lang="en">
<head> <head>
<title>QMCkl C header</title> <title>QMCkl C header</title>
<!-- 2020-10-31 Sat 18:09 --> <!-- 2020-11-04 Wed 23:47 -->
<meta http-equiv="Content-Type" content="text/html;charset=utf-8" /> <meta http-equiv="Content-Type" content="text/html;charset=utf-8" />
<meta name="generator" content="Org-mode" /> <meta name="generator" content="Org-mode" />
<style type="text/css"> <style type="text/css">
@ -247,7 +247,7 @@ header files.
</div> </div>
</div> </div>
<div id="postamble" class="status"> <div id="postamble" class="status">
<p class="date">Created: 2020-10-31 Sat 18:09</p> <p class="date">Created: 2020-11-04 Wed 23:47</p>
<p class="creator"><a href="http://www.gnu.org/software/emacs/">Emacs</a> 25.2.2 (<a href="http://orgmode.org">Org</a> mode 8.2.10)</p> <p class="creator"><a href="http://www.gnu.org/software/emacs/">Emacs</a> 25.2.2 (<a href="http://orgmode.org">Org</a> mode 8.2.10)</p>
<p class="validation"><a href="http://validator.w3.org/check?uri=referer">Validate</a></p> <p class="validation"><a href="http://validator.w3.org/check?uri=referer">Validate</a></p>
</div> </div>

View File

@ -4,7 +4,7 @@
<html xmlns="http://www.w3.org/1999/xhtml" lang="en" xml:lang="en"> <html xmlns="http://www.w3.org/1999/xhtml" lang="en" xml:lang="en">
<head> <head>
<title>Atomic Orbitals</title> <title>Atomic Orbitals</title>
<!-- 2020-10-31 Sat 18:09 --> <!-- 2020-11-04 Wed 23:47 -->
<meta http-equiv="Content-Type" content="text/html;charset=utf-8" /> <meta http-equiv="Content-Type" content="text/html;charset=utf-8" />
<meta name="generator" content="Org-mode" /> <meta name="generator" content="Org-mode" />
<style type="text/css"> <style type="text/css">
@ -209,7 +209,18 @@ for the JavaScript code in this tag.
</li> </li>
</ul> </ul>
</li> </li>
<li><a href="#sec-2">2. <span class="todo TODO">TODO</span> Gaussian basis functions</a></li> <li><a href="#sec-2">2. Gaussian basis functions</a>
<ul>
<li><a href="#sec-2-1">2.1. <code>qmckl_ao_gaussians_vgl</code></a>
<ul>
<li><a href="#sec-2-1-1">2.1.1. Arguments</a></li>
<li><a href="#sec-2-1-2">2.1.2. Requirements</a></li>
<li><a href="#sec-2-1-3">2.1.3. Header</a></li>
<li><a href="#sec-2-1-4">2.1.4. Source</a></li>
</ul>
</li>
</ul>
</li>
<li><a href="#sec-3">3. <span class="todo TODO">TODO</span> Slater basis functions</a></li> <li><a href="#sec-3">3. <span class="todo TODO">TODO</span> Slater basis functions</a></li>
</ul> </ul>
</div> </div>
@ -400,6 +411,7 @@ end function qmckl_ao_powers_f
</div> </div>
</div> </div>
<div id="outline-container-sec-1-2" class="outline-3"> <div id="outline-container-sec-1-2" class="outline-3">
<h3 id="sec-1-2"><span class="section-number-3">1.2</span> <code>qmckl_ao_polynomial_vgl</code></h3> <h3 id="sec-1-2"><span class="section-number-3">1.2</span> <code>qmckl_ao_polynomial_vgl</code></h3>
<div class="outline-text-3" id="text-1-2"> <div class="outline-text-3" id="text-1-2">
@ -466,7 +478,7 @@ all polynomials with an angular momentum up to <code>lmax</code>.
</tr> </tr>
<tr> <tr>
<td class="left"><code>VGL(ldv,n)</code></td> <td class="left"><code>VGL(ldv,5)</code></td>
<td class="left">output</td> <td class="left">output</td>
<td class="left">Value, gradients and Laplacian of the polynomials</td> <td class="left">Value, gradients and Laplacian of the polynomials</td>
</tr> </tr>
@ -489,21 +501,21 @@ all polynomials with an angular momentum up to <code>lmax</code>.
</li> </li>
<li><code>n</code> &gt; 0 <li><code>n</code> &gt; 0
</li> </li>
<li><code>lmax</code> &gt;= 0
</li>
<li><code>ldl</code> &gt;= 3
</li>
<li><code>ldv</code> &gt;= (=lmax=+1)(=lmax=+2)(=lmax=+3)/6
</li>
<li><code>X</code> is allocated with at least \(3 \times 8\) bytes <li><code>X</code> is allocated with at least \(3 \times 8\) bytes
</li> </li>
<li><code>R</code> is allocated with at least \(3 \times 8\) bytes <li><code>R</code> is allocated with at least \(3 \times 8\) bytes
</li> </li>
<li><code>lmax</code> &gt;= 0
</li>
<li>On output, <code>n</code> should be equal to (=lmax=+1)(=lmax=+2)(=lmax=+3)/6
</li>
<li><code>L</code> is allocated with at least \(3 \times n \times 4\) bytes <li><code>L</code> is allocated with at least \(3 \times n \times 4\) bytes
</li> </li>
<li><code>ldl</code> &gt;= 3 <li><code>VGL</code> is allocated with at least \(n \times 5 \times 8\) bytes
</li> </li>
<li><code>VGL</code> is allocated with at least \(5 \times n \times 8\) bytes <li>On output, <code>n</code> should be equal to (=lmax=+1)(=lmax=+2)(=lmax=+3)/6
</li>
<li><code>ldv</code> &gt;= 5
</li> </li>
</ul> </ul>
</div> </div>
@ -518,7 +530,7 @@ all polynomials with an angular momentum up to <code>lmax</code>.
const double *X, const double *R, const double *X, const double *R,
const int32_t lmax, const int64_t *n, const int32_t lmax, const int64_t *n,
const int32_t *L, const int64_t ldl, const int32_t *L, const int64_t ldl,
const double *VGL, const int64_t ldv); const double *VGL, const int64_t ldv);
</pre> </pre>
</div> </div>
</div> </div>
@ -537,7 +549,7 @@ all polynomials with an angular momentum up to <code>lmax</code>.
integer*8 , intent(out) :: n integer*8 , intent(out) :: n
integer , intent(out) :: L(ldl,(lmax+1)*(lmax+2)*(lmax+3)/6) integer , intent(out) :: L(ldl,(lmax+1)*(lmax+2)*(lmax+3)/6)
integer*8 , intent(in) :: ldl integer*8 , intent(in) :: ldl
real*8 , intent(out) :: VGL(ldv,(lmax+1)*(lmax+2)*(lmax+3)/6) real*8 , intent(out) :: VGL(ldv,5)
integer*8 , intent(in) :: ldv integer*8 , intent(in) :: ldv
integer*8 :: i,j integer*8 :: i,j
@ -556,18 +568,21 @@ all polynomials with an angular momentum up to <code>lmax</code>.
return return
endif endif
n = (lmax+1)*(lmax+2)*(lmax+3)/6
if (ldl &lt; 3) then if (ldl &lt; 3) then
info = -2 info = -2
return return
endif endif
if (ldv &lt; 5) then if (ldv &lt; (lmax+1)*(lmax+2)*(lmax+3)/6) then
info = -3 info = -3
return return
endif endif
if (lmax &lt;= 0) then
info = -4
return
endif
do i=1,3 do i=1,3
Y(i) = X(i) - R(i) Y(i) = X(i) - R(i)
@ -583,10 +598,10 @@ all polynomials with an angular momentum up to <code>lmax</code>.
if (info /= 0) return if (info /= 0) return
vgl(1,1) = 1.d0
vgl(1,2:5) = 0.d0
l(1:3,1) = 0
n=1 n=1
vgl(1:5,1:n) = 0.d0
l(1:3,n) = 0
vgl(1,n) = 1.d0
dd = 1.d0 dd = 1.d0
do d=1,lmax do d=1,lmax
da = 0.d0 da = 0.d0
@ -604,17 +619,17 @@ all polynomials with an angular momentum up to <code>lmax</code>.
yz = pows(b,2) * pows(c,3) yz = pows(b,2) * pows(c,3)
xz = pows(a,1) * pows(c,3) xz = pows(a,1) * pows(c,3)
vgl(1,n) = xy * pows(c,3) vgl(n,1) = xy * pows(c,3)
xy = dc * xy xy = dc * xy
xz = db * xz xz = db * xz
yz = da * yz yz = da * yz
vgl(2,n) = pows(a-1,1) * yz vgl(n,2) = pows(a-1,1) * yz
vgl(3,n) = pows(b-1,2) * xz vgl(n,3) = pows(b-1,2) * xz
vgl(4,n) = pows(c-1,3) * xy vgl(n,4) = pows(c-1,3) * xy
vgl(5,n) = &amp; vgl(n,5) = &amp;
(da-1.d0) * pows(a-2,1) * yz + &amp; (da-1.d0) * pows(a-2,1) * yz + &amp;
(db-1.d0) * pows(b-2,2) * xz + &amp; (db-1.d0) * pows(b-2,2) * xz + &amp;
(dc-1.d0) * pows(c-2,3) * xy (dc-1.d0) * pows(c-2,3) * xy
@ -626,6 +641,13 @@ all polynomials with an angular momentum up to <code>lmax</code>.
dd = dd + 1.d0 dd = dd + 1.d0
end do end do
if (n /= (lmax+1)*(lmax+2)*(lmax+3)/6) then
info = -5
return
endif
info = 0
end function qmckl_ao_polynomial_vgl_f end function qmckl_ao_polynomial_vgl_f
</pre> </pre>
</div> </div>
@ -636,15 +658,201 @@ end function qmckl_ao_polynomial_vgl_f
<div id="outline-container-sec-2" class="outline-2"> <div id="outline-container-sec-2" class="outline-2">
<h2 id="sec-2"><span class="section-number-2">2</span> <span class="todo TODO">TODO</span> Gaussian basis functions</h2> <h2 id="sec-2"><span class="section-number-2">2</span> Gaussian basis functions</h2>
<div class="outline-text-2" id="text-2">
</div><div id="outline-container-sec-2-1" class="outline-3">
<h3 id="sec-2-1"><span class="section-number-3">2.1</span> <code>qmckl_ao_gaussians_vgl</code></h3>
<div class="outline-text-3" id="text-2-1">
<p>
Computes the values, gradients and Laplacians at a given point of
<code>n</code> Gaussian functions centered at the same point:
</p>
<p>
\[ v_i = exp(-a_i |X-R|^2) \]
\[ \nabla_x v_i = -2 a_i (X_x - R_x) v_i \]
\[ \nabla_y v_i = -2 a_i (X_y - R_y) v_i \]
\[ \nabla_z v_i = -2 a_i (X_z - R_z) v_i \]
\[ \Delta v_i = a_i (4 |X-R|^2 a_i - 6) v_i \]
</p>
</div> </div>
<div id="outline-container-sec-2-1-1" class="outline-4">
<h4 id="sec-2-1-1"><span class="section-number-4">2.1.1</span> Arguments</h4>
<div class="outline-text-4" id="text-2-1-1">
<table border="2" cellspacing="0" cellpadding="6" rules="groups" frame="hsides">
<colgroup>
<col class="left" />
<col class="left" />
<col class="left" />
</colgroup>
<tbody>
<tr>
<td class="left"><code>context</code></td>
<td class="left">input</td>
<td class="left">Global state</td>
</tr>
<tr>
<td class="left"><code>X(3)</code></td>
<td class="left">input</td>
<td class="left">Array containing the coordinates of the points</td>
</tr>
<tr>
<td class="left"><code>R(3)</code></td>
<td class="left">input</td>
<td class="left">Array containing the x,y,z coordinates of the center</td>
</tr>
<tr>
<td class="left"><code>n</code></td>
<td class="left">input</td>
<td class="left">Number of computed gaussians</td>
</tr>
<tr>
<td class="left"><code>A(n)</code></td>
<td class="left">input</td>
<td class="left">Exponents of the Gaussians</td>
</tr>
<tr>
<td class="left"><code>VGL(ldv,5)</code></td>
<td class="left">output</td>
<td class="left">Value, gradients and Laplacian of the Gaussians</td>
</tr>
<tr>
<td class="left"><code>ldv</code></td>
<td class="left">input</td>
<td class="left">Leading dimension of array <code>VGL</code></td>
</tr>
</tbody>
</table>
</div>
</div>
<div id="outline-container-sec-2-1-2" class="outline-4">
<h4 id="sec-2-1-2"><span class="section-number-4">2.1.2</span> Requirements</h4>
<div class="outline-text-4" id="text-2-1-2">
<ul class="org-ul">
<li><code>context</code> is not 0
</li>
<li><code>n</code> &gt; 0
</li>
<li><code>ldv</code> &gt;= 5
</li>
<li><code>A(i)</code> &gt; 0 for all <code>i</code>
</li>
<li><code>X</code> is allocated with at least \(3 \times 8\) bytes
</li>
<li><code>R</code> is allocated with at least \(3 \times 8\) bytes
</li>
<li><code>A</code> is allocated with at least \(n \times 8\) bytes
</li>
<li><code>VGL</code> is allocated with at least \(n \times 5 \times 8\) bytes
</li>
</ul>
</div>
</div>
<div id="outline-container-sec-2-1-3" class="outline-4">
<h4 id="sec-2-1-3"><span class="section-number-4">2.1.3</span> Header</h4>
<div class="outline-text-4" id="text-2-1-3">
<div class="org-src-container">
<pre class="src src-C">qmckl_exit_code qmckl_ao_gaussians_vgl(const qmckl_context context,
const double *X, const double *R,
const int64_t *n, const int64_t *A,
const double *VGL, const int64_t ldv);
</pre>
</div>
</div>
</div>
<div id="outline-container-sec-2-1-4" class="outline-4">
<h4 id="sec-2-1-4"><span class="section-number-4">2.1.4</span> Source</h4>
<div class="outline-text-4" id="text-2-1-4">
<div class="org-src-container">
<pre class="src src-f90">integer function qmckl_ao_gaussians_vgl_f(context, X, R, n, A, VGL, ldv) result(info)
implicit none
integer*8 , intent(in) :: context
real*8 , intent(in) :: X(3), R(3)
integer*8 , intent(in) :: n
real*8 , intent(in) :: A(n)
real*8 , intent(out) :: VGL(ldv,5)
integer*8 , intent(in) :: ldv
integer*8 :: i,j
real*8 :: Y(3), r2, t, u, v
info = 0
if (context == 0_8) then
info = -1
return
endif
if (n &lt;= 0) then
info = -2
return
endif
if (ldv &lt; n) then
info = -3
return
endif
do i=1,3
Y(i) = X(i) - R(i)
end do
r2 = Y(1)*Y(1) + Y(2)*Y(2) + Y(3)*Y(3)
do i=1,n
VGL(i,1) = dexp(-A(i) * r2)
end do
do i=1,n
VGL(i,5) = A(i) * VGL(i,1)
end do
t = -2.d0 * ( X(1) - R(1) )
u = -2.d0 * ( X(2) - R(2) )
v = -2.d0 * ( X(3) - R(3) )
do i=1,n
VGL(i,2) = t * VGL(i,5)
VGL(i,3) = u * VGL(i,5)
VGL(i,4) = v * VGL(i,5)
end do
t = 4.d0 * r2
do i=1,n
VGL(i,5) = (t * A(i) - 6.d0) * VGL(i,5)
end do
end function qmckl_ao_gaussians_vgl_f
</pre>
</div>
</div>
</div>
</div>
</div>
<div id="outline-container-sec-3" class="outline-2"> <div id="outline-container-sec-3" class="outline-2">
<h2 id="sec-3"><span class="section-number-2">3</span> <span class="todo TODO">TODO</span> Slater basis functions</h2> <h2 id="sec-3"><span class="section-number-2">3</span> <span class="todo TODO">TODO</span> Slater basis functions</h2>
</div> </div>
</div> </div>
<div id="postamble" class="status"> <div id="postamble" class="status">
<p class="date">Created: 2020-10-31 Sat 18:09</p> <p class="date">Created: 2020-11-04 Wed 23:47</p>
<p class="creator"><a href="http://www.gnu.org/software/emacs/">Emacs</a> 25.2.2 (<a href="http://orgmode.org">Org</a> mode 8.2.10)</p> <p class="creator"><a href="http://www.gnu.org/software/emacs/">Emacs</a> 25.2.2 (<a href="http://orgmode.org">Org</a> mode 8.2.10)</p>
<p class="validation"><a href="http://validator.w3.org/check?uri=referer">Validate</a></p> <p class="validation"><a href="http://validator.w3.org/check?uri=referer">Validate</a></p>
</div> </div>

View File

@ -4,7 +4,7 @@
<html xmlns="http://www.w3.org/1999/xhtml" lang="en" xml:lang="en"> <html xmlns="http://www.w3.org/1999/xhtml" lang="en" xml:lang="en">
<head> <head>
<title>Context</title> <title>Context</title>
<!-- 2020-10-31 Sat 18:09 --> <!-- 2020-11-04 Wed 23:47 -->
<meta http-equiv="Content-Type" content="text/html;charset=utf-8" /> <meta http-equiv="Content-Type" content="text/html;charset=utf-8" />
<meta name="generator" content="Org-mode" /> <meta name="generator" content="Org-mode" />
<style type="text/css"> <style type="text/css">
@ -139,6 +139,48 @@ for the JavaScript code in this tag.
} }
/*]]>*///--> /*]]>*///-->
</script> </script>
<script type="text/javascript" src="http://orgmode.org/mathjax/MathJax.js"></script>
<script type="text/javascript">
<!--/*--><![CDATA[/*><!--*/
MathJax.Hub.Config({
// Only one of the two following lines, depending on user settings
// First allows browser-native MathML display, second forces HTML/CSS
// config: ["MMLorHTML.js"], jax: ["input/TeX"],
jax: ["input/TeX", "output/HTML-CSS"],
extensions: ["tex2jax.js","TeX/AMSmath.js","TeX/AMSsymbols.js",
"TeX/noUndefined.js"],
tex2jax: {
inlineMath: [ ["\\(","\\)"] ],
displayMath: [ ['$$','$$'], ["\\[","\\]"], ["\\begin{displaymath}","\\end{displaymath}"] ],
skipTags: ["script","noscript","style","textarea","pre","code"],
ignoreClass: "tex2jax_ignore",
processEscapes: false,
processEnvironments: true,
preview: "TeX"
},
showProcessingMessages: true,
displayAlign: "center",
displayIndent: "2em",
"HTML-CSS": {
scale: 100,
availableFonts: ["STIX","TeX"],
preferredFont: "TeX",
webFont: "TeX",
imageFont: "TeX",
showMathMenu: true,
},
MMLorHTML: {
prefer: {
MSIE: "MML",
Firefox: "MML",
Opera: "HTML",
other: "HTML"
}
}
});
/*]]>*///-->
</script>
</head> </head>
<body> <body>
<div id="content"> <div id="content">
@ -164,24 +206,28 @@ for the JavaScript code in this tag.
<ul> <ul>
<li><a href="#sec-1-2-1">1.2.1. Header</a></li> <li><a href="#sec-1-2-1">1.2.1. Header</a></li>
<li><a href="#sec-1-2-2">1.2.2. Source</a></li> <li><a href="#sec-1-2-2">1.2.2. Source</a></li>
<li><a href="#sec-1-2-3">1.2.3. Fortran interface</a></li>
</ul> </ul>
</li> </li>
<li><a href="#sec-1-3">1.3. <code>qmckl_context_copy</code></a> <li><a href="#sec-1-3">1.3. <code>qmckl_context_copy</code></a>
<ul> <ul>
<li><a href="#sec-1-3-1">1.3.1. Header</a></li> <li><a href="#sec-1-3-1">1.3.1. Header</a></li>
<li><a href="#sec-1-3-2">1.3.2. Source</a></li> <li><a href="#sec-1-3-2">1.3.2. Source</a></li>
<li><a href="#sec-1-3-3">1.3.3. Fortran interface</a></li>
</ul> </ul>
</li> </li>
<li><a href="#sec-1-4">1.4. <code>qmckl_context_previous</code></a> <li><a href="#sec-1-4">1.4. <code>qmckl_context_previous</code></a>
<ul> <ul>
<li><a href="#sec-1-4-1">1.4.1. Header</a></li> <li><a href="#sec-1-4-1">1.4.1. Header</a></li>
<li><a href="#sec-1-4-2">1.4.2. Source</a></li> <li><a href="#sec-1-4-2">1.4.2. Source</a></li>
<li><a href="#sec-1-4-3">1.4.3. Fortran interface</a></li>
</ul> </ul>
</li> </li>
<li><a href="#sec-1-5">1.5. <code>qmckl_context_destroy</code></a> <li><a href="#sec-1-5">1.5. <code>qmckl_context_destroy</code></a>
<ul> <ul>
<li><a href="#sec-1-5-1">1.5.1. Header</a></li> <li><a href="#sec-1-5-1">1.5.1. Header</a></li>
<li><a href="#sec-1-5-2">1.5.2. Source</a></li> <li><a href="#sec-1-5-2">1.5.2. Source</a></li>
<li><a href="#sec-1-5-3">1.5.3. Fortran interface</a></li>
</ul> </ul>
</li> </li>
</ul> </ul>
@ -192,36 +238,49 @@ for the JavaScript code in this tag.
<ul> <ul>
<li><a href="#sec-2-1-1">2.1.1. Header</a></li> <li><a href="#sec-2-1-1">2.1.1. Header</a></li>
<li><a href="#sec-2-1-2">2.1.2. Source</a></li> <li><a href="#sec-2-1-2">2.1.2. Source</a></li>
<li><a href="#sec-2-1-3">2.1.3. Fortran interface</a></li>
</ul> </ul>
</li> </li>
<li><a href="#sec-2-2">2.2. <code>qmckl_context_update_range</code></a> <li><a href="#sec-2-2">2.2. <code>qmckl_context_update_range</code></a>
<ul> <ul>
<li><a href="#sec-2-2-1">2.2.1. Header</a></li> <li><a href="#sec-2-2-1">2.2.1. Header</a></li>
<li><a href="#sec-2-2-2">2.2.2. Source</a></li> <li><a href="#sec-2-2-2">2.2.2. Source</a></li>
<li><a href="#sec-2-2-3">2.2.3. Fortran interface</a></li>
</ul> </ul>
</li> </li>
<li><a href="#sec-2-3">2.3. <code>qmckl_context_set_precision</code></a> <li><a href="#sec-2-3">2.3. <code>qmckl_context_set_precision</code></a>
<ul> <ul>
<li><a href="#sec-2-3-1">2.3.1. Header</a></li> <li><a href="#sec-2-3-1">2.3.1. Header</a></li>
<li><a href="#sec-2-3-2">2.3.2. Source</a></li> <li><a href="#sec-2-3-2">2.3.2. Source</a></li>
<li><a href="#sec-2-3-3">2.3.3. Fortran interface</a></li>
</ul> </ul>
</li> </li>
<li><a href="#sec-2-4">2.4. <code>qmckl_context_set_range</code></a> <li><a href="#sec-2-4">2.4. <code>qmckl_context_set_range</code></a>
<ul> <ul>
<li><a href="#sec-2-4-1">2.4.1. Header</a></li> <li><a href="#sec-2-4-1">2.4.1. Header</a></li>
<li><a href="#sec-2-4-2">2.4.2. Source</a></li> <li><a href="#sec-2-4-2">2.4.2. Source</a></li>
<li><a href="#sec-2-4-3">2.4.3. Fortran interface</a></li>
</ul> </ul>
</li> </li>
<li><a href="#sec-2-5">2.5. <code>qmckl_context_get_precision</code></a> <li><a href="#sec-2-5">2.5. <code>qmckl_context_get_precision</code></a>
<ul> <ul>
<li><a href="#sec-2-5-1">2.5.1. Header</a></li> <li><a href="#sec-2-5-1">2.5.1. Header</a></li>
<li><a href="#sec-2-5-2">2.5.2. Source</a></li> <li><a href="#sec-2-5-2">2.5.2. Source</a></li>
<li><a href="#sec-2-5-3">2.5.3. Fortran interface</a></li>
</ul> </ul>
</li> </li>
<li><a href="#sec-2-6">2.6. <code>qmckl_context_get_range</code></a> <li><a href="#sec-2-6">2.6. <code>qmckl_context_get_range</code></a>
<ul> <ul>
<li><a href="#sec-2-6-1">2.6.1. Header</a></li> <li><a href="#sec-2-6-1">2.6.1. Header</a></li>
<li><a href="#sec-2-6-2">2.6.2. Source</a></li> <li><a href="#sec-2-6-2">2.6.2. Source</a></li>
<li><a href="#sec-2-6-3">2.6.3. Fortran interface</a></li>
</ul>
</li>
<li><a href="#sec-2-7">2.7. <code>qmckl_context_get_epsilon</code></a>
<ul>
<li><a href="#sec-2-7-1">2.7.1. Header</a></li>
<li><a href="#sec-2-7-2">2.7.2. Source</a></li>
<li><a href="#sec-2-7-3">2.7.3. Fortran interface</a></li>
</ul> </ul>
</li> </li>
</ul> </ul>
@ -316,11 +375,11 @@ Returns the input <code>qmckl_context</code> if the context is valid, 0 otherwis
<div class="org-src-container"> <div class="org-src-container">
<pre class="src src-C">qmckl_context qmckl_context_check(const qmckl_context context) { <pre class="src src-C">qmckl_context qmckl_context_check(const qmckl_context context) {
qmckl_context_struct * ctx;
if (context == (qmckl_context) 0) return (qmckl_context) 0; if (context == (qmckl_context) 0) return (qmckl_context) 0;
ctx = (qmckl_context_struct*) context; const qmckl_context_struct * ctx = (qmckl_context_struct*) context;
if (ctx-&gt;tag != VALID_TAG) return (qmckl_context) 0; if (ctx-&gt;tag != VALID_TAG) return (qmckl_context) 0;
return context; return context;
@ -363,9 +422,8 @@ To create a new context, use <code>qmckl_context_create()</code>.
<pre class="src src-C">qmckl_context qmckl_context_create() { <pre class="src src-C">qmckl_context qmckl_context_create() {
qmckl_context_struct* context; qmckl_context_struct* context =
(qmckl_context_struct*) qmckl_malloc ((qmckl_context) 0, sizeof(qmckl_context_struct));
context = (qmckl_context_struct*) qmckl_malloc ((qmckl_context) 0, sizeof(qmckl_context_struct));
if (context == NULL) { if (context == NULL) {
return (qmckl_context) 0; return (qmckl_context) 0;
} }
@ -381,6 +439,21 @@ To create a new context, use <code>qmckl_context_create()</code>.
</div> </div>
</div> </div>
</div> </div>
<div id="outline-container-sec-1-2-3" class="outline-4">
<h4 id="sec-1-2-3"><span class="section-number-4">1.2.3</span> Fortran interface</h4>
<div class="outline-text-4" id="text-1-2-3">
<div class="org-src-container">
<pre class="src src-f90">interface
integer (c_int64_t) function qmckl_context_create() bind(C)
use, intrinsic :: iso_c_binding
end function qmckl_context_create
end interface
</pre>
</div>
</div>
</div>
</div> </div>
<div id="outline-container-sec-1-3" class="outline-3"> <div id="outline-container-sec-1-3" class="outline-3">
@ -418,23 +491,20 @@ for the new context
<pre class="src src-C">qmckl_context qmckl_context_copy(const qmckl_context context) { <pre class="src src-C">qmckl_context qmckl_context_copy(const qmckl_context context) {
qmckl_context_struct* old_context; const qmckl_context checked_context = qmckl_context_check(context);
qmckl_context_struct* new_context;
qmckl_context checked_context;
checked_context = qmckl_context_check(context);
if (checked_context == (qmckl_context) 0) { if (checked_context == (qmckl_context) 0) {
return (qmckl_context) 0; return (qmckl_context) 0;
} }
new_context = (qmckl_context_struct*) qmckl_malloc (context, sizeof(qmckl_context_struct)); qmckl_context_struct* old_context = (qmckl_context_struct*) checked_context;
qmckl_context_struct* new_context =
(qmckl_context_struct*) qmckl_malloc (context, sizeof(qmckl_context_struct));
if (new_context == NULL) { if (new_context == NULL) {
return (qmckl_context) 0; return (qmckl_context) 0;
} }
old_context = (qmckl_context_struct*) checked_context;
new_context-&gt;prev = old_context; new_context-&gt;prev = old_context;
new_context-&gt;precision = old_context-&gt;precision; new_context-&gt;precision = old_context-&gt;precision;
new_context-&gt;range = old_context-&gt;range; new_context-&gt;range = old_context-&gt;range;
@ -446,6 +516,22 @@ for the new context
</div> </div>
</div> </div>
</div> </div>
<div id="outline-container-sec-1-3-3" class="outline-4">
<h4 id="sec-1-3-3"><span class="section-number-4">1.3.3</span> Fortran interface</h4>
<div class="outline-text-4" id="text-1-3-3">
<div class="org-src-container">
<pre class="src src-f90">interface
integer (c_int64_t) function qmckl_context_copy(context) bind(C)
use, intrinsic :: iso_c_binding
integer (c_int64_t), intent(in), value :: context
end function qmckl_context_copy
end interface
</pre>
</div>
</div>
</div>
</div> </div>
<div id="outline-container-sec-1-4" class="outline-3"> <div id="outline-container-sec-1-4" class="outline-3">
@ -482,21 +568,34 @@ Returns the previous context
<pre class="src src-C">qmckl_context qmckl_context_previous(const qmckl_context context) { <pre class="src src-C">qmckl_context qmckl_context_previous(const qmckl_context context) {
qmckl_context checked_context; const qmckl_context checked_context = qmckl_context_check(context);
qmckl_context_struct* ctx;
checked_context = qmckl_context_check(context);
if (checked_context == (qmckl_context) 0) { if (checked_context == (qmckl_context) 0) {
return (qmckl_context) 0; return (qmckl_context) 0;
} }
ctx = (qmckl_context_struct*) checked_context; const qmckl_context_struct* ctx = (qmckl_context_struct*) checked_context;
return qmckl_context_check((qmckl_context) ctx-&gt;prev); return qmckl_context_check((qmckl_context) ctx-&gt;prev);
} }
</pre> </pre>
</div> </div>
</div> </div>
</div> </div>
<div id="outline-container-sec-1-4-3" class="outline-4">
<h4 id="sec-1-4-3"><span class="section-number-4">1.4.3</span> Fortran interface</h4>
<div class="outline-text-4" id="text-1-4-3">
<div class="org-src-container">
<pre class="src src-f90">interface
integer (c_int64_t) function qmckl_context_previous(context) bind(C)
use, intrinsic :: iso_c_binding
integer (c_int64_t), intent(in), value :: context
end function qmckl_context_previous
end interface
</pre>
</div>
</div>
</div>
</div> </div>
<div id="outline-container-sec-1-5" class="outline-3"> <div id="outline-container-sec-1-5" class="outline-3">
@ -533,15 +632,12 @@ Destroys the current context, leaving the ancestors untouched.
<div class="outline-text-4" id="text-1-5-2"> <div class="outline-text-4" id="text-1-5-2">
<div class="org-src-container"> <div class="org-src-container">
<pre class="src src-C">qmckl_exit_code qmckl_context_destroy(qmckl_context context) { <pre class="src src-C">qmckl_exit_code qmckl_context_destroy(const qmckl_context context) {
qmckl_context_struct* ctx; const qmckl_context checked_context = qmckl_context_check(context);
qmckl_context checked_context;
checked_context = qmckl_context_check(context);
if (checked_context == (qmckl_context) 0) return QMCKL_FAILURE; if (checked_context == (qmckl_context) 0) return QMCKL_FAILURE;
ctx = (qmckl_context_struct*) context; qmckl_context_struct* ctx = (qmckl_context_struct*) context;
if (ctx == NULL) return QMCKL_FAILURE; if (ctx == NULL) return QMCKL_FAILURE;
ctx-&gt;tag = INVALID_TAG; ctx-&gt;tag = INVALID_TAG;
@ -552,6 +648,22 @@ Destroys the current context, leaving the ancestors untouched.
</div> </div>
</div> </div>
</div> </div>
<div id="outline-container-sec-1-5-3" class="outline-4">
<h4 id="sec-1-5-3"><span class="section-number-4">1.5.3</span> Fortran interface</h4>
<div class="outline-text-4" id="text-1-5-3">
<div class="org-src-container">
<pre class="src src-f90">interface
integer (c_int32_t) function qmckl_context_destroy(context) bind(C)
use, intrinsic :: iso_c_binding
integer (c_int64_t), intent(in), value :: context
end function qmckl_context_destroy
end interface
</pre>
</div>
</div>
</div>
</div> </div>
</div> </div>
@ -592,12 +704,11 @@ The update functions return <code>QMCKL_SUCCESS</code> or <code>QMCKL_FAILURE</c
<div class="org-src-container"> <div class="org-src-container">
<pre class="src src-C">qmckl_exit_code qmckl_context_update_precision(const qmckl_context context, const int precision) { <pre class="src src-C">qmckl_exit_code qmckl_context_update_precision(const qmckl_context context, const int precision) {
qmckl_context_struct* ctx;
if (precision &lt; 2) return QMCKL_FAILURE; if (precision &lt; 2) return QMCKL_FAILURE;
if (precision &gt; 53) return QMCKL_FAILURE; if (precision &gt; 53) return QMCKL_FAILURE;
ctx = (qmckl_context_struct*) context; qmckl_context_struct* ctx = (qmckl_context_struct*) context;
if (ctx == NULL) return QMCKL_FAILURE; if (ctx == NULL) return QMCKL_FAILURE;
ctx-&gt;precision = precision; ctx-&gt;precision = precision;
@ -607,6 +718,23 @@ The update functions return <code>QMCKL_SUCCESS</code> or <code>QMCKL_FAILURE</c
</div> </div>
</div> </div>
</div> </div>
<div id="outline-container-sec-2-1-3" class="outline-4">
<h4 id="sec-2-1-3"><span class="section-number-4">2.1.3</span> Fortran interface</h4>
<div class="outline-text-4" id="text-2-1-3">
<div class="org-src-container">
<pre class="src src-f90">interface
integer (c_int32_t) function qmckl_context_update_precision(context, precision) bind(C)
use, intrinsic :: iso_c_binding
integer (c_int64_t), intent(in), value :: context
integer (c_int32_t), intent(in), value :: precision
end function qmckl_context_update_precision
end interface
</pre>
</div>
</div>
</div>
</div> </div>
<div id="outline-container-sec-2-2" class="outline-3"> <div id="outline-container-sec-2-2" class="outline-3">
<h3 id="sec-2-2"><span class="section-number-3">2.2</span> <code>qmckl_context_update_range</code></h3> <h3 id="sec-2-2"><span class="section-number-3">2.2</span> <code>qmckl_context_update_range</code></h3>
@ -628,12 +756,11 @@ The update functions return <code>QMCKL_SUCCESS</code> or <code>QMCKL_FAILURE</c
<div class="org-src-container"> <div class="org-src-container">
<pre class="src src-C">qmckl_exit_code qmckl_context_update_range(const qmckl_context context, const int range) { <pre class="src src-C">qmckl_exit_code qmckl_context_update_range(const qmckl_context context, const int range) {
qmckl_context_struct* ctx;
if (range &lt; 2) return QMCKL_FAILURE; if (range &lt; 2) return QMCKL_FAILURE;
if (range &gt; 11) return QMCKL_FAILURE; if (range &gt; 11) return QMCKL_FAILURE;
ctx = (qmckl_context_struct*) context; qmckl_context_struct* ctx = (qmckl_context_struct*) context;
if (ctx == NULL) return QMCKL_FAILURE; if (ctx == NULL) return QMCKL_FAILURE;
ctx-&gt;range = range; ctx-&gt;range = range;
@ -643,6 +770,23 @@ The update functions return <code>QMCKL_SUCCESS</code> or <code>QMCKL_FAILURE</c
</div> </div>
</div> </div>
</div> </div>
<div id="outline-container-sec-2-2-3" class="outline-4">
<h4 id="sec-2-2-3"><span class="section-number-4">2.2.3</span> Fortran interface</h4>
<div class="outline-text-4" id="text-2-2-3">
<div class="org-src-container">
<pre class="src src-f90">interface
integer (c_int32_t) function qmckl_context_update_range(context, range) bind(C)
use, intrinsic :: iso_c_binding
integer (c_int64_t), intent(in), value :: context
integer (c_int32_t), intent(in), value :: range
end function qmckl_context_update_range
end interface
</pre>
</div>
</div>
</div>
</div> </div>
<div id="outline-container-sec-2-3" class="outline-3"> <div id="outline-container-sec-2-3" class="outline-3">
<h3 id="sec-2-3"><span class="section-number-3">2.3</span> <code>qmckl_context_set_precision</code></h3> <h3 id="sec-2-3"><span class="section-number-3">2.3</span> <code>qmckl_context_set_precision</code></h3>
@ -664,9 +808,7 @@ The update functions return <code>QMCKL_SUCCESS</code> or <code>QMCKL_FAILURE</c
<div class="org-src-container"> <div class="org-src-container">
<pre class="src src-C">qmckl_context qmckl_context_set_precision(const qmckl_context context, const int precision) { <pre class="src src-C">qmckl_context qmckl_context_set_precision(const qmckl_context context, const int precision) {
qmckl_context new_context; qmckl_context new_context = qmckl_context_copy(context);
new_context = qmckl_context_copy(context);
if (new_context == 0) return 0; if (new_context == 0) return 0;
if (qmckl_context_update_precision(context, precision) == QMCKL_FAILURE) return 0; if (qmckl_context_update_precision(context, precision) == QMCKL_FAILURE) return 0;
@ -677,6 +819,23 @@ The update functions return <code>QMCKL_SUCCESS</code> or <code>QMCKL_FAILURE</c
</div> </div>
</div> </div>
</div> </div>
<div id="outline-container-sec-2-3-3" class="outline-4">
<h4 id="sec-2-3-3"><span class="section-number-4">2.3.3</span> Fortran interface</h4>
<div class="outline-text-4" id="text-2-3-3">
<div class="org-src-container">
<pre class="src src-f90">interface
integer (c_int32_t) function qmckl_context_set_precision(context, precision) bind(C)
use, intrinsic :: iso_c_binding
integer (c_int64_t), intent(in), value :: context
integer (c_int32_t), intent(in), value :: precision
end function qmckl_context_set_precision
end interface
</pre>
</div>
</div>
</div>
</div> </div>
<div id="outline-container-sec-2-4" class="outline-3"> <div id="outline-container-sec-2-4" class="outline-3">
<h3 id="sec-2-4"><span class="section-number-3">2.4</span> <code>qmckl_context_set_range</code></h3> <h3 id="sec-2-4"><span class="section-number-3">2.4</span> <code>qmckl_context_set_range</code></h3>
@ -698,9 +857,7 @@ The update functions return <code>QMCKL_SUCCESS</code> or <code>QMCKL_FAILURE</c
<div class="org-src-container"> <div class="org-src-container">
<pre class="src src-C">qmckl_context qmckl_context_set_range(const qmckl_context context, const int range) { <pre class="src src-C">qmckl_context qmckl_context_set_range(const qmckl_context context, const int range) {
qmckl_context new_context; qmckl_context new_context = qmckl_context_copy(context);
new_context = qmckl_context_copy(context);
if (new_context == 0) return 0; if (new_context == 0) return 0;
if (qmckl_context_update_range(context, range) == QMCKL_FAILURE) return 0; if (qmckl_context_update_range(context, range) == QMCKL_FAILURE) return 0;
@ -711,6 +868,23 @@ The update functions return <code>QMCKL_SUCCESS</code> or <code>QMCKL_FAILURE</c
</div> </div>
</div> </div>
</div> </div>
<div id="outline-container-sec-2-4-3" class="outline-4">
<h4 id="sec-2-4-3"><span class="section-number-4">2.4.3</span> Fortran interface</h4>
<div class="outline-text-4" id="text-2-4-3">
<div class="org-src-container">
<pre class="src src-f90">interface
integer (c_int32_t) function qmckl_context_set_range(context, range) bind(C)
use, intrinsic :: iso_c_binding
integer (c_int64_t), intent(in), value :: context
integer (c_int32_t), intent(in), value :: range
end function qmckl_context_set_range
end interface
</pre>
</div>
</div>
</div>
</div> </div>
<div id="outline-container-sec-2-5" class="outline-3"> <div id="outline-container-sec-2-5" class="outline-3">
@ -721,7 +895,7 @@ The update functions return <code>QMCKL_SUCCESS</code> or <code>QMCKL_FAILURE</c
<div class="outline-text-4" id="text-2-5-1"> <div class="outline-text-4" id="text-2-5-1">
<div class="org-src-container"> <div class="org-src-container">
<pre class="src src-C">int qmckl_context_get_precision(const qmckl_context context); <pre class="src src-C">int32_t qmckl_context_get_precision(const qmckl_context context);
</pre> </pre>
</div> </div>
</div> </div>
@ -733,14 +907,29 @@ The update functions return <code>QMCKL_SUCCESS</code> or <code>QMCKL_FAILURE</c
<div class="org-src-container"> <div class="org-src-container">
<pre class="src src-C">int qmckl_context_get_precision(const qmckl_context context) { <pre class="src src-C">int qmckl_context_get_precision(const qmckl_context context) {
qmckl_context_struct* ctx; const qmckl_context_struct* ctx = (qmckl_context_struct*) context;
ctx = (qmckl_context_struct*) context;
return ctx-&gt;precision; return ctx-&gt;precision;
} }
</pre> </pre>
</div> </div>
</div> </div>
</div> </div>
<div id="outline-container-sec-2-5-3" class="outline-4">
<h4 id="sec-2-5-3"><span class="section-number-4">2.5.3</span> Fortran interface</h4>
<div class="outline-text-4" id="text-2-5-3">
<div class="org-src-container">
<pre class="src src-f90">interface
integer (c_int32_t) function qmckl_context_get_precision(context) bind(C)
use, intrinsic :: iso_c_binding
integer (c_int64_t), intent(in), value :: context
end function qmckl_context_get_precision
end interface
</pre>
</div>
</div>
</div>
</div> </div>
<div id="outline-container-sec-2-6" class="outline-3"> <div id="outline-container-sec-2-6" class="outline-3">
<h3 id="sec-2-6"><span class="section-number-3">2.6</span> <code>qmckl_context_get_range</code></h3> <h3 id="sec-2-6"><span class="section-number-3">2.6</span> <code>qmckl_context_get_range</code></h3>
@ -750,7 +939,7 @@ The update functions return <code>QMCKL_SUCCESS</code> or <code>QMCKL_FAILURE</c
<div class="outline-text-4" id="text-2-6-1"> <div class="outline-text-4" id="text-2-6-1">
<div class="org-src-container"> <div class="org-src-container">
<pre class="src src-C">int qmckl_context_get_range(const qmckl_context context); <pre class="src src-C">int32_t qmckl_context_get_range(const qmckl_context context);
</pre> </pre>
</div> </div>
</div> </div>
@ -762,17 +951,80 @@ The update functions return <code>QMCKL_SUCCESS</code> or <code>QMCKL_FAILURE</c
<div class="org-src-container"> <div class="org-src-container">
<pre class="src src-C">int qmckl_context_get_range(const qmckl_context context) { <pre class="src src-C">int qmckl_context_get_range(const qmckl_context context) {
qmckl_context_struct* ctx; const qmckl_context_struct* ctx = (qmckl_context_struct*) context;
ctx = (qmckl_context_struct*) context;
return ctx-&gt;range; return ctx-&gt;range;
} }
</pre> </pre>
</div> </div>
</div> </div>
</div> </div>
<div id="outline-container-sec-2-6-3" class="outline-4">
<h4 id="sec-2-6-3"><span class="section-number-4">2.6.3</span> Fortran interface</h4>
<div class="outline-text-4" id="text-2-6-3">
<div class="org-src-container">
<pre class="src src-f90">interface
integer (c_int32_t) function qmckl_context_get_range(context) bind(C)
use, intrinsic :: iso_c_binding
integer (c_int64_t), intent(in), value :: context
end function qmckl_context_get_range
end interface
</pre>
</div>
</div>
</div> </div>
</div> </div>
<div id="outline-container-sec-2-7" class="outline-3">
<h3 id="sec-2-7"><span class="section-number-3">2.7</span> <code>qmckl_context_get_epsilon</code></h3>
<div class="outline-text-3" id="text-2-7">
<p>
Returns \(\epsilon = 2 / \log_{10} 2^{n-1}\) where <code>n</code> is the precision
</p>
</div>
<div id="outline-container-sec-2-7-1" class="outline-4">
<h4 id="sec-2-7-1"><span class="section-number-4">2.7.1</span> Header</h4>
<div class="outline-text-4" id="text-2-7-1">
<div class="org-src-container">
<pre class="src src-C">double qmckl_context_get_epsilon(const qmckl_context context);
</pre>
</div>
</div>
</div>
<div id="outline-container-sec-2-7-2" class="outline-4">
<h4 id="sec-2-7-2"><span class="section-number-4">2.7.2</span> Source</h4>
<div class="outline-text-4" id="text-2-7-2">
<div class="org-src-container">
<pre class="src src-C">double qmckl_context_get_epsilon(const qmckl_context context) {
const qmckl_context_struct* ctx = (qmckl_context_struct*) context;
return 1.0 / ((double) ((int64_t) 1 &lt;&lt; (ctx-&gt;precision-1)));
}
</pre>
</div>
</div>
</div>
<div id="outline-container-sec-2-7-3" class="outline-4">
<h4 id="sec-2-7-3"><span class="section-number-4">2.7.3</span> Fortran interface</h4>
<div class="outline-text-4" id="text-2-7-3">
<div class="org-src-container">
<pre class="src src-f90">interface
real (c_double) function qmckl_context_get_epsilon(context) bind(C)
use, intrinsic :: iso_c_binding
integer (c_int64_t), intent(in), value :: context
end function qmckl_context_get_epsilon
end interface
</pre>
</div>
</div>
</div>
</div>
</div>
<div id="outline-container-sec-3" class="outline-2"> <div id="outline-container-sec-3" class="outline-2">
<h2 id="sec-3"><span class="section-number-2">3</span> Info about the molecular system</h2> <h2 id="sec-3"><span class="section-number-2">3</span> Info about the molecular system</h2>
@ -789,7 +1041,7 @@ The update functions return <code>QMCKL_SUCCESS</code> or <code>QMCKL_FAILURE</c
</div> </div>
</div> </div>
<div id="postamble" class="status"> <div id="postamble" class="status">
<p class="date">Created: 2020-10-31 Sat 18:09</p> <p class="date">Created: 2020-11-04 Wed 23:47</p>
<p class="creator"><a href="http://www.gnu.org/software/emacs/">Emacs</a> 25.2.2 (<a href="http://orgmode.org">Org</a> mode 8.2.10)</p> <p class="creator"><a href="http://www.gnu.org/software/emacs/">Emacs</a> 25.2.2 (<a href="http://orgmode.org">Org</a> mode 8.2.10)</p>
<p class="validation"><a href="http://validator.w3.org/check?uri=referer">Validate</a></p> <p class="validation"><a href="http://validator.w3.org/check?uri=referer">Validate</a></p>
</div> </div>

View File

@ -4,7 +4,7 @@
<html xmlns="http://www.w3.org/1999/xhtml" lang="en" xml:lang="en"> <html xmlns="http://www.w3.org/1999/xhtml" lang="en" xml:lang="en">
<head> <head>
<title>Computation of distances</title> <title>Computation of distances</title>
<!-- 2020-10-31 Sat 18:09 --> <!-- 2020-11-04 Wed 23:47 -->
<meta http-equiv="Content-Type" content="text/html;charset=utf-8" /> <meta http-equiv="Content-Type" content="text/html;charset=utf-8" />
<meta name="generator" content="Org-mode" /> <meta name="generator" content="Org-mode" />
<style type="text/css"> <style type="text/css">
@ -515,7 +515,7 @@ end function qmckl_distance_sq_f
</div> </div>
</div> </div>
<div id="postamble" class="status"> <div id="postamble" class="status">
<p class="date">Created: 2020-10-31 Sat 18:09</p> <p class="date">Created: 2020-11-04 Wed 23:47</p>
<p class="creator"><a href="http://www.gnu.org/software/emacs/">Emacs</a> 25.2.2 (<a href="http://orgmode.org">Org</a> mode 8.2.10)</p> <p class="creator"><a href="http://www.gnu.org/software/emacs/">Emacs</a> 25.2.2 (<a href="http://orgmode.org">Org</a> mode 8.2.10)</p>
<p class="validation"><a href="http://validator.w3.org/check?uri=referer">Validate</a></p> <p class="validation"><a href="http://validator.w3.org/check?uri=referer">Validate</a></p>
</div> </div>

View File

@ -4,7 +4,7 @@
<html xmlns="http://www.w3.org/1999/xhtml" lang="en" xml:lang="en"> <html xmlns="http://www.w3.org/1999/xhtml" lang="en" xml:lang="en">
<head> <head>
<title>Memory management</title> <title>Memory management</title>
<!-- 2020-10-31 Sat 18:09 --> <!-- 2020-11-04 Wed 23:47 -->
<meta http-equiv="Content-Type" content="text/html;charset=utf-8" /> <meta http-equiv="Content-Type" content="text/html;charset=utf-8" />
<meta name="generator" content="Org-mode" /> <meta name="generator" content="Org-mode" />
<style type="text/css"> <style type="text/css">
@ -244,7 +244,7 @@ Analogous of <code>malloc, but passing a context and a signed 64-bit integers as
</div> </div>
</div> </div>
<div id="postamble" class="status"> <div id="postamble" class="status">
<p class="date">Created: 2020-10-31 Sat 18:09</p> <p class="date">Created: 2020-11-04 Wed 23:47</p>
<p class="creator"><a href="http://www.gnu.org/software/emacs/">Emacs</a> 25.2.2 (<a href="http://orgmode.org">Org</a> mode 8.2.10)</p> <p class="creator"><a href="http://www.gnu.org/software/emacs/">Emacs</a> 25.2.2 (<a href="http://orgmode.org">Org</a> mode 8.2.10)</p>
<p class="validation"><a href="http://validator.w3.org/check?uri=referer">Validate</a></p> <p class="validation"><a href="http://validator.w3.org/check?uri=referer">Validate</a></p>
</div> </div>

View File

@ -4,7 +4,7 @@
<html xmlns="http://www.w3.org/1999/xhtml" lang="en" xml:lang="en"> <html xmlns="http://www.w3.org/1999/xhtml" lang="en" xml:lang="en">
<head> <head>
<title>QMCkl test</title> <title>QMCkl test</title>
<!-- 2020-10-31 Sat 18:09 --> <!-- 2020-11-04 Wed 23:47 -->
<meta http-equiv="Content-Type" content="text/html;charset=utf-8" /> <meta http-equiv="Content-Type" content="text/html;charset=utf-8" />
<meta name="generator" content="Org-mode" /> <meta name="generator" content="Org-mode" />
<style type="text/css"> <style type="text/css">
@ -229,7 +229,7 @@ int main(int argc, char* argv[MUNIT_ARRAY_PARAM(argc + 1)]) {
</div> </div>
</div> </div>
<div id="postamble" class="status"> <div id="postamble" class="status">
<p class="date">Created: 2020-10-31 Sat 18:09</p> <p class="date">Created: 2020-11-04 Wed 23:47</p>
<p class="creator"><a href="http://www.gnu.org/software/emacs/">Emacs</a> 25.2.2 (<a href="http://orgmode.org">Org</a> mode 8.2.10)</p> <p class="creator"><a href="http://www.gnu.org/software/emacs/">Emacs</a> 25.2.2 (<a href="http://orgmode.org">Org</a> mode 8.2.10)</p>
<p class="validation"><a href="http://validator.w3.org/check?uri=referer">Validate</a></p> <p class="validation"><a href="http://validator.w3.org/check?uri=referer">Validate</a></p>
</div> </div>