cmak-mocapy
来源:互联网 发布:淘宝网首页石英加热管 编辑:程序博客网 时间:2024/06/06 07:42
///88888888888888888888888888888888888888888
template<typename T>
void MDArray<T>::inv() {
int n = shape[1];
if (n <= 4) // Faster for small matrices
return inv_old();
// Use LU decomposition
int m = n;
int info, lwork;
int *ipiv = NULL;
double *work = NULL;
int err = 0;
int fpx_i;
__CLPK_doublereal a[n*n];
ipiv = (int*) malloc(m * sizeof *ipiv);
if (ipiv == NULL) {
fputs("out of memory\n", stderr);
return ;
}
for(fpx_i=0; fpx_i<1;fpx_i++)
{
work = (double*) malloc(sizeof *work);
if (work == NULL) {
fputs("out of memory\n", stderr);
err = 1;
break;
// goto bailout;
}
// __CLPK_doublereal a[n*n];
flat_array(a);
dgetrf_(&m, &n, a, &m, ipiv, &info);
if (info != 0) {
fprintf(stderr, "dgetrf: info = %d\n", info);
err = 1;
break; //fpx
//goto bailout;
}
// query for workspace size
lwork = -1;
dgetri_(&n, a, &n, ipiv, work, &lwork, &info);
if (info != 0 || work[0] <= 0.0) {
fprintf(stderr, "dgetri (workspace): info = %d\n", info);
err = 1;
//goto bailout;
break; //fpx
//goto bailout;
}
lwork = (int) work[0];
work = (double*) realloc(work, lwork * sizeof *work);
if (work == NULL) {
fputs("out of memory\n", stderr);
err = 1;
break; //fpx
//goto bailout;
}
dgetri_(&n, a, &n, ipiv, work, &lwork, &info);
if (info != 0) {
fprintf(stderr, "dgetri: info = %d\n", info);
err = 1;
}
}
//bailout:
free(ipiv);
free(work);
set_values(a);
return ;
}
//888888888888888888888888888888888888888888
# The name of our project is "MOCAPY". CMakeLists files in this project can
# refer to the root source directory of the project as ${MOCAPY_SOURCE_DIR} and# to the root binary directory of the project as ${MOCAPY_BINARY_DIR}.
cmake_minimum_required (VERSION 2.6.2)
project (MOCAPY C CXX Fortran)
# version number
set(MOCAPY_VERSION 0.1)
# Recurse into the "src" and "examples" subdirectories. This does not actually
# cause another cmake executable to run. The same process will walk through
# the project's entire directory structure.
add_subdirectory (src)
add_subdirectory (examples)
add_subdirectory (tests)
# settings for making distribution package
set(CPACK_PACKAGE_DESCRIPTION_SUMMARY "Mocapy is a Dynamic Bayesian Network toolkit")
set(CPACK_PACKAGE_VENDOR "Thomas Hamelryck and Martin Paluszewski")
#set(CPACK_PACKAGE_DESCRIPTION_FILE ${CMAKE_CURRENT_SOURCE_DIR}/README)
set(CPACK_GENERATOR TGZ)
set(
CPACK_SOURCE_PACKAGE_FILE_NAME
"Mocapy-${MOCAPY_VERSION}"
CACHE INTERNAL "tarball basename"
)
set(CPACK_SOURCE_GENERATOR TGZ)
include(CPack)
----------------------------------
SET(BUILD_RELEASE ON)
SET(BUILD_DEBUG OFF)
SET(BUILD_PROFILE OFF)
SET(BUILD_DUMMYRANDOM OFF)
SET(Boost_USE_MULTITHREAD OFF)
FIND_PACKAGE(Boost 1.39)
INCLUDE_DIRECTORIES(${Boost_INCLUDE_DIRS})
LINK_DIRECTORIES(${Boost_LIBRARY_DIRS})
SET(Mocapy_src
utils/LogFactorial.cpp
multinomial/MultinomialDensities.cpp
multinomial/MultinomialDensity.cpp
multinomial/MultinomialESS.cpp
dirichlet/DirichletDensities.cpp
dirichlet/DirichletDensity.cpp
dirichlet/DirichletESS.cpp
inference/abstractinfengine.cpp
framework/dbn.cpp
discrete/discretedensities.cpp
discrete/discreteess.cpp
discrete/discretepriors.cpp
framework/emengine.cpp
framework/essbase.cpp
inference/detail/forwardbacktracker.cpp
inference/detail/generalinfenginemm.cpp
gaussian/gaussiandensities.cpp
gaussian/gaussianess.cpp
gaussian/shrinkage/Shrinkage.cpp
gaussian/shrinkage/ShrinkageHelpers.cpp
inference/gibbsrandom.cpp
inference/fwbtrandom.cpp
inference/infenginemm.cpp
inference/infenginehmm.cpp
inference/infenginemcmc.cpp
inference/mcmc.cpp
inference/moreabstractinfengine.cpp
gaussian/multigauss.cpp
framework/node.cpp
framework/nodefactory.cpp
framework/parentmap.cpp
poisson/poissondensities.cpp
poisson/poissoness.cpp
poisson/poissonsample.cpp
bippo/bippodensities.cpp
bippo/bippoess.cpp
bippo/bippo.cpp
utils/random_data.cpp
utils/randomgen.cpp
inference/sampleinfengine.cpp
utils/utils.cpp
vonmises/vonmises.cpp
vonmises2d/vonmises2d.cpp
vonmises2d/vonmises2ddensities.cpp
vonmises2d/vonmises2dess.cpp
vonmises/vonmisesdensities.cpp
vonmises/vonmisesess.cpp
kent/kentdensities.cpp
kent/kentess.cpp
)
SET(Integrate_src
utils/netlib/integrate.cpp
utils/netlib/integrate.h
utils/netlib/slatec/d1mach.f
utils/netlib/slatec/d9lgmc.f
utils/netlib/slatec/dcsevl.f
utils/netlib/slatec/dgamlm.f
utils/netlib/slatec/dgamma.f
utils/netlib/slatec/dqags.f
utils/netlib/slatec/dqagse.f
utils/netlib/slatec/dqelg.f
utils/netlib/slatec/dqk21.f
utils/netlib/slatec/dqpsrt.f
utils/netlib/slatec/fdump.f
utils/netlib/slatec/i1mach.f
utils/netlib/slatec/initds.f
utils/netlib/slatec/j4save.f
utils/netlib/slatec/xercnt.f
utils/netlib/slatec/xerhlt.f
utils/netlib/slatec/xermsg.f
utils/netlib/slatec/xerprn.f
utils/netlib/slatec/xersve.f
utils/netlib/slatec/xgetua.f
)
SET(Functions_src
utils/vector_nD.h
utils/optimize.h
utils/netlib/cephes/chbevl.c
utils/netlib/cephes/const.c
utils/netlib/cephes/gamma.c
utils/netlib/cephes/zeta.c
utils/netlib/cephes/i0.c
utils/netlib/cephes/i1.c
utils/netlib/cephes/isnan.c
utils/netlib/cephes/mconf.h
utils/netlib/cephes/mtherr.c
utils/netlib/cephes/polevl.c
)
SET(LIBRARY_OUTPUT_PATH ${MOCAPY_SOURCE_DIR}/libs)
# build release library
IF(BUILD_RELEASE)
add_library (Mocapy STATIC
${Mocapy_src}
${Integrate_src}
${Functions_src}
)
SET_TARGET_PROPERTIES(Mocapy PROPERTIES COMPILE_FLAGS " -O3 -fPIC -c -fmessage-length=0 -I${MOCAPY_SOURCE_DIR}/src")
ENDIF(BUILD_RELEASE)
#IF(BUILD_RELEASE)
#add_library (Mocapy SHARED
# ${Mocapy_src}
# ${Integrate_src}
# ${Functions_src}
# )
#SET_TARGET_PROPERTIES(Mocapy PROPERTIES COMPILE_FLAGS " -O3 -fPIC -c -fmessage-length=0 -I${MOCAPY_SOURCE_DIR}/src")
#ENDIF(BUILD_RELEASE)
IF(BUILD_DEBUG)
add_library (MocapyD
${Mocapy_src}
${Integrate_src}
${Functions_src}
)
SET_TARGET_PROPERTIES(MocapyD PROPERTIES COMPILE_FLAGS "-O0 -fPIC -g -Wall -c -fmessage-length=0")
ENDIF(BUILD_DEBUG)
IF(BUILD_PROFILE)
add_library (MocapyP
${Mocapy_src}
${Integrate_src}
${Functions_src}
)
SET_TARGET_PROPERTIES(MocapyP PROPERTIES COMPILE_FLAGS "-pg -fPIC -O3 -Wall -c -fmessage-length=0")
ENDIF(BUILD_PROFILE)
IF(BUILD_DUMMYRANDOM)
add_library (MocapyDR
${Mocapy_src}
${Integrate_src}
${Functions_src}
)
SET_TARGET_PROPERTIES(MocapyDR PROPERTIES COMPILE_FLAGS "-DRANDDUMMY -O3 -fPIC -Wall -c -fmessage-length=0")
ENDIF(BUILD_DUMMYRANDOM)
# install commands
#INSTALL(TARGETS Mocapy
# LIBRARY DESTINATION lib
# ARCHIVE DESTINATION lib
# )
---------------------------------
SET(BUILD_RELEASE ON)
SET(BUILD_DEBUG OFF)
SET(BUILD_PROFILE OFF)
SET(BUILD_DUMMYRANDOM OFF)
SET(CMAKE_VERBOSE_MAKEFILE OFF)
SET(Boost_USE_STATIC_LIBS ON)
FIND_PACKAGE(Boost COMPONENTS serialization program_options thread REQUIRED)
FIND_LIBRARY(PTHREAD pthread)
# Make sure the compiler can find include files from mocapy.
include_directories (${MOCAPY_SOURCE_DIR}/src)
# find lapack
FIND_LIBRARY(LAPACK_LIBRARY NAMES lapack )
IF(NOT LAPACK_LIBRARY)
message("error: could not find lapack library")
ENDIF(NOT LAPACK_LIBRARY)
# FFLAGS depend on the compiler
get_filename_component (Fortran_COMPILER_NAME ${CMAKE_Fortran_COMPILER} NAME)
if (Fortran_COMPILER_NAME STREQUAL "gfortran")
# gfortran
set (CMAKE_FLIB "gfortran")
elseif (Fortran_COMPILER_NAME STREQUAL "g77")
# g77
set (CMAKE_FLIB "g2c")
else (Fortran_COMPILER_NAME STREQUAL "gfortran")
# message ("CMAKE_Fortran_COMPILER full path: " ${CMAKE_Fortran_COMPILER})
# message ("Fortran compiler: " ${Fortran_COMPILER_NAME})
# message ("No optimized Fortran link flags are known, we just try -lgfortran")
set (CMAKE_FLIB "gfortran")
endif (Fortran_COMPILER_NAME STREQUAL "gfortran")
INCLUDE_DIRECTORIES(${Boost_INCLUDE_DIRS})
LINK_DIRECTORIES(${Boost_LIBRARY_DIRS})
IF(BUILD_RELEASE)
SET(CMAKE_CXX_FLAGS "-O3 -fPIC -Wall -fmessage-length=0")
SET(MOCAPYLIB Mocapy CACHE STRING "Mocapy library used when linking executables")
ENDIF(BUILD_RELEASE)
IF(BUILD_DEBUG)
SET(CMAKE_CXX_FLAGS "-g -O0 -Wall -fmessage-length=0")
SET(MOCAPYLIB MocapyD CACHE STRING "Mocapy library used when linking executables")
ENDIF(BUILD_DEBUG)
IF(BUILD_PROFILE)
SET(CMAKE_CXX_FLAGS "-pg -O3 -Wall -fmessage-length=0")
SET(MOCAPYLIB MocapyP CACHE STRING "Mocapy library used when linking executables")
ENDIF(BUILD_PROFILE)
IF(BUILD_DUMMYRANDOM)
SET(CMAKE_CXX_FLAGS "-DRANDDUMMY -O3 -Wall -fmessage-length=0")
SET(MOCAPYLIB MocapyDR CACHE STRING "Mocapy library used when linking executables")
ENDIF(BUILD_DUMMYRANDOM)
SET(PROGS mdarray hmm_bippo hmm_factorial hmm_simple hmm_discrete discrete_hmm_with_prior hmm_gauss hmm_gauss_1d hmm_multinomial hmm_dirichlet hmm_poisson hmm_vonmises infenginehmm_example infenginemm_example hmm_torus hmm_kent)
SET(PROGS_BOOST_OPTIONS_THREADS mlr-uni)
FOREACH(p ${PROGS})
add_executable(${p} ${p}.cpp)
target_link_libraries (${p} ${MOCAPYLIB} ${Boost_SYSTEM_LIBRARY} ${Boost_SERIALIZATION_LIBRARY} ${LAPACK_LIBRARY} ${CMAKE_FLIB})
ENDFOREACH(p)
FOREACH(p ${PROGS_BOOST_OPTIONS_THREADS})
add_executable(${p} ${p}.cpp)
target_link_libraries (${p} ${MOCAPYLIB} ${Boost_SYSTEM_LIBRARY} ${Boost_SERIALIZATION_LIBRARY} ${Boost_PROGRAM_OPTIONS_LIBRARY} ${Boost_THREAD_LIBRARY} ${PTHREAD} ${LAPACK_LIBRARY} ${CMAKE_FLIB})
ENDFOREACH(p)
# copy data directory
exec_program(
${CMAKE_COMMAND}
ARGS
"-E create_symlink \"${CMAKE_CURRENT_SOURCE_DIR}/data\" \"${CMAKE_CURRENT_BINARY_DIR}/data\""
)
#exec_program(
# ${CMAKE_COMMAND}
# ARGS
# "-E copy_directory \"${CMAKE_CURRENT_SOURCE_DIR}/data\" \"${CMAKE_CURRENT_BINARY_DIR}\""
# )
---------------------------------
- cmak-mocapy
- mocapy
- Mocapy++ in Heart
- 神经网络 梯度下降算法/delta规则
- 【转载】微信小程序教程系列
- 匈牙利算法,二分图最大匹配、多重匹配模板
- C#泛型委托与Lambda总结
- 解决webservice里调用耗时方法出错问题
- cmak-mocapy
- java Pattern和Matcher——用于匹配和查找字符串中的内容
- [HDU](1711)Number Sequence ---KMP(串)
- List,Set,Map用法以及区别
- java多线程之死锁
- HttpClientGET
- Android数据库相关整理
- sc2017新高二&高一模拟赛7 总结
- Webpack 使用(三)