↑ Collapse diff ↑
Ignore white space 6 line context
1
project (LEMON)
2
enable_testing ()
3
add_subdirectory (lemon)
4
add_subdirectory (demo)
5
add_subdirectory (test)
Ignore white space 6 line context
1
include_directories (${LEMON_SOURCE_DIR})
2

	
3
link_directories (${LEMON_BINARY_DIR}/lemon)
4

	
5
set (DEMOS
6
  arg_parser_demo
7
  graph_to_eps_demo
8
  lgf_demo)
9

	
10
foreach (DEMO_NAME ${DEMOS})
11
  add_executable (${DEMO_NAME} ${DEMO_NAME}.cc)
12
  target_link_libraries (${DEMO_NAME} lemon)
13
  endforeach (DEMO_NAME)
Ignore white space 6 line context
1
include_directories (${LEMON_SOURCE_DIR})
2
add_library (lemon arg_parser.cc base.cc color.cc random.cc)
Ignore white space 6 line context
1
include_directories (${LEMON_SOURCE_DIR})
2

	
3
link_directories (${LEMON_BINARY_DIR}/lemon)
4

	
5
set (TESTS
6
  bfs_test
7
  counter_test
8
  dfs_test
9
  digraph_test
10
  dim_test
11
  error_test
12
  graph_test
13
  kruskal_test
14
  maps_test
15
  random_test
16
  path_test
17
  time_measure_test
18
  unionfind_test)
19

	
20
foreach (TEST_NAME ${TESTS})
21
  add_executable (${TEST_NAME} ${TEST_NAME}.cc)
22
  target_link_libraries (${TEST_NAME} lemon)
23
  add_test(${TEST_NAME} ${TEST_NAME})
24
endforeach (TEST_NAME)
Ignore white space 6 line context
... ...
@@ -31,6 +31,11 @@
31 31
^doc/html/.*
32 32
^autom4te.cache/.*
33 33
^build-aux/.*
34 34
^objs.*/.*
35 35
^test/[a-z_]*$
36 36
^demo/.*_demo$
37
^build/.*
38
CMakeFiles
39
DartTestfile.txt
40
cmake_install.cmake
41
CMakeCache.txt
Ignore white space 6 line context
... ...
@@ -34,13 +34,13 @@
34 34

	
35 35

	
36 36
using namespace lemon;
37 37

	
38 38
int main(int argc, const char *argv[]) {
39 39
  const int n = argc > 1 ? std::atoi(argv[1]) : 20;
40
  const int e = argc > 2 ? std::atoi(argv[2]) : static_cast<int>(n * log(n));
40
  const int e = argc > 2 ? std::atoi(argv[2]) : static_cast<int>(n * std::log(double(n)));
41 41
  const int m = argc > 3 ? std::atoi(argv[3]) : 100;
42 42

	
43 43
  SmartDigraph digraph;
44 44

	
45 45
  std::stringstream ss;
46 46

	
Ignore white space 12 line context
... ...
@@ -100,13 +100,19 @@
100 100
#  undef LEMON_ASSERT_HANDLER
101 101
#else
102 102
#  define LEMON_ASSERT_HANDLER ::lemon::assert_fail_abort
103 103
#endif
104 104

	
105 105
#ifndef LEMON_FUNCTION_NAME
106
#  define LEMON_FUNCTION_NAME (__PRETTY_FUNCTION__)
106
#  if defined __GNUC__
107
#    define LEMON_FUNCTION_NAME (__PRETTY_FUNCTION__)
108
#  elif defined _MSC_VER
109
#    define LEMON_FUNCTION_NAME (__FUNCSIG__)
110
#  else
111
#    define LEMON_FUNCTION_NAME (__func__)
112
#  endif
107 113
#endif
108 114

	
109 115
#ifdef DOXYGEN
110 116

	
111 117
/// \ingroup exceptions
112 118
///
Ignore white space 6 line context
... ...
@@ -26,12 +26,14 @@
26 26
#include<vector>
27 27

	
28 28
#ifndef WIN32
29 29
#include<sys/time.h>
30 30
#include<ctime>
31 31
#else
32
#define WIN32_LEAN_AND_MEAN
33
#define NOMINMAX
32 34
#include<windows.h>
33 35
#endif
34 36

	
35 37
#include<lemon/math.h>
36 38
#include<lemon/bits/invalid.h>
37 39
#include<lemon/dim2.h>
Ignore white space 6 line context
... ...
@@ -900,62 +900,69 @@
900 900
  // Additional utilities
901 901
  ///////////////////////////////////////////////////////////////////////
902 902

	
903 903
  namespace _path_bits {
904 904

	
905 905
    template <typename Path, typename Enable = void>
906
    struct RevTagIndicator {
906
    struct RevPathTagIndicator {
907 907
      static const bool value = false;
908 908
    };
909 909

	
910
    template <typename Digraph>
911
    struct RevTagIndicator<
912
      Digraph, 
913
      typename enable_if<typename Digraph::RevTag, void>::type
910
    template <typename Path>
911
    struct RevPathTagIndicator<
912
      Path, 
913
      typename enable_if<typename Path::RevPathTag, void>::type
914
      > {
915
      static const bool value = true;
916
    };
917

	
918
    template <typename Path, typename Enable = void>
919
    struct BuildTagIndicator {
920
      static const bool value = false;
921
    };
922

	
923
    template <typename Path>
924
    struct BuildTagIndicator<
925
      Path, 
926
      typename enable_if<typename Path::BuildTag, void>::type
914 927
    > {
915 928
      static const bool value = true;
916 929
    };
917 930

	
918 931
    template <typename Target, typename Source,
919
              typename BuildEnable = void, typename RevEnable = void>
932
	      bool buildEnable = BuildTagIndicator<Target>::value, 
933
	      bool revEnable = RevPathTagIndicator<Source>::value>
920 934
    struct PathCopySelector {
921 935
      static void copy(Target& target, const Source& source) {
922 936
        target.clear();
923 937
        for (typename Source::ArcIt it(source); it != INVALID; ++it) {
924 938
          target.addBack(it);
925 939
        }
926 940
      }
927 941
    };
928 942

	
929
    template <typename Target, typename Source, typename BuildEnable>
930
    struct PathCopySelector<
931
      Target, Source, BuildEnable, 
932
      typename enable_if<typename Source::RevPathTag, void>::type> {
943
    template <typename Target, typename Source>
944
    struct PathCopySelector<Target, Source, false, true> {
933 945
      static void copy(Target& target, const Source& source) {
934 946
        target.clear();
935 947
        for (typename Source::RevArcIt it(source); it != INVALID; ++it) {
936 948
          target.addFront(it);
937 949
        }
938 950
      }
939 951
    };
940 952

	
941
    template <typename Target, typename Source, typename RevEnable>
942
    struct PathCopySelector<
943
      Target, Source, 
944
      typename enable_if<typename Target::BuildTag, void>::type, RevEnable> {
953
    template <typename Target, typename Source>
954
    struct PathCopySelector<Target, Source, true, false> {
945 955
      static void copy(Target& target, const Source& source) {
946 956
        target.clear();
947 957
        target.build(source);
948 958
      }
949 959
    };
950 960

	
951 961
    template <typename Target, typename Source>
952
    struct PathCopySelector<
953
      Target, Source, 
954
      typename enable_if<typename Target::BuildTag, void>::type,
955
      typename enable_if<typename Source::RevPathTag, void>::type> {
962
    struct PathCopySelector<Target, Source, true, true> {
956 963
      static void copy(Target& target, const Source& source) {
957 964
        target.clear();
958 965
        target.buildRev(source);
959 966
      }
960 967
    };
961 968

	
Ignore white space 6 line context
... ...
@@ -21,19 +21,22 @@
21 21

	
22 22
///\ingroup timecount
23 23
///\file
24 24
///\brief Tools for measuring cpu usage
25 25

	
26 26
#ifdef WIN32
27
#define WIN32_LEAN_AND_MEAN
28
#define NOMINMAX
27 29
#include <windows.h>
28 30
#include <cmath>
29 31
#else
30 32
#include <sys/times.h>
31 33
#include <sys/time.h>
32 34
#endif
33 35

	
36
#include <string>
34 37
#include <fstream>
35 38
#include <iostream>
36 39

	
37 40
namespace lemon {
38 41

	
39 42
  /// \addtogroup timecount
Ignore white space 6 line context
1
all:
2
	$(MAKE) -C ..
Ignore white space 6 line context
1
all:
2
	$(MAKE) -C ..
Ignore white space 6 line context
1
all:
2
	$(MAKE) -C ..
Ignore white space 6 line context
1
all:
2
	$(MAKE) -C ..
Ignore white space 6 line context
1
all:
2
	$(MAKE) -C ..
Ignore white space 6 line context
1
all:
2
	$(MAKE) -C ..
0 comments (0 inline)