diff --git a/3rd/math/src/fsum.c b/3rd/math/src/fsum.c index 88ef2b3e..3bb83a91 100644 --- a/3rd/math/src/fsum.c +++ b/3rd/math/src/fsum.c @@ -10,7 +10,7 @@ double fsum(double* aptr, int n) Y = aptr[i] - C; T = sum + Y; C = T - sum - Y; - sum = Y; + sum = T; } return sum; } \ No newline at end of file diff --git a/CMakeLists.txt b/CMakeLists.txt index 3f7351d1..105dde48 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -50,6 +50,13 @@ if(PK_ENABLE_DETERMINISTIC_FLOAT) add_subdirectory(3rd/math) include_directories(3rd/math) add_definitions(-DPK_ENABLE_DETERMINISTIC_FLOAT) + if(MSVC) + set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} /fp:precise") + elseif(CMAKE_C_COMPILER_ID STREQUAL "Clang") + set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -ffp-model=strict -O2") + else() + set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -O2") + endif() endif() option(PK_BUILD_MODULE_LZ4 "" OFF) @@ -114,6 +121,9 @@ if(PK_BUILD_WITH_UNITY) endif() ############################################ +if(NOT MSVC) + target_link_libraries(${PROJECT_NAME} pthread) +endif() if(PK_BUILD_MODULE_LZ4) target_link_libraries(${PROJECT_NAME} lz4) endif()