diff --git a/python/CMakeLists.txt b/python/CMakeLists.txt index 7513f38..3c43b41 100644 --- a/python/CMakeLists.txt +++ b/python/CMakeLists.txt @@ -50,15 +50,15 @@ if(APPLE) set(CMAKE_MODULE_LINKER_FLAGS "-undefined dynamic_lookup") endif() -target_link_libraries(_cosmotool ${CosmoTool_local} ${PYTHON_LIBRARIES} ${GSL_LIBRARIES}) -target_link_libraries(_cosmo_power ${CosmoTool_local} ${PYTHON_LIBRARIES} ${GSL_LIBRARIES}) -target_link_libraries(_cosmo_cic ${CosmoTool_local} ${PYTHON_LIBRARIES} ${GSL_LIBRARIES}) -target_link_libraries(_project ${PYTHON_LIBRARIES}) -target_link_libraries(_fast_interp ${CosmoTool_local} ${PYTHON_LIBRARIES}) +target_link_libraries(_cosmotool ${CosmoTool_local} ${PYTHON_LIBRARY} ${GSL_LIBRARIES}) +target_link_libraries(_cosmo_power ${CosmoTool_local} ${PYTHON_LIBRARY} ${GSL_LIBRARIES}) +target_link_libraries(_cosmo_cic ${CosmoTool_local} ${PYTHON_LIBRARY} ${GSL_LIBRARIES}) +target_link_libraries(_project ${PYTHON_LIBRARY}) +target_link_libraries(_fast_interp ${CosmoTool_local} ${PYTHON_LIBRARY}) SET(ct_TARGETS _cosmotool _project _cosmo_power _cosmo_cic _fast_interp ) -if (Boost_FOUND) +if (FALSE AND Boost_FOUND) message(STATUS "Building bispectrum support (path = ${Boost_INCLUDE_DIRS})") include_directories(${Boost_INCLUDE_DIRS}) add_library(_cosmo_bispectrum MODULE _cosmo_bispectrum.cpp) diff --git a/python/_project.pyx b/python/_project.pyx index 9d61cec..0974383 100644 --- a/python/_project.pyx +++ b/python/_project.pyx @@ -545,6 +545,7 @@ def project_cic(npx.ndarray[DTYPE_t, ndim=2] x not None, npx.ndarray[DTYPE_t, nd cdef npx.ndarray[DTYPE_t, ndim=3] g cdef double shifter cdef bool local_periodic + cdef DTYPE_t[:] d_mass local_periodic = periodic @@ -560,21 +561,25 @@ def project_cic(npx.ndarray[DTYPE_t, ndim=2] x not None, npx.ndarray[DTYPE_t, nd raise ValueError("Mass array and coordinate array must have the same number of elements") g = np.zeros((Ngrid,Ngrid,Ngrid),dtype=DTYPE) + cdef DTYPE_t[:,:,:] d_g = g + cdef DTYPE_t[:,:] d_x = x if not local_periodic: - if mass is None: + if mass is None: with nogil: - INTERNAL_project_cic_no_mass(g, x, Ngrid, Lbox, shifter) - else: + INTERNAL_project_cic_no_mass(d_g, d_x, Ngrid, Lbox, shifter) + else: + d_mass = mass with nogil: - INTERNAL_project_cic_with_mass(g, x, mass, Ngrid, Lbox, shifter) + INTERNAL_project_cic_with_mass(d_g, d_x, d_mass, Ngrid, Lbox, shifter) else: - if mass is None: + if mass is None: with nogil: - INTERNAL_project_cic_no_mass_periodic(g, x, Ngrid, Lbox, shifter) - else: + INTERNAL_project_cic_no_mass_periodic(d_g, d_x, Ngrid, Lbox, shifter) + else: + d_mass = mass with nogil: - INTERNAL_project_cic_with_mass_periodic(g, x, mass, Ngrid, Lbox, shifter) + INTERNAL_project_cic_with_mass_periodic(d_g, d_x, d_mass, Ngrid, Lbox, shifter) return g