Loading...
Searching...
No Matches
SymEngine::FreeSymbolsVisitor Class Reference
+ Inheritance diagram for SymEngine::FreeSymbolsVisitor:
+ Collaboration diagram for SymEngine::FreeSymbolsVisitor:

Public Member Functions

void bvisit (const Symbol &x)
 
void bvisit (const Subs &x)
 
void bvisit (const Basic &x)
 
set_basic apply (const Basic &b)
 
set_basic apply (const MatrixBase &m)
 

Data Fields

set_basic s
 
uset_basic v
 

Detailed Description

Definition at line 72 of file visitor.cpp.

Member Function Documentation

◆ apply() [1/2]

set_basic SymEngine::FreeSymbolsVisitor::apply ( const Basic b)
inline

Definition at line 108 of file visitor.cpp.

109 {
110 b.accept(*this);
111 return s;
112 }

◆ apply() [2/2]

set_basic SymEngine::FreeSymbolsVisitor::apply ( const MatrixBase m)
inline

Definition at line 114 of file visitor.cpp.

115 {
116 for (unsigned i = 0; i < m.nrows(); i++) {
117 for (unsigned j = 0; j < m.ncols(); j++) {
118 m.get(i, j)->accept(*this);
119 }
120 }
121 return s;
122 }

◆ bvisit() [1/3]

void SymEngine::FreeSymbolsVisitor::bvisit ( const Basic x)
inline

Definition at line 98 of file visitor.cpp.

99 {
100 for (const auto &p : x.get_args()) {
101 auto iter = v.insert(p->rcp_from_this());
102 if (iter.second) {
103 p->accept(*this);
104 }
105 }
106 }
T insert(T... args)

◆ bvisit() [2/3]

void SymEngine::FreeSymbolsVisitor::bvisit ( const Subs x)
inline

Definition at line 83 of file visitor.cpp.

84 {
85 set_basic set_ = free_symbols(*x.get_arg());
86 for (const auto &p : x.get_variables()) {
87 set_.erase(p);
88 }
89 s.insert(set_.begin(), set_.end());
90 for (const auto &p : x.get_point()) {
91 auto iter = v.insert(p->rcp_from_this());
92 if (iter.second) {
93 p->accept(*this);
94 }
95 }
96 }

◆ bvisit() [3/3]

void SymEngine::FreeSymbolsVisitor::bvisit ( const Symbol x)
inline

Definition at line 78 of file visitor.cpp.

79 {
80 s.insert(x.rcp_from_this());
81 }

Field Documentation

◆ s

set_basic SymEngine::FreeSymbolsVisitor::s

Definition at line 75 of file visitor.cpp.

◆ v

uset_basic SymEngine::FreeSymbolsVisitor::v

Definition at line 76 of file visitor.cpp.


The documentation for this class was generated from the following file: