1
0
mirror of https://github.com/TREX-CoE/qmckl.git synced 2024-07-22 10:47:45 +02:00

Deploying to gh-pages from @ TREX-CoE/qmckl@e2e46d0714 🚀

This commit is contained in:
scemama 2021-04-29 23:28:23 +00:00
parent c938ea2855
commit fba61aaa66
13 changed files with 326 additions and 1367 deletions

1
.gitignore vendored
View File

@ -1 +0,0 @@
*.txt

View File

@ -3,12 +3,11 @@
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<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>
<!-- 2021-04-28 Wed 11:30 --> <!-- 2021-04-29 Thu 23:28 -->
<meta http-equiv="Content-Type" content="text/html;charset=utf-8" /> <meta http-equiv="Content-Type" content="text/html;charset=utf-8" />
<meta name="viewport" content="width=device-width, initial-scale=1" /> <meta name="viewport" content="width=device-width, initial-scale=1" />
<title>QMCkl source code documentation</title> <title>QMCkl source code documentation</title>
<meta name="generator" content="Org mode" /> <meta name="generator" content="Org mode" />
<meta name="author" content="TREX CoE" />
<style type="text/css"> <style type="text/css">
<!--/*--><![CDATA[/*><!--*/ <!--/*--><![CDATA[/*><!--*/
.title { text-align: center; .title { text-align: center;
@ -180,79 +179,6 @@
.org-svg { width: 90%; } .org-svg { width: 90%; }
/*]]>*/--> /*]]>*/-->
</style> </style>
<link rel="stylesheet" title="Standard" href="qmckl.css" type="text/css" />
<script type="text/javascript" src="org-info.js">
/**
*
* @source: org-info.js
*
* @licstart The following is the entire license notice for the
* JavaScript code in org-info.js.
*
* Copyright (C) 2012-2019 Free Software Foundation, Inc.
*
*
* The JavaScript code in this tag is free software: you can
* redistribute it and/or modify it under the terms of the GNU
* General Public License (GNU GPL) as published by the Free Software
* Foundation, either version 3 of the License, or (at your option)
* any later version. The code is distributed WITHOUT ANY WARRANTY;
* without even the implied warranty of MERCHANTABILITY or FITNESS
* FOR A PARTICULAR PURPOSE. See the GNU GPL for more details.
*
* As additional permission under GNU GPL version 3 section 7, you
* may distribute non-source (e.g., minimized or compacted) forms of
* that code without the copy of the GNU GPL normally required by
* section 4, provided you include this license notice and a URL
* through which recipients can access the Corresponding Source.
*
* @licend The above is the entire license notice
* for the JavaScript code in org-info.js.
*
*/
</script>
<script type="text/javascript">
/*
@licstart The following is the entire license notice for the
JavaScript code in this tag.
Copyright (C) 2012-2019 Free Software Foundation, Inc.
The JavaScript code in this tag is free software: you can
redistribute it and/or modify it under the terms of the GNU
General Public License (GNU GPL) as published by the Free Software
Foundation, either version 3 of the License, or (at your option)
any later version. The code is distributed WITHOUT ANY WARRANTY;
without even the implied warranty of MERCHANTABILITY or FITNESS
FOR A PARTICULAR PURPOSE. See the GNU GPL for more details.
As additional permission under GNU GPL version 3 section 7, you
may distribute non-source (e.g., minimized or compacted) forms of
that code without the copy of the GNU GPL normally required by
section 4, provided you include this license notice and a URL
through which recipients can access the Corresponding Source.
@licend The above is the entire license notice
for the JavaScript code in this tag.
*/
<!--/*--><![CDATA[/*><!--*/
org_html_manager.set("TOC_DEPTH", "4");
org_html_manager.set("LINK_HOME", "index.html");
org_html_manager.set("LINK_UP", "");
org_html_manager.set("LOCAL_TOC", "1");
org_html_manager.set("VIEW_BUTTONS", "0");
org_html_manager.set("MOUSE_HINT", "underline");
org_html_manager.set("FIXED_TOC", "0");
org_html_manager.set("TOC", "1");
org_html_manager.set("VIEW", "info");
org_html_manager.setup(); // activate after the parameters are set
/*]]>*///-->
</script>
<script type="text/javascript"> <script type="text/javascript">
/* /*
@licstart The following is the entire license notice for the @licstart The following is the entire license notice for the
@ -301,11 +227,7 @@ for the JavaScript code in this tag.
</script> </script>
</head> </head>
<body> <body>
<div id="org-div-home-and-up"> <div id="content">
<a accesskey="h" href=""> UP </a>
|
<a accesskey="H" href="index.html"> HOME </a>
</div><div id="content">
<h1 class="title">QMCkl source code documentation</h1> <h1 class="title">QMCkl source code documentation</h1>
<hr /> <hr />
@ -348,8 +270,7 @@ and bug reports should be submitted at
</p> </p>
</div> </div>
<div id="postamble" class="status"> <div id="postamble" class="status">
<p class="author">Author: TREX CoE</p> <p class="date">Created: 2021-04-29 Thu 23:28</p>
<p class="date">Created: 2021-04-28 Wed 11:30</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>
</body> </body>

View File

@ -3,12 +3,11 @@
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<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>
<!-- 2021-04-28 Wed 11:30 --> <!-- 2021-04-29 Thu 23:28 -->
<meta http-equiv="Content-Type" content="text/html;charset=utf-8" /> <meta http-equiv="Content-Type" content="text/html;charset=utf-8" />
<meta name="viewport" content="width=device-width, initial-scale=1" /> <meta name="viewport" content="width=device-width, initial-scale=1" />
<title>QMCkl source code documentation</title> <title>QMCkl source code documentation</title>
<meta name="generator" content="Org mode" /> <meta name="generator" content="Org mode" />
<meta name="author" content="TREX CoE" />
<style type="text/css"> <style type="text/css">
<!--/*--><![CDATA[/*><!--*/ <!--/*--><![CDATA[/*><!--*/
.title { text-align: center; .title { text-align: center;
@ -180,79 +179,6 @@
.org-svg { width: 90%; } .org-svg { width: 90%; }
/*]]>*/--> /*]]>*/-->
</style> </style>
<link rel="stylesheet" title="Standard" href="qmckl.css" type="text/css" />
<script type="text/javascript" src="org-info.js">
/**
*
* @source: org-info.js
*
* @licstart The following is the entire license notice for the
* JavaScript code in org-info.js.
*
* Copyright (C) 2012-2019 Free Software Foundation, Inc.
*
*
* The JavaScript code in this tag is free software: you can
* redistribute it and/or modify it under the terms of the GNU
* General Public License (GNU GPL) as published by the Free Software
* Foundation, either version 3 of the License, or (at your option)
* any later version. The code is distributed WITHOUT ANY WARRANTY;
* without even the implied warranty of MERCHANTABILITY or FITNESS
* FOR A PARTICULAR PURPOSE. See the GNU GPL for more details.
*
* As additional permission under GNU GPL version 3 section 7, you
* may distribute non-source (e.g., minimized or compacted) forms of
* that code without the copy of the GNU GPL normally required by
* section 4, provided you include this license notice and a URL
* through which recipients can access the Corresponding Source.
*
* @licend The above is the entire license notice
* for the JavaScript code in org-info.js.
*
*/
</script>
<script type="text/javascript">
/*
@licstart The following is the entire license notice for the
JavaScript code in this tag.
Copyright (C) 2012-2019 Free Software Foundation, Inc.
The JavaScript code in this tag is free software: you can
redistribute it and/or modify it under the terms of the GNU
General Public License (GNU GPL) as published by the Free Software
Foundation, either version 3 of the License, or (at your option)
any later version. The code is distributed WITHOUT ANY WARRANTY;
without even the implied warranty of MERCHANTABILITY or FITNESS
FOR A PARTICULAR PURPOSE. See the GNU GPL for more details.
As additional permission under GNU GPL version 3 section 7, you
may distribute non-source (e.g., minimized or compacted) forms of
that code without the copy of the GNU GPL normally required by
section 4, provided you include this license notice and a URL
through which recipients can access the Corresponding Source.
@licend The above is the entire license notice
for the JavaScript code in this tag.
*/
<!--/*--><![CDATA[/*><!--*/
org_html_manager.set("TOC_DEPTH", "4");
org_html_manager.set("LINK_HOME", "index.html");
org_html_manager.set("LINK_UP", "");
org_html_manager.set("LOCAL_TOC", "1");
org_html_manager.set("VIEW_BUTTONS", "0");
org_html_manager.set("MOUSE_HINT", "underline");
org_html_manager.set("FIXED_TOC", "0");
org_html_manager.set("TOC", "1");
org_html_manager.set("VIEW", "info");
org_html_manager.setup(); // activate after the parameters are set
/*]]>*///-->
</script>
<script type="text/javascript"> <script type="text/javascript">
/* /*
@licstart The following is the entire license notice for the @licstart The following is the entire license notice for the
@ -301,11 +227,7 @@ for the JavaScript code in this tag.
</script> </script>
</head> </head>
<body> <body>
<div id="org-div-home-and-up"> <div id="content">
<a accesskey="h" href=""> UP </a>
|
<a accesskey="H" href="index.html"> HOME </a>
</div><div id="content">
<h1 class="title">QMCkl source code documentation</h1> <h1 class="title">QMCkl source code documentation</h1>
<hr /> <hr />
@ -348,8 +270,7 @@ and bug reports should be submitted at
</p> </p>
</div> </div>
<div id="postamble" class="status"> <div id="postamble" class="status">
<p class="author">Author: TREX CoE</p> <p class="date">Created: 2021-04-29 Thu 23:28</p>
<p class="date">Created: 2021-04-28 Wed 11:30</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>
</body> </body>

View File

@ -3,12 +3,11 @@
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<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>
<!-- 2021-04-28 Wed 11:30 --> <!-- 2021-04-29 Thu 23:28 -->
<meta http-equiv="Content-Type" content="text/html;charset=utf-8" /> <meta http-equiv="Content-Type" content="text/html;charset=utf-8" />
<meta name="viewport" content="width=device-width, initial-scale=1" /> <meta name="viewport" content="width=device-width, initial-scale=1" />
<title>Introduction</title> <title>Introduction</title>
<meta name="generator" content="Org mode" /> <meta name="generator" content="Org mode" />
<meta name="author" content="TREX CoE" />
<style type="text/css"> <style type="text/css">
<!--/*--><![CDATA[/*><!--*/ <!--/*--><![CDATA[/*><!--*/
.title { text-align: center; .title { text-align: center;
@ -180,79 +179,6 @@
.org-svg { width: 90%; } .org-svg { width: 90%; }
/*]]>*/--> /*]]>*/-->
</style> </style>
<link rel="stylesheet" title="Standard" href="qmckl.css" type="text/css" />
<script type="text/javascript" src="org-info.js">
/**
*
* @source: org-info.js
*
* @licstart The following is the entire license notice for the
* JavaScript code in org-info.js.
*
* Copyright (C) 2012-2019 Free Software Foundation, Inc.
*
*
* The JavaScript code in this tag is free software: you can
* redistribute it and/or modify it under the terms of the GNU
* General Public License (GNU GPL) as published by the Free Software
* Foundation, either version 3 of the License, or (at your option)
* any later version. The code is distributed WITHOUT ANY WARRANTY;
* without even the implied warranty of MERCHANTABILITY or FITNESS
* FOR A PARTICULAR PURPOSE. See the GNU GPL for more details.
*
* As additional permission under GNU GPL version 3 section 7, you
* may distribute non-source (e.g., minimized or compacted) forms of
* that code without the copy of the GNU GPL normally required by
* section 4, provided you include this license notice and a URL
* through which recipients can access the Corresponding Source.
*
* @licend The above is the entire license notice
* for the JavaScript code in org-info.js.
*
*/
</script>
<script type="text/javascript">
/*
@licstart The following is the entire license notice for the
JavaScript code in this tag.
Copyright (C) 2012-2019 Free Software Foundation, Inc.
The JavaScript code in this tag is free software: you can
redistribute it and/or modify it under the terms of the GNU
General Public License (GNU GPL) as published by the Free Software
Foundation, either version 3 of the License, or (at your option)
any later version. The code is distributed WITHOUT ANY WARRANTY;
without even the implied warranty of MERCHANTABILITY or FITNESS
FOR A PARTICULAR PURPOSE. See the GNU GPL for more details.
As additional permission under GNU GPL version 3 section 7, you
may distribute non-source (e.g., minimized or compacted) forms of
that code without the copy of the GNU GPL normally required by
section 4, provided you include this license notice and a URL
through which recipients can access the Corresponding Source.
@licend The above is the entire license notice
for the JavaScript code in this tag.
*/
<!--/*--><![CDATA[/*><!--*/
org_html_manager.set("TOC_DEPTH", "4");
org_html_manager.set("LINK_HOME", "index.html");
org_html_manager.set("LINK_UP", "");
org_html_manager.set("LOCAL_TOC", "1");
org_html_manager.set("VIEW_BUTTONS", "0");
org_html_manager.set("MOUSE_HINT", "underline");
org_html_manager.set("FIXED_TOC", "0");
org_html_manager.set("TOC", "1");
org_html_manager.set("VIEW", "info");
org_html_manager.setup(); // activate after the parameters are set
/*]]>*///-->
</script>
<script type="text/javascript"> <script type="text/javascript">
/* /*
@licstart The following is the entire license notice for the @licstart The following is the entire license notice for the
@ -323,40 +249,36 @@ for the JavaScript code in this tag.
src="https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.0/MathJax.js?config=TeX-AMS_HTML"></script> src="https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.0/MathJax.js?config=TeX-AMS_HTML"></script>
</head> </head>
<body> <body>
<div id="org-div-home-and-up"> <div id="content">
<a accesskey="h" href=""> UP </a>
|
<a accesskey="H" href="index.html"> HOME </a>
</div><div id="content">
<h1 class="title">Introduction</h1> <h1 class="title">Introduction</h1>
<div id="table-of-contents"> <div id="table-of-contents">
<h2>Table of Contents</h2> <h2>Table of Contents</h2>
<div id="text-table-of-contents"> <div id="text-table-of-contents">
<ul> <ul>
<li><a href="#orgb4425b2">1. Using QMCkl</a></li> <li><a href="#org3e0149a">1. Using QMCkl</a></li>
<li><a href="#org1737381">2. Developing in QMCkl</a> <li><a href="#org9b845d5">2. Developing in QMCkl</a>
<ul> <ul>
<li><a href="#org5b75e12">2.1. Literate programming</a></li> <li><a href="#orgb64898a">2.1. Literate programming</a></li>
<li><a href="#org5838277">2.2. Source code editing</a></li> <li><a href="#orge108c51">2.2. Source code editing</a></li>
<li><a href="#org9bed5f7">2.3. Choice of the programming language</a></li> <li><a href="#org0b3a47c">2.3. Choice of the programming language</a></li>
<li><a href="#org7a97eb2">2.4. Coding rules</a></li> <li><a href="#org084dfc6">2.4. Coding rules</a></li>
<li><a href="#org9e047bf">2.5. Design of the library</a></li> <li><a href="#orge7daa03">2.5. Design of the library</a></li>
<li><a href="#orgd922e9c">2.6. Naming conventions</a></li> <li><a href="#orgc5c3c7b">2.6. Naming conventions</a></li>
<li><a href="#orgdd4de4b">2.7. Application programming interface</a></li> <li><a href="#orgc4f250e">2.7. Application programming interface</a></li>
<li><a href="#orgc4e27dc">2.8. Global state</a></li> <li><a href="#orgf35703b">2.8. Global state</a></li>
<li><a href="#org21cbcd0">2.9. Headers</a></li> <li><a href="#org88ee144">2.9. Headers</a></li>
<li><a href="#orgfab3614">2.10. Low-level functions</a></li> <li><a href="#org4f96947">2.10. Low-level functions</a></li>
<li><a href="#org92b2c80">2.11. High-level functions</a></li> <li><a href="#org3abcfa1">2.11. High-level functions</a></li>
<li><a href="#org539099d">2.12. Numerical precision</a></li> <li><a href="#orga7a1fee">2.12. Numerical precision</a></li>
<li><a href="#org86e4cd8">2.13. Algorithms</a></li> <li><a href="#org1795a61">2.13. Algorithms</a></li>
</ul> </ul>
</li> </li>
</ul> </ul>
</div> </div>
</div> </div>
<div id="outline-container-orgb4425b2" class="outline-2"> <div id="outline-container-org3e0149a" class="outline-2">
<h2 id="orgb4425b2"><span class="section-number-2">1</span> Using QMCkl</h2> <h2 id="org3e0149a"><span class="section-number-2">1</span> Using QMCkl</h2>
<div class="outline-text-2" id="text-1"> <div class="outline-text-2" id="text-1">
<p> <p>
The <code>qmckl.h</code> header file installed in the <code>${prefix}/include</code> directory The <code>qmckl.h</code> header file installed in the <code>${prefix}/include</code> directory
@ -385,12 +307,12 @@ Both files are located in the <code>include/</code> directory.
</div> </div>
</div> </div>
<div id="outline-container-org1737381" class="outline-2"> <div id="outline-container-org9b845d5" class="outline-2">
<h2 id="org1737381"><span class="section-number-2">2</span> Developing in QMCkl</h2> <h2 id="org9b845d5"><span class="section-number-2">2</span> Developing in QMCkl</h2>
<div class="outline-text-2" id="text-2"> <div class="outline-text-2" id="text-2">
</div> </div>
<div id="outline-container-org5b75e12" class="outline-3"> <div id="outline-container-orgb64898a" class="outline-3">
<h3 id="org5b75e12"><span class="section-number-3">2.1</span> Literate programming</h3> <h3 id="orgb64898a"><span class="section-number-3">2.1</span> Literate programming</h3>
<div class="outline-text-3" id="text-2-1"> <div class="outline-text-3" id="text-2-1">
<p> <p>
In a traditional source code, most of the lines of source files of a program In a traditional source code, most of the lines of source files of a program
@ -435,8 +357,8 @@ interactively, in the same spirit as Jupyter notebooks.
</div> </div>
</div> </div>
<div id="outline-container-org5838277" class="outline-3"> <div id="outline-container-orge108c51" class="outline-3">
<h3 id="org5838277"><span class="section-number-3">2.2</span> Source code editing</h3> <h3 id="orge108c51"><span class="section-number-3">2.2</span> Source code editing</h3>
<div class="outline-text-3" id="text-2-2"> <div class="outline-text-3" id="text-2-2">
<p> <p>
For a tutorial on literate programming with org-mode, follow <a href="http://www.howardism.org/Technical/Emacs/literate-programming-tutorial.html">this link</a>. For a tutorial on literate programming with org-mode, follow <a href="http://www.howardism.org/Technical/Emacs/literate-programming-tutorial.html">this link</a>.
@ -467,8 +389,8 @@ org-mode.
</div> </div>
</div> </div>
<div id="outline-container-org9bed5f7" class="outline-3"> <div id="outline-container-org0b3a47c" class="outline-3">
<h3 id="org9bed5f7"><span class="section-number-3">2.3</span> Choice of the programming language</h3> <h3 id="org0b3a47c"><span class="section-number-3">2.3</span> Choice of the programming language</h3>
<div class="outline-text-3" id="text-2-3"> <div class="outline-text-3" id="text-2-3">
<p> <p>
Most of the codes of the <a href="https://trex-coe.eu">TREX CoE</a> are written in Fortran with some scripts in Most of the codes of the <a href="https://trex-coe.eu">TREX CoE</a> are written in Fortran with some scripts in
@ -516,8 +438,8 @@ For more guidelines on using Fortran to generate a C interface, see
</div> </div>
</div> </div>
<div id="outline-container-org7a97eb2" class="outline-3"> <div id="outline-container-org084dfc6" class="outline-3">
<h3 id="org7a97eb2"><span class="section-number-3">2.4</span> Coding rules</h3> <h3 id="org084dfc6"><span class="section-number-3">2.4</span> Coding rules</h3>
<div class="outline-text-3" id="text-2-4"> <div class="outline-text-3" id="text-2-4">
<p> <p>
The authors should follow the recommendations of the C99 The authors should follow the recommendations of the C99
@ -535,8 +457,8 @@ Compliance can be checked with <code>cppcheck</code> as:
</div> </div>
</div> </div>
<div id="outline-container-org9e047bf" class="outline-3"> <div id="outline-container-orge7daa03" class="outline-3">
<h3 id="org9e047bf"><span class="section-number-3">2.5</span> Design of the library</h3> <h3 id="orge7daa03"><span class="section-number-3">2.5</span> Design of the library</h3>
<div class="outline-text-3" id="text-2-5"> <div class="outline-text-3" id="text-2-5">
<p> <p>
The proposed API should allow the library to: deal with memory transfers The proposed API should allow the library to: deal with memory transfers
@ -547,8 +469,8 @@ functions (see below).
</div> </div>
</div> </div>
<div id="outline-container-orgd922e9c" class="outline-3"> <div id="outline-container-orgc5c3c7b" class="outline-3">
<h3 id="orgd922e9c"><span class="section-number-3">2.6</span> Naming conventions</h3> <h3 id="orgc5c3c7b"><span class="section-number-3">2.6</span> Naming conventions</h3>
<div class="outline-text-3" id="text-2-6"> <div class="outline-text-3" id="text-2-6">
<p> <p>
To avoid namespace collisions, we use <code>qmckl_</code> as a prefix for all exported To avoid namespace collisions, we use <code>qmckl_</code> as a prefix for all exported
@ -573,8 +495,8 @@ form is allowed.
</div> </div>
</div> </div>
<div id="outline-container-orgdd4de4b" class="outline-3"> <div id="outline-container-orgc4f250e" class="outline-3">
<h3 id="orgdd4de4b"><span class="section-number-3">2.7</span> Application programming interface</h3> <h3 id="orgc4f250e"><span class="section-number-3">2.7</span> Application programming interface</h3>
<div class="outline-text-3" id="text-2-7"> <div class="outline-text-3" id="text-2-7">
<p> <p>
In the C language, the number of bits used by the integer types can change In the C language, the number of bits used by the integer types can change
@ -606,15 +528,15 @@ bindings in other languages in other repositories.
</div> </div>
</div> </div>
<div id="outline-container-orgc4e27dc" class="outline-3"> <div id="outline-container-orgf35703b" class="outline-3">
<h3 id="orgc4e27dc"><span class="section-number-3">2.8</span> Global state</h3> <h3 id="orgf35703b"><span class="section-number-3">2.8</span> Global state</h3>
<div class="outline-text-3" id="text-2-8"> <div class="outline-text-3" id="text-2-8">
<p> <p>
Global variables should be avoided in the library, because it is Global variables should be avoided in the library, because it is
possible that one single program needs to use multiple instances possible that one single program needs to use multiple instances
of the library. To solve this problem we propose to use a pointer of the library. To solve this problem we propose to use a pointer
to a <a href="./qmckl_context.html"><code>context</code></a> variable, built by the library with the to a <a href="./qmckl_context.html"><code>context</code></a> variable, built by the library with the
<code>qmckl_context_create</code> function. The <a id="orgeaf04ec">=context=</a> contains the global <code>qmckl_context_create</code> function. The <a id="org3008fa7">=context=</a> contains the global
state of the library, and is used as the first argument of many state of the library, and is used as the first argument of many
QMCkl functions. QMCkl functions.
</p> </p>
@ -628,8 +550,8 @@ the state is done by setters and getters, prefixed by
</div> </div>
</div> </div>
<div id="outline-container-org21cbcd0" class="outline-3"> <div id="outline-container-org88ee144" class="outline-3">
<h3 id="org21cbcd0"><span class="section-number-3">2.9</span> Headers</h3> <h3 id="org88ee144"><span class="section-number-3">2.9</span> Headers</h3>
<div class="outline-text-3" id="text-2-9"> <div class="outline-text-3" id="text-2-9">
<p> <p>
A single <code>qmckl.h</code> header to be distributed by the library A single <code>qmckl.h</code> header to be distributed by the library
@ -717,8 +639,8 @@ and the types definitions should be written in the <code>*_f_type.f90</code> fil
</div> </div>
</div> </div>
<div id="outline-container-orgfab3614" class="outline-3"> <div id="outline-container-org4f96947" class="outline-3">
<h3 id="orgfab3614"><span class="section-number-3">2.10</span> Low-level functions</h3> <h3 id="org4f96947"><span class="section-number-3">2.10</span> Low-level functions</h3>
<div class="outline-text-3" id="text-2-10"> <div class="outline-text-3" id="text-2-10">
<p> <p>
Low-level functions are very simple functions which are leaves of Low-level functions are very simple functions which are leaves of
@ -727,14 +649,14 @@ the function call tree (they don't call any other QMCkl function).
<p> <p>
These functions are <i>pure</i>, and unaware of the QMCkl These functions are <i>pure</i>, and unaware of the QMCkl
<a href="#orgeaf04ec"><code>context</code></a>. They are not allowed to allocate/deallocate memory, and <a href="#org3008fa7"><code>context</code></a>. They are not allowed to allocate/deallocate memory, and
if they need temporary memory it should be provided in input. if they need temporary memory it should be provided in input.
</p> </p>
</div> </div>
</div> </div>
<div id="outline-container-org92b2c80" class="outline-3"> <div id="outline-container-org3abcfa1" class="outline-3">
<h3 id="org92b2c80"><span class="section-number-3">2.11</span> High-level functions</h3> <h3 id="org3abcfa1"><span class="section-number-3">2.11</span> High-level functions</h3>
<div class="outline-text-3" id="text-2-11"> <div class="outline-text-3" id="text-2-11">
<p> <p>
High-level functions are at the top of the function call tree. High-level functions are at the top of the function call tree.
@ -747,27 +669,27 @@ temporary storage, to simplify the use of accelerators.
<p> <p>
The high-level functions should be pure, unless the introduction The high-level functions should be pure, unless the introduction
of non-purity is justified. All the side effects should be made in of non-purity is justified. All the side effects should be made in
the <a href="#orgeaf04ec"><code>context</code></a> variable. the <a href="#org3008fa7"><code>context</code></a> variable.
</p> </p>
</div> </div>
</div> </div>
<div id="outline-container-org539099d" class="outline-3"> <div id="outline-container-orga7a1fee" class="outline-3">
<h3 id="org539099d"><span class="section-number-3">2.12</span> Numerical precision</h3> <h3 id="orga7a1fee"><span class="section-number-3">2.12</span> Numerical precision</h3>
<div class="outline-text-3" id="text-2-12"> <div class="outline-text-3" id="text-2-12">
<p> <p>
The number of bits of precision required for a function should be The number of bits of precision required for a function should be
given as an input of low-level computational functions. This input given as an input of low-level computational functions. This input
will be used to define the values of the different thresholds that will be used to define the values of the different thresholds that
might be used to avoid computing unnecessary noise. High-level might be used to avoid computing unnecessary noise. High-level
functions will use the precision specified in the <a href="#orgeaf04ec"><code>context</code></a> functions will use the precision specified in the <a href="#org3008fa7"><code>context</code></a>
variable. variable.
</p> </p>
</div> </div>
</div> </div>
<div id="outline-container-org86e4cd8" class="outline-3"> <div id="outline-container-org1795a61" class="outline-3">
<h3 id="org86e4cd8"><span class="section-number-3">2.13</span> Algorithms</h3> <h3 id="org1795a61"><span class="section-number-3">2.13</span> Algorithms</h3>
<div class="outline-text-3" id="text-2-13"> <div class="outline-text-3" id="text-2-13">
<p> <p>
Reducing the scaling of an algorithm usually implies also reducing Reducing the scaling of an algorithm usually implies also reducing
@ -782,8 +704,7 @@ implemented adapted to different problem sizes.
</div> </div>
</div> </div>
<div id="postamble" class="status"> <div id="postamble" class="status">
<p class="author">Author: TREX CoE</p> <p class="date">Created: 2021-04-29 Thu 23:28</p>
<p class="date">Created: 2021-04-28 Wed 11:30</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>
</body> </body>

View File

@ -3,12 +3,11 @@
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<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>
<!-- 2021-04-28 Wed 11:31 --> <!-- 2021-04-29 Thu 23:28 -->
<meta http-equiv="Content-Type" content="text/html;charset=utf-8" /> <meta http-equiv="Content-Type" content="text/html;charset=utf-8" />
<meta name="viewport" content="width=device-width, initial-scale=1" /> <meta name="viewport" content="width=device-width, initial-scale=1" />
<title>Atomic Orbitals</title> <title>Atomic Orbitals</title>
<meta name="generator" content="Org mode" /> <meta name="generator" content="Org mode" />
<meta name="author" content="TREX CoE" />
<style type="text/css"> <style type="text/css">
<!--/*--><![CDATA[/*><!--*/ <!--/*--><![CDATA[/*><!--*/
.title { text-align: center; .title { text-align: center;
@ -180,79 +179,6 @@
.org-svg { width: 90%; } .org-svg { width: 90%; }
/*]]>*/--> /*]]>*/-->
</style> </style>
<link rel="stylesheet" title="Standard" href="qmckl.css" type="text/css" />
<script type="text/javascript" src="org-info.js">
/**
*
* @source: org-info.js
*
* @licstart The following is the entire license notice for the
* JavaScript code in org-info.js.
*
* Copyright (C) 2012-2019 Free Software Foundation, Inc.
*
*
* The JavaScript code in this tag is free software: you can
* redistribute it and/or modify it under the terms of the GNU
* General Public License (GNU GPL) as published by the Free Software
* Foundation, either version 3 of the License, or (at your option)
* any later version. The code is distributed WITHOUT ANY WARRANTY;
* without even the implied warranty of MERCHANTABILITY or FITNESS
* FOR A PARTICULAR PURPOSE. See the GNU GPL for more details.
*
* As additional permission under GNU GPL version 3 section 7, you
* may distribute non-source (e.g., minimized or compacted) forms of
* that code without the copy of the GNU GPL normally required by
* section 4, provided you include this license notice and a URL
* through which recipients can access the Corresponding Source.
*
* @licend The above is the entire license notice
* for the JavaScript code in org-info.js.
*
*/
</script>
<script type="text/javascript">
/*
@licstart The following is the entire license notice for the
JavaScript code in this tag.
Copyright (C) 2012-2019 Free Software Foundation, Inc.
The JavaScript code in this tag is free software: you can
redistribute it and/or modify it under the terms of the GNU
General Public License (GNU GPL) as published by the Free Software
Foundation, either version 3 of the License, or (at your option)
any later version. The code is distributed WITHOUT ANY WARRANTY;
without even the implied warranty of MERCHANTABILITY or FITNESS
FOR A PARTICULAR PURPOSE. See the GNU GPL for more details.
As additional permission under GNU GPL version 3 section 7, you
may distribute non-source (e.g., minimized or compacted) forms of
that code without the copy of the GNU GPL normally required by
section 4, provided you include this license notice and a URL
through which recipients can access the Corresponding Source.
@licend The above is the entire license notice
for the JavaScript code in this tag.
*/
<!--/*--><![CDATA[/*><!--*/
org_html_manager.set("TOC_DEPTH", "4");
org_html_manager.set("LINK_HOME", "index.html");
org_html_manager.set("LINK_UP", "");
org_html_manager.set("LOCAL_TOC", "1");
org_html_manager.set("VIEW_BUTTONS", "0");
org_html_manager.set("MOUSE_HINT", "underline");
org_html_manager.set("FIXED_TOC", "0");
org_html_manager.set("TOC", "1");
org_html_manager.set("VIEW", "info");
org_html_manager.setup(); // activate after the parameters are set
/*]]>*///-->
</script>
<script type="text/javascript"> <script type="text/javascript">
/* /*
@licstart The following is the entire license notice for the @licstart The following is the entire license notice for the
@ -323,62 +249,58 @@ for the JavaScript code in this tag.
src="https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.0/MathJax.js?config=TeX-AMS_HTML"></script> src="https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.0/MathJax.js?config=TeX-AMS_HTML"></script>
</head> </head>
<body> <body>
<div id="org-div-home-and-up"> <div id="content">
<a accesskey="h" href=""> UP </a>
|
<a accesskey="H" href="index.html"> HOME </a>
</div><div id="content">
<h1 class="title">Atomic Orbitals</h1> <h1 class="title">Atomic Orbitals</h1>
<div id="table-of-contents"> <div id="table-of-contents">
<h2>Table of Contents</h2> <h2>Table of Contents</h2>
<div id="text-table-of-contents"> <div id="text-table-of-contents">
<ul> <ul>
<li><a href="#orgfb81763">1. Context</a> <li><a href="#orgd534cfd">1. Context</a>
<ul> <ul>
<li><a href="#org830f2cd">1.1. Data structure</a></li> <li><a href="#org1d63960">1.1. Data structure</a></li>
<li><a href="#orgc30f38b">1.2. Access functions</a></li> <li><a href="#orgcfe1cc4">1.2. Access functions</a></li>
<li><a href="#org710293f">1.3. Initialization functions</a></li> <li><a href="#org33683cc">1.3. Initialization functions</a></li>
<li><a href="#org6381630">1.4. <span class="todo TODO">TODO</span> Fortran interfaces</a></li> <li><a href="#org1558238">1.4. <span class="todo TODO">TODO</span> Fortran interfaces</a></li>
</ul> </ul>
</li> </li>
<li><a href="#org5d994ee">2. Polynomial part</a> <li><a href="#orge383190">2. Polynomial part</a>
<ul> <ul>
<li><a href="#org2da5476">2.1. Powers of \(x-X_i\)</a> <li><a href="#org5ccbb7e">2.1. Powers of \(x-X_i\)</a>
<ul> <ul>
<li><a href="#orgab6dd95">2.1.1. Requirements</a></li> <li><a href="#orgc7214dc">2.1.1. Requirements</a></li>
<li><a href="#orgf45dea5">2.1.2. C Header</a></li> <li><a href="#org5211160">2.1.2. C Header</a></li>
<li><a href="#orgea5f3d2">2.1.3. Source</a></li> <li><a href="#orgd5c7f20">2.1.3. Source</a></li>
<li><a href="#org920d9c0">2.1.4. C interface</a></li> <li><a href="#org0837fbc">2.1.4. C interface</a></li>
<li><a href="#orge2cabf5">2.1.5. Fortran interface</a></li> <li><a href="#org80c0b13">2.1.5. Fortran interface</a></li>
<li><a href="#orgb9038f8">2.1.6. Test</a></li> <li><a href="#org43328c0">2.1.6. Test</a></li>
</ul> </ul>
</li> </li>
<li><a href="#org251c210">2.2. Value, Gradient and Laplacian of a polynomial</a> <li><a href="#org67a2a4b">2.2. Value, Gradient and Laplacian of a polynomial</a>
<ul> <ul>
<li><a href="#org474bb16">2.2.1. Requirements</a></li> <li><a href="#org39b810f">2.2.1. Requirements</a></li>
<li><a href="#org5bb941d">2.2.2. C Header</a></li> <li><a href="#orgecbd024">2.2.2. C Header</a></li>
<li><a href="#org6f34b90">2.2.3. Source</a></li> <li><a href="#org77cb9ed">2.2.3. Source</a></li>
<li><a href="#org03b7bf4">2.2.4. C interface</a></li> <li><a href="#orgf06c3e3">2.2.4. C interface</a></li>
<li><a href="#orgd5f958c">2.2.5. Fortran interface</a></li> <li><a href="#orgf961be1">2.2.5. Fortran interface</a></li>
<li><a href="#org4271b54">2.2.6. Test</a></li> <li><a href="#orgd8a5a3c">2.2.6. Test</a></li>
</ul> </ul>
</li> </li>
</ul> </ul>
</li> </li>
<li><a href="#org5c96f67">3. Radial part</a> <li><a href="#org4375dce">3. Radial part</a>
<ul> <ul>
<li><a href="#orgadbc940">3.1. Gaussian basis functions</a></li> <li><a href="#org4e27213">3.1. Gaussian basis functions</a></li>
<li><a href="#orgb6dca01">3.2. <span class="todo TODO">TODO</span> Slater basis functions</a></li> <li><a href="#org96d3dff">3.2. <span class="todo TODO">TODO</span> Slater basis functions</a></li>
<li><a href="#orga75162f">3.3. <span class="todo TODO">TODO</span> Radial functions on a grid</a></li> <li><a href="#orgc0040d0">3.3. <span class="todo TODO">TODO</span> Radial functions on a grid</a></li>
</ul> </ul>
</li> </li>
<li><a href="#org8ed16e7">4. Combining radial and polynomial parts</a></li> <li><a href="#orgccbf263">4. Combining radial and polynomial parts</a></li>
</ul> </ul>
</div> </div>
</div> </div>
<div id="outline-container-orgfb81763" class="outline-2"> <div id="outline-container-orgd534cfd" class="outline-2">
<h2 id="orgfb81763"><span class="section-number-2">1</span> Context</h2> <h2 id="orgd534cfd"><span class="section-number-2">1</span> Context</h2>
<div class="outline-text-2" id="text-1"> <div class="outline-text-2" id="text-1">
<p> <p>
The following arrays are stored in the context: The following arrays are stored in the context:
@ -503,8 +425,8 @@ coefficient = [ 0.006068, 0.045308, 0.202822, 0.503903, 0.383421,
</pre> </pre>
</div> </div>
<div id="outline-container-org830f2cd" class="outline-3"> <div id="outline-container-org1d63960" class="outline-3">
<h3 id="org830f2cd"><span class="section-number-3">1.1</span> Data structure</h3> <h3 id="org1d63960"><span class="section-number-3">1.1</span> Data structure</h3>
<div class="outline-text-3" id="text-1-1"> <div class="outline-text-3" id="text-1-1">
<div class="org-src-container"> <div class="org-src-container">
<pre class="src src-c"><span style="color: #a020f0;">typedef</span> <span style="color: #a020f0;">struct</span> <span style="color: #228b22;">qmckl_ao_basis_struct</span> { <pre class="src src-c"><span style="color: #a020f0;">typedef</span> <span style="color: #a020f0;">struct</span> <span style="color: #228b22;">qmckl_ao_basis_struct</span> {
@ -533,8 +455,8 @@ struct is then initialized and <code>provided == true</code>.
</div> </div>
</div> </div>
<div id="outline-container-orgc30f38b" class="outline-3"> <div id="outline-container-orgcfe1cc4" class="outline-3">
<h3 id="orgc30f38b"><span class="section-number-3">1.2</span> Access functions</h3> <h3 id="orgcfe1cc4"><span class="section-number-3">1.2</span> Access functions</h3>
<div class="outline-text-3" id="text-1-2"> <div class="outline-text-3" id="text-1-2">
<p> <p>
When all the data for the AOs have been provided, the following When all the data for the AOs have been provided, the following
@ -548,8 +470,8 @@ function returns <code>true</code>.
</div> </div>
</div> </div>
<div id="outline-container-org710293f" class="outline-3"> <div id="outline-container-org33683cc" class="outline-3">
<h3 id="org710293f"><span class="section-number-3">1.3</span> Initialization functions</h3> <h3 id="org33683cc"><span class="section-number-3">1.3</span> Initialization functions</h3>
<div class="outline-text-3" id="text-1-3"> <div class="outline-text-3" id="text-1-3">
<p> <p>
To set the basis set, all the following functions need to be To set the basis set, all the following functions need to be
@ -572,17 +494,17 @@ called. When
</div> </div>
</div> </div>
<div id="outline-container-org6381630" class="outline-3"> <div id="outline-container-org1558238" class="outline-3">
<h3 id="org6381630"><span class="section-number-3">1.4</span> <span class="todo TODO">TODO</span> Fortran interfaces</h3> <h3 id="org1558238"><span class="section-number-3">1.4</span> <span class="todo TODO">TODO</span> Fortran interfaces</h3>
</div> </div>
</div> </div>
<div id="outline-container-org5d994ee" class="outline-2"> <div id="outline-container-orge383190" class="outline-2">
<h2 id="org5d994ee"><span class="section-number-2">2</span> Polynomial part</h2> <h2 id="orge383190"><span class="section-number-2">2</span> Polynomial part</h2>
<div class="outline-text-2" id="text-2"> <div class="outline-text-2" id="text-2">
</div> </div>
<div id="outline-container-org2da5476" class="outline-3"> <div id="outline-container-org5ccbb7e" class="outline-3">
<h3 id="org2da5476"><span class="section-number-3">2.1</span> Powers of \(x-X_i\)</h3> <h3 id="org5ccbb7e"><span class="section-number-3">2.1</span> Powers of \(x-X_i\)</h3>
<div class="outline-text-3" id="text-2-1"> <div class="outline-text-3" id="text-2-1">
<p> <p>
The <code>qmckl_ao_power</code> function computes all the powers of the <code>n</code> The <code>qmckl_ao_power</code> function computes all the powers of the <code>n</code>
@ -594,7 +516,7 @@ the \(n\) points:
\[ P_{ik} = X_i^k \] \[ P_{ik} = X_i^k \]
</p> </p>
<table id="org5da58e7" border="2" cellspacing="0" cellpadding="6" rules="groups" frame="hsides"> <table id="orgbc0da02" border="2" cellspacing="0" cellpadding="6" rules="groups" frame="hsides">
<colgroup> <colgroup>
@ -652,8 +574,8 @@ the \(n\) points:
</table> </table>
</div> </div>
<div id="outline-container-orgab6dd95" class="outline-4"> <div id="outline-container-orgc7214dc" class="outline-4">
<h4 id="orgab6dd95"><span class="section-number-4">2.1.1</span> Requirements</h4> <h4 id="orgc7214dc"><span class="section-number-4">2.1.1</span> Requirements</h4>
<div class="outline-text-4" id="text-2-1-1"> <div class="outline-text-4" id="text-2-1-1">
<ul class="org-ul"> <ul class="org-ul">
<li><code>context</code> is not <code>QMCKL_NULL_CONTEXT</code></li> <li><code>context</code> is not <code>QMCKL_NULL_CONTEXT</code></li>
@ -666,8 +588,8 @@ the \(n\) points:
</div> </div>
</div> </div>
<div id="outline-container-orgf45dea5" class="outline-4"> <div id="outline-container-org5211160" class="outline-4">
<h4 id="orgf45dea5"><span class="section-number-4">2.1.2</span> C Header</h4> <h4 id="org5211160"><span class="section-number-4">2.1.2</span> C Header</h4>
<div class="outline-text-4" id="text-2-1-2"> <div class="outline-text-4" id="text-2-1-2">
<div class="org-src-container"> <div class="org-src-container">
<pre class="src src-c"><span style="color: #228b22;">qmckl_exit_code</span> <span style="color: #0000ff;">qmckl_ao_power</span> ( <pre class="src src-c"><span style="color: #228b22;">qmckl_exit_code</span> <span style="color: #0000ff;">qmckl_ao_power</span> (
@ -682,8 +604,8 @@ the \(n\) points:
</div> </div>
</div> </div>
<div id="outline-container-orgea5f3d2" class="outline-4"> <div id="outline-container-orgd5c7f20" class="outline-4">
<h4 id="orgea5f3d2"><span class="section-number-4">2.1.3</span> Source</h4> <h4 id="orgd5c7f20"><span class="section-number-4">2.1.3</span> Source</h4>
<div class="outline-text-4" id="text-2-1-3"> <div class="outline-text-4" id="text-2-1-3">
<div class="org-src-container"> <div class="org-src-container">
<pre class="src src-f90"><span style="color: #228b22;">integer </span><span style="color: #a020f0;">function</span><span style="color: #a0522d;"> </span><span style="color: #0000ff;">qmckl_ao_power_f</span><span style="color: #000000; background-color: #ffffff;">(context, n, X, LMAX, P, ldp) result(info)</span> <pre class="src src-f90"><span style="color: #228b22;">integer </span><span style="color: #a020f0;">function</span><span style="color: #a0522d;"> </span><span style="color: #0000ff;">qmckl_ao_power_f</span><span style="color: #000000; background-color: #ffffff;">(context, n, X, LMAX, P, ldp) result(info)</span>
@ -724,7 +646,7 @@ the \(n\) points:
<span style="color: #a020f0;">do</span> i=1,n <span style="color: #a020f0;">do</span> i=1,n
P(1,i) = X(i) P(1,i) = X(i)
<span style="color: #a020f0;">do</span> k=2,LMAX(i) <span style="color: #a020f0;">do</span> k=2,LMAX(i)
P(k,i) = P(k-1,i) * X(i) P(k,i) = P(k-1,i) * X(i)
<span style="color: #a020f0;">end do</span> <span style="color: #a020f0;">end do</span>
<span style="color: #a020f0;">end do</span> <span style="color: #a020f0;">end do</span>
@ -734,15 +656,15 @@ the \(n\) points:
</div> </div>
</div> </div>
<div id="outline-container-org920d9c0" class="outline-4"> <div id="outline-container-org0837fbc" class="outline-4">
<h4 id="org920d9c0"><span class="section-number-4">2.1.4</span> C interface</h4> <h4 id="org0837fbc"><span class="section-number-4">2.1.4</span> C interface</h4>
</div> </div>
<div id="outline-container-orge2cabf5" class="outline-4"> <div id="outline-container-org80c0b13" class="outline-4">
<h4 id="orge2cabf5"><span class="section-number-4">2.1.5</span> Fortran interface</h4> <h4 id="org80c0b13"><span class="section-number-4">2.1.5</span> Fortran interface</h4>
</div> </div>
<div id="outline-container-orgb9038f8" class="outline-4"> <div id="outline-container-org43328c0" class="outline-4">
<h4 id="orgb9038f8"><span class="section-number-4">2.1.6</span> Test</h4> <h4 id="org43328c0"><span class="section-number-4">2.1.6</span> Test</h4>
<div class="outline-text-4" id="text-2-1-6"> <div class="outline-text-4" id="text-2-1-6">
<div class="org-src-container"> <div class="org-src-container">
<pre class="src src-f90"><span style="color: #228b22;">integer</span>(<span style="color: #008b8b;">c_int32_t</span>) <span style="color: #a020f0;">function</span> <span style="color: #0000ff;">test_qmckl_ao_power</span>(context) <span style="color: #a020f0;">bind</span>(C) <pre class="src src-f90"><span style="color: #228b22;">integer</span>(<span style="color: #008b8b;">c_int32_t</span>) <span style="color: #a020f0;">function</span> <span style="color: #0000ff;">test_qmckl_ao_power</span>(context) <span style="color: #a020f0;">bind</span>(C)
@ -751,8 +673,8 @@ the \(n\) points:
<span style="color: #228b22;">integer</span>(qmckl_context), <span style="color: #a020f0;">intent</span>(in), <span style="color: #a020f0;">value</span> ::<span style="color: #a0522d;"> context</span> <span style="color: #228b22;">integer</span>(qmckl_context), <span style="color: #a020f0;">intent</span>(in), <span style="color: #a020f0;">value</span> ::<span style="color: #a0522d;"> context</span>
<span style="color: #228b22;">integer</span>*8 ::<span style="color: #a0522d;"> n, LDP </span> <span style="color: #228b22;">integer</span>*8 ::<span style="color: #a0522d;"> n, LDP</span>
<span style="color: #228b22;">integer</span>, <span style="color: #a020f0;">allocatable</span> ::<span style="color: #a0522d;"> LMAX(:) </span> <span style="color: #228b22;">integer</span>, <span style="color: #a020f0;">allocatable</span> ::<span style="color: #a0522d;"> LMAX(:)</span>
<span style="color: #228b22;">double precision</span>, <span style="color: #a020f0;">allocatable</span> ::<span style="color: #a0522d;"> X(:), P(:,:)</span> <span style="color: #228b22;">double precision</span>, <span style="color: #a020f0;">allocatable</span> ::<span style="color: #a0522d;"> X(:), P(:,:)</span>
<span style="color: #228b22;">integer</span>*8 ::<span style="color: #a0522d;"> i,j</span> <span style="color: #228b22;">integer</span>*8 ::<span style="color: #a0522d;"> i,j</span>
<span style="color: #228b22;">double precision</span> ::<span style="color: #a0522d;"> epsilon</span> <span style="color: #228b22;">double precision</span> ::<span style="color: #a0522d;"> epsilon</span>
@ -769,7 +691,7 @@ the \(n\) points:
LMAX(j) = 1 + <span style="color: #a020f0;">int</span>(<span style="color: #a020f0;">mod</span>(j, 5),4) LMAX(j) = 1 + <span style="color: #a020f0;">int</span>(<span style="color: #a020f0;">mod</span>(j, 5),4)
<span style="color: #a020f0;">end do</span> <span style="color: #a020f0;">end do</span>
test_qmckl_ao_power = qmckl_ao_power(context, n, X, LMAX, P, LDP) test_qmckl_ao_power = qmckl_ao_power(context, n, X, LMAX, P, LDP)
<span style="color: #a020f0;">if</span> (test_qmckl_ao_power /= QMCKL_SUCCESS) <span style="color: #a020f0;">return</span> <span style="color: #a020f0;">if</span> (test_qmckl_ao_power /= QMCKL_SUCCESS) <span style="color: #a020f0;">return</span>
test_qmckl_ao_power = QMCKL_FAILURE test_qmckl_ao_power = QMCKL_FAILURE
@ -793,8 +715,8 @@ the \(n\) points:
</div> </div>
</div> </div>
<div id="outline-container-org251c210" class="outline-3"> <div id="outline-container-org67a2a4b" class="outline-3">
<h3 id="org251c210"><span class="section-number-3">2.2</span> Value, Gradient and Laplacian of a polynomial</h3> <h3 id="org67a2a4b"><span class="section-number-3">2.2</span> Value, Gradient and Laplacian of a polynomial</h3>
<div class="outline-text-3" id="text-2-2"> <div class="outline-text-3" id="text-2-2">
<p> <p>
A polynomial is centered on a nucleus \(\mathbf{R}_i\) A polynomial is centered on a nucleus \(\mathbf{R}_i\)
@ -802,7 +724,7 @@ A polynomial is centered on a nucleus \(\mathbf{R}_i\)
<p> <p>
\[ \[
P_l(\mathbf{r},\mathbf{R}_i) = (x-X_i)^a (y-Y_i)^b (z-Z_i)^c P_l(\mathbf{r},\mathbf{R}_i) = (x-X_i)^a (y-Y_i)^b (z-Z_i)^c
\] \]
</p> </p>
@ -810,24 +732,24 @@ A polynomial is centered on a nucleus \(\mathbf{R}_i\)
The gradients with respect to electron coordinates are The gradients with respect to electron coordinates are
</p> </p>
\begin{eqnarray*} \begin{eqnarray*}
\frac{\partial }{\partial x} P_l\left(\mathbf{r},\mathbf{R}_i \right) & \frac{\partial }{\partial x} P_l\left(\mathbf{r},\mathbf{R}_i \right) &
= & a (x-X_i)^{a-1} (y-Y_i)^b (z-Z_i)^c \\ = & a (x-X_i)^{a-1} (y-Y_i)^b (z-Z_i)^c \\
\frac{\partial }{\partial y} P_l\left(\mathbf{r},\mathbf{R}_i \right) & \frac{\partial }{\partial y} P_l\left(\mathbf{r},\mathbf{R}_i \right) &
= & b (x-X_i)^a (y-Y_i)^{b-1} (z-Z_i)^c \\ = & b (x-X_i)^a (y-Y_i)^{b-1} (z-Z_i)^c \\
\frac{\partial }{\partial z} P_l\left(\mathbf{r},\mathbf{R}_i \right) & \frac{\partial }{\partial z} P_l\left(\mathbf{r},\mathbf{R}_i \right) &
= & c (x-X_i)^a (y-Y_i)^b (z-Z_i)^{c-1} \\ = & c (x-X_i)^a (y-Y_i)^b (z-Z_i)^{c-1} \\
\end{eqnarray*} \end{eqnarray*}
<p> <p>
and the Laplacian is and the Laplacian is
</p> </p>
\begin{eqnarray*} \begin{eqnarray*}
\left( \frac{\partial }{\partial x^2} + \left( \frac{\partial }{\partial x^2} +
\frac{\partial }{\partial y^2} + \frac{\partial }{\partial y^2} +
\frac{\partial }{\partial z^2} \right) P_l \frac{\partial }{\partial z^2} \right) P_l
\left(\mathbf{r},\mathbf{R}_i \right) & = & \left(\mathbf{r},\mathbf{R}_i \right) & = &
a(a-1) (x-X_i)^{a-2} (y-Y_i)^b (z-Z_i)^c + \\ a(a-1) (x-X_i)^{a-2} (y-Y_i)^b (z-Z_i)^c + \\
&& b(b-1) (x-X_i)^a (y-Y_i)^{b-1} (z-Z_i)^c + \\ && b(b-1) (x-X_i)^a (y-Y_i)^{b-1} (z-Z_i)^c + \\
&& c(c-1) (x-X_i)^a (y-Y_i)^b (z-Z_i)^{c-1}. && c(c-1) (x-X_i)^a (y-Y_i)^b (z-Z_i)^{c-1}.
@ -839,7 +761,7 @@ Laplacians at a given point in space, of all polynomials with an
angular momentum up to <code>lmax</code>. angular momentum up to <code>lmax</code>.
</p> </p>
<table id="org8199efc" border="2" cellspacing="0" cellpadding="6" rules="groups" frame="hsides"> <table id="org064713a" border="2" cellspacing="0" cellpadding="6" rules="groups" frame="hsides">
<colgroup> <colgroup>
@ -918,8 +840,8 @@ angular momentum up to <code>lmax</code>.
</table> </table>
</div> </div>
<div id="outline-container-org474bb16" class="outline-4"> <div id="outline-container-org39b810f" class="outline-4">
<h4 id="org474bb16"><span class="section-number-4">2.2.1</span> Requirements</h4> <h4 id="org39b810f"><span class="section-number-4">2.2.1</span> Requirements</h4>
<div class="outline-text-4" id="text-2-2-1"> <div class="outline-text-4" id="text-2-2-1">
<ul class="org-ul"> <ul class="org-ul">
<li><code>context</code> is not <code>QMCKL_NULL_CONTEXT</code></li> <li><code>context</code> is not <code>QMCKL_NULL_CONTEXT</code></li>
@ -944,8 +866,8 @@ For example, with a=0, b=2 and c=1 the string is "yyz"</li>
</div> </div>
</div> </div>
<div id="outline-container-org5bb941d" class="outline-4"> <div id="outline-container-orgecbd024" class="outline-4">
<h4 id="org5bb941d"><span class="section-number-4">2.2.2</span> C Header</h4> <h4 id="orgecbd024"><span class="section-number-4">2.2.2</span> C Header</h4>
<div class="outline-text-4" id="text-2-2-2"> <div class="outline-text-4" id="text-2-2-2">
<div class="org-src-container"> <div class="org-src-container">
<pre class="src src-c"><span style="color: #228b22;">qmckl_exit_code</span> <span style="color: #0000ff;">qmckl_ao_polynomial_vgl</span> ( <pre class="src src-c"><span style="color: #228b22;">qmckl_exit_code</span> <span style="color: #0000ff;">qmckl_ao_polynomial_vgl</span> (
@ -963,8 +885,8 @@ For example, with a=0, b=2 and c=1 the string is "yyz"</li>
</div> </div>
</div> </div>
<div id="outline-container-org6f34b90" class="outline-4"> <div id="outline-container-org77cb9ed" class="outline-4">
<h4 id="org6f34b90"><span class="section-number-4">2.2.3</span> Source</h4> <h4 id="org77cb9ed"><span class="section-number-4">2.2.3</span> Source</h4>
<div class="outline-text-4" id="text-2-2-3"> <div class="outline-text-4" id="text-2-2-3">
<div class="org-src-container"> <div class="org-src-container">
<pre class="src src-f90"><span style="color: #228b22;">integer </span><span style="color: #a020f0;">function</span><span style="color: #a0522d;"> </span><span style="color: #0000ff;">qmckl_ao_polynomial_vgl_f</span><span style="color: #000000; background-color: #ffffff;">(context, X, R, lmax, n, L, ldl, VGL, ldv) result(info)</span> <pre class="src src-f90"><span style="color: #228b22;">integer </span><span style="color: #a020f0;">function</span><span style="color: #a0522d;"> </span><span style="color: #0000ff;">qmckl_ao_polynomial_vgl_f</span><span style="color: #000000; background-color: #ffffff;">(context, X, R, lmax, n, L, ldl, VGL, ldv) result(info)</span>
@ -1024,9 +946,9 @@ For example, with a=0, b=2 and c=1 the string is "yyz"</li>
<span style="color: #a020f0;">else if</span> (lmax &gt; 0) <span style="color: #a020f0;">then</span> <span style="color: #a020f0;">else if</span> (lmax &gt; 0) <span style="color: #a020f0;">then</span>
pows(-2:0,1:3) = 1.d0 pows(-2:0,1:3) = 1.d0
<span style="color: #a020f0;">do</span> i=1,lmax <span style="color: #a020f0;">do</span> i=1,lmax
pows(i,1) = pows(i-1,1) * Y(1) pows(i,1) = pows(i-1,1) * Y(1)
pows(i,2) = pows(i-1,2) * Y(2) pows(i,2) = pows(i-1,2) * Y(2)
pows(i,3) = pows(i-1,3) * Y(3) pows(i,3) = pows(i-1,3) * Y(3)
<span style="color: #a020f0;">end do</span> <span style="color: #a020f0;">end do</span>
VGL(1:5,1:4) = 0.d0 VGL(1:5,1:4) = 0.d0
@ -1099,16 +1021,16 @@ For example, with a=0, b=2 and c=1 the string is "yyz"</li>
</div> </div>
</div> </div>
<div id="outline-container-org03b7bf4" class="outline-4"> <div id="outline-container-orgf06c3e3" class="outline-4">
<h4 id="org03b7bf4"><span class="section-number-4">2.2.4</span> C interface</h4> <h4 id="orgf06c3e3"><span class="section-number-4">2.2.4</span> C interface</h4>
</div> </div>
<div id="outline-container-orgd5f958c" class="outline-4"> <div id="outline-container-orgf961be1" class="outline-4">
<h4 id="orgd5f958c"><span class="section-number-4">2.2.5</span> Fortran interface</h4> <h4 id="orgf961be1"><span class="section-number-4">2.2.5</span> Fortran interface</h4>
</div> </div>
<div id="outline-container-org4271b54" class="outline-4"> <div id="outline-container-orgd8a5a3c" class="outline-4">
<h4 id="org4271b54"><span class="section-number-4">2.2.6</span> Test</h4> <h4 id="orgd8a5a3c"><span class="section-number-4">2.2.6</span> Test</h4>
<div class="outline-text-4" id="text-2-2-6"> <div class="outline-text-4" id="text-2-2-6">
<div class="org-src-container"> <div class="org-src-container">
<pre class="src src-f90"><span style="color: #228b22;">integer</span>(<span style="color: #008b8b;">c_int32_t</span>) <span style="color: #a020f0;">function</span> <span style="color: #0000ff;">test_qmckl_ao_polynomial_vgl</span>(context) <span style="color: #a020f0;">bind</span>(C) <pre class="src src-f90"><span style="color: #228b22;">integer</span>(<span style="color: #008b8b;">c_int32_t</span>) <span style="color: #a020f0;">function</span> <span style="color: #0000ff;">test_qmckl_ao_polynomial_vgl</span>(context) <span style="color: #a020f0;">bind</span>(C)
@ -1185,13 +1107,13 @@ For example, with a=0, b=2 and c=1 the string is "yyz"</li>
test_qmckl_ao_polynomial_vgl = QMCKL_FAILURE test_qmckl_ao_polynomial_vgl = QMCKL_FAILURE
w = 0.d0 w = 0.d0
<span style="color: #a020f0;">if</span> (L(1,j) &gt; 1) <span style="color: #a020f0;">then</span> <span style="color: #a020f0;">if</span> (L(1,j) &gt; 1) <span style="color: #a020f0;">then</span>
w = w + L(1,j) * (L(1,j)-1) * Y(1)**(L(1,j)-2) * Y(2)**L(2,j) * Y(3)**L(3,j) w = w + L(1,j) * (L(1,j)-1) * Y(1)**(L(1,j)-2) * Y(2)**L(2,j) * Y(3)**L(3,j)
<span style="color: #a020f0;">end if</span> <span style="color: #a020f0;">end if</span>
<span style="color: #a020f0;">if</span> (L(2,j) &gt; 1) <span style="color: #a020f0;">then</span> <span style="color: #a020f0;">if</span> (L(2,j) &gt; 1) <span style="color: #a020f0;">then</span>
w = w + L(2,j) * (L(2,j)-1) * Y(1)**L(1,j) * Y(2)**(L(2,j)-2) * Y(3)**L(3,j) w = w + L(2,j) * (L(2,j)-1) * Y(1)**L(1,j) * Y(2)**(L(2,j)-2) * Y(3)**L(3,j)
<span style="color: #a020f0;">end if</span> <span style="color: #a020f0;">end if</span>
<span style="color: #a020f0;">if</span> (L(3,j) &gt; 1) <span style="color: #a020f0;">then</span> <span style="color: #a020f0;">if</span> (L(3,j) &gt; 1) <span style="color: #a020f0;">then</span>
w = w + L(3,j) * (L(3,j)-1) * Y(1)**L(1,j) * Y(2)**L(2,j) * Y(3)**(L(3,j)-2) w = w + L(3,j) * (L(3,j)-1) * Y(1)**L(1,j) * Y(2)**L(2,j) * Y(3)**(L(3,j)-2)
<span style="color: #a020f0;">end if</span> <span style="color: #a020f0;">end if</span>
<span style="color: #a020f0;">if</span> (dabs(1.d0 - VGL(5,j) / w) &gt; epsilon ) <span style="color: #a020f0;">return</span> <span style="color: #a020f0;">if</span> (dabs(1.d0 - VGL(5,j) / w) &gt; epsilon ) <span style="color: #a020f0;">return</span>
<span style="color: #a020f0;">end do</span> <span style="color: #a020f0;">end do</span>
@ -1213,12 +1135,12 @@ munit_assert_int(0, ==, test_qmckl_ao_polynomial_vgl(context));
</div> </div>
</div> </div>
<div id="outline-container-org5c96f67" class="outline-2"> <div id="outline-container-org4375dce" class="outline-2">
<h2 id="org5c96f67"><span class="section-number-2">3</span> Radial part</h2> <h2 id="org4375dce"><span class="section-number-2">3</span> Radial part</h2>
<div class="outline-text-2" id="text-3"> <div class="outline-text-2" id="text-3">
</div> </div>
<div id="outline-container-orgadbc940" class="outline-3"> <div id="outline-container-org4e27213" class="outline-3">
<h3 id="orgadbc940"><span class="section-number-3">3.1</span> Gaussian basis functions</h3> <h3 id="org4e27213"><span class="section-number-3">3.1</span> Gaussian basis functions</h3>
<div class="outline-text-3" id="text-3-1"> <div class="outline-text-3" id="text-3-1">
<p> <p>
<code>qmckl_ao_gaussian_vgl</code> computes the values, gradients and <code>qmckl_ao_gaussian_vgl</code> computes the values, gradients and
@ -1450,21 +1372,20 @@ Requirements
</div> </div>
</div> </div>
<div id="outline-container-orgb6dca01" class="outline-3"> <div id="outline-container-org96d3dff" class="outline-3">
<h3 id="orgb6dca01"><span class="section-number-3">3.2</span> <span class="todo TODO">TODO</span> Slater basis functions</h3> <h3 id="org96d3dff"><span class="section-number-3">3.2</span> <span class="todo TODO">TODO</span> Slater basis functions</h3>
</div> </div>
<div id="outline-container-orga75162f" class="outline-3"> <div id="outline-container-orgc0040d0" class="outline-3">
<h3 id="orga75162f"><span class="section-number-3">3.3</span> <span class="todo TODO">TODO</span> Radial functions on a grid</h3> <h3 id="orgc0040d0"><span class="section-number-3">3.3</span> <span class="todo TODO">TODO</span> Radial functions on a grid</h3>
</div> </div>
</div> </div>
<div id="outline-container-org8ed16e7" class="outline-2"> <div id="outline-container-orgccbf263" class="outline-2">
<h2 id="org8ed16e7"><span class="section-number-2">4</span> Combining radial and polynomial parts</h2> <h2 id="orgccbf263"><span class="section-number-2">4</span> Combining radial and polynomial parts</h2>
</div> </div>
</div> </div>
<div id="postamble" class="status"> <div id="postamble" class="status">
<p class="author">Author: TREX CoE</p> <p class="date">Created: 2021-04-29 Thu 23:28</p>
<p class="date">Created: 2021-04-28 Wed 11:31</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>
</body> </body>

View File

@ -3,12 +3,11 @@
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<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>
<!-- 2021-04-28 Wed 11:31 --> <!-- 2021-04-29 Thu 23:28 -->
<meta http-equiv="Content-Type" content="text/html;charset=utf-8" /> <meta http-equiv="Content-Type" content="text/html;charset=utf-8" />
<meta name="viewport" content="width=device-width, initial-scale=1" /> <meta name="viewport" content="width=device-width, initial-scale=1" />
<title>Context</title> <title>Context</title>
<meta name="generator" content="Org mode" /> <meta name="generator" content="Org mode" />
<meta name="author" content="TREX CoE" />
<style type="text/css"> <style type="text/css">
<!--/*--><![CDATA[/*><!--*/ <!--/*--><![CDATA[/*><!--*/
.title { text-align: center; .title { text-align: center;
@ -180,79 +179,6 @@
.org-svg { width: 90%; } .org-svg { width: 90%; }
/*]]>*/--> /*]]>*/-->
</style> </style>
<link rel="stylesheet" title="Standard" href="qmckl.css" type="text/css" />
<script type="text/javascript" src="org-info.js">
/**
*
* @source: org-info.js
*
* @licstart The following is the entire license notice for the
* JavaScript code in org-info.js.
*
* Copyright (C) 2012-2019 Free Software Foundation, Inc.
*
*
* The JavaScript code in this tag is free software: you can
* redistribute it and/or modify it under the terms of the GNU
* General Public License (GNU GPL) as published by the Free Software
* Foundation, either version 3 of the License, or (at your option)
* any later version. The code is distributed WITHOUT ANY WARRANTY;
* without even the implied warranty of MERCHANTABILITY or FITNESS
* FOR A PARTICULAR PURPOSE. See the GNU GPL for more details.
*
* As additional permission under GNU GPL version 3 section 7, you
* may distribute non-source (e.g., minimized or compacted) forms of
* that code without the copy of the GNU GPL normally required by
* section 4, provided you include this license notice and a URL
* through which recipients can access the Corresponding Source.
*
* @licend The above is the entire license notice
* for the JavaScript code in org-info.js.
*
*/
</script>
<script type="text/javascript">
/*
@licstart The following is the entire license notice for the
JavaScript code in this tag.
Copyright (C) 2012-2019 Free Software Foundation, Inc.
The JavaScript code in this tag is free software: you can
redistribute it and/or modify it under the terms of the GNU
General Public License (GNU GPL) as published by the Free Software
Foundation, either version 3 of the License, or (at your option)
any later version. The code is distributed WITHOUT ANY WARRANTY;
without even the implied warranty of MERCHANTABILITY or FITNESS
FOR A PARTICULAR PURPOSE. See the GNU GPL for more details.
As additional permission under GNU GPL version 3 section 7, you
may distribute non-source (e.g., minimized or compacted) forms of
that code without the copy of the GNU GPL normally required by
section 4, provided you include this license notice and a URL
through which recipients can access the Corresponding Source.
@licend The above is the entire license notice
for the JavaScript code in this tag.
*/
<!--/*--><![CDATA[/*><!--*/
org_html_manager.set("TOC_DEPTH", "4");
org_html_manager.set("LINK_HOME", "index.html");
org_html_manager.set("LINK_UP", "");
org_html_manager.set("LOCAL_TOC", "1");
org_html_manager.set("VIEW_BUTTONS", "0");
org_html_manager.set("MOUSE_HINT", "underline");
org_html_manager.set("FIXED_TOC", "0");
org_html_manager.set("TOC", "1");
org_html_manager.set("VIEW", "info");
org_html_manager.setup(); // activate after the parameters are set
/*]]>*///-->
</script>
<script type="text/javascript"> <script type="text/javascript">
/* /*
@licstart The following is the entire license notice for the @licstart The following is the entire license notice for the
@ -301,31 +227,27 @@ for the JavaScript code in this tag.
</script> </script>
</head> </head>
<body> <body>
<div id="org-div-home-and-up"> <div id="content">
<a accesskey="h" href=""> UP </a>
|
<a accesskey="H" href="index.html"> HOME </a>
</div><div id="content">
<h1 class="title">Context</h1> <h1 class="title">Context</h1>
<div id="table-of-contents"> <div id="table-of-contents">
<h2>Table of Contents</h2> <h2>Table of Contents</h2>
<div id="text-table-of-contents"> <div id="text-table-of-contents">
<ul> <ul>
<li><a href="#orgfe190d0">1. Context handling</a> <li><a href="#org8c9157f">1. Context handling</a>
<ul> <ul>
<li><a href="#org6326ad7">1.1. Data structure</a></li> <li><a href="#org906fe9e">1.1. Data structure</a></li>
<li><a href="#org5ff4136">1.2. Creation</a></li> <li><a href="#orgaaae7fc">1.2. Creation</a></li>
<li><a href="#orgbd8fcdc">1.3. Locking</a></li> <li><a href="#org8cb85f2">1.3. Locking</a></li>
<li><a href="#orga54612d">1.4. <span class="todo TODO">TODO</span> Copy</a></li> <li><a href="#org8ab3169">1.4. <span class="todo TODO">TODO</span> Copy</a></li>
<li><a href="#org44f4382">1.5. Destroy</a></li> <li><a href="#orgb1d735d">1.5. Destroy</a></li>
</ul> </ul>
</li> </li>
</ul> </ul>
</div> </div>
</div> </div>
<div id="outline-container-orgfe190d0" class="outline-2"> <div id="outline-container-org8c9157f" class="outline-2">
<h2 id="orgfe190d0"><span class="section-number-2">1</span> Context handling</h2> <h2 id="org8c9157f"><span class="section-number-2">1</span> Context handling</h2>
<div class="outline-text-2" id="text-1"> <div class="outline-text-2" id="text-1">
<p> <p>
The context variable is a handle for the state of the library, The context variable is a handle for the state of the library,
@ -338,7 +260,7 @@ A value of <code>QMCKL_NULL_CONTEXT</code> for the context is equivalent to a
</p> </p>
<div class="org-src-container"> <div class="org-src-container">
<pre class="src src-c" id="org862b374"><span style="color: #a020f0;">typedef</span> <span style="color: #228b22;">int64_t</span> <span style="color: #228b22;">qmckl_context</span> ; <pre class="src src-c" id="orgc3e1885"><span style="color: #a020f0;">typedef</span> <span style="color: #228b22;">int64_t</span> <span style="color: #228b22;">qmckl_context</span> ;
<span style="color: #483d8b;">#define</span> <span style="color: #a0522d;">QMCKL_NULL_CONTEXT</span> (qmckl_context) 0 <span style="color: #483d8b;">#define</span> <span style="color: #a0522d;">QMCKL_NULL_CONTEXT</span> (qmckl_context) 0
</pre> </pre>
</div> </div>
@ -356,8 +278,8 @@ and <code>ctx</code> is a <code>qmckl_context_struct*</code> pointer.
</p> </p>
</div> </div>
<div id="outline-container-org6326ad7" class="outline-3"> <div id="outline-container-org906fe9e" class="outline-3">
<h3 id="org6326ad7"><span class="section-number-3">1.1</span> Data structure</h3> <h3 id="org906fe9e"><span class="section-number-3">1.1</span> Data structure</h3>
<div class="outline-text-3" id="text-1-1"> <div class="outline-text-3" id="text-1-1">
<p> <p>
The context keeps a ``date'' that allows to check which data needs The context keeps a ``date'' that allows to check which data needs
@ -367,7 +289,7 @@ coordinates are updated.
<p> <p>
When a new element is added to the context, the functions When a new element is added to the context, the functions
<a href="#org5ff4136">qmckl<sub>context</sub><sub>create</sub></a>, <a href="#org44f4382">qmckl<sub>context</sub><sub>destroy</sub></a> and <a href="#orga54612d">qmckl<sub>context</sub><sub>copy</sub></a> <a href="#orgaaae7fc">qmckl<sub>context</sub><sub>create</sub></a>, <a href="#orgb1d735d">qmckl<sub>context</sub><sub>destroy</sub></a> and <a href="#org8ab3169">qmckl<sub>context</sub><sub>copy</sub></a>
should be updated inorder to make deep copies. should be updated inorder to make deep copies.
</p> </p>
@ -416,8 +338,8 @@ if the context is valid, <code>QMCKL_NULL_CONTEXT</code> otherwise.
</div> </div>
</div> </div>
<div id="outline-container-org5ff4136" class="outline-3"> <div id="outline-container-orgaaae7fc" class="outline-3">
<h3 id="org5ff4136"><span class="section-number-3">1.2</span> Creation</h3> <h3 id="orgaaae7fc"><span class="section-number-3">1.2</span> Creation</h3>
<div class="outline-text-3" id="text-1-2"> <div class="outline-text-3" id="text-1-2">
<p> <p>
To create a new context, <code>qmckl_context_create()</code> should be used. To create a new context, <code>qmckl_context_create()</code> should be used.
@ -447,7 +369,7 @@ To create a new context, <code>qmckl_context_create()</code> should be used.
<span style="color: #228b22;">pthread_mutexattr_t</span> <span style="color: #a0522d;">attr</span>; <span style="color: #228b22;">pthread_mutexattr_t</span> <span style="color: #a0522d;">attr</span>;
<span style="color: #228b22;">int</span> <span style="color: #a0522d;">rc</span>; <span style="color: #228b22;">int</span> <span style="color: #a0522d;">rc</span>;
rc = pthread_mutexattr_init(&amp;attr); rc = pthread_mutexattr_init(&amp;attr);
assert (rc == 0); assert (rc == 0);
(<span style="color: #228b22;">void</span>) pthread_mutexattr_settype(&amp;attr, PTHREAD_MUTEX_RECURSIVE); (<span style="color: #228b22;">void</span>) pthread_mutexattr_settype(&amp;attr, PTHREAD_MUTEX_RECURSIVE);
@ -456,7 +378,7 @@ To create a new context, <code>qmckl_context_create()</code> should be used.
assert (rc == 0); assert (rc == 0);
(<span style="color: #228b22;">void</span>) pthread_mutexattr_destroy(&amp;attr); (<span style="color: #228b22;">void</span>) pthread_mutexattr_destroy(&amp;attr);
} }
/* <span style="color: #b22222;">Initialize data </span>*/ /* <span style="color: #b22222;">Initialize data </span>*/
ctx-&gt;tag = VALID_TAG; ctx-&gt;tag = VALID_TAG;
@ -476,7 +398,7 @@ To create a new context, <code>qmckl_context_create()</code> should be used.
<span style="color: #228b22;">qmckl_memory_info_struct</span> * <span style="color: #a0522d;">new_array</span> = calloc(size, <span style="color: #a020f0;">sizeof</span>(qmckl_memory_info_struct)); <span style="color: #228b22;">qmckl_memory_info_struct</span> * <span style="color: #a0522d;">new_array</span> = calloc(size, <span style="color: #a020f0;">sizeof</span>(qmckl_memory_info_struct));
<span style="color: #a020f0;">if</span> (new_array == <span style="color: #008b8b;">NULL</span>) { <span style="color: #a020f0;">if</span> (new_array == <span style="color: #008b8b;">NULL</span>) {
free(ctx); free(ctx);
<span style="color: #a020f0;">return</span> QMCKL_NULL_CONTEXT; <span style="color: #a020f0;">return</span> QMCKL_NULL_CONTEXT;
} }
memset( &amp;(new_array[0]), 0, <span style="color: #228b22;">size</span> * <span style="color: #a020f0;">sizeof</span>(qmckl_memory_info_struct) ); memset( &amp;(new_array[0]), 0, <span style="color: #228b22;">size</span> * <span style="color: #a020f0;">sizeof</span>(qmckl_memory_info_struct) );
@ -491,8 +413,8 @@ To create a new context, <code>qmckl_context_create()</code> should be used.
</div> </div>
</div> </div>
</div> </div>
<div id="outline-container-orgbd8fcdc" class="outline-3"> <div id="outline-container-org8cb85f2" class="outline-3">
<h3 id="orgbd8fcdc"><span class="section-number-3">1.3</span> Locking</h3> <h3 id="org8cb85f2"><span class="section-number-3">1.3</span> Locking</h3>
<div class="outline-text-3" id="text-1-3"> <div class="outline-text-3" id="text-1-3">
<p> <p>
For thread safety, the context may be locked/unlocked. The lock is For thread safety, the context may be locked/unlocked. The lock is
@ -537,8 +459,8 @@ number of times the thread has locked it is saved in the
</div> </div>
</div> </div>
<div id="outline-container-orga54612d" class="outline-3"> <div id="outline-container-org8ab3169" class="outline-3">
<h3 id="orga54612d"><span class="section-number-3">1.4</span> <span class="todo TODO">TODO</span> Copy</h3> <h3 id="org8ab3169"><span class="section-number-3">1.4</span> <span class="todo TODO">TODO</span> Copy</h3>
<div class="outline-text-3" id="text-1-4"> <div class="outline-text-3" id="text-1-4">
<p> <p>
<code>qmckl_context_copy</code> makes a deep copy of a context. It returns <code>qmckl_context_copy</code> makes a deep copy of a context. It returns
@ -569,8 +491,8 @@ number of times the thread has locked it is saved in the
<span style="color: #b22222;"> return QMCKL_NULL_CONTEXT;</span> <span style="color: #b22222;"> return QMCKL_NULL_CONTEXT;</span>
<span style="color: #b22222;"> }</span> <span style="color: #b22222;"> }</span>
<span style="color: #b22222;"> * Copy the old context on the new one * </span> <span style="color: #b22222;"> * Copy the old context on the new one *</span>
<span style="color: #b22222;"> * TODO Deep copies should be done here * </span> <span style="color: #b22222;"> * TODO Deep copies should be done here *</span>
<span style="color: #b22222;"> memcpy(new_ctx, old_ctx, sizeof(qmckl_context_struct));</span> <span style="color: #b22222;"> memcpy(new_ctx, old_ctx, sizeof(qmckl_context_struct));</span>
<span style="color: #b22222;"> qmckl_unlock( (qmckl_context) new_ctx );</span> <span style="color: #b22222;"> qmckl_unlock( (qmckl_context) new_ctx );</span>
@ -586,8 +508,8 @@ number of times the thread has locked it is saved in the
</div> </div>
</div> </div>
</div> </div>
<div id="outline-container-org44f4382" class="outline-3"> <div id="outline-container-orgb1d735d" class="outline-3">
<h3 id="org44f4382"><span class="section-number-3">1.5</span> Destroy</h3> <h3 id="orgb1d735d"><span class="section-number-3">1.5</span> Destroy</h3>
<div class="outline-text-3" id="text-1-5"> <div class="outline-text-3" id="text-1-5">
<p> <p>
The context is destroyed with <code>qmckl_context_destroy</code>, leaving the ancestors untouched. The context is destroyed with <code>qmckl_context_destroy</code>, leaving the ancestors untouched.
@ -640,8 +562,7 @@ It frees the context, and returns the previous context.
</div> </div>
</div> </div>
<div id="postamble" class="status"> <div id="postamble" class="status">
<p class="author">Author: TREX CoE</p> <p class="date">Created: 2021-04-29 Thu 23:28</p>
<p class="date">Created: 2021-04-28 Wed 11:31</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>
</body> </body>

View File

@ -3,12 +3,11 @@
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<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>
<!-- 2021-04-28 Wed 11:31 --> <!-- 2021-04-29 Thu 23:28 -->
<meta http-equiv="Content-Type" content="text/html;charset=utf-8" /> <meta http-equiv="Content-Type" content="text/html;charset=utf-8" />
<meta name="viewport" content="width=device-width, initial-scale=1" /> <meta name="viewport" content="width=device-width, initial-scale=1" />
<title>Inter-particle distances</title> <title>Inter-particle distances</title>
<meta name="generator" content="Org mode" /> <meta name="generator" content="Org mode" />
<meta name="author" content="TREX CoE" />
<style type="text/css"> <style type="text/css">
<!--/*--><![CDATA[/*><!--*/ <!--/*--><![CDATA[/*><!--*/
.title { text-align: center; .title { text-align: center;
@ -180,79 +179,6 @@
.org-svg { width: 90%; } .org-svg { width: 90%; }
/*]]>*/--> /*]]>*/-->
</style> </style>
<link rel="stylesheet" title="Standard" href="qmckl.css" type="text/css" />
<script type="text/javascript" src="org-info.js">
/**
*
* @source: org-info.js
*
* @licstart The following is the entire license notice for the
* JavaScript code in org-info.js.
*
* Copyright (C) 2012-2019 Free Software Foundation, Inc.
*
*
* The JavaScript code in this tag is free software: you can
* redistribute it and/or modify it under the terms of the GNU
* General Public License (GNU GPL) as published by the Free Software
* Foundation, either version 3 of the License, or (at your option)
* any later version. The code is distributed WITHOUT ANY WARRANTY;
* without even the implied warranty of MERCHANTABILITY or FITNESS
* FOR A PARTICULAR PURPOSE. See the GNU GPL for more details.
*
* As additional permission under GNU GPL version 3 section 7, you
* may distribute non-source (e.g., minimized or compacted) forms of
* that code without the copy of the GNU GPL normally required by
* section 4, provided you include this license notice and a URL
* through which recipients can access the Corresponding Source.
*
* @licend The above is the entire license notice
* for the JavaScript code in org-info.js.
*
*/
</script>
<script type="text/javascript">
/*
@licstart The following is the entire license notice for the
JavaScript code in this tag.
Copyright (C) 2012-2019 Free Software Foundation, Inc.
The JavaScript code in this tag is free software: you can
redistribute it and/or modify it under the terms of the GNU
General Public License (GNU GPL) as published by the Free Software
Foundation, either version 3 of the License, or (at your option)
any later version. The code is distributed WITHOUT ANY WARRANTY;
without even the implied warranty of MERCHANTABILITY or FITNESS
FOR A PARTICULAR PURPOSE. See the GNU GPL for more details.
As additional permission under GNU GPL version 3 section 7, you
may distribute non-source (e.g., minimized or compacted) forms of
that code without the copy of the GNU GPL normally required by
section 4, provided you include this license notice and a URL
through which recipients can access the Corresponding Source.
@licend The above is the entire license notice
for the JavaScript code in this tag.
*/
<!--/*--><![CDATA[/*><!--*/
org_html_manager.set("TOC_DEPTH", "4");
org_html_manager.set("LINK_HOME", "index.html");
org_html_manager.set("LINK_UP", "");
org_html_manager.set("LOCAL_TOC", "1");
org_html_manager.set("VIEW_BUTTONS", "0");
org_html_manager.set("MOUSE_HINT", "underline");
org_html_manager.set("FIXED_TOC", "0");
org_html_manager.set("TOC", "1");
org_html_manager.set("VIEW", "info");
org_html_manager.setup(); // activate after the parameters are set
/*]]>*///-->
</script>
<script type="text/javascript"> <script type="text/javascript">
/* /*
@licstart The following is the entire license notice for the @licstart The following is the entire license notice for the
@ -323,36 +249,32 @@ for the JavaScript code in this tag.
src="https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.0/MathJax.js?config=TeX-AMS_HTML"></script> src="https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.0/MathJax.js?config=TeX-AMS_HTML"></script>
</head> </head>
<body> <body>
<div id="org-div-home-and-up"> <div id="content">
<a accesskey="h" href=""> UP </a>
|
<a accesskey="H" href="index.html"> HOME </a>
</div><div id="content">
<h1 class="title">Inter-particle distances</h1> <h1 class="title">Inter-particle distances</h1>
<div id="table-of-contents"> <div id="table-of-contents">
<h2>Table of Contents</h2> <h2>Table of Contents</h2>
<div id="text-table-of-contents"> <div id="text-table-of-contents">
<ul> <ul>
<li><a href="#org7e3d157">1. Squared distance</a> <li><a href="#org69bd663">1. Squared distance</a>
<ul> <ul>
<li><a href="#orgf276b1b">1.1. <code>qmckl_distance_sq</code></a> <li><a href="#orga28d0d6">1.1. <code>qmckl_distance_sq</code></a>
<ul> <ul>
<li><a href="#org2c7e2fc">1.1.1. Requirements</a></li> <li><a href="#org852d4c7">1.1.1. Requirements</a></li>
<li><a href="#org9361ff0">1.1.2. C header</a></li> <li><a href="#org86e3200">1.1.2. C header</a></li>
<li><a href="#org44d51b5">1.1.3. Source</a></li> <li><a href="#orgf8b52c7">1.1.3. Source</a></li>
<li><a href="#orgccf825b">1.1.4. Performance</a></li> <li><a href="#org7c52ed1">1.1.4. Performance</a></li>
</ul> </ul>
</li> </li>
</ul> </ul>
</li> </li>
<li><a href="#orgc9bc1aa">2. Distance</a> <li><a href="#org54d0636">2. Distance</a>
<ul> <ul>
<li><a href="#orgacb09f7">2.1. <code>qmckl_distance</code></a> <li><a href="#orgea41f92">2.1. <code>qmckl_distance</code></a>
<ul> <ul>
<li><a href="#org2f056d0">2.1.1. Requirements</a></li> <li><a href="#org467fe03">2.1.1. Requirements</a></li>
<li><a href="#org81fa37c">2.1.2. C header</a></li> <li><a href="#orgd9d5151">2.1.2. C header</a></li>
<li><a href="#org7d1f8df">2.1.3. Source</a></li> <li><a href="#orgf10c73a">2.1.3. Source</a></li>
<li><a href="#org650a273">2.1.4. Performance</a></li> <li><a href="#org477f7f8">2.1.4. Performance</a></li>
</ul> </ul>
</li> </li>
</ul> </ul>
@ -361,12 +283,12 @@ for the JavaScript code in this tag.
</div> </div>
</div> </div>
<div id="outline-container-org7e3d157" class="outline-2"> <div id="outline-container-org69bd663" class="outline-2">
<h2 id="org7e3d157"><span class="section-number-2">1</span> Squared distance</h2> <h2 id="org69bd663"><span class="section-number-2">1</span> Squared distance</h2>
<div class="outline-text-2" id="text-1"> <div class="outline-text-2" id="text-1">
</div> </div>
<div id="outline-container-orgf276b1b" class="outline-3"> <div id="outline-container-orga28d0d6" class="outline-3">
<h3 id="orgf276b1b"><span class="section-number-3">1.1</span> <code>qmckl_distance_sq</code></h3> <h3 id="orga28d0d6"><span class="section-number-3">1.1</span> <code>qmckl_distance_sq</code></h3>
<div class="outline-text-3" id="text-1-1"> <div class="outline-text-3" id="text-1-1">
<p> <p>
<code>qmckl_distance_sq</code> computes the matrix of the squared distances <code>qmckl_distance_sq</code> computes the matrix of the squared distances
@ -379,7 +301,7 @@ between all pairs of points in two sets, one point within each set:
\] \]
</p> </p>
<table id="orgbf917d6" border="2" cellspacing="0" cellpadding="6" rules="groups" frame="hsides"> <table id="org8c340a7" border="2" cellspacing="0" cellpadding="6" rules="groups" frame="hsides">
<colgroup> <colgroup>
@ -472,8 +394,8 @@ between all pairs of points in two sets, one point within each set:
</table> </table>
</div> </div>
<div id="outline-container-org2c7e2fc" class="outline-4"> <div id="outline-container-org852d4c7" class="outline-4">
<h4 id="org2c7e2fc"><span class="section-number-4">1.1.1</span> Requirements</h4> <h4 id="org852d4c7"><span class="section-number-4">1.1.1</span> Requirements</h4>
<div class="outline-text-4" id="text-1-1-1"> <div class="outline-text-4" id="text-1-1-1">
<ul class="org-ul"> <ul class="org-ul">
<li><code>context</code> is not <code>QMCKL_NULL_CONTEXT</code></li> <li><code>context</code> is not <code>QMCKL_NULL_CONTEXT</code></li>
@ -491,8 +413,8 @@ between all pairs of points in two sets, one point within each set:
</div> </div>
</div> </div>
<div id="outline-container-org9361ff0" class="outline-4"> <div id="outline-container-org86e3200" class="outline-4">
<h4 id="org9361ff0"><span class="section-number-4">1.1.2</span> C header</h4> <h4 id="org86e3200"><span class="section-number-4">1.1.2</span> C header</h4>
<div class="outline-text-4" id="text-1-1-2"> <div class="outline-text-4" id="text-1-1-2">
<div class="org-src-container"> <div class="org-src-container">
<pre class="src src-c"><span style="color: #228b22;">qmckl_exit_code</span> <span style="color: #0000ff;">qmckl_distance</span> ( <pre class="src src-c"><span style="color: #228b22;">qmckl_exit_code</span> <span style="color: #0000ff;">qmckl_distance</span> (
@ -512,8 +434,8 @@ between all pairs of points in two sets, one point within each set:
</div> </div>
</div> </div>
<div id="outline-container-org44d51b5" class="outline-4"> <div id="outline-container-orgf8b52c7" class="outline-4">
<h4 id="org44d51b5"><span class="section-number-4">1.1.3</span> Source</h4> <h4 id="orgf8b52c7"><span class="section-number-4">1.1.3</span> Source</h4>
<div class="outline-text-4" id="text-1-1-3"> <div class="outline-text-4" id="text-1-1-3">
<div class="org-src-container"> <div class="org-src-container">
<pre class="src src-f90"><span style="color: #228b22;">integer</span><span style="color: #a0522d;"> function qmckl_distance_sq_f(context, transa, transb, m, n, </span><span style="color: #a020f0;">&amp;</span> <pre class="src src-f90"><span style="color: #228b22;">integer</span><span style="color: #a0522d;"> function qmckl_distance_sq_f(context, transa, transb, m, n, </span><span style="color: #a020f0;">&amp;</span>
@ -570,7 +492,7 @@ between all pairs of points in two sets, one point within each set:
<span style="color: #a020f0;">if</span> (transab &lt; 0) <span style="color: #a020f0;">then</span> <span style="color: #a020f0;">if</span> (transab &lt; 0) <span style="color: #a020f0;">then</span>
info = QMCKL_INVALID_ARG_1 info = QMCKL_INVALID_ARG_1
<span style="color: #a020f0;">return</span> <span style="color: #a020f0;">return</span>
<span style="color: #a020f0;">endif</span> <span style="color: #a020f0;">endif</span>
<span style="color: #a020f0;">if</span> (<span style="color: #a020f0;">iand</span>(transab,1) == 0 <span style="color: #a020f0;">.and.</span> LDA &lt; 3) <span style="color: #a020f0;">then</span> <span style="color: #a020f0;">if</span> (<span style="color: #a020f0;">iand</span>(transab,1) == 0 <span style="color: #a020f0;">.and.</span> LDA &lt; 3) <span style="color: #a020f0;">then</span>
@ -648,8 +570,8 @@ between all pairs of points in two sets, one point within each set:
</div> </div>
</div> </div>
<div id="outline-container-orgccf825b" class="outline-4"> <div id="outline-container-org7c52ed1" class="outline-4">
<h4 id="orgccf825b"><span class="section-number-4">1.1.4</span> Performance</h4> <h4 id="org7c52ed1"><span class="section-number-4">1.1.4</span> Performance</h4>
<div class="outline-text-4" id="text-1-1-4"> <div class="outline-text-4" id="text-1-1-4">
<p> <p>
This function might be more efficient when <code>A</code> and <code>B</code> are This function might be more efficient when <code>A</code> and <code>B</code> are
@ -659,12 +581,12 @@ transposed.
</div> </div>
</div> </div>
</div> </div>
<div id="outline-container-orgc9bc1aa" class="outline-2"> <div id="outline-container-org54d0636" class="outline-2">
<h2 id="orgc9bc1aa"><span class="section-number-2">2</span> Distance</h2> <h2 id="org54d0636"><span class="section-number-2">2</span> Distance</h2>
<div class="outline-text-2" id="text-2"> <div class="outline-text-2" id="text-2">
</div> </div>
<div id="outline-container-orgacb09f7" class="outline-3"> <div id="outline-container-orgea41f92" class="outline-3">
<h3 id="orgacb09f7"><span class="section-number-3">2.1</span> <code>qmckl_distance</code></h3> <h3 id="orgea41f92"><span class="section-number-3">2.1</span> <code>qmckl_distance</code></h3>
<div class="outline-text-3" id="text-2-1"> <div class="outline-text-3" id="text-2-1">
<p> <p>
<code>qmckl_distance</code> computes the matrix of the distances between all <code>qmckl_distance</code> computes the matrix of the distances between all
@ -677,7 +599,7 @@ pairs of points in two sets, one point within each set:
\] \]
</p> </p>
<table id="org238ed41" border="2" cellspacing="0" cellpadding="6" rules="groups" frame="hsides"> <table id="orgcd776f1" border="2" cellspacing="0" cellpadding="6" rules="groups" frame="hsides">
<colgroup> <colgroup>
@ -770,8 +692,8 @@ pairs of points in two sets, one point within each set:
</table> </table>
</div> </div>
<div id="outline-container-org2f056d0" class="outline-4"> <div id="outline-container-org467fe03" class="outline-4">
<h4 id="org2f056d0"><span class="section-number-4">2.1.1</span> Requirements</h4> <h4 id="org467fe03"><span class="section-number-4">2.1.1</span> Requirements</h4>
<div class="outline-text-4" id="text-2-1-1"> <div class="outline-text-4" id="text-2-1-1">
<ul class="org-ul"> <ul class="org-ul">
<li><code>context</code> is not <code>QMCKL_NULL_CONTEXT</code></li> <li><code>context</code> is not <code>QMCKL_NULL_CONTEXT</code></li>
@ -789,8 +711,8 @@ pairs of points in two sets, one point within each set:
</div> </div>
</div> </div>
<div id="outline-container-org81fa37c" class="outline-4"> <div id="outline-container-orgd9d5151" class="outline-4">
<h4 id="org81fa37c"><span class="section-number-4">2.1.2</span> C header</h4> <h4 id="orgd9d5151"><span class="section-number-4">2.1.2</span> C header</h4>
<div class="outline-text-4" id="text-2-1-2"> <div class="outline-text-4" id="text-2-1-2">
<div class="org-src-container"> <div class="org-src-container">
<pre class="src src-c"><span style="color: #228b22;">qmckl_exit_code</span> <span style="color: #0000ff;">qmckl_distance</span> ( <pre class="src src-c"><span style="color: #228b22;">qmckl_exit_code</span> <span style="color: #0000ff;">qmckl_distance</span> (
@ -810,8 +732,8 @@ pairs of points in two sets, one point within each set:
</div> </div>
</div> </div>
<div id="outline-container-org7d1f8df" class="outline-4"> <div id="outline-container-orgf10c73a" class="outline-4">
<h4 id="org7d1f8df"><span class="section-number-4">2.1.3</span> Source</h4> <h4 id="orgf10c73a"><span class="section-number-4">2.1.3</span> Source</h4>
<div class="outline-text-4" id="text-2-1-3"> <div class="outline-text-4" id="text-2-1-3">
<div class="org-src-container"> <div class="org-src-container">
<pre class="src src-f90"><span style="color: #228b22;">integer</span><span style="color: #a0522d;"> function qmckl_distance_f(context, transa, transb, m, n, </span><span style="color: #a020f0;">&amp;</span> <pre class="src src-f90"><span style="color: #228b22;">integer</span><span style="color: #a0522d;"> function qmckl_distance_f(context, transa, transb, m, n, </span><span style="color: #a020f0;">&amp;</span>
@ -868,7 +790,7 @@ pairs of points in two sets, one point within each set:
<span style="color: #a020f0;">if</span> (transab &lt; 0) <span style="color: #a020f0;">then</span> <span style="color: #a020f0;">if</span> (transab &lt; 0) <span style="color: #a020f0;">then</span>
info = QMCKL_INVALID_ARG_1 info = QMCKL_INVALID_ARG_1
<span style="color: #a020f0;">return</span> <span style="color: #a020f0;">return</span>
<span style="color: #a020f0;">endif</span> <span style="color: #a020f0;">endif</span>
<span style="color: #a020f0;">if</span> (<span style="color: #a020f0;">iand</span>(transab,1) == 0 <span style="color: #a020f0;">.and.</span> LDA &lt; 3) <span style="color: #a020f0;">then</span> <span style="color: #a020f0;">if</span> (<span style="color: #a020f0;">iand</span>(transab,1) == 0 <span style="color: #a020f0;">.and.</span> LDA &lt; 3) <span style="color: #a020f0;">then</span>
@ -950,8 +872,8 @@ pairs of points in two sets, one point within each set:
</div> </div>
</div> </div>
<div id="outline-container-org650a273" class="outline-4"> <div id="outline-container-org477f7f8" class="outline-4">
<h4 id="org650a273"><span class="section-number-4">2.1.4</span> Performance</h4> <h4 id="org477f7f8"><span class="section-number-4">2.1.4</span> Performance</h4>
<div class="outline-text-4" id="text-2-1-4"> <div class="outline-text-4" id="text-2-1-4">
<p> <p>
This function might be more efficient when <code>A</code> and <code>B</code> are This function might be more efficient when <code>A</code> and <code>B</code> are
@ -963,8 +885,7 @@ transposed.
</div> </div>
</div> </div>
<div id="postamble" class="status"> <div id="postamble" class="status">
<p class="author">Author: TREX CoE</p> <p class="date">Created: 2021-04-29 Thu 23:28</p>
<p class="date">Created: 2021-04-28 Wed 11:31</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>
</body> </body>

View File

@ -3,12 +3,11 @@
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<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>
<!-- 2021-04-28 Wed 11:31 --> <!-- 2021-04-29 Thu 23:28 -->
<meta http-equiv="Content-Type" content="text/html;charset=utf-8" /> <meta http-equiv="Content-Type" content="text/html;charset=utf-8" />
<meta name="viewport" content="width=device-width, initial-scale=1" /> <meta name="viewport" content="width=device-width, initial-scale=1" />
<title>Electrons</title> <title>Electrons</title>
<meta name="generator" content="Org mode" /> <meta name="generator" content="Org mode" />
<meta name="author" content="TREX CoE" />
<style type="text/css"> <style type="text/css">
<!--/*--><![CDATA[/*><!--*/ <!--/*--><![CDATA[/*><!--*/
.title { text-align: center; .title { text-align: center;
@ -180,79 +179,6 @@
.org-svg { width: 90%; } .org-svg { width: 90%; }
/*]]>*/--> /*]]>*/-->
</style> </style>
<link rel="stylesheet" title="Standard" href="qmckl.css" type="text/css" />
<script type="text/javascript" src="org-info.js">
/**
*
* @source: org-info.js
*
* @licstart The following is the entire license notice for the
* JavaScript code in org-info.js.
*
* Copyright (C) 2012-2019 Free Software Foundation, Inc.
*
*
* The JavaScript code in this tag is free software: you can
* redistribute it and/or modify it under the terms of the GNU
* General Public License (GNU GPL) as published by the Free Software
* Foundation, either version 3 of the License, or (at your option)
* any later version. The code is distributed WITHOUT ANY WARRANTY;
* without even the implied warranty of MERCHANTABILITY or FITNESS
* FOR A PARTICULAR PURPOSE. See the GNU GPL for more details.
*
* As additional permission under GNU GPL version 3 section 7, you
* may distribute non-source (e.g., minimized or compacted) forms of
* that code without the copy of the GNU GPL normally required by
* section 4, provided you include this license notice and a URL
* through which recipients can access the Corresponding Source.
*
* @licend The above is the entire license notice
* for the JavaScript code in org-info.js.
*
*/
</script>
<script type="text/javascript">
/*
@licstart The following is the entire license notice for the
JavaScript code in this tag.
Copyright (C) 2012-2019 Free Software Foundation, Inc.
The JavaScript code in this tag is free software: you can
redistribute it and/or modify it under the terms of the GNU
General Public License (GNU GPL) as published by the Free Software
Foundation, either version 3 of the License, or (at your option)
any later version. The code is distributed WITHOUT ANY WARRANTY;
without even the implied warranty of MERCHANTABILITY or FITNESS
FOR A PARTICULAR PURPOSE. See the GNU GPL for more details.
As additional permission under GNU GPL version 3 section 7, you
may distribute non-source (e.g., minimized or compacted) forms of
that code without the copy of the GNU GPL normally required by
section 4, provided you include this license notice and a URL
through which recipients can access the Corresponding Source.
@licend The above is the entire license notice
for the JavaScript code in this tag.
*/
<!--/*--><![CDATA[/*><!--*/
org_html_manager.set("TOC_DEPTH", "4");
org_html_manager.set("LINK_HOME", "index.html");
org_html_manager.set("LINK_UP", "");
org_html_manager.set("LOCAL_TOC", "1");
org_html_manager.set("VIEW_BUTTONS", "0");
org_html_manager.set("MOUSE_HINT", "underline");
org_html_manager.set("FIXED_TOC", "0");
org_html_manager.set("TOC", "1");
org_html_manager.set("VIEW", "info");
org_html_manager.setup(); // activate after the parameters are set
/*]]>*///-->
</script>
<script type="text/javascript"> <script type="text/javascript">
/* /*
@licstart The following is the entire license notice for the @licstart The following is the entire license notice for the
@ -301,31 +227,27 @@ for the JavaScript code in this tag.
</script> </script>
</head> </head>
<body> <body>
<div id="org-div-home-and-up"> <div id="content">
<a accesskey="h" href=""> UP </a>
|
<a accesskey="H" href="index.html"> HOME </a>
</div><div id="content">
<h1 class="title">Electrons</h1> <h1 class="title">Electrons</h1>
<div id="table-of-contents"> <div id="table-of-contents">
<h2>Table of Contents</h2> <h2>Table of Contents</h2>
<div id="text-table-of-contents"> <div id="text-table-of-contents">
<ul> <ul>
<li><a href="#org285d037">1. Context</a> <li><a href="#orgcd420fa">1. Context</a>
<ul> <ul>
<li><a href="#org4b36329">1.1. Data structure</a></li> <li><a href="#orga2a84e6">1.1. Data structure</a></li>
<li><a href="#orgfc62be3">1.2. Access functions</a></li> <li><a href="#org1c58505">1.2. Access functions</a></li>
<li><a href="#org839d63f">1.3. Initialization functions</a></li> <li><a href="#orgf79563c">1.3. Initialization functions</a></li>
<li><a href="#orgea7612a">1.4. Test</a></li> <li><a href="#org93d1af7">1.4. Test</a></li>
</ul> </ul>
</li> </li>
<li><a href="#org919cbe2">2. Computation</a> <li><a href="#orgd163288">2. Computation</a>
<ul> <ul>
<li><a href="#org981688f">2.1. Electron-electron distances</a> <li><a href="#org49d5b96">2.1. Electron-electron distances</a>
<ul> <ul>
<li><a href="#orgd0835c5">2.1.1. Get</a></li> <li><a href="#org5b27404">2.1.1. Get</a></li>
<li><a href="#orgfe4bb72">2.1.2. Compute</a></li> <li><a href="#orgd0ac374">2.1.2. Compute</a></li>
<li><a href="#org12b918c">2.1.3. Test</a></li> <li><a href="#org62c1e3e">2.1.3. Test</a></li>
</ul> </ul>
</li> </li>
</ul> </ul>
@ -334,8 +256,8 @@ for the JavaScript code in this tag.
</div> </div>
</div> </div>
<div id="outline-container-org285d037" class="outline-2"> <div id="outline-container-orgcd420fa" class="outline-2">
<h2 id="org285d037"><span class="section-number-2">1</span> Context</h2> <h2 id="orgcd420fa"><span class="section-number-2">1</span> Context</h2>
<div class="outline-text-2" id="text-1"> <div class="outline-text-2" id="text-1">
<p> <p>
The following data stored in the context: The following data stored in the context:
@ -421,8 +343,8 @@ The following data stored in the context:
</table> </table>
</div> </div>
<div id="outline-container-org4b36329" class="outline-3"> <div id="outline-container-orga2a84e6" class="outline-3">
<h3 id="org4b36329"><span class="section-number-3">1.1</span> Data structure</h3> <h3 id="orga2a84e6"><span class="section-number-3">1.1</span> Data structure</h3>
<div class="outline-text-3" id="text-1-1"> <div class="outline-text-3" id="text-1-1">
<div class="org-src-container"> <div class="org-src-container">
<pre class="src src-c"><span style="color: #a020f0;">typedef</span> <span style="color: #a020f0;">struct</span> <span style="color: #228b22;">qmckl_electron_struct</span> { <pre class="src src-c"><span style="color: #a020f0;">typedef</span> <span style="color: #a020f0;">struct</span> <span style="color: #228b22;">qmckl_electron_struct</span> {
@ -450,8 +372,8 @@ struct is then initialized and <code>provided == true</code>.
</div> </div>
</div> </div>
<div id="outline-container-orgfc62be3" class="outline-3"> <div id="outline-container-org1c58505" class="outline-3">
<h3 id="orgfc62be3"><span class="section-number-3">1.2</span> Access functions</h3> <h3 id="org1c58505"><span class="section-number-3">1.2</span> Access functions</h3>
<div class="outline-text-3" id="text-1-2"> <div class="outline-text-3" id="text-1-2">
<p> <p>
When all the data relative to electrons have been set, the When all the data relative to electrons have been set, the
@ -465,8 +387,8 @@ following function returns <code>true</code>.
</div> </div>
</div> </div>
<div id="outline-container-org839d63f" class="outline-3"> <div id="outline-container-orgf79563c" class="outline-3">
<h3 id="org839d63f"><span class="section-number-3">1.3</span> Initialization functions</h3> <h3 id="orgf79563c"><span class="section-number-3">1.3</span> Initialization functions</h3>
<div class="outline-text-3" id="text-1-3"> <div class="outline-text-3" id="text-1-3">
<p> <p>
To set the data relative to the electrons in the context, the To set the data relative to the electrons in the context, the
@ -496,8 +418,8 @@ electrons have been set.
</div> </div>
</div> </div>
<div id="outline-container-orgea7612a" class="outline-3"> <div id="outline-container-org93d1af7" class="outline-3">
<h3 id="orgea7612a"><span class="section-number-3">1.4</span> Test</h3> <h3 id="org93d1af7"><span class="section-number-3">1.4</span> Test</h3>
<div class="outline-text-3" id="text-1-4"> <div class="outline-text-3" id="text-1-4">
<div class="org-src-container"> <div class="org-src-container">
<pre class="src src-c">/* <span style="color: #b22222;">Reference input data </span>*/ <pre class="src src-c">/* <span style="color: #b22222;">Reference input data </span>*/
@ -508,7 +430,7 @@ electrons have been set.
<span style="color: #483d8b;">#define</span> <span style="color: #a0522d;">num</span> (up_num+down_num) <span style="color: #483d8b;">#define</span> <span style="color: #a0522d;">num</span> (up_num+down_num)
<span style="color: #228b22;">double</span> <span style="color: #a0522d;">coord</span>[walk_num*3*num] = <span style="color: #228b22;">double</span> <span style="color: #a0522d;">coord</span>[walk_num*3*num] =
{ 7.303633091022677881e+00, 1.375868694453235719e+01, 1.167371490471771217e-01, { 7.303633091022677881e+00, 1.375868694453235719e+01, 1.167371490471771217e-01,
4.547755371567960836e+00, 3.245907105524011182e+00, 2.410764357550297110e-01, 4.547755371567960836e+00, 3.245907105524011182e+00, 2.410764357550297110e-01,
5.932816068137344523e+00, 1.491671465549257469e+01, 3.825374039119375236e-01, 5.932816068137344523e+00, 1.491671465549257469e+01, 3.825374039119375236e-01,
7.347336142660052083e+00, 1.341946976062362129e+00, 1.648917914228352322e+00, 7.347336142660052083e+00, 1.341946976062362129e+00, 1.648917914228352322e+00,
@ -542,8 +464,8 @@ rc = qmckl_set_electron_coord (context, coord);
</div> </div>
</div> </div>
<div id="outline-container-org919cbe2" class="outline-2"> <div id="outline-container-orgd163288" class="outline-2">
<h2 id="org919cbe2"><span class="section-number-2">2</span> Computation</h2> <h2 id="orgd163288"><span class="section-number-2">2</span> Computation</h2>
<div class="outline-text-2" id="text-2"> <div class="outline-text-2" id="text-2">
<p> <p>
The computed data is stored in the context so that it can be reused The computed data is stored in the context so that it can be reused
@ -556,12 +478,12 @@ current date is stored.
</p> </p>
</div> </div>
<div id="outline-container-org981688f" class="outline-3"> <div id="outline-container-org49d5b96" class="outline-3">
<h3 id="org981688f"><span class="section-number-3">2.1</span> Electron-electron distances</h3> <h3 id="org49d5b96"><span class="section-number-3">2.1</span> Electron-electron distances</h3>
<div class="outline-text-3" id="text-2-1"> <div class="outline-text-3" id="text-2-1">
</div> </div>
<div id="outline-container-orgd0835c5" class="outline-4"> <div id="outline-container-org5b27404" class="outline-4">
<h4 id="orgd0835c5"><span class="section-number-4">2.1.1</span> Get</h4> <h4 id="org5b27404"><span class="section-number-4">2.1.1</span> Get</h4>
<div class="outline-text-4" id="text-2-1-1"> <div class="outline-text-4" id="text-2-1-1">
<div class="org-src-container"> <div class="org-src-container">
<pre class="src src-c"><span style="color: #228b22;">qmckl_exit_code</span> <span style="color: #0000ff;">qmckl_get_electron_ee_distance</span>(<span style="color: #228b22;">qmckl_context</span> <span style="color: #a0522d;">context</span>, <span style="color: #228b22;">double</span>* <span style="color: #a0522d;">distance</span>); <pre class="src src-c"><span style="color: #228b22;">qmckl_exit_code</span> <span style="color: #0000ff;">qmckl_get_electron_ee_distance</span>(<span style="color: #228b22;">qmckl_context</span> <span style="color: #a0522d;">context</span>, <span style="color: #228b22;">double</span>* <span style="color: #a0522d;">distance</span>);
@ -570,10 +492,10 @@ current date is stored.
</div> </div>
</div> </div>
<div id="outline-container-orgfe4bb72" class="outline-4"> <div id="outline-container-orgd0ac374" class="outline-4">
<h4 id="orgfe4bb72"><span class="section-number-4">2.1.2</span> Compute</h4> <h4 id="orgd0ac374"><span class="section-number-4">2.1.2</span> Compute</h4>
<div class="outline-text-4" id="text-2-1-2"> <div class="outline-text-4" id="text-2-1-2">
<table id="orgf68137d" border="2" cellspacing="0" cellpadding="6" rules="groups" frame="hsides"> <table id="orgd710b6f" border="2" cellspacing="0" cellpadding="6" rules="groups" frame="hsides">
<colgroup> <colgroup>
@ -638,19 +560,19 @@ current date is stored.
info = QMCKL_SUCCESS info = QMCKL_SUCCESS
<span style="color: #a020f0;">if</span> (context == QMCKL_NULL_CONTEXT) <span style="color: #a020f0;">then</span> <span style="color: #a020f0;">if</span> (context == QMCKL_NULL_CONTEXT) <span style="color: #a020f0;">then</span>
info = QMCKL_INVALID_CONTEXT info = QMCKL_INVALID_CONTEXT
<span style="color: #a020f0;">return</span> <span style="color: #a020f0;">return</span>
<span style="color: #a020f0;">endif</span> <span style="color: #a020f0;">endif</span>
<span style="color: #a020f0;">if</span> (elec_num &lt;= 0) <span style="color: #a020f0;">then</span> <span style="color: #a020f0;">if</span> (elec_num &lt;= 0) <span style="color: #a020f0;">then</span>
info = QMCKL_INVALID_ARG_2 info = QMCKL_INVALID_ARG_2
<span style="color: #a020f0;">return</span> <span style="color: #a020f0;">return</span>
<span style="color: #a020f0;">endif</span> <span style="color: #a020f0;">endif</span>
<span style="color: #a020f0;">if</span> (walk_num &lt;= 0) <span style="color: #a020f0;">then</span> <span style="color: #a020f0;">if</span> (walk_num &lt;= 0) <span style="color: #a020f0;">then</span>
info = QMCKL_INVALID_ARG_3 info = QMCKL_INVALID_ARG_3
<span style="color: #a020f0;">return</span> <span style="color: #a020f0;">return</span>
<span style="color: #a020f0;">endif</span> <span style="color: #a020f0;">endif</span>
!<span style="color: #b22222;">$OMP PARALLEL DO DEFAULT(NONE) &amp;</span> !<span style="color: #b22222;">$OMP PARALLEL DO DEFAULT(NONE) &amp;</span>
@ -670,8 +592,8 @@ current date is stored.
</div> </div>
</div> </div>
<div id="outline-container-org12b918c" class="outline-4"> <div id="outline-container-org62c1e3e" class="outline-4">
<h4 id="org12b918c"><span class="section-number-4">2.1.3</span> Test</h4> <h4 id="org62c1e3e"><span class="section-number-4">2.1.3</span> Test</h4>
<div class="outline-text-4" id="text-2-1-3"> <div class="outline-text-4" id="text-2-1-3">
<div class="org-src-container"> <div class="org-src-container">
<pre class="src src-c">/* <span style="color: #b22222;">Reference input data </span>*/ <pre class="src src-c">/* <span style="color: #b22222;">Reference input data </span>*/
@ -693,8 +615,7 @@ rc = qmckl_get_electron_ee_distance(context, distance);
</div> </div>
</div> </div>
<div id="postamble" class="status"> <div id="postamble" class="status">
<p class="author">Author: TREX CoE</p> <p class="date">Created: 2021-04-29 Thu 23:28</p>
<p class="date">Created: 2021-04-28 Wed 11:31</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>
</body> </body>

View File

@ -3,12 +3,11 @@
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<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>
<!-- 2021-04-28 Wed 11:31 --> <!-- 2021-04-29 Thu 23:28 -->
<meta http-equiv="Content-Type" content="text/html;charset=utf-8" /> <meta http-equiv="Content-Type" content="text/html;charset=utf-8" />
<meta name="viewport" content="width=device-width, initial-scale=1" /> <meta name="viewport" content="width=device-width, initial-scale=1" />
<title>Error handling</title> <title>Error handling</title>
<meta name="generator" content="Org mode" /> <meta name="generator" content="Org mode" />
<meta name="author" content="TREX CoE" />
<style type="text/css"> <style type="text/css">
<!--/*--><![CDATA[/*><!--*/ <!--/*--><![CDATA[/*><!--*/
.title { text-align: center; .title { text-align: center;
@ -180,79 +179,6 @@
.org-svg { width: 90%; } .org-svg { width: 90%; }
/*]]>*/--> /*]]>*/-->
</style> </style>
<link rel="stylesheet" title="Standard" href="qmckl.css" type="text/css" />
<script type="text/javascript" src="org-info.js">
/**
*
* @source: org-info.js
*
* @licstart The following is the entire license notice for the
* JavaScript code in org-info.js.
*
* Copyright (C) 2012-2019 Free Software Foundation, Inc.
*
*
* The JavaScript code in this tag is free software: you can
* redistribute it and/or modify it under the terms of the GNU
* General Public License (GNU GPL) as published by the Free Software
* Foundation, either version 3 of the License, or (at your option)
* any later version. The code is distributed WITHOUT ANY WARRANTY;
* without even the implied warranty of MERCHANTABILITY or FITNESS
* FOR A PARTICULAR PURPOSE. See the GNU GPL for more details.
*
* As additional permission under GNU GPL version 3 section 7, you
* may distribute non-source (e.g., minimized or compacted) forms of
* that code without the copy of the GNU GPL normally required by
* section 4, provided you include this license notice and a URL
* through which recipients can access the Corresponding Source.
*
* @licend The above is the entire license notice
* for the JavaScript code in org-info.js.
*
*/
</script>
<script type="text/javascript">
/*
@licstart The following is the entire license notice for the
JavaScript code in this tag.
Copyright (C) 2012-2019 Free Software Foundation, Inc.
The JavaScript code in this tag is free software: you can
redistribute it and/or modify it under the terms of the GNU
General Public License (GNU GPL) as published by the Free Software
Foundation, either version 3 of the License, or (at your option)
any later version. The code is distributed WITHOUT ANY WARRANTY;
without even the implied warranty of MERCHANTABILITY or FITNESS
FOR A PARTICULAR PURPOSE. See the GNU GPL for more details.
As additional permission under GNU GPL version 3 section 7, you
may distribute non-source (e.g., minimized or compacted) forms of
that code without the copy of the GNU GPL normally required by
section 4, provided you include this license notice and a URL
through which recipients can access the Corresponding Source.
@licend The above is the entire license notice
for the JavaScript code in this tag.
*/
<!--/*--><![CDATA[/*><!--*/
org_html_manager.set("TOC_DEPTH", "4");
org_html_manager.set("LINK_HOME", "index.html");
org_html_manager.set("LINK_UP", "");
org_html_manager.set("LOCAL_TOC", "1");
org_html_manager.set("VIEW_BUTTONS", "0");
org_html_manager.set("MOUSE_HINT", "underline");
org_html_manager.set("FIXED_TOC", "0");
org_html_manager.set("TOC", "1");
org_html_manager.set("VIEW", "info");
org_html_manager.setup(); // activate after the parameters are set
/*]]>*///-->
</script>
<script type="text/javascript"> <script type="text/javascript">
/* /*
@licstart The following is the entire license notice for the @licstart The following is the entire license notice for the
@ -301,191 +227,26 @@ for the JavaScript code in this tag.
</script> </script>
</head> </head>
<body> <body>
<div id="org-div-home-and-up"> <div id="content">
<a accesskey="h" href=""> UP </a>
|
<a accesskey="H" href="index.html"> HOME </a>
</div><div id="content">
<h1 class="title">Error handling</h1> <h1 class="title">Error handling</h1>
<div id="table-of-contents"> <div id="table-of-contents">
<h2>Table of Contents</h2> <h2>Table of Contents</h2>
<div id="text-table-of-contents"> <div id="text-table-of-contents">
<ul> <ul>
<li><a href="#org970f36e"></a></li> <li><a href="#orgfb39e1f">1. Decoding errors</a></li>
<li><a href="#org826493d">1. Decoding errors</a></li> <li><a href="#org38d2373">2. Data structure in context</a></li>
<li><a href="#org51e580d">2. Data structure in context</a></li> <li><a href="#org2699279">3. Updating errors in the context</a></li>
<li><a href="#orgae48835">3. Updating errors in the context</a></li> <li><a href="#org47b2b18">4. Failing</a></li>
<li><a href="#orgb3a9c23">4. Failing</a></li>
</ul> </ul>
</div> </div>
</div> </div>
<div id="outline-container-org970f36e" class="outline-2"> <div id="outline-container-orgfb39e1f" class="outline-2">
<h2 id="org970f36e"></h2> <h2 id="orgfb39e1f"><span class="section-number-2">1</span> Decoding errors</h2>
<div class="outline-text-2" id="text-org970f36e">
<p>
The library should never make the calling programs abort, nor
perform any input/output operations. This decision has to be taken
by the developer of the code calling the library.
</p>
<p>
All the functions return with an exit code, defined as
</p>
<div class="org-src-container">
<pre class="src src-c" id="orgf8d2553"><span style="color: #a020f0;">typedef</span> <span style="color: #228b22;">int32_t</span> <span style="color: #228b22;">qmckl_exit_code</span>;
</pre>
</div>
<p>
The exit code returns the completion status of the function to the
calling program. When a function call completed successfully,
<code>QMCKL_SUCCESS</code> is returned. If one of the functions of
the library fails to complete the requested task, an appropriate
error code is returned to the program.
</p>
<p>
Here is the complete list of exit codes.
</p>
<table id="org3a3d0a7" border="2" cellspacing="0" cellpadding="6" rules="groups" frame="hsides">
<colgroup>
<col class="org-left" />
<col class="org-right" />
<col class="org-left" />
</colgroup>
<thead>
<tr>
<th scope="col" class="org-left">Macro</th>
<th scope="col" class="org-right">Code</th>
<th scope="col" class="org-left">Description</th>
</tr>
</thead>
<tbody>
<tr>
<td class="org-left"><code>QMCKL_SUCCESS</code></td>
<td class="org-right">0</td>
<td class="org-left">'Success'</td>
</tr>
<tr>
<td class="org-left"><code>QMCKL_INVALID_ARG_1</code></td>
<td class="org-right">1</td>
<td class="org-left">'Invalid argument 1'</td>
</tr>
<tr>
<td class="org-left"><code>QMCKL_INVALID_ARG_2</code></td>
<td class="org-right">2</td>
<td class="org-left">'Invalid argument 2'</td>
</tr>
<tr>
<td class="org-left"><code>QMCKL_INVALID_ARG_3</code></td>
<td class="org-right">3</td>
<td class="org-left">'Invalid argument 3'</td>
</tr>
<tr>
<td class="org-left"><code>QMCKL_INVALID_ARG_4</code></td>
<td class="org-right">4</td>
<td class="org-left">'Invalid argument 4'</td>
</tr>
<tr>
<td class="org-left"><code>QMCKL_INVALID_ARG_5</code></td>
<td class="org-right">5</td>
<td class="org-left">'Invalid argument 5'</td>
</tr>
<tr>
<td class="org-left"><code>QMCKL_INVALID_ARG_6</code></td>
<td class="org-right">6</td>
<td class="org-left">'Invalid argument 6'</td>
</tr>
<tr>
<td class="org-left"><code>QMCKL_INVALID_ARG_7</code></td>
<td class="org-right">7</td>
<td class="org-left">'Invalid argument 7'</td>
</tr>
<tr>
<td class="org-left"><code>QMCKL_INVALID_ARG_8</code></td>
<td class="org-right">8</td>
<td class="org-left">'Invalid argument 8'</td>
</tr>
<tr>
<td class="org-left"><code>QMCKL_INVALID_ARG_9</code></td>
<td class="org-right">9</td>
<td class="org-left">'Invalid argument 9'</td>
</tr>
<tr>
<td class="org-left"><code>QMCKL_INVALID_ARG_10</code></td>
<td class="org-right">10</td>
<td class="org-left">'Invalid argument 10'</td>
</tr>
<tr>
<td class="org-left"><code>QMCKL_FAILURE</code></td>
<td class="org-right">101</td>
<td class="org-left">'Failure'</td>
</tr>
<tr>
<td class="org-left"><code>QMCKL_ERRNO</code></td>
<td class="org-right">102</td>
<td class="org-left">strerror(errno)</td>
</tr>
<tr>
<td class="org-left"><code>QMCKL_INVALID_CONTEXT</code></td>
<td class="org-right">103</td>
<td class="org-left">'Invalid context'</td>
</tr>
<tr>
<td class="org-left"><code>QMCKL_ALLOCATION_FAILED</code></td>
<td class="org-right">104</td>
<td class="org-left">'Allocation failed'</td>
</tr>
<tr>
<td class="org-left"><code>QMCKL_DEALLOCATION_FAILED</code></td>
<td class="org-right">105</td>
<td class="org-left">'De-allocation failed'</td>
</tr>
<tr>
<td class="org-left"><code>QMCKL_INVALID_EXIT_CODE</code></td>
<td class="org-right">106</td>
<td class="org-left">'Invalid exit code'</td>
</tr>
</tbody>
</table>
<p>
The <code>qmckl_string_of_error</code> converts an exit code into a string. The
string is assumed to be large enough to contain the error message
(typically 128 characters).
</p>
</div>
</div>
<div id="outline-container-org826493d" class="outline-2">
<h2 id="org826493d"><span class="section-number-2">1</span> Decoding errors</h2>
<div class="outline-text-2" id="text-1"> <div class="outline-text-2" id="text-1">
<p> <p>
To decode the error messages, <code>qmckl_string_of_error</code> converts an To decode the error messages, <code>qmckl_string_of_error</code> converts an
error code into a string. error code into a string.
</p> </p>
<pre class="example"> <pre class="example">
@ -575,8 +336,8 @@ The text strings are extracted from the previous table.
</div> </div>
</div> </div>
<div id="outline-container-org51e580d" class="outline-2"> <div id="outline-container-org38d2373" class="outline-2">
<h2 id="org51e580d"><span class="section-number-2">2</span> Data structure in context</h2> <h2 id="org38d2373"><span class="section-number-2">2</span> Data structure in context</h2>
<div class="outline-text-2" id="text-2"> <div class="outline-text-2" id="text-2">
<p> <p>
The strings are declared with a maximum fixed size to avoid The strings are declared with a maximum fixed size to avoid
@ -599,8 +360,8 @@ dynamic memory allocation.
</div> </div>
</div> </div>
<div id="outline-container-orgae48835" class="outline-2"> <div id="outline-container-org2699279" class="outline-2">
<h2 id="orgae48835"><span class="section-number-2">3</span> Updating errors in the context</h2> <h2 id="org2699279"><span class="section-number-2">3</span> Updating errors in the context</h2>
<div class="outline-text-2" id="text-3"> <div class="outline-text-2" id="text-3">
<p> <p>
The error is updated in the context using <code>qmckl_set_error</code>. The error is updated in the context using <code>qmckl_set_error</code>.
@ -646,8 +407,8 @@ explaining the error. The exit code can't be <code>QMCKL_SUCCESS</code>.
</div> </div>
</div> </div>
<div id="outline-container-orgb3a9c23" class="outline-2"> <div id="outline-container-org47b2b18" class="outline-2">
<h2 id="orgb3a9c23"><span class="section-number-2">4</span> Failing</h2> <h2 id="org47b2b18"><span class="section-number-2">4</span> Failing</h2>
<div class="outline-text-2" id="text-4"> <div class="outline-text-2" id="text-4">
<p> <p>
To make a function fail, the <code>qmckl_failwith</code> function should be To make a function fail, the <code>qmckl_failwith</code> function should be
@ -678,11 +439,11 @@ Upon failure, a <code>QMCKL_NULL_CONTEXT</code> is returned.
<span style="color: #a020f0;">return</span> QMCKL_INVALID_CONTEXT; <span style="color: #a020f0;">return</span> QMCKL_INVALID_CONTEXT;
<span style="color: #a020f0;">if</span> (message == <span style="color: #008b8b;">NULL</span>) { <span style="color: #a020f0;">if</span> (message == <span style="color: #008b8b;">NULL</span>) {
<span style="color: #228b22;">qmckl_exit_code</span> <span style="color: #a0522d;">rc</span> = <span style="color: #228b22;">qmckl_exit_code</span> <span style="color: #a0522d;">rc</span> =
qmckl_set_error(context, exit_code, function, qmckl_string_of_error(exit_code)); qmckl_set_error(context, exit_code, function, qmckl_string_of_error(exit_code));
assert (rc == QMCKL_SUCCESS); assert (rc == QMCKL_SUCCESS);
} <span style="color: #a020f0;">else</span> { } <span style="color: #a020f0;">else</span> {
<span style="color: #228b22;">qmckl_exit_code</span> <span style="color: #a0522d;">rc</span> = <span style="color: #228b22;">qmckl_exit_code</span> <span style="color: #a0522d;">rc</span> =
qmckl_set_error(context, exit_code, function, message); qmckl_set_error(context, exit_code, function, message);
assert (rc == QMCKL_SUCCESS); assert (rc == QMCKL_SUCCESS);
} }
@ -700,7 +461,7 @@ For example, this function can be used as
<pre class="src src-c"><span style="color: #a020f0;">if</span> (x &lt; 0) { <pre class="src src-c"><span style="color: #a020f0;">if</span> (x &lt; 0) {
<span style="color: #a020f0;">return</span> qmckl_failwith(context, <span style="color: #a020f0;">return</span> qmckl_failwith(context,
QMCKL_INVALID_ARG_2, QMCKL_INVALID_ARG_2,
<span style="color: #8b2252;">"qmckl_function"</span>, <span style="color: #8b2252;">"qmckl_function"</span>,
<span style="color: #8b2252;">"Expected x &gt;= 0"</span>); <span style="color: #8b2252;">"Expected x &gt;= 0"</span>);
} }
</pre> </pre>
@ -709,8 +470,7 @@ For example, this function can be used as
</div> </div>
</div> </div>
<div id="postamble" class="status"> <div id="postamble" class="status">
<p class="author">Author: TREX CoE</p> <p class="date">Created: 2021-04-29 Thu 23:28</p>
<p class="date">Created: 2021-04-28 Wed 11:31</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>
</body> </body>

View File

@ -3,12 +3,11 @@
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<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>
<!-- 2021-04-28 Wed 11:31 --> <!-- 2021-04-29 Thu 23:28 -->
<meta http-equiv="Content-Type" content="text/html;charset=utf-8" /> <meta http-equiv="Content-Type" content="text/html;charset=utf-8" />
<meta name="viewport" content="width=device-width, initial-scale=1" /> <meta name="viewport" content="width=device-width, initial-scale=1" />
<title>Memory management</title> <title>Memory management</title>
<meta name="generator" content="Org mode" /> <meta name="generator" content="Org mode" />
<meta name="author" content="TREX CoE" />
<style type="text/css"> <style type="text/css">
<!--/*--><![CDATA[/*><!--*/ <!--/*--><![CDATA[/*><!--*/
.title { text-align: center; .title { text-align: center;
@ -180,79 +179,6 @@
.org-svg { width: 90%; } .org-svg { width: 90%; }
/*]]>*/--> /*]]>*/-->
</style> </style>
<link rel="stylesheet" title="Standard" href="qmckl.css" type="text/css" />
<script type="text/javascript" src="org-info.js">
/**
*
* @source: org-info.js
*
* @licstart The following is the entire license notice for the
* JavaScript code in org-info.js.
*
* Copyright (C) 2012-2019 Free Software Foundation, Inc.
*
*
* The JavaScript code in this tag is free software: you can
* redistribute it and/or modify it under the terms of the GNU
* General Public License (GNU GPL) as published by the Free Software
* Foundation, either version 3 of the License, or (at your option)
* any later version. The code is distributed WITHOUT ANY WARRANTY;
* without even the implied warranty of MERCHANTABILITY or FITNESS
* FOR A PARTICULAR PURPOSE. See the GNU GPL for more details.
*
* As additional permission under GNU GPL version 3 section 7, you
* may distribute non-source (e.g., minimized or compacted) forms of
* that code without the copy of the GNU GPL normally required by
* section 4, provided you include this license notice and a URL
* through which recipients can access the Corresponding Source.
*
* @licend The above is the entire license notice
* for the JavaScript code in org-info.js.
*
*/
</script>
<script type="text/javascript">
/*
@licstart The following is the entire license notice for the
JavaScript code in this tag.
Copyright (C) 2012-2019 Free Software Foundation, Inc.
The JavaScript code in this tag is free software: you can
redistribute it and/or modify it under the terms of the GNU
General Public License (GNU GPL) as published by the Free Software
Foundation, either version 3 of the License, or (at your option)
any later version. The code is distributed WITHOUT ANY WARRANTY;
without even the implied warranty of MERCHANTABILITY or FITNESS
FOR A PARTICULAR PURPOSE. See the GNU GPL for more details.
As additional permission under GNU GPL version 3 section 7, you
may distribute non-source (e.g., minimized or compacted) forms of
that code without the copy of the GNU GPL normally required by
section 4, provided you include this license notice and a URL
through which recipients can access the Corresponding Source.
@licend The above is the entire license notice
for the JavaScript code in this tag.
*/
<!--/*--><![CDATA[/*><!--*/
org_html_manager.set("TOC_DEPTH", "4");
org_html_manager.set("LINK_HOME", "index.html");
org_html_manager.set("LINK_UP", "");
org_html_manager.set("LOCAL_TOC", "1");
org_html_manager.set("VIEW_BUTTONS", "0");
org_html_manager.set("MOUSE_HINT", "underline");
org_html_manager.set("FIXED_TOC", "0");
org_html_manager.set("TOC", "1");
org_html_manager.set("VIEW", "info");
org_html_manager.setup(); // activate after the parameters are set
/*]]>*///-->
</script>
<script type="text/javascript"> <script type="text/javascript">
/* /*
@licstart The following is the entire license notice for the @licstart The following is the entire license notice for the
@ -301,30 +227,26 @@ for the JavaScript code in this tag.
</script> </script>
</head> </head>
<body> <body>
<div id="org-div-home-and-up"> <div id="content">
<a accesskey="h" href=""> UP </a>
|
<a accesskey="H" href="index.html"> HOME </a>
</div><div id="content">
<h1 class="title">Memory management</h1> <h1 class="title">Memory management</h1>
<div id="table-of-contents"> <div id="table-of-contents">
<h2>Table of Contents</h2> <h2>Table of Contents</h2>
<div id="text-table-of-contents"> <div id="text-table-of-contents">
<ul> <ul>
<li><a href="#org0459698">1. Memory data structure for the context</a></li> <li><a href="#orgae0cbb2">1. Memory data structure for the context</a></li>
<li><a href="#org6efad30">2. Passing info to allocation routines</a></li> <li><a href="#org6428822">2. Passing info to allocation routines</a></li>
<li><a href="#org3b0f572">3. Allocation/deallocation functions</a></li> <li><a href="#orgfbaa7d0">3. Allocation/deallocation functions</a></li>
</ul> </ul>
</div> </div>
</div> </div>
<div id="outline-container-org0459698" class="outline-2"> <div id="outline-container-orgae0cbb2" class="outline-2">
<h2 id="org0459698"><span class="section-number-2">1</span> Memory data structure for the context</h2> <h2 id="orgae0cbb2"><span class="section-number-2">1</span> Memory data structure for the context</h2>
<div class="outline-text-2" id="text-1"> <div class="outline-text-2" id="text-1">
<p> <p>
Every time a new block of memory is allocated, the information Every time a new block of memory is allocated, the information
relative to the allocation is stored in a new <code>qmckl_memory_info_struct</code>. relative to the allocation is stored in a new <code>qmckl_memory_info_struct</code>.
A <code>qmckl_memory_info_struct</code> contains the pointer to the memory block, A <code>qmckl_memory_info_struct</code> contains the pointer to the memory block,
its size in bytes, and extra implementation-specific information such as its size in bytes, and extra implementation-specific information such as
alignment, pinning, if the memory should be allocated on CPU or GPU alignment, pinning, if the memory should be allocated on CPU or GPU
<i>etc</i>. <i>etc</i>.
@ -361,8 +283,8 @@ array, and the number of allocated blocks.
</div> </div>
</div> </div>
<div id="outline-container-org6efad30" class="outline-2"> <div id="outline-container-org6428822" class="outline-2">
<h2 id="org6efad30"><span class="section-number-2">2</span> Passing info to allocation routines</h2> <h2 id="org6428822"><span class="section-number-2">2</span> Passing info to allocation routines</h2>
<div class="outline-text-2" id="text-2"> <div class="outline-text-2" id="text-2">
<p> <p>
Passing information to the allocation routine should be done by Passing information to the allocation routine should be done by
@ -371,8 +293,8 @@ passing an instance of a <code>qmckl_memory_info_struct</code>.
</div> </div>
</div> </div>
<div id="outline-container-org3b0f572" class="outline-2"> <div id="outline-container-orgfbaa7d0" class="outline-2">
<h2 id="org3b0f572"><span class="section-number-2">3</span> Allocation/deallocation functions</h2> <h2 id="orgfbaa7d0"><span class="section-number-2">3</span> Allocation/deallocation functions</h2>
<div class="outline-text-2" id="text-3"> <div class="outline-text-2" id="text-3">
<p> <p>
Memory allocation inside the library should be done with Memory allocation inside the library should be done with
@ -446,7 +368,7 @@ If the allocation failed, the <code>NULL</code> pointer is returned.
<div class="org-src-container"> <div class="org-src-container">
<pre class="src src-c">/* <span style="color: #b22222;">Create a context </span>*/ <pre class="src src-c">/* <span style="color: #b22222;">Create a context </span>*/
<span style="color: #228b22;">qmckl_context</span> <span style="color: #a0522d;">context</span> = qmckl_context_create(); <span style="color: #228b22;">qmckl_context</span> <span style="color: #a0522d;">context</span> = qmckl_context_create();
<span style="color: #228b22;">qmckl_memory_info_struct</span> <span style="color: #a0522d;">info</span> = qmckl_memory_info_struct_zero; <span style="color: #228b22;">qmckl_memory_info_struct</span> <span style="color: #a0522d;">info</span> = qmckl_memory_info_struct_zero;
info.size = (<span style="color: #228b22;">size_t</span>) 3; info.size = (<span style="color: #228b22;">size_t</span>) 3;
@ -534,8 +456,7 @@ allocation and needs to be updated.
</div> </div>
</div> </div>
<div id="postamble" class="status"> <div id="postamble" class="status">
<p class="author">Author: TREX CoE</p> <p class="date">Created: 2021-04-29 Thu 23:28</p>
<p class="date">Created: 2021-04-28 Wed 11:31</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>
</body> </body>

View File

@ -3,12 +3,11 @@
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<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>
<!-- 2021-04-28 Wed 11:31 --> <!-- 2021-04-29 Thu 23:28 -->
<meta http-equiv="Content-Type" content="text/html;charset=utf-8" /> <meta http-equiv="Content-Type" content="text/html;charset=utf-8" />
<meta name="viewport" content="width=device-width, initial-scale=1" /> <meta name="viewport" content="width=device-width, initial-scale=1" />
<title>Numerical precision</title> <title>Numerical precision</title>
<meta name="generator" content="Org mode" /> <meta name="generator" content="Org mode" />
<meta name="author" content="TREX CoE" />
<style type="text/css"> <style type="text/css">
<!--/*--><![CDATA[/*><!--*/ <!--/*--><![CDATA[/*><!--*/
.title { text-align: center; .title { text-align: center;
@ -180,79 +179,6 @@
.org-svg { width: 90%; } .org-svg { width: 90%; }
/*]]>*/--> /*]]>*/-->
</style> </style>
<link rel="stylesheet" title="Standard" href="qmckl.css" type="text/css" />
<script type="text/javascript" src="org-info.js">
/**
*
* @source: org-info.js
*
* @licstart The following is the entire license notice for the
* JavaScript code in org-info.js.
*
* Copyright (C) 2012-2019 Free Software Foundation, Inc.
*
*
* The JavaScript code in this tag is free software: you can
* redistribute it and/or modify it under the terms of the GNU
* General Public License (GNU GPL) as published by the Free Software
* Foundation, either version 3 of the License, or (at your option)
* any later version. The code is distributed WITHOUT ANY WARRANTY;
* without even the implied warranty of MERCHANTABILITY or FITNESS
* FOR A PARTICULAR PURPOSE. See the GNU GPL for more details.
*
* As additional permission under GNU GPL version 3 section 7, you
* may distribute non-source (e.g., minimized or compacted) forms of
* that code without the copy of the GNU GPL normally required by
* section 4, provided you include this license notice and a URL
* through which recipients can access the Corresponding Source.
*
* @licend The above is the entire license notice
* for the JavaScript code in org-info.js.
*
*/
</script>
<script type="text/javascript">
/*
@licstart The following is the entire license notice for the
JavaScript code in this tag.
Copyright (C) 2012-2019 Free Software Foundation, Inc.
The JavaScript code in this tag is free software: you can
redistribute it and/or modify it under the terms of the GNU
General Public License (GNU GPL) as published by the Free Software
Foundation, either version 3 of the License, or (at your option)
any later version. The code is distributed WITHOUT ANY WARRANTY;
without even the implied warranty of MERCHANTABILITY or FITNESS
FOR A PARTICULAR PURPOSE. See the GNU GPL for more details.
As additional permission under GNU GPL version 3 section 7, you
may distribute non-source (e.g., minimized or compacted) forms of
that code without the copy of the GNU GPL normally required by
section 4, provided you include this license notice and a URL
through which recipients can access the Corresponding Source.
@licend The above is the entire license notice
for the JavaScript code in this tag.
*/
<!--/*--><![CDATA[/*><!--*/
org_html_manager.set("TOC_DEPTH", "4");
org_html_manager.set("LINK_HOME", "index.html");
org_html_manager.set("LINK_UP", "");
org_html_manager.set("LOCAL_TOC", "1");
org_html_manager.set("VIEW_BUTTONS", "0");
org_html_manager.set("MOUSE_HINT", "underline");
org_html_manager.set("FIXED_TOC", "0");
org_html_manager.set("TOC", "1");
org_html_manager.set("VIEW", "info");
org_html_manager.setup(); // activate after the parameters are set
/*]]>*///-->
</script>
<script type="text/javascript"> <script type="text/javascript">
/* /*
@licstart The following is the entire license notice for the @licstart The following is the entire license notice for the
@ -323,26 +249,22 @@ for the JavaScript code in this tag.
src="https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.0/MathJax.js?config=TeX-AMS_HTML"></script> src="https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.0/MathJax.js?config=TeX-AMS_HTML"></script>
</head> </head>
<body> <body>
<div id="org-div-home-and-up"> <div id="content">
<a accesskey="h" href=""> UP </a>
|
<a accesskey="H" href="index.html"> HOME </a>
</div><div id="content">
<h1 class="title">Numerical precision</h1> <h1 class="title">Numerical precision</h1>
<div id="table-of-contents"> <div id="table-of-contents">
<h2>Table of Contents</h2> <h2>Table of Contents</h2>
<div id="text-table-of-contents"> <div id="text-table-of-contents">
<ul> <ul>
<li><a href="#org0ad7cc5">1. Control of the numerical precision</a></li> <li><a href="#orgcae6c7e">1. Control of the numerical precision</a></li>
<li><a href="#org3a86eb7">2. Precision</a></li> <li><a href="#orge25aa72">2. Precision</a></li>
<li><a href="#orga1f1c24">3. Range</a></li> <li><a href="#orgd7a4b6c">3. Range</a></li>
<li><a href="#orgd4d90e8">4. Helper functions</a></li> <li><a href="#orgf55446f">4. Helper functions</a></li>
</ul> </ul>
</div> </div>
</div> </div>
<div id="outline-container-org0ad7cc5" class="outline-2"> <div id="outline-container-orgcae6c7e" class="outline-2">
<h2 id="org0ad7cc5"><span class="section-number-2">1</span> Control of the numerical precision</h2> <h2 id="orgcae6c7e"><span class="section-number-2">1</span> Control of the numerical precision</h2>
<div class="outline-text-2" id="text-1"> <div class="outline-text-2" id="text-1">
<p> <p>
Controlling numerical precision enables optimizations. Here, the Controlling numerical precision enables optimizations. Here, the
@ -353,7 +275,7 @@ Arithmetic (IEEE 754),
refers to the number of exponent bits. refers to the number of exponent bits.
</p> </p>
<table id="org953188f" border="2" cellspacing="0" cellpadding="6" rules="groups" frame="hsides"> <table id="org9327a36" border="2" cellspacing="0" cellpadding="6" rules="groups" frame="hsides">
<colgroup> <colgroup>
@ -374,6 +296,12 @@ refers to the number of exponent bits.
</tbody> </tbody>
</table> </table>
<div class="org-src-container">
<pre class="src src-c"><span style="color: #483d8b;">#define</span> <span style="color: #a0522d;">QMCKL_DEFAULT_PRECISION</span> 53
<span style="color: #483d8b;">#define</span> <span style="color: #a0522d;">QMCKL_DEFAULT_RANGE</span> 11
</pre>
</div>
<div class="org-src-container"> <div class="org-src-container">
<pre class="src src-c"><span style="color: #a020f0;">typedef</span> <span style="color: #a020f0;">struct</span> <span style="color: #228b22;">qmckl_numprec_struct</span> { <pre class="src src-c"><span style="color: #a020f0;">typedef</span> <span style="color: #a020f0;">struct</span> <span style="color: #228b22;">qmckl_numprec_struct</span> {
<span style="color: #228b22;">uint32_t</span> <span style="color: #a0522d;">precision</span>; <span style="color: #228b22;">uint32_t</span> <span style="color: #a0522d;">precision</span>;
@ -397,8 +325,8 @@ integer. The update functions return <code>QMCKL_SUCCESS</code> or
</div> </div>
</div> </div>
<div id="outline-container-org3a86eb7" class="outline-2"> <div id="outline-container-orge25aa72" class="outline-2">
<h2 id="org3a86eb7"><span class="section-number-2">2</span> Precision</h2> <h2 id="orge25aa72"><span class="section-number-2">2</span> Precision</h2>
<div class="outline-text-2" id="text-2"> <div class="outline-text-2" id="text-2">
<p> <p>
<code>qmckl_context_set_numprec_precision</code> modifies the parameter for the <code>qmckl_context_set_numprec_precision</code> modifies the parameter for the
@ -485,8 +413,8 @@ numerical precision in the context.
</div> </div>
</div> </div>
<div id="outline-container-orga1f1c24" class="outline-2"> <div id="outline-container-orgd7a4b6c" class="outline-2">
<h2 id="orga1f1c24"><span class="section-number-2">3</span> Range</h2> <h2 id="orgd7a4b6c"><span class="section-number-2">3</span> Range</h2>
<div class="outline-text-2" id="text-3"> <div class="outline-text-2" id="text-3">
<p> <p>
<code>qmckl_set_numprec_range</code> modifies the parameter for the numerical <code>qmckl_set_numprec_range</code> modifies the parameter for the numerical
@ -561,8 +489,8 @@ range in a given context.
</div> </div>
</div> </div>
</div> </div>
<div id="outline-container-orgd4d90e8" class="outline-2"> <div id="outline-container-orgf55446f" class="outline-2">
<h2 id="orgd4d90e8"><span class="section-number-2">4</span> Helper functions</h2> <h2 id="orgf55446f"><span class="section-number-2">4</span> Helper functions</h2>
<div class="outline-text-2" id="text-4"> <div class="outline-text-2" id="text-4">
<p> <p>
<code>qmckl_get_numprec_epsilon</code> returns \(\epsilon = 2^{1-n}\) where <code>n</code> is the precision. <code>qmckl_get_numprec_epsilon</code> returns \(\epsilon = 2^{1-n}\) where <code>n</code> is the precision.
@ -580,8 +508,7 @@ We need to remove the sign bit from the precision.
</div> </div>
</div> </div>
<div id="postamble" class="status"> <div id="postamble" class="status">
<p class="author">Author: TREX CoE</p> <p class="date">Created: 2021-04-29 Thu 23:28</p>
<p class="date">Created: 2021-04-28 Wed 11:31</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>
</body> </body>

View File

@ -3,12 +3,11 @@
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<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>
<!-- 2021-04-28 Wed 11:31 --> <!-- 2021-04-29 Thu 23:28 -->
<meta http-equiv="Content-Type" content="text/html;charset=utf-8" /> <meta http-equiv="Content-Type" content="text/html;charset=utf-8" />
<meta name="viewport" content="width=device-width, initial-scale=1" /> <meta name="viewport" content="width=device-width, initial-scale=1" />
<title>Testing</title> <title>Testing</title>
<meta name="generator" content="Org mode" /> <meta name="generator" content="Org mode" />
<meta name="author" content="TREX CoE" />
<style type="text/css"> <style type="text/css">
<!--/*--><![CDATA[/*><!--*/ <!--/*--><![CDATA[/*><!--*/
.title { text-align: center; .title { text-align: center;
@ -180,79 +179,6 @@
.org-svg { width: 90%; } .org-svg { width: 90%; }
/*]]>*/--> /*]]>*/-->
</style> </style>
<link rel="stylesheet" title="Standard" href="qmckl.css" type="text/css" />
<script type="text/javascript" src="org-info.js">
/**
*
* @source: org-info.js
*
* @licstart The following is the entire license notice for the
* JavaScript code in org-info.js.
*
* Copyright (C) 2012-2019 Free Software Foundation, Inc.
*
*
* The JavaScript code in this tag is free software: you can
* redistribute it and/or modify it under the terms of the GNU
* General Public License (GNU GPL) as published by the Free Software
* Foundation, either version 3 of the License, or (at your option)
* any later version. The code is distributed WITHOUT ANY WARRANTY;
* without even the implied warranty of MERCHANTABILITY or FITNESS
* FOR A PARTICULAR PURPOSE. See the GNU GPL for more details.
*
* As additional permission under GNU GPL version 3 section 7, you
* may distribute non-source (e.g., minimized or compacted) forms of
* that code without the copy of the GNU GPL normally required by
* section 4, provided you include this license notice and a URL
* through which recipients can access the Corresponding Source.
*
* @licend The above is the entire license notice
* for the JavaScript code in org-info.js.
*
*/
</script>
<script type="text/javascript">
/*
@licstart The following is the entire license notice for the
JavaScript code in this tag.
Copyright (C) 2012-2019 Free Software Foundation, Inc.
The JavaScript code in this tag is free software: you can
redistribute it and/or modify it under the terms of the GNU
General Public License (GNU GPL) as published by the Free Software
Foundation, either version 3 of the License, or (at your option)
any later version. The code is distributed WITHOUT ANY WARRANTY;
without even the implied warranty of MERCHANTABILITY or FITNESS
FOR A PARTICULAR PURPOSE. See the GNU GPL for more details.
As additional permission under GNU GPL version 3 section 7, you
may distribute non-source (e.g., minimized or compacted) forms of
that code without the copy of the GNU GPL normally required by
section 4, provided you include this license notice and a URL
through which recipients can access the Corresponding Source.
@licend The above is the entire license notice
for the JavaScript code in this tag.
*/
<!--/*--><![CDATA[/*><!--*/
org_html_manager.set("TOC_DEPTH", "4");
org_html_manager.set("LINK_HOME", "index.html");
org_html_manager.set("LINK_UP", "");
org_html_manager.set("LOCAL_TOC", "1");
org_html_manager.set("VIEW_BUTTONS", "0");
org_html_manager.set("MOUSE_HINT", "underline");
org_html_manager.set("FIXED_TOC", "0");
org_html_manager.set("TOC", "1");
org_html_manager.set("VIEW", "info");
org_html_manager.setup(); // activate after the parameters are set
/*]]>*///-->
</script>
<script type="text/javascript"> <script type="text/javascript">
/* /*
@licstart The following is the entire license notice for the @licstart The following is the entire license notice for the
@ -301,17 +227,12 @@ for the JavaScript code in this tag.
</script> </script>
</head> </head>
<body> <body>
<div id="org-div-home-and-up"> <div id="content">
<a accesskey="h" href=""> UP </a>
|
<a accesskey="H" href="index.html"> HOME </a>
</div><div id="content">
<h1 class="title">Testing</h1> <h1 class="title">Testing</h1>
</div> </div>
<div id="postamble" class="status"> <div id="postamble" class="status">
<p class="author">Author: TREX CoE</p> <p class="date">Created: 2021-04-29 Thu 23:28</p>
<p class="date">Created: 2021-04-28 Wed 11:31</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>
</body> </body>

View File

@ -1,16 +0,0 @@
# -*- mode: org; -*-
#+HTML_LINK_HOME: index.html
#+OPTIONS: H:4 num:t toc:t \n:nil @:t ::t |:t ^:t -:t f:t *:t <:t d:(HIDE)
# SETUPFILE: ../docs/org-html-themes/org/theme-readtheorg.setup
#+INFOJS_OPT: toc:t mouse:underline path:org-info.js
#+HTML_HEAD: <link rel="stylesheet" title="Standard" href="qmckl.css" type="text/css" />
#+STARTUP: align fold nodlcheck hidestars oddeven lognotestate
#+AUTHOR: TREX CoE
#+LANGUAGE: en