↑ 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 8 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
... ...
@@ -33,4 +33,9 @@
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
... ...
@@ -36,9 +36,9 @@
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

	
Ignore white space 6 line context
... ...
@@ -102,9 +102,15 @@
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

	
Ignore white space 6 line context
... ...
@@ -28,8 +28,10 @@
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>
Ignore white space 6 line context
... ...
@@ -902,22 +902,36 @@
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) {
... ...
@@ -925,35 +939,28 @@
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
      }
Ignore white space 6 line context
... ...
@@ -23,15 +23,18 @@
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 {
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)