diff --git a/Algebraic_kernel_d/include/CGAL/RS/algebraic_1_constructors.h b/Algebraic_kernel_d/include/CGAL/RS/algebraic_1_constructors.h index 30809b0c25f..48aa3bd43ae 100644 --- a/Algebraic_kernel_d/include/CGAL/RS/algebraic_1_constructors.h +++ b/Algebraic_kernel_d/include/CGAL/RS/algebraic_1_constructors.h @@ -144,8 +144,8 @@ Algebraic_1::Algebraic_1(mpfr_srcptr src){ Gmpfr r(src); mpfi_init2(mpfi(),r.get_precision()); mpfi_set_fr(mpfi(),r.fr()); - CGAL_assertion(mpfr_equal_p(r.fr(),&mpfi()->left)); - CGAL_assertion(mpfr_equal_p(r.fr(),&mpfi()->right)); + CGAL_assertion(mpfr_equal_p(r.fr(),&mpfi()->left)!=0); + CGAL_assertion(mpfr_equal_p(r.fr(),&mpfi()->right)!=0); RS_polynomial_1 *rsp=new RS_polynomial_1(r.to_fraction().mpq()); set_pol(*rsp); set_nr(0); @@ -186,8 +186,8 @@ inline Algebraic_1::Algebraic_1(const Gmpfr &r){ mpfi_init2(mpfi(),r.get_precision()); mpfi_set_fr(mpfi(),r.fr()); - CGAL_assertion(mpfr_equal_p(r.fr(),&mpfi()->left)); - CGAL_assertion(mpfr_equal_p(r.fr(),&mpfi()->right)); + CGAL_assertion(mpfr_equal_p(r.fr(),&mpfi()->left)!=0); + CGAL_assertion(mpfr_equal_p(r.fr(),&mpfi()->right)!=0); RS_polynomial_1 *rsp=new RS_polynomial_1(r.to_fraction().mpq()); set_pol(*rsp); set_nr(0); diff --git a/Algebraic_kernel_d/include/CGAL/RS/algebraic_1_member.h b/Algebraic_kernel_d/include/CGAL/RS/algebraic_1_member.h index b14d17d86f2..56755110e59 100644 --- a/Algebraic_kernel_d/include/CGAL/RS/algebraic_1_member.h +++ b/Algebraic_kernel_d/include/CGAL/RS/algebraic_1_member.h @@ -148,7 +148,7 @@ bool Algebraic_1::is_consistent()const{ inline bool Algebraic_1::is_point()const{ - return(mpfr_equal_p(&(mpfi()->left),&(mpfi()->right))); + return(mpfr_equal_p(&(mpfi()->left),&(mpfi()->right))!=0); } inline @@ -188,9 +188,9 @@ void Algebraic_1::set_mpfi(mpfi_srcptr x){ inline bool Algebraic_1::overlaps(const Algebraic_1&a)const{ if(mpfr_lessequal_p(left(),a.left())) - return mpfr_lessequal_p(a.left(),right()); + return (mpfr_lessequal_p(a.left(),right())!=0); else - return mpfr_lessequal_p(left(),a.right()); + return (mpfr_lessequal_p(left(),a.right())!=0); } inline diff --git a/Algebraic_kernel_d/include/CGAL/RS/inverse.h b/Algebraic_kernel_d/include/CGAL/RS/inverse.h index 38b68358e11..d01c1400252 100644 --- a/Algebraic_kernel_d/include/CGAL/RS/inverse.h +++ b/Algebraic_kernel_d/include/CGAL/RS/inverse.h @@ -19,7 +19,16 @@ #ifndef CGAL_RS__INVERSE_H #define CGAL_RS__INVERSE_H -#include +#ifdef _MSC_VER +# define _s64 __int64 +# define _u64 unsigned __int64 +# define _u32 unsigned __int32 +#else +# include +# define _s64 int64_t +# define _u64 uint64_t +# define _u32 uint32_t +#endif #define n_(A) (A<0?-A:A) //#define u_(A) (A<0?-1:1) @@ -33,9 +42,9 @@ class Inverse{ protected: // given a and b, returns s such that gcd(a,b)=s*a+t*b (GCL, page 36) // s*a+t*q=1 => s is the inverse of a, mod q (pafe 173) - static int64_t eea_s(uint32_t a,uint32_t b){ - int64_t c1,d1,r1;//,c2,d2,r2,t,s; - uint32_t r,c,d;//,q; + static _s64 eea_s(_u32 a,_u32 b){ + _s64 c1,d1,r1;//,c2,d2,r2,t,s; + _u32 r,c,d;//,q; // a and b are positive, so a=n_(a) and b=n_(b) //c=n_(a); d=n_(b); c=a; d=b; diff --git a/Algebraic_kernel_d/include/CGAL/RS/p.h b/Algebraic_kernel_d/include/CGAL/RS/p.h index 497daeed464..586676d73a6 100644 --- a/Algebraic_kernel_d/include/CGAL/RS/p.h +++ b/Algebraic_kernel_d/include/CGAL/RS/p.h @@ -28,9 +28,9 @@ namespace RS_MGCD{ // pn size is 32 bits, // the sizes of lpn and spn must be, at least, as twice as the size of pn #define PN_BITS 32 -#define pn uint32_t // unsigned -#define lpn uint64_t // unsigned long long -#define spn int64_t // long long +#define pn _u32 // unsigned +#define lpn _u64 // unsigned long long +#define spn _s64 // long long #define p_mpz_set_pn(A,PN) mpz_set_ui(A,(unsigned long)(PN)) #define p_mpz_mul_pn(A,B,PN) mpz_mul_ui(A,B,(unsigned long)(PN)) diff --git a/Algebraic_kernel_d/include/CGAL/RS/polynomial_1_member.h b/Algebraic_kernel_d/include/CGAL/RS/polynomial_1_member.h index 3f6a3320431..e9eb05bb8ce 100644 --- a/Algebraic_kernel_d/include/CGAL/RS/polynomial_1_member.h +++ b/Algebraic_kernel_d/include/CGAL/RS/polynomial_1_member.h @@ -130,7 +130,7 @@ int RS_polynomial_1::get_degree_static()const{ inline bool RS_polynomial_1::has_sfpart()const{ - return (_is_sf?true:(bool)(_sfpart.get())); + return (_is_sf?true:(_sfpart.get()!=NULL?true:false)); } inline @@ -160,7 +160,7 @@ void RS_polynomial_1::set_sf()const{ inline bool RS_polynomial_1::has_sqfr()const{ - return (bool)(_sqfr.get()); + return (_sqfr.get()!=NULL?true:false); } inline diff --git a/Algebraic_kernel_d/include/CGAL/RS/primes.h b/Algebraic_kernel_d/include/CGAL/RS/primes.h index 4bdd619fd0a..d764fa97468 100644 --- a/Algebraic_kernel_d/include/CGAL/RS/primes.h +++ b/Algebraic_kernel_d/include/CGAL/RS/primes.h @@ -28,6 +28,12 @@ //#define pr_is_prime(N) (pr_fermat(N)?pr_is_prime_bruteforce(N):0) #define pr_is_prime(N) pr_mrj(N) +#ifdef _MSC_VER +# define cgal_rs_random rand +#else +# define cgal_rs_random random +#endif + namespace CGAL{ namespace RS_MGCD{ @@ -47,14 +53,14 @@ class Primes:public Crt{ // vzGG, p. 507; returns 0 if n is composite static int pr_fermat(pn n){ p_set_prime(n); - return(p_pow(2+((pn)random())%(n-4),n-1)==1); + return(p_pow(2+((pn)cgal_rs_random())%(n-4),n-1)==1); } // Solovay-Strassen static int pr_ss(pn n){ pn a,x; p_set_prime(n); - a=1+(pn)random()%(n-2); + a=1+(pn)cgal_rs_random()%(n-2); x=p_div(a,n); return(!x||p_pow(a,n>>1)!=x); } @@ -69,7 +75,7 @@ class Primes:public Crt{ d=d>>1; } p_set_prime(n); - a=2+(pn)random()%(n-4); + a=2+(pn)cgal_rs_random()%(n-4); x=p_pow(a,d); if(x==1||x==n-1) return 1; // pobably prime diff --git a/Installation/CHANGES b/Installation/CHANGES index 36e66be6902..602d9591288 100644 --- a/Installation/CHANGES +++ b/Installation/CHANGES @@ -63,7 +63,7 @@ CGAL 3.6 offers the following improvements and new functionality : 6 Triangulations and Delaunay Triangulations -6.1 2D/3D Regular triangulations +6.1 2D/3D Regular Triangulations - Weighted_point now has a constructor from Cartesian coordinates. @@ -84,7 +84,7 @@ CGAL 3.6 offers the following improvements and new functionality : - The old version of remove() (enabled with CGAL_DELAUNAY_3_OLD_REMOVE) has been deleted. -6.3 3D Periodic triangulations +6.3 3D Periodic Triangulations - New demo: 3D periodic Lloyd algorithm. @@ -102,7 +102,8 @@ CGAL 3.6 offers the following improvements and new functionality : - The package can now be used together with the 3D Periodic Triangulation package to compute periodic alpha shapes. -6.5 2D/3D Triangulations, 2D Segment Delaunay Graph, 2D Apollonius Graph +6.5 2D/3D Triangulations, 2D Segment Delaunay Graph, 2D Apollonius Graph, + and 3D Periodic Triangulations - The constructor and insert function taking ranges now produce structures whose iterator orders is now deterministic (same at each @@ -120,7 +121,7 @@ CGAL 3.6 offers the following improvements and new functionality : pertuber and an exuder. Each of these processes can be activated or not, and tuned to the users needs and to available computer resources. -8 Support library

+8 Support library 8.1 CGAL ipelets diff --git a/Installation/INSTALL b/Installation/INSTALL index 31a19cf7926..ecce937c75c 100644 --- a/Installation/INSTALL +++ b/Installation/INSTALL @@ -19,6 +19,9 @@ at . For more information about CGAL, see the . +In the current file, x.y is an implicit replacement for the current version +of CGAL (3.5.1, 3.6, and so on). + PREREQUISITES ============= @@ -49,13 +52,13 @@ CGAL packages, some are only needed for demos. - GMP (>= 4.1.4) http://gmplib.org/ - or precompiled version that can be downloaded with CGAL-3.5-Setup.exe + or precompiled version that can be downloaded with CGAL-x.y-Setup.exe based on http://fp.gladman.plus.com/computing/gmp4win.htm - MPFR (>= 2.2.1) http://www.mpfr.org/ - or precompiled version that can be downloaded with CGAL-3.5-Setup.exe + or precompiled version that can be downloaded with CGAL-x.y-Setup.exe based on http://fp.gladman.plus.com/computing/gmp4win.htm - LEDA (>= 6.2) @@ -85,13 +88,13 @@ CGAL packages, some are only needed for demos. o Approximation of Ridges and Umbilics o Planar Parameterization of Triangulated Surface Meshes http://www.netlib.org/blas/, http://www.netlib.org/lapack/ - or precompiled version that can be downloaded with CGAL-3.5-Setup.exe + or precompiled version that can be downloaded with CGAL-x.y-Setup.exe - TAUCS (sparse matrix solver) Accelerates the package: o Planar Parameterization of Triangulated Surface Meshes http://www.tau.ac.il/~stoledo/taucs/ - or precompiled version that can be downloaded with CGAL-3.5-Setup.exe + or precompiled version that can be downloaded with CGAL-x.y-Setup.exe * Miscellaneous diff --git a/Installation/doc_tex/Installation/installation.tex b/Installation/doc_tex/Installation/installation.tex index 9d190a36250..8cb2ef09e95 100644 --- a/Installation/doc_tex/Installation/installation.tex +++ b/Installation/doc_tex/Installation/installation.tex @@ -86,11 +86,11 @@ This document describes how to install \cgal\ on Windows, Unix-like systems and Ideally, installing \cgal amounts to: \begin{verbatim} - cd CGAL-3.5 # go to CGAL directory + cd CGAL-3.6 # 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.5 . # configure the examples + cmake -DCGAL_DIR=$HOME/CGAL-3.6 . # configure the examples make # build the examples \end{verbatim} %% $ This dollar is there to trick syntax highlighting in emacs @@ -107,7 +107,7 @@ e.g. for numeric solvers, or visualization. \subsection{Compilers} In order to build the \cgal\ libraries, you need a \CC\ compiler. -\cgal~3.5 is supported for the following compilers/operating systems: +\cgal~3.6 is supported for the following compilers/operating systems: \begin{center}\index{compilers!supported}\index{supported compilers} \renewcommand{\arraystretch}{1.3} @@ -204,16 +204,16 @@ on univariate polynomials. It can be downloaded from \rspage. The \cgal\ library can be downloaded from \path'http://www.cgal.org/download.html'. -After you have downloaded the file \texttt{CGAL-3.5.tar.gz} containing the +After you have downloaded the file \texttt{CGAL-3.6.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.5.tar.gz + tar xzf CGAL-3.6.tar.gz \end{verbatim} -When you are on Windows you may download and run the \texttt{CGAL-3.5-Setup.exe}. It is a +When you are on Windows you may download and run the \texttt{CGAL-3.6-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. @@ -259,7 +259,7 @@ 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.5, the configuration is generated with \cmake, a +For CGAL-3.6, the configuration is generated with \cmake, a cross-platform build system. 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. @@ -276,7 +276,7 @@ argument the root directory of \cgal. For example: {\ccTexHtml{\scriptsize}{} \begin{verbatim} - cd CGAL-3.5 + cd CGAL-3.6 cmake-gui . # Notice the dot to indicate the current directory. \end{verbatim} } @@ -304,7 +304,7 @@ Alternatively, you can run the command-line tool called {\ccTexHtml{\scriptsize}{} \begin{verbatim} - cd CGAL-3.5 + cd CGAL-3.6 cmake . # Notice the dot to indicate the current directory. \end{verbatim} } @@ -336,7 +336,7 @@ build files). For example, the following generates solution files for use in Vis {\ccTexHtml{\scriptsize}{} \begin{verbatim} - cd CGAL-3.5 + cd CGAL-3.6 cmake -G"Visual Studio 9 2008" . \end{verbatim} } @@ -348,7 +348,7 @@ specify the desired compiler in the call to \cmake{}, as in this example: {\ccTexHtml{\scriptsize}{} \begin{verbatim} - cd CGAL-3.5 + cd CGAL-3.6 cmake -DCMAKE_CXX_COMPILER:FILEPATH=g++-3.4 . \end{verbatim} } @@ -403,7 +403,7 @@ If you turn off the configuration of a library, you can still configure it manua {\ccTexHtml{\scriptsize}{} \begin{verbatim} - cd CGAL-3.5/src/CGALQt4 + cd CGAL-3.6/src/CGALQt4 cmake . # configures only the CGAL_Qt4 library \end{verbatim} } @@ -456,12 +456,12 @@ You can, for example, generate subdirectories \cgaldir{}\texttt{/cmake/platforms {\ccTexHtml{\scriptsize}{} \begin{verbatim} -mkdir CGAL-3.5/cmake/platforms/debug -cd CGAL-3.5/cmake/platforms/debug +mkdir CGAL-3.6/cmake/platforms/debug +cd CGAL-3.6/cmake/platforms/debug cmake -DCMAKE_BUILD_TYPE=Debug ../../.. -mkdir CGAL-3.5/cmake/platforms/release -cd CGAL-3.5/cmake/platforms/release +mkdir CGAL-3.6/cmake/platforms/release +cd CGAL-3.6/cmake/platforms/release cmake -DCMAKE_BUILD_TYPE=Release ../../.. \end{verbatim} } @@ -482,7 +482,7 @@ succeeding build step as follows: {\ccTexHtml{\scriptsize}{} \begin{verbatim} -cd CGAL-3.5 +cd CGAL-3.6 # build all the selected libraries at once @@ -580,7 +580,7 @@ installation in a {\sc Unix}-like environment: {\ccTexHtml{\scriptsize}{} \begin{verbatim} -cd CGAL-3.5 +cd CGAL-3.6 cmake . # configure make # compile @@ -602,7 +602,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.5}. +\texttt{\$CMAKE\_INSTALLED\_PREFIX/lib/CGAL-3.6}. \section{Configuring and Building Programs Using \cgal} @@ -621,8 +621,8 @@ to indicate the location of that config file in the \cmake\ variable {\ccTexHtml{\scriptsize}{} \begin{verbatim} -cd CGAL-3.5/examples/Straight_skeleton_2 -cmake -DCGAL_DIR=$HOME/CGAL-3.5 . +cd CGAL-3.6/examples/Straight_skeleton_2 +cmake -DCGAL_DIR=$HOME/CGAL-3.6 . make \end{verbatim} @@ -662,13 +662,13 @@ controlling variable right up front: {\ccTexHtml{\scriptsize}{} \begin{verbatim} -cd CGAL-3.5 +cd CGAL-3.6 cmake -DCMAKE_BUILD_TYPE=Release -DCMAKE_CXX_FLAGS=-g . -cd CGAL-3.5/examples/Straight_skeleton_2 +cd CGAL-3.6/examples/Straight_skeleton_2 -cmake -DCGAL_DIR=CGAL-3.5 -DCMAKE_BUILD_TYPE=Debug -DCMAKE_CXX_FLAGS=-O2 -DCGAL_DONT_OVERRIDE_CMAKE_FLAGS=TRUE . +cmake -DCGAL_DIR=CGAL-3.6 -DCMAKE_BUILD_TYPE=Debug -DCMAKE_CXX_FLAGS=-O2 -DCGAL_DONT_OVERRIDE_CMAKE_FLAGS=TRUE . \end{verbatim} } @@ -1171,7 +1171,7 @@ 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.5/cmake/platforms/a +-- Build files have been written to: C:/Work/Active/GeometryFactory/CGAL/Autotest/CGAL-3.6/cmake/platforms/a \end{verbatim} } diff --git a/Intersections_3/test/Intersections_3/triangle_other_intersection_test.cpp b/Intersections_3/test/Intersections_3/triangle_other_intersection_test.cpp index 3da1ca85c45..d723a38d796 100644 --- a/Intersections_3/test/Intersections_3/triangle_other_intersection_test.cpp +++ b/Intersections_3/test/Intersections_3/triangle_other_intersection_test.cpp @@ -626,7 +626,7 @@ int main() // ----------------------------------- // Test random intersection // ----------------------------------- - srand(time(NULL)); + srand( static_cast(time(NULL)) ); std::cout << std::endl << "Test random intersections" << std::endl; std::cout << "\tTesting with Simple_cartesian..." << std::endl ; random_test(); diff --git a/Number_types/include/CGAL/GMP/Gmpfi_type.h b/Number_types/include/CGAL/GMP/Gmpfi_type.h index 4422788f848..3fc4d6b7372 100644 --- a/Number_types/include/CGAL/GMP/Gmpfi_type.h +++ b/Number_types/include/CGAL/GMP/Gmpfi_type.h @@ -205,7 +205,7 @@ _GMPFI_CONSTRUCTOR_FROM_SCALAR(Gmpq); template Gmpfi(std::pair endpoints, - Gmpfi::Precision_type p=Gmpfi::get_default_precision()){ + Gmpfi::Precision_type p=get_default_precision()){ CGAL_assertion(p>=MPFR_PREC_MIN&&p<=MPFR_PREC_MAX); Gmpfr l(endpoints.first,std::round_toward_neg_infinity,p), r(endpoints.second,std::round_toward_infinity,p); @@ -716,10 +716,10 @@ std::pair,long> Gmpfi::to_interval_exp()const{ double d_low=mpfr_get_d_2exp(e1,left_mpfr(),GMP_RNDD); double d_upp=mpfr_get_d_2exp(e2,right_mpfr(),GMP_RNDU); if(e1e2){ - d_low=d_low/pow(2,(*e1)-(*e2)); - *e2=*e1; + d_low=d_low/pow(2.,(double)((*e1)-(*e2))); + *e1=*e2; } return std::make_pair(std::make_pair(d_low,d_upp),*e1); } diff --git a/wininst/developer_scripts/environment_variables.ini b/wininst/developer_scripts/environment_variables.ini index 62bdbdae529..484191fcc29 100644 --- a/wininst/developer_scripts/environment_variables.ini +++ b/wininst/developer_scripts/environment_variables.ini @@ -33,7 +33,7 @@ Left=0 Right=-1 Top=25 Bottom=-1 -Text=Enviroment variables to set +Text=Environment variables to set [Field 5] Type=Label @@ -77,7 +77,7 @@ Left=10 Right=-10 Top=95 Bottom=105 -Text=Add CGAL-3.5/auxiliary/gmp/lib to the PATH +Text=Add CGAL/auxiliary/gmp/lib to the PATH State=1 [Field 10] @@ -86,5 +86,5 @@ Left=10 Right=-10 Top=110 Bottom=135 -Text=CGAL-3.5/auxiliary/gmp/lib contains DLL files. If you do not add this to the PATH, make sure to manually move the DLLs to a directory already in the PATH. +Text=CGAL/auxiliary/gmp/lib contains DLL files. If you do not add this to the PATH, make sure to manually move the DLLs to a directory already in the PATH. Flags=DISABLED