diff --git a/DownloadArmadillo.cmake b/DownloadArmadillo.cmake deleted file mode 100644 index 9dc9987ccb0224f0483f86ba7de698b06d61bc05..0000000000000000000000000000000000000000 --- a/DownloadArmadillo.cmake +++ /dev/null @@ -1,27 +0,0 @@ -message("DownloadArmadillo starting...") - -set(ARMADILLO_LOCAL_PATH ${CMAKE_CURRENT_LIST_DIR}/external_dependencies/armadillo) - -include(FetchContent) - -###################### -# Download Armadillo # -###################### -FetchContent_Declare( - armadillo - SOURCE_DIR ${ARMADILLO_LOCAL_PATH} - GIT_REPOSITORY https://gitlab.com/conradsnicta/armadillo-code.git - GIT_TAG 9.300.x #TODO do some general solution! -) - -set(FETCHCONTENT_QUIET FALSE) - -FetchContent_Populate(armadillo) - -find_package(Armadillo) - -if(NOT ARMADILLO_FOUND) - message(FATAL_ERROR "Armadillo was not downloaded successfully!") -endif() - -set(ENV{ARMADILLO_LOCAL_PATH} ${ARMADILLO_LOCAL_PATH}) diff --git a/DownloadBoost.cmake b/DownloadBoost.cmake deleted file mode 100644 index 4f9491bc265a16d6b2190ef713cbf3c9674555e1..0000000000000000000000000000000000000000 --- a/DownloadBoost.cmake +++ /dev/null @@ -1,94 +0,0 @@ -message("DownloadBoost starting...") - -set(BOOST_LOCAL_PATH ${CMAKE_CURRENT_LIST_DIR}/external_dependencies/boost) - -include(FetchContent) - -################## -# Download Boost # -################## -set(WINAPI_BOOST_LIB "") -if(WIN32) - set(WINAPI_BOOST_LIB libs/winapi) -endif() - -FetchContent_Declare( - boost - SOURCE_DIR ${BOOST_LOCAL_PATH} - GIT_REPOSITORY https://github.com/boostorg/boost.git - GIT_SUBMODULES tools/build tools/boost_install - libs/system libs/random libs/serialization - libs/config libs/headers libs/assert libs/core - libs/integer libs/type_traits libs/mpl - libs/preprocessor libs/throw_exception - libs/utility libs/static_assert libs/smart_ptr - libs/predef libs/move libs/io libs/iterator - libs/detail libs/spirit libs/optional - libs/function libs/type_index libs/bind - libs/container_hash libs/array libs/test - libs/timer libs/exception libs/algorithm - libs/range libs/numeric libs/format - libs/lexical_cast libs/concept_check - libs/container libs/math libs/function_types - libs/typeof ${WINAPI_BOOST_LIB} -) - -set(FETCHCONTENT_QUIET FALSE) - -FetchContent_Populate(boost) - -############### -# Build Boost # -############### -set(BOOTSTRAP_CMD sh bootstrap.sh) -set(B2_CMD ./b2 -j${N_CORES}) -if(WIN32) - set(BOOTSTRAP_CMD bootstrap.bat) - set(B2_CMD b2 -j${N_CORES}) -endif() - -execute_process( - COMMAND ${BOOTSTRAP_CMD} - WORKING_DIRECTORY ${BOOST_LOCAL_PATH} - RESULT_VARIABLE rv -) -if(NOT rv STREQUAL "0") - message("Boost build: bootstrap: ${rv}") -endif() - -execute_process( - COMMAND ${B2_CMD} headers - WORKING_DIRECTORY ${BOOST_LOCAL_PATH} - RESULT_VARIABLE rv -) -if(NOT rv STREQUAL "0") - message("Boost build: b2 headers: ${rv}") -endif() - -set(VARIANT release) -if(${CMAKE_BUILD_TYPE} STREQUAL "Debug") - set(VARIANT debug) -endif() - -execute_process( - COMMAND ${B2_CMD} -q cxxflags=-fPIC --layout=system variant=${VARIANT} link=${DEPENDENCIES_LINK_TYPE} address-model=64 --with-system --with-serialization --with-random - WORKING_DIRECTORY ${BOOST_LOCAL_PATH} - RESULT_VARIABLE rv -) -if(NOT rv STREQUAL "0") - message("Boost build: b2: ${rv}") -endif() - -find_package( - Boost - - COMPONENTS - system - serialization - random -) - -if(NOT Boost_FOUND) - message(FATAL_ERROR "Boost was not downloaded successfully!") -endif() - diff --git a/DownloadExprtk.cmake b/DownloadExprtk.cmake deleted file mode 100644 index 8fb33ad46009befcf1673d111ab326f7fdb84520..0000000000000000000000000000000000000000 --- a/DownloadExprtk.cmake +++ /dev/null @@ -1,25 +0,0 @@ -message("DownloadExprtk starting...") - -set(EXPRTK_LOCAL_PATH ${CMAKE_CURRENT_LIST_DIR}/external_dependencies/exprtk) - -include(FetchContent) - -################### -# Download exprtk # -################### -FetchContent_Declare( - exprtk - SOURCE_DIR ${EXPRTK_LOCAL_PATH} - GIT_REPOSITORY https://github.com/ArashPartow/exprtk.git -) - -set(FETCHCONTENT_QUIET FALSE) - -FetchContent_Populate(exprtk) - -find_package(Exprtk) - -if(NOT EXPRTK_FOUND) - message(FATAL_ERROR "Exprtk was not downloaded successfully!") -endif() - diff --git a/DownloadFromURL.cmake b/DownloadFromURL.cmake deleted file mode 100644 index b56342bd4cc3ec9e8cdaaeef0e8c74f8bc2fc99f..0000000000000000000000000000000000000000 --- a/DownloadFromURL.cmake +++ /dev/null @@ -1,3 +0,0 @@ -message(URL_FOR_DOWNLOAD: ${URL_FOR_DOWNLOAD}) -message(FILE_TO_SAVE: ${FILE_TO_SAVE}) -file(DOWNLOAD ${URL_FOR_DOWNLOAD} ${FILE_TO_SAVE}) diff --git a/DownloadLapacke.cmake b/DownloadLapacke.cmake deleted file mode 100644 index 713a88c7ef5887a74f04d5754d526d906fb9f12d..0000000000000000000000000000000000000000 --- a/DownloadLapacke.cmake +++ /dev/null @@ -1,42 +0,0 @@ -message("DownloadLapacke starting...") - -set(LAPACKE_LOCAL_PATH ${CMAKE_CURRENT_LIST_DIR}/external_dependencies/Lapacke) - -include(FetchContent) - -#################### -# Download Lapacke # -#################### -set(LAPACKE_FILES ${LAPACKE_LOCAL_PATH}/lapacke.h ${LAPACKE_LOCAL_PATH}/liblapacke.dll ${LAPACKE_LOCAL_PATH}/liblapacke.lib) - -add_custom_command( - OUTPUT ${LAPACKE_LOCAL_PATH}/lapacke.h - COMMAND ${CMAKE_COMMAND} -DURL_FOR_DOWNLOAD=https://icl.cs.utk.edu/lapack-for-windows/include/lapacke.h -DFILE_TO_SAVE=${LAPACKE_LOCAL_PATH}/lapacke.h -P ${CMAKE_CURRENT_LIST_DIR}/DownloadFromUrl.cmake - WORKING_DIRECTORY ${CMAKE_CURRENT_LIST_DIR} - VERBATIM - COMMAND_EXPAND_LISTS -) - -add_custom_command( - OUTPUT ${LAPACKE_LOCAL_PATH}/liblapacke.dll - COMMAND ${CMAKE_COMMAND} -DURL_FOR_DOWNLOAD=https://icl.cs.utk.edu/lapack-for-windows/libraries/VisualStudio/3.7.0/Dynamic-MINGW/Win64/liblapacke.dll -DFILE_TO_SAVE=${LAPACKE_LOCAL_PATH}/liblapacke.dll -P ${CMAKE_CURRENT_LIST_DIR}/DownloadFromUrl.cmake - WORKING_DIRECTORY ${CMAKE_CURRENT_LIST_DIR} - VERBATIM - COMMAND_EXPAND_LISTS -) - -add_custom_command( - OUTPUT ${LAPACKE_LOCAL_PATH}/liblapacke.lib - COMMAND ${CMAKE_COMMAND} -DURL_FOR_DOWNLOAD=https://icl.cs.utk.edu/lapack-for-windows/libraries/VisualStudio/3.7.0/Dynamic-MINGW/Win64/liblapacke.lib -DFILE_TO_SAVE=${LAPACKE_LOCAL_PATH}/liblapacke.lib -P ${CMAKE_CURRENT_LIST_DIR}/DownloadFromUrl.cmake - WORKING_DIRECTORY ${CMAKE_CURRENT_LIST_DIR} - VERBATIM - COMMAND_EXPAND_LISTS -) - -set(ENV{LAPACKE_HEADERS} ${LAPACKE_LOCAL_PATH}/lapacke.h ) -list(APPEND LAPACKE_LIBRARIES "${LAPACKE_LOCAL_PATH}/liblapacke.lib") -#"${LAPACKE_LOCAL_PATH}/liblapacke.dll" -set(ENV{LAPACKE_LIBRARIES} ${LAPACKE_LIBRARIES}) -option(ENV{LAPACKE_LOCAL} ON) - -add_custom_target(lapacke_build DEPENDS ${LAPACKE_FILES}) diff --git a/DownloadOpenBLAS.cmake b/DownloadOpenBLAS.cmake deleted file mode 100644 index 426a1cfa0bfedb87c439081f920ae8f3d96030ca..0000000000000000000000000000000000000000 --- a/DownloadOpenBLAS.cmake +++ /dev/null @@ -1,63 +0,0 @@ -message("DownloadOpenBLAS starting...") - -set(OPENBLAS_LOCAL_PATH ${ROOT_DIR}/external_dependencies/OpenBLAS) - -include(FetchContent) - -##################### -# Download OpenBLAS # -##################### -if(WIN32) - FetchContent_Declare( - OpenBLAS - SOURCE_DIR ${OPENBLAS_LOCAL_PATH} - URL https://github.com/JuliaLinearAlgebra/OpenBLASBuilder/releases/download/v0.3.0-3/OpenBLAS.v0.3.0.x86_64-w64-mingw32-gcc8.tar.gz - ) - - # See messages during 'git clone' - set(FETCHCONTENT_QUIET FALSE) - - if(NOT OpenBLAS_POPULATED) - FetchContent_Populate(OpenBLAS) - endif() - -else() - FetchContent_Declare( - OpenBLAS - SOURCE_DIR ${OPENBLAS_LOCAL_PATH} - GIT_REPOSITORY https://github.com/xianyi/OpenBLAS.git - ) - - # See messages during 'git clone' - set(FETCHCONTENT_QUIET FALSE) - - if(NOT OpenBLAS_POPULATED) - FetchContent_Populate(OpenBLAS) - endif() -endif() - -if(NOT WIN32) - ################################### - # Build OpenBLAS (only for Linux) # - ################################### - execute_process( - COMMAND ${CMAKE_COMMAND} -j ${N_CORES} . - WORKING_DIRECTORY ${OPENBLAS_LOCAL_PATH} - RESULT_VARIABLE rv - ) - if(NOT rv STREQUAL "0") - message("OpenBLAS build: cmake .: ${rv}") - endif() - - # Build library - execute_process( - COMMAND ${CMAKE_COMMAND} --build . --config Release -j ${N_CORES} - WORKING_DIRECTORY ${OPENBLAS_LOCAL_PATH} - RESULT_VARIABLE rv - ) - if(NOT rv STREQUAL "0") - message("OpenBLAS build: cmake --build: ${rv}") - endif() -endif() - -find_package(OpenBLAS) diff --git a/DownloadTurtle.cmake b/DownloadTurtle.cmake deleted file mode 100644 index 8f55dc333137ea38eeaf21a37e1fb432e970e7e5..0000000000000000000000000000000000000000 --- a/DownloadTurtle.cmake +++ /dev/null @@ -1,25 +0,0 @@ -message("DownloadTurtle starting...") - -set(TURTLE_LOCAL_PATH ${CMAKE_CURRENT_LIST_DIR}/external_dependencies/turtle) - -include(FetchContent) - -################### -# Download exprtk # -################### -FetchContent_Declare( - turtle - SOURCE_DIR ${TURTLE_LOCAL_PATH} - GIT_REPOSITORY https://github.com/mat007/turtle.git -) - -set(FETCHCONTENT_QUIET FALSE) - -FetchContent_Populate(turtle) - -find_package(Turtle) - -if(NOT TURTLE_FOUND) - message(FATAL_ERROR "Turtle was not downloaded successfully!") -endif() - diff --git a/FindArmadillo.cmake b/FindArmadillo.cmake deleted file mode 100644 index 9682484b07a41cd335a0b4d450cf123cef8aedfd..0000000000000000000000000000000000000000 --- a/FindArmadillo.cmake +++ /dev/null @@ -1,37 +0,0 @@ -message("FindArmadillo starting...") - -# Find headers -FIND_PATH( - ARMADILLO_INCLUDE_DIR - - NAMES - armadillo - - HINTS - $ENV{ARMADILLO_INCLUDE_DIR} - ${ARMADILLO_INCLUDE_DIR} - ${ROOT_DIR}/external_dependencies/armadillo/ - - PATHS - /usr - /home - /opt - - PATH_SUFFIXES - include - armadillo - include/armadillo - local -) - -INCLUDE(FindPackageHandleStandardArgs) -FIND_PACKAGE_HANDLE_STANDARD_ARGS( - armadillo - "Armadillo was NOT found!" - ARMADILLO_INCLUDE_DIR) - -if(armadillo_FOUND) - message(STATUS "Armadillo headers found.") - message(STATUS "ARMADILLO_INCLUDE_DIR: ${ARMADILLO_INCLUDE_DIR}") - set(ARMADILLO_ROOT ${ARMADILLO_INCLUDE_DIR}/..) -endif() diff --git a/FindOpenBLAS.cmake b/FindOpenBLAS.cmake deleted file mode 100644 index 375a122b87b25b2df4a323b6e49347e3cf9306c6..0000000000000000000000000000000000000000 --- a/FindOpenBLAS.cmake +++ /dev/null @@ -1,60 +0,0 @@ -message("FindOpenBLAS starting...") - -FIND_PATH( - OpenBLAS_INCLUDE_DIR - - NAMES - cblas.h - - HINTS - ${OpenBLAS_INCLUDE_DIRECTORY} - $ENV{OpenBLAS_INCLUDE_DIRECTORY} - ${ROOT_DIR}/external_dependencies/OpenBLAS - /usr - - PATH_SUFFIXES - include - include/x86_64-linux-gnu - include/OpenBLAS -) - -FIND_LIBRARY( - OpenBLAS_LIBRARIES - - NAMES - openblas - - HINTS - ${OpenBLAS_LIBRARY_DIRECTORY} - $ENV{OpenBLAS_LIBRARY_DIRECTORY} - ${ROOT_DIR}/external_dependencies/OpenBLAS/ - /usr - - PATH_SUFFIXES - bin - lib - lib/x86_64-linux-gnu - local - include/OpenBLAS/lib -) - -# Set OpenBLAS_Found -INCLUDE(FindPackageHandleStandardArgs) -FIND_PACKAGE_HANDLE_STANDARD_ARGS( - OpenBLAS - - FAIL_MESSAGE - "OpenBLAS was NOT found!" - - REQUIRED_VARS - OpenBLAS_INCLUDE_DIR - OpenBLAS_LIBRARIES -) - -IF (OpenBLAS_FOUND) - MESSAGE(STATUS "OpenBLAS was found.") - MESSAGE(STATUS "OpenBLAS_LIBRARIES: ${OpenBLAS_LIBRARIES}") - MESSAGE(STATUS "OpenBLAS_INCLUDE_DIR: ${OpenBLAS_INCLUDE_DIR}") -ELSE() - MESSAGE(STATUS "Could not find OpenBLAS") -ENDIF() diff --git a/cmake/DownloadArmadillo.cmake b/cmake/DownloadArmadillo.cmake index f2cc3bfaad50a4d0918ee5bf0cc60eafb15cfb1c..1f7c59c0b63e020974e223b055dc2b958617f9c4 100644 --- a/cmake/DownloadArmadillo.cmake +++ b/cmake/DownloadArmadillo.cmake @@ -1,27 +1,27 @@ -message("DownloadArmadillo starting...") +MESSAGE("DownloadArmadillo starting...") -set(ARMADILLO_LOCAL_PATH ${ROOT_DIR}/external_dependencies/armadillo) +SET(ARMADILLO_LOCAL_PATH ${ROOT_DIR}/external_dependencies/armadillo) -include(FetchContent) +INCLUDE(FetchContent) ###################### # Download Armadillo # ###################### -FetchContent_Declare( +FETCHCONTENT_DECLARE( armadillo SOURCE_DIR ${ARMADILLO_LOCAL_PATH} GIT_REPOSITORY https://gitlab.com/conradsnicta/armadillo-code.git GIT_TAG 9.300.x #TODO do some general solution! ) -set(FETCHCONTENT_QUIET FALSE) +SET(FETCHCONTENT_QUIET FALSE) -FetchContent_Populate(armadillo) +FETCHCONTENT_POPULATE(armadillo) -find_package(Armadillo) +FIND_PACKAGE(Armadillo) -if(NOT ARMADILLO_FOUND) - message(FATAL_ERROR "Armadillo was not downloaded successfully!") -endif() +IF(NOT ARMADILLO_FOUND) + MESSAGE(FATAL_ERROR "Armadillo was not downloaded successfully!") +ENDIF() -set(ENV{ARMADILLO_LOCAL_PATH} ${ARMADILLO_LOCAL_PATH}) +SET(ENV{ARMADILLO_LOCAL_PATH} ${ARMADILLO_LOCAL_PATH}) diff --git a/cmake/DownloadBoost.cmake b/cmake/DownloadBoost.cmake index 5d516d7d48dbc06432c0e162a005610bbda5377f..0423d80457f0f4186c4d6e0fc985c1749e7d3674 100644 --- a/cmake/DownloadBoost.cmake +++ b/cmake/DownloadBoost.cmake @@ -1,94 +1,94 @@ -message("DownloadBoost starting...") +MESSAGE("DownloadBoost starting...") -set(BOOST_LOCAL_PATH ${ROOT_DIR}/external_dependencies/boost) +SET(BOOST_LOCAL_PATH ${ROOT_DIR}/external_dependencies/boost) -include(FetchContent) +INCLUDE(FetchContent) ################## # Download Boost # ################## -set(WINAPI_BOOST_LIB "") -if(WIN32) - set(WINAPI_BOOST_LIB libs/winapi) -endif() +SET(WINAPI_BOOST_LIB "") +IF(WIN32) + SET(WINAPI_BOOST_LIB libs/winapi) +ENDIF() -FetchContent_Declare( +FETCHCONTENT_DECLARE( boost SOURCE_DIR ${BOOST_LOCAL_PATH} GIT_REPOSITORY https://github.com/boostorg/boost.git GIT_SUBMODULES tools/build tools/boost_install - libs/system libs/random libs/serialization - libs/config libs/headers libs/assert libs/core - libs/integer libs/type_traits libs/mpl - libs/preprocessor libs/throw_exception - libs/utility libs/static_assert libs/smart_ptr - libs/predef libs/move libs/io libs/iterator - libs/detail libs/spirit libs/optional - libs/function libs/type_index libs/bind - libs/container_hash libs/array libs/test - libs/timer libs/exception libs/algorithm - libs/range libs/numeric libs/format - libs/lexical_cast libs/concept_check - libs/container libs/math libs/function_types - libs/typeof ${WINAPI_BOOST_LIB} + libs/system libs/random libs/serialization + libs/config libs/headers libs/assert libs/core + libs/integer libs/type_traits libs/mpl + libs/preprocessor libs/throw_exception + libs/utility libs/static_assert libs/smart_ptr + libs/predef libs/move libs/io libs/iterator + libs/detail libs/spirit libs/optional + libs/function libs/type_index libs/bind + libs/container_hash libs/array libs/test + libs/timer libs/exception libs/algorithm + libs/range libs/numeric libs/format + libs/lexical_cast libs/concept_check + libs/container libs/math libs/function_types + libs/typeof ${WINAPI_BOOST_LIB} ) -set(FETCHCONTENT_QUIET FALSE) +SET(FETCHCONTENT_QUIET FALSE) -FetchContent_Populate(boost) +FETCHCONTENT_POPULATE(boost) ############### # Build Boost # ############### -set(BOOTSTRAP_CMD sh bootstrap.sh) -set(B2_CMD ./b2 -j${N_CORES}) -if(WIN32) - set(BOOTSTRAP_CMD bootstrap.bat) - set(B2_CMD b2 -j${N_CORES}) -endif() +SET(BOOTSTRAP_CMD sh bootstrap.sh) +SET(B2_CMD ./b2 -j${N_CORES}) +IF(WIN32) + SET(BOOTSTRAP_CMD bootstrap.bat) + SET(B2_CMD b2 -j${N_CORES}) +ENDIF() -execute_process( +EXECUTE_PROCESS( COMMAND ${BOOTSTRAP_CMD} WORKING_DIRECTORY ${BOOST_LOCAL_PATH} RESULT_VARIABLE rv ) -if(NOT rv STREQUAL "0") - message("Boost build: bootstrap: ${rv}") -endif() +IF(NOT rv STREQUAL "0") + MESSAGE("Boost build: bootstrap: ${rv}") +ENDIF() -execute_process( +EXECUTE_PROCESS( COMMAND ${B2_CMD} headers WORKING_DIRECTORY ${BOOST_LOCAL_PATH} RESULT_VARIABLE rv ) -if(NOT rv STREQUAL "0") - message("Boost build: b2 headers: ${rv}") -endif() +IF(NOT rv STREQUAL "0") + MESSAGE("Boost build: b2 headers: ${rv}") +ENDIF() -set(VARIANT release) -if(${CMAKE_BUILD_TYPE} STREQUAL "Debug") - set(VARIANT debug) -endif() +SET(VARIANT release) +IF(${CMAKE_BUILD_TYPE} STREQUAL "Debug") + SET(VARIANT debug) +ENDIF() -execute_process( +EXECUTE_PROCESS( COMMAND ${B2_CMD} -q cxxflags=-fPIC --layout=system variant=${VARIANT} link=${DEPENDENCIES_LINK_TYPE} address-model=64 --with-system --with-serialization --with-random WORKING_DIRECTORY ${BOOST_LOCAL_PATH} RESULT_VARIABLE rv ) -if(NOT rv STREQUAL "0") - message("Boost build: b2: ${rv}") -endif() +IF(NOT rv STREQUAL "0") + MESSAGE("Boost build: b2: ${rv}") +ENDIF() -find_package( +FIND_PACKAGE( Boost COMPONENTS - system - serialization - random + system + serialization + random ) -if(NOT Boost_FOUND) - message(FATAL_ERROR "Boost was not downloaded successfully!") -endif() +IF(NOT Boost_FOUND) + MESSAGE(FATAL_ERROR "Boost was not downloaded successfully!") +ENDIF() diff --git a/cmake/DownloadExprtk.cmake b/cmake/DownloadExprtk.cmake index e1689a71578c753b6b3005da9b9945122a9c1a57..a7d9c1df41d1991e93368ac35ea036c6f3f4a049 100644 --- a/cmake/DownloadExprtk.cmake +++ b/cmake/DownloadExprtk.cmake @@ -1,25 +1,25 @@ -message("DownloadExprtk starting...") +MESSAGE("DownloadExprtk starting...") -set(EXPRTK_LOCAL_PATH ${ROOT_DIR}/external_dependencies/exprtk) +SET(EXPRTK_LOCAL_PATH ${ROOT_DIR}/external_dependencies/exprtk) -include(FetchContent) +INCLUDE(FetchContent) ################### # Download exprtk # ################### -FetchContent_Declare( +FETCHCONTENT_DECLARE( exprtk SOURCE_DIR ${EXPRTK_LOCAL_PATH} GIT_REPOSITORY https://github.com/ArashPartow/exprtk.git ) -set(FETCHCONTENT_QUIET FALSE) +SET(FETCHCONTENT_QUIET FALSE) -FetchContent_Populate(exprtk) +FETCHCONTENT_POPULATE(exprtk) -find_package(Exprtk) +FIND_PACKAGE(Exprtk) -if(NOT EXPRTK_FOUND) - message(FATAL_ERROR "Exprtk was not downloaded successfully!") -endif() +IF(NOT EXPRTK_FOUND) + MESSAGE(FATAL_ERROR "Exprtk was not downloaded successfully!") +ENDIF() diff --git a/cmake/DownloadFromURL.cmake b/cmake/DownloadFromURL.cmake index b56342bd4cc3ec9e8cdaaeef0e8c74f8bc2fc99f..62c2d7cd2f154563aaba714cb09671b1d2c30bf9 100644 --- a/cmake/DownloadFromURL.cmake +++ b/cmake/DownloadFromURL.cmake @@ -1,3 +1,3 @@ -message(URL_FOR_DOWNLOAD: ${URL_FOR_DOWNLOAD}) -message(FILE_TO_SAVE: ${FILE_TO_SAVE}) -file(DOWNLOAD ${URL_FOR_DOWNLOAD} ${FILE_TO_SAVE}) +MESSAGE(URL_FOR_DOWNLOAD: ${URL_FOR_DOWNLOAD}) +MESSAGE(FILE_TO_SAVE: ${FILE_TO_SAVE}) +FILE(DOWNLOAD ${URL_FOR_DOWNLOAD} ${FILE_TO_SAVE}) diff --git a/cmake/DownloadLapacke.cmake b/cmake/DownloadLapacke.cmake index ff666eb0922f00d99fae390e93546fe7f2904c8e..338829b3c330b271866d8ac1de1f2555e92c44a8 100644 --- a/cmake/DownloadLapacke.cmake +++ b/cmake/DownloadLapacke.cmake @@ -1,42 +1,42 @@ -message("DownloadLapacke starting...") +MESSAGE("DownloadLapacke starting...") -set(LAPACKE_LOCAL_PATH ${ROOT_DIR}/external_dependencies/Lapacke) +SET(LAPACKE_LOCAL_PATH ${ROOT_DIR}/external_dependencies/Lapacke) -include(FetchContent) +INCLUDE(FetchContent) #################### # Download Lapacke # #################### -set(LAPACKE_FILES ${LAPACKE_LOCAL_PATH}/lapacke.h ${LAPACKE_LOCAL_PATH}/liblapacke.dll ${LAPACKE_LOCAL_PATH}/liblapacke.lib) +SET(LAPACKE_FILES ${LAPACKE_LOCAL_PATH}/lapacke.h ${LAPACKE_LOCAL_PATH}/liblapacke.dll ${LAPACKE_LOCAL_PATH}/liblapacke.lib) -add_custom_command( +ADD_CUSTOM_COMMAND( OUTPUT ${LAPACKE_LOCAL_PATH}/lapacke.h - COMMAND ${CMAKE_COMMAND} -DURL_FOR_DOWNLOAD=https://icl.cs.utk.edu/lapack-for-windows/include/lapacke.h -DFILE_TO_SAVE=${LAPACKE_LOCAL_PATH}/lapacke.h -P ${CMAKE_CURRENT_LIST_DIR}/DownloadFromUrl.cmake + COMMAND ${CMAKE_COMMAND} -DURL_FOR_DOWNLOAD=https://icl.cs.utk.edu/lapack-for-windows/include/lapacke.h -DFILE_TO_SAVE=${LAPACKE_LOCAL_PATH}/lapacke.h -P ${CMAKE_CURRENT_LIST_DIR}/DownloadFromUrl.cmake WORKING_DIRECTORY ${CMAKE_CURRENT_LIST_DIR} VERBATIM COMMAND_EXPAND_LISTS ) -add_custom_command( +ADD_CUSTOM_COMMAND( OUTPUT ${LAPACKE_LOCAL_PATH}/liblapacke.dll - COMMAND ${CMAKE_COMMAND} -DURL_FOR_DOWNLOAD=https://icl.cs.utk.edu/lapack-for-windows/libraries/VisualStudio/3.7.0/Dynamic-MINGW/Win64/liblapacke.dll -DFILE_TO_SAVE=${LAPACKE_LOCAL_PATH}/liblapacke.dll -P ${CMAKE_CURRENT_LIST_DIR}/DownloadFromUrl.cmake + COMMAND ${CMAKE_COMMAND} -DURL_FOR_DOWNLOAD=https://icl.cs.utk.edu/lapack-for-windows/libraries/VisualStudio/3.7.0/Dynamic-MINGW/Win64/liblapacke.dll -DFILE_TO_SAVE=${LAPACKE_LOCAL_PATH}/liblapacke.dll -P ${CMAKE_CURRENT_LIST_DIR}/DownloadFromUrl.cmake WORKING_DIRECTORY ${CMAKE_CURRENT_LIST_DIR} VERBATIM COMMAND_EXPAND_LISTS ) -add_custom_command( +ADD_CUSTOM_COMMAND( OUTPUT ${LAPACKE_LOCAL_PATH}/liblapacke.lib - COMMAND ${CMAKE_COMMAND} -DURL_FOR_DOWNLOAD=https://icl.cs.utk.edu/lapack-for-windows/libraries/VisualStudio/3.7.0/Dynamic-MINGW/Win64/liblapacke.lib -DFILE_TO_SAVE=${LAPACKE_LOCAL_PATH}/liblapacke.lib -P ${CMAKE_CURRENT_LIST_DIR}/DownloadFromUrl.cmake + COMMAND ${CMAKE_COMMAND} -DURL_FOR_DOWNLOAD=https://icl.cs.utk.edu/lapack-for-windows/libraries/VisualStudio/3.7.0/Dynamic-MINGW/Win64/liblapacke.lib -DFILE_TO_SAVE=${LAPACKE_LOCAL_PATH}/liblapacke.lib -P ${CMAKE_CURRENT_LIST_DIR}/DownloadFromUrl.cmake WORKING_DIRECTORY ${CMAKE_CURRENT_LIST_DIR} VERBATIM COMMAND_EXPAND_LISTS ) -set(ENV{LAPACKE_HEADERS} ${LAPACKE_LOCAL_PATH}/lapacke.h ) -list(APPEND LAPACKE_LIBRARIES "${LAPACKE_LOCAL_PATH}/liblapacke.lib") +SET(ENV{LAPACKE_HEADERS} ${LAPACKE_LOCAL_PATH}/lapacke.h) +LIST(APPEND LAPACKE_LIBRARIES "${LAPACKE_LOCAL_PATH}/liblapacke.lib") #"${LAPACKE_LOCAL_PATH}/liblapacke.dll" -set(ENV{LAPACKE_LIBRARIES} ${LAPACKE_LIBRARIES}) -option(ENV{LAPACKE_LOCAL} ON) +SET(ENV{LAPACKE_LIBRARIES} ${LAPACKE_LIBRARIES}) +OPTION(ENV{LAPACKE_LOCAL} ON) -add_custom_target(lapacke_build DEPENDS ${LAPACKE_FILES}) +ADD_CUSTOM_TARGET(lapacke_build DEPENDS ${LAPACKE_FILES}) diff --git a/cmake/DownloadOpenBLAS.cmake b/cmake/DownloadOpenBLAS.cmake index 426a1cfa0bfedb87c439081f920ae8f3d96030ca..e011dd08d77973ee1e50b35edd72d8d42f20ab00 100644 --- a/cmake/DownloadOpenBLAS.cmake +++ b/cmake/DownloadOpenBLAS.cmake @@ -1,63 +1,63 @@ -message("DownloadOpenBLAS starting...") +MESSAGE("DownloadOpenBLAS starting...") -set(OPENBLAS_LOCAL_PATH ${ROOT_DIR}/external_dependencies/OpenBLAS) +SET(OPENBLAS_LOCAL_PATH ${ROOT_DIR}/external_dependencies/OpenBLAS) -include(FetchContent) +INCLUDE(FetchContent) ##################### # Download OpenBLAS # ##################### -if(WIN32) - FetchContent_Declare( - OpenBLAS - SOURCE_DIR ${OPENBLAS_LOCAL_PATH} - URL https://github.com/JuliaLinearAlgebra/OpenBLASBuilder/releases/download/v0.3.0-3/OpenBLAS.v0.3.0.x86_64-w64-mingw32-gcc8.tar.gz +IF(WIN32) + FETCHCONTENT_DECLARE( + OpenBLAS + SOURCE_DIR ${OPENBLAS_LOCAL_PATH} + URL https://github.com/JuliaLinearAlgebra/OpenBLASBuilder/releases/download/v0.3.0-3/OpenBLAS.v0.3.0.x86_64-w64-mingw32-gcc8.tar.gz ) # See messages during 'git clone' - set(FETCHCONTENT_QUIET FALSE) + SET(FETCHCONTENT_QUIET FALSE) - if(NOT OpenBLAS_POPULATED) - FetchContent_Populate(OpenBLAS) - endif() + IF(NOT OpenBLAS_POPULATED) + FETCHCONTENT_POPULATE(OpenBLAS) + ENDIF() -else() - FetchContent_Declare( +ELSE() + FETCHCONTENT_DECLARE( OpenBLAS SOURCE_DIR ${OPENBLAS_LOCAL_PATH} GIT_REPOSITORY https://github.com/xianyi/OpenBLAS.git ) # See messages during 'git clone' - set(FETCHCONTENT_QUIET FALSE) + SET(FETCHCONTENT_QUIET FALSE) - if(NOT OpenBLAS_POPULATED) - FetchContent_Populate(OpenBLAS) - endif() -endif() + IF(NOT OpenBLAS_POPULATED) + FETCHCONTENT_POPULATE(OpenBLAS) + ENDIF() +ENDIF() -if(NOT WIN32) +IF(NOT WIN32) ################################### # Build OpenBLAS (only for Linux) # ################################### - execute_process( + EXECUTE_PROCESS( COMMAND ${CMAKE_COMMAND} -j ${N_CORES} . WORKING_DIRECTORY ${OPENBLAS_LOCAL_PATH} RESULT_VARIABLE rv ) - if(NOT rv STREQUAL "0") - message("OpenBLAS build: cmake .: ${rv}") - endif() + IF(NOT rv STREQUAL "0") + MESSAGE("OpenBLAS build: cmake .: ${rv}") + ENDIF() # Build library - execute_process( + EXECUTE_PROCESS( COMMAND ${CMAKE_COMMAND} --build . --config Release -j ${N_CORES} WORKING_DIRECTORY ${OPENBLAS_LOCAL_PATH} RESULT_VARIABLE rv ) - if(NOT rv STREQUAL "0") - message("OpenBLAS build: cmake --build: ${rv}") - endif() -endif() + IF(NOT rv STREQUAL "0") + MESSAGE("OpenBLAS build: cmake --build: ${rv}") + ENDIF() +ENDIF() -find_package(OpenBLAS) +FIND_PACKAGE(OpenBLAS) diff --git a/cmake/DownloadTurtle.cmake b/cmake/DownloadTurtle.cmake index c7fbb563b5df4baf185a6d493b2b5587bb3d9dfe..eff09cbeb980a62a91af79d5753ac7809660c227 100644 --- a/cmake/DownloadTurtle.cmake +++ b/cmake/DownloadTurtle.cmake @@ -1,25 +1,25 @@ -message("DownloadTurtle starting...") +MESSAGE("DownloadTurtle starting...") -set(TURTLE_LOCAL_PATH ${ROOT_DIR}/external_dependencies/turtle) +SET(TURTLE_LOCAL_PATH ${ROOT_DIR}/external_dependencies/turtle) -include(FetchContent) +INCLUDE(FetchContent) ################### # Download exprtk # ################### -FetchContent_Declare( +FETCHCONTENT_DECLARE( turtle SOURCE_DIR ${TURTLE_LOCAL_PATH} GIT_REPOSITORY https://github.com/mat007/turtle.git ) -set(FETCHCONTENT_QUIET FALSE) +SET(FETCHCONTENT_QUIET FALSE) -FetchContent_Populate(turtle) +FETCHCONTENT_POPULATE(turtle) -find_package(Turtle) +FIND_PACKAGE(Turtle) -if(NOT TURTLE_FOUND) - message(FATAL_ERROR "Turtle was not downloaded successfully!") -endif() +IF(NOT TURTLE_FOUND) + MESSAGE(FATAL_ERROR "Turtle was not downloaded successfully!") +ENDIF() diff --git a/cmake/FindArmadillo.cmake b/cmake/FindArmadillo.cmake index 9682484b07a41cd335a0b4d450cf123cef8aedfd..89e559c0aa93c50fc17ed8492d30122819f2ca8a 100644 --- a/cmake/FindArmadillo.cmake +++ b/cmake/FindArmadillo.cmake @@ -1,37 +1,37 @@ -message("FindArmadillo starting...") +MESSAGE("FindArmadillo starting...") # Find headers FIND_PATH( ARMADILLO_INCLUDE_DIR NAMES - armadillo + armadillo HINTS - $ENV{ARMADILLO_INCLUDE_DIR} - ${ARMADILLO_INCLUDE_DIR} - ${ROOT_DIR}/external_dependencies/armadillo/ + $ENV{ARMADILLO_INCLUDE_DIR} + ${ARMADILLO_INCLUDE_DIR} + ${ROOT_DIR}/external_dependencies/armadillo/ PATHS - /usr - /home - /opt + /usr + /home + /opt PATH_SUFFIXES - include - armadillo - include/armadillo - local + include + armadillo + include/armadillo + local ) INCLUDE(FindPackageHandleStandardArgs) FIND_PACKAGE_HANDLE_STANDARD_ARGS( - armadillo - "Armadillo was NOT found!" - ARMADILLO_INCLUDE_DIR) + armadillo + "Armadillo was NOT found!" + ARMADILLO_INCLUDE_DIR) -if(armadillo_FOUND) - message(STATUS "Armadillo headers found.") - message(STATUS "ARMADILLO_INCLUDE_DIR: ${ARMADILLO_INCLUDE_DIR}") - set(ARMADILLO_ROOT ${ARMADILLO_INCLUDE_DIR}/..) -endif() +IF(armadillo_FOUND) + MESSAGE(STATUS "Armadillo headers found.") + MESSAGE(STATUS "ARMADILLO_INCLUDE_DIR: ${ARMADILLO_INCLUDE_DIR}") + SET(ARMADILLO_ROOT ${ARMADILLO_INCLUDE_DIR}/..) +ENDIF() diff --git a/cmake/FindBoost.cmake b/cmake/FindBoost.cmake index 8dd2d2bc1ee90b594cf15e7d81dc60caef7b3dbd..bd7c8d6d75904db1bec762f2013ced1450d94e18 100644 --- a/cmake/FindBoost.cmake +++ b/cmake/FindBoost.cmake @@ -23,141 +23,141 @@ # Module usage # TODO -message("FindBoost starting...") +MESSAGE("FindBoost starting...") # Check if needed Boost components were specified -if(NOT Boost_FIND_COMPONENTS) - message(FATAL_ERROR "No Boost components were specified! Please, set them correctly with flag COMPONENTS (see Module Usage section in this script).") -else() - message("Required Boost components: ${Boost_FIND_COMPONENTS}") -endif() +IF(NOT Boost_FIND_COMPONENTS) + MESSAGE(FATAL_ERROR "No Boost components were specified! Please, set them correctly with flag COMPONENTS (see Module Usage section in this script).") +ELSE() + MESSAGE("Required Boost components: ${Boost_FIND_COMPONENTS}") +ENDIF() # Look for a standard boost header file. -set(Boost_INCLUDE_DIRS "Boost_INCLUDE_DIRS-NOTFOUND") -find_path( +SET(Boost_INCLUDE_DIRS "Boost_INCLUDE_DIRS-NOTFOUND") +FIND_PATH( Boost_INCLUDE_DIRS NAMES - config.hpp + config.hpp HINTS - $ENV{BOOST_ROOT} - $ENV{BOOST_ROOT}/boost - ${BOOST_INCLUDEDIR} - $ENV{BOOST_INCLUDEDIR} - ${ROOT_DIR}/external_dependencies/boost - ${ROOT_DIR}/external_dependencies/boost/src/boost + $ENV{BOOST_ROOT} + $ENV{BOOST_ROOT}/boost + ${BOOST_INCLUDEDIR} + $ENV{BOOST_INCLUDEDIR} + ${ROOT_DIR}/external_dependencies/boost + ${ROOT_DIR}/external_dependencies/boost/src/boost PATHS - /usr/include + /usr/include PATH_SUFFIXES - boost - include + boost + include ) # Add path without "boost" include sub-directory to include path, # as Boost headers are supposed to be included like # #include<boost/...> according to the documentation -set(TMP "") -string(REPLACE "/boost/boost" "/boost" TMP ${Boost_INCLUDE_DIRS}) -list(APPEND Boost_INCLUDE_DIRS ${TMP}) +SET(TMP "") +STRING(REPLACE "/boost/boost" "/boost" TMP ${Boost_INCLUDE_DIRS}) +LIST(APPEND Boost_INCLUDE_DIRS ${TMP}) -if(NOT Boost_INCLUDE_DIRS) +IF(NOT Boost_INCLUDE_DIRS) # message(FATAL_ERROR "Boost include directory was not found! Please, set variable BOOST_INCLUDEDIR to the correct path.") -else() - message("Boost_INCLUDE_DIRS: ${Boost_INCLUDE_DIRS}") -endif() +ELSE() + MESSAGE("Boost_INCLUDE_DIRS: ${Boost_INCLUDE_DIRS}") +ENDIF() # Create a list of requested Boost libraries with "system" names -if(NOT DEPENDENCIES_LINK_TYPE) - message(FATAL_ERROR "Variable DEPENDENCIES_LINK_TYPE is not set! Set it to 'static' or 'shared'.") -endif() +IF(NOT DEPENDENCIES_LINK_TYPE) + MESSAGE(FATAL_ERROR "Variable DEPENDENCIES_LINK_TYPE is not set! Set it to 'static' or 'shared'.") +ENDIF() -set(REQUESTED_BOOST_LIBS "") -foreach(COMPONENT ${Boost_FIND_COMPONENTS}) - list(APPEND REQUESTED_BOOST_LIBS "${LIB_PREFIX}boost_${COMPONENT}.${LIB_SUFFIX}") -endforeach() +SET(REQUESTED_BOOST_LIBS "") +FOREACH(COMPONENT ${Boost_FIND_COMPONENTS}) + LIST(APPEND REQUESTED_BOOST_LIBS "${LIB_PREFIX}boost_${COMPONENT}.${LIB_SUFFIX}") +ENDFOREACH() -message("REQUESTED_BOOST_LIBS: ${REQUESTED_BOOST_LIBS}") +MESSAGE("REQUESTED_BOOST_LIBS: ${REQUESTED_BOOST_LIBS}") # Look for libraries specified by COMPONENTS flag -set(Boost_LIBRARY_DIRS "Boost_LIBRARY_DIRS-NOTFOUND") -find_path( +SET(Boost_LIBRARY_DIRS "Boost_LIBRARY_DIRS-NOTFOUND") +FIND_PATH( Boost_LIBRARY_DIRS NAMES - ${REQUESTED_BOOST_LIBS} + ${REQUESTED_BOOST_LIBS} HINTS - $ENV{BOOST_ROOT} - $ENV{BOOST_ROOT}/stage - $ENV{BOOST_ROOT}/stage/lib - ${BOOST_LIBRARYDIR} - $ENV{BOOST_LIBRARYDIR} - ${ROOT_DIR}/external_dependencies/boost - ${ROOT_DIR}/external_dependencies/boost/src/boost - ${ROOT_DIR}/external_dependencies/boost/stage - ${ROOT_DIR}/external_dependencies/boost/stage/lib + $ENV{BOOST_ROOT} + $ENV{BOOST_ROOT}/stage + $ENV{BOOST_ROOT}/stage/lib + ${BOOST_LIBRARYDIR} + $ENV{BOOST_LIBRARYDIR} + ${ROOT_DIR}/external_dependencies/boost + ${ROOT_DIR}/external_dependencies/boost/src/boost + ${ROOT_DIR}/external_dependencies/boost/stage + ${ROOT_DIR}/external_dependencies/boost/stage/lib PATHS - /usr/lib/boost - /usr/lib/x86_64-linux-gnu + /usr/lib/boost + /usr/lib/x86_64-linux-gnu PATH_SUFFIXES - lib + lib ) -if(NOT Boost_LIBRARY_DIRS) +IF(NOT Boost_LIBRARY_DIRS) #message(FATAL_ERROR "Boost library directory was not found! Please, set variable BOOST_LIBRARYDIR to the correct path.") -else() - message("Boost_LIBRARY_DIRS: ${Boost_LIBRARY_DIRS}") - +ELSE() + MESSAGE("Boost_LIBRARY_DIRS: ${Boost_LIBRARY_DIRS}") + # Construct list of libraries' names and make them - # targets, so they may be linked - set(Boost_LIBRARIES "") - foreach(LIBNAME ${REQUESTED_BOOST_LIBS}) - message("Looking for ${LIBNAME}...") - - set(${LIBNAME} "${LIBNAME}-NOTFOUND") - find_library( - ${LIBNAME} - - NAMES - ${LIBNAME} - - PATHS - ${Boost_LIBRARY_DIRS} - - PATH_SUFFIXES - stage/lib - lib - - NO_DEFAULT_PATH - ) - - # Check, if the Boost component was found - if("${${LIBNAME}}" STREQUAL "${LIBNAME}-NOTFOUND") - #message(FATAL_ERROR "Boost library ${LIBNAME} was NOT found!\ - # Please, set variable BOOST_LIBRARYDIR to the correct path and check the library names\ - # format in your Boost installation.") - else() - message("${LIBNAME} was found: ${${LIBNAME}}") + # targets, so they may be linked + SET(Boost_LIBRARIES "") + FOREACH(LIBNAME ${REQUESTED_BOOST_LIBS}) + MESSAGE("Looking for ${LIBNAME}...") + + SET(${LIBNAME} "${LIBNAME}-NOTFOUND") + FIND_LIBRARY( + ${LIBNAME} + + NAMES + ${LIBNAME} + + PATHS + ${Boost_LIBRARY_DIRS} + + PATH_SUFFIXES + stage/lib + lib + + NO_DEFAULT_PATH + ) + + # Check, if the Boost component was found + IF("${${LIBNAME}}" STREQUAL "${LIBNAME}-NOTFOUND") + #message(FATAL_ERROR "Boost library ${LIBNAME} was NOT found!\ + # Please, set variable BOOST_LIBRARYDIR to the correct path and check the library names\ + # format in your Boost installation.") + ELSE() + MESSAGE("${LIBNAME} was found: ${${LIBNAME}}") # Add every found library as an IMPORTED target - string(TOUPPER ${DEPENDENCIES_LINK_TYPE} TMP) - string(REGEX REPLACE "^lib" "" TARGET_NAME ${LIBNAME}) - string(REGEX REPLACE "\\.[a-z]*$" "" TARGET_NAME ${TARGET_NAME}) - add_library(${TARGET_NAME} ${TMP} IMPORTED) - set_target_properties(${TARGET_NAME} PROPERTIES IMPORTED_LOCATION ${${LIBNAME}}) - message("Created IMPORTED library target: ${TARGET_NAME}") - endif() - - list(APPEND Boost_LIBRARIES ${${LIBNAME}}) - endforeach() - -endif() + STRING(TOUPPER ${DEPENDENCIES_LINK_TYPE} TMP) + STRING(REGEX REPLACE "^lib" "" TARGET_NAME ${LIBNAME}) + STRING(REGEX REPLACE "\\.[a-z]*$" "" TARGET_NAME ${TARGET_NAME}) + ADD_LIBRARY(${TARGET_NAME} ${TMP} IMPORTED) + SET_TARGET_PROPERTIES(${TARGET_NAME} PROPERTIES IMPORTED_LOCATION ${${LIBNAME}}) + MESSAGE("Created IMPORTED library target: ${TARGET_NAME}") + ENDIF() + + LIST(APPEND Boost_LIBRARIES ${${LIBNAME}}) + ENDFOREACH() + +ENDIF() # Set Boost_FOUND @@ -166,15 +166,15 @@ FIND_PACKAGE_HANDLE_STANDARD_ARGS( Boost FAIL_MESSAGE - "Boost was NOT found!" + "Boost was NOT found!" REQUIRED_VARS - Boost_INCLUDE_DIRS - Boost_LIBRARY_DIRS + Boost_INCLUDE_DIRS + Boost_LIBRARY_DIRS ) -if(Boost_FOUND) - message("Boost_INCLUDE_DIRS: ${Boost_INCLUDE_DIRS}") - message("Boost_LIBRARY_DIRS: ${Boost_LIBRARY_DIRS}") - message("Boost_LIBRARIES: ${Boost_LIBRARIES}") -endif() +IF(Boost_FOUND) + MESSAGE("Boost_INCLUDE_DIRS: ${Boost_INCLUDE_DIRS}") + MESSAGE("Boost_LIBRARY_DIRS: ${Boost_LIBRARY_DIRS}") + MESSAGE("Boost_LIBRARIES: ${Boost_LIBRARIES}") +ENDIF() diff --git a/cmake/FindExprtk.cmake b/cmake/FindExprtk.cmake index a5a70c934165ee91af1ffc9769c2d420969f4af3..05ed480929eab69ade6ebc6079d0d750bd88b024 100644 --- a/cmake/FindExprtk.cmake +++ b/cmake/FindExprtk.cmake @@ -9,30 +9,30 @@ # ################################################################################ -message("FindExprtk starting...") +MESSAGE("FindExprtk starting...") # Find headers and libraries FIND_PATH( EXPRTK_INCLUDE_DIR NAMES - exprtk.hpp + exprtk.hpp HINTS - $ENV{EXPRTK_INCLUDE_DIR} - $ENV{EXPRTK_ROOT} - ${EXPRTK_ROOT} - ${EXPRTK_INCLUDE_DIR} - ${ROOT_DIR}/external_dependencies/exprtk + $ENV{EXPRTK_INCLUDE_DIR} + $ENV{EXPRTK_ROOT} + ${EXPRTK_ROOT} + ${EXPRTK_INCLUDE_DIR} + ${ROOT_DIR}/external_dependencies/exprtk PATHS - /home - /usr/local - /usr - /opt/local + /home + /usr/local + /usr + /opt/local PATH_SUFFIXES - include - exprtk - include/exprtk + include + exprtk + include/exprtk ) # Set EXPRTK_FOUND honoring the QUIET and REQUIRED arguments INCLUDE(FindPackageHandleStandardArgs) @@ -45,7 +45,7 @@ FIND_PACKAGE_HANDLE_STANDARD_ARGS( IF(EXPRTK_FOUND) # Include dirs SET(EXPRTK_INCLUDE_DIRS ${EXPRTK_INCLUDE_DIR}) - message("Exprtk was successfully found.") + MESSAGE("Exprtk was successfully found.") ENDIF(EXPRTK_FOUND) # Advanced options for not cluttering the cmake UIs: diff --git a/cmake/FindOpenBLAS.cmake b/cmake/FindOpenBLAS.cmake index 375a122b87b25b2df4a323b6e49347e3cf9306c6..b7691e8a1c55cfcff7576ad9bcb664b7a55675c5 100644 --- a/cmake/FindOpenBLAS.cmake +++ b/cmake/FindOpenBLAS.cmake @@ -1,60 +1,60 @@ -message("FindOpenBLAS starting...") +MESSAGE("FindOpenBLAS starting...") FIND_PATH( OpenBLAS_INCLUDE_DIR NAMES - cblas.h + cblas.h HINTS - ${OpenBLAS_INCLUDE_DIRECTORY} - $ENV{OpenBLAS_INCLUDE_DIRECTORY} - ${ROOT_DIR}/external_dependencies/OpenBLAS - /usr + ${OpenBLAS_INCLUDE_DIRECTORY} + $ENV{OpenBLAS_INCLUDE_DIRECTORY} + ${ROOT_DIR}/external_dependencies/OpenBLAS + /usr PATH_SUFFIXES - include - include/x86_64-linux-gnu - include/OpenBLAS + include + include/x86_64-linux-gnu + include/OpenBLAS ) FIND_LIBRARY( - OpenBLAS_LIBRARIES - - NAMES - openblas - - HINTS - ${OpenBLAS_LIBRARY_DIRECTORY} - $ENV{OpenBLAS_LIBRARY_DIRECTORY} - ${ROOT_DIR}/external_dependencies/OpenBLAS/ - /usr - - PATH_SUFFIXES - bin - lib - lib/x86_64-linux-gnu - local - include/OpenBLAS/lib + OpenBLAS_LIBRARIES + + NAMES + openblas + + HINTS + ${OpenBLAS_LIBRARY_DIRECTORY} + $ENV{OpenBLAS_LIBRARY_DIRECTORY} + ${ROOT_DIR}/external_dependencies/OpenBLAS/ + /usr + + PATH_SUFFIXES + bin + lib + lib/x86_64-linux-gnu + local + include/OpenBLAS/lib ) # Set OpenBLAS_Found INCLUDE(FindPackageHandleStandardArgs) FIND_PACKAGE_HANDLE_STANDARD_ARGS( - OpenBLAS + OpenBLAS - FAIL_MESSAGE - "OpenBLAS was NOT found!" + FAIL_MESSAGE + "OpenBLAS was NOT found!" - REQUIRED_VARS - OpenBLAS_INCLUDE_DIR - OpenBLAS_LIBRARIES + REQUIRED_VARS + OpenBLAS_INCLUDE_DIR + OpenBLAS_LIBRARIES ) -IF (OpenBLAS_FOUND) - MESSAGE(STATUS "OpenBLAS was found.") - MESSAGE(STATUS "OpenBLAS_LIBRARIES: ${OpenBLAS_LIBRARIES}") - MESSAGE(STATUS "OpenBLAS_INCLUDE_DIR: ${OpenBLAS_INCLUDE_DIR}") +IF(OpenBLAS_FOUND) + MESSAGE(STATUS "OpenBLAS was found.") + MESSAGE(STATUS "OpenBLAS_LIBRARIES: ${OpenBLAS_LIBRARIES}") + MESSAGE(STATUS "OpenBLAS_INCLUDE_DIR: ${OpenBLAS_INCLUDE_DIR}") ELSE() MESSAGE(STATUS "Could not find OpenBLAS") ENDIF() diff --git a/cmake/FindTurtle.cmake b/cmake/FindTurtle.cmake index 463b0af5cfeca58790f655e8e6ddb62926ff3974..b8e6956ad0831191ff7b790aad01164804c305de 100644 --- a/cmake/FindTurtle.cmake +++ b/cmake/FindTurtle.cmake @@ -1,28 +1,28 @@ -message("FindTurtle starting...") +MESSAGE("FindTurtle starting...") # Find headers and libraries FIND_PATH( TURTLE_INCLUDE_DIR NAMES - mock.hpp + mock.hpp HINTS - $ENV{TURTLE_INCLUDE_DIR} - ${TURTLE_INCLUDE_DIR} - ${ROOT_DIR}/external_dependencies/turtle/ + $ENV{TURTLE_INCLUDE_DIR} + ${TURTLE_INCLUDE_DIR} + ${ROOT_DIR}/external_dependencies/turtle/ PATHS - /usr - /home - /opt + /usr + /home + /opt PATH_SUFFIXES - include - turtle - include/turtle/include/turtle - include/turtle - local + include + turtle + include/turtle/include/turtle + include/turtle + local ) # Set TURTLE_FOUND honoring the QUIET and REQUIRED arguments INCLUDE(FindPackageHandleStandardArgs) @@ -35,15 +35,15 @@ FIND_PACKAGE_HANDLE_STANDARD_ARGS( IF(TURTLE_FOUND) # Include dirs SET(TURTLE_INCLUDE_DIRS ${TURTLE_INCLUDE_DIR}) - message("Turtle was successfully found.") + MESSAGE("Turtle was successfully found.") ELSE() # MESSAGE(FATAL_ERROR "Set, please, the environmental variable TURTLE_INCLUDE_DIR to the folder, where 'mock.hpp' is located...") ENDIF(TURTLE_FOUND) # Add path only to the 'include' folder -set(TMP "") -string(REGEX REPLACE "/turtle$" "" TMP ${TURTLE_INCLUDE_DIR}) -list(APPEND TURTLE_INCLUDE_DIR ${TMP}) +SET(TMP "") +STRING(REGEX REPLACE "/turtle$" "" TMP ${TURTLE_INCLUDE_DIR}) +LIST(APPEND TURTLE_INCLUDE_DIR ${TMP}) # Advanced options for not cluttering the cmake UIs: MARK_AS_ADVANCED(TURTLE_INCLUDE_DIR) diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt index fa0044d47607fe9b85bc054b1b30a04980e950aa..de3c43c6dd97a8548060b180aa84299950af33bd 100644 --- a/src/CMakeLists.txt +++ b/src/CMakeLists.txt @@ -1,190 +1,190 @@ # Handle undefined parameters -if(NOT BUILD_LIB) - if(ENV{BUILD_LIB}) - set(BUILD_LIB $ENV{BUILD_LIB}) - else() - set(BUILD_LIB "yes") - endif() -endif() - -if(NOT BUILD_EXAMPLES) - if(ENV{BUILD_EXAMPLES}) - set(BUILD_EXAMPLES $ENV{BUILD_EXAMPLES}) - else() - set(BUILD_EXAMPLES "no") - endif() -endif() - -if(NOT BUILD_TESTS) - if(ENV{BUILD_TESTS}) - set(BUILD_TESTS $ENV{BUILD_TESTS}) - else() - set(BUILD_TESTS "no") - endif() -endif() - -if ("${BUILD_LIB}" STREQUAL "yes") - - set(LIBRARIES_OUTPUT_DIR ${PROJECT_BINARY_DIR}/lib) - - set(LIB_TYPE "STATIC") - if (DEPENDENCIES_LINK_TYPE STREQUAL "shared") - set(LIB_TYPE "SHARED") - endif () - - add_library( - exprtk_wrap - - ${LIB_TYPE} - - General/ExprtkWrapper.cpp +IF(NOT BUILD_LIB) + IF(ENV{BUILD_LIB}) + SET(BUILD_LIB $ENV{BUILD_LIB}) + ELSE() + SET(BUILD_LIB "yes") + ENDIF() +ENDIF() + +IF(NOT BUILD_EXAMPLES) + IF(ENV{BUILD_EXAMPLES}) + SET(BUILD_EXAMPLES $ENV{BUILD_EXAMPLES}) + ELSE() + SET(BUILD_EXAMPLES "no") + ENDIF() +ENDIF() + +IF(NOT BUILD_TESTS) + IF(ENV{BUILD_TESTS}) + SET(BUILD_TESTS $ENV{BUILD_TESTS}) + ELSE() + SET(BUILD_TESTS "no") + ENDIF() +ENDIF() + +IF("${BUILD_LIB}" STREQUAL "yes") + + SET(LIBRARIES_OUTPUT_DIR ${PROJECT_BINARY_DIR}/lib) + + SET(LIB_TYPE "STATIC") + IF(DEPENDENCIES_LINK_TYPE STREQUAL "shared") + SET(LIB_TYPE "SHARED") + ENDIF() + + ADD_LIBRARY( + exprtk_wrap + + ${LIB_TYPE} + + General/ExprtkWrapper.cpp ) - - set_target_properties( - exprtk_wrap - - PROPERTIES - ARCHIVE_OUTPUT_DIRECTORY $<1:${LIBRARIES_OUTPUT_DIR}> - LIBRARY_OUTPUT_DIRECTORY $<1:${LIBRARIES_OUTPUT_DIR}> - RUNTIME_OUTPUT_DIRECTORY $<1:${LIBRARIES_OUTPUT_DIR}> + + SET_TARGET_PROPERTIES( + exprtk_wrap + + PROPERTIES + ARCHIVE_OUTPUT_DIRECTORY $<1:${LIBRARIES_OUTPUT_DIR}> + LIBRARY_OUTPUT_DIRECTORY $<1:${LIBRARIES_OUTPUT_DIR}> + RUNTIME_OUTPUT_DIRECTORY $<1:${LIBRARIES_OUTPUT_DIR}> ) - target_include_directories( - exprtk_wrap + TARGET_INCLUDE_DIRECTORIES( + exprtk_wrap - PRIVATE - ${EXPRTK_INCLUDE_DIR} - ${Boost_INCLUDE_DIRS} - ${SRC_DIR} + PRIVATE + ${EXPRTK_INCLUDE_DIR} + ${Boost_INCLUDE_DIRS} + ${SRC_DIR} ) - target_link_libraries( - exprtk_wrap + TARGET_LINK_LIBRARIES( + exprtk_wrap - PRIVATE - ${Boost_LIBRARIES} + PRIVATE + ${Boost_LIBRARIES} ) - if (NOT OpenBLAS_LIBRARIES) - set(OpenBLAS_LIBRARIES "") - endif () - - if (NOT BLAS_LIBRARIES) - set(BLAS_LIBRARIES "") - endif () - - if (NOT LAPACK_LIBRARIES) - set(LAPACK_LIBRARIES "") - endif () - - add_library( - lib4neuro - - ${LIB_TYPE} - - Neuron/Neuron.cpp - Neuron/NeuronBinary.cpp - Neuron/NeuronConstant.cpp - Neuron/NeuronLinear.cpp - Neuron/NeuronLogistic.cpp - Network/NeuralNetwork.cpp - Network/NeuralNetworkSum.cpp - NetConnection/ConnectionFunctionGeneral.cpp - NetConnection/ConnectionFunctionIdentity.cpp - LearningMethods/LearningMethods.cpp - LearningMethods/ParticleSwarm.cpp - LearningMethods/GradientDescent.cpp - LearningMethods/LevenbergMarquardt.cpp - LearningMethods/GradientDescentBB.cpp - DataSet/DataSet.cpp - ErrorFunction/ErrorFunctions.cpp - Solvers/DESolver.cpp - CSVReader/CSVReader.cpp - CrossValidator/CrossValidator.cpp - NormalizationStrategy/NormalizationStrategy.cpp - LearningMethods/GradientDescentSingleItem.cpp - LearningMethods/LearningSequence.cpp - LearningMethods/RandomSolution.cpp - NetConnection/ConnectionFunctionConstant.cpp - Neuron/NeuronBiased.cpp + IF(NOT OpenBLAS_LIBRARIES) + SET(OpenBLAS_LIBRARIES "") + ENDIF() + + IF(NOT BLAS_LIBRARIES) + SET(BLAS_LIBRARIES "") + ENDIF() + + IF(NOT LAPACK_LIBRARIES) + SET(LAPACK_LIBRARIES "") + ENDIF() + + ADD_LIBRARY( + lib4neuro + + ${LIB_TYPE} + + Neuron/Neuron.cpp + Neuron/NeuronBinary.cpp + Neuron/NeuronConstant.cpp + Neuron/NeuronLinear.cpp + Neuron/NeuronLogistic.cpp + Network/NeuralNetwork.cpp + Network/NeuralNetworkSum.cpp + NetConnection/ConnectionFunctionGeneral.cpp + NetConnection/ConnectionFunctionIdentity.cpp + LearningMethods/LearningMethods.cpp + LearningMethods/ParticleSwarm.cpp + LearningMethods/GradientDescent.cpp + LearningMethods/LevenbergMarquardt.cpp + LearningMethods/GradientDescentBB.cpp + DataSet/DataSet.cpp + ErrorFunction/ErrorFunctions.cpp + Solvers/DESolver.cpp + CSVReader/CSVReader.cpp + CrossValidator/CrossValidator.cpp + NormalizationStrategy/NormalizationStrategy.cpp + LearningMethods/GradientDescentSingleItem.cpp + LearningMethods/LearningSequence.cpp + LearningMethods/RandomSolution.cpp + NetConnection/ConnectionFunctionConstant.cpp + Neuron/NeuronBiased.cpp ) # Detect Threading library - set(THREADS_PREFER_PTHREAD_FLAG ON) - find_package(Threads REQUIRED) + SET(THREADS_PREFER_PTHREAD_FLAG ON) + FIND_PACKAGE(Threads REQUIRED) # GFortran linking - set(GFORT "") - if (OpenBLAS_FOUND) - message("Linking GFortran because of OpenBLAS...") - set(GFORT gfortran) - endif () - - target_link_libraries( - lib4neuro - - PRIVATE - exprtk_wrap - Threads::Threads - ${Boost_LIBRARIES} - ${CXX_FILESYSTEM_LIB} - ${OpenBLAS_LIBRARIES} - ${BLAS_LIBRARIES} - ${LAPACK_LIBRARIES} - ${GFORT} + SET(GFORT "") + IF(OpenBLAS_FOUND) + MESSAGE("Linking GFortran because of OpenBLAS...") + SET(GFORT gfortran) + ENDIF() + + TARGET_LINK_LIBRARIES( + lib4neuro + + PRIVATE + exprtk_wrap + Threads::Threads + ${Boost_LIBRARIES} + ${CXX_FILESYSTEM_LIB} + ${OpenBLAS_LIBRARIES} + ${BLAS_LIBRARIES} + ${LAPACK_LIBRARIES} + ${GFORT} ) - target_include_directories( - lib4neuro + TARGET_INCLUDE_DIRECTORIES( + lib4neuro - PUBLIC - ${ROOT_DIR}/include + PUBLIC + ${ROOT_DIR}/include - PRIVATE - ${EXPRTK_INCLUDE_DIR} - ${SRC_DIR} - ${Boost_INCLUDE_DIRS} - ${ARMADILLO_INCLUDE_DIR} + PRIVATE + ${EXPRTK_INCLUDE_DIR} + ${SRC_DIR} + ${Boost_INCLUDE_DIRS} + ${ARMADILLO_INCLUDE_DIR} ) - set_target_properties( - lib4neuro + SET_TARGET_PROPERTIES( + lib4neuro - PROPERTIES - ARCHIVE_OUTPUT_DIRECTORY $<1:${LIBRARIES_OUTPUT_DIR}> - LIBRARY_OUTPUT_DIRECTORY $<1:${LIBRARIES_OUTPUT_DIR}> - RUNTIME_OUTPUT_DIRECTORY $<1:${LIBRARIES_OUTPUT_DIR}> + PROPERTIES + ARCHIVE_OUTPUT_DIRECTORY $<1:${LIBRARIES_OUTPUT_DIR}> + LIBRARY_OUTPUT_DIRECTORY $<1:${LIBRARIES_OUTPUT_DIR}> + RUNTIME_OUTPUT_DIRECTORY $<1:${LIBRARIES_OUTPUT_DIR}> ) - if ("${DEPENDENCIES_LINK_TYPE}" STREQUAL "static") - add_library(boost_unit_test STATIC boost_test_lib_dummy.cpp) - elseif ("${DEPENDENCIES_LINK_TYPE}" STREQUAL "shared") - add_library(boost_unit_test SHARED boost_test_lib_dummy.cpp) - endif () + IF("${DEPENDENCIES_LINK_TYPE}" STREQUAL "static") + ADD_LIBRARY(boost_unit_test STATIC boost_test_lib_dummy.cpp) + ELSEIF("${DEPENDENCIES_LINK_TYPE}" STREQUAL "shared") + ADD_LIBRARY(boost_unit_test SHARED boost_test_lib_dummy.cpp) + ENDIF() - set_target_properties( - boost_unit_test + SET_TARGET_PROPERTIES( + boost_unit_test - PROPERTIES - ARCHIVE_OUTPUT_DIRECTORY $<1:${LIBRARIES_OUTPUT_DIR}> - LIBRARY_OUTPUT_DIRECTORY $<1:${LIBRARIES_OUTPUT_DIR}> - RUNTIME_OUTPUT_DIRECTORY $<1:${LIBRARIES_OUTPUT_DIR}> + PROPERTIES + ARCHIVE_OUTPUT_DIRECTORY $<1:${LIBRARIES_OUTPUT_DIR}> + LIBRARY_OUTPUT_DIRECTORY $<1:${LIBRARIES_OUTPUT_DIR}> + RUNTIME_OUTPUT_DIRECTORY $<1:${LIBRARIES_OUTPUT_DIR}> ) - target_include_directories( - ${PREFIX}boost_unit_test + TARGET_INCLUDE_DIRECTORIES( + ${PREFIX}boost_unit_test - PRIVATE - ${Boost_INCLUDE_DIRS} + PRIVATE + ${Boost_INCLUDE_DIRS} ) -endif () +ENDIF() -if ("${BUILD_TESTS}" STREQUAL "yes") - add_subdirectory(tests) -endif () +IF("${BUILD_TESTS}" STREQUAL "yes") + ADD_SUBDIRECTORY(tests) +ENDIF() -if ("${BUILD_EXAMPLES}" STREQUAL "yes") - add_subdirectory(examples) -endif () +IF("${BUILD_EXAMPLES}" STREQUAL "yes") + ADD_SUBDIRECTORY(examples) +ENDIF() diff --git a/src/CSVReader/CSVReader.cpp b/src/CSVReader/CSVReader.cpp index b4f711f3536123eb6a4333a22cb8246e50c16765..68eed16fb0df1b6de95657ee324cd0faa96d3856 100644 --- a/src/CSVReader/CSVReader.cpp +++ b/src/CSVReader/CSVReader.cpp @@ -10,8 +10,7 @@ #include "CSVReader.h" #include "exceptions.h" -bool is_file_accessible(std::string file_path) -{ +bool is_file_accessible(std::string file_path) { return std::ifstream(file_path).good(); } diff --git a/src/DataSet/DataSet.cpp b/src/DataSet/DataSet.cpp index f81374e893ad9ea252478e39938044f6c8c19e92..e9046569b7f67ef03d4baecfb22f579ce0bc739c 100644 --- a/src/DataSet/DataSet.cpp +++ b/src/DataSet/DataSet.cpp @@ -97,7 +97,7 @@ namespace lib4neuro { output_func); } - DataSet::~DataSet(){ + DataSet::~DataSet() { } @@ -382,7 +382,7 @@ namespace lib4neuro { if (!this->normalized || !this->normalization_strategy) { return val; } - return this->normalization_strategy->de_normalize( val ); + return this->normalization_strategy->de_normalize(val); } void DataSet::get_input(std::vector<double>& d, diff --git a/src/ErrorFunction/ErrorFunctions.cpp b/src/ErrorFunction/ErrorFunctions.cpp index 8f0484aef7e4ca894955ab60142bb3810de6476f..7d520471ea28840c63041657eb9bbe634d5f54e5 100644 --- a/src/ErrorFunction/ErrorFunctions.cpp +++ b/src/ErrorFunction/ErrorFunctions.cpp @@ -65,21 +65,24 @@ namespace lib4neuro { } } - void MSE::get_jacobian_and_rhs(std::vector<std::vector<double>> &jacobian, std::vector<double> &rhs) { + void MSE::get_jacobian_and_rhs(std::vector<std::vector<double>>& jacobian, + std::vector<double>& rhs) { // size_t row_idx = 0; std::vector<double> partial_error(this->get_n_outputs()); - rhs.resize( this->get_dimension()); - std::fill(rhs.begin(), rhs.end(), 0.0); + rhs.resize(this->get_dimension()); + std::fill(rhs.begin(), + rhs.end(), + 0.0); std::vector<std::vector<double>> jac_loc; for (auto item: *this->ds->get_data()) { this->nets[0]->get_jacobian(jac_loc, - item, - partial_error); + item, + partial_error); for (size_t ri = 0; ri < jac_loc.size(); ++ri) { - jacobian.push_back( jac_loc[ri] ); + jacobian.push_back(jac_loc[ri]); for (size_t ci = 0; ci < this->get_dimension(); ++ci) { // J.at(row_idx, @@ -103,8 +106,8 @@ namespace lib4neuro { std::vector<double>* weights) { std::vector<double> predicted_output(this->nets[0]->get_n_outputs()); this->nets[0]->eval_single(*input, - predicted_output, - weights); + predicted_output, + weights); double result = 0; double val; @@ -120,7 +123,7 @@ namespace lib4neuro { std::ofstream* results_file_path, std::vector<double>* weights, bool verbose - ) { + ) { size_t dim_in = data_set->get_input_dim(); size_t dim_out = data_set->get_output_dim(); double error = 0.0, val, output_norm = 0; @@ -156,8 +159,8 @@ namespace lib4neuro { for (size_t i = 0; i < data->size(); i++) { // Iterate through every element in the test set /* Compute the net output and store it into 'output' variable */ this->nets[0]->eval_single(data->at(i).first, - output, - weights); + output, + weights); outputs.at(i) = output; } @@ -326,17 +329,17 @@ namespace lib4neuro { for (auto el: *data) { // Iterate through every element in the test set this->nets[0]->eval_single(el.first, - error_derivative, - ¶ms); // Compute the net output and store it into 'output' variable + error_derivative, + ¶ms); // Compute the net output and store it into 'output' variable for (size_t j = 0; j < dim_out; ++j) { error_derivative.at(j) = 2.0 * (error_derivative.at(j) - el.second.at(j)); //real - expected result } this->nets[0]->add_to_gradient_single(el.first, - error_derivative, - alpha / n_elements, - grad); + error_derivative, + alpha / n_elements, + grad); } } @@ -399,9 +402,9 @@ namespace lib4neuro { 0); std::vector<double> dummy_input; this->nets[0]->add_to_gradient_single(dummy_input, - error_vector, - 1.0, - gradient_vector); + error_vector, + 1.0, + gradient_vector); } void @@ -429,8 +432,8 @@ namespace lib4neuro { for (auto el: *data) { // Iterate through every element in the test set this->nets[0]->eval_single_debug(el.first, - error_derivative, - ¶ms); // Compute the net output and store it into 'output' variable + error_derivative, + ¶ms); // Compute the net output and store it into 'output' variable std::cout << "Input["; for (auto v: el.first) { std::cout << v << ", "; @@ -490,8 +493,8 @@ namespace lib4neuro { double output = 0, val; this->nets[0]->eval_single(this->ds->get_data()->at(i).first, - error_vector, - parameter_vector); + error_vector, + parameter_vector); for (size_t j = 0; j < error_vector.size(); ++j) { // Compute difference for every element of the output vector val = error_vector.at(j) - this->ds->get_data()->at(i).second.at(j); @@ -509,17 +512,17 @@ namespace lib4neuro { std::vector<double> MSE::get_parameters() { std::vector<double> output(this->get_dimension()); - for(size_t i = 0; i < this->nets[0]->get_n_weights(); ++i){ + for (size_t i = 0; i < this->nets[0]->get_n_weights(); ++i) { output[i] = this->nets[0]->get_parameter_ptr_weights()->at(i); } - for(size_t i = 0; i < this->nets[0]->get_n_biases(); ++i){ + for (size_t i = 0; i < this->nets[0]->get_n_biases(); ++i) { output[i + this->nets[0]->get_n_weights()] = this->nets[0]->get_parameter_ptr_biases()->at(i); } return output; } - void MSE::set_parameters(std::vector<double> ¶ms) { - this->nets[0]->copy_parameter_space( ¶ms ); + void MSE::set_parameters(std::vector<double>& params) { + this->nets[0]->copy_parameter_space(¶ms); } size_t MSE::get_n_data_set() { @@ -547,8 +550,8 @@ namespace lib4neuro { ErrorSum::~ErrorSum() { if (this->summand) { - for( auto el: *this->summand){ - if(el){ + for (auto el: *this->summand) { + if (el) { delete el; } } @@ -724,10 +727,10 @@ namespace lib4neuro { return this->summand->at(0)->get_parameters(); } - void ErrorSum::set_parameters(std::vector<double> ¶ms) { + void ErrorSum::set_parameters(std::vector<double>& params) { //TODO may cause problems for general error sum... - for(auto n: *this->summand){ - n->set_parameters( params ); + for (auto n: *this->summand) { + n->set_parameters(params); } } @@ -747,12 +750,15 @@ namespace lib4neuro { return 0; } - double ErrorSum::eval_on_single_input(std::vector<double> *input, std::vector<double> *output, - std::vector<double> *weights) { + double ErrorSum::eval_on_single_input(std::vector<double>* input, + std::vector<double>* output, + std::vector<double>* weights) { double o = 0.0; - for(size_t i = 0; i < this->summand->size(); ++i){ - o += this->summand->at( i )->eval_on_single_input( input, output, weights ) * this->summand_coefficient.at( i ); + for (size_t i = 0; i < this->summand->size(); ++i) { + o += this->summand->at(i)->eval_on_single_input(input, + output, + weights) * this->summand_coefficient.at(i); } return o; @@ -761,8 +767,8 @@ namespace lib4neuro { size_t ErrorSum::get_n_data_set() { size_t o = 0; - for(size_t i = 0; i < this->summand->size(); ++i){ - o += this->summand->at( i )->get_n_data_set(); + for (size_t i = 0; i < this->summand->size(); ++i) { + o += this->summand->at(i)->get_n_data_set(); } return o; @@ -771,8 +777,8 @@ namespace lib4neuro { size_t ErrorSum::get_n_test_data_set() { size_t o = 0; - for(size_t i = 0; i < this->summand->size(); ++i){ - o += this->summand->at( i )->get_n_test_data_set(); + for (size_t i = 0; i < this->summand->size(); ++i) { + o += this->summand->at(i)->get_n_test_data_set(); } return o; @@ -781,41 +787,43 @@ namespace lib4neuro { size_t ErrorSum::get_n_outputs() { size_t o = 0; - for(size_t i = 0; i < this->summand->size(); ++i){ - o += this->summand->at( i )->get_n_outputs(); + for (size_t i = 0; i < this->summand->size(); ++i) { + o += this->summand->at(i)->get_n_outputs(); } return o; } void ErrorSum::divide_data_train_test(double percent) { - for(auto n: *this->summand){ - n->divide_data_train_test( percent ); + for (auto n: *this->summand) { + n->divide_data_train_test(percent); } } void ErrorSum::return_full_data_set_for_training() { - for(auto n: *this->summand){ + for (auto n: *this->summand) { n->return_full_data_set_for_training(); } } - void ErrorSum::get_jacobian_and_rhs(std::vector<std::vector<double>> &jacobian, std::vector<double> &rhs) { - for(auto n: *this->summand){ + void ErrorSum::get_jacobian_and_rhs(std::vector<std::vector<double>>& jacobian, + std::vector<double>& rhs) { + for (auto n: *this->summand) { std::vector<double> rhs_loc; - n->get_jacobian_and_rhs( jacobian, rhs_loc ); + n->get_jacobian_and_rhs(jacobian, + rhs_loc); size_t curr_size = rhs.size(); rhs.resize(curr_size + rhs_loc.size()); - for(size_t i = 0; i < rhs_loc.size(); ++i){ + for (size_t i = 0; i < rhs_loc.size(); ++i) { rhs.at(i + curr_size) = rhs_loc.at(i); } } } void ErrorSum::randomize_parameters(double scaling) { - for(auto n: *this->summand){ - n->randomize_parameters( scaling ); + for (auto n: *this->summand) { + n->randomize_parameters(scaling); } } diff --git a/src/ErrorFunction/ErrorFunctions.h b/src/ErrorFunction/ErrorFunctions.h index 9ac3602ccbce5aa6866edf7de0f5ee483e064855..36911e94086272f34d06810303f47cbadbdb5966 100644 --- a/src/ErrorFunction/ErrorFunctions.h +++ b/src/ErrorFunction/ErrorFunctions.h @@ -99,7 +99,7 @@ namespace lib4neuro { * * @param params */ - virtual void set_parameters(std::vector<double> ¶ms) = 0; + virtual void set_parameters(std::vector<double>& params) = 0; /** * @@ -118,7 +118,8 @@ namespace lib4neuro { * @param jacobian * @param rhs */ - virtual void get_jacobian_and_rhs(std::vector<std::vector<double>> &jacobian, std::vector<double> &rhs) = 0; + virtual void get_jacobian_and_rhs(std::vector<std::vector<double>>& jacobian, + std::vector<double>& rhs) = 0; /** * @@ -288,7 +289,8 @@ namespace lib4neuro { * @param jacobian * @param rhs */ - LIB4NEURO_API virtual void get_jacobian_and_rhs(std::vector<std::vector<double>> &jacobian, std::vector<double> &rhs) override ; + LIB4NEURO_API virtual void get_jacobian_and_rhs(std::vector<std::vector<double>>& jacobian, + std::vector<double>& rhs) override; /** * * @param weights @@ -450,19 +452,19 @@ namespace lib4neuro { * * @param params */ - LIB4NEURO_API virtual void set_parameters(std::vector<double> ¶ms) override; + LIB4NEURO_API virtual void set_parameters(std::vector<double>& params) override; /** * * @return */ - LIB4NEURO_API virtual size_t get_n_data_set() override ; + LIB4NEURO_API virtual size_t get_n_data_set() override; /** * * @return */ - LIB4NEURO_API virtual size_t get_n_test_data_set() override ; + LIB4NEURO_API virtual size_t get_n_test_data_set() override; /** * @@ -643,7 +645,7 @@ namespace lib4neuro { * * @param params */ - LIB4NEURO_API virtual void set_parameters(std::vector<double> ¶ms) override; + LIB4NEURO_API virtual void set_parameters(std::vector<double>& params) override; /** * @@ -655,7 +657,7 @@ namespace lib4neuro { * * @return */ - LIB4NEURO_API virtual size_t get_n_test_data_set() override ; + LIB4NEURO_API virtual size_t get_n_test_data_set() override; /** * @@ -680,8 +682,8 @@ namespace lib4neuro { * @param rhs */ LIB4NEURO_API virtual void get_jacobian_and_rhs( - std::vector<std::vector<double>> &jacobian, - std::vector<double> &rhs) override; + std::vector<std::vector<double>>& jacobian, + std::vector<double>& rhs) override; /** * diff --git a/src/ErrorFunction/ErrorFunctionsMock.h b/src/ErrorFunction/ErrorFunctionsMock.h index e754f6252367ce1120b77d07c6cae272bf722e70..489867c065102cd28dcfbbed20a623386cced0f8 100644 --- a/src/ErrorFunction/ErrorFunctionsMock.h +++ b/src/ErrorFunction/ErrorFunctionsMock.h @@ -11,69 +11,98 @@ using namespace lib4neuro; MOCK_BASE_CLASS(mock_ErrorFunction, - lib4neuro::ErrorFunction + lib4neuro::ErrorFunction ) { -MOCK_METHOD(eval, -3) + MOCK_METHOD(eval, + 3) -MOCK_METHOD(eval_on_single_input, -3) + MOCK_METHOD(eval_on_single_input, + 3) -MOCK_METHOD(get_dimension, -0) + MOCK_METHOD(get_dimension, + 0) -MOCK_METHOD(calculate_error_gradient, -4) + MOCK_METHOD(calculate_error_gradient, + 4) -MOCK_METHOD(analyze_error_gradient, -4) + MOCK_METHOD(analyze_error_gradient, + 4) -MOCK_METHOD(get_parameters, -0) + MOCK_METHOD(get_parameters, + 0) -MOCK_METHOD(get_n_data_set, -0) + MOCK_METHOD(get_n_data_set, + 0) -MOCK_METHOD(get_n_test_data_set, -0) + MOCK_METHOD(get_n_test_data_set, + 0) -MOCK_METHOD(get_n_outputs, -0) + MOCK_METHOD(get_n_outputs, + 0) -MOCK_METHOD(set_parameters, -1) + MOCK_METHOD(set_parameters, + 1) -MOCK_METHOD(divide_data_train_test, -1) + MOCK_METHOD(divide_data_train_test, + 1) -MOCK_METHOD(return_full_data_set_for_training, -0) + MOCK_METHOD(return_full_data_set_for_training, + 0) -MOCK_METHOD(get_jacobian_and_rhs, -2) + MOCK_METHOD(get_jacobian_and_rhs, + 2) -MOCK_METHOD(eval_on_test_data, 2, double(std::vector<double>*, bool), id1) + MOCK_METHOD(eval_on_test_data, + 2, + double(std::vector<double> + *, bool), + id1) -MOCK_METHOD(eval_on_test_data, 3, double(std::string, std::vector<double>*, bool), id2) + MOCK_METHOD(eval_on_test_data, + 3, + double(std::string, std::vector<double> + *, bool), + id2) -MOCK_METHOD(eval_on_test_data, 3, double(std::ofstream*, std::vector<double>*, bool), id3) + MOCK_METHOD(eval_on_test_data, + 3, + double(std::ofstream + *, std::vector<double> *, bool), + id3) -MOCK_METHOD(eval_on_data_set, 3, double(DataSet*, std::vector<double>*, bool), id4) + MOCK_METHOD(eval_on_data_set, + 3, + double(DataSet + *, std::vector<double> *, bool), + id4) -MOCK_METHOD(eval_on_data_set, 4, double(DataSet*, std::string, std::vector<double>*, bool), id5) + MOCK_METHOD(eval_on_data_set, + 4, + double(DataSet + *, std::string, std::vector<double> *, bool), + id5) -MOCK_METHOD(eval_on_data_set, 4, double(DataSet*, std::ofstream *, std::vector<double> *, bool), id6) + MOCK_METHOD(eval_on_data_set, + 4, + double(DataSet + *, std::ofstream *, std::vector<double> *, bool), + id6) -MOCK_METHOD(eval_single_item_by_idx, 3) + MOCK_METHOD(eval_single_item_by_idx, + 3) -MOCK_METHOD(calculate_error_gradient_single, 2) + MOCK_METHOD(calculate_error_gradient_single, + 2) -MOCK_METHOD(calculate_residual_gradient, 4) + MOCK_METHOD(calculate_residual_gradient, + 4) -MOCK_METHOD(calculate_single_residual, 3) + MOCK_METHOD(calculate_single_residual, + 3) -MOCK_METHOD(randomize_parameters, 1) + MOCK_METHOD(randomize_parameters, + 1) }; #endif //LIB4NEURO_ERRORFUNCTIONSMOCK_H diff --git a/src/LearningMethods/GradientDescentBB.cpp b/src/LearningMethods/GradientDescentBB.cpp index 7af37f31638b51bf05d87b0d8f246b5f019df1e4..4269e10ae9c61ecf9b01bfc85638a686499a560c 100644 --- a/src/LearningMethods/GradientDescentBB.cpp +++ b/src/LearningMethods/GradientDescentBB.cpp @@ -206,7 +206,7 @@ namespace lib4neuro { delete gradient_current; delete gradient_prev; - delete params_current ; + delete params_current; delete params_prev; delete params_best; diff --git a/src/LearningMethods/LevenbergMarquardt.cpp b/src/LearningMethods/LevenbergMarquardt.cpp index 778ee70ba39c97bfc320069153ff1d108bd94691..a55879a507e96f9c73cb0573eebe829c125e328e 100644 --- a/src/LearningMethods/LevenbergMarquardt.cpp +++ b/src/LearningMethods/LevenbergMarquardt.cpp @@ -52,21 +52,24 @@ void lib4neuro::LevenbergMarquardt::LevenbergMarquardtImpl::get_jacobian_and_rhs std::vector<std::vector<double>> jacobian; std::vector<double> rhs_vec; - ef.divide_data_train_test((double)data_subset_size / (double)ef.get_n_data_set()); - ef.get_jacobian_and_rhs(jacobian, rhs_vec); + ef.divide_data_train_test((double) data_subset_size / (double) ef.get_n_data_set()); + ef.get_jacobian_and_rhs(jacobian, + rhs_vec); ef.return_full_data_set_for_training(); size_t dim_out = jacobian.size(); size_t n_parameters = rhs_vec.size(); - J.reshape(dim_out, n_parameters); + J.reshape(dim_out, + n_parameters); rhs.resize(n_parameters); J.fill(0.0); rhs.fill(0.0); for (size_t ri = 0; ri < jacobian.size(); ++ri) { for (size_t ci = 0; ci < n_parameters; ++ci) { - J.at(ri, ci) = jacobian[ri][ci]; + J.at(ri, + ci) = jacobian[ri][ci]; } } for (size_t ci = 0; ci < n_parameters; ++ci) { diff --git a/src/Network/NeuralNetwork.h b/src/Network/NeuralNetwork.h index 7a749ac09690c596e67332a615035b7159fd8476..c498374f955887ea6c789f8fa1bb8a9125a22d08 100644 --- a/src/Network/NeuralNetwork.h +++ b/src/Network/NeuralNetwork.h @@ -463,7 +463,7 @@ namespace lib4neuro { * * @return */ - //TODO WHY IS THIS HERE? + //TODO WHY IS THIS HERE? LIB4NEURO_API NormalizationStrategy* get_normalization_strategy_instance(); /** diff --git a/src/NormalizationStrategy/NormalizationStrategy.h b/src/NormalizationStrategy/NormalizationStrategy.h index a015d236f7a749a2e87286004869c7d73e46a0bc..ae961f6e70edeb593e5acb9cfd6da051264036ae 100644 --- a/src/NormalizationStrategy/NormalizationStrategy.h +++ b/src/NormalizationStrategy/NormalizationStrategy.h @@ -23,7 +23,7 @@ public: */ struct access; - virtual ~NormalizationStrategy () = default; + virtual ~NormalizationStrategy() = default; /** * diff --git a/src/Solvers/DESolver.cpp b/src/Solvers/DESolver.cpp index 0d4af86a2b0546a0c37d96364b1de270bf681536..6ce5c9903b4336f9c6e5d78c0b66ac3cc5098b3e 100644 --- a/src/Solvers/DESolver.cpp +++ b/src/Solvers/DESolver.cpp @@ -380,7 +380,7 @@ namespace lib4neuro { void DESolver::set_error_function(size_t equation_idx, ErrorFunctionType F, - DataSet &conditions) { + DataSet& conditions) { if (equation_idx >= this->n_equations) { THROW_INVALID_ARGUMENT_ERROR("The parameter 'equation_idx' is too large! It exceeds the number of differential equations."); } diff --git a/src/Solvers/DESolver.h b/src/Solvers/DESolver.h index dc0288e6c25367d57953e23aa8d9c92f8543c931..05c1c0fba16e8f42015737fbce66e18d0f5413da 100644 --- a/src/Solvers/DESolver.h +++ b/src/Solvers/DESolver.h @@ -151,7 +151,7 @@ namespace lib4neuro { */ LIB4NEURO_API void set_error_function(size_t equation_idx, ErrorFunctionType F, - DataSet &conditions); + DataSet& conditions); /** * diff --git a/src/examples/net_test_ode_1.cpp b/src/examples/net_test_ode_1.cpp index 7cc1c57986d331abe618157be38e49391b8a41c2..f35bd0b35f2edbd2be835b4126e8531578e70dbc 100644 --- a/src/examples/net_test_ode_1.cpp +++ b/src/examples/net_test_ode_1.cpp @@ -219,7 +219,7 @@ void test_ode(double accuracy, inp[0] = frac * i; out[0] = 0.0; data_vec_g.push_back(std::make_pair(inp, - out)); + out)); test_points[i] = inp[0]; } @@ -262,7 +262,7 @@ void test_ode(double accuracy, auto start = std::chrono::system_clock::now(); optimize_via_gradient_descent(solver_01, - accuracy); + accuracy); export_solution(n_test_points, te, ts, diff --git a/src/examples/net_test_pde_1.cpp b/src/examples/net_test_pde_1.cpp index ffc9eca1da2af7554a29d67f4a78464d91c769a2..fe26ea796aa97e4796f9b1749cc48483bd864a1f 100644 --- a/src/examples/net_test_pde_1.cpp +++ b/src/examples/net_test_pde_1.cpp @@ -286,7 +286,7 @@ void test_pde(double accuracy, inp = {frac * j, frac * i}; out = {0.0}; data_vec_zero.emplace_back(std::make_pair(inp, - out)); + out)); } } l4n::DataSet ds_00(&data_vec_zero); diff --git a/src/tests/CMakeLists.txt b/src/tests/CMakeLists.txt index 3e9198fc84d64f24bf1aca4cdf4700b7b84b39f2..66ea48d7d0da6c4f0f01e5aa463e6ac556848f7e 100644 --- a/src/tests/CMakeLists.txt +++ b/src/tests/CMakeLists.txt @@ -62,12 +62,12 @@ target_include_directories(DESolver_test PRIVATE ${Boost_INCLUDE_DIRS} ${TURTLE_ set(TEST_OUTPUT_DIR ${PROJECT_BINARY_DIR}/tests) -SET( CMAKE_RUNTIME_OUTPUT_DIRECTORY_DEBUG ${TEST_OUTPUT_DIR}) -SET( CMAKE_RUNTIME_OUTPUT_DIRECTORY_RELEASE ${TEST_OUTPUT_DIR}) -SET( CMAKE_LIBRARY_OUTPUT_DIRECTORY_DEBUG ${TEST_OUTPUT_DIR}) -SET( CMAKE_LIBRARY_OUTPUT_DIRECTORY_RELEASE ${TEST_OUTPUT_DIR}) -SET( CMAKE_ARCHIVE_OUTPUT_DIRECTORY_DEBUG ${TEST_OUTPUT_DIR}) -SET( CMAKE_ARCHIVE_OUTPUT_DIRECTORY_RELEASE ${TEST_OUTPUT_DIR}) +SET(CMAKE_RUNTIME_OUTPUT_DIRECTORY_DEBUG ${TEST_OUTPUT_DIR}) +SET(CMAKE_RUNTIME_OUTPUT_DIRECTORY_RELEASE ${TEST_OUTPUT_DIR}) +SET(CMAKE_LIBRARY_OUTPUT_DIRECTORY_DEBUG ${TEST_OUTPUT_DIR}) +SET(CMAKE_LIBRARY_OUTPUT_DIRECTORY_RELEASE ${TEST_OUTPUT_DIR}) +SET(CMAKE_ARCHIVE_OUTPUT_DIRECTORY_DEBUG ${TEST_OUTPUT_DIR}) +SET(CMAKE_ARCHIVE_OUTPUT_DIRECTORY_RELEASE ${TEST_OUTPUT_DIR}) set_target_properties( linear_neuron_test @@ -87,7 +87,7 @@ set_target_properties( PROPERTIES - ARCHIVE_OUTPUT_DIRECTORY $<1:${TEST_OUTPUT_DIR}> + ARCHIVE_OUTPUT_DIRECTORY $<1:${TEST_OUTPUT_DIR}> LIBRARY_OUTPUT_DIRECTORY $<1:${TEST_OUTPUT_DIR}> RUNTIME_OUTPUT_DIRECTORY $<1:${TEST_OUTPUT_DIR}> #CMAKE_RUNTIME_OUTPUT_DIRECTORY_DEBUG ${TEST_OUTPUT_DIR}