Commit 6c72b118 authored by David Vojtek's avatar David Vojtek

Merge branch 'dev' of code.it4i.cz:bes0030/4Neuro into dev_cpp

parents 95e3cc97 893a9549
......@@ -2,15 +2,12 @@ job:
tags:
- centos7
image: ubuntu:latest
image: martinbeseda/dockertest:latest
before_script:
- apt-get update
- apt-get install -y -V make
- apt-get install -y -V cmake
- apt-get install -y -V libboost-all-dev
- apt-get install -y -V build-essential
- apt-get install -y -V g++-5
- git clone https://github.com/ArashPartow/exprtk.git
- cp exprtk/exprtk.hpp /usr/include
- export TERM=xterm
- ./build.sh
script: "./run_tests.sh"
<?xml version="1.0" encoding="UTF-8"?>
<module classpath="CMake" type="CPP_MODULE" version="4" />
\ No newline at end of file
<component name="ProjectCodeStyleConfiguration">
<code_scheme name="Project" version="173">
<Objective-C-extensions>
<file>
<option name="com.jetbrains.cidr.lang.util.OCDeclarationKind" value="Import" />
<option name="com.jetbrains.cidr.lang.util.OCDeclarationKind" value="Macro" />
<option name="com.jetbrains.cidr.lang.util.OCDeclarationKind" value="Typedef" />
<option name="com.jetbrains.cidr.lang.util.OCDeclarationKind" value="Enum" />
<option name="com.jetbrains.cidr.lang.util.OCDeclarationKind" value="Constant" />
<option name="com.jetbrains.cidr.lang.util.OCDeclarationKind" value="Global" />
<option name="com.jetbrains.cidr.lang.util.OCDeclarationKind" value="Struct" />
<option name="com.jetbrains.cidr.lang.util.OCDeclarationKind" value="FunctionPredecl" />
<option name="com.jetbrains.cidr.lang.util.OCDeclarationKind" value="Function" />
</file>
<class>
<option name="com.jetbrains.cidr.lang.util.OCDeclarationKind" value="Property" />
<option name="com.jetbrains.cidr.lang.util.OCDeclarationKind" value="Synthesize" />
<option name="com.jetbrains.cidr.lang.util.OCDeclarationKind" value="InitMethod" />
<option name="com.jetbrains.cidr.lang.util.OCDeclarationKind" value="StaticMethod" />
<option name="com.jetbrains.cidr.lang.util.OCDeclarationKind" value="InstanceMethod" />
<option name="com.jetbrains.cidr.lang.util.OCDeclarationKind" value="DeallocMethod" />
</class>
<extensions>
<pair source="cpp" header="h" fileNamingConvention="NONE" />
<pair source="c" header="h" fileNamingConvention="NONE" />
</extensions>
</Objective-C-extensions>
</code_scheme>
</component>
\ No newline at end of file
<?xml version="1.0" encoding="UTF-8"?>
<project version="4">
<component name="CMakeWorkspace" PROJECT_DIR="$PROJECT_DIR$" />
<component name="JavaScriptSettings">
<option name="languageLevel" value="ES6" />
</component>
</project>
\ No newline at end of file
<?xml version="1.0" encoding="UTF-8"?>
<project version="4">
<component name="ProjectModuleManager">
<modules>
<module fileurl="file://$PROJECT_DIR$/.idea/4Neuro.iml" filepath="$PROJECT_DIR$/.idea/4Neuro.iml" />
</modules>
</component>
</project>
\ No newline at end of file
<?xml version="1.0" encoding="UTF-8"?>
<project version="4">
<component name="FUSProjectUsageTrigger">
<session id="-930103607">
<usages-collector id="statistics.file.extensions.open">
<counts>
<entry key="Makefile" value="1" />
<entry key="cpp" value="59" />
<entry key="f90" value="4" />
<entry key="h" value="71" />
<entry key="txt" value="7" />
</counts>
</usages-collector>
<usages-collector id="statistics.file.types.open">
<counts>
<entry key="CMakeLists.txt" value="7" />
<entry key="ObjectiveC" value="130" />
<entry key="PLAIN_TEXT" value="5" />
</counts>
</usages-collector>
<usages-collector id="statistics.file.extensions.edit">
<counts>
<entry key="cpp" value="6278" />
<entry key="h" value="7184" />
<entry key="txt" value="704" />
</counts>
</usages-collector>
<usages-collector id="statistics.file.types.edit">
<counts>
<entry key="CMakeLists.txt" value="139" />
<entry key="Doxygen file" value="104" />
<entry key="ObjectiveC" value="13358" />
<entry key="PLAIN_TEXT" value="565" />
</counts>
</usages-collector>
</session>
</component>
</project>
\ No newline at end of file
<?xml version="1.0" encoding="UTF-8"?>
<project version="4">
<component name="VcsDirectoryMappings">
<mapping directory="$PROJECT_DIR$" vcs="Git" />
</component>
</project>
\ No newline at end of file
cmake_minimum_required(VERSION 3.0)
project(4neuro)
#-------------------------------#
# Default installation location #
#-------------------------------#
# Linux: /usr/local
# Windows: c:/Program Files
#------------#
# Build type #
#------------#
# Default: Release
# Others: None, Debug
if (NOT CMAKE_BUILD_TYPE)
set (CMAKE_BUILD_TYPE RELEASE CACHE STRING
"Choose the type of build, options are: None Debug Release."
FORCE)
endif (NOT CMAKE_BUILD_TYPE)
#--------------------------------#
# Setting C++ compiler flags #
#--------------------------------#
set(CMAKE_CXX_STANDARD 17)
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Wall" )
#--------------------#
# Automatic settings #
#--------------------#
if(CMAKE_BUILD_TYPE MATCHES DEBUG)
set(CMAKE_VERBOSE_MAKEFILE ON)
endif()
# Processing user variables
if (WITH_TIME_PROFILING)
add_definitions(-DTIME_PROFILING)
endif()
# C & CXX compilers
if (WIN32)
set (CMAKE_C_COMPILER gcc)
set (CMAKE_CXX_COMPILER g++)
endif()
# Write compiler variables to the file - to pass them to test script
file(APPEND compilers.env "export CXX=${CMAKE_CXX_COMPILER}\n")
file(APPEND compilers.env "export CC=${CMAKE_C_COMPILER}\n")
#----------------#
# User variables #
#----------------#
set(SRC_DIR src)
set(PROJECT_BINARY_DIR build)
#--------------------#
# Building libraries #
#--------------------#
set(CMAKE_LIBRARY_OUTPUT_DIRECTORY lib)
set(CMAKE_ARCHIVE_OUTPUT_DIRECTORY lib)
set(CMAKE_RUNTIME_OUTPUT_DIRECTORY bin)
add_subdirectory(${SRC_DIR} ${PROJECT_BINARY_DIR})
message ("Current directory:" ${PWD})
message ("SRC_DIR: " ${SRC_DIR})
message ("BUILD_DIR:" ${BUILD_DIR})
if (WIN32)
message ("Windows")
else ()
message ("Not Windows")
endif ()
#find_package(Boost COMPONENTS unit_test_framework REQUIRED)
IF (Boost_FOUND)
message("Boost DIR: " ${Boost_INCLUDE_DIR})
include_directories(${Boost_INCLUDE_DIR})
endif()
cmake_minimum_required(VERSION 3.0)
project(lib4neuro)
#cmake_policy(SET CMP0074 NEW)
#cmake_policy(SET CMP0060 NEW)
#if(WIN32)
# message("Setting no library prefixes...")
# set(CMAKE_STATIC_LIBRARY_PREFIX "")
# set(CMAKE_SHARED_LIBRARY_PREFIX "")
# set(CMAKE_SHARED_MODULE_PREFIX "")
# set(CMAKE_IMPORT_LIBRARY_PREFIX "")
# set(PREFIX "")
# set(IMPORT_PREFIX "")
#endif()
#-------------------------------#
# Default installation location #
#-------------------------------#
# Linux: /usr/local
# Windows: c:/Program Files
#------------#
# Build type #
#------------#
# Default: Release
# Others: None, Debug
if (NOT CMAKE_BUILD_TYPE)
set (CMAKE_BUILD_TYPE RELEASE CACHE STRING
"Choose the type of build, options are: None Debug Release."
FORCE)
endif (NOT CMAKE_BUILD_TYPE)
#--------------------------------#
# Setting C++ compiler flags #
#--------------------------------#
set(CMAKE_CXX_STANDARD 17)
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Wall -mtune=native" )
if("${CMAKE_CXX_COMPILER_ID}" STREQUAL "Intel")
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -xHost" )
endif()
#--------------------#
# Automatic settings #
#--------------------#
if(CMAKE_BUILD_TYPE MATCHES DEBUG)
set(CMAKE_VERBOSE_MAKEFILE ON)
endif()
#-------------------------#
# Find external libraries #
#-------------------------#
message("Looking for external libraries...")
set(CMAKE_MODULE_PATH ${CMAKE_CURRENT_SOURCE_DIR})
set(Boost_USE_MULTITHREADED ON)
find_package(Boost REQUIRED COMPONENTS serialization random)
if(Boost_FOUND)
message("Boost INCLUDE DIR: ${Boost_INCLUDEDIR}")
message("Boost LIB DIR: ${Boost_LIBRARY_DIRS}")
include_directories(${Boost_INCLUDE_DIR} ${Boost_INCLUDEDIR} ${Boost_INCLUDE_DIRS})
link_directories(${Boost_LIBRARY_DIRS})
endif()
find_package(exprtk)
#------------------------------------------#
# Detect maximum available number of cores #
# and set corresponding build options #
#------------------------------------------#
message("Detecting available cores count...")
include(ProcessorCount)
ProcessorCount(n_cores)
if(n_cores GREATER 1)
math(EXPR n_cores "${n_cores}-1")
message("Build will be performed on ${n_cores} cores.")
set(CTEST_BUILD_FLAGS -j${N})
set(ENV{N_CORES} ${N})
set(ctest_test_args ${ctest_test_args} PARALLEL_LEVEL ${N})
endif()
#---------------#
# Set variables #
#---------------#
set(SRC_DIR src)
set(PROJECT_BINARY_DIR build)
set(CMAKE_LIBRARY_OUTPUT_DIRECTORY lib)
set(CMAKE_ARCHIVE_OUTPUT_DIRECTORY lib)
include_directories(include ${SRC_DIR})
add_subdirectory(${SRC_DIR} ${PROJECT_BINARY_DIR})
......@@ -441,7 +441,7 @@ EXTRACT_ALL = NO
# be included in the documentation.
# The default value is: NO.
EXTRACT_PRIVATE = NO
EXTRACT_PRIVATE = YES
# If the EXTRACT_PACKAGE tag is set to YES, all members with package or internal
# scope will be included in the documentation.
......@@ -453,7 +453,7 @@ EXTRACT_PACKAGE = NO
# included in the documentation.
# The default value is: NO.
EXTRACT_STATIC = NO
EXTRACT_STATIC = YES
# If the EXTRACT_LOCAL_CLASSES tag is set to YES, classes (and structs) defined
# locally in source files will be included in the documentation. If set to NO,
......
This diff is collapsed.
################################################################################
#
# CMake script for finding ExprTk.
# The default CMake search process is used to locate files.
#
# This script creates the following variables:
# EXPRTK_FOUND: Boolean that indicates if the package was found
# EXPRTK_INCLUDE_DIRS: Paths to the necessary header files
#
################################################################################
# Find headers and libraries
FIND_PATH(
EXPRTK_INCLUDE_DIR
NAMES
exprtk.hpp
HINTS
$ENV{EXPRTK_INCLUDE_DIR}
$ENV{EXPRTK_ROOT}
${EXPRTK_ROOT}
PATHS
/home
/usr/local
/usr
/opt/local
PATH_SUFFIXES
include
)
# Set EXPRTK_FOUND honoring the QUIET and REQUIRED arguments
INCLUDE(FindPackageHandleStandardArgs)
FIND_PACKAGE_HANDLE_STANDARD_ARGS(
ExprTk
"ExprTk was NOT found!"
EXPRTK_INCLUDE_DIR)
# Output variables
IF(EXPRTK_FOUND)
# Include dirs
SET(EXPRTK_INCLUDE_DIRS ${EXPRTK_INCLUDE_DIR})
ELSE()
MESSAGE(FATAL_ERROR "Set, please, the environmental variable EXPRTK_INCLUDE_DIR to the folder, where 'exprtk.hpp' is located...")
ENDIF(EXPRTK_FOUND)
# Advanced options for not cluttering the cmake UIs:
MARK_AS_ADVANCED(EXPRTK_INCLUDE_DIR)
include_directories(${EXPRTK_INCLUDE_DIRS})
This diff is collapsed.
4Neuro v.0.1 - doplnit ASCII
## Dependencies
cmake (version>=3.0), make, Fortran compiler, Linux/Windows
- [Git](https://git-scm.com/)
- [cmake](https://cmake.org/) (version >= 3.0)
- [Boost](https://www.boost.org/)
- [exprtk](http://www.partow.net/programming/exprtk/)
## Installation
#### Linux
- `make`
- C++ compiler
#### Windows
1. Clone the repository to your PC
```
git clone git@code.it4i.cz:moldyn/4Neuro.git
```
- [Visual Studio](https://visualstudio.microsoft.com/) (install together with `cl` and `SDK`!)
## Compilation
- Clone the repository to your PC
2. Go to the repository folder
3. Create folder 'build'
4. Go to the 'build' folder
5. Run `cmake` with following parameters
- `MAKEFILE_TYPE` "MSYS Makefiles" for MSYS, "MinGW Makefiles" for MinGW
and "Unix Makefiles" for Cygwin
- `BUILD_TYPE` Release/Debug
- `WITH_TIME_PROFILING` 0/1
```
git clone git@code.it4i.cz:moldyn/lib4neuro.git
```
- Clone the repository of `exprtk`
```
cmake -G MAKEFILE_TYPE -DCMAKE_BUILD_TYPE=BUILD_TYPE -DWITH_TIME_PROFILING:BOOLEAN=WITH_TIME_PROFILING ..
git clone https://github.com/ArashPartow/exprtk.git
```
6. Run `make`
7. Run `make install` (if you want to have 4Neuro in system paths)
#### Linux (Debian-based)
- Install package `libboost-all-dev`
#### Linux
1. Clone the repository to your PC
```
git clone git@code.it4i.cz:moldyn/4Neuro.git
```
```
sudo apt-get install libboost-all-dev
```
- Set `EXPRTK_INCLUDE_DIR` environmental variable to the path of your `exprtk` folder
```
export EXPRTK_INCLUDE_DIR="path to the exprtk folder"
```
- Go to the `lib4Neuro` folder
2. Go to the repository folder
3. Set up variables in 'build.sh'
4. Run `./build.sh`
- In the file `build.sh` set correctly variables `BUILD_TYPE` and `CXX_COMPILER`
## Removing installation
- Run
```
./build.sh
```
#### Windows
1. Go to the repository folder
2. Delete 'build' folder
- Download `Boost` from [this link](https://www.boost.org/users/download/) and extract the archive
- Run the Visual Studio Command Prompt (Start Menu -> Visual Studio *** -> Developer Command Prompt)
and go to the folder with `Boost`
```
cd "folder with Boost"
bootstrap.bat
b2.exe --build-type=complete
```
- Set `BOOST_ROOT` environmental variable to the path of your folder containing `Boost`
1. In Search, search for and then select: System (Control Panel)
2. Click the Advanced system settings link.
3. Click Environment Variables.
4. In the New System Variable window, specify the value of the `BOOST_ROOT` environment variable
- Set `EXPRTK_INCLUDE_DIR` environmental variable to the path of your `exprtk` folder
- Go to the `lib4neuro` folder
- In the file `build.bat` set correctly variables `BUILD_TYPE`, `CXX_COMPILER` and `C_COMPILER`
- Run
```
build.bat
```
#### Linux
1. Go to the repository folder
2. Run `./clean.sh`
@echo off
title Build lib4neuro project
rem Build type (Release/Debug)
set BUILD_TYPE=Debug
rem C++ compiler
set CXX_COMPILER=cl
set C_COMPILER=cl
rem Makefile generator
rem For the complete list type "cmake --help"
rem Example: "MSYS Makefiles", "MinGW Makefiles", "NMake Makefiles"
set MAKEFILE_GENERATOR="Visual Studio 15 2017"
call clean.bat
cmake -G %MAKEFILE_GENERATOR% -DCMAKE_VERBOSE_MAKEFILE:BOOL=ON -DCMAKE_BUILD_TYPE=%BUILD_TYPE% -DCMAKE_CXX_COMPILER=%CXX_COMPILER% -DCMAKE_C_COMPILER=%C_COMPILER% -DBOOST_ROOT=%BOOST_ROOT% -DBOOST_LIBRARYDIR=%BOOST_LIBRARYDIR% -DBOOST_INCLUDEDIR=%BOOST_INCLUDEDIR% -DBoost_DEBUG:BOOL=ON .
cmake --build . --config %BUILD_TYPE% && (echo (Build complete.); echo (For examples have a look at the folder build/bin/examples.)) || (echo "Build finished with errors!")
#!/bin/bash
#!/bin/sh
#------------#------------------------------------------------------------
# Parameters #
#------------#
# Fortran compiler
# FORTRAN_COMPILER=/mingw32/bin/gfortran
# FORTRAN_COMPILER=gfortran
# Build type (Release/Debug)
BUILD_TYPE=Debug
# Turn of/off time profiling (1/0)
WITH_TIME_PROFILIN=1
# C++ compiler
CXX_COMPILER="g++"
CPP_COMPILER=g++
#--------------#----------------------------------------------------------
# Library path #
#--------------#
MAKEFILE_TYPE=""
LIB_PATH="$PWD/build/lib"
#LIB_PATH_WIN="$CD\\build\\lib"
echo ${LIB_PATH}
#echo ${LIB_PATH_WIN}
case `uname -s` in
Darwin)
echo 'OS X is not supported yet...'
exit -1
;;
Linux)
MAKEFILE_TYPE="Unix Makefiles"
if [[ ${LD_LIBRARY_PATH} != *${LIB_PATH}* ]]; then
export LD_LIBRARY_PATH=${LD_LIBRARY_PATH}:${LIB_PATH}
fi
;;
CYGWIN*)
MAKEFILE_TYPE="Unix Makefiles"
# if [[ ${PATH} != *${LIB_PATH_WIN}* ]]; then
# export PATH=${PATH};${LIB_PATH_WIN}
# fi
;;
MINGW*)
MAKEFILE_TYPE="MinGW Makefiles"
# if [[ ${PATH} != *${LIB_PATH_WIN}* ]]; then
# export PATH=${PATH};${LIB_PATH_WIN}
# fi
;;
MSYS*)
MAKEFILE_TYPE="MSYS Makefiles"
echo ${MAKEFILE_TYPE}
# if [[ ${PATH} != *${LIB_PATH_WIN}* ]]; then
# export PATH=${PATH};${LIB_PATH_WIN}
# fi
;;
*)
echo "Your makefile generator `uname -s` is not yet supported. Please, write an issue to https://code.it4i.cz/moldyn/4Neuro"
exit -1
;;
esac
#-------------------------------------------------------------------------
rm -rf build CMakeCache.txt;
cmake -G "${MAKEFILE_TYPE}" -DCMAKE_BUILD_TYPE=${BUILD_TYPE} -DWITH_TIME_PROFILING:BOOLEAN=${WITH_TIME_PROFILING} .
make VERBOSE=1 && echo "Build complete." || exit -1;
#make install;
$(pwd)/clean.sh
cmake -DCMAKE_VERBOSE_MAKEFILE:BOOL=ON -DCMAKE_BUILD_TYPE=${BUILD_TYPE} -DCMAKE_CXX_COMPILER=${CXX_COMPILER} .
cmake --build . --config ${BUILD_TYPE} -- -j${N_CORES} && (tput setaf 2; echo "Build complete."; echo "For examples have a look at the folder build/bin/examples."; tput sgr 0; ) || (tput setaf 1; echo "Build finished with errors!"; tput sgr 0; exit 1;)
@echo off
rmdir /s /q build 2>NUL
del Makefile 2>NUL
del /s /q "docs/*" 2>NUL
del "src/*TestRunner*" 2>NUL
del "src/*.o src/*.mod" 2>NUL
del src/funit.tmp 2>NUL
del "src/*_fun.f90" 2>NUL
del CMakeCache.txt 2>NUL
del cmake_install.cmake 2>NUL
del src/cmake_install.cmake 2>NUL
del /s /q CMakeFiles 2>NUL
del "*.vcxproj" 2>NUL
del "*.vcxproj.filters" 2>NUL
del "*.sln" 2>NUL
rmdir /s /q CMakeFiles 2>NUL
rmdir /s /q src/CMakeFiles 2>NUL
rmdir /s /q src/examples/CMakeFiles 2>NUL
rmdir /s /q src/tests/CMakeFiles 2>NUL
#!/bin/bash
rm -rf build
rm -rf Makefile
rm -rf docs/*
rm -f src/*TestRunner*
rm -f src/*.o src/*.mod
rm -f src/funit.tmp src/*_fun.f90
rm -f CMakeCache.txt
rm -f cmake_install.cmake src/cmake_install.cmake
rm -rf CMakeFiles src/CMakeFiles src/examples/CMakeFiles src/tests/CMakeFiles
......@@ -10,16 +10,13 @@
#include "../src/DataSet/DataSet.h"
#include "../src/ErrorFunction/ErrorFunctions.h"
#include "../src/LearningMethods/ParticleSwarm.h"
#include "../src/NetConnection/Connection.h"
#include "../src/NetConnection/ConnectionWeight.h"
#include "../src/NetConnection/ConnectionWeightIdentity.h"
#include "../src/NetConnection/ConnectionFunctionGeneral.h"
#include "../src/NetConnection/ConnectionFunctionIdentity.h"
#include "../src/Network/NeuralNetwork.h"
#include "../src/Network/NeuralNetworkSum.h"
#include "../src/Neuron/Neuron.h"
#include "../src/Neuron/NeuronBinary.h"
#include "../src/Neuron/NeuronLinear.h"
#include "../src/Neuron/NeuronLogistic.h"
#include "../src/Neuron/NeuronNeuralNet.h"
#include "../src/Neuron/NeuronTanh.h"
#endif //INC_4NEURO_4NEURO_H
......@@ -4,5 +4,5 @@
# UNIT TESTS #
##############
for f in build/bin/unit-tests/*_test; do
${f}
${f} || exit -1
done
#TODO make atomic libraries AND also one large library containing all others + one large header
add_subdirectory(tests bin/unit-tests)
add_subdirectory(examples bin/examples)
add_library(4neuro SHARED
Neuron/Neuron.cpp
Neuron/NeuronBinary.cpp
Neuron/NeuronConstant.cpp
Neuron/NeuronLinear.cpp
Neuron/NeuronLogistic.cpp
Neuron/NeuronTanh.cpp
NetConnection/Connection.cpp
Network/NeuralNetwork.cpp
Neuron/NeuronNeuralNet.cpp
NetConnection/ConnectionWeight.cpp
NetConnection/ConnectionWeightIdentity.cpp
Network/NeuralNetworkSum.cpp
NetConnection/ConnectionFunctionGeneral.cpp
NetConnection/ConnectionFunctionIdentity.cpp
LearningMethods/ParticleSwarm.cpp
DataSet/DataSet.cpp
ErrorFunction/ErrorFunctions.cpp Network/NeuralNetworkSum.cpp Network/NeuralNetworkSum.h Solvers/DESolver.cpp Solvers/DESolver.h)
ErrorFunction/ErrorFunctions.cpp
Solvers/DESolver.cpp
LearningMethods/ILearningMethods.h)
target_link_libraries(4neuro boost_serialization)
add_library(boost_unit_test SHARED tests/boost_test_lib_dummy.cpp)
############
# EXAMPLES #
############
add_executable(test_cases main.cpp)
target_link_libraries(test_cases 4neuro)
add_executable(neuron_serialization_example neuron_serialization_example.cpp)
target_link_libraries(neuron_serialization_example 4neuro)
add_executable(net_test_1 net_test_1.cpp settings.h)
target_link_libraries(net_test_1 4neuro)
add_executable(net_test_2 net_test_2.cpp)
target_link_libraries(net_test_2 4neuro)
add_executable(net_test_3 net_test_3.cpp)
target_link_libraries(net_test_3 4neuro)
add_executable(net_test_ode_1 net_test_ode_1.cpp)
target_link_libraries(net_test_ode_1 4neuro)
##############
# UNIT TESTS #
##############
set(CMAKE_RUNTIME_OUTPUT_DIRECTORY ${CMAKE_RUNTIME_OUTPUT_DIRECTORY}/unit-tests)
add_executable(neuron_test tests/neuron_test.cpp)
target_link_libraries(neuron_test boost_unit_test 4neuro)
add_executable(linear_neuron_test tests/NeuronLinear_test.cpp)
target_link_libraries(linear_neuron_test boost_unit_test 4neuro)
add_executable(binary_neuron_test tests/NeuronBinary_test.cpp)
target_link_libraries(binary_neuron_test boost_unit_test 4neuro)
add_executable(logistic_neuron_test tests/NeuronLogistic_test.cpp)
target_link_libraries(logistic_neuron_test boost_unit_test 4neuro)
add_executable(tanh_neuron_test tests/NeuronTanh.cpp)
target_link_libraries(tanh_neuron_test boost_unit_test 4neuro)
add_executable(connection_weight_test tests/ConnectionWeight_test.cpp)
target_link_libraries(connection_weight_test boost_unit_test 4neuro)
add_executable(connection_test tests/Connection_test.cpp)
target_link_libraries(connection_test boost_unit_test 4neuro)
add_executable(neural_network_test tests/NeuralNetwork_test.cpp)
target_link_libraries(neural_network_test boost_unit_test 4neuro)
add_executable(connection_weight_identity_test tests/ConnectionWeightIdentity_test.cpp)
target_link_libraries(connection_weight_identity_test boost_unit_test 4neuro)
add_executable(dataset_test tests/DataSet_test.cpp)
target_link_libraries(dataset_test boost_unit_test 4neuro)
add_executable(errorfunction_test tests/ErrorFunctions_test.cpp)
target_link_libraries(errorfunction_test boost_unit_test 4neuro)
add_executable(particle_swarm_test tests/ParticleSwarm_test.cpp)
target_link_libraries(particle_swarm_test boost_unit_test 4neuro)
add_executable(particle_test tests/Particle_test.cpp)
target_link_libraries(particle_test boost_unit_test 4neuro)