mirror of
https://github.com/TREX-CoE/qmckl.git
synced 2025-01-03 10:06:09 +01:00
Tilde
This commit is contained in:
parent
4e76e6dd83
commit
d2bab284ac
@ -1,7 +1,7 @@
|
|||||||
#+TITLE: QMCkl source code documentation
|
#+TITLE: QMCkl source code documentation
|
||||||
#+EXPORT_FILE_NAME: index.html
|
#+EXPORT_FILE_NAME: index.html
|
||||||
|
|
||||||
#+SETUPFILE: https://fniessen.github.io/org-html-themes/org/theme-readtheorg.setup
|
#+SETUPFILE: https://fniessen.github.io/org-html-themes/org/setup/theme-readtheorg.setup
|
||||||
|
|
||||||
* Introduction
|
* Introduction
|
||||||
|
|
||||||
|
118
src/qmckl_ao.org
118
src/qmckl_ao.org
@ -41,30 +41,30 @@ MunitResult test_qmckl_ao() {
|
|||||||
&& 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}
|
||||||
\end{eqnarray*}
|
\end{eqnarray*}
|
||||||
|
|
||||||
**** =qmckl_ao_power=
|
**** ~qmckl_ao_power~
|
||||||
|
|
||||||
Computes all the powers of the =n= input data up to the given
|
Computes all the powers of the ~n~ input data up to the given
|
||||||
maximum value given in input for each of the $n$ points:
|
maximum value given in input for each of the $n$ points:
|
||||||
|
|
||||||
\[ P_{ij} = X_j^i \]
|
\[ P_{ij} = X_j^i \]
|
||||||
|
|
||||||
***** Arguments
|
***** Arguments
|
||||||
|
|
||||||
| =context= | input | Global state |
|
| ~context~ | input | Global state |
|
||||||
| =n= | input | Number of values |
|
| ~n~ | input | Number of values |
|
||||||
| =X(n)= | input | Array containing the input values |
|
| ~X(n)~ | input | Array containing the input values |
|
||||||
| =LMAX(n)= | input | Array containing the maximum power for each value |
|
| ~LMAX(n)~ | input | Array containing the maximum power for each value |
|
||||||
| =P(LDP,n)= | output | Array containing all the powers of =X= |
|
| ~P(LDP,n)~ | output | Array containing all the powers of ~X~ |
|
||||||
| =LDP= | input | Leading dimension of array =P= |
|
| ~LDP~ | input | Leading dimension of array ~P~ |
|
||||||
|
|
||||||
***** Requirements
|
***** Requirements
|
||||||
|
|
||||||
- =context= is not 0
|
- ~context~ is not 0
|
||||||
- =n= > 0
|
- ~n~ > 0
|
||||||
- =X= is allocated with at least $n \times 8$ bytes
|
- ~X~ is allocated with at least $n \times 8$ bytes
|
||||||
- =LMAX= is allocated with at least $n \times 4$ bytes
|
- ~LMAX~ is allocated with at least $n \times 4$ bytes
|
||||||
- =P= is allocated with at least $n \times \max_i \text{LMAX}_i \times 8$ bytes
|
- ~P~ is allocated with at least $n \times \max_i \text{LMAX}_i \times 8$ bytes
|
||||||
- =LDP= >= $\max_i$ =LMAX[i]=
|
- ~LDP~ >= $\max_i$ ~LMAX[i]~
|
||||||
|
|
||||||
***** Header
|
***** Header
|
||||||
#+BEGIN_SRC C :tangle qmckl.h
|
#+BEGIN_SRC C :tangle qmckl.h
|
||||||
@ -193,48 +193,48 @@ munit_assert_int(0, ==, test_qmckl_ao_power(context));
|
|||||||
#+END_SRC
|
#+END_SRC
|
||||||
|
|
||||||
|
|
||||||
**** =qmckl_ao_polynomial_vgl=
|
**** ~qmckl_ao_polynomial_vgl~
|
||||||
|
|
||||||
Computes the values, gradients and Laplacians at a given point of
|
Computes the values, gradients and Laplacians at a given point of
|
||||||
all polynomials with an angular momentum up to =lmax=.
|
all polynomials with an angular momentum up to ~lmax~.
|
||||||
|
|
||||||
***** Arguments
|
***** Arguments
|
||||||
|
|
||||||
| =context= | input | Global state |
|
| ~context~ | input | Global state |
|
||||||
| =X(3)= | input | Array containing the coordinates of the points |
|
| ~X(3)~ | input | Array containing the coordinates of the points |
|
||||||
| =R(3)= | input | Array containing the x,y,z coordinates of the center |
|
| ~R(3)~ | input | Array containing the x,y,z coordinates of the center |
|
||||||
| =lmax= | input | Maximum angular momentum |
|
| ~lmax~ | input | Maximum angular momentum |
|
||||||
| =n= | output | Number of computed polynomials |
|
| ~n~ | output | Number of computed polynomials |
|
||||||
| =L(ldl,n)= | output | Contains a,b,c for all =n= results |
|
| ~L(ldl,n)~ | output | Contains a,b,c for all ~n~ results |
|
||||||
| =ldl= | input | Leading dimension of =L= |
|
| ~ldl~ | input | Leading dimension of ~L~ |
|
||||||
| =VGL(ldv,n)= | output | Value, gradients and Laplacian of the polynomials |
|
| ~VGL(ldv,n)~ | output | Value, gradients and Laplacian of the polynomials |
|
||||||
| =ldv= | input | Leading dimension of array =VGL= |
|
| ~ldv~ | input | Leading dimension of array ~VGL~ |
|
||||||
|
|
||||||
***** Requirements
|
***** Requirements
|
||||||
|
|
||||||
- =context= is not 0
|
- ~context~ is not 0
|
||||||
- =n= > 0
|
- ~n~ > 0
|
||||||
- =lmax= >= 0
|
- ~lmax~ >= 0
|
||||||
- =ldl= >= 3
|
- ~ldl~ >= 3
|
||||||
- =ldv= >= 5
|
- ~ldv~ >= 5
|
||||||
- =X= is allocated with at least $3 \times 8$ bytes
|
- ~X~ is allocated with at least $3 \times 8$ bytes
|
||||||
- =R= is allocated with at least $3 \times 8$ bytes
|
- ~R~ is allocated with at least $3 \times 8$ bytes
|
||||||
- =n= >= =(lmax+1)(lmax+2)(lmax+3)/6=
|
- ~n~ >= ~(lmax+1)(lmax+2)(lmax+3)/6~
|
||||||
- =L= is allocated with at least $3 \times n \times 4$ bytes
|
- ~L~ is allocated with at least $3 \times n \times 4$ bytes
|
||||||
- =VGL= is allocated with at least $5 \times n \times 8$ bytes
|
- ~VGL~ is allocated with at least $5 \times n \times 8$ bytes
|
||||||
- On output, =n= should be equal to =(lmax+1)(lmax+2)(lmax+3)/6=
|
- On output, ~n~ should be equal to ~(lmax+1)(lmax+2)(lmax+3)/6~
|
||||||
- On output, the powers are given in the following order (l=a+b+c):
|
- On output, the powers are given in the following order (l=a+b+c):
|
||||||
- Increase values of =l=
|
- Increase values of ~l~
|
||||||
- Within a given value of =l=, alphabetical order of the
|
- Within a given value of ~l~, alphabetical order of the
|
||||||
string made by a*"x" + b*"y" + c*"z" (in Python notation).
|
string made by a*"x" + b*"y" + c*"z" (in Python notation).
|
||||||
For example, with a=0, b=2 and c=1 the string is "yyz"
|
For example, with a=0, b=2 and c=1 the string is "yyz"
|
||||||
|
|
||||||
***** Error codes
|
***** Error codes
|
||||||
|
|
||||||
| -1 | Null context |
|
| -1 | Null context |
|
||||||
| -2 | Inconsistent =ldl= |
|
| -2 | Inconsistent ~ldl~ |
|
||||||
| -3 | Inconsistent =ldv= |
|
| -3 | Inconsistent ~ldv~ |
|
||||||
| -4 | Inconsistent =lmax= |
|
| -4 | Inconsistent ~lmax~ |
|
||||||
|
|
||||||
***** Header
|
***** Header
|
||||||
#+BEGIN_SRC C :tangle qmckl.h
|
#+BEGIN_SRC C :tangle qmckl.h
|
||||||
@ -512,14 +512,13 @@ end function test_qmckl_ao_polynomial_vgl
|
|||||||
int test_qmckl_ao_polynomial_vgl(qmckl_context context);
|
int test_qmckl_ao_polynomial_vgl(qmckl_context context);
|
||||||
munit_assert_int(0, ==, test_qmckl_ao_polynomial_vgl(context));
|
munit_assert_int(0, ==, test_qmckl_ao_polynomial_vgl(context));
|
||||||
#+END_SRC
|
#+END_SRC
|
||||||
#+END_SRC
|
|
||||||
|
|
||||||
*** Gaussian basis functions
|
*** Gaussian basis functions
|
||||||
|
|
||||||
**** =qmckl_ao_gaussian_vgl=
|
**** ~qmckl_ao_gaussian_vgl~
|
||||||
|
|
||||||
Computes the values, gradients and Laplacians at a given point of
|
Computes the values, gradients and Laplacians at a given point of
|
||||||
=n= Gaussian functions centered at the same point:
|
~n~ Gaussian functions centered at the same point:
|
||||||
|
|
||||||
\[ v_i = exp(-a_i |X-R|^2) \]
|
\[ v_i = exp(-a_i |X-R|^2) \]
|
||||||
\[ \nabla_x v_i = -2 a_i (X_x - R_x) v_i \]
|
\[ \nabla_x v_i = -2 a_i (X_x - R_x) v_i \]
|
||||||
@ -529,24 +528,24 @@ munit_assert_int(0, ==, test_qmckl_ao_polynomial_vgl(context));
|
|||||||
|
|
||||||
***** Arguments
|
***** Arguments
|
||||||
|
|
||||||
| =context= | input | Global state |
|
| ~context~ | input | Global state |
|
||||||
| =X(3)= | input | Array containing the coordinates of the points |
|
| ~X(3)~ | input | Array containing the coordinates of the points |
|
||||||
| =R(3)= | input | Array containing the x,y,z coordinates of the center |
|
| ~R(3)~ | input | Array containing the x,y,z coordinates of the center |
|
||||||
| =n= | input | Number of computed gaussians |
|
| ~n~ | input | Number of computed gaussians |
|
||||||
| =A(n)= | input | Exponents of the Gaussians |
|
| ~A(n)~ | input | Exponents of the Gaussians |
|
||||||
| =VGL(ldv,5)= | output | Value, gradients and Laplacian of the Gaussians |
|
| ~VGL(ldv,5)~ | output | Value, gradients and Laplacian of the Gaussians |
|
||||||
| =ldv= | input | Leading dimension of array =VGL= |
|
| ~ldv~ | input | Leading dimension of array ~VGL~ |
|
||||||
|
|
||||||
***** Requirements
|
***** Requirements
|
||||||
|
|
||||||
- =context= is not 0
|
- ~context~ is not 0
|
||||||
- =n= > 0
|
- ~n~ > 0
|
||||||
- =ldv= >= 5
|
- ~ldv~ >= 5
|
||||||
- =A(i)= > 0 for all =i=
|
- ~A(i)~ > 0 for all ~i~
|
||||||
- =X= is allocated with at least $3 \times 8$ bytes
|
- ~X~ is allocated with at least $3 \times 8$ bytes
|
||||||
- =R= is allocated with at least $3 \times 8$ bytes
|
- ~R~ is allocated with at least $3 \times 8$ bytes
|
||||||
- =A= is allocated with at least $n \times 8$ bytes
|
- ~A~ is allocated with at least $n \times 8$ bytes
|
||||||
- =VGL= is allocated with at least $n \times 5 \times 8$ bytes
|
- ~VGL~ is allocated with at least $n \times 5 \times 8$ bytes
|
||||||
|
|
||||||
***** Header
|
***** Header
|
||||||
#+BEGIN_SRC C :tangle qmckl.h
|
#+BEGIN_SRC C :tangle qmckl.h
|
||||||
@ -740,3 +739,4 @@ munit_assert_int(0, ==, test_qmckl_ao_gaussian_vgl(context));
|
|||||||
|
|
||||||
# -*- mode: org -*-
|
# -*- mode: org -*-
|
||||||
# vim: syntax=c
|
# vim: syntax=c
|
||||||
|
|
||||||
|
@ -24,8 +24,8 @@ MunitResult test_qmckl_context() {
|
|||||||
is stored in the following data structure, which can't be seen
|
is stored in the following data structure, which can't be seen
|
||||||
outside of the library. To simplify compatibility with other
|
outside of the library. To simplify compatibility with other
|
||||||
languages, the pointer to the internal data structure is converted
|
languages, the pointer to the internal data structure is converted
|
||||||
into a 64-bit signed integer, defined in the =qmckl_context= type.
|
into a 64-bit signed integer, defined in the ~qmckl_context~ type.
|
||||||
A value of 0 for the context is equivalent to a =NULL= pointer.
|
A value of 0 for the context is equivalent to a ~NULL~ pointer.
|
||||||
|
|
||||||
# The following code block should be kept to insert comments into
|
# The following code block should be kept to insert comments into
|
||||||
# the qmckl.h file
|
# the qmckl.h file
|
||||||
@ -89,10 +89,10 @@ qmckl_context new_context;
|
|||||||
#+END_SRC
|
#+END_SRC
|
||||||
|
|
||||||
|
|
||||||
**** =qmckl_context_check=
|
**** ~qmckl_context_check~
|
||||||
|
|
||||||
Checks if the domain pointed by the pointer is a valid context.
|
Checks if the domain pointed by the pointer is a valid context.
|
||||||
Returns the input =qmckl_context= if the context is valid, 0
|
Returns the input ~qmckl_context~ if the context is valid, 0
|
||||||
otherwise.
|
otherwise.
|
||||||
|
|
||||||
#+BEGIN_SRC C :comments org :tangle qmckl.h
|
#+BEGIN_SRC C :comments org :tangle qmckl.h
|
||||||
@ -113,11 +113,11 @@ qmckl_context qmckl_context_check(const qmckl_context context) {
|
|||||||
}
|
}
|
||||||
#+END_SRC
|
#+END_SRC
|
||||||
|
|
||||||
**** =qmckl_context_create=
|
**** ~qmckl_context_create~
|
||||||
|
|
||||||
To create a new context, use =qmckl_context_create()=.
|
To create a new context, use ~qmckl_context_create()~.
|
||||||
- On success, returns a pointer to a context using the =qmckl_context= type
|
- On success, returns a pointer to a context using the ~qmckl_context~ type
|
||||||
- Returns 0 upon failure to allocate the internal data structure
|
- Returns ~0~ upon failure to allocate the internal data structure
|
||||||
|
|
||||||
#+BEGIN_SRC C :comments org :tangle qmckl.h
|
#+BEGIN_SRC C :comments org :tangle qmckl.h
|
||||||
qmckl_context qmckl_context_create();
|
qmckl_context qmckl_context_create();
|
||||||
@ -159,11 +159,11 @@ munit_assert_int64( context, !=, (qmckl_context) 0);
|
|||||||
munit_assert_int64( qmckl_context_check(context), ==, context);
|
munit_assert_int64( qmckl_context_check(context), ==, context);
|
||||||
#+END_SRC
|
#+END_SRC
|
||||||
|
|
||||||
**** =qmckl_context_copy=
|
**** ~qmckl_context_copy~
|
||||||
|
|
||||||
This function makes a shallow copy of the current context.
|
This function makes a shallow copy of the current context.
|
||||||
- Copying the 0-valued context returns 0
|
- Copying the 0-valued context returns 0
|
||||||
- On success, returns a pointer to the new context using the =qmckl_context= type
|
- On success, returns a pointer to the new context using the ~qmckl_context~ type
|
||||||
- Returns 0 upon failure to allocate the internal data structure
|
- Returns 0 upon failure to allocate the internal data structure
|
||||||
for the new context
|
for the new context
|
||||||
|
|
||||||
@ -218,7 +218,7 @@ munit_assert_int64(new_context, !=, context);
|
|||||||
munit_assert_int64(qmckl_context_check(new_context), ==, new_context);
|
munit_assert_int64(qmckl_context_check(new_context), ==, new_context);
|
||||||
#+END_SRC
|
#+END_SRC
|
||||||
|
|
||||||
**** =qmckl_context_previous=
|
**** ~qmckl_context_previous~
|
||||||
|
|
||||||
Returns the previous context
|
Returns the previous context
|
||||||
- On success, returns the ancestor of the current context
|
- On success, returns the ancestor of the current context
|
||||||
@ -261,7 +261,7 @@ munit_assert_int64(qmckl_context_previous(context), ==, (qmckl_context) 0);
|
|||||||
munit_assert_int64(qmckl_context_previous((qmckl_context) 0), ==, (qmckl_context) 0);
|
munit_assert_int64(qmckl_context_previous((qmckl_context) 0), ==, (qmckl_context) 0);
|
||||||
#+END_SRC
|
#+END_SRC
|
||||||
|
|
||||||
**** =qmckl_context_destroy=
|
**** ~qmckl_context_destroy~
|
||||||
|
|
||||||
Destroys the current context, leaving the ancestors untouched.
|
Destroys the current context, leaving the ancestors untouched.
|
||||||
- Succeeds if the current context is properly destroyed
|
- Succeeds if the current context is properly destroyed
|
||||||
@ -351,20 +351,20 @@ COEFFICIENT = [ 0.006068, 0.045308, 0.202822, 0.503903, 0.383421,
|
|||||||
0.503903, 0.383421, 1.0, 1.0, 1.0, 1.0, 1.0]
|
0.503903, 0.383421, 1.0, 1.0, 1.0, 1.0, 1.0]
|
||||||
#+END_EXAMPLE
|
#+END_EXAMPLE
|
||||||
|
|
||||||
**** =qmckl_context_update_ao_basis=
|
**** ~qmckl_context_update_ao_basis~
|
||||||
|
|
||||||
Updates the data describing the AO basis set into the context.
|
Updates the data describing the AO basis set into the context.
|
||||||
|
|
||||||
| =type= | Gaussian or Slater |
|
| ~type~ | Gaussian or Slater |
|
||||||
| =shell_num= | Number of shells |
|
| ~shell_num~ | Number of shells |
|
||||||
| =prim_num= | Total number of primitives |
|
| ~prim_num~ | Total number of primitives |
|
||||||
| =SHELL_CENTER(shell_num)= | Id of the nucleus on which the shell is centered |
|
| ~SHELL_CENTER(shell_num)~ | Id of the nucleus on which the shell is centered |
|
||||||
| =SHELL_ANG_MOM(shell_num)= | Id of the nucleus on which the shell is centered |
|
| ~SHELL_ANG_MOM(shell_num)~ | Id of the nucleus on which the shell is centered |
|
||||||
| =SHELL_FACTOR(shell_num)= | Normalization factor for the shell |
|
| ~SHELL_FACTOR(shell_num)~ | Normalization factor for the shell |
|
||||||
| =SHELL_PRIM_NUM(shell_num)= | Number of primitives in the shell |
|
| ~SHELL_PRIM_NUM(shell_num)~ | Number of primitives in the shell |
|
||||||
| =SHELL_PRIM_INDEX(shell_num)= | Address of the first primitive of the shelll in the =EXPONENT= array |
|
| ~SHELL_PRIM_INDEX(shell_num)~ | Address of the first primitive of the shelll in the ~EXPONENT~ array |
|
||||||
| =EXPONENT(prim_num)= | Array of exponents |
|
| ~EXPONENT(prim_num)~ | Array of exponents |
|
||||||
| =COEFFICIENT(prim_num)= | Array of coefficients |
|
| ~COEFFICIENT(prim_num)~ | Array of coefficients |
|
||||||
|
|
||||||
#+BEGIN_SRC C :comments org :tangle qmckl.h
|
#+BEGIN_SRC C :comments org :tangle qmckl.h
|
||||||
qmckl_exit_code
|
qmckl_exit_code
|
||||||
@ -515,20 +515,20 @@ qmckl_context_update_ao_basis(qmckl_context context , const char type
|
|||||||
|
|
||||||
***** TODO Test
|
***** TODO Test
|
||||||
|
|
||||||
**** =qmckl_context_set_ao_basis=
|
**** ~qmckl_context_set_ao_basis~
|
||||||
|
|
||||||
Sets the data describing the AO basis set into the context.
|
Sets the data describing the AO basis set into the context.
|
||||||
|
|
||||||
| =type= | Gaussian or Slater |
|
| ~type~ | Gaussian or Slater |
|
||||||
| =shell_num= | Number of shells |
|
| ~shell_num~ | Number of shells |
|
||||||
| =prim_num= | Total number of primitives |
|
| ~prim_num~ | Total number of primitives |
|
||||||
| =SHELL_CENTER(shell_num)= | Id of the nucleus on which the shell is centered |
|
| ~SHELL_CENTER(shell_num)~ | Id of the nucleus on which the shell is centered |
|
||||||
| =SHELL_ANG_MOM(shell_num)= | Id of the nucleus on which the shell is centered |
|
| ~SHELL_ANG_MOM(shell_num)~ | Id of the nucleus on which the shell is centered |
|
||||||
| =SHELL_FACTOR(shell_num)= | Normalization factor for the shell |
|
| ~SHELL_FACTOR(shell_num)~ | Normalization factor for the shell |
|
||||||
| =SHELL_PRIM_NUM(shell_num)= | Number of primitives in the shell |
|
| ~SHELL_PRIM_NUM(shell_num)~ | Number of primitives in the shell |
|
||||||
| =SHELL_PRIM_INDEX(shell_num)= | Address of the first primitive of the shelll in the =EXPONENT= array |
|
| ~SHELL_PRIM_INDEX(shell_num)~ | Address of the first primitive of the shelll in the ~EXPONENT~ array |
|
||||||
| =EXPONENT(prim_num)= | Array of exponents |
|
| ~EXPONENT(prim_num)~ | Array of exponents |
|
||||||
| =COEFFICIENT(prim_num)= | Array of coefficients |
|
| ~COEFFICIENT(prim_num)~ | Array of coefficients |
|
||||||
|
|
||||||
#+BEGIN_SRC C :comments org :tangle qmckl.h
|
#+BEGIN_SRC C :comments org :tangle qmckl.h
|
||||||
qmckl_context
|
qmckl_context
|
||||||
@ -592,15 +592,15 @@ qmckl_context_set_ao_basis(const qmckl_context context , const char typ
|
|||||||
*** Precision
|
*** Precision
|
||||||
|
|
||||||
The following functions set and get the expected required
|
The following functions set and get the expected required
|
||||||
precision and range. =precision= should be an integer between 2
|
precision and range. ~precision~ should be an integer between 2
|
||||||
and 53, and =range= should be an integer between 2 and 11.
|
and 53, and ~range~ should be an integer between 2 and 11.
|
||||||
|
|
||||||
The setter functions functions return a new context as a 64-bit
|
The setter functions functions return a new context as a 64-bit
|
||||||
integer. The getter functions return the value, as a 32-bit
|
integer. The getter functions return the value, as a 32-bit
|
||||||
integer. The update functions return =QMCKL_SUCCESS= or
|
integer. The update functions return ~QMCKL_SUCCESS~ or
|
||||||
=QMCKL_FAILURE=.
|
~QMCKL_FAILURE~.
|
||||||
|
|
||||||
**** =qmckl_context_update_precision=
|
**** ~qmckl_context_update_precision~
|
||||||
Modifies the parameter for the numerical precision in a given context.
|
Modifies the parameter for the numerical precision in a given context.
|
||||||
#+BEGIN_SRC C :comments org :tangle qmckl.h
|
#+BEGIN_SRC C :comments org :tangle qmckl.h
|
||||||
qmckl_exit_code qmckl_context_update_precision(const qmckl_context context, const int precision);
|
qmckl_exit_code qmckl_context_update_precision(const qmckl_context context, const int precision);
|
||||||
@ -633,7 +633,7 @@ qmckl_exit_code qmckl_context_update_precision(const qmckl_context context, cons
|
|||||||
#+END_SRC
|
#+END_SRC
|
||||||
|
|
||||||
***** TODO Tests :noexport:
|
***** TODO Tests :noexport:
|
||||||
**** =qmckl_context_update_range=
|
**** ~qmckl_context_update_range~
|
||||||
Modifies the parameter for the numerical range in a given context.
|
Modifies the parameter for the numerical range in a given context.
|
||||||
#+BEGIN_SRC C :comments org :tangle qmckl.h
|
#+BEGIN_SRC C :comments org :tangle qmckl.h
|
||||||
qmckl_exit_code qmckl_context_update_range(const qmckl_context context, const int range);
|
qmckl_exit_code qmckl_context_update_range(const qmckl_context context, const int range);
|
||||||
@ -666,7 +666,7 @@ qmckl_exit_code qmckl_context_update_range(const qmckl_context context, const in
|
|||||||
#+END_SRC
|
#+END_SRC
|
||||||
|
|
||||||
***** TODO Tests :noexport:
|
***** TODO Tests :noexport:
|
||||||
**** =qmckl_context_set_precision=
|
**** ~qmckl_context_set_precision~
|
||||||
Returns a copy of the context with a different precision parameter.
|
Returns a copy of the context with a different precision parameter.
|
||||||
#+BEGIN_SRC C :comments org :tangle qmckl.h
|
#+BEGIN_SRC C :comments org :tangle qmckl.h
|
||||||
qmckl_context qmckl_context_set_precision(const qmckl_context context, const int precision);
|
qmckl_context qmckl_context_set_precision(const qmckl_context context, const int precision);
|
||||||
@ -696,7 +696,7 @@ qmckl_context qmckl_context_set_precision(const qmckl_context context, const int
|
|||||||
#+END_SRC
|
#+END_SRC
|
||||||
|
|
||||||
***** TODO Tests :noexport:
|
***** TODO Tests :noexport:
|
||||||
**** =qmckl_context_set_range=
|
**** ~qmckl_context_set_range~
|
||||||
Returns a copy of the context with a different precision parameter.
|
Returns a copy of the context with a different precision parameter.
|
||||||
#+BEGIN_SRC C :comments org :tangle qmckl.h
|
#+BEGIN_SRC C :comments org :tangle qmckl.h
|
||||||
qmckl_context qmckl_context_set_range(const qmckl_context context, const int range);
|
qmckl_context qmckl_context_set_range(const qmckl_context context, const int range);
|
||||||
@ -727,7 +727,7 @@ qmckl_context qmckl_context_set_range(const qmckl_context context, const int ran
|
|||||||
|
|
||||||
***** TODO Tests :noexport:
|
***** TODO Tests :noexport:
|
||||||
|
|
||||||
**** =qmckl_context_get_precision=
|
**** ~qmckl_context_get_precision~
|
||||||
Returns the value of the numerical precision in the context
|
Returns the value of the numerical precision in the context
|
||||||
#+BEGIN_SRC C :comments org :tangle qmckl.h
|
#+BEGIN_SRC C :comments org :tangle qmckl.h
|
||||||
int32_t qmckl_context_get_precision(const qmckl_context context);
|
int32_t qmckl_context_get_precision(const qmckl_context context);
|
||||||
@ -752,7 +752,7 @@ int qmckl_context_get_precision(const qmckl_context context) {
|
|||||||
#+END_SRC
|
#+END_SRC
|
||||||
|
|
||||||
***** TODO Tests :noexport:
|
***** TODO Tests :noexport:
|
||||||
**** =qmckl_context_get_range=
|
**** ~qmckl_context_get_range~
|
||||||
Returns the value of the numerical range in the context
|
Returns the value of the numerical range in the context
|
||||||
#+BEGIN_SRC C :comments org :tangle qmckl.h
|
#+BEGIN_SRC C :comments org :tangle qmckl.h
|
||||||
int32_t qmckl_context_get_range(const qmckl_context context);
|
int32_t qmckl_context_get_range(const qmckl_context context);
|
||||||
@ -778,8 +778,8 @@ int qmckl_context_get_range(const qmckl_context context) {
|
|||||||
|
|
||||||
***** TODO Tests :noexport:
|
***** TODO Tests :noexport:
|
||||||
|
|
||||||
**** =qmckl_context_get_epsilon=
|
**** ~qmckl_context_get_epsilon~
|
||||||
Returns $\epsilon = 2^{1-n}$ where =n= is the precision
|
Returns $\epsilon = 2^{1-n}$ where ~n~ is the precision
|
||||||
#+BEGIN_SRC C :comments org :tangle qmckl.h
|
#+BEGIN_SRC C :comments org :tangle qmckl.h
|
||||||
double qmckl_context_get_epsilon(const qmckl_context context);
|
double qmckl_context_get_epsilon(const qmckl_context context);
|
||||||
#+END_SRC
|
#+END_SRC
|
||||||
|
@ -20,7 +20,7 @@ MunitResult test_qmckl_distance() {
|
|||||||
|
|
||||||
*** Squared distance
|
*** Squared distance
|
||||||
|
|
||||||
**** =qmckl_distance_sq=
|
**** ~qmckl_distance_sq~
|
||||||
|
|
||||||
Computes the matrix of the squared distances between all pairs of
|
Computes the matrix of the squared distances between all pairs of
|
||||||
points in two sets, one point within each set:
|
points in two sets, one point within each set:
|
||||||
@ -30,35 +30,35 @@ MunitResult test_qmckl_distance() {
|
|||||||
|
|
||||||
***** Arguments
|
***** Arguments
|
||||||
|
|
||||||
| =context= | input | Global state |
|
| ~context~ | input | Global state |
|
||||||
| =transa= | input | Array =A= is =N=: Normal, =T=: Transposed |
|
| ~transa~ | input | Array ~A~ is ~N~: Normal, ~T~: Transposed |
|
||||||
| =transb= | input | Array =B= is =N=: Normal, =T=: Transposed |
|
| ~transb~ | input | Array ~B~ is ~N~: Normal, ~T~: Transposed |
|
||||||
| =m= | input | Number of points in the first set |
|
| ~m~ | input | Number of points in the first set |
|
||||||
| =n= | input | Number of points in the second set |
|
| ~n~ | input | Number of points in the second set |
|
||||||
| =A(lda,3)= | input | Array containing the $m \times 3$ matrix $A$ |
|
| ~A(lda,3)~ | input | Array containing the $m \times 3$ matrix $A$ |
|
||||||
| =lda= | input | Leading dimension of array =A= |
|
| ~lda~ | input | Leading dimension of array ~A~ |
|
||||||
| =B(ldb,3)= | input | Array containing the $n \times 3$ matrix $B$ |
|
| ~B(ldb,3)~ | input | Array containing the $n \times 3$ matrix $B$ |
|
||||||
| =ldb= | input | Leading dimension of array =B= |
|
| ~ldb~ | input | Leading dimension of array ~B~ |
|
||||||
| =C(ldc,n)= | output | Array containing the $m \times n$ matrix $C$ |
|
| ~C(ldc,n)~ | output | Array containing the $m \times n$ matrix $C$ |
|
||||||
| =ldc= | input | Leading dimension of array =C= |
|
| ~ldc~ | input | Leading dimension of array ~C~ |
|
||||||
|
|
||||||
***** Requirements
|
***** Requirements
|
||||||
|
|
||||||
- =context= is not 0
|
- ~context~ is not 0
|
||||||
- =m= > 0
|
- ~m~ > 0
|
||||||
- =n= > 0
|
- ~n~ > 0
|
||||||
- =lda= >= 3 if =transa= is =N=
|
- ~lda~ >= 3 if ~transa~ is ~N~
|
||||||
- =lda= >= m if =transa= is =T=
|
- ~lda~ >= m if ~transa~ is ~T~
|
||||||
- =ldb= >= 3 if =transb= is =N=
|
- ~ldb~ >= 3 if ~transb~ is ~N~
|
||||||
- =ldb= >= n if =transb= is =T=
|
- ~ldb~ >= n if ~transb~ is ~T~
|
||||||
- =ldc= >= m if =transa= is =
|
- ~ldc~ >= m
|
||||||
- =A= is allocated with at least $3 \times m \times 8$ bytes
|
- ~A~ is allocated with at least $3 \times m \times 8$ bytes
|
||||||
- =B= is allocated with at least $3 \times n \times 8$ bytes
|
- ~B~ is allocated with at least $3 \times n \times 8$ bytes
|
||||||
- =C= is allocated with at least $m \times n \times 8$ bytes
|
- ~C~ is allocated with at least $m \times n \times 8$ bytes
|
||||||
|
|
||||||
***** Performance
|
***** Performance
|
||||||
|
|
||||||
This function might be more efficient when =A= and =B= are
|
This function might be more efficient when ~A~ and ~B~ are
|
||||||
transposed.
|
transposed.
|
||||||
|
|
||||||
#+BEGIN_SRC C :comments org :tangle qmckl.h
|
#+BEGIN_SRC C :comments org :tangle qmckl.h
|
||||||
|
@ -18,7 +18,7 @@
|
|||||||
MunitResult test_qmckl_memory() {
|
MunitResult test_qmckl_memory() {
|
||||||
#+END_SRC
|
#+END_SRC
|
||||||
|
|
||||||
*** =qmckl_malloc=
|
*** ~qmckl_malloc~
|
||||||
|
|
||||||
Memory allocation function, letting the library choose how the
|
Memory allocation function, letting the library choose how the
|
||||||
memory will be allocated, and a pointer is returned to the user.
|
memory will be allocated, and a pointer is returned to the user.
|
||||||
@ -61,7 +61,7 @@ munit_assert_int(a[1], ==, 2);
|
|||||||
munit_assert_int(a[2], ==, 3);
|
munit_assert_int(a[2], ==, 3);
|
||||||
#+END_SRC
|
#+END_SRC
|
||||||
|
|
||||||
*** =qmckl_free=
|
*** ~qmckl_free~
|
||||||
|
|
||||||
#+BEGIN_SRC C :tangle qmckl.h
|
#+BEGIN_SRC C :tangle qmckl.h
|
||||||
void qmckl_free(void *ptr);
|
void qmckl_free(void *ptr);
|
||||||
|
Loading…
Reference in New Issue
Block a user