37 for (set<int>::const_iterator it = sources.begin(); it != sources.end(); ++it)
44 for (set<int>::const_iterator it = sources.begin(); it != sources.end(); ++it)
50 for (set<int>::const_iterator it = sources.begin(); it != sources.end(); ++it)
85 const vector<double>& field2)
87 vector<double> result(field1.size());
88 for (
int i = 0; i < field1.size(); ++i)
89 result[i] =
abs(field1[i] - field2[i]);
95 vector<EdgePoint> isoline;
98 int high, middle, low, total(0);
99 double highestDis(-DBL_MAX);
100 double lowestDis(DBL_MAX);
102 for (
int j = 0; j < 3; ++j)
121 middle = total - high - low;
122 if (highestDis <= val)
124 if (lowestDis >= val)
191 cout <<
"Experimental results are as follows:\n";
193 cout <<
"Memory = " <<
m_memory <<
" Mega-bytes.\n";
string GetAlgorithmName() const
int GetNumOfFaces() const
vector< double > m_scalarField
map< int, double > m_sources
const vector< double > & GetDistanceField() const
EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE const AbsReturnType abs() const
int GetEdgeIndexFromTwoVertices(int leftVert, int rightVert) const
virtual void CollectExperimentalResults()=0
virtual void Propagate()=0
int GetNumOfVerts() const
virtual void Initialize()=0
double GetMaxDistance() const
virtual void OutputExperimentalResults() const
set< int > m_destinations
static vector< double > DiffDistanceField(const vector< double > &field1, const vector< double > &field2)
const CFace & Face(int faceIndex) const
vector< EdgePoint > BacktraceIsoline(double val) const
CDistanceApproach(const CRichModel &model, int source)
__int64 m_depthOfResultingTree