29template<
typename U=Scalar,
int R=RowsAtCompileTime,
int C=ColsAtCompileTime>
30 requires IsIntervalDomain<U> && IsVectorOrRow<R,C>
54template<
typename OtherDerived,
typename U=Scalar,
int R=RowsAtCompileTime,
int C=ColsAtCompileTime>
55 requires IsIntervalDomain<U> && IsVectorOrRow<R,C>
56inline std::list<Matrix<codac2::Interval,R,C>>
diff(
const MatrixBase<OtherDerived>& y,
bool compactness =
true)
const
63 const Index n = this->size();
64 assert_release(y.size() == n);
74 if(x.is_empty())
return { };
83 for(Index i = 0 ; i < n ; i++)
86 if(x.is_empty())
return { };
91 std::list<Matrix<codac2::Interval,R,C>> l;
93 for(Index var = 0 ; var < n ; var++)
97 for(
const auto& ci : x[var].
diff(y[var], compactness))
99 assert(!ci.is_empty());
102 for(Index i = 0 ; i < var ; i++)
105 for(Index i = var+1 ; i < n ; i++)
Interval class, for representing closed and connected subsets of .
Definition codac2_Interval.h:49
Matrix(const Matrix< double, R, C > &lb, const Matrix< double, R, C > &ub)
Constructs an interval matrix from lower and upper bound matrices.
Definition codac2_Matrix_addons_IntervalMatrixBase.h:50
Matrix()=delete
Deleted default constructor to prevent default instantiation when either the number of rows or column...
bool is_degenerated() const
Checks if the interval matrix is degenerated.
Definition codac2_MatrixBase_addons_IntervalMatrixBase.h:300
std::list< Matrix< codac2::Interval, R, C > > diff(const MatrixBase< OtherDerived > &y, bool compactness=true) const
Computes the difference between this interval vector (or interval row) and another.
Definition codac2_MatrixBase_addons_IntervalVector.h:56
auto complementary() const
Computes the complementary set of this interval vector (or interval row).
Definition codac2_MatrixBase_addons_IntervalVector.h:31