1
0
mirror of https://github.com/TREX-CoE/qmckl.git synced 2024-06-30 00:44:52 +02:00
Commit Graph

562 Commits

Author SHA1 Message Date
Francois Coppens
a5e58c80d7 Passing argument context instead of creating and passing a locally created context. #25 2021-07-29 11:48:38 +02:00
Aurélien Delval
f43600f3d4 Merge branch 'master' of https://github.com/PurplePachyderm/qmckl 2021-07-27 15:56:47 +02:00
Aurélien Delval
eb8d75c247 Add accuracy target in distance and AO probes
The target has been set to 1d.-14 (or epsilon), because this was the value already
used in the tests. However this might not be the best choice with the
non-deterministic backend, so it might be necessary to adjust it in the
future.

Also, the expectedValue argument has been set to 0 since it is not used.
(the tests checks have already been written anyway)
2021-07-27 15:50:33 +02:00
vijay gopal chilkuri
cb522f7e1d Added verificarlo based compilation info in TODO. #29 2021-07-27 12:34:50 +02:00
Aurélien Delval
b57ea3f1a6 Link libvfc_probes and libvfc_probes_f when CI support enabled
Those 2 libraries used to be linked in an IF statement of the
Makefile.am when the support for Verificarlo CI was enabled. This seemed
to have beeb removed accidentally when merging changes from the main repository.
2021-07-27 11:23:30 +02:00
Francois Coppens
afc6e115d3 Resolved compiler warnings about initialising 'objects' with 'const objects'. #25 2021-07-27 08:48:28 +02:00
Francois Coppens
0e4ea1f81b Fixed tests. Everything compiles successfully and passes all tests. #25 2021-07-27 06:59:44 +02:00
Francois Coppens
41be86fe59 Removed dependency on qmckl_threshhold() and the accompanying preprocessor definition. The break-down threshold now has to be passed explicitly as a function argument. #25 2021-07-26 17:41:21 +02:00
Francois Coppens
decd977fff Added mixed kernel with Woodbury 3x3 and update splitting. #25 2021-07-26 12:19:29 +02:00
Aurélien Delval
361caba901
Delete htmlize.el 2021-07-26 09:31:38 +02:00
Aurélien Delval
4c554ce5e4
Delete config.h.in~ 2021-07-26 09:31:06 +02:00
Aurélien Delval
424afc4fc7 Create symbolic link to /usr/lib/python3 instead of alias 2021-07-26 08:26:15 +02:00
Aurélien Delval
f444dd7e75 Run apt upgrade in CI workflow before emacs install 2021-07-26 08:20:06 +02:00
Aurélien Delval
9714ab095e Tentative to fix CI
- Create alias to python command
- Install emacs in workflow
2021-07-26 08:12:48 +02:00
Aurélien Delval
820ed0ec34 [auto] Set up Verificarlo CI on this branch 2021-07-26 07:44:18 +02:00
Aurélien Delval
66a35e2fc0 Fix Makefile.am and change probes name 2021-07-25 15:36:14 +02:00
Aurélien Delval
e443790806 Place/rename new probes in both distance and AO tests 2021-07-24 13:19:09 +02:00
vijay gopal chilkuri
d2eb9f5a5d Added interfaces and fortran versions and fixed return for smw2s. #25 2021-07-23 19:58:24 +02:00
Francois Coppens
159fb149a4 Added Woobury 3x3, 2x2 and Sherman-Morrison-Splitting mixed kernels. Compiles fine but test still fail. #25 2021-07-23 18:28:25 +02:00
Aurélien Delval
ce24885979 Correct tests and put C(2,2) in distance probes
Since we don't need to place probs on all matrices, a simple solution
seems to monitor one element of the matrix. A solution could be to
compute a matrix norm / residual but this would make the tests more
complex.
2021-07-23 15:19:12 +02:00
vijay
3f4ace0425
Merge branch 'master' into sherman-morrison-woodbury 2021-07-23 15:08:31 +02:00
Aurélien Delval
cbf1bd8de8 Fix replace error in AO 2021-07-23 12:28:27 +02:00
Aurélien Delval
b1699d58c9 Merge branch 'TREX-CoE-master' 2021-07-23 12:27:41 +02:00
Aurélien Delval
68dc374422 Merge branch 'master' of https://github.com/TREX-CoE/qmckl into TREX-CoE-master 2021-07-23 12:27:18 +02:00
Aurélien Delval
145f4fba40
Add the qmckl_probes interface (#2)
* comment

* Update distance test code

The distance test has been updated to the latest version, with a first attempt at using vfc_probes inside it

* Functional implementation of vfc_probes in the distance tests

This commit has the first functional vfc_ci tests. Verificarlo tests
should be written over the existing tests, and they can be enabled with
the following configure command:

QMCKL_DEVEL=1 ./configure --prefix=$PWD/_install --enable-maintainer-mode --enable-vfc_ci CC="verificarlo-f -Mpreprocess -D VFC_CI" FC="verificarlo-f -Mpreprocess -D VFC_CI" --host=x86_64

The --enable-vfc_ci flag will trigger the linking of the vfc_ci
library. Moreover, as of now, the "-Mpreprocess" and "-D VFC_CI" flags
have to be specified directly here. There is probably an appropriate
macro to place those flags into but I couldn't find it yet, and could
only manage to build the tests this way.

When the VFC_CI preprocessor is defined, somme additional code to
register and export the test probes can be executed (see
qmckl_distance.org).

As of now, the tests are built as normal, even though they are expected
to fail :

make all
make check

From there, the test_qmckl_distance (and potentially the others)
executable can be called at will. This will typically be done
automatically by vfc_ci, but one could manually execute the executable
by defining the following env variables :

VFC_PROBES_OUTPUT="test.csv" VFC_BACKENDS="libinterflop_ieee.so"

depending on the export file and the Verificarlo backend to be used.

The next steps will be to define more tests such as this one, and to
integrate them into a Verificarlo CI workflow (by writing a
vfc_tests_config.json file and using the automatic CI setup
command).

* Error in FOrtran interface fixed

* Added missing Fortran interfaces

* Modify distance test and install process integration

All probes are now ignored using only the preprocessor (instead
of checking for a facultative argument) in the distance test.
Moreover,preprocessing can now be enabled correctly using FCFLAGS
(the issue seemed to come from the order of the arguments passed
to gfortran/verificarlo-f with the preprocessor arg having to come
first).

* Add vfc_probes to AO tests

vfc_probes have been added to qmckl_ao.org in the same way as
qmckl_distance.org, which means that it can be enabled or disabled at
compile time using the --enable-vfc_ci option.

qmckl_distance.org has been slightly modified with a better indentation,
and configure.ac now adds the "-D VFC_CI" flag to CFLAGS when vfc_ci is
enabled.

* Start work on the vfc tests config file and on a probes wrapper

The goal in the next few commits is to make the integration of
vfc_probes even easier by using a wrapper to vfc_probe dedicated to
qmckl. This will make it easier to create a call to vfc_probe that can be
ignored if VFC_CI is not defined in the preprocessor. Once this is done,
the integration will be completed by trying to create an actual workflow
to automatically build the library and execute CI tests.

* Moved qmckl_probes out of src

As of now, qmckl_probes have been moved to tools, and can be built via a
bash script. This approach seems to make more sense, as this should not
be a part of the library itself, but an additional tool to test it.

* Functional Makefile setup to enable qmckl_probes

The current setup builds qmck_probes by adding it to the main QMckl
libray (by adding it to the libtool sources). The Fortran interface's
module still need to be compiled separately.

TODO : Clean the build setup, improve integration in qmckl_tests and
update tests in qmckl_ao with the new syntax.

* New probes syntax in AO tests

* Clean the probes/Makefile setup

The Fortran module is now built a the same time than the main library.
The commit also adds a few fixes in the tests and probes wrapper.

Co-authored-by: Anthony Scemama <scemama@irsamc.ups-tlse.fr>
2021-07-23 12:01:14 +02:00
Pablo de Oliveira Castro
e5806e676b
Make sure qmckl.h can be imported from C++ (#26)
When qmckl.h is included in a C++ file wrap the definitions in
an extern "C" block to avoid mangling.
2021-07-23 09:02:25 +02:00
vijay gopal chilkuri
90b6333560 Splitting tests bug fix. #25 2021-07-22 18:20:20 +02:00
Francois Coppens
e1b325ab18 Added Sherman-Morrison with update splitting. For now the headers for qmckl_slagel_splitting_c and qmckl_sherman_morrison_splitting_c are not generated. #25 2021-07-22 18:05:39 +02:00
Francois Coppens
c6d00d5c5b Added and tested Woodbury 3x3 kernel to QMCkl.
Residual = wb3 14 9.92936e-07 1.90518e-11
ok -- cycle 14

Residual = qmckl_wb3 14 9.92936e-07 1.90518e-11
ok -- cycle 14. #25
2021-07-22 11:41:47 +02:00
vijay gopal chilkuri
fdb8f5d50a changed unsigned int to uint64_t for consistency. #25 2021-07-22 09:59:02 +02:00
vijay gopal chilkuri
83dbab7f6b Try not to export org-mode lisp stuff. #25 2021-07-21 17:56:04 +02:00
vijay gopal chilkuri
081e27dd92 Bug fix in tests. #25 2021-07-21 17:42:48 +02:00
Francois Coppens
11eee81f84 - Added Woodbury 2x2 to org-mode file. QMCkl compiles but the testsuite fails with a segementation fault. #25 2021-07-21 17:31:25 +02:00
vijay gopal chilkuri
04d2ec2d70 Added an example usage of qmckl_sherman_morrison function as a test. #25 2021-07-20 19:34:51 +02:00
vijay gopal chilkuri
6b847d6dd3 Everything comipiles smoothly. Fixed link issue. #25 2021-07-20 16:58:38 +02:00
Francois Coppens
7b2a8caeab - Added documentation to helper functions
- Removed redundant #include qmckl.h
- Commented out the #ifdef DEBUG ... #endif blocks
- Changed Sherman-Morrison break-down check to use qmckl_exit_code qmckl_sherman_morrison_threshold double* const thresh ). #25
2021-07-20 12:09:43 +02:00
Francois Coppens
f325f4feda - Replaced <cmath> with <math.h> and std::fabs() with fabs().
- Changed return values 'true' and 'false' to `QMCKL_SUCCESS` and `QMCKL_FAILURE`.
- Commented out the '#ifdef DEBUG ... #endif' blocks because debug messages are not implemented yet. #25
2021-07-20 11:40:27 +02:00
Francois Coppens
80c9a2291c Replaced <cmath> with <math.h> and std::fabs() with fabs() to be C-complient. #25 2021-07-20 11:15:33 +02:00
vijay gopal chilkuri
dcb4816941 Added threshold function. Tests still dont compile. #25 2021-07-20 10:51:21 +02:00
vijay gopal chilkuri
6e047046f4 Get the sherman morrison to compile. Tests still dont compile. #25 2021-07-19 18:25:10 +02:00
vijay gopal chilkuri
dce8cad154 Modified autogen functions to incorporate unsigned. #25 2021-07-19 18:24:19 +02:00
Francois Coppens
7849f510f4 Started integration of naive Sherman-Morrison in the org-mode file. #25 2021-07-19 17:39:01 +02:00
Francois Coppens
81f5696950 Changed internal functions to static functions. Changed function names to conform with QMCkl naming conventions. Removed irrelevant debug output. qmckl_sherman_morrison() now returns false if the denominator is too close to 0 and true if it is ok. #25 2021-07-19 16:15:28 +02:00
vijay gopal chilkuri
4e31dc4ac4 Added Tests block and set the noexport tags. #25 2021-07-19 17:34:47 +05:30
vijay gopal chilkuri
897eb3f34e Added call to generate_f_interface in template. #25 2021-07-19 17:31:34 +05:30
vijay gopal chilkuri
6c2866967d Added call to generate_c_interface in template. #25 2021-07-19 17:31:11 +05:30
vijay gopal chilkuri
36e414aacd Added call to generate_c_header to template. #25 2021-07-19 17:30:10 +05:30
vijay gopal chilkuri
b0fd86db40 Added missing org file. #25 2021-07-19 15:31:07 +05:30
vijay gopal chilkuri
269f8d33d2 Added template org file for Francois. #25 2021-07-19 15:29:32 +05:30
Francois Coppens
f873b36213 First stage of QMCkl integration of Sherman-Morrison-Woodbury kernels. 2021-07-19 09:55:58 +02:00