diff --git a/README.html b/README.html index 00d9fa2..50d42d3 100644 --- a/README.html +++ b/README.html @@ -3,7 +3,7 @@ "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> - + QMCkl source code documentation @@ -356,7 +356,7 @@ and bug reports should be submitted at

Author: TREX CoE

-

Created: 2021-10-06 Wed 21:45

+

Created: 2021-10-10 Sun 14:25

Validate

diff --git a/qmckl.html b/qmckl.html index 0358e4c..69bac62 100644 --- a/qmckl.html +++ b/qmckl.html @@ -3,7 +3,7 @@ "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> - + Introduction @@ -333,30 +333,30 @@ for the JavaScript code in this tag.

Table of Contents

-
-

1 Using QMCkl

+
+

1 Using QMCkl

The qmckl.h header file installed in the ${prefix}/include directory @@ -385,12 +385,12 @@ Both files are located in the include/ directory.

-
-

2 Developing in QMCkl

+
+

2 Developing in QMCkl

-
-

2.1 Literate programming

+
+

2.1 Literate programming

In a traditional source code, most of the lines of source files of a program @@ -435,8 +435,8 @@ interactively, in the same spirit as Jupyter notebooks.

-
-

2.2 Source code editing

+
+

2.2 Source code editing

For a tutorial on literate programming with org-mode, follow this link. @@ -467,8 +467,8 @@ org-mode.

-
-

2.3 Choice of the programming language

+
+

2.3 Choice of the programming language

Most of the codes of the TREX CoE are written in Fortran with some scripts in @@ -516,8 +516,8 @@ For more guidelines on using Fortran to generate a C interface, see

-
-

2.4 Coding rules

+
+

2.4 Coding rules

The authors should follow the recommendations of the C99 @@ -535,8 +535,8 @@ Compliance can be checked with cppcheck as:

-
-

2.5 Design of the library

+
+

2.5 Design of the library

The proposed API should allow the library to: deal with memory transfers @@ -547,8 +547,8 @@ functions (see below).

-
-

2.6 Naming conventions

+
+

2.6 Naming conventions

To avoid namespace collisions, we use qmckl_ as a prefix for all exported @@ -573,8 +573,8 @@ form is allowed.

-
-

2.7 Application programming interface

+
+

2.7 Application programming interface

In the C language, the number of bits used by the integer types can change @@ -606,15 +606,15 @@ bindings in other languages in other repositories.

-
-

2.8 Global state

+
+

2.8 Global state

Global variables should be avoided in the library, because it is possible that one single program needs to use multiple instances of the library. To solve this problem we propose to use a pointer to a context variable, built by the library with the -qmckl_context_create function. The =context= contains the global +qmckl_context_create function. The =context= contains the global state of the library, and is used as the first argument of many QMCkl functions.

@@ -628,8 +628,8 @@ the state is done by setters and getters, prefixed by
-
-

2.9 Headers

+
+

2.9 Headers

A single qmckl.h header to be distributed by the library @@ -717,8 +717,8 @@ and the types definitions should be written in the *fh_type.f90 fil

-
-

2.10 Low-level functions

+
+

2.10 Low-level functions

Low-level functions are very simple functions which are leaves of @@ -727,14 +727,14 @@ the function call tree (they don't call any other QMCkl function).

These functions are pure, and unaware of the QMCkl -context. They are not allowed to allocate/deallocate memory, and +context. They are not allowed to allocate/deallocate memory, and if they need temporary memory it should be provided in input.

-
-

2.11 High-level functions

+
+

2.11 High-level functions

High-level functions are at the top of the function call tree. @@ -747,27 +747,27 @@ temporary storage, to simplify the use of accelerators.

The high-level functions should be pure, unless the introduction of non-purity is justified. All the side effects should be made in -the context variable. +the context variable.

-
-

2.12 Numerical precision

+
+

2.12 Numerical precision

The number of bits of precision required for a function should be given as an input of low-level computational functions. This input will be used to define the values of the different thresholds that might be used to avoid computing unnecessary noise. High-level -functions will use the precision specified in the context +functions will use the precision specified in the context variable.

-
-

2.13 Algorithms

+
+

2.13 Algorithms

Reducing the scaling of an algorithm usually implies also reducing @@ -783,7 +783,7 @@ implemented adapted to different problem sizes.

Author: TREX CoE

-

Created: 2021-10-06 Wed 21:45

+

Created: 2021-10-10 Sun 14:26

Validate

diff --git a/qmckl_ao.html b/qmckl_ao.html index 212bbf9..003657d 100644 --- a/qmckl_ao.html +++ b/qmckl_ao.html @@ -3,7 +3,7 @@ "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> - + Atomic Orbitals @@ -333,71 +333,71 @@ for the JavaScript code in this tag.

Table of Contents

-
-

1 Context

+
+

1 Context

The following arrays are stored in the context: @@ -679,8 +679,8 @@ prim_factor = [ 1.0006253235944540e+01, 2.4169531573445120e+00, 7.96109248497664

-
-

1.1 Data structure

+
+

1.1 Data structure

typedef struct qmckl_ao_basis_struct {
@@ -753,8 +753,8 @@ this mechanism.
 
-
-

1.2 Access functions

+
+

1.2 Access functions

When all the data for the AOs have been provided, the following @@ -768,8 +768,8 @@ function returns true.

-
-

1.3 Initialization functions

+
+

1.3 Initialization functions

To set the basis set, all the following functions need to be @@ -807,20 +807,20 @@ the context.

-
-

1.4 Fortran interfaces

+
+

1.4 Fortran interfaces

-
-

2 Radial part

+
+

2 Radial part

-
-

2.1 TODO Helper functions to accelerate calculations

+
+

2.1 TODO Helper functions to accelerate calculations

-
-

2.2 General functions for Gaussian basis functions

+
+

2.2 General functions for Gaussian basis functions

qmckl_ao_gaussian_vgl computes the values, gradients and @@ -1052,18 +1052,18 @@ Requirements

-
-

2.3 TODO General functions for Slater basis functions

+
+

2.3 TODO General functions for Slater basis functions

-
-

2.4 TODO General functions for Radial functions on a grid

+
+

2.4 TODO General functions for Radial functions on a grid

-
-

2.5 Computation of primitives

+
+

2.5 Computation of primitives

-
-

2.5.1 Get

+
+

2.5.1 Get

qmckl_exit_code qmckl_get_ao_basis_primitive_vgl(qmckl_context context, double* const primitive_vgl);
@@ -1072,14 +1072,14 @@ Requirements
 
-
-

2.5.2 Provide

+
+

2.5.2 Provide

-
-

2.5.3 Compute

+
+

2.5.3 Compute

- +
@@ -1213,12 +1213,12 @@ Requirements -
-

2.5.4 Test

+
+

2.5.4 Test

-
-

2.5.5 Ideas for improvement

+
+

2.5.5 Ideas for improvement

// j : electrons
@@ -1252,12 +1252,12 @@ k=0;
 
-
-

2.6 Computation of shells

+
+

2.6 Computation of shells

-
-

2.6.1 Get

+
+

2.6.1 Get

qmckl_exit_code qmckl_get_ao_basis_shell_vgl(qmckl_context context, double* const shell_vgl);
@@ -1266,14 +1266,14 @@ k=0;
 
-
-

2.6.2 Provide

+
+

2.6.2 Provide

-
-

2.6.3 Compute

+
+

2.6.3 Compute

-
+
@@ -1494,14 +1494,14 @@ k=0; -
-

2.6.4 Test

+
+

2.6.4 Test

-
-

3 Polynomial part

+
+

3 Polynomial part

Going from the atomic basis set to AOs implies a systematic @@ -1521,8 +1521,8 @@ f & : & f_{xxx}, f_{xxy}, f_{xxz}, f_{xyy}, f_{xyz}, f_{xzz}, f_{yyy}, f_{yyz}, \end{eqnarray}

-
-

3.1 General functions for Powers of \(x-X_i\)

+
+

3.1 General functions for Powers of \(x-X_i\)

The qmckl_ao_power function computes all the powers of the n @@ -1534,7 +1534,7 @@ the \(n\) points: \[ P_{ik} = X_i^k \]

-
+
@@ -1592,8 +1592,8 @@ the \(n\) points:
-
-

3.1.1 Requirements

+
+

3.1.1 Requirements

  • context is not QMCKL_NULL_CONTEXT
  • @@ -1606,8 +1606,8 @@ the \(n\) points:
-
-

3.1.2 C Header

+
+

3.1.2 C Header

qmckl_exit_code qmckl_ao_power (
@@ -1622,8 +1622,8 @@ the \(n\) points:
 
-
-

3.1.3 Source

+
+

3.1.3 Source

integer function qmckl_ao_power_f(context, n, X, LMAX, P, ldp) result(info)
@@ -1674,15 +1674,15 @@ the \(n\) points:
 
-
-

3.1.4 C interface

+
+

3.1.4 C interface

-
-

3.1.5 Fortran interface

+
+

3.1.5 Fortran interface

-
-

3.1.6 Test

+
+

3.1.6 Test

integer(c_int32_t) function test_qmckl_ao_power(context) bind(C)
@@ -1733,8 +1733,8 @@ the \(n\) points:
 
-
-

3.2 General functions for Value, Gradient and Laplacian of a polynomial

+
+

3.2 General functions for Value, Gradient and Laplacian of a polynomial

A polynomial is centered on a nucleus \(\mathbf{R}_i\) @@ -1779,7 +1779,7 @@ Laplacians at a given point in space, of all polynomials with an angular momentum up to lmax.

- +
@@ -1858,8 +1858,8 @@ angular momentum up to lmax.
-
-

3.2.1 Requirements

+
+

3.2.1 Requirements

  • context is not QMCKL_NULL_CONTEXT
  • @@ -1884,8 +1884,8 @@ For example, with a=0, b=2 and c=1 the string is "yyz"
-
-

3.2.2 C Header

+
+

3.2.2 C Header

qmckl_exit_code qmckl_ao_polynomial_vgl (
@@ -1903,8 +1903,8 @@ For example, with a=0, b=2 and c=1 the string is "yyz"
 
-
-

3.2.3 Source

+
+

3.2.3 Source

integer function qmckl_ao_polynomial_vgl_f(context, X, R, lmax, n, L, ldl, VGL, ldv) result(info)
@@ -2038,16 +2038,16 @@ For example, with a=0, b=2 and c=1 the string is "yyz"
 
-
-

3.2.4 C interface

+
+

3.2.4 C interface

-
-

3.2.5 Fortran interface

+
+

3.2.5 Fortran interface

-
-

3.2.6 Test

+
+

3.2.6 Test

integer(c_int32_t) function test_qmckl_ao_polynomial_vgl(context) bind(C)
@@ -2152,12 +2152,12 @@ assert(0 == test_qmckl_ao_polynomial_vgl(context));
 
-
-

4 Combining radial and polynomial parts

+
+

4 Combining radial and polynomial parts

-
-

4.0.1 Get

+
+

4.0.1 Get

qmckl_exit_code qmckl_get_ao_vgl(qmckl_context context, double* const ao_vgl);
@@ -2166,14 +2166,14 @@ assert(0 == test_qmckl_ao_polynomial_vgl(context));
 
-
-

4.0.2 Provide

+
+

4.0.2 Provide

-
-

4.0.3 Compute

+
+

4.0.3 Compute

- +
@@ -2438,14 +2438,14 @@ assert(0 == test_qmckl_ao_polynomial_vgl(context)); -
-

4.0.4 Test

+
+

4.0.4 Test

Author: TREX CoE

-

Created: 2021-10-06 Wed 21:45

+

Created: 2021-10-10 Sun 14:26

Validate

diff --git a/qmckl_blas.html b/qmckl_blas.html index 5fa4bf8..efe1246 100644 --- a/qmckl_blas.html +++ b/qmckl_blas.html @@ -3,7 +3,7 @@ "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> - +BLAS functions @@ -333,13 +333,13 @@ for the JavaScript code in this tag.

Table of Contents

-
-

1 Matrix operations

+
+

1 Matrix operations

-
-

1.1 qmckl_dgemm

+
+

1.1 qmckl_dgemm

Matrix multiply l\(C_{ij} = \beta C_{ij} + \alpha \sum_{k} A_{ik} \cdot B_{kj}\) using Fortran matmul function. TODO: Add description about the external library dependence.

-
+
@@ -474,8 +474,8 @@ TODO: Add description about the external library dependence.
-
-

1.1.1 Requirements

+
+

1.1.1 Requirements

  • context is not QMCKL_NULL_CONTEXT
  • @@ -492,8 +492,8 @@ TODO: Add description about the external library dependence.
-
-

1.1.2 C header

+
+

1.1.2 C header

qmckl_exit_code qmckl_dgemm (
@@ -517,8 +517,8 @@ TODO: Add description about the external library dependence.
 
-
-

1.1.3 Source

+
+

1.1.3 Source

integer function qmckl_dgemm_f(context, TransA, TransB, m, n, k, alpha, A, LDA, B, LDB, beta, C, LDC) &
@@ -617,7 +617,7 @@ TODO: Add description about the external library dependence.
 

Author: TREX CoE

-

Created: 2021-10-06 Wed 21:45

+

Created: 2021-10-10 Sun 14:26

Validate

diff --git a/qmckl_context.html b/qmckl_context.html index eeba7f3..ac6fb32 100644 --- a/qmckl_context.html +++ b/qmckl_context.html @@ -3,7 +3,7 @@ "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> - + Context @@ -311,21 +311,21 @@ for the JavaScript code in this tag.

Table of Contents

-
-

1 Context handling

+
+

1 Context handling

The context variable is a handle for the state of the library, @@ -338,7 +338,7 @@ A value of QMCKL_NULL_CONTEXT for the context is equivalent to a

-
typedef int64_t qmckl_context ;
+
typedef int64_t qmckl_context ;
 #define QMCKL_NULL_CONTEXT (qmckl_context) 0
 
@@ -356,8 +356,8 @@ and ctx is a qmckl_context_struct* pointer.

-
-

1.1 Data structure

+
+

1.1 Data structure

The context keeps a ``date'' that allows to check which data needs @@ -367,7 +367,7 @@ coordinates are updated.

When a new element is added to the context, the functions -qmcklcontextcreate, qmcklcontextdestroy and qmcklcontextcopy +qmcklcontextcreate, qmcklcontextdestroy and qmcklcontextcopy should be updated inorder to make deep copies.

@@ -416,8 +416,8 @@ if the context is valid, QMCKL_NULL_CONTEXT otherwise.
-
-

1.2 Creation

+
+

1.2 Creation

To create a new context, qmckl_context_create() should be used. @@ -502,8 +502,8 @@ To create a new context, qmckl_context_create() should be used.

-
-

1.3 Locking

+
+

1.3 Locking

For thread safety, the context may be locked/unlocked. The lock is @@ -548,8 +548,8 @@ number of times the thread has locked it is saved in the

-
-

1.4 TODO Copy

+
+

1.4 TODO Copy

qmckl_context_copy makes a deep copy of a context. It returns @@ -597,8 +597,8 @@ number of times the thread has locked it is saved in the

-
-

1.5 Destroy

+
+

1.5 Destroy

The context is destroyed with qmckl_context_destroy, leaving the ancestors untouched. @@ -652,7 +652,7 @@ It frees the context, and returns the previous context.

Author: TREX CoE

-

Created: 2021-10-06 Wed 21:45

+

Created: 2021-10-10 Sun 14:26

Validate

diff --git a/qmckl_distance.html b/qmckl_distance.html index 31af727..97d0d84 100644 --- a/qmckl_distance.html +++ b/qmckl_distance.html @@ -3,7 +3,7 @@ "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> - + Inter-particle distances @@ -333,50 +333,50 @@ for the JavaScript code in this tag.

Table of Contents

-
-

1 Squared distance

+
+

1 Squared distance

-
-

1.1 qmckl_distance_sq

+
+

1.1 qmckl_distance_sq

qmckl_distance_sq computes the matrix of the squared distances @@ -403,7 +403,7 @@ between all pairs of points in two sets, one point within each set: \]

- +
@@ -496,8 +496,8 @@ between all pairs of points in two sets, one point within each set:
-
-

1.1.1 Requirements

+
+

1.1.1 Requirements

  • context is not QMCKL_NULL_CONTEXT
  • @@ -515,8 +515,8 @@ between all pairs of points in two sets, one point within each set:
-
-

1.1.2 C header

+
+

1.1.2 C header

qmckl_exit_code qmckl_distance_sq (
@@ -536,8 +536,8 @@ between all pairs of points in two sets, one point within each set:
 
-
-

1.1.3 Source

+
+

1.1.3 Source

integer function qmckl_distance_sq_f(context, transa, transb, m, n, &
@@ -672,8 +672,8 @@ between all pairs of points in two sets, one point within each set:
 
-
-

1.1.4 Performance

+
+

1.1.4 Performance

This function is more efficient when A and B are @@ -683,12 +683,12 @@ transposed.

-
-

2 Distance

+
+

2 Distance

-
-

2.1 qmckl_distance

+
+

2.1 qmckl_distance

qmckl_distance computes the matrix of the distances between all @@ -706,7 +706,7 @@ If the input array is normal ('N'), the xyz coordinates are in the leading dimension: [n][3] in C and (3,n) in Fortran.

- +
@@ -799,8 +799,8 @@ the leading dimension: [n][3] in C and (3,n) in Fortra
-
-

2.1.1 Requirements

+
+

2.1.1 Requirements

  • context is not QMCKL_NULL_CONTEXT
  • @@ -818,8 +818,8 @@ the leading dimension: [n][3] in C and (3,n) in Fortra
-
-

2.1.2 C header

+
+

2.1.2 C header

qmckl_exit_code qmckl_distance (
@@ -839,8 +839,8 @@ the leading dimension: [n][3] in C and (3,n) in Fortra
 
-
-

2.1.3 Source

+
+

2.1.3 Source

integer function qmckl_distance_f(context, transa, transb, m, n, &
@@ -1007,8 +1007,8 @@ the leading dimension: [n][3] in C and (3,n) in Fortra
 
-
-

2.1.4 Performance

+
+

2.1.4 Performance

This function is more efficient when A and B are transposed. @@ -1018,12 +1018,12 @@ This function is more efficient when A and B are trans

-
-

3 Rescaled Distance

+
+

3 Rescaled Distance

-
-

3.1 qmckl_distance_rescaled

+
+

3.1 qmckl_distance_rescaled

qmckl_distance_rescaled computes the matrix of the rescaled distances between all @@ -1041,7 +1041,7 @@ If the input array is normal ('N'), the xyz coordinates are in the leading dimension: [n][3] in C and (3,n) in Fortran.

- +
@@ -1141,8 +1141,8 @@ the leading dimension: [n][3] in C and (3,n) in Fortra
-
-

3.1.1 Requirements

+
+

3.1.1 Requirements

  • context is not QMCKL_NULL_CONTEXT
  • @@ -1160,8 +1160,8 @@ the leading dimension: [n][3] in C and (3,n) in Fortra
-
-

3.1.2 C header

+
+

3.1.2 C header

qmckl_exit_code qmckl_distance_rescaled (
@@ -1182,8 +1182,8 @@ the leading dimension: [n][3] in C and (3,n) in Fortra
 
-
-

3.1.3 Source

+
+

3.1.3 Source

integer function qmckl_distance_rescaled_f(context, transa, transb, m, n, &
@@ -1353,8 +1353,8 @@ the leading dimension: [n][3] in C and (3,n) in Fortra
 
-
-

3.1.4 Performance

+
+

3.1.4 Performance

This function is more efficient when A and B are transposed. @@ -1363,12 +1363,12 @@ This function is more efficient when A and B are trans

-
-

4 Rescaled Distance Derivatives

+
+

4 Rescaled Distance Derivatives

-
-

4.1 qmckl_distance_rescaled_deriv_e

+
+

4.1 qmckl_distance_rescaled_deriv_e

qmckl_distance_rescaled_deriv_e computes the matrix of the gradient and laplacian of the @@ -1435,7 +1435,7 @@ If the input array is normal ('N'), the xyz coordinates are in the leading dimension: [n][3] in C and (3,n) in Fortran.

- +
@@ -1535,8 +1535,8 @@ the leading dimension: [n][3] in C and (3,n) in Fortra
-
-

4.1.1 Requirements

+
+

4.1.1 Requirements

  • context is not QMCKL_NULL_CONTEXT
  • @@ -1554,8 +1554,8 @@ the leading dimension: [n][3] in C and (3,n) in Fortra
-
-

4.1.2 C header

+
+

4.1.2 C header

qmckl_exit_code qmckl_distance_rescaled_deriv_e (
@@ -1576,8 +1576,8 @@ the leading dimension: [n][3] in C and (3,n) in Fortra
 
-
-

4.1.3 Source

+
+

4.1.3 Source

integer function qmckl_distance_rescaled_deriv_e_f(context, transa, transb, m, n, &
@@ -1768,8 +1768,8 @@ the leading dimension: [n][3] in C and (3,n) in Fortra
 
-
-

4.1.4 Performance

+
+

4.1.4 Performance

This function is more efficient when A and B are transposed. @@ -1781,7 +1781,7 @@ This function is more efficient when A and B are trans

Author: TREX CoE

-

Created: 2021-10-06 Wed 21:45

+

Created: 2021-10-10 Sun 14:26

Validate

diff --git a/qmckl_electron.html b/qmckl_electron.html index 4ed26b6..ac53f94 100644 --- a/qmckl_electron.html +++ b/qmckl_electron.html @@ -3,7 +3,7 @@ "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> - + Electrons @@ -333,63 +333,63 @@ for the JavaScript code in this tag.

Table of Contents

-
-

1 Context

+
+

1 Context

The following data stored in the context: @@ -557,8 +557,8 @@ The following data stored in the context:

-
-

1.1 Data structure

+
+

1.1 Data structure

typedef struct qmckl_electron_struct {
@@ -633,8 +633,8 @@ this mechanism.
 
-
-

1.2 Access functions

+
+

1.2 Access functions

Access functions return QMCKL_SUCCESS when the data has been @@ -646,12 +646,12 @@ contains the requested data. Otherwise, this variable is untouched.

-
-

1.2.1 Number of electrons

+
+

1.2.1 Number of electrons

-
-

1.2.2 Number of walkers

+
+

1.2.2 Number of walkers

A walker is a set of electron coordinates that are arguments of @@ -660,12 +660,12 @@ the wave function. walk_num is the number of walkers.

-
-

1.2.3 Scaling factors Kappa

+
+

1.2.3 Scaling factors Kappa

-
-

1.2.4 Electron coordinates

+
+

1.2.4 Electron coordinates

Returns the current electron coordinates. The pointer is assumed @@ -709,8 +709,8 @@ The order of the indices is:

-
-

1.3 Initialization functions

+
+

1.3 Initialization functions

To set the data relative to the electrons in the context, the @@ -797,8 +797,8 @@ in the context.

-
-

1.4 Test

+
+

1.4 Test

/* Reference input data */
@@ -904,8 +904,8 @@ rc = qmckl_get_electron_coord (context, 'N'
 
-
-

2 Computation

+
+

2 Computation

The computed data is stored in the context so that it can be reused @@ -918,12 +918,12 @@ current date is stored.

-
-

2.1 Electron-electron distances

+
+

2.1 Electron-electron distances

-
-

2.1.1 Get

+
+

2.1.1 Get

qmckl_exit_code qmckl_get_electron_ee_distance(qmckl_context context, double* const distance);
@@ -932,10 +932,10 @@ current date is stored.
 
-
-

2.1.2 Compute

+
+

2.1.2 Compute

- +
@@ -1031,8 +1031,8 @@ current date is stored. -
-

2.1.3 Test

+
+

2.1.3 Test

assert(qmckl_electron_provided(context));
@@ -1066,8 +1066,8 @@ rc = qmckl_get_electron_ee_distance(context, ee_distance);
 
-
-

2.2 Electron-electron rescaled distances

+
+

2.2 Electron-electron rescaled distances

ee_distance_rescaled stores the matrix of the rescaled distances between all @@ -1085,8 +1085,8 @@ where \(C_{ij}\) is the matrix of electron-electron distances.

-
-

2.2.1 Get

+
+

2.2.1 Get

qmckl_exit_code qmckl_get_electron_ee_distance_rescaled(qmckl_context context, double* const distance_rescaled);
@@ -1095,10 +1095,10 @@ where \(C_{ij}\) is the matrix of electron-electron distances.
 
-
-

2.2.2 Compute

+
+

2.2.2 Compute

-
+
@@ -1203,8 +1203,8 @@ where \(C_{ij}\) is the matrix of electron-electron distances. -
-

2.2.3 Test

+
+

2.2.3 Test

assert(qmckl_electron_provided(context));
@@ -1238,8 +1238,8 @@ rc = qmckl_get_electron_ee_distance_rescaled(context, ee_distance_rescaled);
 
-
-

2.3 Electron-electron rescaled distance gradients and laplacian with respect to electron coords

+
+

2.3 Electron-electron rescaled distance gradients and laplacian with respect to electron coords

The rescaled distances which is given as \(R = (1 - \exp{-\kappa r})/\kappa\) @@ -1251,8 +1251,8 @@ gives the Laplacian \(\partial x^2 + \partial y^2 + \partial z^2\).

-
-

2.3.1 Get

+
+

2.3.1 Get

qmckl_exit_code qmckl_get_electron_ee_distance_rescaled_deriv_e(qmckl_context context, double* const distance_rescaled_deriv_e);
@@ -1261,10 +1261,10 @@ gives the Laplacian \(\partial x^2 + \partial y^2 + \partial z^2\).
 
-
-

2.3.2 Compute

+
+

2.3.2 Compute

-
+
@@ -1369,8 +1369,8 @@ gives the Laplacian \(\partial x^2 + \partial y^2 + \partial z^2\). -
-

2.3.3 Test

+
+

2.3.3 Test

assert(qmckl_electron_provided(context));
@@ -1405,12 +1405,12 @@ rc = qmckl_get_electron_ee_distance_rescaled_deriv_e(context, ee_distance_rescal
 
-
-

2.4 Electron-nucleus distances

+
+

2.4 Electron-nucleus distances

-
-

2.4.1 Get

+
+

2.4.1 Get

qmckl_exit_code qmckl_get_electron_en_distance(qmckl_context context, double* distance);
@@ -1419,10 +1419,10 @@ rc = qmckl_get_electron_ee_distance_rescaled_deriv_e(context, ee_distance_rescal
 
-
-

2.4.2 Compute

+
+

2.4.2 Compute

-
+
@@ -1539,8 +1539,8 @@ rc = qmckl_get_electron_ee_distance_rescaled_deriv_e(context, ee_distance_rescal -
-

2.4.3 Test

+
+

2.4.3 Test

@@ -1588,8 +1588,8 @@ rc = qmckl_get_electron_en_distance(context, &(en_distance[0][0][0]));
 
-
-

2.5 Electron-nucleus rescaled distances

+
+

2.5 Electron-nucleus rescaled distances

en_distance_rescaled stores the matrix of the rescaled distances between @@ -1607,8 +1607,8 @@ where \(C_{ij}\) is the matrix of electron-nucleus distances.

-
-

2.5.1 Get

+
+

2.5.1 Get

qmckl_exit_code qmckl_get_electron_en_distance_rescaled(qmckl_context context, double* distance_rescaled);
@@ -1617,10 +1617,10 @@ where \(C_{ij}\) is the matrix of electron-nucleus distances.
 
-
-

2.5.2 Compute

+
+

2.5.2 Compute

-
+
@@ -1752,8 +1752,8 @@ where \(C_{ij}\) is the matrix of electron-nucleus distances. -
-

2.5.3 Test

+
+

2.5.3 Test

@@ -1801,8 +1801,8 @@ rc = qmckl_get_electron_en_distance_rescaled(context, &(en_distance_rescaled
 
-
-

2.6 Electron-nucleus rescaled distance gradients and laplacian with respect to electron coords

+
+

2.6 Electron-nucleus rescaled distance gradients and laplacian with respect to electron coords

The rescaled distances which is given as \(R = (1 - \exp{-\kappa r})/\kappa\) @@ -1814,8 +1814,8 @@ gives the Laplacian \(\partial x^2 + \partial y^2 + \partial z^2\).

-
-

2.6.1 Get

+
+

2.6.1 Get

qmckl_exit_code qmckl_get_electron_en_distance_rescaled_deriv_e(qmckl_context context, double* distance_rescaled_deriv_e);
@@ -1824,10 +1824,10 @@ gives the Laplacian \(\partial x^2 + \partial y^2 + \partial z^2\).
 
-
-

2.6.2 Compute

+
+

2.6.2 Compute

-
+
@@ -1960,8 +1960,8 @@ gives the Laplacian \(\partial x^2 + \partial y^2 + \partial z^2\). -
-

2.6.3 Test

+
+

2.6.3 Test

@@ -2016,7 +2016,7 @@ rc = qmckl_get_electron_en_distance_rescaled_deriv_e(context, &(en_distance_
 

Author: TREX CoE

-

Created: 2021-10-06 Wed 21:45

+

Created: 2021-10-10 Sun 14:25

Validate

diff --git a/qmckl_error.html b/qmckl_error.html index d34695d..c015a6d 100644 --- a/qmckl_error.html +++ b/qmckl_error.html @@ -3,7 +3,7 @@ "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> - + Error handling @@ -311,17 +311,17 @@ for the JavaScript code in this tag.

Table of Contents

-
-

1 Decoding errors

+
+

1 Decoding errors

To decode the error messages, qmckl_string_of_error converts an @@ -451,8 +451,8 @@ The text strings are extracted from the previous table.

-
-

2 Data structure in context

+
+

2 Data structure in context

The strings are declared with a maximum fixed size to avoid @@ -475,8 +475,8 @@ dynamic memory allocation.

-
-

3 Updating errors in the context

+
+

3 Updating errors in the context

The error is updated in the context using qmckl_set_error. @@ -522,8 +522,8 @@ explaining the error. The exit code can't be QMCKL_SUCCESS.

-
-

4 Get the error

+
+

4 Get the error

Upon error, the error type and message can be obtained from the @@ -564,8 +564,8 @@ function name and message is mandatory.

-
-

5 Failing

+
+

5 Failing

To make a function fail, the qmckl_failwith function should be @@ -628,7 +628,7 @@ For example, this function can be used as

Author: TREX CoE

-

Created: 2021-10-06 Wed 21:45

+

Created: 2021-10-10 Sun 14:25

Validate

diff --git a/qmckl_jastrow.html b/qmckl_jastrow.html index 61da3a9..9a5f4a0 100644 --- a/qmckl_jastrow.html +++ b/qmckl_jastrow.html @@ -3,7 +3,7 @@ "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> - + Jastrow Factor @@ -333,100 +333,100 @@ for the JavaScript code in this tag.

Table of Contents

-
-

1 Context

+
+

1 Context

The following data stored in the context:

-
+
@@ -734,7 +734,7 @@ For H2O we have the following data:

-
import numpy as np
+
import numpy as np
 
 elec_num     = 10
 nucl_num     = 2
@@ -884,8 +884,8 @@ For H2O we have the following data:
 
-
-

1.1 Data structure

+
+

1.1 Data structure

typedef struct qmckl_jastrow_struct{
@@ -972,8 +972,8 @@ this mechanism.
 
-
-

1.2 Access functions

+
+

1.2 Access functions

Along with these core functions, calculation of the jastrow factor @@ -993,8 +993,8 @@ function returns true.

-
-

1.3 Initialization functions

+
+

1.3 Initialization functions

To prepare for the Jastrow and its derivative, all the following functions need to be @@ -1020,8 +1020,8 @@ are precontracted using BLAS LEVEL 3 operations for an optimal FLOP count.

-
-

1.4 Test

+
+

1.4 Test

/* Reference input data */
@@ -1196,8 +1196,8 @@ rc = qmckl_get_nucleus_charge(context, nucl_charge2);
 
-
-

2 Computation

+
+

2 Computation

The computed data is stored in the context so that it can be reused @@ -1210,8 +1210,8 @@ current date is stored.

-
-

2.1 Asymptotic component for \(f_{ee}\)

+
+

2.1 Asymptotic component for \(f_{ee}\)

Calculate the asymptotic component asymp_jasb to be substracted from the final @@ -1226,8 +1226,8 @@ via the bord_vector and the electron-electron rescale factor

-
-

2.1.1 Get

+
+

2.1.1 Get

qmckl_exit_code qmckl_get_jastrow_asymp_jasb(qmckl_context context, double* const asymp_jasb);
@@ -1236,10 +1236,10 @@ via the bord_vector and the electron-electron rescale factor 
 
-
-

2.1.2 Compute

+
+

2.1.2 Compute

-
+
@@ -1344,8 +1344,8 @@ via the bord_vector and the electron-electron rescale factor -
-

2.1.3 Test

+
+

2.1.3 Test

assert(qmckl_electron_provided(context));
@@ -1397,8 +1397,8 @@ rc = qmckl_get_jastrow_asymp_jasb(context, asymp_jasb);
 
-
-

2.2 Electron-electron component \(f_{ee}\)

+
+

2.2 Electron-electron component \(f_{ee}\)

Calculate the electron-electron jastrow component factor_ee using the asymp_jasb @@ -1413,8 +1413,8 @@ f_{ee} = \sum_{i,j -

-

2.2.1 Get

+
+

2.2.1 Get

qmckl_exit_code qmckl_get_jastrow_factor_ee(qmckl_context context, double* const factor_ee);
@@ -1423,10 +1423,10 @@ f_{ee} = \sum_{i,j
 
-
-

2.2.2 Compute

+
+

2.2.2 Compute

-
+
@@ -1593,8 +1593,8 @@ f_{ee} = \sum_{i,j -
-

2.2.3 Test

+
+

2.2.3 Test

/* Check if Jastrow is properly initialized */
@@ -1612,8 +1612,8 @@ rc = qmckl_get_jastrow_factor_ee(context, factor_ee);
 
-
-

2.3 Electron-electron component derivative \(f'_{ee}\)

+
+

2.3 Electron-electron component derivative \(f'_{ee}\)

Calculate the derivative of the factor_ee using the ee_distance_rescaled and @@ -1628,8 +1628,8 @@ TODO: Add equation

-
-

2.3.1 Get

+
+

2.3.1 Get

qmckl_exit_code qmckl_get_jastrow_factor_ee_deriv_e(qmckl_context context, double* const factor_ee_deriv_e);
@@ -1638,10 +1638,10 @@ TODO: Add equation
 
-
-

2.3.2 Compute

+
+

2.3.2 Compute

-
+
@@ -1848,8 +1848,8 @@ TODO: Add equation -
-

2.3.3 Test

+
+

2.3.3 Test

/* Check if Jastrow is properly initialized */
@@ -1871,8 +1871,8 @@ rc = qmckl_get_jastrow_factor_ee_deriv_e(context, &(factor_ee_deriv_e[0][0][
 
-
-

2.4 Electron-nucleus component \(f_{en}\)

+
+

2.4 Electron-nucleus component \(f_{en}\)

Calculate the electron-electron jastrow component factor_en using the aord_vector @@ -1887,8 +1887,8 @@ f_{en} = \sum_{i,j -

-

2.4.1 Get

+
+

2.4.1 Get

qmckl_exit_code qmckl_get_jastrow_factor_en(qmckl_context context, double* const factor_en);
@@ -1897,10 +1897,10 @@ f_{en} = \sum_{i,j
 
-
-

2.4.2 Compute

+
+

2.4.2 Compute

-
+
@@ -2074,8 +2074,8 @@ f_{en} = \sum_{i,j -
-

2.4.3 Test

+
+

2.4.3 Test

/* Check if Jastrow is properly initialized */
@@ -2093,8 +2093,8 @@ rc = qmckl_get_jastrow_factor_en(context, factor_en);
 
-
-

2.5 Electron-nucleus component derivative \(f'_{en}\)

+
+

2.5 Electron-nucleus component derivative \(f'_{en}\)

Calculate the electron-electron jastrow component factor_en_deriv_e derivative @@ -2107,8 +2107,8 @@ TODO: write equations.

-
-

2.5.1 Get

+
+

2.5.1 Get

qmckl_exit_code qmckl_get_jastrow_factor_en_deriv_e(qmckl_context context, double* const factor_en_deriv_e);
@@ -2117,10 +2117,10 @@ TODO: write equations.
 
-
-

2.5.2 Compute

+
+

2.5.2 Compute

-
+
@@ -2333,8 +2333,8 @@ TODO: write equations. -
-

2.5.3 Test

+
+

2.5.3 Test

/* Check if Jastrow is properly initialized */
@@ -2356,8 +2356,8 @@ rc = qmckl_get_jastrow_factor_en_deriv_e(context, &(factor_en_deriv_e[0][0][
 
-
-

2.6 Electron-electron rescaled distances for each order

+
+

2.6 Electron-electron rescaled distances for each order

een_rescaled_e stores the table of the rescaled distances between all @@ -2375,8 +2375,8 @@ where \(C_{ij}\) is the matrix of electron-electron distances.

-
-

2.6.1 Get

+
+

2.6.1 Get

qmckl_exit_code qmckl_get_jastrow_een_rescaled_e(qmckl_context context, double* const distance_rescaled);
@@ -2385,10 +2385,10 @@ where \(C_{ij}\) is the matrix of electron-electron distances.
 
-
-

2.6.2 Compute

+
+

2.6.2 Compute

-
+
@@ -2554,8 +2554,8 @@ where \(C_{ij}\) is the matrix of electron-electron distances. -
-

2.6.3 Test

+
+

2.6.3 Test

assert(qmckl_electron_provided(context));
@@ -2578,8 +2578,8 @@ rc = qmckl_get_jastrow_een_rescaled_e(context, &(een_rescaled_e[0][0][0][0])
 
-
-

2.7 Electron-electron rescaled distances for each order and derivatives

+
+

2.7 Electron-electron rescaled distances for each order and derivatives

een_rescaled_e_deriv_e stores the table of the derivatives of the @@ -2594,8 +2594,8 @@ TODO: write formulae

-
-

2.7.1 Get

+
+

2.7.1 Get

qmckl_exit_code qmckl_get_jastrow_een_rescaled_e_deriv_e(qmckl_context context, double* const distance_rescaled);
@@ -2604,10 +2604,10 @@ TODO: write formulae
 
-
-

2.7.2 Compute

+
+

2.7.2 Compute

-
+
@@ -2786,8 +2786,8 @@ TODO: write formulae -
-

2.7.3 Test

+
+

2.7.3 Test

//assert(qmckl_electron_provided(context));
@@ -2807,8 +2807,8 @@ rc = qmckl_get_jastrow_een_rescaled_e_deriv_e(context, &(een_rescaled_e_deri
 
-
-

2.8 Electron-nucleus rescaled distances for each order

+
+

2.8 Electron-nucleus rescaled distances for each order

een_rescaled_n stores the table of the rescaled distances between @@ -2826,8 +2826,8 @@ where \(C_{ia}\) is the matrix of electron-nucleus distances.

-
-

2.8.1 Get

+
+

2.8.1 Get

qmckl_exit_code qmckl_get_jastrow_een_rescaled_n(qmckl_context context, double* const distance_rescaled);
@@ -2836,10 +2836,10 @@ where \(C_{ia}\) is the matrix of electron-nucleus distances.
 
-
-

2.8.2 Compute

+
+

2.8.2 Compute

-
+
@@ -2995,8 +2995,8 @@ where \(C_{ia}\) is the matrix of electron-nucleus distances. -
-

2.8.3 Test

+
+

2.8.3 Test

assert(qmckl_electron_provided(context));
@@ -3018,8 +3018,8 @@ rc = qmckl_get_jastrow_een_rescaled_n(context, &(een_rescaled_n[0][0][0][0])
 
-
-

2.9 Electron-nucleus rescaled distances for each order and derivatives

+
+

2.9 Electron-nucleus rescaled distances for each order and derivatives

een_rescaled_n_deriv_e stores the table of the rescaled distances between @@ -3028,8 +3028,8 @@ electrons and nucleii raised to the power \(p\) defined by cord_num

-
-

2.9.1 Get

+
+

2.9.1 Get

qmckl_exit_code qmckl_get_jastrow_een_rescaled_n_deriv_e(qmckl_context context, double* const distance_rescaled);
@@ -3038,10 +3038,10 @@ electrons and nucleii raised to the power \(p\) defined by cord_num
 
-
-

2.9.2 Compute

+
+

2.9.2 Compute

-
+
@@ -3243,8 +3243,8 @@ electrons and nucleii raised to the power \(p\) defined by cord_num -
-

2.9.3 Test

+
+

2.9.3 Test

assert(qmckl_electron_provided(context));
@@ -3266,8 +3266,8 @@ rc = qmckl_get_jastrow_een_rescaled_n_deriv_e(context, &(een_rescaled_n_deri
 
-
-

2.10 Prepare for electron-electron-nucleus Jastrow \(f_{een}\)

+
+

2.10 Prepare for electron-electron-nucleus Jastrow \(f_{een}\)

Prepare cord_vect_full and lkpm_combined_index tables required for the @@ -3276,8 +3276,8 @@ calculation of the three-body jastrow factor_een and its derivative

-
-

2.10.1 Get

+
+

2.10.1 Get

qmckl_exit_code qmckl_get_jastrow_dim_cord_vect(qmckl_context context, int64_t* const dim_cord_vect);
@@ -3288,10 +3288,10 @@ calculation of the three-body jastrow factor_een and its derivative
 
-
-

2.10.2 Compute dimcordvect

+
+

2.10.2 Compute dimcordvect

-
+
@@ -3381,10 +3381,10 @@ calculation of the three-body jastrow factor_een and its derivative -
-

2.10.3 Compute cordvectfull

+
+

2.10.3 Compute cordvectfull

-
+
@@ -3510,10 +3510,10 @@ calculation of the three-body jastrow factor_een and its derivative -
-

2.10.4 Compute lkpmcombinedindex

+
+

2.10.4 Compute lkpmcombinedindex

-
+
@@ -3623,8 +3623,8 @@ calculation of the three-body jastrow factor_een and its derivative -
-

2.10.5 Test

+
+

2.10.5 Test

//assert(qmckl_electron_provided(context));
@@ -3636,8 +3636,8 @@ calculation of the three-body jastrow factor_een and its derivative
 
-
-

2.11 Electron-electron-nucleus Jastrow \(f_{een}\)

+
+

2.11 Electron-electron-nucleus Jastrow \(f_{een}\)

Calculate the electron-electron-nuclear three-body jastrow component factor_een @@ -3649,8 +3649,8 @@ TODO: write equations.

-
-

2.11.1 Get

+
+

2.11.1 Get

qmckl_exit_code qmckl_get_jastrow_factor_een(qmckl_context context, double* const factor_een);
@@ -3659,10 +3659,10 @@ TODO: write equations.
 
-
-

2.11.2 Compute

+
+

2.11.2 Compute

-
+
@@ -3850,8 +3850,8 @@ TODO: write equations. -
-

2.11.3 Test

+
+

2.11.3 Test

/* Check if Jastrow is properly initialized */
@@ -3867,8 +3867,8 @@ rc = qmckl_get_jastrow_factor_een(context, &(factor_een[0]));
 
-
-

2.12 Electron-electron-nucleus Jastrow \(f_{een}\) derivative

+
+

2.12 Electron-electron-nucleus Jastrow \(f_{een}\) derivative

Calculate the electron-electron-nuclear three-body jastrow component factor_een_deriv_e @@ -3880,8 +3880,8 @@ TODO: write equations.

-
-

2.12.1 Get

+
+

2.12.1 Get

qmckl_exit_code qmckl_get_jastrow_factor_een_deriv_e(qmckl_context context, double* const factor_een_deriv_e);
@@ -3890,10 +3890,10 @@ TODO: write equations.
 
-
-

2.12.2 Compute

+
+

2.12.2 Compute

-
+
@@ -4118,8 +4118,8 @@ TODO: write equations. -
-

2.12.3 Test

+
+

2.12.3 Test

/* Check if Jastrow is properly initialized */
@@ -4138,7 +4138,7 @@ rc = qmckl_get_jastrow_factor_een_deriv_e(context, &(factor_een_deriv_e[0][0
 

Author: TREX CoE

-

Created: 2021-10-06 Wed 21:45

+

Created: 2021-10-10 Sun 14:26

Validate

diff --git a/qmckl_memory.html b/qmckl_memory.html index 78342c2..b5a195d 100644 --- a/qmckl_memory.html +++ b/qmckl_memory.html @@ -3,7 +3,7 @@ "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> - + Memory management @@ -311,15 +311,15 @@ for the JavaScript code in this tag.

Table of Contents

-
-

1 Memory data structure for the context

+
+

1 Memory data structure for the context

Every time a new block of memory is allocated, the information @@ -361,8 +361,8 @@ array, and the number of allocated blocks.

-
-

2 Passing info to allocation routines

+
+

2 Passing info to allocation routines

Passing information to the allocation routine should be done by @@ -371,8 +371,8 @@ passing an instance of a qmckl_memory_info_struct.

-
-

3 Allocation/deallocation functions

+
+

3 Allocation/deallocation functions

Memory allocation inside the library should be done with @@ -535,7 +535,7 @@ allocation and needs to be updated.

Author: TREX CoE

-

Created: 2021-10-06 Wed 21:45

+

Created: 2021-10-10 Sun 14:25

Validate

diff --git a/qmckl_mo.html b/qmckl_mo.html index 191d94d..79821fe 100644 --- a/qmckl_mo.html +++ b/qmckl_mo.html @@ -3,7 +3,7 @@ "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> - + Molecular Orbitals @@ -311,21 +311,21 @@ for the JavaScript code in this tag.

Table of Contents

-
-

1 Context

+
+

1 Context

The following arrays are stored in the context: @@ -402,8 +402,8 @@ Computed data:

-
-

1.1 Data structure

+
+

1.1 Data structure

typedef struct qmckl_mo_basis_struct {
@@ -431,8 +431,8 @@ this mechanism.
 
-
-

1.2 Access functions

+
+

1.2 Access functions

When all the data for the AOs have been provided, the following @@ -446,8 +446,8 @@ function returns true.

-
-

1.3 Initialization functions

+
+

1.3 Initialization functions

To set the basis set, all the following functions need to be @@ -469,16 +469,16 @@ computed to accelerate the calculations.

-
-

2 Computation

+
+

2 Computation

-
-

2.1 Computation of MOs

+
+

2.1 Computation of MOs

-
-

2.1.1 Get

+
+

2.1.1 Get

qmckl_exit_code qmckl_get_mo_basis_vgl(qmckl_context context, double* const mo_vgl);
@@ -487,14 +487,14 @@ computed to accelerate the calculations.
 
-
-

2.1.2 Provide

+
+

2.1.2 Provide

-
-

2.1.3 Compute

+
+

2.1.3 Compute

- +
@@ -677,15 +677,15 @@ computed to accelerate the calculations. -
-

2.1.4 Test

+
+

2.1.4 Test

Author: TREX CoE

-

Created: 2021-10-06 Wed 21:45

+

Created: 2021-10-10 Sun 14:26

Validate

diff --git a/qmckl_nucleus.html b/qmckl_nucleus.html index b85872d..7fc4e70 100644 --- a/qmckl_nucleus.html +++ b/qmckl_nucleus.html @@ -3,7 +3,7 @@ "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> - +Nucleus @@ -333,35 +333,35 @@ for the JavaScript code in this tag.

Table of Contents

-
-

1 Context

+
+

1 Context

The following data stored in the context: @@ -463,8 +463,8 @@ The following data stored in the context:

-
-

1.1 Data structure

+
+

1.1 Data structure

typedef struct qmckl_nucleus_struct {
@@ -523,8 +523,8 @@ this mechanism.
 
 
 
-
-

1.2 Access functions

+
+

1.2 Access functions

When all the data relative to nuclei have been set, the following @@ -538,8 +538,8 @@ function returns true.

-
-

1.3 Initialization functions

+
+

1.3 Initialization functions

To set the data relative to the nuclei in the context, the @@ -574,8 +574,8 @@ atoms. The coordinates should be given in atomic units.

-
-

1.4 Test

+
+

1.4 Test

const int64_t   nucl_num      = chbrclf_nucl_num;
@@ -659,8 +659,8 @@ rc = qmckl_get_nucleus_charge(context, nucl_charge2);
 
-
-

2 Computation

+
+

2 Computation

The computed data is stored in the context so that it can be reused @@ -673,12 +673,12 @@ current date is stored.

-
-

2.1 Nucleus-nucleus distances

+
+

2.1 Nucleus-nucleus distances

-
-

2.1.1 Get

+
+

2.1.1 Get

qmckl_exit_code qmckl_get_nucleus_nn_distance(qmckl_context context, double* distance);
@@ -687,10 +687,10 @@ current date is stored.
 
-
-

2.1.2 Compute

+
+

2.1.2 Compute

- +
@@ -768,8 +768,8 @@ current date is stored. -
-

2.1.3 Test

+
+

2.1.3 Test

/* Reference input data */
@@ -789,12 +789,12 @@ rc = qmckl_get_nucleus_nn_distance(context, distance);
 
-
-

2.2 Nucleus-nucleus rescaled distances

+
+

2.2 Nucleus-nucleus rescaled distances

-
-

2.2.1 Get

+
+

2.2.1 Get

qmckl_exit_code qmckl_get_nucleus_nn_distance_rescaled(qmckl_context context, double* distance_rescaled);
@@ -803,10 +803,10 @@ rc = qmckl_get_nucleus_nn_distance(context, distance);
 
-
-

2.2.2 Compute

+
+

2.2.2 Compute

-
+
@@ -885,8 +885,8 @@ rc = qmckl_get_nucleus_nn_distance(context, distance); -
-

2.2.3 Test

+
+

2.2.3 Test

/* Reference input data */
@@ -906,8 +906,8 @@ rc = qmckl_get_nucleus_nn_distance(context, distance);
 
-
-

2.3 Nuclear repulsion energy

+
+

2.3 Nuclear repulsion energy

\[ @@ -916,8 +916,8 @@ rc = qmckl_get_nucleus_nn_distance(context, distance);

-
-

2.3.1 Get

+
+

2.3.1 Get

qmckl_exit_code qmckl_get_nucleus_repulsion(qmckl_context context, double* energy);
@@ -926,10 +926,10 @@ rc = qmckl_get_nucleus_nn_distance(context, distance);
 
-
-

2.3.2 Compute

+
+

2.3.2 Compute

-
+
@@ -1017,8 +1017,8 @@ rc = qmckl_get_nucleus_nn_distance(context, distance); -
-

2.3.3 Test

+
+

2.3.3 Test

/* Reference input data */
@@ -1038,7 +1038,7 @@ rc = qmckl_get_nucleus_repulsion(context, &rep);
 

Author: TREX CoE

-

Created: 2021-10-06 Wed 21:45

+

Created: 2021-10-10 Sun 14:26

Validate

diff --git a/qmckl_numprec.html b/qmckl_numprec.html index a5bf84c..753da41 100644 --- a/qmckl_numprec.html +++ b/qmckl_numprec.html @@ -3,7 +3,7 @@ "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> - + Numerical precision @@ -333,16 +333,16 @@ for the JavaScript code in this tag.

Table of Contents

-
-

1 Control of the numerical precision

+
+

1 Control of the numerical precision

Controlling numerical precision enables optimizations. Here, the @@ -353,7 +353,7 @@ Arithmetic (IEEE 754), refers to the number of exponent bits.

-
+
@@ -397,8 +397,8 @@ integer. The update functions return QMCKL_SUCCESS or -
-

2 Precision

+
+

2 Precision

qmckl_context_set_numprec_precision modifies the parameter for the @@ -485,8 +485,8 @@ numerical precision in the context.

-
-

3 Range

+
+

3 Range

qmckl_set_numprec_range modifies the parameter for the numerical @@ -561,8 +561,8 @@ range in a given context.

-
-

4 Helper functions

+
+

4 Helper functions

qmckl_get_numprec_epsilon returns \(\epsilon = 2^{1-n}\) where n is the precision. @@ -581,7 +581,7 @@ We need to remove the sign bit from the precision.

Author: TREX CoE

-

Created: 2021-10-06 Wed 21:45

+

Created: 2021-10-10 Sun 14:25

Validate

diff --git a/qmckl_sherman_morrison_woodbury.html b/qmckl_sherman_morrison_woodbury.html index 1bd99a5..6c40cda 100644 --- a/qmckl_sherman_morrison_woodbury.html +++ b/qmckl_sherman_morrison_woodbury.html @@ -3,7 +3,7 @@ "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> - + Sherman-Morrison-Woodbury @@ -333,86 +333,86 @@ for the JavaScript code in this tag.

Table of Contents

-
-

1 Headers

+
+

1 Headers

#include "qmckl.h"
@@ -425,19 +425,18 @@ for the JavaScript code in this tag.
 int main() {
   qmckl_context context;
   context = qmckl_context_create();
-
   qmckl_exit_code rc;
 
-
-

2 Naïve Sherman-Morrison

+
+

2 Naïve Sherman-Morrison

-
-

2.1 qmckl_sherman_morrison

+
+

2.1 qmckl_sherman_morrison

This is the simplest of the available Sherman-Morrison-Woodbury kernels. It applies rank-1 updates one by one in @@ -474,7 +473,7 @@ the update is applied as usual and the kernel exits with return code \texttt{QMC If \(1+v_j^TS^{-1}u_j \leq \epsilon\) the update is rejected and the kernel exits with return code \texttt{QMCKL_FAILURE}.

-
+
@@ -539,8 +538,8 @@ If \(1+v_j^TS^{-1}u_j \leq \epsilon\) the update is rejected and the kernel exit
-
-

2.1.1 Requirements

+
+

2.1.1 Requirements

  • context is not QMCKL_NULL_CONTEXT
  • @@ -554,8 +553,8 @@ If \(1+v_j^TS^{-1}u_j \leq \epsilon\) the update is rejected and the kernel exit
-
-

2.1.2 C header

+
+

2.1.2 C header

qmckl_exit_code qmckl_sherman_morrison (
@@ -571,30 +570,26 @@ If \(1+v_j^TS^{-1}u_j \leq \epsilon\) the update is rejected and the kernel exit
 
-
-

2.1.3 Source

+
+

2.1.3 C source

#include <stdbool.h>
 #include <math.h>
 #include "qmckl.h"
 
-qmckl_exit_code qmckl_sherman_morrison_c_(const qmckl_context context,
-                                const uint64_t* Dim_p,
-                                const uint64_t* N_updates_p,
+qmckl_exit_code qmckl_sherman_morrison(const qmckl_context context,
+                                const uint64_t Dim,
+                                const uint64_t N_updates,
                                 const double* Updates,
                                 const uint64_t* Updates_index,
-                                const double* breakdown_p,
+                                const double breakdown,
                                 double* Slater_inv) {
 
   if (qmckl_context_check(context) == QMCKL_NULL_CONTEXT) {
     return QMCKL_NULL_CONTEXT;
   }
 
-  const uint64_t Dim = *Dim_p;
-  const uint64_t N_updates = *N_updates_p;
-  const double breakdown = *breakdown_p;
-
   double C[Dim];
   double D[Dim];
 
@@ -639,8 +634,8 @@ If \(1+v_j^TS^{-1}u_j \leq \epsilon\) the update is rejected and the kernel exit
 
-
-

2.1.4 Performance

+
+

2.1.4 Performance

This function performs best when there is only 1 rank-1 update in the update cycle. It is not useful to @@ -652,12 +647,12 @@ where applying the update causes singular behaviour.

-
-

3 Woodbury 2x2

+
+

3 Woodbury 2x2

-
-

3.1 qmckl_woodbury_2

+
+

3.1 qmckl_woodbury_2

The Woodbury 2x2 kernel. It is used to apply two rank-1 updates at once. The formula used in @@ -675,7 +670,7 @@ where

- +
@@ -733,8 +728,8 @@ where
-
-

3.1.1 Requirements

+
+

3.1.1 Requirements

  • context is not qmckl_null_context
  • @@ -747,8 +742,8 @@ where
-
-

3.1.2 C header

+
+

3.1.2 C header

qmckl_exit_code qmckl_woodbury_2 (
@@ -763,19 +758,19 @@ where
 
-
-

3.1.3 Source

+
+

3.1.3 C source

#include <stdbool.h>
 #include <math.h>
 #include "qmckl.h"
 
-qmckl_exit_code qmckl_woodbury_2_c_(const qmckl_context context,
-                                const uint64_t* Dim_p,
+qmckl_exit_code qmckl_woodbury_2(const qmckl_context context,
+                                const uint64_t Dim,
                                 const double* Updates,
                                 const uint64_t* Updates_index,
-                                const double* breakdown_p,
+                                const double breakdown,
                                 double* Slater_inv) {
 /*
     C := S^{-1} * U,    dim x 2
@@ -787,9 +782,6 @@ where
     return QMCKL_NULL_CONTEXT;
   }
 
-  const uint64_t Dim = *Dim_p;
-  const double breakdown = *breakdown_p;
-
   const uint64_t row1 = (Updates_index[0] - 1);
   const uint64_t row2 = (Updates_index[1] - 1);
 
@@ -848,8 +840,8 @@ where
 
-
-

3.1.4 Performance

+
+

3.1.4 Performance

This function is most efficient when used in cases where there are only 2 rank-1 updates and @@ -860,12 +852,12 @@ it is sure they will not result in a singular matrix.

-
-

4 Woodbury 3x3

+
+

4 Woodbury 3x3

-
-

4.1 qmckl_woodbury_3

+
+

4.1 qmckl_woodbury_3

The 3x3 version of the Woodbury 2x2 kernel. It is used to apply three @@ -879,7 +871,7 @@ except for the sizes of the following matrices: \(D := VS^{-1}\), a \(3 \times Dim\) matrix

- +
@@ -937,8 +929,8 @@ except for the sizes of the following matrices:
-
-

4.1.1 Requirements

+
+

4.1.1 Requirements

  • context is not qmckl_null_context
  • @@ -951,8 +943,8 @@ except for the sizes of the following matrices:
-
-

4.1.2 C header

+
+

4.1.2 C header

qmckl_exit_code qmckl_woodbury_3 (
@@ -967,19 +959,19 @@ except for the sizes of the following matrices:
 
-
-

4.1.3 Source

+
+

4.1.3 C source

#include <stdbool.h>
 #include <math.h>
 #include "qmckl.h"
 
-qmckl_exit_code qmckl_woodbury_3_c_(const qmckl_context context,
-                                const uint64_t* Dim_p,
+qmckl_exit_code qmckl_woodbury_3(const qmckl_context context,
+                                const uint64_t Dim,
                                 const double* Updates,
                                 const uint64_t* Updates_index,
-                                const double* breakdown_p,
+                                const double breakdown,
                                 double* Slater_inv) {
 /*
     C := S^{-1} * U,    dim x 3
@@ -991,9 +983,6 @@ except for the sizes of the following matrices:
     return QMCKL_NULL_CONTEXT;
   }
 
-  const uint64_t Dim = *Dim_p;
-  const double breakdown = *breakdown_p;
-
   const uint64_t row1 = (Updates_index[0] - 1);
   const uint64_t row2 = (Updates_index[1] - 1);
   const uint64_t row3 = (Updates_index[2] - 1);
@@ -1067,8 +1056,8 @@ except for the sizes of the following matrices:
 
-
-

4.1.4 Performance…

+
+

4.1.4 Performance…

This function is most efficient when used in cases where there are only 3 rank-1 updates and @@ -1079,12 +1068,12 @@ it is sure they will not result in a singular matrix.

-
-

5 Sherman-Morrison with update splitting

+
+

5 Sherman-Morrison with update splitting

-
-

5.1 qmckl_sherman_morrison_splitting

+
+

5.1 qmckl_sherman_morrison_splitting

This is a variation on the 'Naive' Sherman-Morrison kernel. Whenever the denominator \(1+v_j^T S^{-1} u_j\) in @@ -1101,7 +1090,7 @@ case the Slater-matrix that would have resulted from applying the updates is sin kernel exits with an exit code.

- +
@@ -1166,8 +1155,8 @@ kernel exits with an exit code.
-
-

5.1.1 Requirements

+
+

5.1.1 Requirements

  • context is not QMCKL_NULL_CONTEXT
  • @@ -1181,8 +1170,8 @@ kernel exits with an exit code.
-
-

5.1.2 C header

+
+

5.1.2 C header

qmckl_exit_code qmckl_sherman_morrison_splitting (
@@ -1198,34 +1187,34 @@ kernel exits with an exit code.
 
-
-

5.1.3 Source

+
+

5.1.3 C source

#include <stdbool.h>
 #include "qmckl.h"
 
-qmckl_exit_code qmckl_sherman_morrison_splitting_c_(const qmckl_context context,
-                                const uint64_t* Dim,
-                                const uint64_t* N_updates,
+qmckl_exit_code qmckl_sherman_morrison_splitting(const qmckl_context context,
+                                const uint64_t Dim,
+                                const uint64_t N_updates,
                                 const double* Updates,
                                 const uint64_t* Updates_index,
-                                const double* breakdown,
+                                const double breakdown,
                                 double* Slater_inv) {
 
   if (qmckl_context_check(context) == QMCKL_NULL_CONTEXT) {
     return QMCKL_NULL_CONTEXT;
   }
 
-  double later_updates[*Dim * *N_updates];
-  uint64_t later_index[*N_updates];
+  double later_updates[Dim * N_updates];
+  uint64_t later_index[N_updates];
   uint64_t later = 0;
 
-  (void) qmckl_slagel_splitting_c(*Dim, *N_updates, Updates, Updates_index,
-                            *breakdown, Slater_inv, later_updates, later_index, &later);
+  (void) qmckl_slagel_splitting(Dim, N_updates, Updates, Updates_index,
+                            breakdown, Slater_inv, later_updates, later_index, &later);
 
   if (later > 0) {
-    (void) qmckl_sherman_morrison_splitting_c_(context, Dim, &later,
+    (void) qmckl_sherman_morrison_splitting(context, Dim, later,
                             later_updates, later_index, breakdown, Slater_inv);
   }
 
@@ -1237,8 +1226,8 @@ kernel exits with an exit code.
 
-
-

5.1.4 Performance…

+
+

5.1.4 Performance…

This kernel performs best when there are 2 or more rank-1 update cycles and fail-rate is high. @@ -1248,12 +1237,12 @@ This kernel performs best when there are 2 or more rank-1 update cycles and fail

-
-

6 Woodbury 3x3 and 2x2 with Sherman-Morrison and update splitting

+
+

6 Woodbury 3x3 and 2x2 with Sherman-Morrison and update splitting

-
-

6.1 qmckl_sherman_morrison_smw32s

+
+

6.1 qmckl_sherman_morrison_smw32s

The Woodbury 3x3 and 2x2 kernel with Sherman-Morrison and update splitting combines the low-level Woodbury 3x3 kernel, @@ -1263,7 +1252,7 @@ with Woodbury 2x2 instead of sending them all to Sherman-Morrison with update sp 5 updates the updates are applied in 1 block of 3 updates end 1 block of 2 updates.

- +
@@ -1328,8 +1317,8 @@ with Woodbury 2x2 instead of sending them all to Sherman-Morrison with update sp
-
-

6.1.1 Requirements

+
+

6.1.1 Requirements

  • context is not QMCKL_NULL_CONTEXT
  • @@ -1343,8 +1332,8 @@ with Woodbury 2x2 instead of sending them all to Sherman-Morrison with update sp
-
-

6.1.2 C header

+
+

6.1.2 C header

qmckl_exit_code qmckl_sherman_morrison_smw32s (
@@ -1360,29 +1349,25 @@ with Woodbury 2x2 instead of sending them all to Sherman-Morrison with update sp
 
-
-

6.1.3 Source

+
+

6.1.3 C source

#include <stdbool.h>
 #include "qmckl.h"
 
-qmckl_exit_code qmckl_sherman_morrison_smw32s_c_(const qmckl_context context,
-                                const uint64_t* Dim_p,
-                                const uint64_t* N_updates_p,
+qmckl_exit_code qmckl_sherman_morrison_smw32s(const qmckl_context context,
+                                const uint64_t Dim,
+                                const uint64_t N_updates,
                                 const double* Updates,
                                 const uint64_t* Updates_index,
-                                const double* breakdown_p,
+                                const double breakdown,
                                 double* Slater_inv) {
 
   if (qmckl_context_check(context) == QMCKL_NULL_CONTEXT) {
     return QMCKL_NULL_CONTEXT;
   }
 
-  const uint64_t Dim = *Dim_p;
-  const uint64_t N_updates = *N_updates_p;
-  const double breakdown = *breakdown_p;
-
   qmckl_exit_code rc;
 
   uint64_t n_of_3blocks = N_updates / 3;
@@ -1398,10 +1383,10 @@ with Woodbury 2x2 instead of sending them all to Sherman-Morrison with update sp
     for (uint64_t i = 0; i < n_of_3blocks; i++) {
       const double *Updates_3block = &Updates[i * length_3block];
       const uint64_t *Updates_index_3block = &Updates_index[i * 3];
-      rc = qmckl_woodbury_3_c_(context, &Dim, Updates_3block, Updates_index_3block, &breakdown, Slater_inv);
+      rc = qmckl_woodbury_3(context, Dim, Updates_3block, Updates_index_3block, breakdown, Slater_inv);
       if (rc != 0) { // Send the entire block to slagel_splitting
         uint64_t l = 0;
-        rc = qmckl_slagel_splitting_c(Dim, 3, Updates_3block, Updates_index_3block,
+        rc = qmckl_slagel_splitting(Dim, 3, Updates_3block, Updates_index_3block,
                 breakdown, Slater_inv, later_updates + (Dim * later), later_index + later, &l);
         later = later + l;
       }
@@ -1412,10 +1397,10 @@ with Woodbury 2x2 instead of sending them all to Sherman-Morrison with update sp
   if (remainder == 2) {
     const double *Updates_2block = &Updates[n_of_3blocks * length_3block];
     const uint64_t *Updates_index_2block = &Updates_index[3 * n_of_3blocks];
-    rc = qmckl_woodbury_2_c_(context, &Dim, Updates_2block, Updates_index_2block, &breakdown, Slater_inv);
+    rc = qmckl_woodbury_2(context, Dim, Updates_2block, Updates_index_2block, breakdown, Slater_inv);
     if (rc != 0) { // Send the entire block to slagel_splitting
       uint64_t l = 0;
-      (void) qmckl_slagel_splitting_c(Dim, 2, Updates_2block, Updates_index_2block,
+      (void) qmckl_slagel_splitting(Dim, 2, Updates_2block, Updates_index_2block,
               breakdown, Slater_inv, later_updates + (Dim * later), later_index + later, &l);
       later = later + l;
     }
@@ -1425,13 +1410,13 @@ with Woodbury 2x2 instead of sending them all to Sherman-Morrison with update sp
     const double *Updates_1block = &Updates[n_of_3blocks * length_3block];
     const uint64_t *Updates_index_1block = &Updates_index[3 * n_of_3blocks];
     uint64_t l = 0;
-    (void) qmckl_slagel_splitting_c(Dim, 1, Updates_1block, Updates_index_1block,
+    (void) qmckl_slagel_splitting(Dim, 1, Updates_1block, Updates_index_1block,
             breakdown, Slater_inv, later_updates + (Dim * later), later_index + later, &l);
     later = later + l;
   }
 
   if (later > 0) {
-    (void) qmckl_sherman_morrison_splitting_c_(context, &Dim, &later, later_updates, later_index, &breakdown, Slater_inv);
+    (void) qmckl_sherman_morrison_splitting(context, Dim, later, later_updates, later_index, breakdown, Slater_inv);
   }
   return QMCKL_SUCCESS;
 }
@@ -1441,8 +1426,8 @@ with Woodbury 2x2 instead of sending them all to Sherman-Morrison with update sp
 
-
-

6.1.4 Performance…

+
+

6.1.4 Performance…

This kernel performs best for update cycles with 2 or more rank-1 updates and the fail-rate is low. @@ -1452,8 +1437,8 @@ This kernel performs best for update cycles with 2 or more rank-1 updates and th

-
-

7 Helper Functions

+
+

7 Helper Functions

Private helper-functions that are used by the Sherman-Morrison-Woodbury kernels. @@ -1461,8 +1446,8 @@ These functions can only be used internally by the kernels in this module.

-
-

7.1 qmckl_slagel_splitting

+
+

7.1 qmckl_slagel_splitting

qmckl_slagel_splitting is the non-recursive, inner part of the 'Sherman-Morrison with update splitting'-kernel. @@ -1477,7 +1462,7 @@ as \(\frac{1}{2}u_j\). One half is applied immediately, the other half will be a \(u_{j'}=\frac{1}{2}u_j\) and \(v_{j'}^T=v_{j}^T\), which are stored in the array \texttt{later_updates}.

- +
@@ -1557,8 +1542,8 @@ as \(\frac{1}{2}u_j\). One half is applied immediately, the other half will be a -
-

7.1.1 Requirements

+
+

7.1.1 Requirements

  • Dim >= 2
  • @@ -1574,8 +1559,8 @@ as \(\frac{1}{2}u_j\). One half is applied immediately, the other half will be a
-
-

7.1.2 C header

+
+

7.1.2 C header

double qmckl_slagel_splitting (
@@ -1593,15 +1578,15 @@ as \(\frac{1}{2}u_j\). One half is applied immediately, the other half will be a
 
-
-

7.1.3 Source

+
+

7.1.3 C source

#include <stdbool.h>
 #include <math.h>
 #include "qmckl.h"
 
-qmckl_exit_code qmckl_slagel_splitting_c(uint64_t Dim,
+qmckl_exit_code qmckl_slagel_splitting(uint64_t Dim,
                                               uint64_t N_updates,
                                               const double *Updates,
                                               const uint64_t *Updates_index,
@@ -1667,8 +1652,8 @@ as \(\frac{1}{2}u_j\). One half is applied immediately, the other half will be a
 
-
-

7.1.4 Performance

+
+

7.1.4 Performance

This function cannot be used by itself and is used in Sherman-Morrison with update splitting and Woodbury 3x3 and 2x2 @@ -1679,8 +1664,8 @@ with Sherman-Morrison and update splitting. Please look at the performance recco

-
-

8 End of files

+
+

8 End of files

  assert (qmckl_context_destroy(context) == QMCKL_SUCCESS);
@@ -1694,7 +1679,7 @@ with Sherman-Morrison and update splitting. Please look at the performance recco
 

Author: TREX CoE

-

Created: 2021-10-06 Wed 21:45

+

Created: 2021-10-10 Sun 14:26

Validate

diff --git a/qmckl_tests.html b/qmckl_tests.html index 66095be..8c640f0 100644 --- a/qmckl_tests.html +++ b/qmckl_tests.html @@ -3,7 +3,7 @@ "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> - + Data for Tests @@ -233,27 +233,27 @@ for the JavaScript code in this tag.

Table of Contents

-
-

1 CHBrClF

+
+

1 CHBrClF

This test is the all-electron Hartree-Fock wave function of CHClBr, @@ -337,8 +337,8 @@ and with a high maximum angular momentum.

-
-

1.1 XYZ coordinates

+
+

1.1 XYZ coordinates

   5
@@ -368,8 +368,8 @@ Nuclear coordinates are stored in atomic units in transposed format.
 
-
-

1.2 Atomic basis set

+
+

1.2 Atomic basis set

 HYDROGEN
@@ -1288,8 +1288,8 @@ F   1
 
-
-

1.3 Molecular orbitals

+
+

1.3 Molecular orbitals

#define chbrclf_mo_num ((int64_t) 224)
@@ -60213,8 +60213,8 @@ F   1
 
-
-

1.4 Electron coordinates

+
+

1.4 Electron coordinates

Electron coordinates are stored in atomic units in normal format. @@ -60374,8 +60374,8 @@ Electron coordinates are stored in atomic units in normal format.

-
-

2 N2

+
+

2 N2

This test is mainly for the Jastrow factor and was supplied by @@ -60416,8 +60416,8 @@ treated by pseudopotentials thus excluded from the actual calculation.

-
-

2.1 XYZ coordinates

+
+

2.1 XYZ coordinates

   2
@@ -60444,8 +60444,8 @@ Nuclear coordinates are stored in atomic units in transposed format.
 
-
-

2.2 Electron coordinates

+
+

2.2 Electron coordinates

Electron coordinates are stored in atomic units in normal format. @@ -60474,8 +60474,8 @@ Electron coordinates are stored in atomic units in normal format.

-
-

2.3 Jastrow related data

+
+

2.3 Jastrow related data

This test is mainly for the Jastrow factor and was supplied by @@ -60574,7 +60574,7 @@ Ramon Panades Baruetta.

-

Created: 2021-10-06 Wed 21:45

+

Created: 2021-10-10 Sun 14:26

Validate

diff --git a/qmckl_utils.html b/qmckl_utils.html index 09dd9c2..8f7ef48 100644 --- a/qmckl_utils.html +++ b/qmckl_utils.html @@ -3,7 +3,7 @@ "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> - + Utility functions @@ -333,13 +333,13 @@ for the JavaScript code in this tag.

Table of Contents

-
-

1 Matrix operations

+
+

1 Matrix operations

-
-

1.1 qmckl_transpose

+
+

1.1 qmckl_transpose

Transposes a matrix: \(B_{ji} = A_{ij}\)

- +
@@ -424,8 +424,8 @@ Transposes a matrix: \(B_{ji} = A_{ij}\)
-
-

1.1.1 Requirements

+
+

1.1.1 Requirements

  • context is not QMCKL_NULL_CONTEXT
  • @@ -439,8 +439,8 @@ Transposes a matrix: \(B_{ji} = A_{ij}\)
-
-

1.1.2 C header

+
+

1.1.2 C header

qmckl_exit_code qmckl_transpose (
@@ -456,8 +456,8 @@ Transposes a matrix: \(B_{ji} = A_{ij}\)
 
-
-

1.1.3 Source

+
+

1.1.3 Source

integer function qmckl_transpose_f(context, m, n, A, LDA, B, LDB) &
@@ -516,7 +516,7 @@ Transposes a matrix: \(B_{ji} = A_{ij}\)
 

Author: TREX CoE

-

Created: 2021-10-06 Wed 21:45

+

Created: 2021-10-10 Sun 14:25

Validate