-
Notifications
You must be signed in to change notification settings - Fork 0
/
DimVecLayer.h
68 lines (51 loc) · 1.81 KB
/
DimVecLayer.h
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
#ifndef DIMVECLAYER_H
#define DIMVECLAYER_H
#include "Partition.h"
#include "DimVec.h"
#include "DimVecSpace.h"
template<class C_ITR>
struct dim_vec_properties {
typedef std::vector<C_ITR> vector_of;
std::vector<nat> theDescentSequenceWeights;
std::vector<std::vector<nat>> theDescentSequenceTops;
std::vector<C_ITR> theDescentSequence;
std::vector<C_ITR> theCoveringCoarsenings;
std::vector<C_ITR> theCoveringRefinements;
void PrintDescentSequenceWeights(std::ostream& cout) const {
cout << "[ ";
for(auto j = theDescentSequenceWeights.begin(); j != theDescentSequenceWeights.end(); ++j)
cout << *j << " ";
cout << "]" << std::endl;
}
template<class C_PTR>
void PrintDescentSequenceTops(std::ostream& cout) const {;
for(auto i = theDescentSequenceTops.begin(); i != theDescentSequenceTops.end(); ++i)
{
cout << "{ ";
for(auto j = i->begin(); j != i->end(); ++j)
cout << *j << " ";
cout << "}" << std::endl;
}
}
};
class dim_vec_layer : public dim_vec_space
{
public:
typedef std::vector<dim_vec_layer> vector_of;
typedef dim_vec_properties<const dim_vec*> properties;
private:
std::map<const dim_vec*, properties> theProperties;
const dim_vec_layer::properties& build_properties_of(const dim_vec& alpha);
public:
dim_vec_layer(const int_partition_layer& partnLayer, nat k);
void ComputeRootStatus();
void ComputeRootStatusOfReducibles(const vector_of& theBank);
void ComputeDominanceStatus();
void ComputeRefinementStatus_Quick();
void ComputeEquiBrachialIndices();
void BuildProperties();
const properties& GetProperties(const dim_vec* i) const;
void Write(std::ostream& cout) const;
void Read(std::istream& cin);
};
#endif