Skip to content

Commit 9daa123

Browse files
committed
1. add class Filter_Atom
1 parent 3883b69 commit 9daa123

File tree

6 files changed

+147
-4
lines changed

6 files changed

+147
-4
lines changed

include/RI/parallel/Parallel_LRI.h

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -49,6 +49,8 @@ class Parallel_LRI
4949
virtual const std::vector<TAC>& get_list_Ab01(const TA &Aa01, const TAC &Aa2) const =0;
5050
virtual const std::vector<TAC>& get_list_Ab2 (const TA &Aa01, const TAC &Aa2, const TAC &Ab01) const =0;
5151

52+
virtual ~Parallel_LRI()=default;
53+
5254
struct List_A
5355
{
5456
std::vector<TA > a01;

include/RI/ri/Filter_Atom.h

Lines changed: 63 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,63 @@
1+
// ===================
2+
// Author: Peize Lin
3+
// date: 2024.08.17
4+
// ===================
5+
6+
#pragma once
7+
8+
#include "Label.h"
9+
10+
namespace RI
11+
{
12+
13+
template<typename TA, typename TAC>
14+
class Filter_Atom
15+
{
16+
public:
17+
virtual bool filter_for1(const Label::ab_ab &label, const TA &A1) const { return false; }
18+
// a01b01_a2b01: Aa01
19+
// a01b01_a2b2: Aa01
20+
// a01b2_a2b01: Aa01
21+
virtual bool filter_for1(const Label::ab_ab &label, const TAC &A1) const { return false; }
22+
// a01b01_a01b01: Aa2
23+
// a01b01_a01b2: Ab01
24+
25+
26+
27+
virtual bool filter_for2(const Label::ab_ab &label, const TA &A1, const TAC &A2) const { return false; }
28+
// a01b01_a2b01: Aa01, Ab01
29+
// a01b01_a2b2: Aa01, Ab2
30+
// a01b2_a2b01: Aa01, Ab01
31+
virtual bool filter_for2(const Label::ab_ab &label, const TAC &A1, const TA &A2) const { return false; }
32+
// a01b01_a01b2: Ab01, Aa01
33+
virtual bool filter_for2(const Label::ab_ab &label, const TAC &A1, const TAC &A2) const { return false; }
34+
// a01b01_a01b01: Aa2, Ab01
35+
36+
37+
38+
virtual bool filter_for31(const Label::ab_ab &label, const TA &A1, const TAC &A2, const TAC &A3) const { return false; }
39+
// a01b01_a2b01: Aa01, Ab01, Aa2
40+
// a01b01_a2b2: Aa01, Ab2, Aa2
41+
// a01b2_a2b01: Aa01, Ab01, Ab2
42+
virtual bool filter_for31(const Label::ab_ab &label, const TAC &A1, const TA &A2, const TAC &A3) const { return false; }
43+
// a01b01_a01b2: Ab01, Aa01, Ab2
44+
virtual bool filter_for31(const Label::ab_ab &label, const TAC &A1, const TAC &A2, const TA &A3) const { return false; }
45+
// a01b01_a01b01: Aa2, Ab01, Aa01
46+
47+
48+
49+
virtual bool filter_for32(const Label::ab_ab &label, const TA &A1, const TAC &A2, const TAC &A3) const { return false; }
50+
// a01b01_a2b01: Aa01, Ab01, Ab2
51+
// a01b01_a2b2: Aa01, Ab2, Ab01
52+
// a01b2_a2b01: Aa01, Ab01, Aa2
53+
virtual bool filter_for32(const Label::ab_ab &label, const TAC &A1, const TA &A2, const TAC &A3) const { return false; }
54+
// a01b01_a01b2: Ab01, Aa01, Aa2
55+
virtual bool filter_for32(const Label::ab_ab &label, const TAC &A1, const TAC &A2, const TAC &A3) const { return false; }
56+
// a01b01_a01b01: Aa2, Ab01, Ab2
57+
58+
59+
60+
virtual ~Filter_Atom()=default;
61+
};
62+
63+
}

0 commit comments

Comments
 (0)