本文整理汇总了C++中box::IsEmpty方法的典型用法代码示例。如果您正苦于以下问题:C++ box::IsEmpty方法的具体用法?C++ box::IsEmpty怎么用?C++ box::IsEmpty使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类box
的用法示例。
在下文中一共展示了box::IsEmpty方法的15个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: Disjoint
//----------------------------------------------------------------------
bool Disjoint(const box& X, const box& Y)
{
if (X.IsEmpty() || Y.IsEmpty()) return true;
for (int i = 1; i <= Size(X); i++)
if (Disjoint(X[i], Y[i])) return true;
return false;
}
示例2: Eloignement
//----------------------------------------------------------------------
double Eloignement(box& X, box& Y)
{
if ((X.IsEmpty()) || (Y.IsEmpty())) return oo;
double e = 0;
for (int k = 1; k <= Size(X); k++) { e = max(e, Eloignement(X[k], Y[k])); }
return e;
}
示例3: SubsetStrict
//----------------------------------------------------------------------
bool SubsetStrict(box& X, box& Y)
{
if (Y.IsEmpty()) return false;
if (X.IsEmpty()) return true;
bool b = true;
for (int k = 1; k <= Size(X); k++) b = b && SubsetStrict(X[k], Y[k]);
return (b);
}
示例4: NormInf
//----------------------------------------------------------------------
interval NormInf(box X, box Y)
{
if (Size(X) != Size(Y)) return interval();
if (X.IsEmpty() || Y.IsEmpty()) return interval();
interval ans = Abs(Y[1] - X[1]);
for (int i = 1; i <= Size(X); i++) ans = Max(ans, Abs(Y[i] - X[i]));
return ans;
}
示例5: Marge
//----------------------------------------------------------------------
double Marge(box X, box Y)
{
if ((X.IsEmpty()) || (Y.IsEmpty())) return -oo;
double ans = Marge(X[1], Y[1]);
for (int i = 2; i <= Size(X); i++)
ans = min(ans, Marge(X[i], Y[i]));
return ans;
}
示例6: Union
//----------------------------------------------------------------------
box Union(const box& X, const box& Y)
{
box Ans(max(Size(X), Size(Y)));
if (X.IsEmpty()) return (Y);
if (Y.IsEmpty()) return (X);
for (int k = 1; k <= Size(Ans); k++) Ans[k] = Union(X[k], Y[k]);
return Ans;
}
示例7: Prop
//------------------------------------------------------------------------------
bool Prop(box& X, box& Y) // Normalement X is a subset of y (used in SIVEX)
{
if (X.IsEmpty()) return false;
if (Y.IsEmpty()) return false;
for (int k = 1; k <= Size(X); k++)
if ((X[k].inf == Y[k].inf)||(X[k].sup == Y[k].sup)) return (true);
return false;
}
示例8: NormEuclid
//----------------------------------------------------------------------
interval NormEuclid(box X, box Y)
{
if (Size(X) != Size(Y)) return interval();
if (X.IsEmpty() || Y.IsEmpty()) return interval();
interval r = 0;
for (int i = 1; i <= Size(X); i++) r = r + Sqr(Y[i] - X[i]);
return (Sqrt(r));
}
示例9: Inter
//----------------------------------------------------------------------
box Inter(const box& X, const box& Y)
{
box Ans(Size(X));
if ((X.IsEmpty()) || (Y.IsEmpty())) { return Ans; }
for (int k = 1; k <= Size(Ans); k++)
{
Ans[k] = Inter(X[k], Y[k]);
if (Ans[k].isEmpty) { Update(Ans); return Ans; }
}
return Ans;
}
示例10: Concat
//-----------------------------------------------------------------------
// Produit Cartesien ou Concatenation de deuX paves X et y :
// Ans=[X,Y] => Ans=Concat(X,Y);
box Concat(const box& X, const box& Y)
{
double dim = X.dim + Y.dim; box Ans((int)dim);
if ((!X.IsEmpty()) && (!Y.IsEmpty()))
{
for (int i = 1; i <= dim; i++)
{
if (i <= Size(X)) Ans[i] = X[i]; else Ans[i] = Y[i - X.dim];
}
}
return Ans;
}
示例11: In
//----------------------------------------------------------------------
iboolean In(box X, box Y)
{
if (X.IsEmpty() || Y.IsEmpty()) return ifalse;
iboolean r = itrue;
for (int k = 1; k <= X.dim; k++)
{
iboolean in1 = In(X[k], Y[k]);
if (in1 == false) return ifalse;
else if (in1.value == iperhaps) r = iperhaps;
}
return r;
}
示例12: Norm
//----------------------------------------------------------------------
interval Norm(box X)
{
if (X.IsEmpty()) return interval();
interval r = 0;
for (int i = 1; i <= Size(X); i++) r = r + Sqr(X[i]);
return (Sqrt(r));
}
示例13: Rand
//----------------------------------------------------------------------
box Rand(const box& X)
{
int sizeX = Size(X); box Ans(sizeX);
//if (X.IsEmpty()) Ans = Empty(sizeX);
if (X.IsEmpty()) Ans = EmptyBox(X);
else { for (int k = 1; k <= sizeX; k++) Ans[k] = Rand(X[k]); }
return Ans;
}
示例14: Cnotin
//----------------------------------------------------------------------
void Cnotin(box& X, const box& Y)
{
int notindim = -1;
if (Y.IsEmpty()) return;
if (X.IsEmpty()||(In(X, Y) == itrue))
{
X = box();
return;
}
for (int i = 1; i <= Size(X); i++)
{
if (In(X[i], Y[i]) != itrue)
{
if (notindim != -1) return; else notindim = i;
}
}
Cnotin(X[notindim], Y[notindim]);
}
示例15: IsBox
//-----------------------------------------------------------------------
bool IsBox(box X)
{
if (X.IsEmpty()) return false;
for (int i = 1; i <= Size(X); i++)
{
if (Width(X[i]) == 0) return false;
}
return true;
}