Version: 9.15.0
YACS::ENGINE::NotSimpleCasePoint Class Reference

#include <NotSimpleCasePoint.hxx>

Inheritance diagram for YACS::ENGINE::NotSimpleCasePoint:
Collaboration diagram for YACS::ENGINE::NotSimpleCasePoint:

Public Member Functions

 NotSimpleCasePoint ()=default
 
 NotSimpleCasePoint (const std::list< AbstractPoint * > &nodes, AbstractPoint *father)
 
 ~NotSimpleCasePoint ()=default
 
AbstractPointdeepCopy (AbstractPoint *father) const override
 
NodegetFirstNode () override
 
NodegetLastNode () override
 
int getMaxLevelOfParallelism () const override
 
void getWeightRegardingDPL (ComplexWeight *weight) override
 
void partitionRegardingDPL (const PartDefinition *pd, std::map< ComposedNode *, YACS::BASES::AutoRefCnt< PartDefinition > > &zeMap) const override
 
std::string getRepr () const override
 
void accept (PointVisitor *pv) override
 
AbstractPointexpandNonSimpleCaseOn (NotSimpleCasePoint *pathologicalPt, const std::set< Node * > &uncatchedNodes) override
 
- Public Member Functions inherited from YACS::ENGINE::BlocPoint
 BlocPoint ()=default
 
 BlocPoint (const std::list< AbstractPoint * > &nodes, AbstractPoint *father)
 
void deepCopyFrom (const BlocPoint &other)
 
AbstractPointfindPointWithNode (Node *node)
 
AbstractPointgetNodeAfter (Node *node)
 
AbstractPointgetNodeB4 (Node *node)
 
bool contains (Node *node) const override
 
bool anyOf (const std::set< Node * > &nodes) const override
 
int getNumberOfNodes () const
 
const std::list< AbstractPoint * > & getListOfPoints () const
 
virtual ~BlocPoint ()
 
bool internalContinueForSimplify () const
 
bool presenceOfNonSimpleCase () const
 
AbstractPointgetUnique ()
 
const AbstractPointgetUnique () const
 
AbstractPointgetUniqueAndReleaseIt ()
 
- Public Member Functions inherited from YACS::ENGINE::AbstractPoint
 AbstractPoint ()=default
 
 AbstractPoint (AbstractPoint *father)
 
AbstractPointgetFather () const
 
AbstractPointgetGodFather ()
 
bool amIGod ()
 
void setFather (AbstractPoint *father)
 
bool isBegin ()
 
bool isLast ()
 
bool isSimplyLinkedBeforeAfter (BlocPoint *sop)
 
bool isSimplyLinkedAfterNullBefore (BlocPoint *sop)
 
bool isSimplyLinkedBeforeNullAfter (BlocPoint *sop)
 
bool isNullBeforeNullAfter (BlocPoint *sop)
 
LinkedBlocPointtryAsLink (BlocPoint *sop)
 
ForkBlocPointtryAsFork (BlocPoint *sop)
 
ForkBlocPointtryAsForkBis (BlocPoint *sop)
 
ForkBlocPointtryAsForkTer (BlocPoint *sop)
 
ForkBlocPointtryAsForkQuatro (BlocPoint *sop)
 
virtual ~AbstractPoint ()
 
bool isSimplyLinkedAfter (BlocPoint *sop, Node *node)
 
bool isSimplyLinkedBefore (BlocPoint *sop, Node *node)
 

Additional Inherited Members

- Static Public Member Functions inherited from YACS::ENGINE::AbstractPoint
static void TryAsNotSimpleCase (AbstractPoint *father, const std::vector< AbstractPoint * > &ptsToKill, std::list< AbstractPoint * > &nodes, bool &somethingDone)
 
static bool IsGatherB4Ext (Node *node)
 
static bool IsSimplyLinkedAfterExt (Node *node)
 
static bool IsScatterAfterExt (Node *node)
 
static bool IsSimplyLinkedBeforeExt (Node *node)
 
static bool IsNoLinksBefore (Node *node)
 
static bool IsNoLinksAfter (Node *node)
 
static NodeGetNodeB4 (Node *node)
 
static NodeGetNodeAfter (Node *node)
 
static AbstractPointGetDirectSonOf (AbstractPoint *refFather, AbstractPoint *sonOrLittleSon)
 
static bool IsCommonDirectSonOf (AbstractPoint *refFather, const std::list< OutGate * > &outgs, AbstractPoint *&ret)
 
static bool IsCommonDirectSonOf (AbstractPoint *refFather, const std::list< InGate * > &ings, AbstractPoint *&ret)
 
static void FeedData (AbstractPoint *ptToBeRewired, std::map< std::string, std::tuple< ElementaryPoint *, Node *, std::shared_ptr< Bloc > > > *m)
 
static void FeedData (const std::list< AbstractPoint * > &ptsToBeRewired, std::map< std::string, std::tuple< ElementaryPoint *, Node *, std::shared_ptr< Bloc > > > *m)
 
static void Rewire (const std::vector< AbstractPoint * > &ptsToKill, std::map< std::string, std::tuple< ElementaryPoint *, Node *, std::shared_ptr< Bloc > > > *m)
 
static void UnRewire (std::map< std::string, std::tuple< ElementaryPoint *, Node *, std::shared_ptr< Bloc > > > &m)
 
static void Display (std::map< std::string, std::tuple< ElementaryPoint *, Node *, std::shared_ptr< Bloc > > > *m)
 
- Protected Member Functions inherited from YACS::ENGINE::BlocPoint
void getOutPoint (AbstractPoint *node)
 
- Protected Attributes inherited from YACS::ENGINE::BlocPoint
std::list< AbstractPoint * > _nodes
 
- Protected Attributes inherited from YACS::ENGINE::AbstractPoint
AbstractPoint_father = nullptr
 

Detailed Description

Definition at line 29 of file NotSimpleCasePoint.hxx.

Constructor & Destructor Documentation

◆ NotSimpleCasePoint() [1/2]

YACS::ENGINE::NotSimpleCasePoint::NotSimpleCasePoint ( )
default

◆ NotSimpleCasePoint() [2/2]

NotSimpleCasePoint::NotSimpleCasePoint ( const std::list< AbstractPoint * > &  nodes,
AbstractPoint father 
)

Definition at line 29 of file NotSimpleCasePoint.cxx.

29  :BlocPoint(nodes,father)
30 {
31 }

◆ ~NotSimpleCasePoint()

YACS::ENGINE::NotSimpleCasePoint::~NotSimpleCasePoint ( )
default

Member Function Documentation

◆ accept()

void NotSimpleCasePoint::accept ( PointVisitor pv)
overridevirtual

Implements YACS::ENGINE::AbstractPoint.

Definition at line 94 of file NotSimpleCasePoint.cxx.

95 {
96  pv->beginNotSimpleCasePoint(this);
97  for(auto it:_nodes)
98  it->accept(pv);
99  pv->endNotSimpleCasePoint(this);
100 }
std::list< AbstractPoint * > _nodes
Definition: BlocPoint.hxx:35
virtual void endNotSimpleCasePoint(NotSimpleCasePoint *pt)=0
virtual void beginNotSimpleCasePoint(NotSimpleCasePoint *pt)=0

References YACS::ENGINE::BlocPoint::_nodes, YACS::ENGINE::PointVisitor::beginNotSimpleCasePoint(), and YACS::ENGINE::PointVisitor::endNotSimpleCasePoint().

◆ deepCopy()

AbstractPoint * NotSimpleCasePoint::deepCopy ( AbstractPoint father) const
overridevirtual

Implements YACS::ENGINE::AbstractPoint.

Definition at line 33 of file NotSimpleCasePoint.cxx.

34 {
36  ret->deepCopyFrom(*this);
37  ret->setFather(father);
38  return ret;
39 }

References YACS::ENGINE::BlocPoint::deepCopyFrom(), and YACS::ENGINE::AbstractPoint::setFather().

◆ expandNonSimpleCaseOn()

AbstractPoint * NotSimpleCasePoint::expandNonSimpleCaseOn ( NotSimpleCasePoint pathologicalPt,
const std::set< Node * > &  uncatchedNodes 
)
overridevirtual

Implements YACS::ENGINE::AbstractPoint.

Definition at line 102 of file NotSimpleCasePoint.cxx.

103 {
104  throw YACS::Exception("NotSimpleCasePoint::expandNonSimpleCaseOn : ooops !");
105 }

◆ getFirstNode()

Node * NotSimpleCasePoint::getFirstNode ( )
overridevirtual

Implements YACS::ENGINE::AbstractPoint.

Definition at line 41 of file NotSimpleCasePoint.cxx.

42 {
43  if(_nodes.empty())
44  throw Exception("NotSimpleCasePoint::getFirstNode : error no branches !");
45  return _nodes.front()->getFirstNode();
46 }

References YACS::ENGINE::BlocPoint::_nodes.

◆ getLastNode()

Node * NotSimpleCasePoint::getLastNode ( )
overridevirtual

Implements YACS::ENGINE::AbstractPoint.

Definition at line 48 of file NotSimpleCasePoint.cxx.

49 {
50  if(_nodes.empty())
51  throw Exception("NotSimpleCasePoint::getFirstNode : error no branches !");
52  return _nodes.back()->getLastNode();
53 }

References YACS::ENGINE::BlocPoint::_nodes.

◆ getMaxLevelOfParallelism()

int NotSimpleCasePoint::getMaxLevelOfParallelism ( ) const
overridevirtual

Implements YACS::ENGINE::AbstractPoint.

Definition at line 55 of file NotSimpleCasePoint.cxx.

56 {
57  int ret(0);
58  for(std::list<AbstractPoint *>::const_iterator it=_nodes.begin();it!=_nodes.end();it++)
59  ret=std::max(ret,(*it)->getMaxLevelOfParallelism());
60  return ret;
61 }

References YACS::ENGINE::BlocPoint::_nodes.

◆ getRepr()

std::string NotSimpleCasePoint::getRepr ( ) const
overridevirtual

Implements YACS::ENGINE::AbstractPoint.

Definition at line 80 of file NotSimpleCasePoint.cxx.

81 {
82  std::size_t sz(_nodes.size()),ii(0);
83  std::string ret("|");
84  for(std::list<AbstractPoint *>::const_iterator it=_nodes.begin();it!=_nodes.end();it++,ii++)
85  {
86  ret+=(*it)->getRepr();
87  if(ii!=sz-1)
88  ret+="^";
89  }
90  ret+="|";
91  return ret;
92 }

References YACS::ENGINE::BlocPoint::_nodes.

◆ getWeightRegardingDPL()

void NotSimpleCasePoint::getWeightRegardingDPL ( ComplexWeight weight)
overridevirtual

Implements YACS::ENGINE::AbstractPoint.

Definition at line 63 of file NotSimpleCasePoint.cxx.

64 {
65  ComplexWeight localWeight;
66  for(std::list<AbstractPoint *>::const_iterator it=_nodes.begin();it!=_nodes.end();it++)
67  {
68  (*it)->getWeightRegardingDPL(&localWeight);
69  weight->addWeight(&localWeight);
70  localWeight.setToZero();
71  }
72 }
void addWeight(const ComplexWeight *other)

References YACS::ENGINE::BlocPoint::_nodes, YACS::ENGINE::ComplexWeight::addWeight(), and YACS::ENGINE::ComplexWeight::setToZero().

◆ partitionRegardingDPL()

void NotSimpleCasePoint::partitionRegardingDPL ( const PartDefinition pd,
std::map< ComposedNode *, YACS::BASES::AutoRefCnt< PartDefinition > > &  zeMap 
) const
overridevirtual

Implements YACS::ENGINE::AbstractPoint.

Definition at line 74 of file NotSimpleCasePoint.cxx.

75 {
76  for(std::list<AbstractPoint *>::const_iterator it=_nodes.begin();it!=_nodes.end();it++)
77  (*it)->partitionRegardingDPL(pd,zeMap);
78 }

References YACS::ENGINE::BlocPoint::_nodes.


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