approximate_min_ellipsoid_d_configure.h
来自「很多二维 三维几何计算算法 C++ 类库」· C头文件 代码 · 共 167 行
H
167 行
// Copyright (c) 1997-2001 ETH Zurich (Switzerland).// All rights reserved.//// This file is part of CGAL (www.cgal.org); you may redistribute it under// the terms of the Q Public License version 1.0.// See the file LICENSE.QPL distributed with CGAL.//// Licensees holding a valid commercial license may use this file in// accordance with the commercial license agreement provided with the software.//// This file is provided AS IS with NO WARRANTY OF ANY KIND, INCLUDING THE// WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE.//// $URL: svn+ssh://scm.gforge.inria.fr/svn/cgal/branches/CGAL-3.3-branch/Approximate_min_ellipsoid_d/include/CGAL/Approximate_min_ellipsoid_d/Approximate_min_ellipsoid_d_configure.h $// $Id: Approximate_min_ellipsoid_d_configure.h 28726 2006-02-23 14:50:30Z fischerk $// //// Author(s) : Kaspar Fischer <fischerk@inf.ethz.ch>#ifndef CGAL_APPROX_MIN_ELL_CONFIGURE_H#define CGAL_APPROX_MIN_ELL_CONFIGURE_H#include <cassert>#include <iostream>#include <iomanip>#if (defined(CGAL_NO_ASSERTIONS) || defined(NDEBUG)) #undef CGAL_APPEL_ASSERTION_MODE #undef CGAL_APPEL_EXP_ASSERTION_MODE #undef CGAL_APPEL_LOG_MODE #undef CGAL_APPEL_TIMER_MODE #undef CGAL_APPEL_STATS_MODE#else #if defined(CGAL_CHECK_EXPENSIVE) #define CGAL_APPEL_EXP_ASSERTION_MODE #endif #define CGAL_APPEL_ASSERTION_MODE //#define CGAL_APPEL_LOG_MODE // you might want to temporarily uncomment // this for debugging#endif// The following "flags" are best defined at compilation time (e.g.,// by passing -DCGAL_APPEL_LOG_MODE to the (GCC) compiler):// #define CGAL_APPEL_ASSERTION_MODE // enables cheap assertions// #define CGAL_APPEL_EXP_ASSERTION_MODE // enables cheap & expensive assert's// #define CGAL_APPEL_LOG_MODE // enables logging// #define CGAL_APPEL_TIMER_MODE // enables runtime measurements// #define CGAL_APPEL_STATS_MODE // enables statistics// The following debugging routines are available with this package:// (Todo: these routines turned out to not be the most useful for// debugging; one could improve this, but it's only debugging, so who// cares ...)// // - CGAL_APPEL_ASSERT(expr): Asserts that the expression expr evaluates// to true. This only happens when the assertion mode is enabled. This// macro should only be used for cheap assertions (which do not heavily// affect the running time).//// - CGAL_APPEL_ASSERT_EXPENSIVE(expr): Asserts that the Boolean expression// expr evaluates to true. This only happens when expensive assertion// mode is on, and not otherwise. (The assertion mode alone doesn't// enable such assertions.)//// - CGAL_APPEL_LOG(channel,expr): Writes to file channel.log the string// produced by the expression 's << expr' (where s is the stream for// file channel.log). This only happens when the logging mode is// enabled; nothing is done otherwise.// Example: CGAL_APPEL_LOG("debug","i is " << i << std::endl)//// - CGAL_APPEL_IF_ASSERTIONS(expr): evaluates the expression expr when// assertion mode is on; it does nothing otherwise.//// - CGAL_APPEL_TIMER_START(timer): Restarts the timer with name timer.// Nothing happens when the timer mode is disabled (see// CGAL_APPEL_TIMER_MODE above).//// - CGAL_APPEL_TIMER_PRINT(channel,timer,msg): Prints the string msg followed// by the time elapsed since the last CGAL_APPEL_TIMER_START(timer). The// destination is either channel 'channel' in case logging mode is on,// or std::cout otherwise.//// - CGAL_APPEL_TIMER_STRING(timer): Returns a string with the number of// seconds elapsed since the last CGAL_APPEL_TIMER_START(timer).//// - CGAL_APPEL_IF_TIMING(expr): evaluates the expression when timing mode is// enabled (see CGAL_APPEL_TIMER_MODE above), or does nothing otherwise.//// - CGAL_APPEL_IF_STATS(expr): evaluates the expression when stats mode is// enabled (see CGAL_APPEL_STATS_MODE above), or does nothing otherwise.//#ifdef CGAL_APPEL_ASSERTION_MODE #define CGAL_APPEL_ASSERT(expr) assert(expr)#else #define CGAL_APPEL_ASSERT(expr) #endif#ifdef CGAL_APPEL_EXP_ASSERTION_MODE #define CGAL_APPEL_ASSERT_EXPENSIVE(expr) CGAL_assertion(expr)#else #define CGAL_APPEL_ASSERT_EXPENSIVE(expr) #endif#ifdef CGAL_APPEL_LOG_MODE #define CGAL_APPEL_LOG(channel,expr) \ { \ std::stringstream s; \ s << expr; \ CGAL::Approximate_min_ellipsoid_d_impl:: \ Logger::instance().log(channel,s.str()); \ }#else #define CGAL_APPEL_LOG(channel,expr) #endif#if defined(CGAL_APPEL_ASSERTION_MODE)||defined(CGAL_APPEL_EXP_ASSERTION_MODE) #define CGAL_APPEL_IF_ASSERTIONS(expr) expr#else #define CGAL_APPEL_IF_ASSERTIONS(expr) #endif#ifdef CGAL_APPEL_TIMER_MODE #define CGAL_APPEL_TIME(expr) expr #define CGAL_APPEL_TIMER_START(timer) \ { \ CGAL::Approximate_min_ellipsoid_d_impl::Timer::instance().start(timer); \ } #ifdef CGAL_APPEL_LOG_MODE #define CGAL_APPEL_TIMER_PRINT(channel,timer,msg) \ { \ CGAL_APPEL_LOG(channel,msg \ << std::setiosflags(std::ios::fixed) \ << std::setprecision(5) \ << CGAL::Approximate_min_ellipsoid_d_impl:: \ Timer::instance().lapse(timer) \ << 's' << std::endl) \ } #else #define CGAL_APPEL_TIMER_PRINT(channel,timer,msg) \ { \ std::cerr << msg << std::setiosflags(std::ios::fixed) \ << std::setprecision(5) \ << CGAL::Approximate_min_ellipsoid_d_impl:: \ Timer::instance().lapse(timer) \ << 's' << std::endl; \ } #endif #define CGAL_APPEL_TIMER_STRING(timer) \ CGAL::Approximate_min_ellipsoid_d_impl::Timer::instance().lapse(timer)#else #define CGAL_APPEL_TIME(expr) #define CGAL_APPEL_TIMER_START(timer) #define CGAL_APPEL_TIMER_PRINT(channel,timer,msg) #define CGAL_APPEL_TIMER_STRING(timer) #endif#ifdef CGAL_APPEL_STATS_MODE #define CGAL_APPEL_IF_STATS(expr) expr#else #define CGAL_APPEL_IF_STATS(expr) #endif#include <CGAL/Approximate_min_ellipsoid_d/Approximate_min_ellipsoid_d_debug.h>#endif // CGAL_APPROX_MIN_ELL_CONFIGURE_H
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?