Rocstar  1.0
Rocstar multiphysics simulation application
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages
circulator.h File Reference
#include <CGAL/basic.h>
#include <cstddef>
#include <functional>
#include <iterator>
#include <CGAL/circulator_bases.h>
Include dependency graph for circulator.h:
This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Classes

struct  I_Circulator_traits< C >
 
struct  I_Circulator_traits< Forward_circulator_tag >
 
struct  I_Circulator_traits< Bidirectional_circulator_tag >
 
struct  I_Circulator_traits< Random_access_circulator_tag >
 
struct  I_Circulator_size_traits< Tag, IC >
 
struct  I_Circulator_size_traits< Forward_circulator_tag, C >
 
struct  I_Circulator_size_traits< Bidirectional_circulator_tag, C >
 
struct  I_Circulator_size_traits< Random_access_circulator_tag, C >
 
struct  I_Iterator_from_circulator_traits< CCtg >
 
struct  I_Iterator_from_circulator_traits< Forward_circulator_tag >
 
struct  I_Iterator_from_circulator_traits< Bidirectional_circulator_tag >
 
struct  I_Iterator_from_circulator_traits< Random_access_circulator_tag >
 
struct  I_Circulator_from_iterator_traits< ICtg >
 
struct  I_Circulator_from_iterator_traits< std::forward_iterator_tag >
 
struct  I_Circulator_from_iterator_traits< std::bidirectional_iterator_tag >
 
struct  I_Circulator_from_iterator_traits< std::random_access_iterator_tag >
 
struct  Circulator_traits< C >
 
struct  I_Assert_tag_class< Base >
 
struct  Circulator_or_iterator_tag
 
class  Iterator_from_circulator< C, Ref, Ptr >
 
class  Container_from_circulator< C >
 
class  Circulator_from_container< Ctnr >
 
class  Const_circulator_from_container< Ctnr >
 
class  Circulator_from_iterator< I, TT, SS, DD >
 

Macros

#define CGAL_PROTECT_CSTDDEF
 
#define CGAL_PROTECT_FUNCTIONAL
 
#define CGAL_PROTECT_ITERATOR
 
#define CGAL_NULL_TYPE   int
 
#define CGAL_CIRC_NULL   NULL
 
#define Forward_container_from_circulator   Container_from_circulator
 
#define Bidirectional_container_from_circulator   Container_from_circulator
 
#define Random_access_container_from_circulator   Container_from_circulator
 
#define Forward_circulator_from_iterator   Circulator_from_iterator
 
#define Forward_const_circulator_from_iterator   Circulator_from_iterator
 
#define Bidirectional_circulator_from_iterator   Circulator_from_iterator
 
#define Bidirectional_const_circulator_from_iterator   Circulator_from_iterator
 
#define Random_access_circulator_from_iterator   Circulator_from_iterator
 
#define Random_access_const_circulator_from_iterator   Circulator_from_iterator
 
#define Forward_circulator_from_container   Circulator_from_container
 
#define Bidirectional_circulator_from_container   Circulator_from_container
 
#define Random_access_circulator_from_container   Circulator_from_container
 
#define Forward_const_circulator_from_container   Const_circulator_from_container
 
#define Bidirectional_const_circulator_from_container   Const_circulator_from_container
 
#define Random_access_const_circulator_from_container   Const_circulator_from_container
 
#define CGAL_ASSERT_COMPILE_TIME_TAG   1
 
#define CGAL_For_all(ic1, ic2)
 
#define CGAL_For_all_backwards(ic1, ic2)
 

Functions

template<class C >
Circulator_traits< C >::category query_circulator_or_iterator (const C &)
 
template<class Tag , class Derived >
void Assert_compile_time_tag (const Tag &, const Derived &b)
 
template<class C >
void Assert_circulator (const C &c)
 
template<class I >
void Assert_iterator (const I &i)
 
template<class I >
void Assert_input_category (const I &i)
 
template<class I >
void Assert_output_category (const I &i)
 
template<class IC >
void Assert_forward_category (const IC &ic)
 
template<class IC >
void Assert_bidirectional_category (const IC &ic)
 
template<class IC >
void Assert_random_access_category (const IC &ic)
 
void I_Has_to_be_at_least (std::input_iterator_tag, std::input_iterator_tag)
 
void I_Has_to_be_at_least (std::input_iterator_tag, std::forward_iterator_tag)
 
void I_Has_to_be_at_least (std::input_iterator_tag, std::bidirectional_iterator_tag)
 
void I_Has_to_be_at_least (std::input_iterator_tag, std::random_access_iterator_tag)
 
void I_Has_to_be_at_least (std::output_iterator_tag, std::output_iterator_tag)
 
void I_Has_to_be_at_least (std::output_iterator_tag, std::forward_iterator_tag)
 
void I_Has_to_be_at_least (std::output_iterator_tag, std::bidirectional_iterator_tag)
 
void I_Has_to_be_at_least (std::output_iterator_tag, std::random_access_iterator_tag)
 
void I_Has_to_be_at_least (std::forward_iterator_tag, std::forward_iterator_tag)
 
void I_Has_to_be_at_least (std::forward_iterator_tag, std::bidirectional_iterator_tag)
 
void I_Has_to_be_at_least (std::forward_iterator_tag, std::random_access_iterator_tag)
 
void I_Has_to_be_at_least (std::bidirectional_iterator_tag, std::bidirectional_iterator_tag)
 
void I_Has_to_be_at_least (std::bidirectional_iterator_tag, std::random_access_iterator_tag)
 
void I_Has_to_be_at_least (std::random_access_iterator_tag, std::random_access_iterator_tag)
 
template<class I >
void Assert_is_at_least_input_category (const I &i)
 
template<class I >
void Assert_is_at_least_output_category (const I &i)
 
template<class IC >
void Assert_is_at_least_forward_category (const IC &ic)
 
template<class IC >
void Assert_is_at_least_bidirectional_category (const IC &ic)
 
template<class IC >
void Assert_is_at_least_random_access_category (const IC &ic)
 
template<class C >
bool I_is_empty_range (const C &c1, const C &, Circulator_tag)
 
template<class I >
bool I_is_empty_range (const I &i1, const I &i2, Iterator_tag)
 
template<class IC >
bool is_empty_range (const IC &ic1, const IC &ic2)
 
Circulator_or_iterator_tag check_circulator_or_iterator (Circulator_tag)
 
Circulator_or_iterator_tag check_circulator_or_iterator (Iterator_tag)
 
template<class IC >
void Assert_circulator_or_iterator (const IC &ic)
 
template<class C >
C::size_type I_min_circulator_size (const C &c)
 
template<class C >
C::size_type I_circulator_size (const C &c, Forward_circulator_tag)
 
template<class C >
C::size_type I_circulator_size (const C &c, Bidirectional_circulator_tag)
 
template<class C >
C::size_type I_circulator_size (const C &c, Random_access_circulator_tag)
 
template<class C >
C::size_type circulator_size (const C &c)
 
template<class C >
C::difference_type I_circulator_distance (C c, const C &d, Forward_circulator_tag)
 
template<class C >
C::difference_type I_circulator_distance (const C &c, const C &d, Bidirectional_circulator_tag)
 
template<class C >
C::difference_type I_circulator_distance (const C &c, const C &d, Random_access_circulator_tag)
 
template<class C >
C::difference_type circulator_distance (const C &c, const C &d)
 
template<class C >
std::iterator_traits< C >
::difference_type 
I_iterator_distance (const C &c1, const C &c2, Circulator_tag)
 
template<class I >
std::iterator_traits< I >
::difference_type 
I_iterator_distance (const I &i1, const I &i2, Iterator_tag)
 
template<class IC >
std::iterator_traits< IC >
::difference_type 
iterator_distance (const IC &ic1, const IC &ic2)
 
template<class C >
I_get_min_circulator (C c, Forward_circulator_tag)
 
template<class C >
I_get_min_circulator (C c, Bidirectional_circulator_tag)
 
template<class C >
I_get_min_circulator (C c, Random_access_circulator_tag)
 
template<class C >
get_min_circulator (C c)
 
template<class I , class U >
non_negative_mod (I n, U m)
 
template<class Dist , class C , class Ref , class Ptr >
Iterator_from_circulator< C,
Ref, Ptr > 
operator+ (Dist n, const Iterator_from_circulator< C, Ref, Ptr > &circ)
 
template<class Ctnr >
Circulator_from_container< Ctnr > operator+ (typename Circulator_from_container< Ctnr >::difference_type n, const Circulator_from_container< Ctnr > &c)
 
template<class Ctnr >
Const_circulator_from_container
< Ctnr > 
operator+ (typename Const_circulator_from_container< Ctnr >::difference_type n, const Const_circulator_from_container< Ctnr > &c)
 
template<class D , class I , class T , class Size , class Dist >
Circulator_from_iterator< I, T,
Size, Dist > 
operator+ (D n, const Circulator_from_iterator< I, T, Size, Dist > &circ)
 

Macro Definition Documentation

#define Bidirectional_circulator_from_container   Circulator_from_container

Definition at line 110 of file circulator.h.

#define Bidirectional_circulator_from_iterator   Circulator_from_iterator

Definition at line 99 of file circulator.h.

#define Bidirectional_const_circulator_from_container   Const_circulator_from_container

Definition at line 117 of file circulator.h.

#define Bidirectional_const_circulator_from_iterator   Circulator_from_iterator

Definition at line 101 of file circulator.h.

#define Bidirectional_container_from_circulator   Container_from_circulator

Definition at line 90 of file circulator.h.

#define CGAL_ASSERT_COMPILE_TIME_TAG   1

Definition at line 230 of file circulator.h.

#define CGAL_For_all (   ic1,
  ic2 
)
Value:
for ( bool _circ_loop_flag = ! ::CGAL::is_empty_range( ic1, ic2); \
_circ_loop_flag; \
_circ_loop_flag = ((++ic1) != (ic2)) )
bool is_empty_range(const IC &ic1, const IC &ic2)
Definition: circulator.h:362

Definition at line 389 of file circulator.h.

#define CGAL_For_all_backwards (   ic1,
  ic2 
)
Value:
for ( bool _circ_loop_flag = ! ::CGAL::is_empty_range( ic1, ic2); \
_circ_loop_flag; \
_circ_loop_flag = ((ic1) != (--ic2)) )
bool is_empty_range(const IC &ic1, const IC &ic2)
Definition: circulator.h:362

Definition at line 394 of file circulator.h.

#define CGAL_NULL_TYPE   int

Definition at line 80 of file circulator.h.

#define CGAL_PROTECT_CSTDDEF

Definition at line 60 of file circulator.h.

#define CGAL_PROTECT_FUNCTIONAL

Definition at line 64 of file circulator.h.

#define CGAL_PROTECT_ITERATOR

Definition at line 68 of file circulator.h.

#define Forward_circulator_from_container   Circulator_from_container

Definition at line 108 of file circulator.h.

#define Forward_circulator_from_iterator   Circulator_from_iterator

Definition at line 95 of file circulator.h.

#define Forward_const_circulator_from_container   Const_circulator_from_container

Definition at line 115 of file circulator.h.

#define Forward_const_circulator_from_iterator   Circulator_from_iterator

Definition at line 97 of file circulator.h.

#define Forward_container_from_circulator   Container_from_circulator

Definition at line 88 of file circulator.h.

#define Random_access_circulator_from_container   Circulator_from_container

Definition at line 112 of file circulator.h.

#define Random_access_circulator_from_iterator   Circulator_from_iterator

Definition at line 103 of file circulator.h.

#define Random_access_const_circulator_from_container   Const_circulator_from_container

Definition at line 119 of file circulator.h.

#define Random_access_const_circulator_from_iterator   Circulator_from_iterator

Definition at line 105 of file circulator.h.

#define Random_access_container_from_circulator   Container_from_circulator

Definition at line 92 of file circulator.h.

Function Documentation

void Assert_bidirectional_category ( const IC &  ic)
inline

Definition at line 269 of file circulator.h.

References Assert_compile_time_tag().

269  {
270  Assert_compile_time_tag( std::bidirectional_iterator_tag(),
271  //std::iterator_category(ic));
272  std::iterator_traits<IC>::iterator_category());
273 
274 }
void Assert_compile_time_tag(const Tag &, const Derived &b)

Here is the call graph for this function:

void Assert_circulator ( const C &  c)
inline

Definition at line 243 of file circulator.h.

References Assert_compile_time_tag(), and query_circulator_or_iterator().

Referenced by I_min_circulator_size().

243  {
245 }
Circulator_traits< C >::category query_circulator_or_iterator(const C &)
Definition: circulator.h:222
void Assert_compile_time_tag(const Tag &, const Derived &b)

Here is the call graph for this function:

Here is the caller graph for this function:

void Assert_circulator_or_iterator ( const IC &  ic)
inline

Definition at line 383 of file circulator.h.

References Assert_compile_time_tag(), check_circulator_or_iterator(), and query_circulator_or_iterator().

383  {
387 }
**********************************************************************Rocstar Simulation Suite Illinois Rocstar LLC All rights reserved ****Illinois Rocstar LLC IL **www illinoisrocstar com **sales illinoisrocstar com WITHOUT WARRANTY OF ANY **EXPRESS OR INCLUDING BUT NOT LIMITED TO THE WARRANTIES **OF FITNESS FOR A PARTICULAR PURPOSE AND **NONINFRINGEMENT IN NO EVENT SHALL THE CONTRIBUTORS OR **COPYRIGHT HOLDERS BE LIABLE FOR ANY DAMAGES OR OTHER WHETHER IN AN ACTION OF TORT OR **Arising OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE **USE OR OTHER DEALINGS WITH THE SOFTWARE **********************************************************************INTERFACE SUBROUTINE ic
Circulator_or_iterator_tag check_circulator_or_iterator(Circulator_tag)
Definition: circulator.h:373
Circulator_traits< C >::category query_circulator_or_iterator(const C &)
Definition: circulator.h:222
void Assert_compile_time_tag(const Tag &, const Derived &b)

Here is the call graph for this function:

void Assert_compile_time_tag ( const Tag &  ,
const Derived &  b 
)
inline

Definition at line 236 of file circulator.h.

References I_Assert_tag_class< Base >::match_compile_time_tag(), and x.

236  {
239 }
void int int REAL * x
Definition: read.cpp:74
void match_compile_time_tag(const Base &) const
Definition: circulator.h:233

Here is the call graph for this function:

void Assert_forward_category ( const IC &  ic)
inline

Definition at line 263 of file circulator.h.

References Assert_compile_time_tag().

263  {
264  Assert_compile_time_tag( std::forward_iterator_tag(),
265  //std::iterator_category(ic));
266  std::iterator_traits<IC>::iterator_category());
267 }
void Assert_compile_time_tag(const Tag &, const Derived &b)

Here is the call graph for this function:

void Assert_input_category ( const I &  i)
inline

Definition at line 251 of file circulator.h.

References Assert_compile_time_tag().

251  {
252  Assert_compile_time_tag( std::input_iterator_tag(),
253  // std::iterator_category(i));
254  std::iterator_traits<I>::iterator_category());
255 }
void Assert_compile_time_tag(const Tag &, const Derived &b)

Here is the call graph for this function:

void Assert_is_at_least_bidirectional_category ( const IC &  ic)
inline

Definition at line 339 of file circulator.h.

References I_Has_to_be_at_least().

339  {
340  I_Has_to_be_at_least( std::bidirectional_iterator_tag(),
341  //std::iterator_category(ic)) ;
342  std::iterator_traits<IC>::iterator_category());
343  }
void I_Has_to_be_at_least(std::input_iterator_tag, std::input_iterator_tag)
Definition: circulator.h:286

Here is the call graph for this function:

void Assert_is_at_least_forward_category ( const IC &  ic)
inline

Definition at line 333 of file circulator.h.

References I_Has_to_be_at_least().

333  {
334  I_Has_to_be_at_least( std::forward_iterator_tag(),
335  //std::iterator_category(ic));
336  std::iterator_traits<IC>::iterator_category());
337 }
void I_Has_to_be_at_least(std::input_iterator_tag, std::input_iterator_tag)
Definition: circulator.h:286

Here is the call graph for this function:

void Assert_is_at_least_input_category ( const I &  i)
inline

Definition at line 321 of file circulator.h.

References I_Has_to_be_at_least().

321  {
322  I_Has_to_be_at_least( std::input_iterator_tag(),
323  //std::iterator_category(i));
324  std::iterator_traits<I>::iterator_category());
325 }
void I_Has_to_be_at_least(std::input_iterator_tag, std::input_iterator_tag)
Definition: circulator.h:286

Here is the call graph for this function:

void Assert_is_at_least_output_category ( const I &  i)
inline

Definition at line 327 of file circulator.h.

References I_Has_to_be_at_least().

327  {
328  I_Has_to_be_at_least( std::output_iterator_tag(),
329  //std::iterator_category(i));
330  std::iterator_traits<I>::iterator_category());
331 }
void I_Has_to_be_at_least(std::input_iterator_tag, std::input_iterator_tag)
Definition: circulator.h:286

Here is the call graph for this function:

void Assert_is_at_least_random_access_category ( const IC &  ic)
inline

Definition at line 345 of file circulator.h.

References I_Has_to_be_at_least().

345  {
346  I_Has_to_be_at_least( std::random_access_iterator_tag(),
347  //std::iterator_category(ic));
348  std::iterator_traits<IC>::iterator_category());
349 }
void I_Has_to_be_at_least(std::input_iterator_tag, std::input_iterator_tag)
Definition: circulator.h:286

Here is the call graph for this function:

void Assert_iterator ( const I &  i)
inline

Definition at line 247 of file circulator.h.

References Assert_compile_time_tag(), and query_circulator_or_iterator().

247  {
249 }
Circulator_traits< C >::category query_circulator_or_iterator(const C &)
Definition: circulator.h:222
blockLoc i
Definition: read.cpp:79
void Assert_compile_time_tag(const Tag &, const Derived &b)

Here is the call graph for this function:

void Assert_output_category ( const I &  i)
inline

Definition at line 257 of file circulator.h.

References Assert_compile_time_tag().

257  {
258  Assert_compile_time_tag( std::output_iterator_tag(),
259  //std::iterator_category(i));
260  std::iterator_traits<I>::iterator_category());
261 }
void Assert_compile_time_tag(const Tag &, const Derived &b)

Here is the call graph for this function:

void Assert_random_access_category ( const IC &  ic)
inline

Definition at line 276 of file circulator.h.

References Assert_compile_time_tag().

Referenced by I_min_circulator_size().

276  {
277  Assert_compile_time_tag( std::random_access_iterator_tag(),
278  //std::iterator_category(ic));
279  std::iterator_traits<IC>::iterator_category());
280 
281 }
void Assert_compile_time_tag(const Tag &, const Derived &b)

Here is the call graph for this function:

Here is the caller graph for this function:

Circulator_or_iterator_tag check_circulator_or_iterator ( Circulator_tag  )
inline

Definition at line 373 of file circulator.h.

Referenced by Assert_circulator_or_iterator().

373  {
375 }

Here is the caller graph for this function:

Circulator_or_iterator_tag check_circulator_or_iterator ( Iterator_tag  )
inline

Definition at line 378 of file circulator.h.

378  {
380 }
C::difference_type circulator_distance ( const C &  c,
const C &  d 
)
inline

Definition at line 481 of file circulator.h.

References I_circulator_distance().

Referenced by I_iterator_distance().

481  {
482  return I_circulator_distance( c, d,
483  //std::iterator_category(c));
484  std::iterator_traits<C>::iterator_category());
485 }
const NT & d
C::difference_type I_circulator_distance(C c, const C &d, Forward_circulator_tag)
Definition: circulator.h:450

Here is the call graph for this function:

Here is the caller graph for this function:

C::size_type circulator_size ( const C &  c)
inline

Definition at line 443 of file circulator.h.

References I_circulator_size().

443  {
444  return I_circulator_size( c,
445  //std::iterator_category(c));
446  std::iterator_traits<C>::iterator_category());
447 }
C::size_type I_circulator_size(const C &c, Forward_circulator_tag)
Definition: circulator.h:417

Here is the call graph for this function:

C get_min_circulator ( c)
inline

Definition at line 517 of file circulator.h.

References I_get_min_circulator().

517  {
518  return I_get_min_circulator( c,
519  //std::iterator_category(c));
520  std::iterator_traits<C>::iterator_category());
521 }
C I_get_min_circulator(C c, Forward_circulator_tag)
Definition: circulator.h:505

Here is the call graph for this function:

C::difference_type I_circulator_distance ( c,
const C &  d,
Forward_circulator_tag   
)

Definition at line 450 of file circulator.h.

References CGAL_CIRC_NULL, and n.

Referenced by circulator_distance(), and I_circulator_distance().

450  {
451  // Simply count.
452  if ( c == CGAL_CIRC_NULL)
453  return 0;
454  typedef typename C::difference_type difference_type;
455  difference_type n = 0;
456  do {
457  ++n;
458  } while( ++c != d);
459  return n;
460 }
const NT & d
#define CGAL_CIRC_NULL
Definition: circulator.h:81
const NT & n

Here is the caller graph for this function:

C::difference_type I_circulator_distance ( const C &  c,
const C &  d,
Bidirectional_circulator_tag   
)
inline

Definition at line 463 of file circulator.h.

References I_circulator_distance().

464  {
466 }
const NT & d
C::difference_type I_circulator_distance(C c, const C &d, Forward_circulator_tag)
Definition: circulator.h:450

Here is the call graph for this function:

C::difference_type I_circulator_distance ( const C &  c,
const C &  d,
Random_access_circulator_tag   
)
inline

Definition at line 469 of file circulator.h.

References I_min_circulator_size().

470  {
471  typedef typename C::difference_type difference_type;
472  typedef typename C::size_type size_type;
473  if ( d - c > 0)
474  return (d - c);
475  return difference_type( size_type( I_min_circulator_size(
476  c.min_circulator()))) - (c-d);
477 }
const NT & d
C::size_type I_min_circulator_size(const C &c)
Definition: circulator.h:403

Here is the call graph for this function:

C::size_type I_circulator_size ( const C &  c,
Forward_circulator_tag   
)

Definition at line 417 of file circulator.h.

References CGAL_CIRC_NULL, d, and n.

Referenced by circulator_size(), and I_circulator_size().

417  {
418  // Simply count.
419  if ( c == CGAL_CIRC_NULL)
420  return 0;
421  typedef typename C::size_type size_type;
422  size_type n = 0;
423  C d = c;
424  do {
425  ++n;
426  ++d;
427  } while( c != d);
428  return n;
429 }
const NT & d
#define CGAL_CIRC_NULL
Definition: circulator.h:81
const NT & n

Here is the caller graph for this function:

C::size_type I_circulator_size ( const C &  c,
Bidirectional_circulator_tag   
)
inline

Definition at line 432 of file circulator.h.

References I_circulator_size().

432  {
434 }
C::size_type I_circulator_size(const C &c, Forward_circulator_tag)
Definition: circulator.h:417

Here is the call graph for this function:

C::size_type I_circulator_size ( const C &  c,
Random_access_circulator_tag   
)
inline

Definition at line 437 of file circulator.h.

References I_min_circulator_size().

437  {
438  return I_min_circulator_size( c.min_circulator());
439 }
C::size_type I_min_circulator_size(const C &c)
Definition: circulator.h:403

Here is the call graph for this function:

C I_get_min_circulator ( c,
Forward_circulator_tag   
)
inline

Definition at line 505 of file circulator.h.

Referenced by get_min_circulator().

505  {
506  return c;
507 }

Here is the caller graph for this function:

C I_get_min_circulator ( c,
Bidirectional_circulator_tag   
)
inline

Definition at line 509 of file circulator.h.

509  {
510  return c;
511 }
C I_get_min_circulator ( c,
Random_access_circulator_tag   
)
inline

Definition at line 513 of file circulator.h.

513  {
514  return c.min_circulator();
515 }
void I_Has_to_be_at_least ( std::input_iterator_tag  ,
std::input_iterator_tag   
)
inline
void I_Has_to_be_at_least ( std::input_iterator_tag  ,
std::forward_iterator_tag   
)
inline

Definition at line 288 of file circulator.h.

289  {}
void I_Has_to_be_at_least ( std::input_iterator_tag  ,
std::bidirectional_iterator_tag   
)
inline

Definition at line 290 of file circulator.h.

291  {}
void I_Has_to_be_at_least ( std::input_iterator_tag  ,
std::random_access_iterator_tag   
)
inline

Definition at line 292 of file circulator.h.

293  {}
void I_Has_to_be_at_least ( std::output_iterator_tag  ,
std::output_iterator_tag   
)
inline

Definition at line 295 of file circulator.h.

296  {}
void I_Has_to_be_at_least ( std::output_iterator_tag  ,
std::forward_iterator_tag   
)
inline

Definition at line 297 of file circulator.h.

298  {}
void I_Has_to_be_at_least ( std::output_iterator_tag  ,
std::bidirectional_iterator_tag   
)
inline

Definition at line 299 of file circulator.h.

300  {}
void I_Has_to_be_at_least ( std::output_iterator_tag  ,
std::random_access_iterator_tag   
)
inline

Definition at line 301 of file circulator.h.

302  {}
void I_Has_to_be_at_least ( std::forward_iterator_tag  ,
std::forward_iterator_tag   
)
inline

Definition at line 304 of file circulator.h.

305  {}
void I_Has_to_be_at_least ( std::forward_iterator_tag  ,
std::bidirectional_iterator_tag   
)
inline

Definition at line 306 of file circulator.h.

307  {}
void I_Has_to_be_at_least ( std::forward_iterator_tag  ,
std::random_access_iterator_tag   
)
inline

Definition at line 308 of file circulator.h.

309  {}
void I_Has_to_be_at_least ( std::bidirectional_iterator_tag  ,
std::bidirectional_iterator_tag   
)
inline

Definition at line 311 of file circulator.h.

312  {}
void I_Has_to_be_at_least ( std::bidirectional_iterator_tag  ,
std::random_access_iterator_tag   
)
inline

Definition at line 313 of file circulator.h.

314  {}
void I_Has_to_be_at_least ( std::random_access_iterator_tag  ,
std::random_access_iterator_tag   
)
inline

Definition at line 316 of file circulator.h.

317  {}
bool I_is_empty_range ( const C &  c1,
const C &  ,
Circulator_tag   
)
inline

Definition at line 352 of file circulator.h.

References CGAL_CIRC_NULL.

Referenced by is_empty_range().

352  {
353  return c1 == CGAL_CIRC_NULL;
354 }
#define CGAL_CIRC_NULL
Definition: circulator.h:81

Here is the caller graph for this function:

bool I_is_empty_range ( const I &  i1,
const I &  i2,
Iterator_tag   
)
inline

Definition at line 357 of file circulator.h.

357  {
358  return i1 == i2;
359 }
std::iterator_traits<C>::difference_type I_iterator_distance ( const C &  c1,
const C &  c2,
Circulator_tag   
)
inline

Definition at line 488 of file circulator.h.

References circulator_distance().

Referenced by iterator_distance().

488  {
489  return circulator_distance( c1, c2);
490 }
C::difference_type circulator_distance(const C &c, const C &d)
Definition: circulator.h:481

Here is the call graph for this function:

Here is the caller graph for this function:

std::iterator_traits<I>::difference_type I_iterator_distance ( const I &  i1,
const I &  i2,
Iterator_tag   
)
inline

Definition at line 494 of file circulator.h.

494  {
495  return std::distance( i1, i2);
496 }
C::size_type I_min_circulator_size ( const C &  c)
inline

Definition at line 403 of file circulator.h.

References Assert_circulator(), Assert_random_access_category(), CGAL_assertion, CGAL_CIRC_NULL, and n.

Referenced by I_circulator_distance(), I_circulator_size(), and Iterator_from_circulator< C, Ref, Ptr >::operator-().

403  {
406  typedef typename C::size_type size_type;
407  size_type n = 0;
408  if ( c != CGAL_CIRC_NULL) {
409  n = (c-1) - c + 1;
410  CGAL_assertion(n > 0);
411  }
412  return n;
413 }
#define CGAL_assertion(EX)
Definition: assertions.h:87
#define CGAL_CIRC_NULL
Definition: circulator.h:81
void Assert_random_access_category(const IC &ic)
Definition: circulator.h:276
const NT & n
void Assert_circulator(const C &c)
Definition: circulator.h:243

Here is the call graph for this function:

Here is the caller graph for this function:

bool is_empty_range ( const IC &  ic1,
const IC &  ic2 
)
inline

Definition at line 362 of file circulator.h.

References I_is_empty_range(), and query_circulator_or_iterator().

Referenced by Random_access_adaptor< IC >::init_index().

362  {
363  // is `true' if the range [`ic1, ic2') is empty, `false' otherwise.
364  // Precondition: `T' is either a circulator or an iterator type. The
365  // range [`ic1, ic2') is valid.
366  return I_is_empty_range( ic1, ic2, query_circulator_or_iterator(ic1));
367 }
Circulator_traits< C >::category query_circulator_or_iterator(const C &)
Definition: circulator.h:222
bool I_is_empty_range(const C &c1, const C &, Circulator_tag)
Definition: circulator.h:352

Here is the call graph for this function:

Here is the caller graph for this function:

std::iterator_traits<IC>::difference_type iterator_distance ( const IC &  ic1,
const IC &  ic2 
)
inline

Definition at line 500 of file circulator.h.

References I_iterator_distance(), and query_circulator_or_iterator().

500  {
501  return I_iterator_distance( ic1, ic2,
503 }
Circulator_traits< C >::category query_circulator_or_iterator(const C &)
Definition: circulator.h:222
std::iterator_traits< C >::difference_type I_iterator_distance(const C &c1, const C &c2, Circulator_tag)
Definition: circulator.h:488

Here is the call graph for this function:

I non_negative_mod ( n,
m 
)
inline

Definition at line 523 of file circulator.h.

References CGAL_postcondition, CGAL_precondition, and n.

Referenced by Circulator_from_container< Ctnr >::operator+=(), Const_circulator_from_container< Ctnr >::operator+=(), and Circulator_from_iterator< I, TT, SS, DD >::operator+=().

523  {
524  CGAL_precondition( m > 0);
525  #if (-1 % 3) > 0
526  n = n % m;
527  #else
528  if (n < 0)
529  n = - (( - n - 1) % m) + m - 1;
530  else
531  n = n % m;
532  #endif
533  CGAL_postcondition( n >= 0);
534  return n;
535 }
#define CGAL_precondition(EX)
Definition: assertions.h:147
const NT & n
#define CGAL_postcondition(EX)
Definition: assertions.h:207

Here is the caller graph for this function:

Iterator_from_circulator<C,Ref,Ptr> operator+ ( Dist  n,
const Iterator_from_circulator< C, Ref, Ptr > &  circ 
)

Definition at line 689 of file circulator.h.

References n.

689  {
691  return tmp += n;
692 }
const NT & n
Circulator_from_container<Ctnr> operator+ ( typename Circulator_from_container< Ctnr >::difference_type  n,
const Circulator_from_container< Ctnr > &  c 
)
inline

Definition at line 893 of file circulator.h.

References n.

894  {
896  return tmp += n;
897 }
const NT & n
Const_circulator_from_container<Ctnr> operator+ ( typename Const_circulator_from_container< Ctnr >::difference_type  n,
const Const_circulator_from_container< Ctnr > &  c 
)
inline

Definition at line 1050 of file circulator.h.

References n.

1052  {
1054  return tmp += n;
1055 }
const NT & n
Circulator_from_iterator< I, T, Size, Dist> operator+ ( n,
const Circulator_from_iterator< I, T, Size, Dist > &  circ 
)
inline

Definition at line 1205 of file circulator.h.

1206  {
1208  tmp = circ;
1209  return tmp += Dist(n);
1210 }
const NT & n
Circulator_traits<C>::category query_circulator_or_iterator ( const C &  )

Definition at line 222 of file circulator.h.

Referenced by Assert_circulator(), Assert_circulator_or_iterator(), Assert_iterator(), is_empty_range(), and iterator_distance().

222  {
223  typedef typename Circulator_traits<C>::category category;
224  return category();
225 }

Here is the caller graph for this function: