Commit Graph

37 Commits

Author SHA1 Message Date
François Coppens
c8df88b4ef Made lapack/MKL inclusion in code dependent on preprocessor macro 'MKL'. Automatic build should now succeed. 2021-05-21 11:54:57 +02:00
François Coppens
6c9c68c93d Added LAPACK option to test_h5.cpp to compare residuals and number of operations. 2021-05-20 19:21:59 +02:00
François Coppens
0e5bbbbffb Replaced inappropriate std::abs() occurences with std::fabs() in C++ code. 2021-05-12 16:11:47 +02:00
François Coppens
5693e177ba Re-applied code formatting on C++ code with clang-format --style=llvm. 2021-05-10 14:50:45 +02:00
Francois Coppens
adf893ed6f - Various fixes
- Merged MaponiA3 and MaponiA3S into one file.
2021-05-07 17:11:04 +02:00
Pablo Oliveira
f4becac4c0 First implementation of SM4
SM4: Sherman Morrison, mix between SM3 + SM2
Leave zero denominators for later (SM3), and when none are left then split (SM2)
2021-05-06 10:51:42 +02:00
François Coppens
3ee4d3b56d - Added a small 3x3 example that will always become singular regardles the order of the applied updates. This example is added to test Maponi A3 augmented with Slagel-splitting.
- Slagel-splitting in Maponi A3 is now working. A thourough analysis on the QMC=Chem datasets still has te be done.
- Acceptance tollerance  in 'test_h5' on the residuals can be set at runtime now.
2021-05-05 11:59:00 +02:00
Francois Coppens
e3815267fb * Added SM{1,2,3} algorithms to Fortran module
* Deleted final ylk array in MaponiA3(S)
* Output of Valgrind seem to suggest there are no major memory problems.
2021-05-05 11:59:00 +02:00
François Coppens
fb3ed9ce0c In Maponi A3, converted divisions into multiplications. 2021-05-05 11:59:00 +02:00
François Coppens
af64b91ca6 Started debugging Slagel-splitting in MaponiA3. 2021-05-05 11:59:00 +02:00
François Coppens
7cef89e2b5 Slagel-splitting implemented but not tested yet. 2021-05-05 11:59:00 +02:00
Francois Coppens
b863d40c05 - Setting break-down threshold trough smvars.sh
- Fixed SM3 to escape infinite update-loop
2021-04-15 18:13:26 +02:00
Francois Coppens
e5648f7485 Ran: clang-format --style=LLVM on *.cpp and *.hpp files. 2021-04-15 14:38:42 +02:00
Francois Coppens
fad8eb2e89 - Fixed small dataset cycle 8169 to transform to replacement updates and regenerated the hdf5 file.
- Simplified makefiles.
2021-04-15 12:17:12 +02:00
Francois Coppens
1201718f28 Preped files, headers, functions, test_h5 and Makefiles for MaponiA3S. 2021-04-14 17:18:31 +02:00
Francois Coppens
991f40a605 Moved common MaponiA3 functions to SM_Helpers.{cpp,hpp} to prepare for MaponiA3+Slagel splitting. 2021-04-14 16:19:49 +02:00
Francois Coppens
ab9d13180a Small restructuring and cleaning up spurious includes and and namespaces. 2021-04-14 15:32:54 +02:00
Francois Coppens
c2f643ad8f - Updated cleaning target in Makefile
- Updated gitignore
- Added python script to compute basic statistical observables from testruns
- Added test bash script to automate test_h5: the cycles in the dataset are not continues and test_h5 crashes if a cycle number is not present in the dataset.
- Added common threshold for all 3 standard SM algos.
2021-04-09 17:23:14 +02:00
Francois Coppens
7caf12c296 Cleaned up: datasets, test-program name, Makefiles. Use column numbers in SM_Standard.cpp. 2021-04-06 16:17:42 +02:00
Francois Coppens
6cd9fb1072 - Moved transposing of Slater_inv to HDF5 conversion tool and removed it from the test program.
- Let Maponi A3 continue, even after the algorithm breaks down.
2021-03-18 14:06:06 +01:00
Pablo Oliveira
c10ded9cdd Add version name to tests 2021-03-15 16:00:16 +01:00
Pablo Oliveira
f096db6411 New implementations for Sherman Morisson
- SM2: Slagel splitting implementation
    (http://hdl.handle.net/10919/52966)

  - SM3: Keep close to zero denominators for later

  - Update tests to show the squared residual
2021-03-15 14:01:38 +01:00
François Coppens
6012b9decf 4x4 with 2 updates example is working again after adding update cycle 8169 dataset but with replacement updates instead of additive updates. 2021-03-12 15:49:02 +01:00
François Coppens
ef97b40196 Changed code to treat the dataset as replacement updates, instead of additive updates. Before the updates are used to compute the inverse they are transformed accordingly.
However, this breaks the 4x4 example in update cycle 8169.
2021-03-12 12:38:50 +01:00
François Coppens
081fbfc1d8 Loop merge successful.
Next step: reduce the number of indices of ylk by not keeping
all the previous solutions.
2021-03-10 16:56:22 +01:00
François Coppens
e18e80ff5c Removed matMul() from Helpers.hpp and renamed matMul2() to matMul(). 2021-03-10 15:27:53 +01:00
François Coppens
ffbde8f88c More changes to debug output. 2021-03-10 12:18:08 +01:00
François Coppens
de8e89df75 Change in debug output. 2021-03-10 11:54:43 +01:00
François Coppens
3b3567040b Added more debug output. 2021-03-10 11:41:34 +01:00
François Coppens
a9604b3838 Cleaned-up main loop. 2021-03-09 10:43:00 +01:00
François Coppens
066e50914c Regularised main loop. 2021-03-09 10:43:00 +01:00
Francois Coppens
9c82092cff Removed dependence on a breakdown array. 2021-03-09 10:40:47 +01:00
Francois Coppens
b2c6847ed8 Add debug comments 2021-03-09 10:39:58 +01:00
Francois Coppens
3f60779700 Cleanup 2021-03-09 10:39:58 +01:00
François Coppens
983f87d504 Rewrote matMul function so it doesn't declare memory inside. 2021-03-09 10:39:58 +01:00
Pablo Oliveira
4bd61dd76c Add a standard Sherman-Morisson implementation
- It can serve as a baseline reference

- It can serve as a starting point for including the pivot
  and splitting techniques from Maponi and Slaggel without the full
  complexity of the MaponiA3 algorithm
2021-03-05 17:00:48 +01:00
François Coppens
5d4a7af01a File tree restructured. Written build script build.sh. TODO: convert buld script into Makefile. 2021-02-26 17:28:52 +01:00