ABACUS develop
Atomic-orbital Based Ab-initio Computation at UStc
Loading...
Searching...
No Matches
Inverse_Matrix.h
Go to the documentation of this file.
1//=======================
2// AUTHOR : Peize Lin
3// DATE : 2022-08-17
4//=======================
5
6#pragma once
7
8#include <RI/global/Tensor.h>
9#include <vector>
10
11template<typename Tdata>
13{
14public:
15 enum class Method{potrf}; //, syev};
16 void cal_inverse(const Method &method);
17
18 void input(const RI::Tensor<Tdata> &m);
19 void input(const std::vector<std::vector<RI::Tensor<Tdata>>> &ms);
20 RI::Tensor<Tdata> output() const;
21 std::vector<std::vector<RI::Tensor<Tdata>>> output(const std::vector<size_t> &n0, const std::vector<size_t> &n1) const;
22
23private:
24 void using_potrf();
25 void copy_down_triangle();
26 RI::Tensor<Tdata> A;
27};
28
29#include "Inverse_Matrix.hpp"
Definition Inverse_Matrix.h:13
Method
Definition Inverse_Matrix.h:15
RI::Tensor< Tdata > A
Definition Inverse_Matrix.h:26
void using_potrf()
Definition Inverse_Matrix.hpp:25
void cal_inverse(const Method &method)
Definition Inverse_Matrix.hpp:15
void copy_down_triangle()
Definition Inverse_Matrix.hpp:152
void input(const RI::Tensor< Tdata > &m)
Definition Inverse_Matrix.hpp:63
RI::Tensor< Tdata > output() const
Definition Inverse_Matrix.hpp:117