mirror of https://github.com/CGAL/cgal
commit
93d8367048
|
|
@ -2806,6 +2806,7 @@ Number_types/doc_tex/NumberTypeSupport/illustration.png -text
|
|||
Number_types/doc_tex/NumberTypeSupport_ref/CORE_BigFloat.tex -text
|
||||
Number_types/doc_tex/NumberTypeSupport_ref/Gmpfi.tex -text
|
||||
Number_types/doc_tex/NumberTypeSupport_ref/Gmpfr.tex -text
|
||||
Number_types/doc_tex/NumberTypeSupport_ref/compute_roots_of_2.tex -text
|
||||
Number_types/doc_tex/NumberTypeSupport_ref/fundamental_types.tex -text
|
||||
Number_types/doc_tex/NumberTypeSupport_ref/make_sqrt.tex -text
|
||||
Number_types/doc_tex/NumberTypeSupport_ref/open.tex -text
|
||||
|
|
|
|||
|
|
@ -27,7 +27,7 @@ with remainder.
|
|||
second_argument_type y);}{}
|
||||
|
||||
\ccMethod{template <class NT1, class NT2> result_type operator()(NT1 x, NT2 y);}
|
||||
{This operator is well defined if \ccc{NT1} and \ccc{NT2} are \ccc{ExplicitInteroperable}
|
||||
{This operator is defined if \ccc{NT1} and \ccc{NT2} are \ccc{ExplicitInteroperable}
|
||||
with coercion type \ccc{AlgebraicStructureTraits::Type}. }
|
||||
|
||||
%\ccHasModels
|
||||
|
|
|
|||
|
|
@ -106,7 +106,7 @@ The following table illustrates the behavior for integers:
|
|||
|
||||
\ccMethod{template <class NT1, class NT2> result_type
|
||||
operator()(NT1 x, NT2 y, third_argument_type q, fourth_argument_type r);}
|
||||
{This operator is well defined if \ccc{NT1} and \ccc{NT2} are \ccc{ExplicitInteroperable}
|
||||
{This operator is defined if \ccc{NT1} and \ccc{NT2} are \ccc{ExplicitInteroperable}
|
||||
with coercion type \ccc{AlgebraicStructureTraits::Type}. }
|
||||
|
||||
%\ccHasModels
|
||||
|
|
|
|||
|
|
@ -37,7 +37,7 @@ Thus, $0$ is divided by every element of the Ring, in particular by itself.
|
|||
{ returns $gcd(x,y)$. }
|
||||
|
||||
\ccMethod{template <class NT1, class NT2> result_type operator()(NT1 x, NT2 y);}
|
||||
{This operator is well defined if \ccc{NT1} and \ccc{NT2} are \ccc{ExplicitInteroperable}
|
||||
{This operator is defined if \ccc{NT1} and \ccc{NT2} are \ccc{ExplicitInteroperable}
|
||||
with coercion type \ccc{AlgebraicStructureTraits::Type}. }
|
||||
|
||||
%\ccHasModels
|
||||
|
|
|
|||
|
|
@ -34,7 +34,7 @@ $z$ is uniquely defined if it exists.
|
|||
|
||||
|
||||
\ccMethod{template <class NT1, class NT2> result_type operator()(NT1 x, NT2 y);}
|
||||
{This operator is well defined if \ccc{NT1} and \ccc{NT2} are \ccc{ExplicitInteroperable}
|
||||
{This operator is defined if \ccc{NT1} and \ccc{NT2} are \ccc{ExplicitInteroperable}
|
||||
with coercion type \ccc{AlgebraicStructureTraits::Type}. }
|
||||
|
||||
%\ccHasModels
|
||||
|
|
|
|||
|
|
@ -26,7 +26,7 @@
|
|||
second_argument_type y);}{}
|
||||
|
||||
\ccMethod{template <class NT1, class NT2> result_type operator()(NT1 x, NT2 y);}
|
||||
{This operator is well defined if \ccc{NT1} and \ccc{NT2} are \ccc{ExplicitInteroperable}
|
||||
{This operator is defined if \ccc{NT1} and \ccc{NT2} are \ccc{ExplicitInteroperable}
|
||||
with coercion type \ccc{AlgebraicStructureTraits::Type}. }
|
||||
|
||||
%\ccHasModels
|
||||
|
|
|
|||
|
|
@ -27,7 +27,7 @@
|
|||
|
||||
\ccMethod{template <class NT1, class NT2>
|
||||
result_type operator()(NT1 x, NT2 y);}{
|
||||
This operator is well defined if \ccc{NT1} and \ccc{NT2} are
|
||||
This operator is defined if \ccc{NT1} and \ccc{NT2} are
|
||||
\ccc{ExplicitInteroperable} with coercion type
|
||||
\ccc{RealEmbeddableTraits::Type}. }
|
||||
|
||||
|
|
|
|||
|
|
@ -4,6 +4,9 @@
|
|||
|
||||
\ccc{AdaptableUnaryFunction} computes a double approximation of a real
|
||||
embeddable number.
|
||||
|
||||
Remark: In order to control the quality of approximation one has to resort
|
||||
to methods that are specific to NT. There are no general guarantees whatsoever.
|
||||
|
||||
\ccRefines
|
||||
|
||||
|
|
|
|||
|
|
@ -4,7 +4,7 @@
|
|||
|
||||
The template function \ccRefName\ returns the absolute value of a number.
|
||||
|
||||
The function is guaranteed to be well defined in case the argument type
|
||||
The function is defined if the argument type
|
||||
is a model of the \ccc{RealEmbeddable} concept.
|
||||
|
||||
\ccInclude{CGAL/number_utils.h}
|
||||
|
|
|
|||
|
|
@ -8,7 +8,7 @@ the second, i.e. it returns \ccc{CGAL::LARGER} if $x$ is larger then $y$.
|
|||
In case the argument types \ccc{NT1} and \ccc{NT2} differ,
|
||||
\ccRefName\ is performed with the semantic of the type determined via
|
||||
\ccc{Coercion_traits}.
|
||||
The function is guaranteed to be well defined in case this type
|
||||
The function is defined if this type
|
||||
is a model of the \ccc{RealEmbeddable} concept.
|
||||
|
||||
\ccInclude{CGAL/number_utils.h}
|
||||
|
|
|
|||
|
|
@ -11,7 +11,7 @@ Thus, the \ccc{result_type} is well defined if \ccc{NT1} and \ccc{NT2}
|
|||
are a model of \ccc{ExplicitInteroperable}. \\
|
||||
The actual \ccRefName\ is performed with the semantic of that type.
|
||||
|
||||
The function is guaranteed to be well defined in case \ccc{result_type}
|
||||
The function is defined if \ccc{result_type}
|
||||
is a model of the \ccc{EuclideanRing} concept.
|
||||
|
||||
\ccInclude{CGAL/number_utils.h}
|
||||
|
|
|
|||
|
|
@ -11,7 +11,7 @@ Thus, the \ccc{result_type} is well defined if \ccc{NT1} and \ccc{NT2}
|
|||
are a model of \ccc{ExplicitInteroperable}. \\
|
||||
The actual \ccRefName\ is performed with the semantic of that type.
|
||||
|
||||
The function is guaranteed to be well defined in case \ccc{result_type}
|
||||
The function is defined if \ccc{result_type}
|
||||
is a model of the \ccc{EuclideanRing} concept.
|
||||
|
||||
\ccInclude{CGAL/number_utils.h}
|
||||
|
|
|
|||
|
|
@ -10,7 +10,7 @@ Thus, the \ccc{result_type} is well defined if \ccc{NT1} and \ccc{NT2}
|
|||
are a model of \ccc{ExplicitInteroperable}. \\
|
||||
The actual \ccRefName\ is performed with the semantic of that type.
|
||||
|
||||
The function is guaranteed to be well defined in case \ccc{result_type}
|
||||
The function is defined if \ccc{result_type}
|
||||
is a model of the \ccc{UniqueFactorizationDomain} concept.
|
||||
|
||||
\ccInclude{CGAL/number_utils.h}
|
||||
|
|
|
|||
|
|
@ -14,7 +14,7 @@ Thus, the \ccc{result_type} is well defined if \ccc{NT1} and \ccc{NT2}
|
|||
are a model of \ccc{ExplicitInteroperable}. \\
|
||||
The actual \ccRefName\ is performed with the semantic of that type.
|
||||
|
||||
The function is guaranteed to be well defined in case \ccc{result_type}
|
||||
The function is defined if \ccc{result_type}
|
||||
is a model of the \ccc{IntegralDomain} concept.
|
||||
|
||||
\ccInclude{CGAL/number_utils.h}
|
||||
|
|
|
|||
|
|
@ -4,7 +4,7 @@
|
|||
|
||||
The function \ccRefName\ returns the inverse element with respect to multiplication.
|
||||
|
||||
The function is guaranteed to be well defined in case the argument type
|
||||
The function is defined if the argument type
|
||||
is a model of the \ccc{Field} concept.
|
||||
|
||||
\ccInclude{CGAL/number_utils.h}
|
||||
|
|
|
|||
|
|
@ -3,7 +3,7 @@
|
|||
\ccDefinition
|
||||
|
||||
The template function \ccRefName\ determines if a value is negative or not.
|
||||
The function is guaranteed to be well defined in case the argument type
|
||||
The function is defined if the argument type
|
||||
is a model of the \ccc{RealEmbeddable} concept.
|
||||
|
||||
|
||||
|
|
|
|||
|
|
@ -3,7 +3,7 @@
|
|||
\ccDefinition
|
||||
|
||||
The function \ccRefName\ determines if a value is equal to 1 or not.\\
|
||||
The function is guaranteed to be well defined in case the argument type
|
||||
The function is defined if the argument type
|
||||
is a model of the \ccc{IntegralDomainWithoutDivision} concept.
|
||||
|
||||
\ccInclude{CGAL/number_utils.h}
|
||||
|
|
|
|||
|
|
@ -3,7 +3,7 @@
|
|||
\ccDefinition
|
||||
|
||||
The template function \ccRefName\ determines if a value is positive or not.
|
||||
The function is guaranteed to be well defined in case the argument type
|
||||
The function is defined if the argument type
|
||||
is a model of the \ccc{RealEmbeddable} concept.
|
||||
|
||||
\ccInclude{CGAL/number_utils.h}
|
||||
|
|
|
|||
|
|
@ -3,7 +3,7 @@
|
|||
\ccDefinition
|
||||
|
||||
The function \ccRefName\ determines if a value is equal to 0 or not.\\
|
||||
The function is guaranteed to be well defined in case the argument type
|
||||
The function is defined if the argument type
|
||||
is a model of the \ccc{RealEmbeddable} or of
|
||||
the \ccc{IntegralDomainWithoutDivision} concept.
|
||||
|
||||
|
|
|
|||
|
|
@ -4,7 +4,7 @@
|
|||
|
||||
The function \ccRefName\ returns the k-th root of a value.
|
||||
|
||||
The function is guaranteed to be well defined in case the second argument type
|
||||
The function is defined if the second argument type
|
||||
is a model of the \ccc{FieldWithKthRoot} concept.
|
||||
|
||||
\ccInclude{CGAL/number_utils.h}
|
||||
|
|
|
|||
|
|
@ -10,7 +10,7 @@ Thus, the \ccc{result_type} is well defined if \ccc{NT1} and \ccc{NT2}
|
|||
are a model of \ccc{ExplicitInteroperable}. \\
|
||||
The actual \ccRefName\ is performed with the semantic of that type.
|
||||
|
||||
The function is guaranteed to be well defined in case \ccc{result_type}
|
||||
The function is defined if \ccc{result_type}
|
||||
is a model of the \ccc{EuclideanRing} concept.
|
||||
|
||||
\ccInclude{CGAL/number_utils.h}
|
||||
|
|
|
|||
|
|
@ -5,7 +5,7 @@
|
|||
The function \ccRefName\ computes a real root of a square-free univariate
|
||||
polynomial.
|
||||
|
||||
The function is guaranteed to be well defined in case the value type, \ccc{NT},
|
||||
The function is defined if the value type, \ccc{NT},
|
||||
of the iterator range is a model of the \ccc{FieldWithRootOf} concept.
|
||||
|
||||
\ccInclude{CGAL/number_utils.h}
|
||||
|
|
|
|||
|
|
@ -4,7 +4,7 @@
|
|||
|
||||
The template function \ccRefName\ returns the sign of a number.
|
||||
|
||||
The function is guaranteed to be well defined in case the argument type
|
||||
The function is defined if the argument type
|
||||
is a model of the \ccc{RealEmbeddable} concept.
|
||||
|
||||
\ccInclude{CGAL/number_utils.h}
|
||||
|
|
|
|||
|
|
@ -4,7 +4,7 @@
|
|||
|
||||
The function \ccRefName\ may simplify a given object.
|
||||
|
||||
The function is guaranteed to be well defined in case the argument type
|
||||
The function is defined if the argument type
|
||||
is a model of the \ccc{IntegralDomainWithoutDivision} concept.
|
||||
|
||||
\ccInclude{CGAL/number_utils.h}
|
||||
|
|
|
|||
|
|
@ -4,7 +4,7 @@
|
|||
|
||||
The function \ccRefName\ returns the square root of a value.
|
||||
|
||||
The function is guaranteed to be well defined in case the argument type
|
||||
The function is defined if the argument type
|
||||
is a model of the \ccc{FieldWithSqrt} concept.
|
||||
|
||||
\ccInclude{CGAL/number_utils.h}
|
||||
|
|
|
|||
|
|
@ -3,7 +3,7 @@
|
|||
\ccDefinition
|
||||
|
||||
The function \ccRefName\ returns the square of a number.\\
|
||||
The function is guaranteed to be well defined in case the argument type
|
||||
The function is defined if the argument type
|
||||
is a model of the \ccc{IntegralDomainWithoutDivision} concept.
|
||||
|
||||
\ccInclude{CGAL/number_utils.h}
|
||||
|
|
|
|||
|
|
@ -3,9 +3,11 @@
|
|||
\ccDefinition
|
||||
|
||||
The template function \ccRefName\ returns an double approximation of a number.
|
||||
The function is guaranteed to be well defined in case the argument type
|
||||
The function is defined if the argument type
|
||||
is a model of the \ccc{RealEmbeddable} concept.
|
||||
|
||||
Remark: In order to control the quality of approximation one has to resort to methods that are specific to NT. There are no general guarantees whatsoever.
|
||||
|
||||
\ccInclude{CGAL/number_utils.h}
|
||||
|
||||
\ccFunction{template <class NT> double to_double(const NT& x);}
|
||||
|
|
|
|||
|
|
@ -5,7 +5,7 @@
|
|||
The template function \ccRefName\ computes for a given real embeddable
|
||||
number $x$ a double interval containing $x$.
|
||||
This interval is represented by a \ccc{std::pair<double,double>}.
|
||||
The function is guaranteed to be well defined in case the argument type
|
||||
The function is defined if the argument type
|
||||
is a model of the \ccc{RealEmbeddable} concept.
|
||||
|
||||
\ccInclude{CGAL/number_utils.h}
|
||||
|
|
|
|||
|
|
@ -5,7 +5,7 @@
|
|||
The function \ccRefName\ computes the unit part of a given ring
|
||||
element.
|
||||
|
||||
The function is guaranteed to be well defined in case the argument type
|
||||
The function is defined if the argument type
|
||||
is a model of the \ccc{IntegralDomainWithoutDivision} concept.
|
||||
|
||||
\ccInclude{CGAL/number_utils.h}
|
||||
|
|
|
|||
|
|
@ -1629,7 +1629,7 @@ protected:
|
|||
_two*_t*_v - _four*_s*_u,
|
||||
_v*_v - _four*_s*_w,
|
||||
xs);
|
||||
n_xs = xs_end - xs;
|
||||
n_xs = static_cast<int>(xs_end - xs);
|
||||
|
||||
// Find the y-coordinates of the vertical tangency points.
|
||||
Algebraic ys[2];
|
||||
|
|
@ -1649,7 +1649,7 @@ protected:
|
|||
_four*_r*_s*_v - _two*_s*_t*_u,
|
||||
_r*_v*_v - _t*_u*_v + _t*_t*_w,
|
||||
ys);
|
||||
n_ys = ys_end - ys;
|
||||
n_ys = static_cast<int>(ys_end - ys);
|
||||
}
|
||||
|
||||
// Pair the x and y coordinates and obtain the vertical tangency points.
|
||||
|
|
@ -1714,7 +1714,7 @@ protected:
|
|||
_two*_t*_u - _four*_r*_v,
|
||||
_u*_u - _four*_r*_w,
|
||||
ys);
|
||||
n = ys_end - ys;
|
||||
n = static_cast<int>(ys_end - ys);
|
||||
|
||||
// Compute the x coordinates and construct the horizontal tangency points.
|
||||
Algebraic x;
|
||||
|
|
@ -1722,7 +1722,7 @@ protected:
|
|||
|
||||
for (i = 0; i < n; i++)
|
||||
{
|
||||
// Having computed y, x is the simgle solution to the quadratic equation
|
||||
// Having computed y, x is the single solution to the quadratic equation
|
||||
// above, and since its discriminant is 0, x is simply given by:
|
||||
x = -(nt_traits.convert(_t)*ys[i] + nt_traits.convert(_u)) /
|
||||
nt_traits.convert(_two*_r);
|
||||
|
|
|
|||
|
|
@ -38,22 +38,23 @@ namespace CGAL {
|
|||
* \return The number of distinct roots found.
|
||||
*/
|
||||
template <class Nt_traits>
|
||||
int _compute_resultant_roots (Nt_traits& nt_traits,
|
||||
const typename Nt_traits::Integer& r1,
|
||||
const typename Nt_traits::Integer& s1,
|
||||
const typename Nt_traits::Integer& t1,
|
||||
const typename Nt_traits::Integer& u1,
|
||||
const typename Nt_traits::Integer& v1,
|
||||
const typename Nt_traits::Integer& w1,
|
||||
const int& deg1,
|
||||
const typename Nt_traits::Integer& r2,
|
||||
const typename Nt_traits::Integer& s2,
|
||||
const typename Nt_traits::Integer& t2,
|
||||
const typename Nt_traits::Integer& u2,
|
||||
const typename Nt_traits::Integer& v2,
|
||||
const typename Nt_traits::Integer& w2,
|
||||
const int& deg2,
|
||||
typename Nt_traits::Algebraic *xs)
|
||||
int
|
||||
_compute_resultant_roots (Nt_traits& nt_traits,
|
||||
const typename Nt_traits::Integer& r1,
|
||||
const typename Nt_traits::Integer& s1,
|
||||
const typename Nt_traits::Integer& t1,
|
||||
const typename Nt_traits::Integer& u1,
|
||||
const typename Nt_traits::Integer& v1,
|
||||
const typename Nt_traits::Integer& w1,
|
||||
const int& deg1,
|
||||
const typename Nt_traits::Integer& r2,
|
||||
const typename Nt_traits::Integer& s2,
|
||||
const typename Nt_traits::Integer& t2,
|
||||
const typename Nt_traits::Integer& u2,
|
||||
const typename Nt_traits::Integer& v2,
|
||||
const typename Nt_traits::Integer& w2,
|
||||
const int& deg2,
|
||||
typename Nt_traits::Algebraic *xs)
|
||||
{
|
||||
if (deg1 == 2 && deg2 == 1)
|
||||
{
|
||||
|
|
@ -107,7 +108,7 @@ int _compute_resultant_roots (Nt_traits& nt_traits,
|
|||
|
||||
xs_end = nt_traits.solve_quadratic_equation (c[2], c[1], c[0],
|
||||
xs);
|
||||
return (xs_end - xs);
|
||||
return static_cast<int>(xs_end - xs);
|
||||
}
|
||||
|
||||
// At this stage, both curves have degree 2. We obtain a qaurtic polynomial
|
||||
|
|
@ -165,7 +166,7 @@ int _compute_resultant_roots (Nt_traits& nt_traits,
|
|||
|
||||
xs_end = nt_traits.compute_polynomial_roots (poly,
|
||||
xs);
|
||||
return (xs_end - xs);
|
||||
return static_cast<int>(xs_end - xs);
|
||||
}
|
||||
|
||||
/*!
|
||||
|
|
@ -179,8 +180,9 @@ int _compute_resultant_roots (Nt_traits& nt_traits,
|
|||
* \return The number of distinct roots found.
|
||||
*/
|
||||
template <class Nt_traits>
|
||||
int _compute_resultant_roots (Nt_traits& nt_traits,
|
||||
const typename Nt_traits::Algebraic& r,
|
||||
int
|
||||
_compute_resultant_roots (Nt_traits& nt_traits,
|
||||
const typename Nt_traits::Algebraic& r,
|
||||
const typename Nt_traits::Algebraic& s,
|
||||
const typename Nt_traits::Algebraic& t,
|
||||
const typename Nt_traits::Algebraic& u,
|
||||
|
|
@ -226,7 +228,7 @@ int _compute_resultant_roots (Nt_traits& nt_traits,
|
|||
|
||||
xs_end = nt_traits.solve_quadratic_equation (c[2], c[1], c[0],
|
||||
xs);
|
||||
return (xs_end - xs);
|
||||
return static_cast<int>(xs_end - xs);
|
||||
}
|
||||
|
||||
} //namespace CGAL
|
||||
|
|
|
|||
|
|
@ -1932,7 +1932,7 @@ private:
|
|||
// x and y-coordinates are sorted in ascending order, we output the
|
||||
// intersection points in lexicographically ascending order.
|
||||
unsigned int mult;
|
||||
int i, j;
|
||||
int i, j;
|
||||
|
||||
if (arc._is_special_segment())
|
||||
{
|
||||
|
|
|
|||
|
|
@ -290,7 +290,7 @@ public:
|
|||
*/
|
||||
inline unsigned int size() const
|
||||
{
|
||||
return segments.size();
|
||||
return static_cast<unsigned int>(segments.size());
|
||||
}
|
||||
|
||||
/*!
|
||||
|
|
|
|||
|
|
@ -539,7 +539,7 @@ private:
|
|||
}
|
||||
|
||||
/*! Find the given object in the given bucket. */
|
||||
Bucket_iterator _find_in_bucket (int index,
|
||||
Bucket_iterator _find_in_bucket (std::size_t index,
|
||||
const value_type& val) const
|
||||
{
|
||||
Bucket& my_bucket = const_cast<Bucket&>(buckets[index]);
|
||||
|
|
|
|||
|
|
@ -416,7 +416,8 @@ protected:
|
|||
void _init_sweep (CurveInputIterator curves_begin,
|
||||
CurveInputIterator curves_end)
|
||||
{
|
||||
m_num_of_subCurves = std::distance (curves_begin, curves_end);
|
||||
// m_num_of_subCurves should be a size_t for "huge" data sets
|
||||
m_num_of_subCurves = static_cast<int>(std::distance (curves_begin, curves_end));
|
||||
|
||||
_init_structures();
|
||||
|
||||
|
|
|
|||
|
|
@ -55,7 +55,7 @@ void make_x_monotone (CurveInputIter begin, CurveInputIter end,
|
|||
const Traits * tr)
|
||||
{
|
||||
// Split the input curves into x-monotone objects.
|
||||
unsigned int num_of_curves = std::distance(begin, end);
|
||||
std::size_t num_of_curves = std::distance(begin, end);
|
||||
std::vector<Object> object_vec;
|
||||
CurveInputIter iter;
|
||||
|
||||
|
|
|
|||
|
|
@ -607,9 +607,9 @@ bool Traits_test<T_Traits>::intersect_wrapper(std::istringstream& str_stream)
|
|||
std::back_inserter(object_vec));
|
||||
std::cout << "Test: intersect( " << this->m_xcurves[id1] << ","
|
||||
<< this->m_xcurves[id2] << " ) ? ";
|
||||
std::size_t num;
|
||||
unsigned int num;
|
||||
str_stream >> num;
|
||||
if (!this->compare(num, object_vec.size(), "size")) return false;
|
||||
if (!this->compare(num, static_cast<unsigned int>(object_vec.size()), "size")) return false;
|
||||
|
||||
for (unsigned int i = 0; i < num; ++i) {
|
||||
unsigned int type; // 0 - point, 1 - x-monotone curve
|
||||
|
|
|
|||
|
|
@ -186,8 +186,8 @@ run_trapped_test()
|
|||
else
|
||||
run_test $1 $2 $3 $4 $5 $6 &
|
||||
WPID=$!
|
||||
trap "kill -9 $WPID" INT
|
||||
(sleep 1200; kill -9 $WPID) > /dev/null 2>&1 &
|
||||
trap "kill -HUP $WPID" INT
|
||||
(sleep 1200; kill -HUP $WPID) > /dev/null 2>&1 &
|
||||
SPID=$!
|
||||
wait $WPID > /dev/null 2>&1
|
||||
# RES=$?
|
||||
|
|
|
|||
|
|
@ -1,4 +1,6 @@
|
|||
# Top level CMakeLists.txt for CGAL-branchbuild
|
||||
project(CGAL)
|
||||
|
||||
cmake_minimum_required(VERSION 2.6.2)
|
||||
|
||||
# option for branch build
|
||||
|
|
|
|||
|
|
@ -1691,5 +1691,5 @@ from Moka with the design of the Halfedge data structure package of
|
|||
\cgal. Andreas Fabri and S\'ebastien Loriot contributed to the
|
||||
design, the coding, and to the documentation of the package, and
|
||||
Laurent Rineau helped for the design. Emma Michel contributed to the
|
||||
manual. Monique Teillaud and Bernd Gaertner contributed to the manual
|
||||
manual. Monique Teillaud and Bernd G{\"a}rtner contributed to the manual
|
||||
by giving useful remarks, really numerous and detailed for Monique.
|
||||
|
|
|
|||
|
|
@ -18,6 +18,9 @@
|
|||
// Author(s) : Susan Hert
|
||||
//
|
||||
|
||||
#include <CGAL/config.h>
|
||||
|
||||
#ifdef CGAL_USE_GEOMVIEW
|
||||
|
||||
#include <CGAL/Homogeneous.h>
|
||||
#include <CGAL/point_generators_3.h>
|
||||
|
|
@ -31,8 +34,6 @@
|
|||
#include <vector>
|
||||
#include <cassert>
|
||||
|
||||
#ifdef CGAL_USE_GEOMVIEW
|
||||
|
||||
#ifdef CGAL_USE_LEDA
|
||||
#include <CGAL/leda_integer.h>
|
||||
typedef leda_integer RT;
|
||||
|
|
@ -89,6 +90,7 @@ int main ()
|
|||
|
||||
#else
|
||||
|
||||
#include <iostream>
|
||||
int main() {
|
||||
std::cerr <<
|
||||
"This demo requires geomview, which is not present on this platform\n";
|
||||
|
|
|
|||
|
|
@ -17,7 +17,9 @@
|
|||
//
|
||||
// Author(s) : Susan Hert
|
||||
|
||||
#include <CGAL/config.h>
|
||||
|
||||
#ifdef CGAL_USE_GEOMVIEW
|
||||
|
||||
#include <CGAL/Homogeneous.h>
|
||||
#include <CGAL/point_generators_3.h>
|
||||
|
|
@ -28,8 +30,6 @@
|
|||
#include <CGAL/IO/Geomview_stream.h>
|
||||
#include <CGAL/IO/Polyhedron_geomview_ostream.h>
|
||||
|
||||
#ifdef CGAL_USE_GEOMVIEW
|
||||
|
||||
#ifdef CGAL_USE_LEDA
|
||||
#include <CGAL/leda_integer.h>
|
||||
typedef leda_integer RT;
|
||||
|
|
@ -128,6 +128,8 @@ int main(int argc, char* argv[])
|
|||
|
||||
#else
|
||||
|
||||
#include <iostream>
|
||||
|
||||
int main() {
|
||||
std::cerr <<
|
||||
"This demo requires geomview, which is not present on this platform\n";
|
||||
|
|
|
|||
|
|
@ -17,7 +17,12 @@
|
|||
//
|
||||
// Author(s) : Michael Seel <seel@mpi-sb.mpg.de>
|
||||
|
||||
#include <CGAL/basic.h>
|
||||
#include <iostream>
|
||||
#include <string>
|
||||
#include <cstdlib>
|
||||
|
||||
#if !defined(_MSC_VER)
|
||||
|
||||
#include <CGAL/Homogeneous.h>
|
||||
#include <CGAL/Convex_hull_d_traits_3.h>
|
||||
#include <CGAL/Convex_hull_d.h>
|
||||
|
|
@ -27,11 +32,6 @@
|
|||
#include <CGAL/Polyhedron_3.h>
|
||||
#include <CGAL/Convex_hull_d_to_polyhedron_3.h>
|
||||
#include <CGAL/IO/Polyhedron_geomview_ostream.h>
|
||||
#include <iostream>
|
||||
#include <string>
|
||||
#include <cstdlib>
|
||||
|
||||
#if !defined(_MSC_VER)
|
||||
|
||||
#ifdef CGAL_USE_LEDA
|
||||
#include <CGAL/leda_integer.h>
|
||||
|
|
|
|||
|
|
@ -17,7 +17,12 @@
|
|||
//
|
||||
// Author(s) : Michael Seel <seel@mpi-sb.mpg.de>
|
||||
|
||||
#include <CGAL/basic.h>
|
||||
#include <iostream>
|
||||
#include <string>
|
||||
#include <cstdlib>
|
||||
|
||||
#if !defined(_MSC_VER)
|
||||
|
||||
#include <CGAL/Homogeneous_d.h>
|
||||
#include <CGAL/Convex_hull_d.h>
|
||||
#include <CGAL/random_selection.h>
|
||||
|
|
@ -26,11 +31,6 @@
|
|||
#include <CGAL/Polyhedron_3.h>
|
||||
#include <CGAL/Convex_hull_d_to_polyhedron_3.h>
|
||||
#include <CGAL/IO/Polyhedron_geomview_ostream.h>
|
||||
#include <iostream>
|
||||
#include <string>
|
||||
#include <cstdlib>
|
||||
|
||||
#if !defined(_MSC_VER)
|
||||
|
||||
#ifdef CGAL_USE_LEDA
|
||||
#include <CGAL/leda_integer.h>
|
||||
|
|
|
|||
|
|
@ -30,7 +30,7 @@ int main() {
|
|||
PG p2( Point( 250,-250), Point( 250,250),50);
|
||||
Segm_iterator t1( p1, p2); // Segment generator.
|
||||
Count_iterator t1_begin( t1); // Finite range.
|
||||
Count_iterator t1_end( 50);
|
||||
Count_iterator t1_end( t1, 50);
|
||||
std::copy( t1_begin, t1_end, std::back_inserter(segs));
|
||||
|
||||
// A vertical like fan.
|
||||
|
|
@ -38,7 +38,7 @@ int main() {
|
|||
PG p4( Point(-250, 250), Point( 250, 250),50);
|
||||
Segm_iterator t2( p3, p4);
|
||||
Count_iterator t2_begin( t2);
|
||||
Count_iterator t2_end( 50);
|
||||
Count_iterator t2_end( t2, 50);
|
||||
std::copy( t2_begin, t2_end, std::back_inserter(segs));
|
||||
|
||||
CGAL_assertion( segs.size() == 100);
|
||||
|
|
|
|||
|
|
@ -300,7 +300,7 @@ MainWindow::loadEdgConstraints(QString fileName)
|
|||
int n;
|
||||
ifs >> n;
|
||||
|
||||
K::Point_2 p,q, qold;
|
||||
K::Point_2 p,q, qold(0,0); // Initialize qold, as otherwise some g++ issue a unjustified warning
|
||||
|
||||
SVD::Vertex_handle vp, vq, vqold;
|
||||
while(ifs >> p) {
|
||||
|
|
|
|||
|
|
@ -110,26 +110,36 @@ if( NOT CGAL_MACROS_FILE_INCLUDED )
|
|||
set(search_dirs "")
|
||||
message("Compiler version:")
|
||||
set(version "Unknown compiler. Cannot display its version")
|
||||
foreach(flag "-V" "--version" "-v")
|
||||
execute_process(COMMAND "${CMAKE_CXX_COMPILER}" ${flag}
|
||||
if(MSVC)
|
||||
execute_process(COMMAND "${CMAKE_CXX_COMPILER}"
|
||||
RESULT_VARIABLE ok
|
||||
OUTPUT_VARIABLE out_version
|
||||
ERROR_VARIABLE out_version
|
||||
TIMEOUT 5)
|
||||
if(ok EQUAL 0)
|
||||
if("${out_version}" MATCHES "^clang")
|
||||
execute_process(COMMAND "${CMAKE_CXX_COMPILER}" -print-search-dirs
|
||||
RESULT_VARIABLE ok
|
||||
OUTPUT_VARIABLE out_search_dirs
|
||||
TIMEOUT 5)
|
||||
if(ok EQUAL 0)
|
||||
set(search_dirs "${out_search_dirs}")
|
||||
endif()
|
||||
endif()
|
||||
set(version "${out_version}")
|
||||
break()
|
||||
endif()
|
||||
endforeach()
|
||||
else()
|
||||
foreach(flag "-V" "--version" "-v")
|
||||
execute_process(COMMAND "${CMAKE_CXX_COMPILER}" ${flag}
|
||||
RESULT_VARIABLE ok
|
||||
OUTPUT_VARIABLE out_version
|
||||
ERROR_VARIABLE out_version
|
||||
TIMEOUT 5)
|
||||
if(ok EQUAL 0)
|
||||
if("${out_version}" MATCHES "^clang")
|
||||
execute_process(COMMAND "${CMAKE_CXX_COMPILER}" -print-search-dirs
|
||||
RESULT_VARIABLE ok
|
||||
OUTPUT_VARIABLE out_search_dirs
|
||||
TIMEOUT 5)
|
||||
if(ok EQUAL 0)
|
||||
set(search_dirs "${out_search_dirs}")
|
||||
endif()
|
||||
endif()
|
||||
set(version "${out_version}")
|
||||
break()
|
||||
endif()
|
||||
endforeach()
|
||||
endif()
|
||||
message("${version}")
|
||||
if(search_dirs)
|
||||
message("Search dirs:")
|
||||
|
|
|
|||
|
|
@ -53,7 +53,7 @@ and Debug modes.
|
|||
\TTindex{cgal\_create\_cmake\_script}\index{scripts!\texttt{cgal\_create\_cmake\_script}}
|
||||
|
||||
The Bourne-shell script \texttt{cgal\_create\_cmake\_script} is contained in the
|
||||
\cgaldir\texttt{/scripts} directory. It can be used to create
|
||||
\texttt{\cgalrel/scripts} directory. It can be used to create
|
||||
\texttt{CmakeLists.txt} files for compiling \cgal\ applications. Executing
|
||||
\texttt{cgal\_create\_cmake\_script} in an application directory creates a
|
||||
\texttt{CMakeLists.txt} containing rules for every \texttt{*.cpp} file
|
||||
|
|
|
|||
|
|
@ -40,13 +40,7 @@
|
|||
\newcommand{\mswin}{\textsc{MS}~Windows}
|
||||
|
||||
%% macro for CGAL directory
|
||||
\newcommand{\cgaldir}{\texttt{CGAL-\cgalversionnumber}}
|
||||
|
||||
%% macro for YOUR CGAL directory :)
|
||||
\newcommand{\yourcgaldir}{$<$\textit{insert your \cgaldir\ dir}$>$}
|
||||
|
||||
%% macro for CGAL install config directory
|
||||
\newcommand{\cgalinstconfdir}{\cgaldir\texttt{/config/install}\index{directories!config/install@\texttt{config/install}}}
|
||||
\newcommand{\cgalrel}{\texttt{CGAL-\cgalversionnumber}}
|
||||
|
||||
%% macros for WWW pages
|
||||
% Now in cgal_manual.sty -- Laurent Rineau, 2010/02/20
|
||||
|
|
@ -62,14 +56,14 @@ This document describes how to install \cgal\ on Windows, Unix-like systems and
|
|||
|
||||
Ideally, installing \cgal\ amounts to:
|
||||
|
||||
\begin{verbatim}
|
||||
cd CGAL-3.9 # go to CGAL directory
|
||||
\begin{alltt}
|
||||
cd \cgalrel # go to CGAL directory
|
||||
cmake . # configure CGAL
|
||||
make # build the CGAL libraries
|
||||
cd examples/Straight_skeleton_2 # go to an example directory
|
||||
cmake -DCGAL_DIR=$HOME/CGAL-3.9 . # configure the examples
|
||||
cmake -DCGAL_DIR=$HOME/\cgalrel . # configure the examples
|
||||
make # build the examples
|
||||
\end{verbatim}
|
||||
\end{alltt}
|
||||
%% $ This dollar is there to trick syntax highlighting in emacs
|
||||
|
||||
In a less ideal world, you probably have to install \cmake, a makefile
|
||||
|
|
@ -78,7 +72,7 @@ generator, and third party libraries. That's what this manual is about.
|
|||
\section{Supported Compilers}
|
||||
|
||||
In order to build the \cgal\ libraries, you need a \CC\ compiler.
|
||||
\cgal~3.9 is supported for the following compilers/operating systems:
|
||||
\cgal~\cgalversionnumber is supported for the following compilers/operating systems:
|
||||
|
||||
\begin{center}\index{compilers!supported}\index{supported compilers}
|
||||
\renewcommand{\arraystretch}{1.3}
|
||||
|
|
@ -160,7 +154,7 @@ installed is recommended. These libraries can be obtained from
|
|||
As Visual \CC\ is not properly
|
||||
supported by the \gmp\ and \mpfr\ projects, we provide precompiled versions
|
||||
of \gmp\ and \mpfr, which can be downloaded with the installer
|
||||
\texttt{CGAL-3.9-Setup.exe}.
|
||||
\texttt{\cgalrel-Setup.exe}.
|
||||
|
||||
\subsection{CORE \label{thirdparty:Core}}
|
||||
|
||||
|
|
@ -241,7 +235,7 @@ It also contains a complete \lapack\ implementation.
|
|||
As Visual~\CC\ is not properly
|
||||
supported by the \taucs\ project, we provide a precompiled version of
|
||||
\taucs, which can be downloaded with the installer
|
||||
\texttt{CGAL-3.9-Setup.exe}.
|
||||
\texttt{\cgalrel-Setup.exe}.
|
||||
|
||||
{\em CAUTION:} Since version 3.3.1, \cgal\ is no longer compatible with the official
|
||||
release of \taucs\ (currently 2.2). Make sure to use the modified
|
||||
|
|
@ -331,20 +325,20 @@ It can be downloaded from \esbtlpage.
|
|||
|
||||
The \cgal\ library can be downloaded from \cgaldownloadpage.
|
||||
|
||||
After you have downloaded the file \texttt{CGAL-3.9.tar.gz} containing the
|
||||
After you have downloaded the file \texttt{\cgalrel.tar.gz} containing the
|
||||
\cgal\ sources, you have to unpack it. Under a Unix-like shell, use the
|
||||
command:
|
||||
|
||||
\begin{verbatim}
|
||||
tar xzf CGAL-3.9.tar.gz
|
||||
\end{verbatim}
|
||||
\begin{alltt}
|
||||
tar xzf \cgalrel.tar.gz
|
||||
\end{alltt}
|
||||
|
||||
|
||||
When you are on Windows you may download and run the \texttt{CGAL-3.9-Setup.exe}. It is a
|
||||
When you are on Windows you may download and run the \texttt{\cgalrel-Setup.exe}. It is a
|
||||
self extracting executable that installs the \cgal\ source, and that allows
|
||||
you to select and download some precompiled third party libraries.
|
||||
|
||||
In both cases the directory \cgaldir\ will be created. This directory
|
||||
In both cases the directory \cgalrel\ will be created. This directory
|
||||
contains the following subdirectories:\index{directories!structure}
|
||||
|
||||
\begin{center}
|
||||
|
|
@ -386,8 +380,9 @@ third-party libraries you want to use and where they can be found, and
|
|||
which \cgal\ libraries you want to build. Gathering
|
||||
all this information is called {\em configuration}.
|
||||
|
||||
For CGAL-3.9, the configuration is generated with \cmake, a
|
||||
cross-platform build system. This manual explains only those features of
|
||||
The configuration uses \cmake, a
|
||||
cross-platform build system generator that can generate makefiles, or IDE
|
||||
project files. This manual explains only those features of
|
||||
\cmake\ which are needed in order to build \cgal. Please refer to the \cmake\
|
||||
documentation at \cmakepage\ for further details.
|
||||
|
||||
|
|
@ -402,10 +397,10 @@ is available on all platforms since \cmake\ version~2.6. You must pass as
|
|||
argument the root directory of \cgal. For example:
|
||||
|
||||
{\ccTexHtml{\scriptsize}{}
|
||||
\begin{verbatim}
|
||||
cd CGAL-3.9
|
||||
\begin{alltt}
|
||||
cd \cgalrel
|
||||
cmake-gui . # Notice the dot to indicate the current directory.
|
||||
\end{verbatim}
|
||||
\end{alltt}
|
||||
}
|
||||
|
||||
Once \texttt{cmake-gui} has started up, you must press 'Configure'.
|
||||
|
|
@ -430,10 +425,10 @@ Alternatively, you can run the command-line tool called
|
|||
\cgal. For example:
|
||||
|
||||
{\ccTexHtml{\scriptsize}{}
|
||||
\begin{verbatim}
|
||||
cd CGAL-3.9
|
||||
\begin{alltt}
|
||||
cd \cgalrel
|
||||
cmake . # Notice the dot to indicate the current directory.
|
||||
\end{verbatim}
|
||||
\end{alltt}
|
||||
}
|
||||
|
||||
|
||||
|
|
@ -462,10 +457,10 @@ you choose a particular generator as a mean to choose a specific compiler (becau
|
|||
build files). For example, the following generates solution files for use in Visual \CC\ 9.0:
|
||||
|
||||
{\ccTexHtml{\scriptsize}{}
|
||||
\begin{verbatim}
|
||||
cd CGAL-3.9
|
||||
\begin{alltt}
|
||||
cd \cgalrel
|
||||
cmake -G"Visual Studio 9 2008" .
|
||||
\end{verbatim}
|
||||
\end{alltt}
|
||||
}
|
||||
|
||||
In other cases, however, the generator doesn't directly identify a specific compiler but a tool chain.
|
||||
|
|
@ -474,10 +469,10 @@ command-line compiler, like \texttt{gcc}. If you need the makefiles to use a dif
|
|||
specify the desired compiler in the call to \cmake{}, as in this example:
|
||||
|
||||
{\ccTexHtml{\scriptsize}{}
|
||||
\begin{verbatim}
|
||||
cd CGAL-3.9
|
||||
\begin{alltt}
|
||||
cd \cgalrel
|
||||
cmake -DCMAKE_CXX_COMPILER:FILEPATH=g++-3.4 .
|
||||
\end{verbatim}
|
||||
\end{alltt}
|
||||
}
|
||||
|
||||
|
||||
|
|
@ -528,10 +523,10 @@ by \cgal\ for the user convenience and it has it's own license.}\addtocounter{fo
|
|||
If you turn off the configuration of a library, you can still configure it manually from the source directory:
|
||||
|
||||
{\ccTexHtml{\scriptsize}{}
|
||||
\begin{verbatim}
|
||||
cd CGAL-3.9/src/CGALQt4
|
||||
\begin{alltt}
|
||||
cd \cgalrel/src/CGALQt4
|
||||
cmake . # configures only the CGAL_Qt4 library
|
||||
\end{verbatim}
|
||||
\end{alltt}
|
||||
}
|
||||
|
||||
\subsection{Examples and Demos}
|
||||
|
|
@ -577,19 +572,19 @@ distinct directory for each configuration and by running \cmake\ from there. Thi
|
|||
as {\em out-of-source configuration}, as opposite to an {\em in-source
|
||||
configuration}, as showed in the previous sections.
|
||||
|
||||
You can, for example, generate subdirectories \cgaldir{}\texttt{/cmake/platforms/debug} and
|
||||
\cgaldir{}\texttt{/cmake/platforms/release} for two configurations, respectively:
|
||||
You can, for example, generate subdirectories \cgalrel{}\texttt{/cmake/platforms/debug} and
|
||||
\cgalrel{}\texttt{/cmake/platforms/release} for two configurations, respectively:
|
||||
|
||||
{\ccTexHtml{\scriptsize}{}
|
||||
\begin{verbatim}
|
||||
mkdir CGAL-3.9/cmake/platforms/debug
|
||||
cd CGAL-3.9/cmake/platforms/debug
|
||||
\begin{alltt}
|
||||
mkdir \cgalrel/cmake/platforms/debug
|
||||
cd \cgalrel/cmake/platforms/debug
|
||||
cmake -DCMAKE_BUILD_TYPE=Debug ../../..
|
||||
|
||||
mkdir CGAL-3.9/cmake/platforms/release
|
||||
cd CGAL-3.9/cmake/platforms/release
|
||||
mkdir \cgalrel/cmake/platforms/release
|
||||
cd \cgalrel/cmake/platforms/release
|
||||
cmake -DCMAKE_BUILD_TYPE=Release ../../..
|
||||
\end{verbatim}
|
||||
\end{alltt}
|
||||
}
|
||||
|
||||
\section{Building \cgal\ Libraries}
|
||||
|
|
@ -606,9 +601,9 @@ makefiles. You can use the \texttt{make} command-line tool for the
|
|||
succeeding build step as follows:
|
||||
|
||||
{\ccTexHtml{\scriptsize}{}
|
||||
\begin{verbatim}
|
||||
\begin{alltt}
|
||||
|
||||
cd CGAL-3.9
|
||||
cd \cgalrel
|
||||
|
||||
# build all the selected libraries at once
|
||||
|
||||
|
|
@ -619,11 +614,11 @@ make
|
|||
|
||||
make CGAL CGAL_ImageIO CGAL_Qt4
|
||||
|
||||
\end{verbatim}
|
||||
\end{alltt}
|
||||
}
|
||||
|
||||
The resulting are placed in the subdirectory {\tt lib} under {\tt <CMAKE\_BINARY\_DIR>}
|
||||
(which is \cgaldir\ in case you run an in-source-configuration).
|
||||
(which is \cgalrel\ in case you run an in-source-configuration).
|
||||
|
||||
With generators other than {\tt UNIX Makefiles} the resulting build files
|
||||
are solution and project files which
|
||||
|
|
@ -634,11 +629,11 @@ Alternatively, you can build it with the command line version of the
|
|||
{\sc Visual Studio Ide}:
|
||||
|
||||
{\ccTexHtml{\scriptsize}{}
|
||||
\begin{verbatim}
|
||||
\begin{alltt}
|
||||
|
||||
devenv CGAL.sln /Build Debug
|
||||
|
||||
\end{verbatim}
|
||||
\end{alltt}
|
||||
}
|
||||
|
||||
The "Debug" argument is needed because \cmake\ creates solution files for
|
||||
|
|
@ -667,7 +662,7 @@ The targets \texttt{examples} and \texttt{demos} include themselves all the targ
|
|||
for examples and demos respectively.
|
||||
|
||||
{\ccTexHtml{\scriptsize}{}
|
||||
\begin{verbatim}
|
||||
\begin{alltt}
|
||||
|
||||
# build all examples at once
|
||||
make examples
|
||||
|
|
@ -678,7 +673,7 @@ make demos
|
|||
# build only the Straight Skeleton demo
|
||||
make Straight_skeleton_2_demo
|
||||
|
||||
\end{verbatim}
|
||||
\end{alltt}
|
||||
}
|
||||
|
||||
\begin{ccAdvanced}
|
||||
|
|
@ -704,15 +699,15 @@ The following example shows a typical session from configuration to
|
|||
installation in a {\sc Unix}-like environment:
|
||||
|
||||
{\ccTexHtml{\scriptsize}{}
|
||||
\begin{verbatim}
|
||||
\begin{alltt}
|
||||
|
||||
cd CGAL-3.9
|
||||
cd \cgalrel
|
||||
|
||||
cmake . # configure
|
||||
make # compile
|
||||
make install # install
|
||||
|
||||
\end{verbatim}
|
||||
\end{alltt}
|
||||
}
|
||||
|
||||
If you use a generator that produces IDE files (for Visual Studio for instance) there will be an optional
|
||||
|
|
@ -728,7 +723,7 @@ variable explicitly {\em at the configuration time} and not when executing the i
|
|||
\end{ccAdvanced}
|
||||
|
||||
The file \texttt{CGALConfig.cmake} is installed by default in
|
||||
\texttt{\$CMAKE\_INSTALLED\_PREFIX/lib/CGAL-3.9}.
|
||||
\texttt{\$CMAKE\_INSTALLED\_PREFIX/lib/\cgalrel}.
|
||||
|
||||
|
||||
\section{Configuring and Building Programs Using \cgal}
|
||||
|
|
@ -745,13 +740,13 @@ to indicate the location of that config file in the \cmake\ variable
|
|||
\texttt{CGAL\_DIR}:
|
||||
|
||||
{\ccTexHtml{\scriptsize}{}
|
||||
\begin{verbatim}
|
||||
\begin{alltt}
|
||||
|
||||
cd CGAL-3.9/examples/Straight_skeleton_2
|
||||
cmake -DCGAL_DIR=$HOME/CGAL-3.9 .
|
||||
cd \cgalrel/examples/Straight_skeleton_2
|
||||
cmake -DCGAL_DIR=$HOME/\cgalrel .
|
||||
make
|
||||
|
||||
\end{verbatim}
|
||||
\end{alltt}
|
||||
}
|
||||
|
||||
\texttt{CGAL\_DIR} can also be an environment variable.
|
||||
|
|
@ -786,17 +781,17 @@ If you use the command line tool you can specify flags {\em directly} by setting
|
|||
controlling variable right up front:
|
||||
|
||||
{\ccTexHtml{\scriptsize}{}
|
||||
\begin{verbatim}
|
||||
\begin{alltt}
|
||||
|
||||
cd CGAL-3.9
|
||||
cd \cgalrel
|
||||
|
||||
cmake -DCMAKE_BUILD_TYPE=Release -DCMAKE_CXX_FLAGS=-g .
|
||||
|
||||
cd CGAL-3.9/examples/Straight_skeleton_2
|
||||
cd \cgalrel/examples/Straight_skeleton_2
|
||||
|
||||
cmake -DCGAL_DIR=CGAL-3.9 -DCMAKE_BUILD_TYPE=Debug -DCMAKE_CXX_FLAGS=-O2 -DCGAL_DONT_OVERRIDE_CMAKE_FLAGS=TRUE .
|
||||
cmake -DCGAL_DIR=\cgalrel -DCMAKE_BUILD_TYPE=Debug -DCMAKE_CXX_FLAGS=-O2 -DCGAL_DONT_OVERRIDE_CMAKE_FLAGS=TRUE .
|
||||
|
||||
\end{verbatim}
|
||||
\end{alltt}
|
||||
}
|
||||
\end{ccAdvanced}
|
||||
|
||||
|
|
@ -1221,17 +1216,17 @@ Below is an example output on a Windows machine with VC8 installed, using \cmake
|
|||
and the following command-line call to \texttt{cmake}:
|
||||
|
||||
{\ccTexHtml{\scriptsize}{}
|
||||
\begin{verbatim}
|
||||
\begin{alltt}
|
||||
cmake -DWITH_examples=false
|
||||
-DWITH_demos=false
|
||||
-DCMAKE_BUILD_TYPE=Release
|
||||
../../..
|
||||
\end{verbatim}
|
||||
\end{alltt}
|
||||
}
|
||||
|
||||
|
||||
{\ccTexHtml{\scriptsize}{}
|
||||
\begin{verbatim}
|
||||
\begin{alltt}
|
||||
-- Check for working C compiler: cl
|
||||
-- Check for working C compiler: cl -- works
|
||||
-- Detecting C compiler ABI info
|
||||
|
|
@ -1322,8 +1317,8 @@ cmake -DWITH_examples=false
|
|||
-- uic executable: C:/Work/Downloaded/Libraries/qt-win-opensource-src-4.4.1/bin/uic.exe
|
||||
-- Configuring done
|
||||
-- Generating done
|
||||
-- Build files have been written to: C:/Work/Active/GeometryFactory/CGAL/Autotest/CGAL-3.9/cmake/platforms/a
|
||||
\end{verbatim}
|
||||
-- Build files have been written to: C:/Work/Active/GeometryFactory/CGAL/Autotest/\cgalrel/cmake/platforms/a
|
||||
\end{alltt}
|
||||
}
|
||||
|
||||
|
||||
|
|
|
|||
|
|
@ -200,7 +200,7 @@ test_coords(const Triangul& T, const typename
|
|||
|
||||
|
||||
typename Triangul::Cell_handle start;
|
||||
typename Triangul::Geom_traits::FT norm;
|
||||
typename Triangul::Geom_traits::FT norm = 1; // 1 for that default doesn't trigger an assert
|
||||
//test different function calls
|
||||
switch(version){
|
||||
case 0:{
|
||||
|
|
|
|||
|
|
@ -19,7 +19,6 @@
|
|||
|
||||
#include <CGAL/Exact_predicates_inexact_constructions_kernel.h>
|
||||
#include <CGAL/Exact_predicates_exact_constructions_kernel.h>
|
||||
#include <CGAL/IO/Geomview_stream.h>
|
||||
#include <CGAL/Delaunay_triangulation_3.h>
|
||||
#include <CGAL/aff_transformation_tags.h>
|
||||
|
||||
|
|
|
|||
|
|
@ -21,6 +21,11 @@
|
|||
|
||||
#include <string>
|
||||
|
||||
#include <CGAL/config.h>
|
||||
|
||||
#if defined(BOOST_MSVC)
|
||||
# pragma warning(disable:4244) // int to float conversion warning
|
||||
#endif
|
||||
|
||||
#include <CGAL/intersections.h>
|
||||
#include <CGAL/Cartesian.h>
|
||||
|
|
|
|||
|
|
@ -427,8 +427,8 @@ fill_matrix(InputIterator begin, InputIterator end,
|
|||
M.set(line_count, k*(k+1)/2+i,
|
||||
std::pow(x,static_cast<double>(k-i))
|
||||
* std::pow(y,static_cast<double>(i))
|
||||
/( fact(i) *
|
||||
fact(k-i)
|
||||
/( fact(static_cast<unsigned int>(i)) *
|
||||
fact(static_cast<unsigned int>(k-i))
|
||||
*std::pow(this->preconditionning,static_cast<double>(k))));
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -1,2 +1,3 @@
|
|||
unique_sqrt_extension-sloriot
|
||||
global_function_solve_1-hemmer
|
||||
global_function_solve_1-hemmer
|
||||
Generator-removed_deprecated-odevil
|
||||
|
|
|
|||
|
|
@ -89,43 +89,43 @@ inline double estimate_html_size( const string& s) {
|
|||
void three_cols_html_begin( ostream& out, bool big_col1) {
|
||||
current_font = it_font;
|
||||
out << indent << indent << ind_newline
|
||||
<< "<!3><TABLE BORDER=0 CELLSPACING=2 CELLPADDING=0 WIDTH="
|
||||
<< table_width << ">" << ind_newline
|
||||
<< "<TR><TD ALIGN=LEFT VALIGN=TOP WIDTH="
|
||||
<< "<!3><TABLE BORDER=0 CELLSPACING=2 CELLPADDING=0 WIDTH=\""
|
||||
<< table_width << "\">" << ind_newline
|
||||
<< "<TR><TD ALIGN=LEFT VALIGN=TOP WIDTH=\""
|
||||
<< table_first_col + (big_col1 ? (table_second_col+table_third_col) :0)
|
||||
<< "%" << ( big_col1 ? " COLSPAN=3>" : " NOWRAP>")
|
||||
<< ind_newline << "<I><NOBR>" << outdent << ind_newline;
|
||||
<< "%\"" << ( big_col1 ? " COLSPAN=3>" : " NOWRAP>")
|
||||
<< ind_newline << "<I class=\"nowrap\">" << outdent << ind_newline;
|
||||
}
|
||||
|
||||
void three_cols_html_premature_end( ostream& out) {
|
||||
out << indent << ind_newline << store_remember_font() << "</I></NOBR>"
|
||||
out << indent << ind_newline << store_remember_font() << "</I>"
|
||||
<< ind_newline << "</TD></TR>" << ind_newline
|
||||
<< "</TABLE><!3>" << outdent << outdent << ind_newline;
|
||||
}
|
||||
|
||||
void three_cols_html_second( ostream& out, bool big_col1, bool big_col2) {
|
||||
out << indent << ind_newline << store_remember_font() << "</I></NOBR>"
|
||||
out << indent << ind_newline << store_remember_font() << "</I>"
|
||||
<< ind_newline << "</TD>";
|
||||
if ( big_col1)
|
||||
out << "</TR><TR><TD WIDTH=" << table_first_col << "% NOWRAP></TD>";
|
||||
out << "<TD ALIGN=LEFT VALIGN=TOP WIDTH="
|
||||
out << "</TR><TR><TD WIDTH=\"" << table_first_col << "%\" NOWRAP></TD>";
|
||||
out << "<TD ALIGN=LEFT VALIGN=TOP WIDTH=\""
|
||||
<< table_second_col + ( big_col2 ? table_third_col : 0)
|
||||
<< "% NOWRAP" << ( big_col2 ? " COLSPAN=2>" : ">")
|
||||
<< ind_newline << "<I><NOBR>" << get_remember_font() << outdent
|
||||
<< "%\" NOWRAP" << ( big_col2 ? " COLSPAN=2>" : ">")
|
||||
<< ind_newline << "<I class=\"nowrap\">" << get_remember_font() << outdent
|
||||
<< ind_newline;
|
||||
}
|
||||
|
||||
void three_cols_html_third( ostream& out, bool big_col2, bool empty_col3) {
|
||||
out << indent << ind_newline << store_remember_font() << "</I></NOBR>"
|
||||
out << indent << ind_newline << store_remember_font() << "</I>"
|
||||
<< ind_newline;
|
||||
if ( ! big_col2)
|
||||
out << "</TD>";
|
||||
if ( ! empty_col3) {
|
||||
if ( big_col2)
|
||||
out << "</TR><TR><TD WIDTH=" << table_first_col
|
||||
<< "% NOWRAP></TD><TD WIDTH=" << table_second_col
|
||||
<< "% NOWRAP></TD>";
|
||||
out << "<TD ALIGN=LEFT VALIGN=TOP WIDTH=" << table_third_col << "%>";
|
||||
out << "</TR><TR><TD WIDTH=\"" << table_first_col
|
||||
<< "%\" NOWRAP></TD><TD WIDTH=\"" << table_second_col
|
||||
<< "%\" NOWRAP></TD>";
|
||||
out << "<TD ALIGN=LEFT VALIGN=TOP WIDTH=\"" << table_third_col << "%\">";
|
||||
}
|
||||
out << outdent << ind_newline;
|
||||
}
|
||||
|
|
@ -145,31 +145,31 @@ void three_cols_html_new_closing( ostream& out) {
|
|||
void two_cols_html_begin( ostream& out) {
|
||||
current_font = it_font;
|
||||
out << indent << indent << ind_newline
|
||||
<< "<!2><TABLE BORDER=0 CELLSPACING=2 CELLPADDING=0 WIDTH="
|
||||
<< table_width << ">" << ind_newline
|
||||
<< "<TR><TD ALIGN=LEFT VALIGN=TOP WIDTH="
|
||||
<< table_2c_first_col + table_2c_second_col << "% NOWRAP COLSPAN=2>"
|
||||
<< ind_newline << "<I><NOBR>" << outdent << ind_newline;
|
||||
<< "<!2><TABLE BORDER=0 CELLSPACING=2 CELLPADDING=0 WIDTH=\""
|
||||
<< table_width << "\">" << ind_newline
|
||||
<< "<TR><TD ALIGN=LEFT VALIGN=TOP WIDTH=\""
|
||||
<< table_2c_first_col + table_2c_second_col << "%\" NOWRAP COLSPAN=2>"
|
||||
<< ind_newline << "<I class=\"nowrap\">" << outdent << ind_newline;
|
||||
}
|
||||
|
||||
void two_cols_html_premature_end( ostream& out) {
|
||||
out << indent << ind_newline << store_remember_font() <<"</I></NOBR>"
|
||||
out << indent << ind_newline << store_remember_font() <<"</I>"
|
||||
<< ind_newline << "</TD></TR>" << ind_newline
|
||||
<< "</TABLE><!2>" << outdent << outdent << ind_newline;
|
||||
}
|
||||
|
||||
void two_cols_html_second( ostream& out, bool empty_col2) {
|
||||
out << indent << ind_newline << store_remember_font() << "</I></NOBR>"
|
||||
out << indent << ind_newline << store_remember_font() << "</I>"
|
||||
<< ind_newline << "</TD></TR>";
|
||||
if ( ! empty_col2)
|
||||
out << "<TR><TD WIDTH=" << table_2c_first_col
|
||||
<< "% NOWRAP></TD><TD ALIGN=LEFT VALIGN=TOP WIDTH="
|
||||
<< table_2c_second_col << "%>";
|
||||
out << "<TR><TD WIDTH=\"" << table_2c_first_col
|
||||
<< "%\" NOWRAP></TD><TD ALIGN=LEFT VALIGN=TOP WIDTH=\""
|
||||
<< table_2c_second_col << "%\">";
|
||||
out << outdent << ind_newline;
|
||||
}
|
||||
|
||||
void two_cols_html_new_closing( ostream& out) {
|
||||
out << indent << ind_newline << store_remember_font() << "</I></NOBR>"
|
||||
out << indent << ind_newline << store_remember_font() << "</I>"
|
||||
<< ind_newline << "</TD></TR>" << outdent << outdent;
|
||||
}
|
||||
|
||||
|
|
@ -1133,9 +1133,9 @@ void format_function( bool method, const char* signature,
|
|||
*current_ostream << "</I></TD>";
|
||||
if ( macroIsTrue( "\\ccLongParamLayout") ||
|
||||
! macroIsTrue( "\\ccAlternateThreeColumn"))
|
||||
*current_ostream << "</TR><TR><TD ALIGN=LEFT WIDTH="
|
||||
*current_ostream << "</TR><TR><TD ALIGN=LEFT WIDTH=\""
|
||||
<< table_long_param_indent
|
||||
<< " NOWRAP></TD>";
|
||||
<< "\" NOWRAP></TD>";
|
||||
*current_ostream << "<TD ALIGN=LEFT VALIGN=TOP "
|
||||
"NOWRAP><I>";
|
||||
*current_ostream << get_remember_font() << ind_newline;
|
||||
|
|
@ -1287,9 +1287,9 @@ void format_function( bool method, const char* signature,
|
|||
*current_ostream << "</I></TD>";
|
||||
if ( macroIsTrue( "\\ccLongParamLayout") ||
|
||||
! macroIsTrue( "\\ccAlternateThreeColumn"))
|
||||
*current_ostream << "</TR><TR><TD WIDTH="
|
||||
*current_ostream << "</TR><TR><TD WIDTH=\""
|
||||
<< table_long_param_indent
|
||||
<< " NOWRAP></TD>";
|
||||
<< "\" NOWRAP></TD>";
|
||||
*current_ostream << "<TD ALIGN=LEFT VALIGN=TOP "
|
||||
"NOWRAP><I>";
|
||||
*current_ostream << get_remember_font() << ind_newline;
|
||||
|
|
@ -1904,9 +1904,9 @@ void format_constructor( const char* signature) {
|
|||
*current_ostream << "</I></TD>";
|
||||
if ( macroIsTrue( "\\ccLongParamLayout") ||
|
||||
! macroIsTrue( "\\ccAlternateThreeColumn"))
|
||||
*current_ostream << "</TR><TR><TD WIDTH="
|
||||
*current_ostream << "</TR><TR><TD WIDTH=\""
|
||||
<< table_long_param_indent
|
||||
<< " NOWRAP></TD>";
|
||||
<< "\" NOWRAP></TD>";
|
||||
*current_ostream << "<TD ALIGN=LEFT VALIGN=TOP "
|
||||
"NOWRAP><I>";
|
||||
*current_ostream << get_remember_font() << ind_newline;
|
||||
|
|
|
|||
|
|
@ -700,7 +700,7 @@
|
|||
%% #1 == ccCategory
|
||||
%% #2 == ccRefName
|
||||
\newcommand{\lcDrawRefTabs}[2]{%
|
||||
\lcRawHtml{<TABLE ALIGN=RIGHT><TR><TD><IMG ALIGN=TOP SRC="cc_#XC1.gif">}%
|
||||
\lcRawHtml{<TABLE ALIGN=RIGHT><TR><TD><IMG ALIGN=TOP SRC="cc_#XC1.gif" ALT="#XC1">}%
|
||||
\lcRawHtml{</TD></TR></TABLE>
|
||||
}
|
||||
}
|
||||
|
|
@ -908,7 +908,7 @@
|
|||
}
|
||||
|
||||
%% Tricky definition, since we must have % signs in it.
|
||||
\newcommand{\lciTwoColsSecond}{\lcRawHtml{<TR><TD WIDTH=50}\%\lcRawHtml{ NOWRAP></TD><TD ALIGN=LEFT VALIGN=TOP WIDTH=50}\%\lcRawHtml{>
|
||||
\newcommand{\lciTwoColsSecond}{\lcRawHtml{<TR><TD WIDTH="50}\%\lcRawHtml{" NOWRAP></TD><TD ALIGN=LEFT VALIGN=TOP WIDTH="50}\%\lcRawHtml{">
|
||||
}}
|
||||
\newcommand{\lciTwoColsEnd}{\lcRawHtml{
|
||||
<P></TD></TR>
|
||||
|
|
|
|||
|
|
@ -449,9 +449,9 @@
|
|||
% | * Accents and Special Symbols
|
||||
% +--------------------------------------------------------------------------
|
||||
\newcommand{\dag}{%
|
||||
\lcRawHtml{<IMG BORDER=0 WIDTH=5 HEIGHT=17 ALIGN=BOTTOM SRC="cc_dag.gif">}}
|
||||
\lcRawHtml{<IMG ALT="dag" BORDER=0 WIDTH=5 HEIGHT=17 ALIGN=BOTTOM SRC="cc_dag.gif">}}
|
||||
\newcommand{\ddag}{%
|
||||
\lcRawHtml{<IMG BORDER=0 WIDTH=5 HEIGHT=17 ALIGN=BOTTOM SRC="cc_ddag.gif">}}
|
||||
\lcRawHtml{<IMG ALT="ddag" BORDER=0 WIDTH=5 HEIGHT=17 ALIGN=BOTTOM SRC="cc_ddag.gif">}}
|
||||
|
||||
\newcommand{\S}{\lcRawHtml{§}}
|
||||
\newcommand{\P}{\lcRawHtml{¶}}
|
||||
|
|
@ -476,13 +476,13 @@
|
|||
\newcommand{\O}{\lcRawHtml{Ø}}
|
||||
|
||||
\newcommand{\l}{%
|
||||
\lcRawHtml{<IMG BORDER=0 WIDTH=4 HEIGHT=13 ALIGN=BOTTOM SRC="cc_lowercase_l.gif">}}
|
||||
\lcRawHtml{<IMG ALT="l" BORDER=0 WIDTH=4 HEIGHT=13 ALIGN=BOTTOM SRC="cc_lowercase_l.gif">}}
|
||||
\newcommand{\L}{%
|
||||
\lcRawHtml{<IMG BORDER=0 WIDTH=9 HEIGHT=12 ALIGN=BOTTOM SRC="cc_uppercase_L.gif">}}
|
||||
\lcRawHtml{<IMG ALT="L" BORDER=0 WIDTH=9 HEIGHT=12 ALIGN=BOTTOM SRC="cc_uppercase_L.gif">}}
|
||||
\newcommand{\oe}{%
|
||||
\lcRawHtml{<IMG BORDER=0 WIDTH=12 HEIGHT=8 ALIGN=BOTTOM SRC="cc_lowercase_oe.gif">}}
|
||||
\lcRawHtml{<IMG ALT="oe" BORDER=0 WIDTH=12 HEIGHT=8 ALIGN=BOTTOM SRC="cc_lowercase_oe.gif">}}
|
||||
\newcommand{\OE}{%
|
||||
\lcRawHtml{<IMG BORDER=0 WIDTH=16 HEIGHT=12 ALIGN=BOTTOM SRC="cc_uppercase_OE.gif">}}
|
||||
\lcRawHtml{<IMG ALT="OE" BORDER=0 WIDTH=16 HEIGHT=12 ALIGN=BOTTOM SRC="cc_uppercase_OE.gif">}}
|
||||
|
||||
% +--------------------------------------------------------------------------
|
||||
% | * Greek alphabet: following Table 3.3 page 41 in Lamport.
|
||||
|
|
@ -494,60 +494,60 @@
|
|||
\newcommand{\epsilon}{\lcRawHtml{ε}}
|
||||
\newcommand{\varepsilon}{\lcRawHtml{ε}}
|
||||
\newcommand{\zeta}{\lcRawHtml%
|
||||
{<IMG BORDER=0 WIDTH=7 HEIGHT=27 ALIGN=MIDDLE SRC="cc_zeta.gif">}}
|
||||
{<IMG ALT="zeta" BORDER=0 WIDTH=7 HEIGHT=27 ALIGN=MIDDLE SRC="cc_zeta.gif">}}
|
||||
\newcommand{\eta}{\lcRawHtml{η}}
|
||||
\newcommand{\theta}{\lcRawHtml%
|
||||
{<IMG BORDER=0 WIDTH=6 HEIGHT=13 ALIGN=BOTTOM SRC="cc_lowercase_theta.gif">}}
|
||||
{<IMG ALT="theta" BORDER=0 WIDTH=6 HEIGHT=13 ALIGN=BOTTOM SRC="cc_lowercase_theta.gif">}}
|
||||
\newcommand{\vartheta}{\lcRawHtml%
|
||||
{<IMG BORDER=0 WIDTH=8 HEIGHT=13 ALIGN=BOTTOM SRC="cc_vartheta.gif">}}
|
||||
{<IMG ALT="vartheta" BORDER=0 WIDTH=8 HEIGHT=13 ALIGN=BOTTOM SRC="cc_vartheta.gif">}}
|
||||
\newcommand{\iota}{\lcRawHtml%
|
||||
{<IMG BORDER=0 WIDTH=4 HEIGHT=8 ALIGN=BOTTOM SRC="cc_iota.gif">}}
|
||||
{<IMG ALT="iota" BORDER=0 WIDTH=4 HEIGHT=8 ALIGN=BOTTOM SRC="cc_iota.gif">}}
|
||||
\newcommand{\kappa}{\lcRawHtml%
|
||||
{<IMG BORDER=0 WIDTH=8 HEIGHT=8 ALIGN=BOTTOM SRC="cc_kappa.gif">}}
|
||||
{<IMG ALT="kappa" BORDER=0 WIDTH=8 HEIGHT=8 ALIGN=BOTTOM SRC="cc_kappa.gif">}}
|
||||
\newcommand{\lambda}{\lcRawHtml{λ}}
|
||||
\newcommand{\mu}{\lcRawHtml{µ}}
|
||||
%%\newcommand{\mu}{\lcRawHtml%
|
||||
%% {<IMG BORDER=0 WIDTH=9 HEIGHT=17 ALIGN=MIDDLE SRC="cc_lowercase_mu.gif">}}
|
||||
\newcommand{\nu}{\lcRawHtml%
|
||||
{<IMG BORDER=0 WIDTH=7 HEIGHT=8 ALIGN=BOTTOM SRC="cc_nu.gif">}}
|
||||
{<IMG ALT="nu" BORDER=0 WIDTH=7 HEIGHT=8 ALIGN=BOTTOM SRC="cc_nu.gif">}}
|
||||
\newcommand{\xi}{\lcRawHtml{ξ}}
|
||||
\newcommand{\pi}{\lcRawHtml{π}}
|
||||
\newcommand{\varpi}{\lcRawHtml%
|
||||
{<IMG BORDER=0 WIDTH=13 HEIGHT=8 ALIGN=BOTTOM SRC="cc_varpi.gif">}}
|
||||
{<IMG ALT="varpi" BORDER=0 WIDTH=13 HEIGHT=8 ALIGN=BOTTOM SRC="cc_varpi.gif">}}
|
||||
\newcommand{\rho}{\lcRawHtml%
|
||||
{<IMG BORDER=0 WIDTH=7 HEIGHT=17 ALIGN=MIDDLE SRC="cc_rho.gif">}}
|
||||
{<IMG ALT="rho" BORDER=0 WIDTH=7 HEIGHT=17 ALIGN=MIDDLE SRC="cc_rho.gif">}}
|
||||
\newcommand{\varrho}{\lcRawHtml%
|
||||
{<IMG BORDER=0 WIDTH=6 HEIGHT=17 ALIGN=MIDDLE SRC="cc_varrho.gif">}}
|
||||
{<IMG ALT="varrho" BORDER=0 WIDTH=6 HEIGHT=17 ALIGN=MIDDLE SRC="cc_varrho.gif">}}
|
||||
\newcommand{\sigma}{\lcRawHtml{σ}}
|
||||
\newcommand{\varsigma}{\lcRawHtml%
|
||||
{<IMG BORDER=0 WIDTH=5 HEIGHT=17 ALIGN=MIDDLE SRC="cc_varsigma.gif">}}
|
||||
{<IMG ALT="varsigma" BORDER=0 WIDTH=5 HEIGHT=17 ALIGN=MIDDLE SRC="cc_varsigma.gif">}}
|
||||
\newcommand{\tau}{\lcRawHtml%
|
||||
{<IMG BORDER=0 WIDTH=8 HEIGHT=8 ALIGN=BOTTOM SRC="cc_tau.gif">}}
|
||||
{<IMG ALT="tau" BORDER=0 WIDTH=8 HEIGHT=8 ALIGN=BOTTOM SRC="cc_tau.gif">}}
|
||||
\newcommand{\upsilon}{\lcRawHtml%
|
||||
{<IMG BORDER=0 WIDTH=8 HEIGHT=8 ALIGN=BOTTOM SRC="cc_lowercase_upsilon.gif">}}
|
||||
{<IMG ALT="upsilon" BORDER=0 WIDTH=8 HEIGHT=8 ALIGN=BOTTOM SRC="cc_lowercase_upsilon.gif">}}
|
||||
\newcommand{\phi}{\lcRawHtml{Φ}}
|
||||
\newcommand{\varphi}{\lcRawHtml{φ}}
|
||||
\newcommand{\chi}{\lcRawHtml%
|
||||
{<IMG BORDER=0 WIDTH=11 HEIGHT=17 ALIGN=MIDDLE SRC="cc_chi.gif">}}
|
||||
{<IMG ALT="chi" BORDER=0 WIDTH=11 HEIGHT=17 ALIGN=MIDDLE SRC="cc_chi.gif">}}
|
||||
\newcommand{\psi}{\lcRawHtml%
|
||||
{<IMG BORDER=0 WIDTH=10 HEIGHT=27 ALIGN=MIDDLE SRC="cc_lowercase_psi.gif">}}
|
||||
{<IMG ALT="psi" BORDER=0 WIDTH=10 HEIGHT=27 ALIGN=MIDDLE SRC="cc_lowercase_psi.gif">}}
|
||||
\newcommand{\omega}{\lcRawHtml{ω}}
|
||||
|
||||
\newcommand{\Gamma}{\lcRawHtml%
|
||||
{<IMG BORDER=0 WIDTH=9 HEIGHT=12 ALIGN=BOTTOM SRC="cc_uppercase_Gamma.gif">}}
|
||||
{<IMG ALT="Gamma" BORDER=0 WIDTH=9 HEIGHT=12 ALIGN=BOTTOM SRC="cc_uppercase_Gamma.gif">}}
|
||||
\newcommand{\Delta}{\lcRawHtml{Δ}}
|
||||
\newcommand{\Theta}{\lcRawHtml{Θ}}
|
||||
\newcommand{\Lambda}{\lcRawHtml%
|
||||
{<IMG BORDER=0 WIDTH=11 HEIGHT=12 ALIGN=BOTTOM SRC="cc_uppercase_Lambda.gif">}}
|
||||
{<IMG ALT="Lambda" BORDER=0 WIDTH=11 HEIGHT=12 ALIGN=BOTTOM SRC="cc_uppercase_Lambda.gif">}}
|
||||
\newcommand{\Xi}{\lcRawHtml%
|
||||
{<IMG BORDER=0 WIDTH=9 HEIGHT=12 ALIGN=BOTTOM SRC="cc_uppercase_Xi.gif">}}
|
||||
{<IMG ALT="Xi" BORDER=0 WIDTH=9 HEIGHT=12 ALIGN=BOTTOM SRC="cc_uppercase_Xi.gif">}}
|
||||
\newcommand{\Pi}{\lcRawHtml{Π}}
|
||||
\newcommand{\Sigma}{\lcRawHtml{Σ}}
|
||||
\newcommand{\Upsilon}{\lcRawHtml%
|
||||
{<IMG BORDER=0 WIDTH=11 HEIGHT=12 ALIGN=BOTTOM SRC="cc_uppercase_Upsilon.gif">}}
|
||||
{<IMG ALT="Upsilon" BORDER=0 WIDTH=11 HEIGHT=12 ALIGN=BOTTOM SRC="cc_uppercase_Upsilon.gif">}}
|
||||
\newcommand{\Phi}{\lcRawHtml{Φ}}
|
||||
\newcommand{\Psi}{\lcRawHtml%
|
||||
{<IMG BORDER=0 WIDTH=11 HEIGHT=12 ALIGN=BOTTOM SRC="cc_uppercase_Psi.gif">}}
|
||||
{<IMG ALT="Psi" BORDER=0 WIDTH=11 HEIGHT=12 ALIGN=BOTTOM SRC="cc_uppercase_Psi.gif">}}
|
||||
\newcommand{\Omega}{\lcRawHtml{Ω}}
|
||||
|
||||
% +--------------------------------------------------------------------------
|
||||
|
|
@ -565,50 +565,50 @@
|
|||
\newcommand{\lciMathbb}{} % dummy, supporting other chars/macros as argument
|
||||
|
||||
\newcommand{\lciMathbbA}{\lcRawHtml%
|
||||
{ <IMG BORDER=0 WIDTH=13 HEIGHT=12 ALIGN=BOTTOM SRC="cc_mathbb_A.gif"> }}
|
||||
{< IMG ALT="A" BORDER=0 WIDTH=13 HEIGHT=12 ALIGN=BOTTOM SRC="cc_mathbb_A.gif"> }}
|
||||
\newcommand{\lciMathbbB}{\lcRawHtml%
|
||||
{ <IMG BORDER=0 WIDTH=11 HEIGHT=12 ALIGN=BOTTOM SRC="cc_mathbb_B.gif"> }}
|
||||
{< IMG ALT="B" BORDER=0 WIDTH=11 HEIGHT=12 ALIGN=BOTTOM SRC="cc_mathbb_B.gif"> }}
|
||||
\newcommand{\lciMathbbC}{\lcRawHtml{<span class="sym">ℂ</span>}}
|
||||
\newcommand{\lciMathbbD}{\lcRawHtml%
|
||||
{ <IMG BORDER=0 WIDTH=13 HEIGHT=12 ALIGN=BOTTOM SRC="cc_mathbb_D.gif"> }}
|
||||
{< IMG ALT="D" BORDER=0 WIDTH=13 HEIGHT=12 ALIGN=BOTTOM SRC="cc_mathbb_D.gif"> }}
|
||||
\newcommand{\lciMathbbE}{\lcRawHtml%
|
||||
{ <IMG BORDER=0 WIDTH=12 HEIGHT=12 ALIGN=BOTTOM SRC="cc_mathbb_E.gif"> }}
|
||||
{< IMG ALT="E" BORDER=0 WIDTH=12 HEIGHT=12 ALIGN=BOTTOM SRC="cc_mathbb_E.gif"> }}
|
||||
\newcommand{\lciMathbbF}{\lcRawHtml%
|
||||
{ <IMG BORDER=0 WIDTH=11 HEIGHT=12 ALIGN=BOTTOM SRC="cc_mathbb_F.gif"> }}
|
||||
{< IMG ALT="F" BORDER=0 WIDTH=11 HEIGHT=12 ALIGN=BOTTOM SRC="cc_mathbb_F.gif"> }}
|
||||
\newcommand{\lciMathbbG}{\lcRawHtml%
|
||||
{ <IMG BORDER=0 WIDTH=13 HEIGHT=12 ALIGN=BOTTOM SRC="cc_mathbb_G.gif"> }}
|
||||
{< IMG ALT="G" BORDER=0 WIDTH=13 HEIGHT=12 ALIGN=BOTTOM SRC="cc_mathbb_G.gif"> }}
|
||||
\newcommand{\lciMathbbH}{\lcRawHtml%
|
||||
{ <IMG BORDER=0 WIDTH=14 HEIGHT=12 ALIGN=BOTTOM SRC="cc_mathbb_H.gif"> }}
|
||||
{< IMG ALT="H" BORDER=0 WIDTH=14 HEIGHT=12 ALIGN=BOTTOM SRC="cc_mathbb_H.gif"> }}
|
||||
\newcommand{\lciMathbbI}{\lcRawHtml%
|
||||
{ <IMG BORDER=0 WIDTH=7 HEIGHT=12 ALIGN=BOTTOM SRC="cc_mathbb_I.gif"> }}
|
||||
{< IMG ALT="I" BORDER=0 WIDTH=7 HEIGHT=12 ALIGN=BOTTOM SRC="cc_mathbb_I.gif"> }}
|
||||
\newcommand{\lciMathbbJ}{\lcRawHtml%
|
||||
{ <IMG BORDER=0 WIDTH=9 HEIGHT=21 ALIGN=MIDDLE SRC="cc_mathbb_J.gif"> }}
|
||||
{< IMG ALT="J" BORDER=0 WIDTH=9 HEIGHT=21 ALIGN=MIDDLE SRC="cc_mathbb_J.gif"> }}
|
||||
\newcommand{\lciMathbbK}{\lcRawHtml%
|
||||
{ <IMG BORDER=0 WIDTH=14 HEIGHT=12 ALIGN=BOTTOM SRC="cc_mathbb_K.gif"> }}
|
||||
{< IMG ALT="K" BORDER=0 WIDTH=14 HEIGHT=12 ALIGN=BOTTOM SRC="cc_mathbb_K.gif"> }}
|
||||
\newcommand{\lciMathbbL}{\lcRawHtml%
|
||||
{ <IMG BORDER=0 WIDTH=12 HEIGHT=12 ALIGN=BOTTOM SRC="cc_mathbb_L.gif"> }}
|
||||
{< IMG ALT="L" BORDER=0 WIDTH=12 HEIGHT=12 ALIGN=BOTTOM SRC="cc_mathbb_L.gif"> }}
|
||||
\newcommand{\lciMathbbM}{\lcRawHtml%
|
||||
{ <IMG BORDER=0 WIDTH=18 HEIGHT=12 ALIGN=BOTTOM SRC="cc_mathbb_M.gif"> }}
|
||||
{< IMG ALT="M" BORDER=0 WIDTH=18 HEIGHT=12 ALIGN=BOTTOM SRC="cc_mathbb_M.gif"> }}
|
||||
\newcommand{\lciMathbbN}{\lcRawHtml{<span class="sym">ℕ</span>}}
|
||||
\newcommand{\lciMathbbO}{\lcRawHtml%
|
||||
{ <IMG BORDER=0 WIDTH=12 HEIGHT=20 ALIGN=MIDDLE SRC="cc_mathbb_O.gif"> }}
|
||||
{< IMG ALT="O" BORDER=0 WIDTH=12 HEIGHT=20 ALIGN=MIDDLE SRC="cc_mathbb_O.gif"> }}
|
||||
\newcommand{\lciMathbbP}{\lcRawHtml{<span class="sym">ℙ</span>}}
|
||||
\newcommand{\lciMathbbQ}{\lcRawHtml{<span class="sym">ℚ</span>}}
|
||||
\newcommand{\lciMathbbR}{\lcRawHtml{<span class="sym">ℝ</span>}}
|
||||
\newcommand{\lciMathbbS}{\lcRawHtml%
|
||||
{ <IMG BORDER=0 WIDTH=8 HEIGHT=12 ALIGN=BOTTOM SRC="cc_mathbb_S.gif"> }}
|
||||
{< IMG ALT="S" BORDER=0 WIDTH=8 HEIGHT=12 ALIGN=BOTTOM SRC="cc_mathbb_S.gif"> }}
|
||||
\newcommand{\lciMathbbT}{\lcRawHtml%
|
||||
{ <IMG BORDER=0 WIDTH=11 HEIGHT=12 ALIGN=BOTTOM SRC="cc_mathbb_T.gif"> }}
|
||||
{< IMG ALT="T" BORDER=0 WIDTH=11 HEIGHT=12 ALIGN=BOTTOM SRC="cc_mathbb_T.gif"> }}
|
||||
\newcommand{\lciMathbbU}{\lcRawHtml%
|
||||
{ <IMG BORDER=0 WIDTH=13 HEIGHT=12 ALIGN=BOTTOM SRC="cc_mathbb_U.gif"> }}
|
||||
{< IMG ALT="U" BORDER=0 WIDTH=13 HEIGHT=12 ALIGN=BOTTOM SRC="cc_mathbb_U.gif"> }}
|
||||
\newcommand{\lciMathbbV}{\lcRawHtml%
|
||||
{ <IMG BORDER=0 WIDTH=13 HEIGHT=12 ALIGN=BOTTOM SRC="cc_mathbb_V.gif"> }}
|
||||
{< IMG ALT="V" BORDER=0 WIDTH=13 HEIGHT=12 ALIGN=BOTTOM SRC="cc_mathbb_V.gif"> }}
|
||||
\newcommand{\lciMathbbW}{\lcRawHtml%
|
||||
{ <IMG BORDER=0 WIDTH=18 HEIGHT=12 ALIGN=BOTTOM SRC="cc_mathbb_W.gif"> }}
|
||||
{< IMG ALT="W" BORDER=0 WIDTH=18 HEIGHT=12 ALIGN=BOTTOM SRC="cc_mathbb_W.gif"> }}
|
||||
\newcommand{\lciMathbbX}{\lcRawHtml%
|
||||
{ <IMG BORDER=0 WIDTH=14 HEIGHT=12 ALIGN=BOTTOM SRC="cc_mathbb_X.gif"> }}
|
||||
{< IMG ALT="X" BORDER=0 WIDTH=14 HEIGHT=12 ALIGN=BOTTOM SRC="cc_mathbb_X.gif"> }}
|
||||
\newcommand{\lciMathbbY}{\lcRawHtml%
|
||||
{ <IMG BORDER=0 WIDTH=13 HEIGHT=12 ALIGN=BOTTOM SRC="cc_mathbb_Y.gif"> }}
|
||||
{< IMG ALT="Y" BORDER=0 WIDTH=13 HEIGHT=12 ALIGN=BOTTOM SRC="cc_mathbb_Y.gif"> }}
|
||||
\newcommand{\lciMathbbZ}{\lcRawHtml{<span class="sym">ℤ</span>}}
|
||||
|
||||
% +--------------------------------------------------------------------------
|
||||
|
|
@ -630,62 +630,62 @@
|
|||
\newcommand{\times}{\lcRawHtml{ × }}
|
||||
\newcommand{\div}{\lcRawHtml{ ÷ }}
|
||||
\newcommand{\mp}{\lcRawHtml%
|
||||
{ <IMG BORDER=0 WIDTH=11 HEIGHT=23 ALIGN=MIDDLE SRC="cc_mp.gif"> }}
|
||||
{< IMG ALT="mp" BORDER=0 WIDTH=11 HEIGHT=23 ALIGN=MIDDLE SRC="cc_mp.gif"> }}
|
||||
\newcommand{\ast}{\lcRawHtml{ ∗ }}
|
||||
\newcommand{\star}{\lcRawHtml%
|
||||
{ <IMG BORDER=0 WIDTH=4 HEIGHT=2 ALIGN=BOTTOM SRC="cc_star.gif"> }}
|
||||
{< IMG ALT="star" BORDER=0 WIDTH=4 HEIGHT=2 ALIGN=BOTTOM SRC="cc_star.gif"> }}
|
||||
\newcommand{\circ}{\lcRawHtml{°}}
|
||||
\newcommand{\bullet}{\lcRawHtml{• }}
|
||||
\newcommand{\cap}{\lcRawHtml{ <span class="sym">∩</span> }}
|
||||
\newcommand{\cup}{\lcRawHtml{ <span class="sym">∪</span> }}
|
||||
\newcommand{\uplus}{\lcRawHtml%
|
||||
{ <IMG BORDER=0 WIDTH=9 HEIGHT=11 ALIGN=BOTTOM SRC="cc_uplus.gif"> }}
|
||||
{< IMG ALT="uplus" BORDER=0 WIDTH=9 HEIGHT=11 ALIGN=BOTTOM SRC="cc_uplus.gif"> }}
|
||||
\newcommand{\sqcap}{\lcRawHtml%
|
||||
{ <IMG BORDER=0 WIDTH=9 HEIGHT=11 ALIGN=BOTTOM SRC="cc_sqcap.gif"> }}
|
||||
{< IMG ALT="sqcap" BORDER=0 WIDTH=9 HEIGHT=11 ALIGN=BOTTOM SRC="cc_sqcap.gif"> }}
|
||||
\newcommand{\sqcup}{\lcRawHtml%
|
||||
{ <IMG BORDER=0 WIDTH=9 HEIGHT=11 ALIGN=BOTTOM SRC="cc_sqcup.gif"> }}
|
||||
{< IMG ALT="sqcup" BORDER=0 WIDTH=9 HEIGHT=11 ALIGN=BOTTOM SRC="cc_sqcup.gif"> }}
|
||||
\newcommand{\vee}{\lcRawHtml%
|
||||
{ <IMG BORDER=0 WIDTH=9 HEIGHT=11 ALIGN=BOTTOM SRC="cc_vee.gif"> }}
|
||||
{< IMG ALT="vee" BORDER=0 WIDTH=9 HEIGHT=11 ALIGN=BOTTOM SRC="cc_vee.gif"> }}
|
||||
\newcommand{\wedge}{\lcRawHtml%
|
||||
{ <IMG BORDER=0 WIDTH=9 HEIGHT=11 ALIGN=BOTTOM SRC="cc_wedge.gif"> }}
|
||||
{< IMG ALT="wedge" BORDER=0 WIDTH=9 HEIGHT=11 ALIGN=BOTTOM SRC="cc_wedge.gif"> }}
|
||||
\newcommand{\setminus}{\lcRawHtml{ \ }}
|
||||
\newcommand{\wr}{\lcRawHtml%
|
||||
{ <IMG BORDER=0 WIDTH=2 HEIGHT=21 ALIGN=MIDDLE SRC="cc_wr.gif"> }}
|
||||
{< IMG ALT="wr" BORDER=0 WIDTH=2 HEIGHT=21 ALIGN=MIDDLE SRC="cc_wr.gif"> }}
|
||||
\newcommand{\diamond}{\lcRawHtml%
|
||||
{ <IMG BORDER=0 WIDTH=7 HEIGHT=7 ALIGN=BOTTOM SRC="cc_lowercase_diamond.gif"> }}
|
||||
{< IMG ALT="diamond" BORDER=0 WIDTH=7 HEIGHT=7 ALIGN=BOTTOM SRC="cc_lowercase_diamond.gif"> }}
|
||||
\newcommand{\bigtriangleup}{\lcRawHtml%
|
||||
{ <IMG BORDER=0 WIDTH=13 HEIGHT=21 ALIGN=MIDDLE SRC="cc_bigtriangleup.gif"> }}
|
||||
{< IMG ALT="bigtriangleup" BORDER=0 WIDTH=13 HEIGHT=21 ALIGN=MIDDLE SRC="cc_bigtriangleup.gif"> }}
|
||||
\newcommand{\bigtriangledown}{\lcRawHtml%
|
||||
{ <IMG BORDER=0 WIDTH=13 HEIGHT=21 ALIGN=MIDDLE SRC="cc_bigtriangledown.gif"> }}
|
||||
{< IMG ALT="bigtriangledown" BORDER=0 WIDTH=13 HEIGHT=21 ALIGN=MIDDLE SRC="cc_bigtriangledown.gif"> }}
|
||||
\newcommand{\triangleleft}{\lcRawHtml%
|
||||
{ <IMG BORDER=0 WIDTH=6 HEIGHT=7 ALIGN=BOTTOM SRC="cc_triangleleft.gif"> }}
|
||||
{< IMG ALT="triangleleft" BORDER=0 WIDTH=6 HEIGHT=7 ALIGN=BOTTOM SRC="cc_triangleleft.gif"> }}
|
||||
\newcommand{\triangleright}{\lcRawHtml%
|
||||
{ <IMG BORDER=0 WIDTH=6 HEIGHT=7 ALIGN=BOTTOM SRC="cc_triangleright.gif"> }}
|
||||
{< IMG ALT="triangleright" BORDER=0 WIDTH=6 HEIGHT=7 ALIGN=BOTTOM SRC="cc_triangleright.gif"> }}
|
||||
\newcommand{\lhd}{\lcRawHtml%
|
||||
{ <IMG BORDER=0 WIDTH=11 HEIGHT=21 ALIGN=MIDDLE SRC="cc_lhd.gif"> }}
|
||||
{< IMG ALT="lhd" BORDER=0 WIDTH=11 HEIGHT=21 ALIGN=MIDDLE SRC="cc_lhd.gif"> }}
|
||||
\newcommand{\rhd}{\lcRawHtml%
|
||||
{ <IMG BORDER=0 WIDTH=11 HEIGHT=21 ALIGN=MIDDLE SRC="cc_rhd.gif"> }}
|
||||
{< IMG ALT="rhd" BORDER=0 WIDTH=11 HEIGHT=21 ALIGN=MIDDLE SRC="cc_rhd.gif"> }}
|
||||
\newcommand{\unlhd}{\lcRawHtml%
|
||||
{ <IMG BORDER=0 WIDTH=11 HEIGHT=25 ALIGN=MIDDLE SRC="cc_unlhd.gif"> }}
|
||||
{< IMG ALT="unlhd" BORDER=0 WIDTH=11 HEIGHT=25 ALIGN=MIDDLE SRC="cc_unlhd.gif"> }}
|
||||
\newcommand{\unrhd}{\lcRawHtml%
|
||||
{ <IMG BORDER=0 WIDTH=11 HEIGHT=25 ALIGN=MIDDLE SRC="cc_unrhd.gif"> }}
|
||||
{< IMG ALT="unrhd" BORDER=0 WIDTH=11 HEIGHT=25 ALIGN=MIDDLE SRC="cc_unrhd.gif"> }}
|
||||
\newcommand{\oplus}{\lcRawHtml{ <span class="sym">⊕</span> }}
|
||||
\newcommand{\ominus}{\lcRawHtml%
|
||||
{ <IMG BORDER=0 WIDTH=11 HEIGHT=23 ALIGN=MIDDLE SRC="cc_ominus.gif"> }}
|
||||
{< IMG ALT="ominus" BORDER=0 WIDTH=11 HEIGHT=23 ALIGN=MIDDLE SRC="cc_ominus.gif"> }}
|
||||
\newcommand{\otimes}{\lcRawHtml%
|
||||
{ <IMG BORDER=0 WIDTH=11 HEIGHT=23 ALIGN=MIDDLE SRC="cc_otimes.gif"> }}
|
||||
{< IMG ALT="otimes" BORDER=0 WIDTH=11 HEIGHT=23 ALIGN=MIDDLE SRC="cc_otimes.gif"> }}
|
||||
\newcommand{\oslash}{\lcRawHtml%
|
||||
{ <IMG BORDER=0 WIDTH=11 HEIGHT=23 ALIGN=MIDDLE SRC="cc_oslash.gif"> }}
|
||||
{< IMG ALT="oslash" BORDER=0 WIDTH=11 HEIGHT=23 ALIGN=MIDDLE SRC="cc_oslash.gif"> }}
|
||||
\newcommand{\odot}{\lcRawHtml%
|
||||
{ <IMG BORDER=0 WIDTH=11 HEIGHT=23 ALIGN=MIDDLE SRC="cc_odot.gif"> }}
|
||||
{< IMG ALT="odot" BORDER=0 WIDTH=11 HEIGHT=23 ALIGN=MIDDLE SRC="cc_odot.gif"> }}
|
||||
\newcommand{\bigcirc}{\lcRawHtml%
|
||||
{ <IMG BORDER=0 WIDTH=15 HEIGHT=27 ALIGN=MIDDLE SRC="cc_bigcirc.gif"> }}
|
||||
{< IMG ALT="bigcirc" BORDER=0 WIDTH=15 HEIGHT=27 ALIGN=MIDDLE SRC="cc_bigcirc.gif"> }}
|
||||
\newcommand{\dagger}{\lcRawHtml%
|
||||
{ <IMG BORDER=0 WIDTH=5 HEIGHT=27 ALIGN=MIDDLE SRC="cc_dagger.gif"> }}
|
||||
{< IMG ALT="dagger" BORDER=0 WIDTH=5 HEIGHT=27 ALIGN=MIDDLE SRC="cc_dagger.gif"> }}
|
||||
\newcommand{\ddagger}{\lcRawHtml%
|
||||
{ <IMG BORDER=0 WIDTH=5 HEIGHT=27 ALIGN=MIDDLE SRC="cc_ddagger.gif"> }}
|
||||
{< IMG ALT="ddagger" BORDER=0 WIDTH=5 HEIGHT=27 ALIGN=MIDDLE SRC="cc_ddagger.gif"> }}
|
||||
\newcommand{\amalg}{\lcRawHtml%
|
||||
{ <IMG BORDER=0 WIDTH=13 HEIGHT=12 ALIGN=BOTTOM SRC="cc_amalg.gif"> }}
|
||||
{< IMG ALT="amalg" BORDER=0 WIDTH=13 HEIGHT=12 ALIGN=BOTTOM SRC="cc_amalg.gif"> }}
|
||||
|
||||
% +--------------------------------------------------------------------------
|
||||
% | * Relation symbols following Table 3.5 page 43 in Lamport.
|
||||
|
|
@ -695,130 +695,130 @@
|
|||
|
||||
\newcommand{\leq}{\lcRawHtml{ <span class="sym">≤</span> }}
|
||||
\newcommand{\prec}{\lcRawHtml%
|
||||
{ <IMG BORDER=0 WIDTH=11 HEIGHT=21 ALIGN=MIDDLE SRC="cc_prec.gif"> }}
|
||||
{< IMG ALT="prec" BORDER=0 WIDTH=11 HEIGHT=21 ALIGN=MIDDLE SRC="cc_prec.gif"> }}
|
||||
\newcommand{\preceq}{\lcRawHtml%
|
||||
{ <IMG BORDER=0 WIDTH=11 HEIGHT=25 ALIGN=MIDDLE SRC="cc_preceq.gif"> }}
|
||||
{< IMG ALT="preceq" BORDER=0 WIDTH=11 HEIGHT=25 ALIGN=MIDDLE SRC="cc_preceq.gif"> }}
|
||||
\newcommand{\ll}{\lcRawHtml%
|
||||
{ <IMG BORDER=0 WIDTH=15 HEIGHT=25 ALIGN=MIDDLE SRC="cc_ll.gif"> }}
|
||||
{< IMG ALT="ll" BORDER=0 WIDTH=15 HEIGHT=25 ALIGN=MIDDLE SRC="cc_ll.gif"> }}
|
||||
\newcommand{\subset}{\lcRawHtml{ <span class="sym">⊂</span> }}
|
||||
\newcommand{\subseteq}{\lcRawHtml{ <span class="sym">⊆</span> }}
|
||||
\newcommand{\sqsubset}{\lcRawHtml%
|
||||
{ <IMG BORDER=0 WIDTH=12 HEIGHT=21 ALIGN=MIDDLE SRC="cc_sqsubset.gif"> }}
|
||||
{< IMG ALT="sqsubset" BORDER=0 WIDTH=12 HEIGHT=21 ALIGN=MIDDLE SRC="cc_sqsubset.gif"> }}
|
||||
\newcommand{\sqsubseteq}{\lcRawHtml%
|
||||
{ <IMG BORDER=0 WIDTH=12 HEIGHT=25 ALIGN=MIDDLE SRC="cc_sqsubseteq.gif"> }}
|
||||
{< IMG ALT="sqsubseteq" BORDER=0 WIDTH=12 HEIGHT=25 ALIGN=MIDDLE SRC="cc_sqsubseteq.gif"> }}
|
||||
\newcommand{\in}{\lcRawHtml{ <span class="sym">∈</span> }}
|
||||
\newcommand{\vdash}{\lcRawHtml%
|
||||
{ <IMG BORDER=0 WIDTH=8 HEIGHT=13 ALIGN=BOTTOM SRC="cc_vdash.gif"> }}
|
||||
{< IMG ALT="vdash" BORDER=0 WIDTH=8 HEIGHT=13 ALIGN=BOTTOM SRC="cc_vdash.gif"> }}
|
||||
\newcommand{\geq}{\lcRawHtml{ <span class="sym">≥</span> }}
|
||||
\newcommand{\succ}{\lcRawHtml%
|
||||
{ <IMG BORDER=0 WIDTH=11 HEIGHT=21 ALIGN=MIDDLE SRC="cc_succ.gif"> }}
|
||||
{< IMG ALT="succ" BORDER=0 WIDTH=11 HEIGHT=21 ALIGN=MIDDLE SRC="cc_succ.gif"> }}
|
||||
\newcommand{\succeq}{\lcRawHtml%
|
||||
{ <IMG BORDER=0 WIDTH=11 HEIGHT=25 ALIGN=MIDDLE SRC="cc_succeq.gif"> }}
|
||||
{< IMG ALT="succeq" BORDER=0 WIDTH=11 HEIGHT=25 ALIGN=MIDDLE SRC="cc_succeq.gif"> }}
|
||||
\newcommand{\gg}{\lcRawHtml%
|
||||
{ <IMG BORDER=0 WIDTH=15 HEIGHT=25 ALIGN=MIDDLE SRC="cc_gg.gif"> }}
|
||||
{< IMG ALT="gg" BORDER=0 WIDTH=15 HEIGHT=25 ALIGN=MIDDLE SRC="cc_gg.gif"> }}
|
||||
\newcommand{\supset}{\lcRawHtml%
|
||||
{ <IMG BORDER=0 WIDTH=11 HEIGHT=21 ALIGN=MIDDLE SRC="cc_supset.gif"> }}
|
||||
{< IMG ALT="supset" BORDER=0 WIDTH=11 HEIGHT=21 ALIGN=MIDDLE SRC="cc_supset.gif"> }}
|
||||
\newcommand{\supseteq}{\lcRawHtml%
|
||||
{ <IMG BORDER=0 WIDTH=11 HEIGHT=25 ALIGN=MIDDLE SRC="cc_supseteq.gif"> }}
|
||||
{< IMG ALT="supseteq" BORDER=0 WIDTH=11 HEIGHT=25 ALIGN=MIDDLE SRC="cc_supseteq.gif"> }}
|
||||
\newcommand{\sqsupset}{\lcRawHtml%
|
||||
{ <IMG BORDER=0 WIDTH=12 HEIGHT=21 ALIGN=MIDDLE SRC="cc_sqsupset.gif"> }}
|
||||
{< IMG ALT="sqsupset" BORDER=0 WIDTH=12 HEIGHT=21 ALIGN=MIDDLE SRC="cc_sqsupset.gif"> }}
|
||||
\newcommand{\sqsupseteq}{\lcRawHtml%
|
||||
{ <IMG BORDER=0 WIDTH=12 HEIGHT=25 ALIGN=MIDDLE SRC="cc_sqsupseteq.gif"> }}
|
||||
{< IMG ALT="sqsupseteq" BORDER=0 WIDTH=12 HEIGHT=25 ALIGN=MIDDLE SRC="cc_sqsupseteq.gif"> }}
|
||||
\newcommand{\ni}{\lcRawHtml%
|
||||
{ <IMG BORDER=0 WIDTH=9 HEIGHT=21 ALIGN=MIDDLE SRC="cc_ni.gif"> }}
|
||||
{< IMG ALT="ni" BORDER=0 WIDTH=9 HEIGHT=21 ALIGN=MIDDLE SRC="cc_ni.gif"> }}
|
||||
\newcommand{\dashv}{\lcRawHtml%
|
||||
{ <IMG BORDER=0 WIDTH=8 HEIGHT=13 ALIGN=BOTTOM SRC="cc_dashv.gif"> }}
|
||||
{< IMG ALT="dashv" BORDER=0 WIDTH=8 HEIGHT=13 ALIGN=BOTTOM SRC="cc_dashv.gif"> }}
|
||||
\newcommand{\equiv}{\lcRawHtml{ <span class="sym">≡</span> }}
|
||||
\newcommand{\sim}{\lcRawHtml{ <span class="sym">∼</span> }}
|
||||
\newcommand{\simeq}{\lcRawHtml%
|
||||
{ <IMG BORDER=0 WIDTH=11 HEIGHT=8 ALIGN=BOTTOM SRC="cc_simeq.gif"> }}
|
||||
{< IMG ALT="simeq" BORDER=0 WIDTH=11 HEIGHT=8 ALIGN=BOTTOM SRC="cc_simeq.gif"> }}
|
||||
\newcommand{\asymp}{\lcRawHtml%
|
||||
{ <IMG BORDER=0 WIDTH=11 HEIGHT=9 ALIGN=BOTTOM SRC="cc_asymp.gif"> }}
|
||||
{< IMG ALT="asymp" BORDER=0 WIDTH=11 HEIGHT=9 ALIGN=BOTTOM SRC="cc_asymp.gif"> }}
|
||||
\newcommand{\approx}{\lcRawHtml%
|
||||
{ <IMG BORDER=0 WIDTH=11 HEIGHT=10 ALIGN=BOTTOM SRC="cc_approx.gif"> }}
|
||||
{< IMG ALT="approx" BORDER=0 WIDTH=11 HEIGHT=10 ALIGN=BOTTOM SRC="cc_approx.gif"> }}
|
||||
\newcommand{\cong}{\lcRawHtml%
|
||||
{ <IMG BORDER=0 WIDTH=11 HEIGHT=21 ALIGN=MIDDLE SRC="cc_cong.gif"> }}
|
||||
{< IMG ALT="cong" BORDER=0 WIDTH=11 HEIGHT=21 ALIGN=MIDDLE SRC="cc_cong.gif"> }}
|
||||
\newcommand{\neq}{\lcRawHtml{ <span class="sym">≠</span> }}
|
||||
\newcommand{\ne}{\lcRawHtml{ <span class="sym">≠</span> }}
|
||||
\newcommand{\doteq}{\lcRawHtml%
|
||||
{ <IMG BORDER=0 WIDTH=11 HEIGHT=9 ALIGN=BOTTOM SRC="cc_doteq.gif"> }}
|
||||
{< IMG ALT="doteq" BORDER=0 WIDTH=11 HEIGHT=9 ALIGN=BOTTOM SRC="cc_doteq.gif"> }}
|
||||
\newcommand{\notin}{\lcRawHtml%
|
||||
{ <IMG BORDER=0 WIDTH=9 HEIGHT=37 ALIGN=MIDDLE SRC="cc_notin.gif"> }}
|
||||
{< IMG ALT="notin" BORDER=0 WIDTH=9 HEIGHT=37 ALIGN=MIDDLE SRC="cc_notin.gif"> }}
|
||||
\newcommand{\models}{\lcRawHtml%
|
||||
{ <IMG BORDER=0 WIDTH=12 HEIGHT=29 ALIGN=MIDDLE SRC="cc_models.gif"> }}
|
||||
{< IMG ALT="models" BORDER=0 WIDTH=12 HEIGHT=29 ALIGN=MIDDLE SRC="cc_models.gif"> }}
|
||||
\newcommand{\perp}{\lcRawHtml%
|
||||
{ <IMG BORDER=0 WIDTH=11 HEIGHT=11 ALIGN=BOTTOM SRC="cc_perp.gif"> }}
|
||||
{< IMG ALT="perp" BORDER=0 WIDTH=11 HEIGHT=11 ALIGN=BOTTOM SRC="cc_perp.gif"> }}
|
||||
\newcommand{\mid}{\lcRawHtml{ <span class="sym">|</span> }}
|
||||
\newcommand{\parallel}{\lcRawHtml{<span class="sym">||</span>}}
|
||||
\newcommand{\bowtie}{\lcRawHtml%
|
||||
{ <IMG BORDER=0 WIDTH=12 HEIGHT=7 ALIGN=BOTTOM SRC="cc_bowtie.gif"> }}
|
||||
{< IMG ALT="bowtie" BORDER=0 WIDTH=12 HEIGHT=7 ALIGN=BOTTOM SRC="cc_bowtie.gif"> }}
|
||||
\newcommand{\Join}{\lcRawHtml%
|
||||
{ <IMG BORDER=0 WIDTH=10 HEIGHT=11 ALIGN=BOTTOM SRC="cc_Join.gif"> }}
|
||||
{< IMG ALT="Join" BORDER=0 WIDTH=10 HEIGHT=11 ALIGN=BOTTOM SRC="cc_Join.gif"> }}
|
||||
\newcommand{\smile}{\lcRawHtml%
|
||||
{ <IMG BORDER=0 WIDTH=15 HEIGHT=4 ALIGN=BOTTOM SRC="cc_smile.gif"> }}
|
||||
{< IMG ALT="smile" BORDER=0 WIDTH=15 HEIGHT=4 ALIGN=BOTTOM SRC="cc_smile.gif"> }}
|
||||
\newcommand{\frown}{\lcRawHtml%
|
||||
{ <IMG BORDER=0 WIDTH=15 HEIGHT=4 ALIGN=BOTTOM SRC="cc_frown.gif"> }}
|
||||
{< IMG ALT="frown" BORDER=0 WIDTH=15 HEIGHT=4 ALIGN=BOTTOM SRC="cc_frown.gif"> }}
|
||||
\newcommand{\propto}{\lcRawHtml%
|
||||
{ <IMG BORDER=0 WIDTH=12 HEIGHT=8 ALIGN=BOTTOM SRC="cc_propto.gif"> }}
|
||||
{< IMG ALT="propto" BORDER=0 WIDTH=12 HEIGHT=8 ALIGN=BOTTOM SRC="cc_propto.gif"> }}
|
||||
|
||||
% +--------------------------------------------------------------------------
|
||||
% | * Arrow symbols following Table 3.6 page 43 in Lamport.
|
||||
% +--------------------------------------------------------------------------
|
||||
\newcommand{\leftarrow}{\lcRawHtml%
|
||||
{ <IMG BORDER=0 WIDTH=15 HEIGHT=9 ALIGN=BOTTOM SRC="cc_lowercase_leftarrow.gif"> }}
|
||||
{< IMG ALT="leftarrow" BORDER=0 WIDTH=15 HEIGHT=9 ALIGN=BOTTOM SRC="cc_lowercase_leftarrow.gif"> }}
|
||||
\newcommand{\Leftarrow}{\lcRawHtml{ <span class="sym">⇐</span> }}
|
||||
\newcommand{\rightarrow}{\lcRawHtml{ <span class="sym">→</span> }}
|
||||
\newcommand{\Rightarrow}{\lcRawHtml{ <span class="sym">⇒</span> }}
|
||||
\newcommand{\leftrightarrow}{\lcRawHtml%
|
||||
{ <IMG BORDER=0 WIDTH=15 HEIGHT=9 ALIGN=BOTTOM SRC="cc_lowercase_leftrightarrow.gif"> }}
|
||||
{< IMG ALT="leftrightarrow" BORDER=0 WIDTH=15 HEIGHT=9 ALIGN=BOTTOM SRC="cc_lowercase_leftrightarrow.gif"> }}
|
||||
\newcommand{\Leftrightarrow}{\lcRawHtml{ <span class="sym">⇔</span> }}
|
||||
\newcommand{\mapsto}{\lcRawHtml{ <span class="sym">↦</span> }}
|
||||
\newcommand{\hookleftarrow}{\lcRawHtml%
|
||||
{ <IMG BORDER=0 WIDTH=17 HEIGHT=9 ALIGN=BOTTOM SRC="cc_hookleftarrow.gif"> }}
|
||||
{< IMG ALT="hookleftarrow" BORDER=0 WIDTH=17 HEIGHT=9 ALIGN=BOTTOM SRC="cc_hookleftarrow.gif"> }}
|
||||
\newcommand{\leftharpoonup}{\lcRawHtml%
|
||||
{ <IMG BORDER=0 WIDTH=15 HEIGHT=5 ALIGN=BOTTOM SRC="cc_leftharpoonup.gif"> }}
|
||||
{< IMG ALT="leftharpoonup" BORDER=0 WIDTH=15 HEIGHT=5 ALIGN=BOTTOM SRC="cc_leftharpoonup.gif"> }}
|
||||
\newcommand{\leftharpoondown}{\lcRawHtml%
|
||||
{ <IMG BORDER=0 WIDTH=15 HEIGHT=5 ALIGN=BOTTOM SRC="cc_leftharpoondown.gif"> }}
|
||||
{< IMG ALT="leftharpoondown" BORDER=0 WIDTH=15 HEIGHT=5 ALIGN=BOTTOM SRC="cc_leftharpoondown.gif"> }}
|
||||
\newcommand{\rightleftharpoons}{\lcRawHtml%
|
||||
{ <IMG BORDER=0 WIDTH=15 HEIGHT=24 ALIGN=MIDDLE SRC="cc_rightleftharpoons.gif"> }}
|
||||
{< IMG ALT="rightleftharpoons" BORDER=0 WIDTH=15 HEIGHT=24 ALIGN=MIDDLE SRC="cc_rightleftharpoons.gif"> }}
|
||||
\newcommand{\longleftarrow}{\lcRawHtml{ <span class="sym">←</span> }}
|
||||
\newcommand{\Longleftarrow}{\lcRawHtml%
|
||||
{ <IMG BORDER=0 WIDTH=25 HEIGHT=11 ALIGN=BOTTOM SRC="cc_uppercase_Longleftarrow.gif"> }}
|
||||
{< IMG ALT="Longleftarrow" BORDER=0 WIDTH=25 HEIGHT=11 ALIGN=BOTTOM SRC="cc_uppercase_Longleftarrow.gif"> }}
|
||||
\newcommand{\longrightarrow}{\lcRawHtml{ <span class="sym">→</span> }}
|
||||
\newcommand{\Longrightarrow}{\lcRawHtml{ <span class="sym">⇒</span> }}
|
||||
\newcommand{\longleftrightarrow}{\lcRawHtml%
|
||||
{ <IMG BORDER=0 WIDTH=30 HEIGHT=9 ALIGN=BOTTOM SRC="cc_lowercase_longleftrightarrow.gif"> }}
|
||||
{< IMG ALT="longleftrightarrow" BORDER=0 WIDTH=30 HEIGHT=9 ALIGN=BOTTOM SRC="cc_lowercase_longleftrightarrow.gif"> }}
|
||||
\newcommand{\Longleftrightarrow}{\lcRawHtml{ <span class="sym">⇔</span> }}
|
||||
\newcommand{\longmapsto}{\lcRawHtml%
|
||||
{ <IMG BORDER=0 WIDTH=26 HEIGHT=9 ALIGN=BOTTOM SRC="cc_longmapsto.gif"> }}
|
||||
{< IMG ALT="longmapsto" BORDER=0 WIDTH=26 HEIGHT=9 ALIGN=BOTTOM SRC="cc_longmapsto.gif"> }}
|
||||
\newcommand{\hookrightarrow}{\lcRawHtml%
|
||||
{ <IMG BORDER=0 WIDTH=17 HEIGHT=9 ALIGN=BOTTOM SRC="cc_hookrightarrow.gif"> }}
|
||||
{< IMG ALT="hookrightarrow" BORDER=0 WIDTH=17 HEIGHT=9 ALIGN=BOTTOM SRC="cc_hookrightarrow.gif"> }}
|
||||
\newcommand{\rightharpoonup}{\lcRawHtml%
|
||||
{ <IMG BORDER=0 WIDTH=15 HEIGHT=5 ALIGN=BOTTOM SRC="cc_rightharpoonup.gif"> }}
|
||||
{< IMG ALT="rightharpoonup" BORDER=0 WIDTH=15 HEIGHT=5 ALIGN=BOTTOM SRC="cc_rightharpoonup.gif"> }}
|
||||
\newcommand{\rightharpoondown}{\lcRawHtml%
|
||||
{ <IMG BORDER=0 WIDTH=15 HEIGHT=5 ALIGN=BOTTOM SRC="cc_rightharpoondown.gif"> }}
|
||||
{< IMG ALT="rightharpoondown" BORDER=0 WIDTH=15 HEIGHT=5 ALIGN=BOTTOM SRC="cc_rightharpoondown.gif"> }}
|
||||
\newcommand{\leadsto}{\lcRawHtml%
|
||||
{ <IMG BORDER=0 WIDTH=16 HEIGHT=7 ALIGN=BOTTOM SRC="cc_leadsto.gif"> }}
|
||||
{< IMG ALT="leadsto" BORDER=0 WIDTH=16 HEIGHT=7 ALIGN=BOTTOM SRC="cc_leadsto.gif"> }}
|
||||
\newcommand{\uparrow}{\lcRawHtml%
|
||||
{ <IMG BORDER=0 WIDTH=7 HEIGHT=27 ALIGN=MIDDLE SRC="cc_lowercase_uparrow.gif"> }}
|
||||
{< IMG ALT="uparrow" BORDER=0 WIDTH=7 HEIGHT=27 ALIGN=MIDDLE SRC="cc_lowercase_uparrow.gif"> }}
|
||||
\newcommand{\Uparrow}{\lcRawHtml%
|
||||
{ <IMG BORDER=0 WIDTH=10 HEIGHT=25 ALIGN=MIDDLE SRC="cc_uppercase_Uparrow.gif"> }}
|
||||
{< IMG ALT="Uparrow" BORDER=0 WIDTH=10 HEIGHT=25 ALIGN=MIDDLE SRC="cc_uppercase_Uparrow.gif"> }}
|
||||
\newcommand{\downarrow}{\lcRawHtml%
|
||||
{ <IMG BORDER=0 WIDTH=7 HEIGHT=27 ALIGN=MIDDLE SRC="cc_lowercase_downarrow.gif"> }}
|
||||
{< IMG ALT="downarrow" BORDER=0 WIDTH=7 HEIGHT=27 ALIGN=MIDDLE SRC="cc_lowercase_downarrow.gif"> }}
|
||||
\newcommand{\Downarrow}{\lcRawHtml%
|
||||
{ <IMG BORDER=0 WIDTH=10 HEIGHT=25 ALIGN=MIDDLE SRC="cc_uppercase_Downarrow.gif"> }}
|
||||
{< IMG ALT="Downarrow" BORDER=0 WIDTH=10 HEIGHT=25 ALIGN=MIDDLE SRC="cc_uppercase_Downarrow.gif"> }}
|
||||
\newcommand{\updownarrow}{\lcRawHtml%
|
||||
{ <IMG BORDER=0 WIDTH=7 HEIGHT=29 ALIGN=MIDDLE SRC="cc_lowercase_updownarrow.gif"> }}
|
||||
{< IMG ALT="updownarrow" BORDER=0 WIDTH=7 HEIGHT=29 ALIGN=MIDDLE SRC="cc_lowercase_updownarrow.gif"> }}
|
||||
\newcommand{\Updownarrow}{\lcRawHtml%
|
||||
{ <IMG BORDER=0 WIDTH=10 HEIGHT=26 ALIGN=MIDDLE SRC="cc_uppercase_Updownarrow.gif"> }}
|
||||
{< IMG ALT="Updownarrow" BORDER=0 WIDTH=10 HEIGHT=26 ALIGN=MIDDLE SRC="cc_uppercase_Updownarrow.gif"> }}
|
||||
\newcommand{\nearrow}{\lcRawHtml%
|
||||
{ <IMG BORDER=0 WIDTH=16 HEIGHT=29 ALIGN=MIDDLE SRC="cc_nearrow.gif"> }}
|
||||
{< IMG ALT="nearrow" BORDER=0 WIDTH=16 HEIGHT=29 ALIGN=MIDDLE SRC="cc_nearrow.gif"> }}
|
||||
\newcommand{\searrow}{\lcRawHtml%
|
||||
{ <IMG BORDER=0 WIDTH=16 HEIGHT=29 ALIGN=MIDDLE SRC="cc_searrow.gif"> }}
|
||||
{< IMG ALT="searrow" BORDER=0 WIDTH=16 HEIGHT=29 ALIGN=MIDDLE SRC="cc_searrow.gif"> }}
|
||||
\newcommand{\swarrow}{\lcRawHtml%
|
||||
{ <IMG BORDER=0 WIDTH=16 HEIGHT=29 ALIGN=MIDDLE SRC="cc_swarrow.gif"> }}
|
||||
{< IMG ALT="swarrow" BORDER=0 WIDTH=16 HEIGHT=29 ALIGN=MIDDLE SRC="cc_swarrow.gif"> }}
|
||||
\newcommand{\nwarrow}{\lcRawHtml%
|
||||
{ <IMG BORDER=0 WIDTH=16 HEIGHT=29 ALIGN=MIDDLE SRC="cc_nwarrow.gif"> }}
|
||||
{< IMG ALT="nwarrow" BORDER=0 WIDTH=16 HEIGHT=29 ALIGN=MIDDLE SRC="cc_nwarrow.gif"> }}
|
||||
|
||||
% +--------------------------------------------------------------------------
|
||||
% | * Miscellaneous symbols following Table 3.7 page 43 in Lamport.
|
||||
|
|
@ -830,55 +830,55 @@
|
|||
\newcommand{\slash}{\verb+/+}
|
||||
|
||||
\newcommand{\aleph}{\lcRawHtml%
|
||||
{ <IMG BORDER=0 WIDTH=8 HEIGHT=13 ALIGN=BOTTOM SRC="cc_aleph.gif"> }}
|
||||
{< IMG ALT="aleph" BORDER=0 WIDTH=8 HEIGHT=13 ALIGN=BOTTOM SRC="cc_aleph.gif"> }}
|
||||
\newcommand{\hbar}{\lcRawHtml%
|
||||
{ <IMG BORDER=0 WIDTH=8 HEIGHT=13 ALIGN=BOTTOM SRC="cc_hbar.gif"> }}
|
||||
{< IMG ALT="hbar" BORDER=0 WIDTH=8 HEIGHT=13 ALIGN=BOTTOM SRC="cc_hbar.gif"> }}
|
||||
\newcommand{\imath}{\lcRawHtml%
|
||||
{ <IMG BORDER=0 WIDTH=4 HEIGHT=8 ALIGN=BOTTOM SRC="cc_imath.gif"> }}
|
||||
{< IMG ALT="imath" BORDER=0 WIDTH=4 HEIGHT=8 ALIGN=BOTTOM SRC="cc_imath.gif"> }}
|
||||
\newcommand{\jmath}{\lcRawHtml%
|
||||
{ <IMG BORDER=0 WIDTH=6 HEIGHT=17 ALIGN=MIDDLE SRC="cc_jmath.gif"> }}
|
||||
{< IMG ALT="jmath" BORDER=0 WIDTH=6 HEIGHT=17 ALIGN=MIDDLE SRC="cc_jmath.gif"> }}
|
||||
\newcommand{\ell}{\lcRawHtml{ℓ}}
|
||||
\newcommand{\wp}{\lcRawHtml%
|
||||
{ <IMG BORDER=0 WIDTH=9 HEIGHT=17 ALIGN=MIDDLE SRC="cc_wp.gif"> }}
|
||||
{< IMG ALT="wp" BORDER=0 WIDTH=9 HEIGHT=17 ALIGN=MIDDLE SRC="cc_wp.gif"> }}
|
||||
\newcommand{\Re}{\lcRawHtml%
|
||||
{ <IMG BORDER=0 WIDTH=11 HEIGHT=13 ALIGN=BOTTOM SRC="cc_Re.gif"> }}
|
||||
{< IMG ALT="Re" BORDER=0 WIDTH=11 HEIGHT=13 ALIGN=BOTTOM SRC="cc_Re.gif"> }}
|
||||
\newcommand{\Im}{\lcRawHtml%
|
||||
{ <IMG BORDER=0 WIDTH=11 HEIGHT=13 ALIGN=BOTTOM SRC="cc_Im.gif"> }}
|
||||
{< IMG ALT="Im" BORDER=0 WIDTH=11 HEIGHT=13 ALIGN=BOTTOM SRC="cc_Im.gif"> }}
|
||||
\newcommand{\mho}{\lcRawHtml%
|
||||
{ <IMG BORDER=0 WIDTH=10 HEIGHT=12 ALIGN=BOTTOM SRC="cc_mho.gif"> }}
|
||||
{< IMG ALT="mho" BORDER=0 WIDTH=10 HEIGHT=12 ALIGN=BOTTOM SRC="cc_mho.gif"> }}
|
||||
\newcommand{\emptyset}{\lcRawHtml{∅}}
|
||||
\newcommand{\nabla}{\lcRawHtml{<span class="sym">∇</span>}}
|
||||
\newcommand{\surd}{\lcRawHtml%
|
||||
{ <IMG BORDER=0 WIDTH=13 HEIGHT=27 ALIGN=MIDDLE SRC="cc_surd.gif"> }}
|
||||
{< IMG ALT="surd" BORDER=0 WIDTH=13 HEIGHT=27 ALIGN=MIDDLE SRC="cc_surd.gif"> }}
|
||||
\newcommand{\top}{\lcRawHtml%
|
||||
{ <IMG BORDER=0 WIDTH=11 HEIGHT=11 ALIGN=BOTTOM SRC="cc_top.gif"> }}
|
||||
{< IMG ALT="top" BORDER=0 WIDTH=11 HEIGHT=11 ALIGN=BOTTOM SRC="cc_top.gif"> }}
|
||||
\newcommand{\bot}{\lcRawHtml%
|
||||
{ <IMG BORDER=0 WIDTH=11 HEIGHT=11 ALIGN=BOTTOM SRC="cc_bot.gif"> }}
|
||||
{< IMG ALT="bot" BORDER=0 WIDTH=11 HEIGHT=11 ALIGN=BOTTOM SRC="cc_bot.gif"> }}
|
||||
\newcommand{\angle}{\lcRawHtml{ <span class="sym">∠</span>}}
|
||||
\newcommand{\forall}{\lcRawHtml{ <span class="sym">∀</span> }}
|
||||
\newcommand{\exists}{\lcRawHtml{ <span class="sym">∃</span> }}
|
||||
\newcommand{\flat}{\lcRawHtml%
|
||||
{ <IMG BORDER=0 WIDTH=4 HEIGHT=14 ALIGN=BOTTOM SRC="cc_flat.gif"> }}
|
||||
{< IMG ALT="flat" BORDER=0 WIDTH=4 HEIGHT=14 ALIGN=BOTTOM SRC="cc_flat.gif"> }}
|
||||
\newcommand{\natural}{\lcRawHtml%
|
||||
{ <IMG BORDER=0 WIDTH=4 HEIGHT=27 ALIGN=MIDDLE SRC="cc_natural.gif"> }}
|
||||
{< IMG ALT="natural" BORDER=0 WIDTH=4 HEIGHT=27 ALIGN=MIDDLE SRC="cc_natural.gif"> }}
|
||||
\newcommand{\sharp}{\lcRawHtml%
|
||||
{ <IMG BORDER=0 WIDTH=4 HEIGHT=27 ALIGN=MIDDLE SRC="cc_sharp.gif"> }}
|
||||
{< IMG ALT="sharp" BORDER=0 WIDTH=4 HEIGHT=27 ALIGN=MIDDLE SRC="cc_sharp.gif"> }}
|
||||
\newcommand{\partial}{\lcRawHtml{∂}}
|
||||
\newcommand{\infty}{\lcRawHtml{∞}}
|
||||
\newcommand{\Box}{\lcRawHtml%
|
||||
{ <IMG BORDER=0 WIDTH=10 HEIGHT=10 ALIGN=BOTTOM SRC="cc_Box.gif"> }}
|
||||
{< IMG ALT="Box" BORDER=0 WIDTH=10 HEIGHT=10 ALIGN=BOTTOM SRC="cc_Box.gif"> }}
|
||||
\newcommand{\Diamond}{\lcRawHtml%
|
||||
{ <IMG BORDER=0 WIDTH=13 HEIGHT=12 ALIGN=BOTTOM SRC="cc_uppercase_Diamond.gif"> }}
|
||||
{< IMG ALT="Diamond" BORDER=0 WIDTH=13 HEIGHT=12 ALIGN=BOTTOM SRC="cc_uppercase_Diamond.gif"> }}
|
||||
\newcommand{\triangle}{\lcRawHtml%
|
||||
{ <IMG BORDER=0 WIDTH=13 HEIGHT=21 ALIGN=MIDDLE SRC="cc_triangle.gif"> }}
|
||||
{< IMG ALT="triangle" BORDER=0 WIDTH=13 HEIGHT=21 ALIGN=MIDDLE SRC="cc_triangle.gif"> }}
|
||||
\newcommand{\clubsuit}{\lcRawHtml%
|
||||
{ <IMG BORDER=0 WIDTH=13 HEIGHT=26 ALIGN=MIDDLE SRC="cc_clubsuit.gif"> }}
|
||||
{< IMG ALT="clubsuit" BORDER=0 WIDTH=13 HEIGHT=26 ALIGN=MIDDLE SRC="cc_clubsuit.gif"> }}
|
||||
\newcommand{\diamondsuit}{\lcRawHtml%
|
||||
{ <IMG BORDER=0 WIDTH=11 HEIGHT=26 ALIGN=MIDDLE SRC="cc_diamondsuit.gif"> }}
|
||||
{< IMG ALT="diamondsuit" BORDER=0 WIDTH=11 HEIGHT=26 ALIGN=MIDDLE SRC="cc_diamondsuit.gif"> }}
|
||||
\newcommand{\heartsuit}{\lcRawHtml%
|
||||
{ <IMG BORDER=0 WIDTH=11 HEIGHT=22 ALIGN=MIDDLE SRC="cc_heartsuit.gif"> }}
|
||||
{< IMG ALT="heartsuit" BORDER=0 WIDTH=11 HEIGHT=22 ALIGN=MIDDLE SRC="cc_heartsuit.gif"> }}
|
||||
\newcommand{\spadesuit}{\lcRawHtml%
|
||||
{ <IMG BORDER=0 WIDTH=11 HEIGHT=26 ALIGN=MIDDLE SRC="cc_spadesuit.gif"> }}
|
||||
{< IMG ALT="spadesuit" BORDER=0 WIDTH=11 HEIGHT=26 ALIGN=MIDDLE SRC="cc_spadesuit.gif"> }}
|
||||
|
||||
|
||||
% +--------------------------------------------------------------------------
|
||||
|
|
@ -891,14 +891,14 @@
|
|||
{<span class="big_sym">∏</span>}}%
|
||||
{\lcRawHtml{<span class="sym">∏</span>}}}
|
||||
\newcommand{\coprod}{\lciIf{\lciMathModeDisplay}{\lcRawHtml%
|
||||
{ <IMG BORDER=0 WIDTH=16 HEIGHT=29 ALIGN=MIDDLE SRC="cc_big_coprod.gif"> }}%
|
||||
{\lcRawHtml{ <IMG BORDER=0 WIDTH=11 HEIGHT=24 ALIGN=MIDDLE SRC="cc_coprod.gif"> }}}
|
||||
{ <IMG ALT="coprod" BORDER=0 WIDTH=16 HEIGHT=29 ALIGN=MIDDLE SRC="cc_big_coprod.gif"> }}%
|
||||
{\lcRawHtml{ <IMG ALT="coprod" BORDER=0 WIDTH=11 HEIGHT=24 ALIGN=MIDDLE SRC="cc_coprod.gif"> }}}
|
||||
\newcommand{\int}{\lciIf{\lciMathModeDisplay}{\lcRawHtml%
|
||||
{<span class="big_sym">∫</span>}}%
|
||||
{\lcRawHtml{<span class="sym">∫</span>}}}
|
||||
\newcommand{\oint}{\lciIf{\lciMathModeDisplay}{\lcRawHtml%
|
||||
{ <IMG BORDER=0 WIDTH=12 HEIGHT=44 ALIGN=MIDDLE SRC="cc_big_oint.gif"> }}%
|
||||
{\lcRawHtml{ <IMG BORDER=0 WIDTH=7 HEIGHT=27 ALIGN=MIDDLE SRC="cc_oint.gif"> }}}
|
||||
{ <IMG ALT="oint" BORDER=0 WIDTH=12 HEIGHT=44 ALIGN=MIDDLE SRC="cc_big_oint.gif"> }}%
|
||||
{\lcRawHtml{ <IMG ALT="oint" BORDER=0 WIDTH=7 HEIGHT=27 ALIGN=MIDDLE SRC="cc_oint.gif"> }}}
|
||||
\newcommand{\bigcap}{\lciIf{\lciMathModeDisplay}{\lcRawHtml%
|
||||
{<span class="big_sym">∩</span>}}%
|
||||
{\lcRawHtml{<span class="big_sym">∩</span>}}}
|
||||
|
|
@ -906,26 +906,26 @@
|
|||
{<span class="big_sym">∪</span>}}%
|
||||
{\lcRawHtml{<span class="big_sym">∪</span>}}}
|
||||
\newcommand{\bigsqcup}{\lciIf{\lciMathModeDisplay}{\lcRawHtml%
|
||||
{ <IMG BORDER=0 WIDTH=14 HEIGHT=29 ALIGN=MIDDLE SRC="cc_big_bigsqcup.gif"> }}%
|
||||
{\lcRawHtml{ <IMG BORDER=0 WIDTH=10 HEIGHT=24 ALIGN=MIDDLE SRC="cc_bigsqcup.gif"> }}}
|
||||
{ <IMG ALT="bigsqcup" BORDER=0 WIDTH=14 HEIGHT=29 ALIGN=MIDDLE SRC="cc_big_bigsqcup.gif"> }}%
|
||||
{\lcRawHtml{ <IMG ALT="bigsqcup" BORDER=0 WIDTH=10 HEIGHT=24 ALIGN=MIDDLE SRC="cc_bigsqcup.gif"> }}}
|
||||
\newcommand{\bigvee}{\lciIf{\lciMathModeDisplay}{\lcRawHtml%
|
||||
{ <IMG BORDER=0 WIDTH=14 HEIGHT=29 ALIGN=MIDDLE SRC="cc_big_bigvee.gif"> }}%
|
||||
{\lcRawHtml{ <IMG BORDER=0 WIDTH=10 HEIGHT=24 ALIGN=MIDDLE SRC="cc_bigvee.gif"> }}}
|
||||
{ <IMG ALT="bigvee" BORDER=0 WIDTH=14 HEIGHT=29 ALIGN=MIDDLE SRC="cc_big_bigvee.gif"> }}%
|
||||
{\lcRawHtml{ <IMG ALT="bigvee" BORDER=0 WIDTH=10 HEIGHT=24 ALIGN=MIDDLE SRC="cc_bigvee.gif"> }}}
|
||||
\newcommand{\bigwedge}{\lciIf{\lciMathModeDisplay}{\lcRawHtml%
|
||||
{ <IMG BORDER=0 WIDTH=14 HEIGHT=29 ALIGN=MIDDLE SRC="cc_big_bigwedge.gif"> }}%
|
||||
{\lcRawHtml{ <IMG BORDER=0 WIDTH=10 HEIGHT=24 ALIGN=MIDDLE SRC="cc_bigwedge.gif"> }}}
|
||||
{ <IMG ALT="bigwedge" BORDER=0 WIDTH=14 HEIGHT=29 ALIGN=MIDDLE SRC="cc_big_bigwedge.gif"> }}%
|
||||
{\lcRawHtml{ <IMG ALT="bigwedge" BORDER=0 WIDTH=10 HEIGHT=24 ALIGN=MIDDLE SRC="cc_bigwedge.gif"> }}}
|
||||
\newcommand{\bigodot}{\lciIf{\lciMathModeDisplay}{\lcRawHtml%
|
||||
{ <IMG BORDER=0 WIDTH=20 HEIGHT=29 ALIGN=MIDDLE SRC="cc_big_bigodot.gif"> }}%
|
||||
{\lcRawHtml{ <IMG BORDER=0 WIDTH=14 HEIGHT=24 ALIGN=MIDDLE SRC="cc_bigodot.gif"> }}}
|
||||
{ <IMG ALT="bigodot" BORDER=0 WIDTH=20 HEIGHT=29 ALIGN=MIDDLE SRC="cc_big_bigodot.gif"> }}%
|
||||
{\lcRawHtml{ <IMG ALT="bigodot" BORDER=0 WIDTH=14 HEIGHT=24 ALIGN=MIDDLE SRC="cc_bigodot.gif"> }}}
|
||||
\newcommand{\bigotimes}{\lciIf{\lciMathModeDisplay}{\lcRawHtml%
|
||||
{ <IMG BORDER=0 WIDTH=20 HEIGHT=29 ALIGN=MIDDLE SRC="cc_big_bigotimes.gif"> }}%
|
||||
{\lcRawHtml{ <IMG BORDER=0 WIDTH=14 HEIGHT=24 ALIGN=MIDDLE SRC="cc_bigotimes.gif"> }}}
|
||||
{ <IMG ALT="bigotimes" BORDER=0 WIDTH=20 HEIGHT=29 ALIGN=MIDDLE SRC="cc_big_bigotimes.gif"> }}%
|
||||
{\lcRawHtml{ <IMG ALT="bigotimes" BORDER=0 WIDTH=14 HEIGHT=24 ALIGN=MIDDLE SRC="cc_bigotimes.gif"> }}}
|
||||
\newcommand{\bigoplus}{\lciIf{\lciMathModeDisplay}{\lcRawHtml%
|
||||
{ <IMG BORDER=0 WIDTH=20 HEIGHT=29 ALIGN=MIDDLE SRC="cc_big_bigoplus.gif"> }}%
|
||||
{\lcRawHtml{ <IMG BORDER=0 WIDTH=14 HEIGHT=24 ALIGN=MIDDLE SRC="cc_bigoplus.gif"> }}}
|
||||
{ <IMG ALT="bigoplus" BORDER=0 WIDTH=20 HEIGHT=29 ALIGN=MIDDLE SRC="cc_big_bigoplus.gif"> }}%
|
||||
{\lcRawHtml{ <IMG ALT="bigoplus" BORDER=0 WIDTH=14 HEIGHT=24 ALIGN=MIDDLE SRC="cc_bigoplus.gif"> }}}
|
||||
\newcommand{\biguplus}{\lciIf{\lciMathModeDisplay}{\lcRawHtml%
|
||||
{ <IMG BORDER=0 WIDTH=14 HEIGHT=29 ALIGN=MIDDLE SRC="cc_big_biguplus.gif"> }}%
|
||||
{\lcRawHtml{ <IMG BORDER=0 WIDTH=10 HEIGHT=24 ALIGN=MIDDLE SRC="cc_biguplus.gif"> }}}
|
||||
{ <IMG ALT="biguplus" BORDER=0 WIDTH=14 HEIGHT=29 ALIGN=MIDDLE SRC="cc_big_biguplus.gif"> }}%
|
||||
{\lcRawHtml{ <IMG ALT="biguplus" BORDER=0 WIDTH=10 HEIGHT=24 ALIGN=MIDDLE SRC="cc_biguplus.gif"> }}}
|
||||
|
||||
|
||||
% +--------------------------------------------------------------------------
|
||||
|
|
|
|||
|
|
@ -35,6 +35,8 @@
|
|||
\gdef{\lcBodyAttributes}{\lcRawHtml{bgcolor="white"}}
|
||||
\gdef\lciFileSpecificCSS{}
|
||||
|
||||
\newcommand{\CGALManualCanonicalURL}{http://www.cgal.org/Manual/latest/doc_html/cgal_manual/}
|
||||
|
||||
\newcommand{\lciHtmlFileHeader}[1]{\lciHtmlFileHeaderExtra{#1}{}}
|
||||
|
||||
% Args: <title-text> <extra head text>
|
||||
|
|
@ -46,7 +48,12 @@
|
|||
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
|
||||
<meta name="generator" content="CGAL latex_to_html converter">
|
||||
<!-- by cc_extract_html, #XC2 -->
|
||||
<!-- LaTeX source file: '#XC3' -->
|
||||
<!-- LaTeX source file: '#XC3' -->}
|
||||
% Now, add the canonical link. See:
|
||||
% http://googlewebmastercentral.blogspot.com/2009/02/specify-your-canonical.html
|
||||
\lcRawHtml{<link rel="canonical" href="}%
|
||||
\lcRawHtmlExpanded{\CGALManualCanonicalURL}%
|
||||
\lcRawHtmlExpanded{\lciOutputFilename}\lcRawHtml{">
|
||||
<link href="}\lciOutputUppath\lcRawHtml{latex_to_html.css" rel="STYLESHEET">}
|
||||
\lciFileSpecificCSS%
|
||||
\lcRawHtml{<title>}#1\lcRawHtml{</title>}%
|
||||
|
|
|
|||
|
|
@ -568,8 +568,7 @@ void MainWindow::on_actionSave_snapshot_triggered()
|
|||
{
|
||||
// save snapshot to file
|
||||
QApplication::setOverrideCursor(Qt::WaitCursor);
|
||||
QString filename = QFileDialog::getSaveFileName(this,tr("Save snapshot to file..."),"snapshot00.png","*.png");
|
||||
viewer->saveSnapshot(filename);
|
||||
viewer->saveSnapshot(false, false);
|
||||
QApplication::restoreOverrideCursor();
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -68,6 +68,7 @@ Same for operator {\tt -,*,/,!=,<=,>,>=} as well as mixed forms with \ccc{RT} an
|
|||
|
||||
\ccRefIdfierPage{CGAL::make_root_of_2<RT>}\\
|
||||
\ccRefIdfierPage{CGAL::make_sqrt<RT>}\\
|
||||
\ccRefIdfierPage{CGAL::compute_roots_of_2<RT,OutputIterator>}\\
|
||||
\ccRefIdfierPage{CGAL::Root_of_traits<RT>}\\
|
||||
\ccRefIdfierPage{AlgebraicKernelForCircles::PolynomialForCircles_2_2}\\
|
||||
\ccRefIdfierPage{AlgebraicKernelForCircles}
|
||||
|
|
|
|||
|
|
@ -21,5 +21,6 @@ algebraic numbers of degree 2 over \ccc{RT}. Moreover, the class provides
|
|||
\ccSeeAlso
|
||||
|
||||
\ccRefIdfierPage{RootOf_2}\\
|
||||
\ccRefIdfierPage{CGAL::compute_roots_of_2<RT,OutputIterator>}\\
|
||||
\ccRefIdfierPage{CGAL::make_root_of_2<RT>}\\
|
||||
\end{ccRefClass}
|
||||
|
|
|
|||
|
|
@ -0,0 +1,29 @@
|
|||
\begin{ccRefFunction}{compute_roots_of_2<RT,OutputIterator>}
|
||||
|
||||
\ccDefinition
|
||||
|
||||
The function \ccRefName\ solves a univariate polynomial as it is defined by the
|
||||
coefficients given to the function. The solutions are written into the given
|
||||
\ccc{OutputIterator}.
|
||||
|
||||
\ccInclude{CGAL/Root_of_traits.h}
|
||||
|
||||
\ccFunction{template <typename RT, typename OutputIterator>
|
||||
OutputIterator
|
||||
compute_roots_of_2(const RT& a, const RT& b, const RT& c, OutputIterator oit);}
|
||||
{
|
||||
Writes the real roots of the polynomial $aX^2+bX+c$ into $oit$ in ascending order. \\
|
||||
\ccc{OutputIterator} is required to accept \ccc{Root_of_traits<RT>::Root_of_2}. \\
|
||||
Multiplicities are not reported. \\
|
||||
\ccPrecond{\ccc{RT} is an \ccc{IntegralDomainWithoutDivision}.}
|
||||
\ccPrecond{$a\neq 0$ or $b\neq 0$.}
|
||||
}
|
||||
|
||||
\ccSeeAlso
|
||||
\ccRefIdfierPage{RootOf_2}\\
|
||||
\ccRefIdfierPage{CGAL::Root_of_traits<RT>}\\
|
||||
\ccRefIdfierPage{CGAL::make_root_of_2<RT>}\\
|
||||
\ccRefIdfierPage{CGAL::make_sqrt<RT>}\\
|
||||
%\ccRefIdfierPage{CGAL::compute_roots_of_2<RT,OutputIterator>}\\
|
||||
\ccRefIdfierPage{CGAL::Sqrt_extension<NT,ROOT>}\\
|
||||
\end{ccRefFunction}
|
||||
|
|
@ -53,6 +53,7 @@
|
|||
\ccRefIdfierPage{CGAL::Root_of_traits<RT>}\\
|
||||
\ccRefIdfierPage{CGAL::make_root_of_2<RT>}\\
|
||||
\ccRefIdfierPage{CGAL::make_sqrt<RT>}\\
|
||||
\ccRefIdfierPage{CGAL::compute_roots_of_2<RT,OutputIterator>}\\
|
||||
\ccRefIdfierPage{CGAL::Sqrt_extension<NT,ROOT>}\\
|
||||
|
||||
\subsection*{Utilities}
|
||||
|
|
|
|||
|
|
@ -50,6 +50,7 @@
|
|||
\input{NumberTypeSupport_ref/Root_of_traits.tex}
|
||||
\input{NumberTypeSupport_ref/make_root_of_2.tex}
|
||||
\input{NumberTypeSupport_ref/make_sqrt.tex}
|
||||
\input{NumberTypeSupport_ref/compute_roots_of_2.tex}
|
||||
\input{NumberTypeSupport_ref/Sqrt_extension.tex}
|
||||
\input{NumberTypeSupport_ref/Root_of_2.tex}
|
||||
|
||||
|
|
|
|||
|
|
@ -23,9 +23,13 @@ ring number type.
|
|||
\ccPrecond{\ccc{RT} is an \ccc{IntegralDomainWithoutDivision}.}
|
||||
\ccPrecond{$\gamma\geq 0$}}
|
||||
|
||||
|
||||
|
||||
\ccSeeAlso
|
||||
\ccRefIdfierPage{RootOf_2}\\
|
||||
\ccRefIdfierPage{CGAL::Root_of_traits<RT>}\\
|
||||
%\ccRefIdfierPage{CGAL::make_root_of_2<RT>}\\
|
||||
\ccRefIdfierPage{CGAL::make_sqrt<RT>}\\
|
||||
\ccRefIdfierPage{CGAL::compute_roots_of_2<RT,OutputIterator>}\\
|
||||
\ccRefIdfierPage{CGAL::Sqrt_extension<NT,ROOT>}\\
|
||||
\end{ccRefFunction}
|
||||
|
|
|
|||
|
|
@ -158,7 +158,7 @@ private:
|
|||
typename Interval_nt<>::Internal_protector P;
|
||||
CGAL_assertion_msg(-CGAL_IA_MUL(-1.1, 10.1) != CGAL_IA_MUL(1.1, 10.1),
|
||||
"Wrong rounding: did you forget the -frounding-math option if you use GCC (or -fp-model strict for Intel)?");
|
||||
CGAL_assertion_msg(-CGAL_IA_DIV(-1, 10) != CGAL_IA_DIV(1, 10),
|
||||
CGAL_assertion_msg(-CGAL_IA_DIV(-1., 10) != CGAL_IA_DIV(1., 10),
|
||||
"Wrong rounding: did you forget the -frounding-math option if you use GCC (or -fp-model strict for Intel)?");
|
||||
}
|
||||
};
|
||||
|
|
|
|||
|
|
@ -41,7 +41,6 @@ make_root_of_2(const NT &a, const NT &b, const NT &c)
|
|||
return make_root_of_2(a,b,c);
|
||||
}
|
||||
|
||||
|
||||
template < class NT >
|
||||
inline
|
||||
typename Root_of_traits< NT >::Root_of_2
|
||||
|
|
@ -60,6 +59,35 @@ make_sqrt(const NT &a)
|
|||
return make_sqrt(a);
|
||||
}
|
||||
|
||||
template < class NT , class OutputIterator>
|
||||
inline
|
||||
OutputIterator
|
||||
compute_roots_of_2(const NT &a_, const NT &b_, const NT &c_, OutputIterator oit)
|
||||
{
|
||||
typedef typename Root_of_traits<NT>::Root_of_1 Root_of_1;
|
||||
typedef typename Root_of_traits<NT>::Root_of_2 Root_of_2;
|
||||
typename CGAL::Coercion_traits<Root_of_1,NT>::Cast cast;
|
||||
Root_of_1 a(cast(a_)), b(cast(b_)), c(cast(c_));
|
||||
|
||||
if ( a != 0 ) {
|
||||
Root_of_1 a0_ (-b/(2*a));
|
||||
Root_of_1 root_(CGAL_NTS square(a0_) - c/a);
|
||||
switch(CGAL::sign(root_)){
|
||||
case CGAL::NEGATIVE: return oit;
|
||||
case CGAL::ZERO: *oit++ = Root_of_2(a0_); return oit;
|
||||
default:
|
||||
// two roots
|
||||
*oit++ = make_root_of_2(a0_,Root_of_1(-1),root_);
|
||||
*oit++ = make_root_of_2(a0_,Root_of_1( 1),root_);
|
||||
return oit;
|
||||
}
|
||||
}
|
||||
else {
|
||||
*oit++ = -c/b; return oit;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
namespace internal {
|
||||
|
||||
BOOST_MPL_HAS_XXX_TRAIT_NAMED_DEF(Has_typedef_Arithmetic_kernel,Arithmetic_kernel,false)
|
||||
|
|
@ -105,7 +133,6 @@ struct Root_of_traits_helper{
|
|||
}
|
||||
};
|
||||
|
||||
|
||||
private:
|
||||
typedef CGAL::Algebraic_structure_traits<Root_of_2> AST;
|
||||
public:
|
||||
|
|
@ -159,7 +186,7 @@ public:
|
|||
RT c_ = c_num * a_den * b_den;
|
||||
|
||||
return make_root_of_2(a_,b_,c_,smaller);
|
||||
}
|
||||
}
|
||||
};
|
||||
|
||||
private:
|
||||
|
|
@ -264,6 +291,14 @@ struct Root_of_traits<Interval_nt<B> >{
|
|||
return a + b * CGAL_NTS sqrt(c) ;
|
||||
}
|
||||
};
|
||||
|
||||
private:
|
||||
typedef CGAL::Algebraic_structure_traits<Interval_nt<B> > AST;
|
||||
public:
|
||||
typedef typename AST::Square Square;
|
||||
typedef typename AST::Inverse Inverse;
|
||||
typedef typename AST::Sqrt Make_sqrt;
|
||||
|
||||
};
|
||||
|
||||
|
||||
|
|
|
|||
|
|
@ -29,7 +29,7 @@
|
|||
namespace CGAL {
|
||||
|
||||
// We create a type of new node in Lazy_exact_nt's DAG
|
||||
// for the make_root_of_2() operation.
|
||||
// for the make_root_of_2() and solve_1(of degree 2) operation.
|
||||
|
||||
template <typename ET >
|
||||
struct Lazy_exact_ro2
|
||||
|
|
|
|||
|
|
@ -79,6 +79,38 @@ void test_root_of_traits(){
|
|||
Root_of_2 rr = CGAL::make_sqrt(T(2))*CGAL::make_sqrt(T(2));
|
||||
assert(r == rr);
|
||||
}
|
||||
|
||||
bool is_not_exact = !CGAL::Algebraic_structure_traits<T>::Is_exact::value;
|
||||
{
|
||||
std::vector<Root_of_2> roots;
|
||||
CGAL::compute_roots_of_2(T(1),T(0),T(-2),std::back_inserter(roots));
|
||||
assert(roots.size()==2);
|
||||
assert(roots[0]==-CGAL::make_sqrt(T(2)) || is_not_exact );
|
||||
assert(roots[1]== CGAL::make_sqrt(T(2)) || is_not_exact );
|
||||
}
|
||||
{
|
||||
Root_of_2 roots[2]= {Root_of_2(1),Root_of_2(1)};
|
||||
CGAL::compute_roots_of_2(T(13),T(4),T(-23),roots);
|
||||
assert(roots[0]==CGAL::make_root_of_2(T(13),T(4),T(-23),true) || is_not_exact );
|
||||
assert(roots[1]==CGAL::make_root_of_2(T(13),T(4),T(-23),false) || is_not_exact );
|
||||
}
|
||||
{
|
||||
std::vector<Root_of_2> roots;
|
||||
CGAL::compute_roots_of_2(T(1),T(-6),T(9),std::back_inserter(roots));
|
||||
assert(roots.size()==1);
|
||||
assert(roots[0]==Root_of_2(3) || is_not_exact );
|
||||
}
|
||||
{
|
||||
std::vector<Root_of_2> roots;
|
||||
CGAL::compute_roots_of_2(T(1),T(0),T(2),std::back_inserter(roots));
|
||||
assert(roots.size()==0);
|
||||
}
|
||||
{
|
||||
std::vector<Root_of_2> roots;
|
||||
CGAL::compute_roots_of_2(T(0),T(2),T(3),std::back_inserter(roots));
|
||||
assert(roots.size()==1);
|
||||
assert(roots[0]==-Root_of_2(3)/Root_of_2(2) || is_not_exact );
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -46,6 +46,11 @@ void test_root_of_traits_for_set(Integer, Rational, FWS){
|
|||
|
||||
int main(){
|
||||
CGAL::Test::test_root_of_traits< double , double , double >();
|
||||
|
||||
try{// just compile and try to get as far as you can go.
|
||||
CGAL::Test::test_root_of_traits< CGAL::Interval_nt<true> , CGAL::Interval_nt<true> , CGAL::Interval_nt<true> >();
|
||||
CGAL::Test::test_root_of_traits< CGAL::Interval_nt<false> , CGAL::Interval_nt<false> , CGAL::Interval_nt<false> >();
|
||||
}catch(...){}
|
||||
|
||||
#ifdef CGAL_USE_GMP
|
||||
//TODO: switch to Gmpq
|
||||
|
|
@ -84,6 +89,7 @@ int main(){
|
|||
typedef AK::Field_with_sqrt FWS;
|
||||
test_root_of_traits_for_set(Integer(),Rational(),FWS());
|
||||
}
|
||||
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
|
|
|||
|
|
@ -310,7 +310,7 @@ create_riemannian_graph(
|
|||
Point_vertex_handle_3 point_wrapper(point.x(), point.y(), point.z(), it);
|
||||
kd_tree_points.push_back(point_wrapper);
|
||||
}
|
||||
std::auto_ptr<Tree> tree( new Tree(kd_tree_points.begin(), kd_tree_points.end()) );
|
||||
boost::shared_ptr<Tree> tree( new Tree(kd_tree_points.begin(), kd_tree_points.end()) );
|
||||
|
||||
// Recover RAM
|
||||
kd_tree_points.clear();
|
||||
|
|
|
|||
|
|
@ -79,8 +79,10 @@ public:
|
|||
typedef Polynomial<Coeff_> Polynomial;
|
||||
typedef CGAL::Boolean_tag<1 == Dimension<Polynomial>::value> Is_univariate;
|
||||
CGAL::Exponent_vector ivec((std::vector<int>)(Dimension<Polynomial>::value));
|
||||
if(p.is_zero())
|
||||
return *oit++ = std::make_pair(ivec,Innermost_coefficient(0));
|
||||
if(p.is_zero()){
|
||||
*oit++ = std::make_pair(ivec,Innermost_coefficient(0));
|
||||
return oit;
|
||||
}
|
||||
return create_mrep(p, oit, ivec, Is_univariate());
|
||||
}
|
||||
};
|
||||
|
|
|
|||
|
|
@ -25,6 +25,7 @@
|
|||
|
||||
#include <boost/iterator/transform_iterator.hpp>
|
||||
#include <boost/iterator/zip_iterator.hpp>
|
||||
#include <boost/shared_ptr.hpp>
|
||||
|
||||
#include <CGAL/Gmpq.h>
|
||||
#include <CGAL/MP_Float.h>
|
||||
|
|
@ -116,7 +117,7 @@ void write_MPS(std::ostream& out,
|
|||
CGAL::print_quadratic_program(out, qp, problem_name);
|
||||
}
|
||||
|
||||
std::auto_ptr<std::ofstream>
|
||||
boost::shared_ptr<std::ofstream>
|
||||
create_output_file(const char *filename, // Note: "Bernd3" and not
|
||||
// "Bernd3.mps".
|
||||
const char *directory,
|
||||
|
|
@ -126,9 +127,9 @@ create_output_file(const char *filename, // Note: "Bernd3" and not
|
|||
std::string new_name = std::string(directory) +
|
||||
std::string("/") + std::string(filename) + std::string("_") +
|
||||
std::string(suffix) + std::string(".mps");
|
||||
return std::auto_ptr<std::ofstream>(new std::ofstream(new_name.c_str(),
|
||||
std::ios_base::trunc |
|
||||
std::ios_base::out));
|
||||
return boost::shared_ptr<std::ofstream>(new std::ofstream(new_name.c_str(),
|
||||
std::ios_base::trunc |
|
||||
std::ios_base::out));
|
||||
}
|
||||
|
||||
template<typename NT>
|
||||
|
|
@ -191,7 +192,7 @@ void create_shifted_instance(const CGAL::Quadratic_program_from_mps <IT>& qp,
|
|||
// output:
|
||||
using boost::make_transform_iterator;
|
||||
using boost::make_zip_iterator;
|
||||
std::auto_ptr<std::ofstream> out = create_output_file(file, dir, "shifted");
|
||||
boost::shared_ptr<std::ofstream> out = create_output_file(file, dir, "shifted");
|
||||
|
||||
write_MPS(*out,
|
||||
"", // deduce number-type
|
||||
|
|
@ -275,7 +276,7 @@ void create_free_instance(CGAL::Quadratic_program_from_mps<IT>& qp,
|
|||
qp.set_u(i, false); // variable becomes free
|
||||
}
|
||||
// output:
|
||||
std::auto_ptr<std::ofstream> out = create_output_file(file, dir, "free");
|
||||
boost::shared_ptr<std::ofstream> out = create_output_file(file, dir, "free");
|
||||
write_MPS(*out,
|
||||
"", // deduce number-type
|
||||
"Freed instance of original file",
|
||||
|
|
|
|||
|
|
@ -149,7 +149,7 @@ int main()
|
|||
q.push(&data[0]+i);
|
||||
}
|
||||
|
||||
for (std::size_t i=0;i<10;++i){
|
||||
for (unsigned int i=0;i<10;++i){
|
||||
data[i].second=9-i;
|
||||
q.update(&data[0]+i,true);
|
||||
CGAL_assertion(q.top()->first==i);
|
||||
|
|
@ -169,14 +169,14 @@ int main()
|
|||
q.push(&data[0]+i);
|
||||
}
|
||||
|
||||
for (std::size_t i=0;i<9;++i){
|
||||
for (unsigned int i=0;i<9;++i){
|
||||
data[i].second=10+i;
|
||||
q.update(&data[0]+i,true);
|
||||
CGAL_assertion(q.top()->first==i+1);
|
||||
}
|
||||
|
||||
//revert order
|
||||
for (std::size_t i=0;i<10;++i){
|
||||
for (unsigned int i=0;i<10;++i){
|
||||
data[9-i].second=i;
|
||||
q.update(&data[0]+9-i,true);
|
||||
CGAL_assertion(q.top()->first==9);
|
||||
|
|
|
|||
|
|
@ -58,7 +58,7 @@ EOF
|
|||
if [ "${TYPE}" = "demo" ] ; then
|
||||
target_name="${PROJECT}_${TYPE}"
|
||||
|
||||
for file in `ls *.C *.cpp 2>/dev/null | sort` ; do
|
||||
for file in `ls "$SOURCE_DIR"*.C "$SOURCE_DIR"*.cpp 2>/dev/null | sort` ; do
|
||||
all="$all $file"
|
||||
done
|
||||
cat <<'EOF'
|
||||
|
|
@ -87,16 +87,16 @@ EOF
|
|||
|
||||
EOF
|
||||
|
||||
if [ -d ../../include ] ; then
|
||||
echo ' include_directories (BEFORE ../../include)'
|
||||
if [ -d "${SOURCE_DIR}../../include" ] ; then
|
||||
echo " include_directories (BEFORE \"${SOURCE_DIR}../../include\")"
|
||||
echo
|
||||
fi
|
||||
if [ -d ../include ] ; then
|
||||
echo ' include_directories (BEFORE ../include)'
|
||||
if [ -d "${SOURCE_DIR}../include" ] ; then
|
||||
echo " include_directories (BEFORE \"${SOURCE_DIR}../include\")"
|
||||
echo
|
||||
fi
|
||||
if [ -d include ] ; then
|
||||
echo ' include_directories (BEFORE include)'
|
||||
if [ -d "${SOURCE_DIR}include" ] ; then
|
||||
echo " include_directories (BEFORE \"${SOURCE_DIR}include\")"
|
||||
echo
|
||||
fi
|
||||
cat <<EOF
|
||||
|
|
@ -132,20 +132,20 @@ if ( CGAL_FOUND )
|
|||
include( CGAL_CreateSingleSourceCGALProgram )
|
||||
|
||||
EOF
|
||||
if [ -d ../../include ] ; then
|
||||
echo ' include_directories (BEFORE ../../include)'
|
||||
if [ -d "${SOURCE_DIR}../../include" ] ; then
|
||||
echo " include_directories (BEFORE \"${SOURCE_DIR}../../include\")"
|
||||
echo
|
||||
fi
|
||||
if [ -d ../include ] ; then
|
||||
echo ' include_directories (BEFORE ../include)'
|
||||
if [ -d "${SOURCE_DIR}../include" ] ; then
|
||||
echo " include_directories (BEFORE \"${SOURCE_DIR}../include\")"
|
||||
echo
|
||||
fi
|
||||
if [ -d include ] ; then
|
||||
echo ' include_directories (BEFORE include)'
|
||||
if [ -d "${SOURCE_DIR}include" ] ; then
|
||||
echo " include_directories (BEFORE \"${SOURCE_DIR}include\")"
|
||||
echo
|
||||
fi
|
||||
|
||||
for file in `ls *.C *.cpp 2>/dev/null | sort` ; do
|
||||
for file in `ls "$SOURCE_DIR"*.C "$SOURCE_DIR"*.cpp 2>/dev/null | sort` ; do
|
||||
# Create an executable for each cpp that contains a function "main()"
|
||||
BASE=`basename $file .C`
|
||||
BASE=`basename $BASE .cpp`
|
||||
|
|
@ -173,34 +173,63 @@ EOF
|
|||
|
||||
usage()
|
||||
{
|
||||
echo "Usage: cgal_create_cmake_script [TYPE]"
|
||||
echo "Usage: cgal_create_cmake_script [TYPE] [--source_dir <source directory>]"
|
||||
echo
|
||||
echo " TYPE must be any of example, demo or test."
|
||||
echo " Default is example."
|
||||
echo
|
||||
echo " Create a CMakeLists.txt file in the current working directory."
|
||||
echo
|
||||
echo " TYPE must be any of example, demo or test. The default is example."
|
||||
echo
|
||||
echo " If the option --source_dir is specified with a directory, the "
|
||||
echo " CMakeLists.txt uses source files from that directory, otherwise "
|
||||
echo " the source directory is supposed to be the current directory."
|
||||
}
|
||||
|
||||
SOURCE_DIR=
|
||||
|
||||
case $# in
|
||||
0) TYPE="example";;
|
||||
1) TYPE=$1;;
|
||||
*) usage
|
||||
exit 1
|
||||
esac
|
||||
|
||||
|
||||
|
||||
if [ "${TYPE}" = "example" -o "${TYPE}" = "demo" -o "${TYPE}" = "test" ]; then
|
||||
ok='y'
|
||||
fi
|
||||
|
||||
if [ -z "$ok" ]; then
|
||||
echo "Invalid type: ${TYPE}. Valid values are example, demo or test"
|
||||
exit 1
|
||||
fi
|
||||
while [ $1 ]; do
|
||||
case "$1" in
|
||||
-h|-help|--h|--help)
|
||||
usage; exit
|
||||
;;
|
||||
example)
|
||||
if [ -z "$TYPE" ]; then TYPE=$1; shift; else usage; exit 1; fi
|
||||
;;
|
||||
demo)
|
||||
if [ -z "$TYPE" ]; then TYPE=$1; shift; else usage; exit 1; fi
|
||||
;;
|
||||
test)
|
||||
if [ -z "$TYPE" ]; then TYPE=$1; shift; else usage; exit 1; fi
|
||||
;;
|
||||
--source_dir)
|
||||
if [ -d "$2" ]; then
|
||||
SOURCE_DIR=$2;
|
||||
shift;
|
||||
shift;
|
||||
else
|
||||
if [ -z "$2" ]; then
|
||||
echo "Error: you must specify a directory after the --source_dir option!"
|
||||
echo
|
||||
else
|
||||
echo "Error: \"$2\" is not a directory!"
|
||||
echo
|
||||
fi
|
||||
usage; exit 1;
|
||||
fi
|
||||
;;
|
||||
*)
|
||||
echo "Unknown option: $1"
|
||||
usage; exit 1
|
||||
;;
|
||||
esac
|
||||
done
|
||||
|
||||
OUTPUTFILE=CMakeLists.txt
|
||||
PROJECT=`basename $PWD`
|
||||
if [ -n "$SOURCE_DIR" ]; then
|
||||
PROJECT=`basename $SOURCE_DIR`
|
||||
SOURCE_DIR=$SOURCE_DIR/
|
||||
else
|
||||
PROJECT=`basename $PWD`
|
||||
fi
|
||||
|
||||
if [ -f ${OUTPUTFILE} ] ; then
|
||||
echo "moving $OUTPUTFILE to ${OUTPUTFILE}.bak ..."
|
||||
|
|
|
|||
|
|
@ -14,6 +14,9 @@ endif()
|
|||
#option(POINT_SET_DEMO_ENABLE_FORWARD_DECL "In the Point Set demo, enable " OFF)
|
||||
#mark_as_advanced(POINT_SET_DEMO_ENABLE_FORWARD_DECL)
|
||||
|
||||
# Let plugins be compiled in the same directory as the executable.
|
||||
set(CMAKE_LIBRARY_OUTPUT_DIRECTORY "${CMAKE_RUNTIME_OUTPUT_DIRECTORY}")
|
||||
|
||||
# Require packages new or improved since CGAL 3.5 beta 1
|
||||
include_directories (BEFORE ../../../Installation/include/)
|
||||
include_directories (BEFORE ../../../Point_set_processing_3/include)
|
||||
|
|
|
|||
|
|
@ -6,6 +6,7 @@
|
|||
|
||||
class Messages_interface {
|
||||
public:
|
||||
virtual ~Messages_interface() {}
|
||||
virtual void warning(QString) = 0;
|
||||
virtual void error(QString) = 0;
|
||||
virtual void information(QString) = 0;
|
||||
|
|
|
|||
|
|
@ -9,6 +9,7 @@ class Scene_item;
|
|||
class Polyhedron_demo_io_plugin_interface
|
||||
{
|
||||
public:
|
||||
virtual ~Polyhedron_demo_io_plugin_interface() {}
|
||||
virtual QStringList nameFilters() const = 0;
|
||||
|
||||
virtual bool canLoad() const = 0;
|
||||
|
|
|
|||
|
|
@ -13,6 +13,7 @@ class Messages_interface;
|
|||
class Polyhedron_demo_plugin_interface
|
||||
{
|
||||
public:
|
||||
virtual ~Polyhedron_demo_plugin_interface() {}
|
||||
virtual void init(QMainWindow*, Scene_interface*) {};
|
||||
virtual void init(QMainWindow* mw, Scene_interface* sc, Messages_interface*) {
|
||||
init(mw, sc);
|
||||
|
|
|
|||
|
|
@ -3,6 +3,7 @@
|
|||
|
||||
class Scene_draw_interface {
|
||||
public:
|
||||
virtual ~Scene_draw_interface(){}
|
||||
virtual void initializeGL() = 0;
|
||||
virtual void draw() = 0;
|
||||
virtual void drawWithNames() = 0;
|
||||
|
|
|
|||
|
|
@ -2978,14 +2978,14 @@ inexact_locate(const Point & t, Face_handle start, int n_of_turns) const
|
|||
}
|
||||
} else if(c->neighbor(1) == prev){
|
||||
prev = c;
|
||||
if (inexact_orientation(p1,p2,t) == NEGATIVE) {
|
||||
c = c->neighbor( 0 );
|
||||
continue;
|
||||
}
|
||||
if (inexact_orientation(p0,p1,t) == NEGATIVE) {
|
||||
c = c->neighbor( 2 );
|
||||
continue;
|
||||
}
|
||||
if (inexact_orientation(p1,p2,t) == NEGATIVE) {
|
||||
c = c->neighbor( 0 );
|
||||
continue;
|
||||
}
|
||||
} else {
|
||||
prev = c;
|
||||
if (inexact_orientation(p2,p0,t) == NEGATIVE) {
|
||||
|
|
|
|||
Loading…
Reference in New Issue