Commit Graph

74 Commits

Author SHA1 Message Date
Pablo Oliveira
b575cda8d6 Optimize out Identity matrix 2021-02-09 14:44:54 +01:00
Pablo Oliveira
6f34f485d3 C++ redesign of data-structures
- Use flat arrays
- Use real type for all matrices
- Merge _f MaponiA3 files
2021-02-09 14:34:39 +01:00
François Coppens
de00fbadff
Merge pull request #4 from fmgjcoppens/feature/c-from-fort
Calling C++ function MaponiA3 from Fortran
2021-02-08 11:24:19 +01:00
François Coppens
b0140cbc07 Changed some comments. 2021-02-06 19:11:02 +01:00
François Coppens
3f6bca2b04 The Fortran interface to C++ fuction MaponiA3() works but the mechanism of passing the 2D arrays from Fortran to C++ must be improved. Now the passed 'linear' 2D arrays are copied and reshaped into usable 2D arrays. This needs to be replaced with some suitable casting mechanism. 2021-02-06 18:59:07 +01:00
François Coppens
7f7b23f7c4 Put more comments in Makefile. 2021-02-04 18:52:26 +01:00
François Coppens
f1641dd4e4 Solved linking problem by including C++ standard library '-lstdc++'. Also added a minimal working example of Fortran-C++ interfacing in dir 'mwe'. 2021-02-04 17:05:55 +01:00
François Coppens
84fffdb7fa Prepared the example matrix of Example 8 of the paper and its
decomposition in the Fortran code and made a basic call to the
subroutine MYSUBROUTINE, which is bound to the C++ void function
'Sherman-Morrison();. For now compilation fails with lots of undefined
references.'
2021-02-04 13:12:47 +01:00
François Coppens
090847247d Prepared the main Fortran infrastructure for the C++ calls. Updated the makefile. 2021-02-04 11:39:00 +01:00
François Coppens
5531d9eb12
Merge pull request #2 from fmgjcoppens/fix/upd-inverse
Fix/upd inverse
2021-02-03 15:05:01 +01:00
François Coppens
d03c9c665b Update of A0_inv fixed. matMul(...) breaks link between A0_inv and Slater_inv. Fixed by creating a new pointer that points to where Slater_inv points to before it gets reassigned by matMul(...) and then copy the updated elements back to the passed array pointed to by the new pointer. 2021-02-03 14:49:42 +01:00
François Coppens
aa6895a4aa Put helper functions in separate header file from the Sherman-Morrison algo. 2021-02-03 12:13:09 +01:00
François Coppens
1d9bb30abc
Merge pull request #1 from fmgjcoppens/fix/compile
Problem fixed.
2021-02-03 11:09:51 +01:00
François Coppens
68d27b6df6 Problem fixed: template function definitions (implementations) need to be fully known in the header file (.hpp) and not in the implementation file (.cpp). 2021-02-03 11:02:15 +01:00
François Coppens
7d55d7db77 Split the program in a header file and an implementation file and included them in main. Does not compile. Get the following error: ld: /tmp/icpcnmVxvw.o: in function void showMatrix<int>(int**, unsigned int, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >)' 2021-02-02 17:06:32 +01:00
François Coppens
9d47bf9bb3 Extracted the SM algorithm and wrote it as a void function that updates the passed old inverse. Does not work yet. For some reason the changes in the inverse do not persist when the function is finished. Also the inverse is not correct. 2021-02-02 15:08:41 +01:00
François Coppens
7d3ffe1d2a Added random matrix initialisation of arbitrary size. Added function to calculate determinant to test matrix invertability of A and A0. 2021-01-29 12:53:20 +01:00
François Coppens
8f54ca1124 Removed .vscode preferences dir from git index and added to .gitignore. 2021-01-29 10:23:22 +01:00
François Coppens
4c1b7f3098 Converted overloaded functions into templates. Removed second size argument from the showMatrix function since we are only interested in square matrices. 2021-01-29 10:03:07 +01:00
François Coppens
d45df44e5e C++ implementation of algo 3 is working. Not optimised yet. 2021-01-27 17:19:41 +01:00
François Coppens
e509f28ba6 That's it for today! 2021-01-26 16:27:57 +01:00
François Coppens
daadf44eee Maponi algorithm 4 works for the modified Example 18 in the paper but not for general non-singlual NxN matrices yet. 2021-01-26 11:32:17 +01:00
François Coppens
d286e0d45e Added some initial data likle Makefiles and .gitignore. 2021-01-26 07:26:54 +01:00
François Coppens
3704856b10 Initial commit. 2021-01-25 15:25:23 +01:00