From 1fd1eb612e00884ae4c42083a77b470920b566a2 Mon Sep 17 00:00:00 2001 From: Jean-Baptiste Keck <Jean-Baptiste.Keck@imag.fr> Date: Tue, 3 Nov 2020 20:22:35 +0100 Subject: [PATCH] clean up build files --- CMakeLists.txt | 182 +- CTestConfig.cmake | 6 - HySoPConfig.cmake.in | 38 - HySoPConfigVersion.cmake.in | 12 - cmake/MyTools.cmake | 8 - config.hpp.cmake => cmake/config.hpp.cmake | 0 f2py_f2cmap.in => cmake/f2py_f2cmap.in | 0 opencl_explore.py => cmake/opencl_explore.py | 0 precision.conf.in => cmake/precision.conf.in | 0 sort_f90.py => cmake/sort_f90.py | 0 notebooks/.gitignore | 2 - notebooks/00_introduction.ipynb | 1381 -------- notebooks/01_analytical.ipynb | 249 -- notebooks/videos/analytic.ogv | Bin 303949 -> 0 bytes setup.py.in | 97 - src/CMakeLists.txt | 35 +- swig/cpp2hysop.i | 7 - swig/hysop++/domain.i | 38 - swig/hysop++/fft.i | 94 - swig/hysop++/hysop++.i | 5 - swig/hysop++/utils.i | 29 - swig/numpy.i | 3085 ------------------ swig/start.i | 14 - 23 files changed, 29 insertions(+), 5253 deletions(-) delete mode 100644 CTestConfig.cmake delete mode 100644 HySoPConfig.cmake.in delete mode 100644 HySoPConfigVersion.cmake.in rename config.hpp.cmake => cmake/config.hpp.cmake (100%) rename f2py_f2cmap.in => cmake/f2py_f2cmap.in (100%) rename opencl_explore.py => cmake/opencl_explore.py (100%) rename precision.conf.in => cmake/precision.conf.in (100%) rename sort_f90.py => cmake/sort_f90.py (100%) delete mode 100644 notebooks/.gitignore delete mode 100644 notebooks/00_introduction.ipynb delete mode 100644 notebooks/01_analytical.ipynb delete mode 100644 notebooks/videos/analytic.ogv delete mode 100644 swig/cpp2hysop.i delete mode 100644 swig/hysop++/domain.i delete mode 100644 swig/hysop++/fft.i delete mode 100644 swig/hysop++/hysop++.i delete mode 100644 swig/hysop++/utils.i delete mode 100644 swig/numpy.i delete mode 100644 swig/start.i diff --git a/CMakeLists.txt b/CMakeLists.txt index 3a7f7df9e..312a6db25 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -39,25 +39,22 @@ option(DOUBLEPREC "Set default HySoP floating point precision. Default = on, ie option(USE_MPI "Compile and link HySoP with mpi when this mode is enable. Default = on. WARNING: off mode is bugged." ON) option(WITH_TESTS "Enable testing. Default = OFF" ON) option(BUILD_SHARED_LIBS "Enable dynamic library build, default = ON." ON) -option(USE_CXX "Expand hysop with some new functions from a generated c++ to python interface, wrapped into hysop.cpp2hysop module. Default = ON." OFF) option(WITH_SCALES "compile/create scales lib and link it with HySoP. Default = ON." ON) option(WITH_PARALLEL_COMPRESSED_HDF5 "Try to enable parallel compressed hdf5 interface. Default = ON." ON) option(WITH_FFTW "Link with fftw library (required for some HySoP solvers), default = ON" ON) option(WITH_EXTRAS "Link with some extra fortran libraries (like arnoldi solver), default = OFF" OFF) option(WITH_OPENCL "Use of GPU (required for some HySoP solvers), default = ON" ON) -option(WITH_MAIN_FORTRAN "Create an executable (test purpose) from fortran sources in src/main, linked with libhysop, default = OFF" OFF) -option(WITH_MAIN_CXX "Create an executable (test purpose) from cxx sources in src/hysop++/main, linked with libhysop, default = OFF" OFF) option(PROFILE "Enable profiling mode for HySoP. Can also be enabled with HYSOP_PROFILE environment variable. Default = OFF" OFF) option(VERBOSE "Enable verbose mode for HySoP. Can also be enabled with HYSOP_VERBOSE environment variable. Default = OFF" OFF) option(DEBUG "Enable debug mode for HySoP. Can also be enabled with HYSOP_DEBUG environment variable. Default = OFF" OFF) option(FULL_TEST "Enable all test options (pep8, mpi ...) - Default = OFF" OFF) option(OPTIM "To allow python -OO run, some packages must be deactivated. Set this option to 'ON' to do so. Default = OFF" OFF) option(WITH_MPI_TESTS "Enable mpi tests. Default = OFF." OFF) -option(WITH_GOOGLE_TESTS "Enable google tests (c++). Default = OFF." OFF) option(FORTRAN_LAYOUT "Choose default data layout ('fortran', column-major or 'C' order, row-major) for arrays. Default = column-major." OFF) option(WITH_DOCUMENTATION "Build Documentation. Default = OFF" OFF) option(ENABLE_LONG_TESTS "Enable tests that may run for long time with important memory print. Default = OFF." OFF) option(DEV_MODE "Enable devel mode (aggressive checking of warnings ..). Default = ON." ON) + # Set python install mode: # - user --> behave as 'python setup.py install --user' # - standard --> install in python site-package (ie behave as python setup.py install) @@ -68,6 +65,7 @@ set(HYSOP_INSTALL "user" CACHE STRING "Install mode for hysop python package") # http://public.kitware.com/Bug/view.php?id=11964 # See also http://www.cmake.org/cmake/help/v3.0/module/GNUInstallDirs.html?highlight=gnuinstalldirs include(GNUInstallDirs) + # Set prefix path for libraries installation # --> means that any library target will be installed # in CMAKE_INSTALL_PREFIX/_install_lib @@ -89,11 +87,6 @@ if(WITH_FFTW OR WITH_SCALES OR WITH_EXTRAS) set(USE_FORTRAN "ON") endif() -if(NOT USE_CXX) - set(WITH_MAIN_CXX "OFF") - set(WITH_GOOGLE_TESTS "OFF") -endif() - # Force a default build type if not provided by user # CMAKE_BUILD_TYPE = empty, Debug, Release, RelWithDebInfo or MinSizeRel. if(NOT CMAKE_BUILD_TYPE) @@ -104,11 +97,13 @@ endif() # cmake project name set(PROJECT_NAME hysop) -# --- Name for the package --- + # This name will be used as the Python Package name set(PACKAGE_NAME "hysop") + # --- The name (without extension) of the lib to be created --- set(PROJECT_LIBRARY_NAME ${PROJECT_NAME}) + # ============= The project ============= # Set project name and project languages # => this automatically defines: @@ -117,10 +112,6 @@ set(PROJECT_LIBRARY_NAME ${PROJECT_NAME}) # Note that because of OutOfSourceBuild, binary_dir and source_dir must be different. set(LANGLIST) -if(USE_CXX) - set(LANGLIST ${LANGLIST} C CXX) -endif() - if(USE_FORTRAN) set(LANGLIST ${LANGLIST} C Fortran) endif() @@ -137,6 +128,7 @@ set(HYSOP_LINK_LIBRARIES CACHE INTERNAL "List of external libraries.") # - Global setup (interp and lib) - find_package(PythonFull REQUIRED) include(FindPythonModule) + # - python packages - find_python_module(numpy REQUIRED) find_python_module(scipy REQUIRED) @@ -156,33 +148,27 @@ find_python_module(pyfftw REQUIRED) find_python_module(matplotlib OPTIONAL) find_python_module(pyvis OPTIONAL) +# Some opencl related python package fails to import on non OpenCL machines (cluster's frontend for instance) find_package( OpenCL ) -if(${OpenCL_LIBRARY}) # Some opencl related python package fails to import on non OpenCL machines (cluster's frontend for instance) - find_python_module(pyopencl REQUIRED) - find_python_module(gpyfft REQUIRED) +if(${OpenCL_LIBRARY}) + find_python_module(pyopencl REQUIRED) + find_python_module(gpyfft REQUIRED) else() - find_python_module(pyopencl ) - find_python_module(gpyfft ) + find_python_module(pyopencl) + find_python_module(gpyfft) endif() + # --- MPI --- if(USE_MPI) find_package(MPI REQUIRED) find_python_module(mpi4py REQUIRED) endif() + # --- Wheel, required for a proper build/install process --- find_python_module(wheel REQUIRED) -if(USE_CXX) - find_package(SWIG 3.0.2 REQUIRED) - # WARNING FP : for cmake < 3.0 UseSWIG.cmake - # does not work properly (bug for swig outdir) - if(CMAKE_VERSION VERSION_LESS 3.0.0) - set(SWIG_USE_FILE ${CMAKE_SOURCE_DIR}/cmake/UseSWIG.cmake) - endif() - include(${SWIG_USE_FILE}) -endif() # Find python build dir name --> needed for tests and doc -if(USE_CXX OR USE_FORTRAN) +if(USE_FORTRAN) execute_process( COMMAND ${PYTHON_EXECUTABLE} -c "import distutils.util as ut ; import distutils.sysconfig as sy; print('lib.'+ut.get_platform()+'-'+sy.get_python_version())" OUTPUT_VARIABLE ${PROJECT_NAME}_PYTHON_BUILD_DIR) @@ -218,10 +204,6 @@ if(WITH_FFTW) add_definitions(${FFTW_DEFINES}) endif() -if(USE_CXX) - compile_with(Boost REQUIRED) -endif() - if(WITH_EXTRAS) # Arnoldi solver needs zgeev, which means lapack compile_with(LAPACK) @@ -233,7 +215,6 @@ if(WITH_EXTRAS) endif() endforeach() set(EXTRASLIB ${dirlist} CACHE PATH "extras libraries dir") - endif() # ========= Check parallel hdf5 availability ========= @@ -259,15 +240,15 @@ endif() # ========= Check which opencl devices are available on the system ========= if(WITH_OPENCL) execute_process( - COMMAND ${PYTHON_EXECUTABLE} ${CMAKE_SOURCE_DIR}/opencl_explore.py "EXPLORE") + COMMAND ${PYTHON_EXECUTABLE} ${CMAKE_SOURCE_DIR}/cmake/opencl_explore.py "EXPLORE") execute_process( - COMMAND ${PYTHON_EXECUTABLE} ${CMAKE_SOURCE_DIR}/opencl_explore.py + COMMAND ${PYTHON_EXECUTABLE} ${CMAKE_SOURCE_DIR}/cmake/opencl_explore.py OUTPUT_VARIABLE OPENCL_DEFAULT_OPENCL_ID) else() execute_process( - COMMAND ${PYTHON_EXECUTABLE} ${CMAKE_SOURCE_DIR}/opencl_explore.py "EXPLORE" CPU) + COMMAND ${PYTHON_EXECUTABLE} ${CMAKE_SOURCE_DIR}/cmake/opencl_explore.py "EXPLORE" CPU) execute_process( - COMMAND ${PYTHON_EXECUTABLE} ${CMAKE_SOURCE_DIR}/opencl_explore.py CPU + COMMAND ${PYTHON_EXECUTABLE} ${CMAKE_SOURCE_DIR}/cmake/opencl_explore.py CPU OUTPUT_VARIABLE OPENCL_DEFAULT_OPENCL_ID) endif() @@ -276,6 +257,8 @@ list(GET MY_LIST 0 OPENCL_DEFAULT_OPENCL_PLATFORM_ID) list(GET MY_LIST 1 OPENCL_DEFAULT_OPENCL_DEVICE_ID) display(OPENCL_DEFAULT_OPENCL_PLATFORM_ID) display(OPENCL_DEFAULT_OPENCL_DEVICE_ID) + + # =========== RPATH stuff =========== # Doc : # - https://cmake.org/Wiki/CMake_RPATH_handling @@ -323,7 +306,6 @@ else() endif() # ====== Create (and setup) install/uninstall targets ====== -# # --> set installation dir # --> set options for python install # --> create install/uninstall targets @@ -365,19 +347,17 @@ endif() if(USE_FORTRAN) - # Path to fortran-related generated files (.pyf, precision ...) set(GENERATED_FORTRAN_FILES_DIR ${CMAKE_BINARY_DIR}/generated_fortran/) - # --- copy sort_f90 file to build --- # Required for setup.py to handle fortran files dependencies - configure_file(${CMAKE_SOURCE_DIR}/sort_f90.py ${CMAKE_BINARY_DIR}/sort_f90.py) + configure_file(${CMAKE_SOURCE_DIR}/cmake/sort_f90.py ${CMAKE_BINARY_DIR}/sort_f90.py) # --- Generate f2py_f2cmap file --- - if(EXISTS ${CMAKE_SOURCE_DIR}/f2py_f2cmap.in) + if(EXISTS ${CMAKE_SOURCE_DIR}/cmake/f2py_f2cmap.in) message(STATUS "Generate f2py map file ...") - configure_file(${CMAKE_SOURCE_DIR}/f2py_f2cmap.in + configure_file(${CMAKE_SOURCE_DIR}/cmake/f2py_f2cmap.in ${CMAKE_BINARY_DIR}/.f2py_f2cmap) endif() @@ -420,11 +400,11 @@ if(USE_FORTRAN) set(Fortran_FLAGS ${CMAKE_Fortran_FLAGS}) append_flags(Fortran_FLAGS ${CMAKE_Fortran_FLAGS_${CMAKE_BUILD_TYPE}}) # --- Generate precision.f95 and precision.pyf files --- - if(EXISTS ${CMAKE_SOURCE_DIR}/precision.conf.in) + if(EXISTS ${CMAKE_SOURCE_DIR}/cmake/precision.conf.in) message(STATUS "Generate precision.f95 file ...") - configure_file(${CMAKE_SOURCE_DIR}/precision.conf.in + configure_file(${CMAKE_SOURCE_DIR}/cmake/precision.conf.in ${GENERATED_FORTRAN_FILES_DIR}/precision.f95) - configure_file(${CMAKE_SOURCE_DIR}/precision.conf.in + configure_file(${CMAKE_SOURCE_DIR}/cmake/precision.conf.in ${GENERATED_FORTRAN_FILES_DIR}/precision.pyf) endif() endif() @@ -434,42 +414,6 @@ if(USE_FORTRAN) set(FORTRAN_INCLUDE_DIRS ${FFTW_INCLUDE_DIRS}) endif() -if(USE_CXX) - #C++ variables used by setup.py.in for swig - if(DEV_MODE) - if ("${CMAKE_CXX_COMPILER_ID}" STREQUAL "Clang") - set(CXX_WARNING_FLAGS "-W -Wall -Wextra -Wno-unused-variable -Wno-unused-parameter -Wno-unused-local-typedefs -Wno-missing-braces") - elseif ("${CMAKE_CXX_COMPILER_ID}" STREQUAL "GNU") - set(CXX_WARNING_FLAGS "-W -Wall -Wextra -Wno-unused-variable -Wno-unused-but-set-variable -Wno-unused-parameter -Wno-unused-local-typedefs -Wno-deprecated-declarations") - #elseif ("${CMAKE_CXX_COMPILER_ID}" STREQUAL "Intel") - #elseif ("${CMAKE_CXX_COMPILER_ID}" STREQUAL "MSVC") - else() - set(CXX_WARNING_FLAGS "") - endif() - endif() - - list(APPEND CMAKE_CXX_FLAGS "${CXX_WARNING_FLAGS} ${FFTW_COMPILE_FLAGS} -fPIC -std=c++11") - if(APPLE) - list(APPEND CMAKE_EXE_LINKER_FLAGS "-ldl -lutil") - else() - list(APPEND CMAKE_EXE_LINKER_FLAGS "-Wl,--no-as-needed -ldl -lutil") - endif() - - set(CXX_FLAGS ${CMAKE_CXX_FLAGS}) - set(CXX_LINKER_FLAGS ${CMAKE_EXE_LINKER_FLAGS}) - set(CXX_EXTRA_DEFINES ${FFTW_DEFINES} "-DHAS_EXTERN_TEMPLATES") - - set(CXX_EXT_INCLUDES ${Boost_INCLUDE_DIR} ${PYTHON_INCLUDE_DIR} ${FFTW_INCLUDE_DIRS}) - set(CXX_EXT_LIBS ${Boost_LIBRARIES} ${PYTHON_LIBRARIES} ${FFTW_LIBRARIES}) - set(CXX_EXT_LIB_DIR ${Boost_LIBRARY_DIRS} ${PYTHON_LIBRARY_DIRS} ${FFTW_LIBRARY_DIRS}) - - set(CMAKE_INCLUDE_SYSTEM_FLAG_C "-isystem ") - set(CMAKE_INCLUDE_SYSTEM_FLAG_CXX "-isystem ") - - #swig package name (lib name generated by swig) - set(CPP_2_HYSOP "cpp2hysop") -endif() - # Append pythonlib to hysop link floags list(APPEND HYSOP_LINK_LIBRARIES ${PYTHON_LIBRARIES} ) @@ -487,65 +431,6 @@ if(EXISTS ${CMAKE_SOURCE_DIR}/hysop/__init__.py.in) configure_file(hysop/__init__.py.in ${CMAKE_SOURCE_DIR}/hysop/__init__.py) endif() -if(EXISTS ${CMAKE_SOURCE_DIR}/hysop/mpi/__init__.py.in) - message(STATUS "Generate mpi/__init__.py file ...") - file(REMOVE ${CMAKE_SOURCE_DIR}/hysop/mpi/__init__.py) -configure_file(hysop/mpi/__init__.py.in ${CMAKE_SOURCE_DIR}/hysop/mpi/__init__.py) -endif() - -# Hysop C++ library is generated in setup.py by swig -# --- C++ main and tests --- -if(USE_CXX) - - get_filename_component(CXX_DIR "${CMAKE_SOURCE_DIR}/src/hysop++" ABSOLUTE) - get_filename_component(CXX_MAIN_DIR "${CXX_DIR}/main" ABSOLUTE) - get_filename_component(CXX_TEST_DIR "${CXX_DIR}/tests" ABSOLUTE) - get_filename_component(CXX_SOURCE_DIR "${CXX_DIR}/src" ABSOLUTE) - - include_directories(${CXX_SOURCE_DIR}) - include_directories(SYSTEM ${CXX_EXT_INCLUDES}) - link_directories(${CXX_EXT_LIB_DIRS}) - add_definitions(${CXX_EXTRA_DEFINES}) - - if(WITH_MAIN_CXX OR WITH_GOOGLE_TESTS) - if(APPLE) #swig only generates a bundle, need to generate another static library... - set(HYSOP_CXX_LIBRARY_DYLIB "cpp2hysop_dylib") - - file(GLOB_RECURSE source_files ${CXX_SOURCE_DIR}/*.cpp) - add_library(${HYSOP_CXX_LIBRARY_DYLIB} STATIC ${source_files}) - target_link_libraries(${HYSOP_CXX_LIBRARY_DYLIB} ${EXT_LIBRARIES}) - - set(HYSOP_CXX_LIBRARY ${HYSOP_CXX_LIBRARY_DYLIB}) - set(HYSOP_CXX_LIBRARY_DEP cpp2hysop_dylib) - else() #nothing to do on other platforms bundle <=> dynamic libraries, so just copy the swig generated one - set(HYSOP_CXX_LIBRARY_BUNDLE "${CMAKE_CURRENT_BINARY_DIR}/libcpp2hysop_bundle.so") - add_custom_target(cpp2hysop_bundle - DEPENDS wheel - COMMAND cp `find ${CMAKE_CURRENT_BINARY_DIR}/build -name _${CPP_2_HYSOP}.so` ${HYSOP_CXX_LIBRARY_BUNDLE} - WORKING_DIRECTORY "${CMAKE_CURRENT_BINARY_DIR}" - COMMENT "Copy swig c++ library to link") - set(HYSOP_CXX_LIBRARY ${HYSOP_CXX_LIBRARY_BUNDLE}) - set(HYSOP_CXX_LIBRARY_DEP cpp2hysop_bundle) - endif() - endif() - - if(WITH_MAIN_CXX) - list(APPEND cxx_executable_sources "${CXX_MAIN_DIR}/planner.cpp") - list(APPEND cxx_executable_sources "${CXX_MAIN_DIR}/diffSolver.cpp") - list(APPEND cxx_executable_sources "${CXX_MAIN_DIR}/poissonSolver.cpp") - foreach(cxx_main_source ${cxx_executable_sources}) - get_filename_component(cxx_exec_name "${cxx_main_source}" NAME_WE) - add_executable(${cxx_exec_name} ${cxx_main_source}) - add_dependencies(${cxx_exec_name} ${HYSOP_CXX_LIBRARY_DEP}) - target_link_libraries(${cxx_exec_name} ${HYSOP_CXX_LIBRARY} ${CXX_EXT_LIBS}) - endforeach() - endif() - - if(WITH_GOOGLE_TESTS) - add_subdirectory(${CXX_TEST_DIR}) - endif() -endif() - # =========== RPATH stuff =========== # Doc : # - https://cmake.org/Wiki/CMake_RPATH_handling @@ -631,11 +516,6 @@ if(VERBOSE_MODE) else() message(WARNING "You deactivate fortran to python interface generation. This will disable the fortran interface, including fftw and scales fonctionnalities.") endif() - if(USE_CXX) - message(STATUS " CXX compiler : ${CMAKE_CXX_COMPILER}") - else() - message(WARNING "You deactivate c++ to python interface generation. This will disable the Aitken-Schwarz Poisson solver.") - endif() message(STATUS " Sources are in : ${CMAKE_SOURCE_DIR}") message(STATUS " Build is done in : ${CMAKE_BINARY_DIR}") message(STATUS " Project uses MPI : ${USE_MPI}") @@ -664,11 +544,3 @@ if(VERBOSE_MODE) message("Try to run python -c 'import hysop'. If it fails, add ${HYSOP_PYTHON_INSTALL_DIR} to PYTHONPATH environment variable.") message("Example : \n export PYTHONPATH=${HYSOP_PYTHON_INSTALL_DIR}/:\${PYTHONPATH}\n") endif() - -# Add custom target to install compiled libraries locally -add_custom_target(update_libs - COMMAND find ${CMAKE_SOURCE_DIR}/hysop/ -name '*.so' -type f -delete - COMMAND find ${CMAKE_BINARY_DIR} -name '*.so' -type f -print0 | xargs -0 cp -t ${CMAKE_SOURCE_DIR}/hysop/ - COMMAND [ -f "$ENV{HOME}/.hysop.__init__.py" ] && rm ${CMAKE_SOURCE_DIR}/hysop/__init__.py - COMMAND [ -f "$ENV{HOME}/.hysop.__init__.py" ] && cp $ENV{HOME}/.hysop.__init__.py ${CMAKE_SOURCE_DIR}/hysop/__init__.py - DEPENDS wheel) diff --git a/CTestConfig.cmake b/CTestConfig.cmake deleted file mode 100644 index 93d5f9d90..000000000 --- a/CTestConfig.cmake +++ /dev/null @@ -1,6 +0,0 @@ -set(CTEST_PROJECT_NAME "HySoP") -set(CTEST_NIGHTLY_START_TIME "01:00:00 UTC") -set(CTEST_DROP_METHOD "http") -set(CTEST_DROP_SITE "my.cdash.org") -set(CTEST_DROP_LOCATION "/submit.php?project=HySoP") -set(CTEST_DROP_SITE_CDASH TRUE) diff --git a/HySoPConfig.cmake.in b/HySoPConfig.cmake.in deleted file mode 100644 index c435c411f..000000000 --- a/HySoPConfig.cmake.in +++ /dev/null @@ -1,38 +0,0 @@ -# - config file for @PACKAGE_NAME@ package -# Written by F. Pérignon, 2011 march -# -# This file generates @PACKAGE_NAME@Config.cmake, that may be used by another cmake project -# to retrieve all the configuration variables from @PACKAGE_NAME@ -# -# It defines the following variables -# -# @PACKAGE_NAME@_INCLUDE_DIRS - include directories for ppmcore -# @PACKAGE_NAME@_EXTRA_INCLUDE_DIRS - path to extra headers needed for @PACKAGE_NAME@ (metis.h ...) -# @PACKAGE_NAME@_LIBRARY_DIRS - path to @PACKAGE_NAME@ library(ies) -# @PACKAGE_NAME@_LIBRARIES - libraries to link against to use ppmcore -# @PACKAGE_NAME@_USE_XXX - value of option "USE_XXX" (for example USE_MPI, USE_Metis ... = ON or OFF) - -# Tell the user where to find ppmcore headers -# Tell the user project where to find our headers and libraries -set(@PACKAGE_NAME@_INCLUDE_DIRS "${${PACKAGE_SHORT_NAME}_INCLUDE_DIRS}") -set(@PACKAGE_NAME@_EXTRA_INCLUDE_DIRS "${${PACKAGE_NAME}_EXTRA_INCLUDE_DIRS}") -set(@PACKAGE_NAME@_LIBRARY_DIRS "${${PACKAGE_NAME}_LIB_DIR}") -set(@PACKAGE_NAME@_MODULE_DIR "${${PACKAGE_NAME}_INCLUDE_DIRS}/Modules") - -# Our library dependencies (contains definitions for IMPORTED targets) -include("${${PACKAGE_NAME}_CMAKE_DIR}/@PACKAGE_NAME@LibraryDepends.cmake") - -# These are IMPORTED targets created by FooBarLibraryDepends.cmake -set(@PACKAGE_NAME@_LIBRARIES @PROJECT_LIBRARY_NAME@) - -# Set all @PACKAGE_NAME@ options -set(@PACKAGE_NAME@_USE_MPI @USE_MPI@) -set(@PACKAGE_NAME@_USE_PPM @WITH_PPM@) -set(@PACKAGE_NAME@_USE_PPM_Numerics @WITH_PPM_Numerics@) - - -# Set var for compilers used by @PACKAGE_NAME@ -#set(@PACKAGE_NAME@_Fortran_COMPILER @CMAKE_Fortran_COMPILER@) - -# Fortran flags -#set(@PACKAGE_NAME@_Fortran_FLAGS @CMAKE_Fortran_FLAGS@) diff --git a/HySoPConfigVersion.cmake.in b/HySoPConfigVersion.cmake.in deleted file mode 100644 index ad9445c38..000000000 --- a/HySoPConfigVersion.cmake.in +++ /dev/null @@ -1,12 +0,0 @@ -set(PACKAGE_VERSION "@HySoP_version@") - - -# Check whether the requested PACKAGE_FIND_VERSION is compatible -if("${PACKAGE_VERSION}" VERSION_LESS "${PACKAGE_FIND_VERSION}") - set(PACKAGE_VERSION_COMPATIBLE FALSE) -else() - set(PACKAGE_VERSION_COMPATIBLE TRUE) - if ("${PACKAGE_VERSION}" VERSION_EQUAL "${PACKAGE_FIND_VERSION}") - set(PACKAGE_VERSION_EXACT TRUE) - endif() -endif() diff --git a/cmake/MyTools.cmake b/cmake/MyTools.cmake index ac90f59e1..fb9d20ed1 100644 --- a/cmake/MyTools.cmake +++ b/cmake/MyTools.cmake @@ -22,14 +22,6 @@ macro(append_flags) endmacro(append_flags) # The use of ADD_DEFINITION results in a warning with Fortran compiler -macro(APPEND_C_FLAGS) - append_flags(CMAKE_C_FLAGS ${ARGV}) -endmacro(APPEND_C_FLAGS) - -macro(APPEND_CXX_FLAGS) - append_flags(CMAKE_CXX_FLAGS ${ARGV}) -endmacro(APPEND_CXX_FLAGS) - macro(APPEND_Fortran_FLAGS) append_flags(CMAKE_Fortran_FLAGS ${ARGV}) endmacro(APPEND_Fortran_FLAGS) diff --git a/config.hpp.cmake b/cmake/config.hpp.cmake similarity index 100% rename from config.hpp.cmake rename to cmake/config.hpp.cmake diff --git a/f2py_f2cmap.in b/cmake/f2py_f2cmap.in similarity index 100% rename from f2py_f2cmap.in rename to cmake/f2py_f2cmap.in diff --git a/opencl_explore.py b/cmake/opencl_explore.py similarity index 100% rename from opencl_explore.py rename to cmake/opencl_explore.py diff --git a/precision.conf.in b/cmake/precision.conf.in similarity index 100% rename from precision.conf.in rename to cmake/precision.conf.in diff --git a/sort_f90.py b/cmake/sort_f90.py similarity index 100% rename from sort_f90.py rename to cmake/sort_f90.py diff --git a/notebooks/.gitignore b/notebooks/.gitignore deleted file mode 100644 index 61c6e23f8..000000000 --- a/notebooks/.gitignore +++ /dev/null @@ -1,2 +0,0 @@ -.ipynb_checkpoints -interactive diff --git a/notebooks/00_introduction.ipynb b/notebooks/00_introduction.ipynb deleted file mode 100644 index 40ce10d9d..000000000 --- a/notebooks/00_introduction.ipynb +++ /dev/null @@ -1,1381 +0,0 @@ -{ - "cells": [ - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "# HySoP: Hybrid Simulation with Particles\n", - "\n", - "HySoP is a library dedicated to high performance flow simulation based on particle methods, on hybrid architectures with multiple compute devices including CPUs, GPUs and MICs.\n", - "\n", - "The library is mainly written in Python (high level functionnalities) on the top of Fortran, C++ and OpenCL backends.\n", - "\n", - "## How to use HySoP\n", - "The problem to be solved must be described using Python 2.7 language either interactively or in a python script.\n", - "\n", - "If you are not at ease with this language, we strongly encourage you to check one of the numerous python tutorials available on the web. Try for example https://docs.python.org/2/tutorial/. A basic understanding of numpy may also be useful : http://www.numpy.org.\n", - "Numpy is the python package for scientific computing on which HySoP relies, especially for arrays handling.\n", - "\n", - "Interactive session is very useful for tests, basic understanding of hysop functionnalities but real simulation must be executed by using a script. \n", - "\n", - "\n", - "## Quick introduction\n", - "\n", - "In this quick introduction we will introduce some of the main data structures and types of HySoP.\n", - "At the end of this notebook, you will be able to define and discretize Fields on topologies and initialize them.\n" - ] - }, - { - "cell_type": "code", - "execution_count": 1, - "metadata": {}, - "outputs": [], - "source": [ - "%matplotlib inline\n", - "# First we import HySoP and some types we will need for this tutorial\n", - "import hysop\n", - "from hysop import Box, Field, Discretization, CartesianTopology, Simulation\n", - "\n", - "# We will also need numpy and matplotlib.\n", - "import numpy as np\n", - "np.set_printoptions(linewidth=240, formatter={'float': lambda x: format(x, '6.2f')})\n", - "\n", - "import matplotlib.pyplot as plt" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "### Describing the physical domain\n", - "The first thing to do is to create a physical domain where the simulation will take place. At this time the only type of domain available are $n$-dimensional boxes. A box has an origin $X_0=(x_0,\\cdots,x_{n-1})$ and a length $L=(L_0, \\cdots, L_{n-1})$. By default a unit box will be returned $X_0 = (0,\\cdots,0)$ and $L=(1,\\cdots,1)$. A domain also provide information about its boundary conditions." - ] - }, - { - "cell_type": "code", - "execution_count": 2, - "metadata": {}, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "Box::d0 | 2D rectangular box domain:\n", - " *origin: [ 0.00 0.00]\n", - " *max_pos: [ 1.00 1.00]\n", - " *length: [ 1.00 1.00]\n", - " *left boundary conditions: [PERIODIC(1), PERIODIC(1)]\n", - " *right boundary conditions: [PERIODIC(1), PERIODIC(1)]\n", - "\n", - "d0\n" - ] - } - ], - "source": [ - "# The 2D default Box\n", - "domain = Box(dim=2)\n", - "print domain\n", - "print domain.tag\n" - ] - }, - { - "cell_type": "code", - "execution_count": 3, - "metadata": {}, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "Box::d1 | 2D rectangular box domain:\n", - " *origin: [ 0.00 0.00]\n", - " *max_pos: [ 6.28 6.28]\n", - " *length: [ 6.28 6.28]\n", - " *left boundary conditions: [PERIODIC(1), PERIODIC(1)]\n", - " *right boundary conditions: [PERIODIC(1), PERIODIC(1)]\n", - "\n" - ] - } - ], - "source": [ - "# A custom box\n", - "domain = Box(length=(2*np.pi, 2*np.pi))\n", - "print domain" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "A Box, like many other types in HySoP, has a unique identifier called a tag that identifies any instance of the type uniquely. You can query object tags by using the $tag$ and $full\\_tag$ attributes." - ] - }, - { - "cell_type": "code", - "execution_count": 4, - "metadata": {}, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "domain.tag is d1\n", - "domain.full_tag is Box::d1.\n" - ] - } - ], - "source": [ - "print 'domain.tag is {}'.format(domain.tag)\n", - "print 'domain.full_tag is {}.'.format(domain.full_tag)" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "Of course, a Box has many other usefull attributes describing the physical domain:" - ] - }, - { - "cell_type": "code", - "execution_count": 5, - "metadata": {}, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "domain.dim is 2.\n", - "domain.origin is [ 0.00 0.00].\n", - "domain.length is [ 6.28 6.28].\n", - "domain.periodicity is [ True True].\n" - ] - } - ], - "source": [ - "for attr in ('dim','origin','length','periodicity'):\n", - " print 'domain.{} is {}.'.format(attr, getattr(domain, attr))" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "A full list of attributes along with their documentation can be retrieved by using the python help method:" - ] - }, - { - "cell_type": "code", - "execution_count": 6, - "metadata": {}, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "Help on class Box in module hysop.domain.box:\n", - "\n", - "class Box(BoxView, hysop.domain.domain.Domain)\n", - " | Box-shaped domain description.\n", - " | \n", - " | Method resolution order:\n", - " | Box\n", - " | BoxView\n", - " | hysop.domain.domain.DomainView\n", - " | hysop.tools.handle.TaggedObjectView\n", - " | hysop.domain.domain.Domain\n", - " | hysop.tools.handle.RegisteredObject\n", - " | hysop.tools.handle.TaggedObject\n", - " | __builtin__.object\n", - " | \n", - " | Methods defined here:\n", - " | \n", - " | view(self, topology_state)\n", - " | Return a view of this domain altered by some topology_state.\n", - " | \n", - " | ----------------------------------------------------------------------\n", - " | Static methods defined here:\n", - " | \n", - " | __new__(cls, length=None, origin=None, dim=None, lboundaries=None, rboundaries=None, **kwds)\n", - " | Create or get an existing Box from a dimension, length and origin with specified\n", - " | left and right boundary conditions.\n", - " | \n", - " | Parameters\n", - " | ----------\n", - " | length : array like of float, optional\n", - " | Box sides lengthes. Default = [1.0, ...]\n", - " | origin: array like of float, optional\n", - " | Position of the lowest point of the box. Default [0.0, ...]\n", - " | dim: int, optional\n", - " | Dimension of the box.\n", - " | lboundaries: array_like of BoundaryCondition\n", - " | Left boundary conditions.\n", - " | rboundaries: array_like of BoundaryCondition\n", - " | Right boundary conditions.\n", - " | \n", - " | Attributes\n", - " | ----------\n", - " | dim: int\n", - " | Dimension of the box.\n", - " | length : np.ndarray of HYSOP_REAL\n", - " | Box sides lengthes.\n", - " | origin: np.ndarray of HYSOP_REAL\n", - " | Position of the lowest point of the box. \n", - " | end: np.ndarray of HYSOP_REAL\n", - " | Position of the greatest point of the box. \n", - " | lboundaries: np.ndarray of BoundaryCondition\n", - " | Left boundary conditions.\n", - " | rboundaries: np.ndarray of BoundaryCondition\n", - " | Right boundary conditions.\n", - " | boundaries: tuple of np.ndarray of BoundaryCondition\n", - " | Left and right boundary conditions as a tuple.\n", - " | periodicity: np.ndarray of bool\n", - " | Numpy array mask, True is axis is periodic, else False.\n", - " | \n", - " | ----------------------------------------------------------------------\n", - " | Data and other attributes defined here:\n", - " | \n", - " | __abstractmethods__ = frozenset([])\n", - " | \n", - " | ----------------------------------------------------------------------\n", - " | Methods inherited from BoxView:\n", - " | \n", - " | long_description(self)\n", - " | Return a long description of this Box as a string.\n", - " | \n", - " | short_description(self)\n", - " | Return a short description of this Box as a string.\n", - " | \n", - " | ----------------------------------------------------------------------\n", - " | Data descriptors inherited from BoxView:\n", - " | \n", - " | boundaries\n", - " | Left and right boundary conditions as a tuple.\n", - " | \n", - " | end\n", - " | Position of the greatest point of the box.\n", - " | \n", - " | lboundaries\n", - " | Left boundary conditions.\n", - " | \n", - " | length\n", - " | Box sides lengthes.\n", - " | \n", - " | origin\n", - " | Position of the lowest point of the box.\n", - " | \n", - " | periodicity\n", - " | Numpy array mask, True is axis is periodic, else False.\n", - " | \n", - " | rboundaries\n", - " | Right boundary conditions.\n", - " | \n", - " | ----------------------------------------------------------------------\n", - " | Methods inherited from hysop.domain.domain.DomainView:\n", - " | \n", - " | __eq__(self, other)\n", - " | \n", - " | __hash__(self)\n", - " | \n", - " | __ne__(self, other)\n", - " | \n", - " | __str__(self)\n", - " | Equivalent to self.long_description()\n", - " | \n", - " | current_task(self)\n", - " | Get task number of the current mpi process.\n", - " | \n", - " | is_on_task(self, params)\n", - " | Test if the current process corresponds to param task.\n", - " | \n", - " | print_topologies(self)\n", - " | Print all topologies registered on the domain.\n", - " | \n", - " | task_on_proc(self, parent_rank)\n", - " | Get task identifier for a given mpi process (parent communicator rank).\n", - " | \n", - " | ----------------------------------------------------------------------\n", - " | Data descriptors inherited from hysop.domain.domain.DomainView:\n", - " | \n", - " | dim\n", - " | Return the dimension of the domain.\n", - " | \n", - " | domain\n", - " | Return the domain on which the view is on.\n", - " | \n", - " | frame\n", - " | Get symbolic frame associated to this domain.\n", - " | \n", - " | parent_comm\n", - " | Return the parent communicator used to create this domain.\n", - " | \n", - " | parent_rank\n", - " | Return the rank of the process in the parent communicator.\n", - " | \n", - " | proc_tasks\n", - " | Return mapping between mpi process rank and task identifier.\n", - " | \n", - " | registered_topologies\n", - " | Return the dictionary of all topologies already built on this domain,\n", - " | with topology ids as keys and :class:`~hysop.topology.topology.Topology` as values.\n", - " | \n", - " | task_comm\n", - " | Return the communicator that owns the current process.\n", - " | This is the sub-communicator which has been obtained by splitting.\n", - " | the parent communicator by colors (proc_tasks).\n", - " | \n", - " | task_rank\n", - " | Return the rank of the process in the task communicator.\n", - " | \n", - " | ----------------------------------------------------------------------\n", - " | Data and other attributes inherited from hysop.domain.domain.DomainView:\n", - " | \n", - " | __metaclass__ = <class 'abc.ABCMeta'>\n", - " | Metaclass for defining Abstract Base Classes (ABCs).\n", - " | \n", - " | Use this metaclass to create an ABC. An ABC can be subclassed\n", - " | directly, and then acts as a mix-in class. You can also register\n", - " | unrelated concrete classes (even built-in classes) and unrelated\n", - " | ABCs as 'virtual subclasses' -- these and their descendants will\n", - " | be considered subclasses of the registering ABC by the built-in\n", - " | issubclass() function, but the registering ABC won't show up in\n", - " | their MRO (Method Resolution Order) nor will method\n", - " | implementations defined by the registering ABC be callable (not\n", - " | even via super()).\n", - " | \n", - " | ----------------------------------------------------------------------\n", - " | Methods inherited from hysop.tools.handle.TaggedObjectView:\n", - " | \n", - " | __init__(self, obj_view=None, **kwds)\n", - " | \n", - " | __repr__(self)\n", - " | \n", - " | ----------------------------------------------------------------------\n", - " | Data descriptors inherited from hysop.tools.handle.TaggedObjectView:\n", - " | \n", - " | __dict__\n", - " | dictionary for instance variables (if defined)\n", - " | \n", - " | __weakref__\n", - " | list of weak references to the object (if defined)\n", - " | \n", - " | full_pretty_tag\n", - " | Unique tag of the underlying object view with cls information.\n", - " | \n", - " | full_tag\n", - " | Unique tag of the underlying object view with cls information.\n", - " | \n", - " | id\n", - " | Unique id of the underlying object view.\n", - " | \n", - " | pretty_tag\n", - " | Unique pretty tag of the underlying object view.\n", - " | \n", - " | tag\n", - " | Unique tag of the underlying object view.\n", - " | \n", - " | ----------------------------------------------------------------------\n", - " | Methods inherited from hysop.domain.domain.Domain:\n", - " | \n", - " | register_topology(self, topo)\n", - " | Register a new topology on this domain.\n", - " | Do nothing if an equivalent topology is already\n", - " | in the list.\n", - " | \n", - " | remove_topology(self, topo)\n", - " | Remove a topology from the list of this domain.\n", - " | Do nothing if the topology does not exist in the list.\n", - " | \n", - " | ----------------------------------------------------------------------\n", - " | Methods inherited from hysop.tools.handle.RegisteredObject:\n", - " | \n", - " | __del__(self)\n", - " | \n", - " | ----------------------------------------------------------------------\n", - " | Data descriptors inherited from hysop.tools.handle.RegisteredObject:\n", - " | \n", - " | obj_initialized\n", - " | Return the object initialization state.\n", - "\n" - ] - } - ], - "source": [ - "help(Box) # or help(domain)" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "### Creating variables\n", - "\n", - "Now that we have a domain defined, we can define named continuous scalar and vector fields.\n", - "\n", - "In HySoP, a continuous field is an abstract object which represents the usual vector field, in a mathematical sense, i.e some function which associates a scalar or a vector to each point of the space.\n", - "\n", - "Such objects are used as input and/or output variables for continuous operators and must be defined with at least:\n", - "* a name, compulsory (required for i/o).\n", - "* a domain: the physical domain of definition of the field.\n", - "\n", - "The underlying datatype that will be used uppon discretization can also be specified. \n", - "By default Fields are set to datatype HYSOP_REAL wich will be either np.float32 (single precision floating point) or np.float64 (double precision floating point) depending on HySoP build configuration. There are no restrictions on the datatypes, for example all integer and complex datatypes can also be specified. Let $\\mathbb{D}$ be the space of all the possible values of the chosen datadtype and $\\Omega \\subset \\mathbb{R}^n$ our physical domain.\n", - "\n", - "For a domain of dimension $n$, scalar fields $s: \\Omega \\rightarrow \\mathbb{D}$ are defined like this:" - ] - }, - { - "cell_type": "code", - "execution_count": 7, - "metadata": { - "scrolled": true - }, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "HYSOP_REAL is set to float64.\n", - "\n", - "ScalarField::f0\n", - " *name: F0\n", - " *pname: F0\n", - " *dim: 2\n", - " *dtype: float64\n", - " *symbolic repr.: F0\n", - " *initial values: (0, 0)\n", - " *topology tags: []\n", - "\n", - "ScalarField::f1\n", - " *name: F1\n", - " *pname: F1\n", - " *dim: 2\n", - " *dtype: int32\n", - " *symbolic repr.: F1\n", - " *initial values: (0, 0)\n", - " *topology tags: []\n", - "\n" - ] - } - ], - "source": [ - "from hysop.constants import HYSOP_REAL\n", - "print 'HYSOP_REAL is set to {}.\\n'.format(HYSOP_REAL.__name__)\n", - "\n", - "field0 = Field(name='F0', domain=domain)\n", - "field1 = Field(name='F1', domain=domain, dtype=np.int32)\n", - "\n", - "print field0\n", - "print field1" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "Vector fields are created using either the is_vector or the nb_components parameter. is_vector corresponds to specifying nb_components to the number of dimensions of the domain $f(x): \\Omega \\subset \\mathbb{R}^n \\rightarrow \\mathbb{D}^n$ while the more general nb_components parameter allows to specify $g(x): \\Omega \\subset \\mathbb{R}^n \\rightarrow \\mathbb{D}^m$." - ] - }, - { - "cell_type": "code", - "execution_count": 8, - "metadata": {}, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "VectorField::tf0\n", - " *name: V0\n", - " *pname: V0\n", - " *dim: 2\n", - " *shape: (2,)\n", - " *nb_components: 2\n", - " *symbolic repr.:\n", - " [[V0â‚€]\n", - " [V0â‚]]\n", - "\n", - "VectorField::tf1\n", - " *name: V1\n", - " *pname: V1\n", - " *dim: 2\n", - " *shape: (3,)\n", - " *nb_components: 3\n", - " *symbolic repr.:\n", - " [[V1â‚€]\n", - " [V1â‚]\n", - " [V1â‚‚]]\n", - "\n", - "TensorField::tf2\n", - " *name: T\n", - " *pname: T\n", - " *dim: 2\n", - " *shape: (3, 2)\n", - " *nb_components: 6\n", - " *symbolic repr.:\n", - " [[T₀₀ Tâ‚€â‚]\n", - " [Tâ‚â‚€ Tâ‚â‚]\n", - " [Tâ‚‚â‚€ Tâ‚‚â‚]]\n" - ] - } - ], - "source": [ - "field2 = Field(name='V0', domain=domain, is_vector=True)\n", - "field3 = Field(name='V1', domain=domain, nb_components=3)\n", - "field4 = Field(name='T', domain=domain, shape=(3,2))\n", - "\n", - "print field2\n", - "print\n", - "print field3\n", - "print\n", - "print field4" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "### Topologies\n", - "To discretize Fields we will need to build topologies which are objects use to describe the space discretization of domains. Topologies also defined the mapping between data and MPI processes in case of a multiprocess run.\n", - "\n", - "As only Box domains are available at this day, only one type of topology is available as well: CartesianTopology.\n", - "A cartesian topology represents the discretization of a physical box domain into a cartesian grid with a given space step $dx$. It also is responsible to map subgrids to all processes. This will be called the MPI grid layout. As processes need to exchange data as well, we also need to prescribe a number of ghosts in each directions.\n", - "\n", - "Here we will just discretize the domain for one process without ghosts.\n", - "First we choose the shape of discretization (number of points in each directions).\n", - "Here we will chose a 5x5 discretization shape. Please note that because of domain periodicity\n", - "one point will be thrown away in each periodic direction so the effective local grid size will be 4x4." - ] - }, - { - "cell_type": "code", - "execution_count": 9, - "metadata": {}, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "CartesianTopology::t0[domain=Box::d1, pcoords=[0 0], pshape=[1 1], shape=[5,5], ghosts=[0,0], backend=HOST]\n" - ] - } - ], - "source": [ - "d0 = Discretization(resolution=(5,5))\n", - "t0 = CartesianTopology(domain=domain, discretization=d0)\n", - "print t0.short_description()\n" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "Here pcoords represents the process coordinates into the process grid layout which is of shape (1,1) here.\n", - "\n", - "Adding ghosts to the discretization is straightforward:" - ] - }, - { - "cell_type": "code", - "execution_count": 10, - "metadata": {}, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "CartesianTopology::t1[domain=Box::d1, pcoords=[0 0], pshape=[1 1], shape=[5,5], ghosts=[1,2], backend=HOST]\n" - ] - } - ], - "source": [ - "d1 = Discretization(resolution=(5,5), ghosts=(1,2))\n", - "t1 = CartesianTopology(domain=domain, discretization=d1)\n", - "print t1.short_description()" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "Each CartesianTopology has a 'mesh' attributes, an object of type CartesianMesh, which describes the local grid on which the current mpi process works." - ] - }, - { - "cell_type": "code", - "execution_count": 11, - "metadata": {}, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "CartesianMeshView::m1:\n", - " *proc coords: [0 0]\n", - " *global start: [0 0]\n", - " *local resolution: [6 8]\n", - " *compute resolution: [4 4]\n", - " *ghosts: [1 2]\n", - " *local boundaries: left => [PERIODIC(1) PERIODIC(1)]\n", - " right => [PERIODIC(1) PERIODIC(1)]\n", - "\n" - ] - } - ], - "source": [ - "print t1.mesh" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "### Discrete Fields\n", - "Now that we have topologies defined on domains, we can finally discretize our continuous Fields.\n", - "Discretizing a Field onto a CartesianTopology yields a CartesianDiscreteField.\n", - "\n", - "In fact, the real type that will be returned is a CartesianDiscreteFieldView which is a way to see the underlying discrete field data for a given transposition state. This will come handy when using directionnally splittable operators.\n", - "The default transposition state is such that the allocated data is C-contiguous. To get the real discrete field on which the view is, just use its 'dfield' attribute.\n", - "\n", - "A Field can be at most discretized once per topology:" - ] - }, - { - "cell_type": "code", - "execution_count": 12, - "metadata": {}, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "[[ 0.00 0.00 0.00 0.00]\n", - " [ 0.00 2.00 2.00 0.00]\n", - " [ 0.00 0.00 0.00 0.00]\n", - " [ 0.00 0.00 0.00 0.00]]\n", - "\n", - "[[ 1.00 1.00 1.00 1.00]\n", - " [ 1.00 1.00 1.00 1.00]\n", - " [ 1.00 1.00 1.00 1.00]\n", - " [ 1.00 1.00 1.00 1.00]]\n" - ] - } - ], - "source": [ - "# Here we have a topology without ghosts\n", - "dfield0 = field0.discretize(t0)\n", - "dfield0_bis = field0.discretize(t0)\n", - "assert dfield0.dfield is dfield0_bis.dfield\n", - "\n", - "# Accessing data is simple as:\n", - "dfield0.data[0][...] = 0.0\n", - "dfield0.data[0][1,1:3] = 2\n", - "print dfield0.sdata\n", - "print\n", - "\n", - "dfield0.sdata[...] = 1.0\n", - "print dfield0_bis.sdata" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "All discretized data are of type HostArray, which is a supertype of numpy.ndarray.\n", - "With the topology with ghost, you will get something like that:" - ] - }, - { - "cell_type": "code", - "execution_count": 13, - "metadata": {}, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "[[ 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00]\n", - " [ 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00]\n", - " [ 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00]\n", - " [ 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00]\n", - " [ 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00]\n", - " [ 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00]]\n", - "\n", - "[[ nan nan nan nan nan nan nan nan]\n", - " [ nan nan 1.00 1.00 1.00 1.00 nan nan]\n", - " [ nan nan 1.00 1.00 1.00 1.00 nan nan]\n", - " [ nan nan 1.00 1.00 1.00 1.00 nan nan]\n", - " [ nan nan 1.00 1.00 1.00 1.00 nan nan]\n", - " [ nan nan nan nan nan nan nan nan]]\n", - "(slice(1, 5, None), slice(2, 6, None))\n" - ] - } - ], - "source": [ - "# Here we have a topology with 2 ghosts on the x-axis and 1 ghost in the y-axis\n", - "dfield1 = field0.discretize(t1)\n", - "\n", - "# Put zeros everywhere\n", - "dfield1.sdata[...] = 0.0\n", - "print dfield1.sdata\n", - "print\n", - "\n", - "# Put ones inside the compute domain (exluding ghosts)\n", - "# and NaNs in the ghost layers\n", - "dfield1.sdata[...] = np.nan\n", - "dfield1.sdata[dfield1.compute_slices] = 1.0\n", - "print dfield1.sdata\n", - "print dfield1.compute_slices" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "There is a simple way to hide ghost values:" - ] - }, - { - "cell_type": "code", - "execution_count": 14, - "metadata": {}, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "[[ X X X X X X X X ]\n", - " [ X X 1.00 1.00 1.00 1.00 X X ]\n", - " [ X X 1.00 1.00 1.00 1.00 X X ]\n", - " [ X X 1.00 1.00 1.00 1.00 X X ]\n", - " [ X X 1.00 1.00 1.00 1.00 X X ]\n", - " [ X X X X X X X X ]]\n" - ] - } - ], - "source": [ - "dfield1.print_with_ghosts(component=0)" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "### How to initialize a scalar field with a python method" - ] - }, - { - "cell_type": "code", - "execution_count": 15, - "metadata": {}, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "f(x,y) = x\n", - "[[ 0.00 1.57 3.14 4.71]\n", - " [ 0.00 1.57 3.14 4.71]\n", - " [ 0.00 1.57 3.14 4.71]\n", - " [ 0.00 1.57 3.14 4.71]]\n", - "\n", - "f(x,y) = y\n", - "[[ 0.00 0.00 0.00 0.00]\n", - " [ 1.57 1.57 1.57 1.57]\n", - " [ 3.14 3.14 3.14 3.14]\n", - " [ 4.71 4.71 4.71 4.71]]\n", - "\n", - "f(x,y) = xy\n", - "[[ 0.00 0.00 0.00 0.00]\n", - " [ 0.00 2.47 4.93 7.40]\n", - " [ 0.00 4.93 9.87 14.80]\n", - " [ 0.00 7.40 14.80 22.21]]\n", - "\n" - ] - } - ], - "source": [ - "def f0(data, coords):\n", - " x,y = coords[0]\n", - " data[0][...] = x\n", - " \n", - "def f1(data, coords):\n", - " x,y = coords[0]\n", - " data[0][...] = y\n", - " \n", - "def f2(data, coords):\n", - " x,y = coords[0]\n", - " data[0][...] = x*y\n", - "\n", - "for (f,fname) in zip((f0,f1,f2),('x','y','xy')):\n", - " dfield0.initialize(f)\n", - " print 'f(x,y) = {}'.format(fname)\n", - " print dfield0.sdata\n", - " print" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "### How to initialize a vector field with a python method\n", - "\n", - "Here we will use print_with_ghosts for a nice formating of field data including ghosts." - ] - }, - { - "cell_type": "code", - "execution_count": 16, - "metadata": {}, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "Component 0:\n", - "[[ X X X X X X X X ]\n", - " [ X X 0.00 1.57 3.14 4.71 X X ]\n", - " [ X X 0.00 1.57 3.14 4.71 X X ]\n", - " [ X X 0.00 1.57 3.14 4.71 X X ]\n", - " [ X X 0.00 1.57 3.14 4.71 X X ]\n", - " [ X X X X X X X X ]]\n", - "\n", - "Component 1:\n", - "[[ X X X X X X X X ]\n", - " [ X X 0.00 0.00 0.00 0.00 X X ]\n", - " [ X X 1.57 1.57 1.57 1.57 X X ]\n", - " [ X X 3.14 3.14 3.14 3.14 X X ]\n", - " [ X X 4.71 4.71 4.71 4.71 X X ]\n", - " [ X X X X X X X X ]]\n", - "\n", - "Component 2:\n", - "[[ X X X X X X X X ]\n", - " [ X X 0.00 0.00 0.00 0.00 X X ]\n", - " [ X X 0.00 2.47 4.93 7.40 X X ]\n", - " [ X X 0.00 4.93 9.87 14.80 X X ]\n", - " [ X X 0.00 7.40 14.80 22.21 X X ]\n", - " [ X X X X X X X X ]]\n", - "\n" - ] - } - ], - "source": [ - "def f(data, coords):\n", - " x,y = coords[0]\n", - " data[0][...] = x\n", - " data[1][...] = y\n", - " data[2][...] = x*y\n", - " \n", - "dfield3 = field3.discretize(t1) # <- topology with ghosts\n", - "dfield3.initialize(f)\n", - "\n", - "for i in range(dfield3.nb_components):\n", - " print 'Component {}:'.format(i)\n", - " dfield3.print_with_ghosts(component=i)\n", - " print" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "### How to pass parameters to initialization methods\n", - "\n", - "Just pass the additional parameters as keyword arguments to the initialize method." - ] - }, - { - "cell_type": "code", - "execution_count": 17, - "metadata": {}, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "Component 0:\n", - "[[ X X X X X X X X ]\n", - " [ X X 0.00 0.16 0.31 0.47 X X ]\n", - " [ X X 0.00 0.16 0.31 0.47 X X ]\n", - " [ X X 0.00 0.16 0.31 0.47 X X ]\n", - " [ X X 0.00 0.16 0.31 0.47 X X ]\n", - " [ X X X X X X X X ]]\n", - "\n", - "Component 1:\n", - "[[ X X X X X X X X ]\n", - " [ X X 0.00 0.00 0.00 0.00 X X ]\n", - " [ X X 0.16 0.16 0.16 0.16 X X ]\n", - " [ X X 0.31 0.31 0.31 0.31 X X ]\n", - " [ X X 0.47 0.47 0.47 0.47 X X ]\n", - " [ X X X X X X X X ]]\n", - "\n", - "Component 2:\n", - "[[ X X X X X X X X ]\n", - " [ X X 0.00 0.00 0.00 0.00 X X ]\n", - " [ X X 0.00 0.25 0.49 0.74 X X ]\n", - " [ X X 0.00 0.49 0.99 1.48 X X ]\n", - " [ X X 0.00 0.74 1.48 2.22 X X ]\n", - " [ X X X X X X X X ]]\n", - "\n" - ] - } - ], - "source": [ - "def f(data, coords, p=1.0):\n", - " x,y = coords[0]\n", - " data[0][...] = p*x\n", - " data[1][...] = p*y\n", - " data[2][...] = p*x*y\n", - " \n", - "dfield3 = field3.discretize(t1) # <- topology with ghosts\n", - "dfield3.initialize(f, p=0.1)\n", - "\n", - "for i in range(dfield3.nb_components):\n", - " print 'Component {}:'.format(i)\n", - " dfield3.print_with_ghosts(component=i)\n", - " print" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "### How to quickly display a scalar or a vector field:\n", - "This will only display local to process field data." - ] - }, - { - "cell_type": "code", - "execution_count": 18, - "metadata": {}, - "outputs": [ - { - "data": { - "image/png": "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\n", - "text/plain": [ - "<Figure size 1152x720 with 3 Axes>" - ] - }, - "metadata": {}, - "output_type": "display_data" - } - ], - "source": [ - "df = dfield3\n", - "fig, axes = plt.subplots(1,3, figsize=(16,10))\n", - "for i in range(df.nb_components):\n", - " axes[i].imshow(df.data[i][df.compute_slices], \n", - " interpolation='bicubic',\n", - " extent=(0.0, 4.71, 4.71, 0))\n", - "\n", - " axes[i].set_xlabel('x')\n", - " axes[i].set_ylabel('y')\n", - " axes[i].set_title('F{}'.format(i))" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "### Making the fields evolve with time\n", - "\n", - "Here we will quickly introduce the Simulation object which will allow us to introduce time in HySoP.\n", - "By default a simulation begins at t=0 and ends at t=1.\n", - "The user may supply either a fixed timestep $dt$ or a number of iteration $N$." - ] - }, - { - "cell_type": "code", - "execution_count": 19, - "metadata": {}, - "outputs": [ - { - "data": { - "text/html": [ - "<video width=\"576\" height=\"360\" controls autoplay loop>\n", - " <source type=\"video/mp4\" src=\"data:video/mp4;base64,AAAAHGZ0eXBNNFYgAAACAGlzb21pc28yYXZjMQAAAAhmcmVlAAA8fm1kYXQAAAKuBgX//6rcRem9\n", - "5tlIt5Ys2CDZI+7veDI2NCAtIGNvcmUgMTUyIHIyODU0IGU5YTU5MDMgLSBILjI2NC9NUEVHLTQg\n", - "QVZDIGNvZGVjIC0gQ29weWxlZnQgMjAwMy0yMDE3IC0gaHR0cDovL3d3dy52aWRlb2xhbi5vcmcv\n", - "eDI2NC5odG1sIC0gb3B0aW9uczogY2FiYWM9MSByZWY9MyBkZWJsb2NrPTE6MDowIGFuYWx5c2U9\n", - "MHgzOjB4MTEzIG1lPWhleCBzdWJtZT03IHBzeT0xIHBzeV9yZD0xLjAwOjAuMDAgbWl4ZWRfcmVm\n", - "PTEgbWVfcmFuZ2U9MTYgY2hyb21hX21lPTEgdHJlbGxpcz0xIDh4OGRjdD0xIGNxbT0wIGRlYWR6\n", - "b25lPTIxLDExIGZhc3RfcHNraXA9MSBjaHJvbWFfcXBfb2Zmc2V0PS0yIHRocmVhZHM9MTEgbG9v\n", - "a2FoZWFkX3RocmVhZHM9MSBzbGljZWRfdGhyZWFkcz0wIG5yPTAgZGVjaW1hdGU9MSBpbnRlcmxh\n", - "Y2VkPTAgYmx1cmF5X2NvbXBhdD0wIGNvbnN0cmFpbmVkX2ludHJhPTAgYmZyYW1lcz0zIGJfcHly\n", - "YW1pZD0yIGJfYWRhcHQ9MSBiX2JpYXM9MCBkaXJlY3Q9MSB3ZWlnaHRiPTEgb3Blbl9nb3A9MCB3\n", - "ZWlnaHRwPTIga2V5aW50PTI1MCBrZXlpbnRfbWluPTUgc2NlbmVjdXQ9NDAgaW50cmFfcmVmcmVz\n", - "aD0wIHJjX2xvb2thaGVhZD00MCByYz1jcmYgbWJ0cmVlPTEgY3JmPTIzLjAgcWNvbXA9MC42MCBx\n", - "cG1pbj0wIHFwbWF4PTY5IHFwc3RlcD00IGlwX3JhdGlvPTEuNDAgYXE9MToxLjAwAIAAABM/ZYiE\n", - "ABP//vexj4FNyAANlzqKeh/hFbH0kFF6sdmgZZQfwZOX+oAbVWujOrqiGmbqzF73kxJ5XP9Eamvz\n", - "hAVbXvNRmSIUXx1oOPGifSMO97B4Fy7/O7hti1b9cSZORNWO07bzrOyyH4EMFUbfn5DNAvF3cF/I\n", - "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\n", - "\">\n", - " Your browser does not support the video tag.\n", - "</video>" - ], - "text/plain": [ - "<IPython.core.display.HTML object>" - ] - }, - "execution_count": 19, - "metadata": {}, - "output_type": "execute_result" - }, - { - "data": { - "image/png": "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\n", - "text/plain": [ - "<Figure size 576x360 with 3 Axes>" - ] - }, - "metadata": {}, - "output_type": "display_data" - } - ], - "source": [ - "df = dfield3\n", - "nb_iter=20\n", - "simu = Simulation(nb_iter=nb_iter, quiet=True)\n", - "\n", - "fig, axes = plt.subplots(1,3, figsize=(8,5))\n", - "\n", - "imgs = ()\n", - "for i in range(df.nb_components):\n", - " img = axes[i].imshow(df.data[i][df.compute_slices], \n", - " interpolation='bicubic',\n", - " extent=(0.0, 4.71, 4.71, 0),\n", - " vmin=0, vmax=(20 if i==2 else 5))\n", - " imgs += (img,)\n", - " axes[i].set_xlabel('x')\n", - " axes[i].set_ylabel('y')\n", - " axes[i].set_title('F{}'.format(i))\n", - "\n", - "def update():\n", - " fig.suptitle('t={}'.format(simu.t()))\n", - " for (i,img) in enumerate(imgs):\n", - " img.set_data(df.data[i][df.compute_slices])\n", - " \n", - "def init():\n", - " simu.initialize()\n", - " df.initialize(f, p=1.0, quiet=True)\n", - " update()\n", - " return imgs\n", - "\n", - "def animate(i):\n", - " simu.advance()\n", - " df.initialize(f, p=1.0-simu.t(), quiet=True)\n", - " update()\n", - " return imgs\n", - "\n", - "from matplotlib import animation\n", - "from IPython.display import HTML\n", - "anim = animation.FuncAnimation(fig, animate, init_func=init,\n", - " frames=nb_iter, interval=200)\n", - "HTML(anim.to_html5_video())" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "In the next notebook we will see how to do this the HySoP way by introducing operators and computational graphs." - ] - } - ], - "metadata": { - "kernelspec": { - "display_name": "Python 2", - "language": "python", - "name": "python2" - }, - "language_info": { - "codemirror_mode": { - "name": "ipython", - "version": 2 - }, - "file_extension": ".py", - "mimetype": "text/x-python", - "name": "python", - "nbconvert_exporter": "python", - "pygments_lexer": "ipython2", - "version": "2.7.15+" - } - }, - "nbformat": 4, - "nbformat_minor": 2 -} diff --git a/notebooks/01_analytical.ipynb b/notebooks/01_analytical.ipynb deleted file mode 100644 index bc75bdef4..000000000 --- a/notebooks/01_analytical.ipynb +++ /dev/null @@ -1,249 +0,0 @@ -{ - "cells": [ - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "# HySoP: Time dependent analytical fields\n", - "\n", - "In this notebook we will see how to define analytical fields that evolve with time\n", - "and how to dump their values to disk at a given dump frequency.\n", - "\n", - "* __Level:__ easy\n", - "* __Recommended lecture:__ 00_introduction notebook\n", - "\n", - "In this notebook you will learn how to create, setup and apply operators embedded into a computational graph.\n", - "\n", - "Two operators are discussed here:\n", - "* __PythonAnalyticField:__ update a field with a python method at each simulation step.\n", - "* __HDF_Writer:__ write a field to disk as an hdf file.\n", - "\n", - "## Setting up HySoP\n", - "\n", - "Like in the last notebook we need to import the library and \n", - "required types." - ] - }, - { - "cell_type": "code", - "execution_count": 1, - "metadata": {}, - "outputs": [], - "source": [ - "import hysop\n", - "from hysop.deps import np\n", - "from hysop import Box, Discretization, CartesianTopology, \\\n", - " Field, Simulation, Problem\n", - "from hysop.defaults import TimeParameters\n", - "from hysop.operators import HDF_Writer\n", - "from hysop.backend.host.python.operator.analytic import PythonAnalyticField" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "## Domain and topology\n", - "First we define a domain, a discretization and finally our topology." - ] - }, - { - "cell_type": "code", - "execution_count": 2, - "metadata": { - "scrolled": true - }, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "======== CartesianTopology::t0 ========\n", - " *on task: 999\n", - " *backend: HostArrayBackend::bk1\n", - " *shape: [1 1]\n", - " *process of coords [0 0] and of ranks cart_rank=0, parent_rank=0\n", - " *cartesian ranks map:\n", - " [0]\n", - " *cartesian to parent comm ranks mapping:\n", - " [[0]]\n", - " *neighbours ranks (left, right) x direction \n", - " [[-1 0]\n", - " [-1 0]]\n", - " *BoxView::d0 | 2D rectangular box domain:\n", - " *origin: [0. 0.]\n", - " *max_pos: [6.28318531 6.28318531]\n", - " *length: [6.28318531 6.28318531]\n", - " *left boundary conditions: [PERIODIC(1), PERIODIC(1)]\n", - " *right boundary conditions: [PERIODIC(1), PERIODIC(1)]\n", - " *CartesianMeshView::m0:\n", - " *proc coords: [0 0]\n", - " *global start: [0 0]\n", - " *local resolution: [64 64]\n", - " *compute resolution: [64 64]\n", - " *ghosts: [0 0]\n", - " *local boundaries: left => [PERIODIC(1) PERIODIC(1)]\n", - " right => [PERIODIC(1) PERIODIC(1)]\n", - "=================================\n", - "\n" - ] - } - ], - "source": [ - "# chose the dimensionality of the domain\n", - "dim = 2\n", - "\n", - "# define the domain\n", - "box = Box(length=(2*np.pi,)*dim)\n", - "\n", - "# discretization parameters (here we choose 64^dim, without ghosts)\n", - "discretization = Discretization((65,)*dim)\n", - "\n", - "# finally create a cartesian topology\n", - "topo = CartesianTopology(domain=box, discretization=discretization)\n", - "print topo" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "## Define the scalar field and time parameters\n", - "Here we will define the field that will be updated at each time step." - ] - }, - { - "cell_type": "code", - "execution_count": 3, - "metadata": {}, - "outputs": [], - "source": [ - "t,dt = TimeParameters(dtype=np.float32)\n", - "f0 = Field(name='F0', domain=box, dtype=np.float32)" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "## Define all required operators\n", - "### Python analytic operator" - ] - }, - { - "cell_type": "code", - "execution_count": 4, - "metadata": {}, - "outputs": [], - "source": [ - "def compute_scalar(data, coords, t):\n", - " data[0][...] = (1.0/(1.0+0.1*t()))\n", - " for x in coords[0]:\n", - " data[0][...] *= np.cos(x-t())\n", - " \n", - "# Analytic operator\n", - "op0 = PythonAnalyticField(name='analytic', field=f0,\n", - " formula=compute_scalar,\n", - " variables={f0: topo},\n", - " extra_input_kwds={'t':t}) # <= here we pass all extra keyword arguments required by formula" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "### The HDF writer operator:" - ] - }, - { - "cell_type": "code", - "execution_count": 5, - "metadata": {}, - "outputs": [], - "source": [ - "# HDF Writer\n", - "# by default fields will be dumped to the notebook interactive folder\n", - "op1 = HDF_Writer(name='dumped_scalar_field', \n", - " variables={f0:topo})" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "\n", - "## Build the computational operator graph\n", - "Build computational operator graph:" - ] - }, - { - "cell_type": "code", - "execution_count": 6, - "metadata": {}, - "outputs": [], - "source": [ - "# Create a problem and build it\n", - "problem = Problem()\n", - "problem.insert(op0, op1)\n", - "problem.build()" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "## Solve and finalize" - ] - }, - { - "cell_type": "code", - "execution_count": 7, - "metadata": {}, - "outputs": [], - "source": [ - "# Create a simulation and solve the problem \n", - "# (do not forget to specify the time parameter here)\n", - "simu = Simulation(start=0.0, end=2*np.pi, \n", - " nb_iter=100, t=t, dt=dt)\n", - "\n", - "# Finally solve the problem \n", - "problem.solve(simu)\n", - "\n", - "# Finalize\n", - "problem.finalize()" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "You can use paraview to visualize the evolution of our scalar field by opening the 'dumped_scalar_field.xmf' file contained in the interactive folder of your current working directory. \n", - "\n", - "This is what the result should look like:\n", - "\n", - "<video controls src=\"videos/analytic.ogv\" />" - ] - } - ], - "metadata": { - "kernelspec": { - "display_name": "Python 2", - "language": "python", - "name": "python2" - }, - "language_info": { - "codemirror_mode": { - "name": "ipython", - "version": 2 - }, - "file_extension": ".py", - "mimetype": "text/x-python", - "name": "python", - "nbconvert_exporter": "python", - "pygments_lexer": "ipython2", - "version": "2.7.15rc1" - } - }, - "nbformat": 4, - "nbformat_minor": 2 -} diff --git a/notebooks/videos/analytic.ogv b/notebooks/videos/analytic.ogv deleted file mode 100644 index 81a0a9296ca8561fdbf48fadb02fafe8dff39b62..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 303949 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�_;q^(rdCcw#+Fdw`*#x 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̑p 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�b27jMA6!Lp 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 diff --git a/setup.py.in b/setup.py.in index c00757c87..512876d17 100644 --- a/setup.py.in +++ b/setup.py.in @@ -18,12 +18,6 @@ import sys sys.path.append('@CMAKE_BINARY_DIR@/') import sort_f90 -# --- Check if c++ interface is enabled --- -enable_cpp = "@USE_CXX@" -if enable_cpp: - swig_executable = find_executable("@SWIG_EXECUTABLE@") - - def parseCMakeVar(var, sep=';'): """ Post-process cmake list-like variables. @@ -162,79 +156,6 @@ def create_fortran_extension(name, pyf_file=None, src_dirs=None, sources=None, return ext_fort -def create_swig_extension(name, inc_dirs, src_dirs=None, sources=None): - """Create a python module from C++ files, using swig - - Parameters - ---------- - name: string - module name - inc_dirs: list - list of directories for includes (-I ...), absolute path - containing headers (.hpp) and swig files (.i) - sources: list, optional - all c++ files that must be taken into account - src_dirs: list, optional - all directories containing fortran sources (absolute path) - that must be taken into account. Warning: no recursive scan - in src_dirs. - - Notes - ----- - * either sources, src_dirs or inc_dirs is required but all - can be used simultaneously. - * only .cpp files are taken into account. - * main config file for swig is assumed to be - name.i in CMAKE_SOURCE_DIR/swig/ - - """ - swig_dir = os.path.join('@CMAKE_SOURCE_DIR@', 'swig') - swig_config_file = os.path.join(swig_dir, name + '.i') - - include_dirs = set(inc_dirs) - if sources is None: - sources = [] - assert (src_dirs is not None) or (inc_dirs is not None) - if(src_dirs is None): - assert(inc_dirs is not None) - for idir in inc_dirs: - for root, dirnames, filenames in os.walk(idir): - for filename in fnmatch.filter(filenames, '*.cpp'): - sources.append(os.path.join(root, filename)) - else: - for sdir in src_dirs: - sources += glob.glob(os.path.join(sdir, '*.cpp')) - - sources.insert(0, swig_config_file) - include_dirs = list(include_dirs) - - name = 'hysop._' + name - swig_opts = ['-I' + swig_dir, - '-O', '-Wextra', '-Werror', - '-c++', '-extranative', '-safecstrings'] - - extern_includes = parseCMakeVar("@CXX_EXT_INCLUDES@") - for exti in extern_includes: - include_dirs.append(exti) - - libraries = parseCMakeVar("@CXX_EXT_LIBS@") - library_dirs = parseCMakeVar("@CXX_EXT_LIB_DIRS@") - extra_compile_args = parseCMakeVar("@CXX_FLAGS@", sep=' ') - extra_link_args = parseCMakeVar("@CXX_LINKER_FLAGS@", sep=' ') - define_macros = parseCMakeDefines("@CXX_EXTRA_DEFINES@") - swig_ext = Extension(name, sources=sources, language='c++', - swig_opts=swig_opts, - include_dirs=include_dirs, - library_dirs=library_dirs, - libraries=libraries, - define_macros=define_macros, - runtime_library_dirs=library_dirs, - extra_compile_args=extra_compile_args, - extra_link_args=extra_link_args) - - return swig_ext - - # ------------ Set list of packages required to build the module ------------- # List of modules (directories) to be included with_test = "@WITH_TESTS@" == "ON" @@ -324,28 +245,10 @@ if enable_fortran == "ON": for ex in ext: ext_modules.append(ext[ex]) -# --- C++ files and swig interface -- - -if enable_cpp == "ON": - # path to .i files - swig_include_dirs = [os.path.join('@CMAKE_SOURCE_DIR@','swig')] - - cpp_include_dirs = ['src/fftw','src/hysop++/src'] - for d in cpp_include_dirs: - swig_include_dirs.append(os.path.join('@CMAKE_SOURCE_DIR@', d)) - - ext = {} - cpp2hysop = "@CPP_2_HYSOP@" - ext[cpp2hysop] = create_swig_extension(name=cpp2hysop, - inc_dirs=swig_include_dirs) - for ex in ext: - ext_modules.append(ext[ex]) - data_files = [] descr = 'Hybrid Computation with Particles.' authors = 'G.H Cottet, J.M Etancelin, J.B Keck, C.Mimeau, F.Pérignon, C. Picard' -# authors = 'HySoP development team' config = Configuration( name='@PACKAGE_NAME@', version='@HYSOP_VERSION@', diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt index a3d17a69c..45641959b 100644 --- a/src/CMakeLists.txt +++ b/src/CMakeLists.txt @@ -48,8 +48,8 @@ set(${HYSOP_LIBRARY_NAME}_HDRS ${HDRS_FILES}) # ============= Generates HySoPConfig.hpp ============= # The file HYSOP_LIBRARY_NAME_defines.hpp will be generated from config.hpp.cmake; -if(EXISTS ${CMAKE_SOURCE_DIR}/config.hpp.cmake) - configure_file(${CMAKE_SOURCE_DIR}/config.hpp.cmake ${HYSOP_LIBRARY_NAME}_defines.hpp) +if(EXISTS ${CMAKE_SOURCE_DIR}/cmake/config.hpp.cmake) + configure_file(${CMAKE_SOURCE_DIR}/cmake/config.hpp.cmake ${HYSOP_LIBRARY_NAME}_defines.hpp) include_directories(${CMAKE_BINARY_DIR}) endif() @@ -67,34 +67,3 @@ include_directories(${HYSOP_INCLUDE_DIRECTORIES}) add_library(${HYSOP_LIBRARY_NAME} STATIC ${${HYSOP_LIBRARY_NAME}_SRCS}) target_link_libraries(${HYSOP_LIBRARY_NAME} PRIVATE ${HYSOP_LINK_LIBRARIES}) - -#install(TARGETS ${HYSOP_LIBRARY_NAME} -# LIBRARY DESTINATION ${HYSOP_PYTHON_INSTALL_DIR}/${PACKAGE_NAME}) - -# ============= Create an executable linked with libhysop ============= -# This part is optional and only useful to test libhysop in a -# way that does not depends on python. -# At the time it only includes fftw tests. -if(WITH_FORTRAN_TESTS) - # if(WITH_FFTW) - # # Set the name of a executable file that will be linked with libHYSOP_LIBRARY_NAME. - # # Useful to test libhysop in a way that does not depend on python. - # set(EXE_NAME ${HYSOP_LIBRARY_NAME}Run) - # # A main file to create an executable (test purpose) - # # Any files in these dirs will be used to create HySoP exec (linked with libhysop) - # set(${EXE_NAME}_SRCDIRS main) - # # Source and header files list, to generate a working executable based on libhysop. - # get_sources("${${EXE_NAME}_SRCDIRS}") - # get_headers("${${EXE_NAME}_SRCDIRS}") - # set(${EXE_NAME}_SRCS ${SOURCES_FILES}) - # set(${EXE_NAME}_HDRS ${HDRS_FILES}) - # list(APPEND ${EXE_NAME}_SRC ${${EXE_NAME}_HDRS}) - # include_directories(${${EXE_NAME}_HDRS}) - # add_executable(${EXE_NAME} ${${EXE_NAME}_SRCS}) - # add_dependencies(${EXE_NAME} ${HYSOP_LIBRARY_NAME}) - - # # libs to link with EXE_NAME - # target_link_libraries(${EXE_NAME} ${HYSOP_LIBRARY_NAME}) - # target_link_libraries(${EXE_NAME} ${HYSOP_LINK_LIBRARIES}) - # endif() -endif() diff --git a/swig/cpp2hysop.i b/swig/cpp2hysop.i deleted file mode 100644 index 7b1e2deb2..000000000 --- a/swig/cpp2hysop.i +++ /dev/null @@ -1,7 +0,0 @@ -// -*- C++ -*- -%module cpp2hysop - -%include start.i - -%include hysop++/hysop++.i - diff --git a/swig/hysop++/domain.i b/swig/hysop++/domain.i deleted file mode 100644 index 8e996563f..000000000 --- a/swig/hysop++/domain.i +++ /dev/null @@ -1,38 +0,0 @@ -%module domain - -// -*- C++ -*- -%{ - #include "domain/boundary.h" - #include "domain/domainConfiguration.h" -%} - -/* domain boundary */ -%ignore hysop::domain::operator<<; -%include "domain/boundary.h" - - -/* domain configuration */ -%ignore hysop::domain::operator<<; -%ignore hysop::domain::DomainConfiguration::operator[]; -%include "domain/domainConfiguration.h" - -%define INSTANTIATE_DOMAIN_CONFIG_IMPL(CLASS_NAME,CLASS_TEMPLATE) - %template(CLASS_NAME) CLASS_TEMPLATE; - %extend CLASS_TEMPLATE { - CLASS_TEMPLATE::BoundaryPair __get_item__(unsigned int k) const { - return $self->operator[](k); - } - const char* __str__() const { - std::stringstream ss; - ss << *($self); - return ss.str().c_str(); - } - } -%enddef - -%define INSTANTIATE_DOMAIN_CONFIG(INT) - INSTANTIATE_DOMAIN_CONFIG_IMPL(DomainConfiguration ## INT ## D, hysop::domain::DomainConfiguration<INT>) -%enddef - -%formacro(INSTANTIATE_DOMAIN_CONFIG, INSTANTIATED_DIMENSIONS) - diff --git a/swig/hysop++/fft.i b/swig/hysop++/fft.i deleted file mode 100644 index dd62b7686..000000000 --- a/swig/hysop++/fft.i +++ /dev/null @@ -1,94 +0,0 @@ - -%module fft - -// -*- C++ -*- -%{ - #include "fftw3.h" - #include "fft/fftw3.h" - #include "fft/extension.h" - #include "fft/transform.h" - #include "fft/fftDomainConfiguration.h" -%} - -/* fftw3.h */ -#if !defined(FFTW_HAS_FFTW3F_THREADS) || !defined(FFTW_HAS_FFTW3F_OMP) - %ignore fftwf_init_threads(); - %ignore fftwf_plan_with_nthreads(int); - %ignore fftwf_make_planner_thread_safe(); - %ignore fftwf_cleanup_threads(); -#endif - -#if !defined(FFTW_HAS_FFTW3D_THREADS) || !defined(FFTW_HAS_FFTW3D_OMP) - %ignore fftw_init_threads(); - %ignore fftw_plan_with_nthreads(int); - %ignore fftw_make_planner_thread_safe(); - %ignore fftw_cleanup_threads(); -#endif - -#if !defined(FFTW_HAS_FFTW3L_THREADS) || !defined(FFTW_HAS_FFTW3L_OMP) - %ignore fftwl_init_threads(); - %ignore fftwl_plan_with_nthreads(int); - %ignore fftwl_make_planner_thread_safe(); - %ignore fftwl_cleanup_threads(); -#endif - -#if !defined(FFTW_HAS_FFTW3Q_THREADS) || !defined(FFTW_HAS_FFTW3Q_OMP) - %ignore fftwq_init_threads(); - %ignore fftwq_plan_with_nthreads(int); - %ignore fftwq_make_planner_thread_safe(); - %ignore fftwq_cleanup_threads(); -#endif - -%rename(is_) fftw_iodim_do_not_use_me::is; -%rename(is_) fftw_iodim64_do_not_use_me::is; -%include "fftw3.h" - -/* fftw3 c++ wrappers */ -%include "fft/fftw3.h" -%template(Fftw3f) hysop::fft::Fftw3<float>; -%template(Fftw3d) hysop::fft::Fftw3<double>; -%template(Fftw3l) hysop::fft::Fftw3<long double>; -#ifdef HAS_QUADMATHS - %template(Fftw3q) hysop::fft::Fftw3<__float128>; -#endif - -/* fft transforms */ -%ignore hysop::fft::operator<<; -%include "fft/transform.h" -%extend hysop::fft::Transform { - const char* __str__() const { - return $self->toString().c_str(); - } -} - - -/* fft extensions */ -%ignore hysop::fft::operator<<; -%include "fft/extension.h" - - -/* fft domain configuration */ -%ignore hysop::fft::operator<<; -%ignore hysop::fft::FftDomainConfiguration::operator[]; -%include "fft/fftDomainConfiguration.h" - -%define INSTANTIATE_FFT_DOMAIN_CONFIG_IMPL(CLASS_NAME,CLASS_TEMPLATE...) - %template(CLASS_NAME) CLASS_TEMPLATE; - %extend CLASS_TEMPLATE { - CLASS_TEMPLATE::ExtensionPair __get_item__(unsigned int k) const { - return $self->operator[](k); - } - const char* __str__() const { - std::stringstream ss; - ss << *($self); - return ss.str().c_str(); - } - } -%enddef - -%define INSTANTIATE_FFT_DOMAIN_CONFIG(INT) - INSTANTIATE_FFT_DOMAIN_CONFIG_IMPL(FftDomainConfiguration ## INT ## D, hysop::fft::FftDomainConfiguration<INT>) -%enddef - -%formacro(INSTANTIATE_FFT_DOMAIN_CONFIG, INSTANTIATED_DIMENSIONS) - diff --git a/swig/hysop++/hysop++.i b/swig/hysop++/hysop++.i deleted file mode 100644 index a681efa69..000000000 --- a/swig/hysop++/hysop++.i +++ /dev/null @@ -1,5 +0,0 @@ - -/* hysop++ */ -%include "utils.i" -%include "domain.i" -%include "fft.i" diff --git a/swig/hysop++/utils.i b/swig/hysop++/utils.i deleted file mode 100644 index 541179ea9..000000000 --- a/swig/hysop++/utils.i +++ /dev/null @@ -1,29 +0,0 @@ - -%module utils - -// -*- C++ -*- -%{ - #include "utils/types.h" - #include "utils/constants.h" -%} - -/* types */ -%warnfilter(342) hysop::multi_array; -%warnfilter(342) hysop::multi_array_view; -%warnfilter(342) hysop::const_multi_array_view; -%warnfilter(342) hysop::multi_array_ref; -%warnfilter(342) hysop::const_multi_array_ref; -%ignore hysop::multi_array; -%ignore hysop::multi_array_view; -%ignore hysop::const_multi_array_view; -%ignore hysop::multi_array_ref; -%ignore hysop::const_multi_array_ref; -%include "utils/types.h" - -%define INSTANTIATE_SHAPE(INT) %template(Shape ## INT ## D) hysop::Shape<INT>; %enddef -%define INSTANTIATE_OFFSET(INT) %template(Offset ## INT ## D) hysop::Offset<INT>; %enddef -%formacro(INSTANTIATE_SHAPE, INSTANTIATED_DIMENSIONS) -%formacro(INSTANTIATE_OFFSET, INSTANTIATED_DIMENSIONS) - -/* constants */ -%include "utils/constants.h" diff --git a/swig/numpy.i b/swig/numpy.i deleted file mode 100644 index d3eb0c218..000000000 --- a/swig/numpy.i +++ /dev/null @@ -1,3085 +0,0 @@ -/* -*- C -*- (not really, but good for syntax highlighting) */ -#ifdef SWIGPYTHON - -%{ -#ifndef SWIG_FILE_WITH_INIT -#define NO_IMPORT_ARRAY -#endif -#include "stdio.h" -#define NPY_NO_DEPRECATED_API NPY_1_7_API_VERSION -#include <numpy/arrayobject.h> -%} - -/**********************************************************************/ - -%fragment("NumPy_Backward_Compatibility", "header") -{ -%#if NPY_API_VERSION < 0x00000007 -%#define NPY_ARRAY_DEFAULT NPY_DEFAULT -%#define NPY_ARRAY_FARRAY NPY_FARRAY -%#define NPY_ARRAY_F_CONTIGUOUS NPY_F_CONTIGUOUS -%#endif -} - -/**********************************************************************/ - -/* The following code originally appeared in - * enthought/kiva/agg/src/numeric.i written by Eric Jones. It was - * translated from C++ to C by John Hunter. Bill Spotz has modified - * it to fix some minor bugs, upgrade from Numeric to numpy (all - * versions), add some comments and functionality, and convert from - * direct code insertion to SWIG fragments. - */ - -%fragment("NumPy_Macros", "header") -{ -/* Macros to extract array attributes. - */ -%#if NPY_API_VERSION < 0x00000007 -%#define is_array(a) ((a) && PyArray_Check((PyArrayObject*)a)) -%#define array_type(a) (int)(PyArray_TYPE((PyArrayObject*)a)) -%#define array_numdims(a) (((PyArrayObject*)a)->nd) -%#define array_dimensions(a) (((PyArrayObject*)a)->dimensions) -%#define array_size(a,i) (((PyArrayObject*)a)->dimensions[i]) -%#define array_strides(a) (((PyArrayObject*)a)->strides) -%#define array_stride(a,i) (((PyArrayObject*)a)->strides[i]) -%#define array_data(a) (((PyArrayObject*)a)->data) -%#define array_descr(a) (((PyArrayObject*)a)->descr) -%#define array_flags(a) (((PyArrayObject*)a)->flags) -%#define array_enableflags(a,f) (((PyArrayObject*)a)->flags) = f -%#else -%#define is_array(a) ((a) && PyArray_Check(a)) -%#define array_type(a) PyArray_TYPE((PyArrayObject*)a) -%#define array_numdims(a) PyArray_NDIM((PyArrayObject*)a) -%#define array_dimensions(a) PyArray_DIMS((PyArrayObject*)a) -%#define array_strides(a) PyArray_STRIDES((PyArrayObject*)a) -%#define array_stride(a,i) PyArray_STRIDE((PyArrayObject*)a,i) -%#define array_size(a,i) PyArray_DIM((PyArrayObject*)a,i) -%#define array_data(a) PyArray_DATA((PyArrayObject*)a) -%#define array_descr(a) PyArray_DESCR((PyArrayObject*)a) -%#define array_flags(a) PyArray_FLAGS((PyArrayObject*)a) -%#define array_enableflags(a,f) PyArray_ENABLEFLAGS((PyArrayObject*)a,f) -%#endif -%#define array_is_contiguous(a) (PyArray_ISCONTIGUOUS((PyArrayObject*)a)) -%#define array_is_native(a) (PyArray_ISNOTSWAPPED((PyArrayObject*)a)) -%#define array_is_fortran(a) (PyArray_ISFORTRAN((PyArrayObject*)a)) -} - -/**********************************************************************/ - -%fragment("NumPy_Utilities", - "header") -{ - /* Given a PyObject, return a string describing its type. - */ - const char* pytype_string(PyObject* py_obj) - { - if (py_obj == NULL ) return "C NULL value"; - if (py_obj == Py_None ) return "Python None" ; - if (PyCallable_Check(py_obj)) return "callable" ; - if (PyString_Check( py_obj)) return "string" ; - if (PyInt_Check( py_obj)) return "int" ; - if (PyFloat_Check( py_obj)) return "float" ; - if (PyDict_Check( py_obj)) return "dict" ; - if (PyList_Check( py_obj)) return "list" ; - if (PyTuple_Check( py_obj)) return "tuple" ; -%#if PY_MAJOR_VERSION < 3 - if (PyFile_Check( py_obj)) return "file" ; - if (PyModule_Check( py_obj)) return "module" ; - if (PyInstance_Check(py_obj)) return "instance" ; -%#endif - - return "unkown type"; - } - - /* Given a NumPy typecode, return a string describing the type. - */ - const char* typecode_string(int typecode) - { - static const char* type_names[25] = {"bool", - "byte", - "unsigned byte", - "short", - "unsigned short", - "int", - "unsigned int", - "long", - "unsigned long", - "long long", - "unsigned long long", - "float", - "double", - "long double", - "complex float", - "complex double", - "complex long double", - "object", - "string", - "unicode", - "void", - "ntypes", - "notype", - "char", - "unknown"}; - return typecode < 24 ? type_names[typecode] : type_names[24]; - } - - /* Make sure input has correct numpy type. This now just calls - PyArray_EquivTypenums(). - */ - int type_match(int actual_type, - int desired_type) - { - return PyArray_EquivTypenums(actual_type, desired_type); - } - -%#ifdef SWIGPY_USE_CAPSULE - void free_cap(PyObject * cap) - { - void* array = (void*) PyCapsule_GetPointer(cap,SWIGPY_CAPSULE_NAME); - if (array != NULL) free(array); - } -%#endif - - -} - -/**********************************************************************/ - -%fragment("NumPy_Object_to_Array", - "header", - fragment="NumPy_Backward_Compatibility", - fragment="NumPy_Macros", - fragment="NumPy_Utilities") -{ - /* Given a PyObject pointer, cast it to a PyArrayObject pointer if - * legal. If not, set the python error string appropriately and - * return NULL. - */ - PyArrayObject* obj_to_array_no_conversion(PyObject* input, - int typecode) - { - PyArrayObject* ary = NULL; - if (is_array(input) && (typecode == NPY_NOTYPE || - PyArray_EquivTypenums(array_type(input), typecode))) - { - ary = (PyArrayObject*) input; - } - else if is_array(input) - { - const char* desired_type = typecode_string(typecode); - const char* actual_type = typecode_string(array_type(input)); - PyErr_Format(PyExc_TypeError, - "Array of type '%s' required. Array of type '%s' given", - desired_type, actual_type); - ary = NULL; - } - else - { - const char* desired_type = typecode_string(typecode); - const char* actual_type = pytype_string(input); - PyErr_Format(PyExc_TypeError, - "Array of type '%s' required. A '%s' was given", - desired_type, - actual_type); - ary = NULL; - } - return ary; - } - - /* Convert the given PyObject to a NumPy array with the given - * typecode. On success, return a valid PyArrayObject* with the - * correct type. On failure, the python error string will be set and - * the routine returns NULL. - */ - PyArrayObject* obj_to_array_allow_conversion(PyObject* input, - int typecode, - int* is_new_object) - { - PyArrayObject* ary = NULL; - PyObject* py_obj; - if (is_array(input) && (typecode == NPY_NOTYPE || - PyArray_EquivTypenums(array_type(input),typecode))) - { - ary = (PyArrayObject*) input; - *is_new_object = 0; - } - else - { - py_obj = PyArray_FROMANY(input, typecode, 0, 0, NPY_ARRAY_DEFAULT); - /* If NULL, PyArray_FromObject will have set python error value.*/ - ary = (PyArrayObject*) py_obj; - *is_new_object = 1; - } - return ary; - } - - /* Given a PyArrayObject, check to see if it is contiguous. If so, - * return the input pointer and flag it as not a new object. If it is - * not contiguous, create a new PyArrayObject using the original data, - * flag it as a new object and return the pointer. - */ - PyArrayObject* make_contiguous(PyArrayObject* ary, - int* is_new_object, - int min_dims, - int max_dims) - { - PyArrayObject* result; - if (array_is_contiguous(ary)) - { - result = ary; - *is_new_object = 0; - } - else - { - result = (PyArrayObject*) PyArray_ContiguousFromObject((PyObject*)ary, - array_type(ary), - min_dims, - max_dims); - *is_new_object = 1; - } - return result; - } - - /* Given a PyArrayObject, check to see if it is Fortran-contiguous. - * If so, return the input pointer, but do not flag it as not a new - * object. If it is not Fortran-contiguous, create a new - * PyArrayObject using the original data, flag it as a new object - * and return the pointer. - */ - PyArrayObject* make_fortran(PyArrayObject* ary, - int* is_new_object) - { - PyArrayObject* result; - if (array_is_fortran(ary)) - { - result = ary; - *is_new_object = 0; - } - else - { - Py_INCREF(array_descr(ary)); - result = (PyArrayObject*) PyArray_FromArray(ary, - array_descr(ary), - NPY_ARRAY_F_CONTIGUOUS); - *is_new_object = 1; - } - return result; - } - - /* Convert a given PyObject to a contiguous PyArrayObject of the - * specified type. If the input object is not a contiguous - * PyArrayObject, a new one will be created and the new object flag - * will be set. - */ - PyArrayObject* obj_to_array_contiguous_allow_conversion(PyObject* input, - int typecode, - int* is_new_object) - { - int is_new1 = 0; - int is_new2 = 0; - PyArrayObject* ary2; - PyArrayObject* ary1 = obj_to_array_allow_conversion(input, - typecode, - &is_new1); - if (ary1) - { - ary2 = make_contiguous(ary1, &is_new2, 0, 0); - if ( is_new1 && is_new2) - { - Py_DECREF(ary1); - } - ary1 = ary2; - } - *is_new_object = is_new1 || is_new2; - return ary1; - } - - /* Convert a given PyObject to a Fortran-ordered PyArrayObject of the - * specified type. If the input object is not a Fortran-ordered - * PyArrayObject, a new one will be created and the new object flag - * will be set. - */ - PyArrayObject* obj_to_array_fortran_allow_conversion(PyObject* input, - int typecode, - int* is_new_object) - { - int is_new1 = 0; - int is_new2 = 0; - PyArrayObject* ary2; - PyArrayObject* ary1 = obj_to_array_allow_conversion(input, - typecode, - &is_new1); - if (ary1) - { - ary2 = make_fortran(ary1, &is_new2); - if (is_new1 && is_new2) - { - Py_DECREF(ary1); - } - ary1 = ary2; - } - *is_new_object = is_new1 || is_new2; - return ary1; - } -} /* end fragment */ - -/**********************************************************************/ - -%fragment("NumPy_Array_Requirements", - "header", - fragment="NumPy_Backward_Compatibility", - fragment="NumPy_Macros") -{ - /* Test whether a python object is contiguous. If array is - * contiguous, return 1. Otherwise, set the python error string and - * return 0. - */ - int require_contiguous(PyArrayObject* ary) - { - int contiguous = 1; - if (!array_is_contiguous(ary)) - { - PyErr_SetString(PyExc_TypeError, - "Array must be contiguous. A non-contiguous array was given"); - contiguous = 0; - } - return contiguous; - } - - /* Require that a numpy array is not byte-swapped. If the array is - * not byte-swapped, return 1. Otherwise, set the python error string - * and return 0. - */ - int require_native(PyArrayObject* ary) - { - int native = 1; - if (!array_is_native(ary)) - { - PyErr_SetString(PyExc_TypeError, - "Array must have native byteorder. " - "A byte-swapped array was given"); - native = 0; - } - return native; - } - - /* Require the given PyArrayObject to have a specified number of - * dimensions. If the array has the specified number of dimensions, - * return 1. Otherwise, set the python error string and return 0. - */ - int require_dimensions(PyArrayObject* ary, - int exact_dimensions) - { - int success = 1; - if (array_numdims(ary) != exact_dimensions) - { - PyErr_Format(PyExc_TypeError, - "Array must have %d dimensions. Given array has %d dimensions", - exact_dimensions, - array_numdims(ary)); - success = 0; - } - return success; - } - - /* Require the given PyArrayObject to have one of a list of specified - * number of dimensions. If the array has one of the specified number - * of dimensions, return 1. Otherwise, set the python error string - * and return 0. - */ - int require_dimensions_n(PyArrayObject* ary, - int* exact_dimensions, - int n) - { - int success = 0; - int i = 0; - char dims_str[255] = ""; - char s[255]; - for (i = 0; i < n && !success; i++) - { - if (array_numdims(ary) == exact_dimensions[i]) - { - success = 1; - } - } - if (!success) - { - for (i = 0; i < n-1; i++) - { - sprintf(s, "%d, ", exact_dimensions[i]); - strcat(dims_str,s); - } - sprintf(s, " or %d", exact_dimensions[n-1]); - strcat(dims_str,s); - PyErr_Format(PyExc_TypeError, - "Array must have %s dimensions. Given array has %d dimensions", - dims_str, - array_numdims(ary)); - } - return success; - } - - /* Require the given PyArrayObject to have a specified shape. If the - * array has the specified shape, return 1. Otherwise, set the python - * error string and return 0. - */ - int require_size(PyArrayObject* ary, - npy_intp* size, - int n) - { - int i = 0; - int success = 1; - int len = 0; - char desired_dims[255] = "["; - char s[255]; - char actual_dims[255] = "["; - for(i=0; i < n;i++) - { - if (size[i] != -1 && size[i] != array_size(ary,i)) - { - success = 0; - } - } - if (!success) - { - for (i = 0; i < n; i++) - { - if (size[i] == -1) - { - sprintf(s, "*,"); - } - else - { - sprintf(s, "%ld,", (long int)size[i]); - } - strcat(desired_dims,s); - } - len = strlen(desired_dims); - desired_dims[len-1] = ']'; - for (i = 0; i < n; i++) - { - sprintf(s, "%ld,", (long int)array_size(ary,i)); - strcat(actual_dims,s); - } - len = strlen(actual_dims); - actual_dims[len-1] = ']'; - PyErr_Format(PyExc_TypeError, - "Array must have shape of %s. Given array has shape of %s", - desired_dims, - actual_dims); - } - return success; - } - - /* Require the given PyArrayObject to to be Fortran ordered. If the - * the PyArrayObject is already Fortran ordered, do nothing. Else, - * set the Fortran ordering flag and recompute the strides. - */ - int require_fortran(PyArrayObject* ary) - { - int success = 1; - int nd = array_numdims(ary); - int i = 0; - npy_intp * strides = array_strides(ary); - if (array_is_fortran(ary)) return success; - /* Set the Fortran ordered flag */ - array_enableflags(ary,NPY_ARRAY_FARRAY); - /* Recompute the strides */ - strides[0] = strides[nd-1]; - for (i=1; i < nd; ++i) - strides[i] = strides[i-1] * array_size(ary,i-1); - return success; - } -} - -/* Combine all NumPy fragments into one for convenience */ -%fragment("NumPy_Fragments", - "header", - fragment="NumPy_Backward_Compatibility", - fragment="NumPy_Macros", - fragment="NumPy_Utilities", - fragment="NumPy_Object_to_Array", - fragment="NumPy_Array_Requirements") -{ -} - -/* End John Hunter translation (with modifications by Bill Spotz) - */ - -/* %numpy_typemaps() macro - * - * This macro defines a family of 74 typemaps that allow C arguments - * of the form - * - * 1. (DATA_TYPE IN_ARRAY1[ANY]) - * 2. (DATA_TYPE* IN_ARRAY1, DIM_TYPE DIM1) - * 3. (DIM_TYPE DIM1, DATA_TYPE* IN_ARRAY1) - * - * 4. (DATA_TYPE IN_ARRAY2[ANY][ANY]) - * 5. (DATA_TYPE* IN_ARRAY2, DIM_TYPE DIM1, DIM_TYPE DIM2) - * 6. (DIM_TYPE DIM1, DIM_TYPE DIM2, DATA_TYPE* IN_ARRAY2) - * 7. (DATA_TYPE* IN_FARRAY2, DIM_TYPE DIM1, DIM_TYPE DIM2) - * 8. (DIM_TYPE DIM1, DIM_TYPE DIM2, DATA_TYPE* IN_FARRAY2) - * - * 9. (DATA_TYPE IN_ARRAY3[ANY][ANY][ANY]) - * 10. (DATA_TYPE* IN_ARRAY3, DIM_TYPE DIM1, DIM_TYPE DIM2, DIM_TYPE DIM3) - * 11. (DATA_TYPE** IN_ARRAY3, DIM_TYPE DIM1, DIM_TYPE DIM2, DIM_TYPE DIM3) - * 12. (DIM_TYPE DIM1, DIM_TYPE DIM2, DIM_TYPE DIM3, DATA_TYPE* IN_ARRAY3) - * 13. (DATA_TYPE* IN_FARRAY3, DIM_TYPE DIM1, DIM_TYPE DIM2, DIM_TYPE DIM3) - * 14. (DIM_TYPE DIM1, DIM_TYPE DIM2, DIM_TYPE DIM3, DATA_TYPE* IN_FARRAY3) - * - * 15. (DATA_TYPE IN_ARRAY4[ANY][ANY][ANY][ANY]) - * 16. (DATA_TYPE* IN_ARRAY4, DIM_TYPE DIM1, DIM_TYPE DIM2, DIM_TYPE DIM3, DIM_TYPE DIM4) - * 17. (DATA_TYPE** IN_ARRAY4, DIM_TYPE DIM1, DIM_TYPE DIM2, DIM_TYPE DIM3, DIM_TYPE DIM4) - * 18. (DIM_TYPE DIM1, DIM_TYPE DIM2, DIM_TYPE DIM3, , DIM_TYPE DIM4, DATA_TYPE* IN_ARRAY4) - * 19. (DATA_TYPE* IN_FARRAY4, DIM_TYPE DIM1, DIM_TYPE DIM2, DIM_TYPE DIM3, DIM_TYPE DIM4) - * 20. (DIM_TYPE DIM1, DIM_TYPE DIM2, DIM_TYPE DIM3, DIM_TYPE DIM4, DATA_TYPE* IN_FARRAY4) - * - * 21. (DATA_TYPE INPLACE_ARRAY1[ANY]) - * 22. (DATA_TYPE* INPLACE_ARRAY1, DIM_TYPE DIM1) - * 23. (DIM_TYPE DIM1, DATA_TYPE* INPLACE_ARRAY1) - * - * 24. (DATA_TYPE INPLACE_ARRAY2[ANY][ANY]) - * 25. (DATA_TYPE* INPLACE_ARRAY2, DIM_TYPE DIM1, DIM_TYPE DIM2) - * 26. (DIM_TYPE DIM1, DIM_TYPE DIM2, DATA_TYPE* INPLACE_ARRAY2) - * 27. (DATA_TYPE* INPLACE_FARRAY2, DIM_TYPE DIM1, DIM_TYPE DIM2) - * 28. (DIM_TYPE DIM1, DIM_TYPE DIM2, DATA_TYPE* INPLACE_FARRAY2) - * - * 29. (DATA_TYPE INPLACE_ARRAY3[ANY][ANY][ANY]) - * 30. (DATA_TYPE* INPLACE_ARRAY3, DIM_TYPE DIM1, DIM_TYPE DIM2, DIM_TYPE DIM3) - * 31. (DATA_TYPE** INPLACE_ARRAY3, DIM_TYPE DIM1, DIM_TYPE DIM2, DIM_TYPE DIM3) - * 32. (DIM_TYPE DIM1, DIM_TYPE DIM2, DIM_TYPE DIM3, DATA_TYPE* INPLACE_ARRAY3) - * 33. (DATA_TYPE* INPLACE_FARRAY3, DIM_TYPE DIM1, DIM_TYPE DIM2, DIM_TYPE DIM3) - * 34. (DIM_TYPE DIM1, DIM_TYPE DIM2, DIM_TYPE DIM3, DATA_TYPE* INPLACE_FARRAY3) - * - * 35. (DATA_TYPE INPLACE_ARRAY4[ANY][ANY][ANY][ANY]) - * 36. (DATA_TYPE* INPLACE_ARRAY4, DIM_TYPE DIM1, DIM_TYPE DIM2, DIM_TYPE DIM3, DIM_TYPE DIM4) - * 37. (DATA_TYPE** INPLACE_ARRAY4, DIM_TYPE DIM1, DIM_TYPE DIM2, DIM_TYPE DIM3, DIM_TYPE DIM4) - * 38. (DIM_TYPE DIM1, DIM_TYPE DIM2, DIM_TYPE DIM3, DIM_TYPE DIM4, DATA_TYPE* INPLACE_ARRAY4) - * 39. (DATA_TYPE* INPLACE_FARRAY4, DIM_TYPE DIM1, DIM_TYPE DIM2, DIM_TYPE DIM3, DIM_TYPE DIM4) - * 40. (DIM_TYPE DIM1, DIM_TYPE DIM2, DIM_TYPE DIM3, DIM_TYPE DIM4, DATA_TYPE* INPLACE_FARRAY4) - * - * 41. (DATA_TYPE ARGOUT_ARRAY1[ANY]) - * 42. (DATA_TYPE* ARGOUT_ARRAY1, DIM_TYPE DIM1) - * 43. (DIM_TYPE DIM1, DATA_TYPE* ARGOUT_ARRAY1) - * - * 44. (DATA_TYPE ARGOUT_ARRAY2[ANY][ANY]) - * - * 45. (DATA_TYPE ARGOUT_ARRAY3[ANY][ANY][ANY]) - * - * 46. (DATA_TYPE ARGOUT_ARRAY4[ANY][ANY][ANY][ANY]) - * - * 47. (DATA_TYPE** ARGOUTVIEW_ARRAY1, DIM_TYPE* DIM1) - * 48. (DIM_TYPE* DIM1, DATA_TYPE** ARGOUTVIEW_ARRAY1) - * - * 49. (DATA_TYPE** ARGOUTVIEW_ARRAY2, DIM_TYPE* DIM1, DIM_TYPE* DIM2) - * 50. (DIM_TYPE* DIM1, DIM_TYPE* DIM2, DATA_TYPE** ARGOUTVIEW_ARRAY2) - * 51. (DATA_TYPE** ARGOUTVIEW_FARRAY2, DIM_TYPE* DIM1, DIM_TYPE* DIM2) - * 52. (DIM_TYPE* DIM1, DIM_TYPE* DIM2, DATA_TYPE** ARGOUTVIEW_FARRAY2) - * - * 53. (DATA_TYPE** ARGOUTVIEW_ARRAY3, DIM_TYPE* DIM1, DIM_TYPE* DIM2, DIM_TYPE* DIM3) - * 54. (DIM_TYPE* DIM1, DIM_TYPE* DIM2, DIM_TYPE* DIM3, DATA_TYPE** ARGOUTVIEW_ARRAY3) - * 55. (DATA_TYPE** ARGOUTVIEW_FARRAY3, DIM_TYPE* DIM1, DIM_TYPE* DIM2, DIM_TYPE* DIM3) - * 56. (DIM_TYPE* DIM1, DIM_TYPE* DIM2, DIM_TYPE* DIM3, DATA_TYPE** ARGOUTVIEW_FARRAY3) - * - * 57. (DATA_TYPE** ARGOUTVIEW_ARRAY4, DIM_TYPE* DIM1, DIM_TYPE* DIM2, DIM_TYPE* DIM3, DIM_TYPE* DIM4) - * 58. (DIM_TYPE* DIM1, DIM_TYPE* DIM2, DIM_TYPE* DIM3, DIM_TYPE* DIM4, DATA_TYPE** ARGOUTVIEW_ARRAY4) - * 59. (DATA_TYPE** ARGOUTVIEW_FARRAY4, DIM_TYPE* DIM1, DIM_TYPE* DIM2, DIM_TYPE* DIM3, DIM_TYPE* DIM4) - * 60. (DIM_TYPE* DIM1, DIM_TYPE* DIM2, DIM_TYPE* DIM3, DIM_TYPE* DIM4, DATA_TYPE** ARGOUTVIEW_FARRAY4) - * - * 61. (DATA_TYPE** ARGOUTVIEWM_ARRAY1, DIM_TYPE* DIM1) - * 62. (DIM_TYPE* DIM1, DATA_TYPE** ARGOUTVIEWM_ARRAY1) - * - * 63. (DATA_TYPE** ARGOUTVIEWM_ARRAY2, DIM_TYPE* DIM1, DIM_TYPE* DIM2) - * 64. (DIM_TYPE* DIM1, DIM_TYPE* DIM2, DATA_TYPE** ARGOUTVIEWM_ARRAY2) - * 65. (DATA_TYPE** ARGOUTVIEWM_FARRAY2, DIM_TYPE* DIM1, DIM_TYPE* DIM2) - * 66. (DIM_TYPE* DIM1, DIM_TYPE* DIM2, DATA_TYPE** ARGOUTVIEWM_FARRAY2) - * - * 67. (DATA_TYPE** ARGOUTVIEWM_ARRAY3, DIM_TYPE* DIM1, DIM_TYPE* DIM2, DIM_TYPE* DIM3) - * 68. (DIM_TYPE* DIM1, DIM_TYPE* DIM2, DIM_TYPE* DIM3, DATA_TYPE** ARGOUTVIEWM_ARRAY3) - * 69. (DATA_TYPE** ARGOUTVIEWM_FARRAY3, DIM_TYPE* DIM1, DIM_TYPE* DIM2, DIM_TYPE* DIM3) - * 70. (DIM_TYPE* DIM1, DIM_TYPE* DIM2, DIM_TYPE* DIM3, DATA_TYPE** ARGOUTVIEWM_FARRAY3) - * - * 71. (DATA_TYPE** ARGOUTVIEWM_ARRAY4, DIM_TYPE* DIM1, DIM_TYPE* DIM2, DIM_TYPE* DIM3, DIM_TYPE* DIM4) - * 72. (DIM_TYPE* DIM1, DIM_TYPE* DIM2, DIM_TYPE* DIM3, DIM_TYPE* DIM4, DATA_TYPE** ARGOUTVIEWM_ARRAY4) - * 73. (DATA_TYPE** ARGOUTVIEWM_FARRAY4, DIM_TYPE* DIM1, DIM_TYPE* DIM2, DIM_TYPE* DIM3, DIM_TYPE* DIM4) - * 74. (DIM_TYPE* DIM1, DIM_TYPE* DIM2, DIM_TYPE* DIM3, DIM_TYPE* DIM4, DATA_TYPE** ARGOUTVIEWM_FARRAY4) - * - * where "DATA_TYPE" is any type supported by the NumPy module, and - * "DIM_TYPE" is any int-like type suitable for specifying dimensions. - * The difference between "ARRAY" typemaps and "FARRAY" typemaps is - * that the "FARRAY" typemaps expect Fortran ordering of - * multidimensional arrays. In python, the dimensions will not need - * to be specified (except for the "DATA_TYPE* ARGOUT_ARRAY1" - * typemaps). The IN_ARRAYs can be a numpy array or any sequence that - * can be converted to a numpy array of the specified type. The - * INPLACE_ARRAYs must be numpy arrays of the appropriate type. The - * ARGOUT_ARRAYs will be returned as new numpy arrays of the - * appropriate type. - * - * These typemaps can be applied to existing functions using the - * %apply directive. For example: - * - * %apply (double* IN_ARRAY1, int DIM1) {(double* series, int length)}; - * double prod(double* series, int length); - * - * %apply (int DIM1, int DIM2, double* INPLACE_ARRAY2) - * {(int rows, int cols, double* matrix )}; - * void floor(int rows, int cols, double* matrix, double f); - * - * %apply (double IN_ARRAY3[ANY][ANY][ANY]) - * {(double tensor[2][2][2] )}; - * %apply (double ARGOUT_ARRAY3[ANY][ANY][ANY]) - * {(double low[2][2][2] )}; - * %apply (double ARGOUT_ARRAY3[ANY][ANY][ANY]) - * {(double upp[2][2][2] )}; - * void luSplit(double tensor[2][2][2], - * double low[2][2][2], - * double upp[2][2][2] ); - * - * or directly with - * - * double prod(double* IN_ARRAY1, int DIM1); - * - * void floor(int DIM1, int DIM2, double* INPLACE_ARRAY2, double f); - * - * void luSplit(double IN_ARRAY3[ANY][ANY][ANY], - * double ARGOUT_ARRAY3[ANY][ANY][ANY], - * double ARGOUT_ARRAY3[ANY][ANY][ANY]); - */ - -%define %numpy_typemaps(DATA_TYPE, DATA_TYPECODE, DIM_TYPE) - -/************************/ -/* Input Array Typemaps */ -/************************/ - -/* Typemap suite for (DATA_TYPE IN_ARRAY1[ANY]) - */ -%typecheck(SWIG_TYPECHECK_DOUBLE_ARRAY, - fragment="NumPy_Macros") - (DATA_TYPE IN_ARRAY1[ANY]) -{ - $1 = is_array($input) || PySequence_Check($input); -} -%typemap(in, - fragment="NumPy_Fragments") - (DATA_TYPE IN_ARRAY1[ANY]) - (PyArrayObject* array=NULL, int is_new_object=0) -{ - npy_intp size[1] = { $1_dim0 }; - array = obj_to_array_contiguous_allow_conversion($input, - DATA_TYPECODE, - &is_new_object); - if (!array || !require_dimensions(array, 1) || - !require_size(array, size, 1)) SWIG_fail; - $1 = ($1_ltype) array_data(array); -} -%typemap(freearg) - (DATA_TYPE IN_ARRAY1[ANY]) -{ - if (is_new_object$argnum && array$argnum) - { Py_DECREF(array$argnum); } -} - -/* Typemap suite for (DATA_TYPE* IN_ARRAY1, DIM_TYPE DIM1) - */ -%typecheck(SWIG_TYPECHECK_DOUBLE_ARRAY, - fragment="NumPy_Macros") - (DATA_TYPE* IN_ARRAY1, DIM_TYPE DIM1) -{ - $1 = is_array($input) || PySequence_Check($input); -} -%typemap(in, - fragment="NumPy_Fragments") - (DATA_TYPE* IN_ARRAY1, DIM_TYPE DIM1) - (PyArrayObject* array=NULL, int is_new_object=0) -{ - npy_intp size[1] = { -1 }; - array = obj_to_array_contiguous_allow_conversion($input, - DATA_TYPECODE, - &is_new_object); - if (!array || !require_dimensions(array, 1) || - !require_size(array, size, 1)) SWIG_fail; - $1 = (DATA_TYPE*) array_data(array); - $2 = (DIM_TYPE) array_size(array,0); -} -%typemap(freearg) - (DATA_TYPE* IN_ARRAY1, DIM_TYPE DIM1) -{ - if (is_new_object$argnum && array$argnum) - { Py_DECREF(array$argnum); } -} - -/* Typemap suite for (DIM_TYPE DIM1, DATA_TYPE* IN_ARRAY1) - */ -%typecheck(SWIG_TYPECHECK_DOUBLE_ARRAY, - fragment="NumPy_Macros") - (DIM_TYPE DIM1, DATA_TYPE* IN_ARRAY1) -{ - $1 = is_array($input) || PySequence_Check($input); -} -%typemap(in, - fragment="NumPy_Fragments") - (DIM_TYPE DIM1, DATA_TYPE* IN_ARRAY1) - (PyArrayObject* array=NULL, int is_new_object=0) -{ - npy_intp size[1] = {-1}; - array = obj_to_array_contiguous_allow_conversion($input, - DATA_TYPECODE, - &is_new_object); - if (!array || !require_dimensions(array, 1) || - !require_size(array, size, 1)) SWIG_fail; - $1 = (DIM_TYPE) array_size(array,0); - $2 = (DATA_TYPE*) array_data(array); -} -%typemap(freearg) - (DIM_TYPE DIM1, DATA_TYPE* IN_ARRAY1) -{ - if (is_new_object$argnum && array$argnum) - { Py_DECREF(array$argnum); } -} - -/* Typemap suite for (DATA_TYPE IN_ARRAY2[ANY][ANY]) - */ -%typecheck(SWIG_TYPECHECK_DOUBLE_ARRAY, - fragment="NumPy_Macros") - (DATA_TYPE IN_ARRAY2[ANY][ANY]) -{ - $1 = is_array($input) || PySequence_Check($input); -} -%typemap(in, - fragment="NumPy_Fragments") - (DATA_TYPE IN_ARRAY2[ANY][ANY]) - (PyArrayObject* array=NULL, int is_new_object=0) -{ - npy_intp size[2] = { $1_dim0, $1_dim1 }; - array = obj_to_array_contiguous_allow_conversion($input, - DATA_TYPECODE, - &is_new_object); - if (!array || !require_dimensions(array, 2) || - !require_size(array, size, 2)) SWIG_fail; - $1 = ($1_ltype) array_data(array); -} -%typemap(freearg) - (DATA_TYPE IN_ARRAY2[ANY][ANY]) -{ - if (is_new_object$argnum && array$argnum) - { Py_DECREF(array$argnum); } -} - -/* Typemap suite for (DATA_TYPE* IN_ARRAY2, DIM_TYPE DIM1, DIM_TYPE DIM2) - */ -%typecheck(SWIG_TYPECHECK_DOUBLE_ARRAY, - fragment="NumPy_Macros") - (DATA_TYPE* IN_ARRAY2, DIM_TYPE DIM1, DIM_TYPE DIM2) -{ - $1 = is_array($input) || PySequence_Check($input); -} -%typemap(in, - fragment="NumPy_Fragments") - (DATA_TYPE* IN_ARRAY2, DIM_TYPE DIM1, DIM_TYPE DIM2) - (PyArrayObject* array=NULL, int is_new_object=0) -{ - npy_intp size[2] = { -1, -1 }; - array = obj_to_array_contiguous_allow_conversion($input, DATA_TYPECODE, - &is_new_object); - if (!array || !require_dimensions(array, 2) || - !require_size(array, size, 2)) SWIG_fail; - $1 = (DATA_TYPE*) array_data(array); - $2 = (DIM_TYPE) array_size(array,0); - $3 = (DIM_TYPE) array_size(array,1); -} -%typemap(freearg) - (DATA_TYPE* IN_ARRAY2, DIM_TYPE DIM1, DIM_TYPE DIM2) -{ - if (is_new_object$argnum && array$argnum) - { Py_DECREF(array$argnum); } -} - -/* Typemap suite for (DIM_TYPE DIM1, DIM_TYPE DIM2, DATA_TYPE* IN_ARRAY2) - */ -%typecheck(SWIG_TYPECHECK_DOUBLE_ARRAY, - fragment="NumPy_Macros") - (DIM_TYPE DIM1, DIM_TYPE DIM2, DATA_TYPE* IN_ARRAY2) -{ - $1 = is_array($input) || PySequence_Check($input); -} -%typemap(in, - fragment="NumPy_Fragments") - (DIM_TYPE DIM1, DIM_TYPE DIM2, DATA_TYPE* IN_ARRAY2) - (PyArrayObject* array=NULL, int is_new_object=0) -{ - npy_intp size[2] = { -1, -1 }; - array = obj_to_array_contiguous_allow_conversion($input, - DATA_TYPECODE, - &is_new_object); - if (!array || !require_dimensions(array, 2) || - !require_size(array, size, 2)) SWIG_fail; - $1 = (DIM_TYPE) array_size(array,0); - $2 = (DIM_TYPE) array_size(array,1); - $3 = (DATA_TYPE*) array_data(array); -} -%typemap(freearg) - (DIM_TYPE DIM1, DIM_TYPE DIM2, DATA_TYPE* IN_ARRAY2) -{ - if (is_new_object$argnum && array$argnum) - { Py_DECREF(array$argnum); } -} - -/* Typemap suite for (DATA_TYPE* IN_FARRAY2, DIM_TYPE DIM1, DIM_TYPE DIM2) - */ -%typecheck(SWIG_TYPECHECK_DOUBLE_ARRAY, - fragment="NumPy_Macros") - (DATA_TYPE* IN_FARRAY2, DIM_TYPE DIM1, DIM_TYPE DIM2) -{ - $1 = is_array($input) || PySequence_Check($input); -} -%typemap(in, - fragment="NumPy_Fragments") - (DATA_TYPE* IN_FARRAY2, DIM_TYPE DIM1, DIM_TYPE DIM2) - (PyArrayObject* array=NULL, int is_new_object=0) -{ - npy_intp size[2] = { -1, -1 }; - array = obj_to_array_fortran_allow_conversion($input, - DATA_TYPECODE, - &is_new_object); - if (!array || !require_dimensions(array, 2) || - !require_size(array, size, 2) || !require_fortran(array)) SWIG_fail; - $1 = (DATA_TYPE*) array_data(array); - $2 = (DIM_TYPE) array_size(array,0); - $3 = (DIM_TYPE) array_size(array,1); -} -%typemap(freearg) - (DATA_TYPE* IN_FARRAY2, DIM_TYPE DIM1, DIM_TYPE DIM2) -{ - if (is_new_object$argnum && array$argnum) - { Py_DECREF(array$argnum); } -} - -/* Typemap suite for (DIM_TYPE DIM1, DIM_TYPE DIM2, DATA_TYPE* IN_FARRAY2) - */ -%typecheck(SWIG_TYPECHECK_DOUBLE_ARRAY, - fragment="NumPy_Macros") - (DIM_TYPE DIM1, DIM_TYPE DIM2, DATA_TYPE* IN_FARRAY2) -{ - $1 = is_array($input) || PySequence_Check($input); -} -%typemap(in, - fragment="NumPy_Fragments") - (DIM_TYPE DIM1, DIM_TYPE DIM2, DATA_TYPE* IN_FARRAY2) - (PyArrayObject* array=NULL, int is_new_object=0) -{ - npy_intp size[2] = { -1, -1 }; - array = obj_to_array_contiguous_allow_conversion($input, - DATA_TYPECODE, - &is_new_object); - if (!array || !require_dimensions(array, 2) || - !require_size(array, size, 2) || !require_fortran(array)) SWIG_fail; - $1 = (DIM_TYPE) array_size(array,0); - $2 = (DIM_TYPE) array_size(array,1); - $3 = (DATA_TYPE*) array_data(array); -} -%typemap(freearg) - (DIM_TYPE DIM1, DIM_TYPE DIM2, DATA_TYPE* IN_FARRAY2) -{ - if (is_new_object$argnum && array$argnum) - { Py_DECREF(array$argnum); } -} - -/* Typemap suite for (DATA_TYPE IN_ARRAY3[ANY][ANY][ANY]) - */ -%typecheck(SWIG_TYPECHECK_DOUBLE_ARRAY, - fragment="NumPy_Macros") - (DATA_TYPE IN_ARRAY3[ANY][ANY][ANY]) -{ - $1 = is_array($input) || PySequence_Check($input); -} -%typemap(in, - fragment="NumPy_Fragments") - (DATA_TYPE IN_ARRAY3[ANY][ANY][ANY]) - (PyArrayObject* array=NULL, int is_new_object=0) -{ - npy_intp size[3] = { $1_dim0, $1_dim1, $1_dim2 }; - array = obj_to_array_contiguous_allow_conversion($input, - DATA_TYPECODE, - &is_new_object); - if (!array || !require_dimensions(array, 3) || - !require_size(array, size, 3)) SWIG_fail; - $1 = ($1_ltype) array_data(array); -} -%typemap(freearg) - (DATA_TYPE IN_ARRAY3[ANY][ANY][ANY]) -{ - if (is_new_object$argnum && array$argnum) - { Py_DECREF(array$argnum); } -} - -/* Typemap suite for (DATA_TYPE* IN_ARRAY3, DIM_TYPE DIM1, DIM_TYPE DIM2, - * DIM_TYPE DIM3) - */ -%typecheck(SWIG_TYPECHECK_DOUBLE_ARRAY, - fragment="NumPy_Macros") - (DATA_TYPE* IN_ARRAY3, DIM_TYPE DIM1, DIM_TYPE DIM2, DIM_TYPE DIM3) -{ - $1 = is_array($input) || PySequence_Check($input); -} -%typemap(in, - fragment="NumPy_Fragments") - (DATA_TYPE* IN_ARRAY3, DIM_TYPE DIM1, DIM_TYPE DIM2, DIM_TYPE DIM3) - (PyArrayObject* array=NULL, int is_new_object=0) -{ - npy_intp size[3] = { -1, -1, -1 }; - array = obj_to_array_contiguous_allow_conversion($input, DATA_TYPECODE, - &is_new_object); - if (!array || !require_dimensions(array, 3) || - !require_size(array, size, 3)) SWIG_fail; - $1 = (DATA_TYPE*) array_data(array); - $2 = (DIM_TYPE) array_size(array,0); - $3 = (DIM_TYPE) array_size(array,1); - $4 = (DIM_TYPE) array_size(array,2); -} -%typemap(freearg) - (DATA_TYPE* IN_ARRAY3, DIM_TYPE DIM1, DIM_TYPE DIM2, DIM_TYPE DIM3) -{ - if (is_new_object$argnum && array$argnum) - { Py_DECREF(array$argnum); } -} - -/* Typemap suite for (DATA_TYPE** IN_ARRAY3, DIM_TYPE DIM1, DIM_TYPE DIM2, - * DIM_TYPE DIM3) - */ -%typecheck(SWIG_TYPECHECK_DOUBLE_ARRAY, - fragment="NumPy_Macros") - (DATA_TYPE** IN_ARRAY3, DIM_TYPE DIM1, DIM_TYPE DIM2, DIM_TYPE DIM3) -{ - /* for now, only concerned with lists */ - $1 = PySequence_Check($input); -} -%typemap(in, - fragment="NumPy_Fragments") - (DATA_TYPE** IN_ARRAY3, DIM_TYPE DIM1, DIM_TYPE DIM2, DIM_TYPE DIM3) - (DATA_TYPE** array=NULL, PyArrayObject** object_array=NULL, int* is_new_object_array=NULL) -{ - npy_intp size[2] = { -1, -1 }; - PyArrayObject* temp_array; - Py_ssize_t i; - int is_new_object = 0; - - /* length of the list */ - $2 = PyList_Size($input); - - /* the arrays */ - array = (DATA_TYPE **)malloc($2*sizeof(DATA_TYPE *)); - object_array = (PyArrayObject **)calloc($2,sizeof(PyArrayObject *)); - is_new_object_array = (int *)calloc($2,sizeof(int)); - - if (array == NULL || object_array == NULL || is_new_object_array == NULL) - { - SWIG_fail; - } - - for (i=0; i<$2; i++) - { - temp_array = obj_to_array_contiguous_allow_conversion(PySequence_GetItem($input,i), DATA_TYPECODE, &is_new_object); - - /* the new array must be stored so that it can be destroyed in freearg */ - object_array[i] = temp_array; - is_new_object_array[i] = is_new_object; - - if (!temp_array || !require_dimensions(temp_array, 2)) SWIG_fail; - - /* store the size of the first array in the list, then use that for comparison. */ - if (i == 0) - { - size[0] = array_size(temp_array,0); - size[1] = array_size(temp_array,1); - } - - if (!require_size(temp_array, size, 2)) SWIG_fail; - - array[i] = (DATA_TYPE*) array_data(temp_array); - } - - $1 = (DATA_TYPE**) array; - $3 = (DIM_TYPE) size[0]; - $4 = (DIM_TYPE) size[1]; -} -%typemap(freearg) - (DATA_TYPE** IN_ARRAY3, DIM_TYPE DIM1, DIM_TYPE DIM2, DIM_TYPE DIM3) -{ - Py_ssize_t i; - - if (array$argnum!=NULL) free(array$argnum); - - /*freeing the individual arrays if needed */ - if (object_array$argnum!=NULL) - { - if (is_new_object_array$argnum!=NULL) - { - for (i=0; i<$2; i++) - { - if (object_array$argnum[i] != NULL && is_new_object_array$argnum[i]) - { Py_DECREF(object_array$argnum[i]); } - } - free(is_new_object_array$argnum); - } - free(object_array$argnum); - } -} - -/* Typemap suite for (DIM_TYPE DIM1, DIM_TYPE DIM2, DIM_TYPE DIM3, - * DATA_TYPE* IN_ARRAY3) - */ -%typecheck(SWIG_TYPECHECK_DOUBLE_ARRAY, - fragment="NumPy_Macros") - (DIM_TYPE DIM1, DIM_TYPE DIM2, DIM_TYPE DIM3, DATA_TYPE* IN_ARRAY3) -{ - $1 = is_array($input) || PySequence_Check($input); -} -%typemap(in, - fragment="NumPy_Fragments") - (DIM_TYPE DIM1, DIM_TYPE DIM2, DIM_TYPE DIM3, DATA_TYPE* IN_ARRAY3) - (PyArrayObject* array=NULL, int is_new_object=0) -{ - npy_intp size[3] = { -1, -1, -1 }; - array = obj_to_array_contiguous_allow_conversion($input, DATA_TYPECODE, - &is_new_object); - if (!array || !require_dimensions(array, 3) || - !require_size(array, size, 3)) SWIG_fail; - $1 = (DIM_TYPE) array_size(array,0); - $2 = (DIM_TYPE) array_size(array,1); - $3 = (DIM_TYPE) array_size(array,2); - $4 = (DATA_TYPE*) array_data(array); -} -%typemap(freearg) - (DIM_TYPE DIM1, DIM_TYPE DIM2, DIM_TYPE DIM3, DATA_TYPE* IN_ARRAY3) -{ - if (is_new_object$argnum && array$argnum) - { Py_DECREF(array$argnum); } -} - -/* Typemap suite for (DATA_TYPE* IN_FARRAY3, DIM_TYPE DIM1, DIM_TYPE DIM2, - * DIM_TYPE DIM3) - */ -%typecheck(SWIG_TYPECHECK_DOUBLE_ARRAY, - fragment="NumPy_Macros") - (DATA_TYPE* IN_FARRAY3, DIM_TYPE DIM1, DIM_TYPE DIM2, DIM_TYPE DIM3) -{ - $1 = is_array($input) || PySequence_Check($input); -} -%typemap(in, - fragment="NumPy_Fragments") - (DATA_TYPE* IN_FARRAY3, DIM_TYPE DIM1, DIM_TYPE DIM2, DIM_TYPE DIM3) - (PyArrayObject* array=NULL, int is_new_object=0) -{ - npy_intp size[3] = { -1, -1, -1 }; - array = obj_to_array_fortran_allow_conversion($input, DATA_TYPECODE, - &is_new_object); - if (!array || !require_dimensions(array, 3) || - !require_size(array, size, 3) | !require_fortran(array)) SWIG_fail; - $1 = (DATA_TYPE*) array_data(array); - $2 = (DIM_TYPE) array_size(array,0); - $3 = (DIM_TYPE) array_size(array,1); - $4 = (DIM_TYPE) array_size(array,2); -} -%typemap(freearg) - (DATA_TYPE* IN_FARRAY3, DIM_TYPE DIM1, DIM_TYPE DIM2, DIM_TYPE DIM3) -{ - if (is_new_object$argnum && array$argnum) - { Py_DECREF(array$argnum); } -} - -/* Typemap suite for (DIM_TYPE DIM1, DIM_TYPE DIM2, DIM_TYPE DIM3, - * DATA_TYPE* IN_FARRAY3) - */ -%typecheck(SWIG_TYPECHECK_DOUBLE_ARRAY, - fragment="NumPy_Macros") - (DIM_TYPE DIM1, DIM_TYPE DIM2, DIM_TYPE DIM3, DATA_TYPE* IN_FARRAY3) -{ - $1 = is_array($input) || PySequence_Check($input); -} -%typemap(in, - fragment="NumPy_Fragments") - (DIM_TYPE DIM1, DIM_TYPE DIM2, DIM_TYPE DIM3, DATA_TYPE* IN_FARRAY3) - (PyArrayObject* array=NULL, int is_new_object=0) -{ - npy_intp size[3] = { -1, -1, -1 }; - array = obj_to_array_contiguous_allow_conversion($input, - DATA_TYPECODE, - &is_new_object); - if (!array || !require_dimensions(array, 3) || - !require_size(array, size, 3) || !require_fortran(array)) SWIG_fail; - $1 = (DIM_TYPE) array_size(array,0); - $2 = (DIM_TYPE) array_size(array,1); - $3 = (DIM_TYPE) array_size(array,2); - $4 = (DATA_TYPE*) array_data(array); -} -%typemap(freearg) - (DIM_TYPE DIM1, DIM_TYPE DIM2, DIM_TYPE DIM3, DATA_TYPE* IN_FARRAY3) -{ - if (is_new_object$argnum && array$argnum) - { Py_DECREF(array$argnum); } -} - -/* Typemap suite for (DATA_TYPE IN_ARRAY4[ANY][ANY][ANY][ANY]) - */ -%typecheck(SWIG_TYPECHECK_DOUBLE_ARRAY, - fragment="NumPy_Macros") - (DATA_TYPE IN_ARRAY4[ANY][ANY][ANY][ANY]) -{ - $1 = is_array($input) || PySequence_Check($input); -} -%typemap(in, - fragment="NumPy_Fragments") - (DATA_TYPE IN_ARRAY4[ANY][ANY][ANY][ANY]) - (PyArrayObject* array=NULL, int is_new_object=0) -{ - npy_intp size[4] = { $1_dim0, $1_dim1, $1_dim2 , $1_dim3}; - array = obj_to_array_contiguous_allow_conversion($input, DATA_TYPECODE, - &is_new_object); - if (!array || !require_dimensions(array, 4) || - !require_size(array, size, 4)) SWIG_fail; - $1 = ($1_ltype) array_data(array); -} -%typemap(freearg) - (DATA_TYPE IN_ARRAY4[ANY][ANY][ANY][ANY]) -{ - if (is_new_object$argnum && array$argnum) - { Py_DECREF(array$argnum); } -} - -/* Typemap suite for (DATA_TYPE* IN_ARRAY4, DIM_TYPE DIM1, DIM_TYPE DIM2, - * DIM_TYPE DIM3, DIM_TYPE DIM4) - */ -%typecheck(SWIG_TYPECHECK_DOUBLE_ARRAY, - fragment="NumPy_Macros") - (DATA_TYPE* IN_ARRAY4, DIM_TYPE DIM1, DIM_TYPE DIM2, DIM_TYPE DIM3, DIM_TYPE DIM4) -{ - $1 = is_array($input) || PySequence_Check($input); -} -%typemap(in, - fragment="NumPy_Fragments") - (DATA_TYPE* IN_ARRAY4, DIM_TYPE DIM1, DIM_TYPE DIM2, DIM_TYPE DIM3, DIM_TYPE DIM4) - (PyArrayObject* array=NULL, int is_new_object=0) -{ - npy_intp size[4] = { -1, -1, -1, -1 }; - array = obj_to_array_contiguous_allow_conversion($input, DATA_TYPECODE, - &is_new_object); - if (!array || !require_dimensions(array, 4) || - !require_size(array, size, 4)) SWIG_fail; - $1 = (DATA_TYPE*) array_data(array); - $2 = (DIM_TYPE) array_size(array,0); - $3 = (DIM_TYPE) array_size(array,1); - $4 = (DIM_TYPE) array_size(array,2); - $5 = (DIM_TYPE) array_size(array,3); -} -%typemap(freearg) - (DATA_TYPE* IN_ARRAY4, DIM_TYPE DIM1, DIM_TYPE DIM2, DIM_TYPE DIM3, DIM_TYPE DIM4) -{ - if (is_new_object$argnum && array$argnum) - { Py_DECREF(array$argnum); } -} - -/* Typemap suite for (DATA_TYPE** IN_ARRAY4, DIM_TYPE DIM1, DIM_TYPE DIM2, - * DIM_TYPE DIM3, DIM_TYPE DIM4) - */ -%typecheck(SWIG_TYPECHECK_DOUBLE_ARRAY, - fragment="NumPy_Macros") - (DATA_TYPE** IN_ARRAY4, DIM_TYPE DIM1, DIM_TYPE DIM2, DIM_TYPE DIM3, DIM_TYPE DIM4) -{ - /* for now, only concerned with lists */ - $1 = PySequence_Check($input); -} -%typemap(in, - fragment="NumPy_Fragments") - (DATA_TYPE** IN_ARRAY4, DIM_TYPE DIM1, DIM_TYPE DIM2, DIM_TYPE DIM3, DIM_TYPE DIM4) - (DATA_TYPE** array=NULL, PyArrayObject** object_array=NULL, int* is_new_object_array=NULL) -{ - npy_intp size[3] = { -1, -1, -1 }; - PyArrayObject* temp_array; - Py_ssize_t i; - int is_new_object = 0; - - /* length of the list */ - $2 = PyList_Size($input); - - /* the arrays */ - array = (DATA_TYPE **)malloc($2*sizeof(DATA_TYPE *)); - object_array = (PyArrayObject **)calloc($2,sizeof(PyArrayObject *)); - is_new_object_array = (int *)calloc($2,sizeof(int)); - - if (array == NULL || object_array == NULL || is_new_object_array == NULL) - { - SWIG_fail; - } - - for (i=0; i<$2; i++) - { - temp_array = obj_to_array_contiguous_allow_conversion(PySequence_GetItem($input,i), DATA_TYPECODE, &is_new_object); - - /* the new array must be stored so that it can be destroyed in freearg */ - object_array[i] = temp_array; - is_new_object_array[i] = is_new_object; - - if (!temp_array || !require_dimensions(temp_array, 3)) SWIG_fail; - - /* store the size of the first array in the list, then use that for comparison. */ - if (i == 0) - { - size[0] = array_size(temp_array,0); - size[1] = array_size(temp_array,1); - size[2] = array_size(temp_array,2); - } - - if (!require_size(temp_array, size, 3)) SWIG_fail; - - array[i] = (DATA_TYPE*) array_data(temp_array); - } - - $1 = (DATA_TYPE**) array; - $3 = (DIM_TYPE) size[0]; - $4 = (DIM_TYPE) size[1]; - $5 = (DIM_TYPE) size[2]; -} -%typemap(freearg) - (DATA_TYPE** IN_ARRAY4, DIM_TYPE DIM1, DIM_TYPE DIM2, DIM_TYPE DIM3, DIM_TYPE DIM4) -{ - Py_ssize_t i; - - if (array$argnum!=NULL) free(array$argnum); - - /*freeing the individual arrays if needed */ - if (object_array$argnum!=NULL) - { - if (is_new_object_array$argnum!=NULL) - { - for (i=0; i<$2; i++) - { - if (object_array$argnum[i] != NULL && is_new_object_array$argnum[i]) - { Py_DECREF(object_array$argnum[i]); } - } - free(is_new_object_array$argnum); - } - free(object_array$argnum); - } -} - -/* Typemap suite for (DIM_TYPE DIM1, DIM_TYPE DIM2, DIM_TYPE DIM3, DIM_TYPE DIM4, - * DATA_TYPE* IN_ARRAY4) - */ -%typecheck(SWIG_TYPECHECK_DOUBLE_ARRAY, - fragment="NumPy_Macros") - (DIM_TYPE DIM1, DIM_TYPE DIM2, DIM_TYPE DIM3, DIM_TYPE DIM4, DATA_TYPE* IN_ARRAY4) -{ - $1 = is_array($input) || PySequence_Check($input); -} -%typemap(in, - fragment="NumPy_Fragments") - (DIM_TYPE DIM1, DIM_TYPE DIM2, DIM_TYPE DIM3, DIM_TYPE DIM4, DATA_TYPE* IN_ARRAY4) - (PyArrayObject* array=NULL, int is_new_object=0) -{ - npy_intp size[4] = { -1, -1, -1 , -1}; - array = obj_to_array_contiguous_allow_conversion($input, DATA_TYPECODE, - &is_new_object); - if (!array || !require_dimensions(array, 4) || - !require_size(array, size, 4)) SWIG_fail; - $1 = (DIM_TYPE) array_size(array,0); - $2 = (DIM_TYPE) array_size(array,1); - $3 = (DIM_TYPE) array_size(array,2); - $4 = (DIM_TYPE) array_size(array,3); - $5 = (DATA_TYPE*) array_data(array); -} -%typemap(freearg) - (DIM_TYPE DIM1, DIM_TYPE DIM2, DIM_TYPE DIM3, DIM_TYPE DIM4, DATA_TYPE* IN_ARRAY4) -{ - if (is_new_object$argnum && array$argnum) - { Py_DECREF(array$argnum); } -} - -/* Typemap suite for (DATA_TYPE* IN_FARRAY4, DIM_TYPE DIM1, DIM_TYPE DIM2, - * DIM_TYPE DIM3, DIM_TYPE DIM4) - */ -%typecheck(SWIG_TYPECHECK_DOUBLE_ARRAY, - fragment="NumPy_Macros") - (DATA_TYPE* IN_FARRAY4, DIM_TYPE DIM1, DIM_TYPE DIM2, DIM_TYPE DIM3, DIM_TYPE DIM4) -{ - $1 = is_array($input) || PySequence_Check($input); -} -%typemap(in, - fragment="NumPy_Fragments") - (DATA_TYPE* IN_FARRAY4, DIM_TYPE DIM1, DIM_TYPE DIM2, DIM_TYPE DIM3, DIM_TYPE DIM4) - (PyArrayObject* array=NULL, int is_new_object=0) -{ - npy_intp size[4] = { -1, -1, -1, -1 }; - array = obj_to_array_fortran_allow_conversion($input, DATA_TYPECODE, - &is_new_object); - if (!array || !require_dimensions(array, 4) || - !require_size(array, size, 4) | !require_fortran(array)) SWIG_fail; - $1 = (DATA_TYPE*) array_data(array); - $2 = (DIM_TYPE) array_size(array,0); - $3 = (DIM_TYPE) array_size(array,1); - $4 = (DIM_TYPE) array_size(array,2); - $5 = (DIM_TYPE) array_size(array,3); -} -%typemap(freearg) - (DATA_TYPE* IN_FARRAY4, DIM_TYPE DIM1, DIM_TYPE DIM2, DIM_TYPE DIM3, DIM_TYPE DIM4) -{ - if (is_new_object$argnum && array$argnum) - { Py_DECREF(array$argnum); } -} - -/* Typemap suite for (DIM_TYPE DIM1, DIM_TYPE DIM2, DIM_TYPE DIM3, DIM_TYPE DIM4, - * DATA_TYPE* IN_FARRAY4) - */ -%typecheck(SWIG_TYPECHECK_DOUBLE_ARRAY, - fragment="NumPy_Macros") - (DIM_TYPE DIM1, DIM_TYPE DIM2, DIM_TYPE DIM3, DIM_TYPE DIM4, DATA_TYPE* IN_FARRAY4) -{ - $1 = is_array($input) || PySequence_Check($input); -} -%typemap(in, - fragment="NumPy_Fragments") - (DIM_TYPE DIM1, DIM_TYPE DIM2, DIM_TYPE DIM3, DIM_TYPE DIM4, DATA_TYPE* IN_FARRAY4) - (PyArrayObject* array=NULL, int is_new_object=0) -{ - npy_intp size[4] = { -1, -1, -1 , -1 }; - array = obj_to_array_contiguous_allow_conversion($input, DATA_TYPECODE, - &is_new_object); - if (!array || !require_dimensions(array, 4) || - !require_size(array, size, 4) || !require_fortran(array)) SWIG_fail; - $1 = (DIM_TYPE) array_size(array,0); - $2 = (DIM_TYPE) array_size(array,1); - $3 = (DIM_TYPE) array_size(array,2); - $4 = (DIM_TYPE) array_size(array,3); - $5 = (DATA_TYPE*) array_data(array); -} -%typemap(freearg) - (DIM_TYPE DIM1, DIM_TYPE DIM2, DIM_TYPE DIM3, DIM_TYPE DIM4, DATA_TYPE* IN_FARRAY4) -{ - if (is_new_object$argnum && array$argnum) - { Py_DECREF(array$argnum); } -} - -/***************************/ -/* In-Place Array Typemaps */ -/***************************/ - -/* Typemap suite for (DATA_TYPE INPLACE_ARRAY1[ANY]) - */ -%typecheck(SWIG_TYPECHECK_DOUBLE_ARRAY, - fragment="NumPy_Macros") - (DATA_TYPE INPLACE_ARRAY1[ANY]) -{ - $1 = is_array($input) && PyArray_EquivTypenums(array_type($input), - DATA_TYPECODE); -} -%typemap(in, - fragment="NumPy_Fragments") - (DATA_TYPE INPLACE_ARRAY1[ANY]) - (PyArrayObject* array=NULL) -{ - npy_intp size[1] = { $1_dim0 }; - array = obj_to_array_no_conversion($input, DATA_TYPECODE); - if (!array || !require_dimensions(array,1) || !require_size(array, size, 1) || - !require_contiguous(array) || !require_native(array)) SWIG_fail; - $1 = ($1_ltype) array_data(array); -} - -/* Typemap suite for (DATA_TYPE* INPLACE_ARRAY1, DIM_TYPE DIM1) - */ -%typecheck(SWIG_TYPECHECK_DOUBLE_ARRAY, - fragment="NumPy_Macros") - (DATA_TYPE* INPLACE_ARRAY1, DIM_TYPE DIM1) -{ - $1 = is_array($input) && PyArray_EquivTypenums(array_type($input), - DATA_TYPECODE); -} -%typemap(in, - fragment="NumPy_Fragments") - (DATA_TYPE* INPLACE_ARRAY1, DIM_TYPE DIM1) - (PyArrayObject* array=NULL, int i=1) -{ - array = obj_to_array_no_conversion($input, DATA_TYPECODE); - if (!array || !require_dimensions(array,1) || !require_contiguous(array) - || !require_native(array)) SWIG_fail; - $1 = (DATA_TYPE*) array_data(array); - $2 = 1; - for (i=0; i < array_numdims(array); ++i) $2 *= array_size(array,i); -} - -/* Typemap suite for (DIM_TYPE DIM1, DATA_TYPE* INPLACE_ARRAY1) - */ -%typecheck(SWIG_TYPECHECK_DOUBLE_ARRAY, - fragment="NumPy_Macros") - (DIM_TYPE DIM1, DATA_TYPE* INPLACE_ARRAY1) -{ - $1 = is_array($input) && PyArray_EquivTypenums(array_type($input), - DATA_TYPECODE); -} -%typemap(in, - fragment="NumPy_Fragments") - (DIM_TYPE DIM1, DATA_TYPE* INPLACE_ARRAY1) - (PyArrayObject* array=NULL, int i=0) -{ - array = obj_to_array_no_conversion($input, DATA_TYPECODE); - if (!array || !require_dimensions(array,1) || !require_contiguous(array) - || !require_native(array)) SWIG_fail; - $1 = 1; - for (i=0; i < array_numdims(array); ++i) $1 *= array_size(array,i); - $2 = (DATA_TYPE*) array_data(array); -} - -/* Typemap suite for (DATA_TYPE INPLACE_ARRAY2[ANY][ANY]) - */ -%typecheck(SWIG_TYPECHECK_DOUBLE_ARRAY, - fragment="NumPy_Macros") - (DATA_TYPE INPLACE_ARRAY2[ANY][ANY]) -{ - $1 = is_array($input) && PyArray_EquivTypenums(array_type($input), - DATA_TYPECODE); -} -%typemap(in, - fragment="NumPy_Fragments") - (DATA_TYPE INPLACE_ARRAY2[ANY][ANY]) - (PyArrayObject* array=NULL) -{ - npy_intp size[2] = { $1_dim0, $1_dim1 }; - array = obj_to_array_no_conversion($input, DATA_TYPECODE); - if (!array || !require_dimensions(array,2) || !require_size(array, size, 2) || - !require_contiguous(array) || !require_native(array)) SWIG_fail; - $1 = ($1_ltype) array_data(array); -} - -/* Typemap suite for (DATA_TYPE* INPLACE_ARRAY2, DIM_TYPE DIM1, DIM_TYPE DIM2) - */ -%typecheck(SWIG_TYPECHECK_DOUBLE_ARRAY, - fragment="NumPy_Macros") - (DATA_TYPE* INPLACE_ARRAY2, DIM_TYPE DIM1, DIM_TYPE DIM2) -{ - $1 = is_array($input) && PyArray_EquivTypenums(array_type($input), - DATA_TYPECODE); -} -%typemap(in, - fragment="NumPy_Fragments") - (DATA_TYPE* INPLACE_ARRAY2, DIM_TYPE DIM1, DIM_TYPE DIM2) - (PyArrayObject* array=NULL) -{ - array = obj_to_array_no_conversion($input, DATA_TYPECODE); - if (!array || !require_dimensions(array,2) || !require_contiguous(array) - || !require_native(array)) SWIG_fail; - $1 = (DATA_TYPE*) array_data(array); - $2 = (DIM_TYPE) array_size(array,0); - $3 = (DIM_TYPE) array_size(array,1); -} - -/* Typemap suite for (DIM_TYPE DIM1, DIM_TYPE DIM2, DATA_TYPE* INPLACE_ARRAY2) - */ -%typecheck(SWIG_TYPECHECK_DOUBLE_ARRAY, - fragment="NumPy_Macros") - (DIM_TYPE DIM1, DIM_TYPE DIM2, DATA_TYPE* INPLACE_ARRAY2) -{ - $1 = is_array($input) && PyArray_EquivTypenums(array_type($input), - DATA_TYPECODE); -} -%typemap(in, - fragment="NumPy_Fragments") - (DIM_TYPE DIM1, DIM_TYPE DIM2, DATA_TYPE* INPLACE_ARRAY2) - (PyArrayObject* array=NULL) -{ - array = obj_to_array_no_conversion($input, DATA_TYPECODE); - if (!array || !require_dimensions(array,2) || !require_contiguous(array) || - !require_native(array)) SWIG_fail; - $1 = (DIM_TYPE) array_size(array,0); - $2 = (DIM_TYPE) array_size(array,1); - $3 = (DATA_TYPE*) array_data(array); -} - -/* Typemap suite for (DATA_TYPE* INPLACE_FARRAY2, DIM_TYPE DIM1, DIM_TYPE DIM2) - */ -%typecheck(SWIG_TYPECHECK_DOUBLE_ARRAY, - fragment="NumPy_Macros") - (DATA_TYPE* INPLACE_FARRAY2, DIM_TYPE DIM1, DIM_TYPE DIM2) -{ - $1 = is_array($input) && PyArray_EquivTypenums(array_type($input), - DATA_TYPECODE); -} -%typemap(in, - fragment="NumPy_Fragments") - (DATA_TYPE* INPLACE_FARRAY2, DIM_TYPE DIM1, DIM_TYPE DIM2) - (PyArrayObject* array=NULL) -{ - array = obj_to_array_no_conversion($input, DATA_TYPECODE); - if (!array || !require_dimensions(array,2) || !require_contiguous(array) - || !require_native(array) || !require_fortran(array)) SWIG_fail; - $1 = (DATA_TYPE*) array_data(array); - $2 = (DIM_TYPE) array_size(array,0); - $3 = (DIM_TYPE) array_size(array,1); -} - -/* Typemap suite for (DIM_TYPE DIM1, DIM_TYPE DIM2, DATA_TYPE* INPLACE_FARRAY2) - */ -%typecheck(SWIG_TYPECHECK_DOUBLE_ARRAY, - fragment="NumPy_Macros") - (DIM_TYPE DIM1, DIM_TYPE DIM2, DATA_TYPE* INPLACE_FARRAY2) -{ - $1 = is_array($input) && PyArray_EquivTypenums(array_type($input), - DATA_TYPECODE); -} -%typemap(in, - fragment="NumPy_Fragments") - (DIM_TYPE DIM1, DIM_TYPE DIM2, DATA_TYPE* INPLACE_FARRAY2) - (PyArrayObject* array=NULL) -{ - array = obj_to_array_no_conversion($input, DATA_TYPECODE); - if (!array || !require_dimensions(array,2) || !require_contiguous(array) || - !require_native(array) || !require_fortran(array)) SWIG_fail; - $1 = (DIM_TYPE) array_size(array,0); - $2 = (DIM_TYPE) array_size(array,1); - $3 = (DATA_TYPE*) array_data(array); -} - -/* Typemap suite for (DATA_TYPE INPLACE_ARRAY3[ANY][ANY][ANY]) - */ -%typecheck(SWIG_TYPECHECK_DOUBLE_ARRAY, - fragment="NumPy_Macros") - (DATA_TYPE INPLACE_ARRAY3[ANY][ANY][ANY]) -{ - $1 = is_array($input) && PyArray_EquivTypenums(array_type($input), - DATA_TYPECODE); -} -%typemap(in, - fragment="NumPy_Fragments") - (DATA_TYPE INPLACE_ARRAY3[ANY][ANY][ANY]) - (PyArrayObject* array=NULL) -{ - npy_intp size[3] = { $1_dim0, $1_dim1, $1_dim2 }; - array = obj_to_array_no_conversion($input, DATA_TYPECODE); - if (!array || !require_dimensions(array,3) || !require_size(array, size, 3) || - !require_contiguous(array) || !require_native(array)) SWIG_fail; - $1 = ($1_ltype) array_data(array); -} - -/* Typemap suite for (DATA_TYPE* INPLACE_ARRAY3, DIM_TYPE DIM1, DIM_TYPE DIM2, - * DIM_TYPE DIM3) - */ -%typecheck(SWIG_TYPECHECK_DOUBLE_ARRAY, - fragment="NumPy_Macros") - (DATA_TYPE* INPLACE_ARRAY3, DIM_TYPE DIM1, DIM_TYPE DIM2, DIM_TYPE DIM3) -{ - $1 = is_array($input) && PyArray_EquivTypenums(array_type($input), - DATA_TYPECODE); -} -%typemap(in, - fragment="NumPy_Fragments") - (DATA_TYPE* INPLACE_ARRAY3, DIM_TYPE DIM1, DIM_TYPE DIM2, DIM_TYPE DIM3) - (PyArrayObject* array=NULL) -{ - array = obj_to_array_no_conversion($input, DATA_TYPECODE); - if (!array || !require_dimensions(array,3) || !require_contiguous(array) || - !require_native(array)) SWIG_fail; - $1 = (DATA_TYPE*) array_data(array); - $2 = (DIM_TYPE) array_size(array,0); - $3 = (DIM_TYPE) array_size(array,1); - $4 = (DIM_TYPE) array_size(array,2); -} - -/* Typemap suite for (DATA_TYPE** INPLACE_ARRAY3, DIM_TYPE DIM1, DIM_TYPE DIM2, - * DIM_TYPE DIM3) - */ -%typecheck(SWIG_TYPECHECK_DOUBLE_ARRAY, - fragment="NumPy_Macros") - (DATA_TYPE** INPLACE_ARRAY3, DIM_TYPE DIM1, DIM_TYPE DIM2, DIM_TYPE DIM3) -{ - $1 = PySequence_Check($input); -} -%typemap(in, - fragment="NumPy_Fragments") - (DATA_TYPE** INPLACE_ARRAY3, DIM_TYPE DIM1, DIM_TYPE DIM2, DIM_TYPE DIM3) - (DATA_TYPE** array=NULL, PyArrayObject** object_array=NULL) -{ - npy_intp size[2] = { -1, -1 }; - PyArrayObject* temp_array; - Py_ssize_t i; - - /* length of the list */ - $2 = PyList_Size($input); - - /* the arrays */ - array = (DATA_TYPE **)malloc($2*sizeof(DATA_TYPE *)); - object_array = (PyArrayObject **)calloc($2,sizeof(PyArrayObject *)); - - if (array == NULL || object_array == NULL) - { - SWIG_fail; - } - - for (i=0; i<$2; i++) - { - temp_array = obj_to_array_no_conversion(PySequence_GetItem($input,i), DATA_TYPECODE); - - /* the new array must be stored so that it can be destroyed in freearg */ - object_array[i] = temp_array; - - if ( !temp_array || !require_dimensions(temp_array, 2) || - !require_contiguous(temp_array) || - !require_native(temp_array) || - !PyArray_EquivTypenums(array_type(temp_array), DATA_TYPECODE) - ) SWIG_fail; - - /* store the size of the first array in the list, then use that for comparison. */ - if (i == 0) - { - size[0] = array_size(temp_array,0); - size[1] = array_size(temp_array,1); - } - - if (!require_size(temp_array, size, 2)) SWIG_fail; - - array[i] = (DATA_TYPE*) array_data(temp_array); - } - - $1 = (DATA_TYPE**) array; - $3 = (DIM_TYPE) size[0]; - $4 = (DIM_TYPE) size[1]; -} -%typemap(freearg) - (DATA_TYPE** INPLACE_ARRAY3, DIM_TYPE DIM1, DIM_TYPE DIM2, DIM_TYPE DIM3) -{ - if (array$argnum!=NULL) free(array$argnum); - if (object_array$argnum!=NULL) free(object_array$argnum); -} - -/* Typemap suite for (DIM_TYPE DIM1, DIM_TYPE DIM2, DIM_TYPE DIM3, - * DATA_TYPE* INPLACE_ARRAY3) - */ -%typecheck(SWIG_TYPECHECK_DOUBLE_ARRAY, - fragment="NumPy_Macros") - (DIM_TYPE DIM1, DIM_TYPE DIM2, DIM_TYPE DIM3, DATA_TYPE* INPLACE_ARRAY3) -{ - $1 = is_array($input) && PyArray_EquivTypenums(array_type($input), - DATA_TYPECODE); -} -%typemap(in, - fragment="NumPy_Fragments") - (DIM_TYPE DIM1, DIM_TYPE DIM2, DIM_TYPE DIM3, DATA_TYPE* INPLACE_ARRAY3) - (PyArrayObject* array=NULL) -{ - array = obj_to_array_no_conversion($input, DATA_TYPECODE); - if (!array || !require_dimensions(array,3) || !require_contiguous(array) - || !require_native(array)) SWIG_fail; - $1 = (DIM_TYPE) array_size(array,0); - $2 = (DIM_TYPE) array_size(array,1); - $3 = (DIM_TYPE) array_size(array,2); - $4 = (DATA_TYPE*) array_data(array); -} - -/* Typemap suite for (DATA_TYPE* INPLACE_FARRAY3, DIM_TYPE DIM1, DIM_TYPE DIM2, - * DIM_TYPE DIM3) - */ -%typecheck(SWIG_TYPECHECK_DOUBLE_ARRAY, - fragment="NumPy_Macros") - (DATA_TYPE* INPLACE_FARRAY3, DIM_TYPE DIM1, DIM_TYPE DIM2, DIM_TYPE DIM3) -{ - $1 = is_array($input) && PyArray_EquivTypenums(array_type($input), - DATA_TYPECODE); -} -%typemap(in, - fragment="NumPy_Fragments") - (DATA_TYPE* INPLACE_FARRAY3, DIM_TYPE DIM1, DIM_TYPE DIM2, DIM_TYPE DIM3) - (PyArrayObject* array=NULL) -{ - array = obj_to_array_no_conversion($input, DATA_TYPECODE); - if (!array || !require_dimensions(array,3) || !require_contiguous(array) || - !require_native(array) || !require_fortran(array)) SWIG_fail; - $1 = (DATA_TYPE*) array_data(array); - $2 = (DIM_TYPE) array_size(array,0); - $3 = (DIM_TYPE) array_size(array,1); - $4 = (DIM_TYPE) array_size(array,2); -} - -/* Typemap suite for (DIM_TYPE DIM1, DIM_TYPE DIM2, DIM_TYPE DIM3, - * DATA_TYPE* INPLACE_FARRAY3) - */ -%typecheck(SWIG_TYPECHECK_DOUBLE_ARRAY, - fragment="NumPy_Macros") - (DIM_TYPE DIM1, DIM_TYPE DIM2, DIM_TYPE DIM3, DATA_TYPE* INPLACE_FARRAY3) -{ - $1 = is_array($input) && PyArray_EquivTypenums(array_type($input), - DATA_TYPECODE); -} -%typemap(in, - fragment="NumPy_Fragments") - (DIM_TYPE DIM1, DIM_TYPE DIM2, DIM_TYPE DIM3, DATA_TYPE* INPLACE_FARRAY3) - (PyArrayObject* array=NULL) -{ - array = obj_to_array_no_conversion($input, DATA_TYPECODE); - if (!array || !require_dimensions(array,3) || !require_contiguous(array) - || !require_native(array) || !require_fortran(array)) SWIG_fail; - $1 = (DIM_TYPE) array_size(array,0); - $2 = (DIM_TYPE) array_size(array,1); - $3 = (DIM_TYPE) array_size(array,2); - $4 = (DATA_TYPE*) array_data(array); -} - -/* Typemap suite for (DATA_TYPE INPLACE_ARRAY4[ANY][ANY][ANY][ANY]) - */ -%typecheck(SWIG_TYPECHECK_DOUBLE_ARRAY, - fragment="NumPy_Macros") - (DATA_TYPE INPLACE_ARRAY4[ANY][ANY][ANY][ANY]) -{ - $1 = is_array($input) && PyArray_EquivTypenums(array_type($input), - DATA_TYPECODE); -} -%typemap(in, - fragment="NumPy_Fragments") - (DATA_TYPE INPLACE_ARRAY4[ANY][ANY][ANY][ANY]) - (PyArrayObject* array=NULL) -{ - npy_intp size[4] = { $1_dim0, $1_dim1, $1_dim2 , $1_dim3 }; - array = obj_to_array_no_conversion($input, DATA_TYPECODE); - if (!array || !require_dimensions(array,4) || !require_size(array, size, 4) || - !require_contiguous(array) || !require_native(array)) SWIG_fail; - $1 = ($1_ltype) array_data(array); -} - -/* Typemap suite for (DATA_TYPE* INPLACE_ARRAY4, DIM_TYPE DIM1, DIM_TYPE DIM2, - * DIM_TYPE DIM3, DIM_TYPE DIM4) - */ -%typecheck(SWIG_TYPECHECK_DOUBLE_ARRAY, - fragment="NumPy_Macros") - (DATA_TYPE* INPLACE_ARRAY4, DIM_TYPE DIM1, DIM_TYPE DIM2, DIM_TYPE DIM3, DIM_TYPE DIM4) -{ - $1 = is_array($input) && PyArray_EquivTypenums(array_type($input), - DATA_TYPECODE); -} -%typemap(in, - fragment="NumPy_Fragments") - (DATA_TYPE* INPLACE_ARRAY4, DIM_TYPE DIM1, DIM_TYPE DIM2, DIM_TYPE DIM3, DIM_TYPE DIM4) - (PyArrayObject* array=NULL) -{ - array = obj_to_array_no_conversion($input, DATA_TYPECODE); - if (!array || !require_dimensions(array,4) || !require_contiguous(array) || - !require_native(array)) SWIG_fail; - $1 = (DATA_TYPE*) array_data(array); - $2 = (DIM_TYPE) array_size(array,0); - $3 = (DIM_TYPE) array_size(array,1); - $4 = (DIM_TYPE) array_size(array,2); - $5 = (DIM_TYPE) array_size(array,3); -} - -/* Typemap suite for (DATA_TYPE** INPLACE_ARRAY4, DIM_TYPE DIM1, DIM_TYPE DIM2, - * DIM_TYPE DIM3, DIM_TYPE DIM4) - */ -%typecheck(SWIG_TYPECHECK_DOUBLE_ARRAY, - fragment="NumPy_Macros") - (DATA_TYPE** INPLACE_ARRAY4, DIM_TYPE DIM1, DIM_TYPE DIM2, DIM_TYPE DIM3, DIM_TYPE DIM4) -{ - $1 = PySequence_Check($input); -} -%typemap(in, - fragment="NumPy_Fragments") - (DATA_TYPE** INPLACE_ARRAY4, DIM_TYPE DIM1, DIM_TYPE DIM2, DIM_TYPE DIM3, DIM_TYPE DIM4) - (DATA_TYPE** array=NULL, PyArrayObject** object_array=NULL) -{ - npy_intp size[3] = { -1, -1, -1 }; - PyArrayObject* temp_array; - Py_ssize_t i; - - /* length of the list */ - $2 = PyList_Size($input); - - /* the arrays */ - array = (DATA_TYPE **)malloc($2*sizeof(DATA_TYPE *)); - object_array = (PyArrayObject **)calloc($2,sizeof(PyArrayObject *)); - - if (array == NULL || object_array == NULL) - { - SWIG_fail; - } - - for (i=0; i<$2; i++) - { - temp_array = obj_to_array_no_conversion(PySequence_GetItem($input,i), DATA_TYPECODE); - - /* the new array must be stored so that it can be destroyed in freearg */ - object_array[i] = temp_array; - - if ( !temp_array || !require_dimensions(temp_array, 3) || - !require_contiguous(temp_array) || - !require_native(temp_array) || - !PyArray_EquivTypenums(array_type(temp_array), DATA_TYPECODE) - ) SWIG_fail; - - /* store the size of the first array in the list, then use that for comparison. */ - if (i == 0) - { - size[0] = array_size(temp_array,0); - size[1] = array_size(temp_array,1); - size[2] = array_size(temp_array,2); - } - - if (!require_size(temp_array, size, 3)) SWIG_fail; - - array[i] = (DATA_TYPE*) array_data(temp_array); - } - - $1 = (DATA_TYPE**) array; - $3 = (DIM_TYPE) size[0]; - $4 = (DIM_TYPE) size[1]; - $5 = (DIM_TYPE) size[2]; -} -%typemap(freearg) - (DATA_TYPE** INPLACE_ARRAY4, DIM_TYPE DIM1, DIM_TYPE DIM2, DIM_TYPE DIM3, DIM_TYPE DIM4) -{ - if (array$argnum!=NULL) free(array$argnum); - if (object_array$argnum!=NULL) free(object_array$argnum); -} - -/* Typemap suite for (DIM_TYPE DIM1, DIM_TYPE DIM2, DIM_TYPE DIM3, DIM_TYPE DIM4, - * DATA_TYPE* INPLACE_ARRAY4) - */ -%typecheck(SWIG_TYPECHECK_DOUBLE_ARRAY, - fragment="NumPy_Macros") - (DIM_TYPE DIM1, DIM_TYPE DIM2, DIM_TYPE DIM3, DIM_TYPE DIM4, DATA_TYPE* INPLACE_ARRAY4) -{ - $1 = is_array($input) && PyArray_EquivTypenums(array_type($input), - DATA_TYPECODE); -} -%typemap(in, - fragment="NumPy_Fragments") - (DIM_TYPE DIM1, DIM_TYPE DIM2, DIM_TYPE DIM3, DIM_TYPE DIM4, DATA_TYPE* INPLACE_ARRAY4) - (PyArrayObject* array=NULL) -{ - array = obj_to_array_no_conversion($input, DATA_TYPECODE); - if (!array || !require_dimensions(array,4) || !require_contiguous(array) - || !require_native(array)) SWIG_fail; - $1 = (DIM_TYPE) array_size(array,0); - $2 = (DIM_TYPE) array_size(array,1); - $3 = (DIM_TYPE) array_size(array,2); - $4 = (DIM_TYPE) array_size(array,3); - $5 = (DATA_TYPE*) array_data(array); -} - -/* Typemap suite for (DATA_TYPE* INPLACE_FARRAY4, DIM_TYPE DIM1, DIM_TYPE DIM2, - * DIM_TYPE DIM3, DIM_TYPE DIM4) - */ -%typecheck(SWIG_TYPECHECK_DOUBLE_ARRAY, - fragment="NumPy_Macros") - (DATA_TYPE* INPLACE_FARRAY4, DIM_TYPE DIM1, DIM_TYPE DIM2, DIM_TYPE DIM3, DIM_TYPE DIM4) -{ - $1 = is_array($input) && PyArray_EquivTypenums(array_type($input), - DATA_TYPECODE); -} -%typemap(in, - fragment="NumPy_Fragments") - (DATA_TYPE* INPLACE_FARRAY4, DIM_TYPE DIM1, DIM_TYPE DIM2, DIM_TYPE DIM3, DIM_TYPE DIM4) - (PyArrayObject* array=NULL) -{ - array = obj_to_array_no_conversion($input, DATA_TYPECODE); - if (!array || !require_dimensions(array,4) || !require_contiguous(array) || - !require_native(array) || !require_fortran(array)) SWIG_fail; - $1 = (DATA_TYPE*) array_data(array); - $2 = (DIM_TYPE) array_size(array,0); - $3 = (DIM_TYPE) array_size(array,1); - $4 = (DIM_TYPE) array_size(array,2); - $5 = (DIM_TYPE) array_size(array,3); -} - -/* Typemap suite for (DIM_TYPE DIM1, DIM_TYPE DIM2, DIM_TYPE DIM3, - * DATA_TYPE* INPLACE_FARRAY4) - */ -%typecheck(SWIG_TYPECHECK_DOUBLE_ARRAY, - fragment="NumPy_Macros") - (DIM_TYPE DIM1, DIM_TYPE DIM2, DIM_TYPE DIM3, DIM_TYPE DIM4, DATA_TYPE* INPLACE_FARRAY4) -{ - $1 = is_array($input) && PyArray_EquivTypenums(array_type($input), - DATA_TYPECODE); -} -%typemap(in, - fragment="NumPy_Fragments") - (DIM_TYPE DIM1, DIM_TYPE DIM2, DIM_TYPE DIM3, DIM_TYPE DIM4, DATA_TYPE* INPLACE_FARRAY4) - (PyArrayObject* array=NULL) -{ - array = obj_to_array_no_conversion($input, DATA_TYPECODE); - if (!array || !require_dimensions(array,4) || !require_contiguous(array) - || !require_native(array) || !require_fortran(array)) SWIG_fail; - $1 = (DIM_TYPE) array_size(array,0); - $2 = (DIM_TYPE) array_size(array,1); - $3 = (DIM_TYPE) array_size(array,2); - $4 = (DIM_TYPE) array_size(array,3); - $5 = (DATA_TYPE*) array_data(array); -} - -/*************************/ -/* Argout Array Typemaps */ -/*************************/ - -/* Typemap suite for (DATA_TYPE ARGOUT_ARRAY1[ANY]) - */ -%typemap(in,numinputs=0, - fragment="NumPy_Backward_Compatibility,NumPy_Macros") - (DATA_TYPE ARGOUT_ARRAY1[ANY]) - (PyObject* array = NULL) -{ - npy_intp dims[1] = { $1_dim0 }; - array = PyArray_SimpleNew(1, dims, DATA_TYPECODE); - if (!array) SWIG_fail; - $1 = ($1_ltype) array_data(array); -} -%typemap(argout) - (DATA_TYPE ARGOUT_ARRAY1[ANY]) -{ - $result = SWIG_Python_AppendOutput($result,(PyObject*)array$argnum); -} - -/* Typemap suite for (DATA_TYPE* ARGOUT_ARRAY1, DIM_TYPE DIM1) - */ -%typemap(in,numinputs=1, - fragment="NumPy_Fragments") - (DATA_TYPE* ARGOUT_ARRAY1, DIM_TYPE DIM1) - (PyObject* array = NULL) -{ - npy_intp dims[1]; - if (!PyInt_Check($input)) - { - const char* typestring = pytype_string($input); - PyErr_Format(PyExc_TypeError, - "Int dimension expected. '%s' given.", - typestring); - SWIG_fail; - } - $2 = (DIM_TYPE) PyInt_AsLong($input); - dims[0] = (npy_intp) $2; - array = PyArray_SimpleNew(1, dims, DATA_TYPECODE); - if (!array) SWIG_fail; - $1 = (DATA_TYPE*) array_data(array); -} -%typemap(argout) - (DATA_TYPE* ARGOUT_ARRAY1, DIM_TYPE DIM1) -{ - $result = SWIG_Python_AppendOutput($result,(PyObject*)array$argnum); -} - -/* Typemap suite for (DIM_TYPE DIM1, DATA_TYPE* ARGOUT_ARRAY1) - */ -%typemap(in,numinputs=1, - fragment="NumPy_Fragments") - (DIM_TYPE DIM1, DATA_TYPE* ARGOUT_ARRAY1) - (PyObject* array = NULL) -{ - npy_intp dims[1]; - if (!PyInt_Check($input)) - { - const char* typestring = pytype_string($input); - PyErr_Format(PyExc_TypeError, - "Int dimension expected. '%s' given.", - typestring); - SWIG_fail; - } - $1 = (DIM_TYPE) PyInt_AsLong($input); - dims[0] = (npy_intp) $1; - array = PyArray_SimpleNew(1, dims, DATA_TYPECODE); - if (!array) SWIG_fail; - $2 = (DATA_TYPE*) array_data(array); -} -%typemap(argout) - (DIM_TYPE DIM1, DATA_TYPE* ARGOUT_ARRAY1) -{ - $result = SWIG_Python_AppendOutput($result,(PyObject*)array$argnum); -} - -/* Typemap suite for (DATA_TYPE ARGOUT_ARRAY2[ANY][ANY]) - */ -%typemap(in,numinputs=0, - fragment="NumPy_Backward_Compatibility,NumPy_Macros") - (DATA_TYPE ARGOUT_ARRAY2[ANY][ANY]) - (PyObject* array = NULL) -{ - npy_intp dims[2] = { $1_dim0, $1_dim1 }; - array = PyArray_SimpleNew(2, dims, DATA_TYPECODE); - if (!array) SWIG_fail; - $1 = ($1_ltype) array_data(array); -} -%typemap(argout) - (DATA_TYPE ARGOUT_ARRAY2[ANY][ANY]) -{ - $result = SWIG_Python_AppendOutput($result,(PyObject*)array$argnum); -} - -/* Typemap suite for (DATA_TYPE ARGOUT_ARRAY3[ANY][ANY][ANY]) - */ -%typemap(in,numinputs=0, - fragment="NumPy_Backward_Compatibility,NumPy_Macros") - (DATA_TYPE ARGOUT_ARRAY3[ANY][ANY][ANY]) - (PyObject* array = NULL) -{ - npy_intp dims[3] = { $1_dim0, $1_dim1, $1_dim2 }; - array = PyArray_SimpleNew(3, dims, DATA_TYPECODE); - if (!array) SWIG_fail; - $1 = ($1_ltype) array_data(array); -} -%typemap(argout) - (DATA_TYPE ARGOUT_ARRAY3[ANY][ANY][ANY]) -{ - $result = SWIG_Python_AppendOutput($result,(PyObject*)array$argnum); -} - -/* Typemap suite for (DATA_TYPE ARGOUT_ARRAY4[ANY][ANY][ANY][ANY]) - */ -%typemap(in,numinputs=0, - fragment="NumPy_Backward_Compatibility,NumPy_Macros") - (DATA_TYPE ARGOUT_ARRAY4[ANY][ANY][ANY][ANY]) - (PyObject* array = NULL) -{ - npy_intp dims[4] = { $1_dim0, $1_dim1, $1_dim2, $1_dim3 }; - array = PyArray_SimpleNew(4, dims, DATA_TYPECODE); - if (!array) SWIG_fail; - $1 = ($1_ltype) array_data(array); -} -%typemap(argout) - (DATA_TYPE ARGOUT_ARRAY4[ANY][ANY][ANY][ANY]) -{ - $result = SWIG_Python_AppendOutput($result,(PyObject*)array$argnum); -} - -/*****************************/ -/* Argoutview Array Typemaps */ -/*****************************/ - -/* Typemap suite for (DATA_TYPE** ARGOUTVIEW_ARRAY1, DIM_TYPE* DIM1) - */ -%typemap(in,numinputs=0) - (DATA_TYPE** ARGOUTVIEW_ARRAY1, DIM_TYPE* DIM1 ) - (DATA_TYPE* data_temp = NULL , DIM_TYPE dim_temp) -{ - $1 = &data_temp; - $2 = &dim_temp; -} -%typemap(argout, - fragment="NumPy_Backward_Compatibility") - (DATA_TYPE** ARGOUTVIEW_ARRAY1, DIM_TYPE* DIM1) -{ - npy_intp dims[1] = { *$2 }; - PyObject* obj = PyArray_SimpleNewFromData(1, dims, DATA_TYPECODE, (void*)(*$1)); - PyArrayObject* array = (PyArrayObject*) obj; - - if (!array) SWIG_fail; - $result = SWIG_Python_AppendOutput($result,obj); -} - -/* Typemap suite for (DIM_TYPE* DIM1, DATA_TYPE** ARGOUTVIEW_ARRAY1) - */ -%typemap(in,numinputs=0) - (DIM_TYPE* DIM1 , DATA_TYPE** ARGOUTVIEW_ARRAY1) - (DIM_TYPE dim_temp, DATA_TYPE* data_temp = NULL ) -{ - $1 = &dim_temp; - $2 = &data_temp; -} -%typemap(argout, - fragment="NumPy_Backward_Compatibility") - (DIM_TYPE* DIM1, DATA_TYPE** ARGOUTVIEW_ARRAY1) -{ - npy_intp dims[1] = { *$1 }; - PyObject* obj = PyArray_SimpleNewFromData(1, dims, DATA_TYPECODE, (void*)(*$2)); - PyArrayObject* array = (PyArrayObject*) obj; - - if (!array) SWIG_fail; - $result = SWIG_Python_AppendOutput($result,obj); -} - -/* Typemap suite for (DATA_TYPE** ARGOUTVIEW_ARRAY2, DIM_TYPE* DIM1, DIM_TYPE* DIM2) - */ -%typemap(in,numinputs=0) - (DATA_TYPE** ARGOUTVIEW_ARRAY2, DIM_TYPE* DIM1 , DIM_TYPE* DIM2 ) - (DATA_TYPE* data_temp = NULL , DIM_TYPE dim1_temp, DIM_TYPE dim2_temp) -{ - $1 = &data_temp; - $2 = &dim1_temp; - $3 = &dim2_temp; -} -%typemap(argout, - fragment="NumPy_Backward_Compatibility") - (DATA_TYPE** ARGOUTVIEW_ARRAY2, DIM_TYPE* DIM1, DIM_TYPE* DIM2) -{ - npy_intp dims[2] = { *$2, *$3 }; - PyObject* obj = PyArray_SimpleNewFromData(2, dims, DATA_TYPECODE, (void*)(*$1)); - PyArrayObject* array = (PyArrayObject*) obj; - - if (!array) SWIG_fail; - $result = SWIG_Python_AppendOutput($result,obj); -} - -/* Typemap suite for (DIM_TYPE* DIM1, DIM_TYPE* DIM2, DATA_TYPE** ARGOUTVIEW_ARRAY2) - */ -%typemap(in,numinputs=0) - (DIM_TYPE* DIM1 , DIM_TYPE* DIM2 , DATA_TYPE** ARGOUTVIEW_ARRAY2) - (DIM_TYPE dim1_temp, DIM_TYPE dim2_temp, DATA_TYPE* data_temp = NULL ) -{ - $1 = &dim1_temp; - $2 = &dim2_temp; - $3 = &data_temp; -} -%typemap(argout, - fragment="NumPy_Backward_Compatibility") - (DIM_TYPE* DIM1, DIM_TYPE* DIM2, DATA_TYPE** ARGOUTVIEW_ARRAY2) -{ - npy_intp dims[2] = { *$1, *$2 }; - PyObject* obj = PyArray_SimpleNewFromData(2, dims, DATA_TYPECODE, (void*)(*$3)); - PyArrayObject* array = (PyArrayObject*) obj; - - if (!array) SWIG_fail; - $result = SWIG_Python_AppendOutput($result,obj); -} - -/* Typemap suite for (DATA_TYPE** ARGOUTVIEW_FARRAY2, DIM_TYPE* DIM1, DIM_TYPE* DIM2) - */ -%typemap(in,numinputs=0) - (DATA_TYPE** ARGOUTVIEW_FARRAY2, DIM_TYPE* DIM1 , DIM_TYPE* DIM2 ) - (DATA_TYPE* data_temp = NULL , DIM_TYPE dim1_temp, DIM_TYPE dim2_temp) -{ - $1 = &data_temp; - $2 = &dim1_temp; - $3 = &dim2_temp; -} -%typemap(argout, - fragment="NumPy_Backward_Compatibility,NumPy_Array_Requirements") - (DATA_TYPE** ARGOUTVIEW_FARRAY2, DIM_TYPE* DIM1, DIM_TYPE* DIM2) -{ - npy_intp dims[2] = { *$2, *$3 }; - PyObject* obj = PyArray_SimpleNewFromData(2, dims, DATA_TYPECODE, (void*)(*$1)); - PyArrayObject* array = (PyArrayObject*) obj; - - if (!array || !require_fortran(array)) SWIG_fail; - $result = SWIG_Python_AppendOutput($result,obj); -} - -/* Typemap suite for (DIM_TYPE* DIM1, DIM_TYPE* DIM2, DATA_TYPE** ARGOUTVIEW_FARRAY2) - */ -%typemap(in,numinputs=0) - (DIM_TYPE* DIM1 , DIM_TYPE* DIM2 , DATA_TYPE** ARGOUTVIEW_FARRAY2) - (DIM_TYPE dim1_temp, DIM_TYPE dim2_temp, DATA_TYPE* data_temp = NULL ) -{ - $1 = &dim1_temp; - $2 = &dim2_temp; - $3 = &data_temp; -} -%typemap(argout, - fragment="NumPy_Backward_Compatibility,NumPy_Array_Requirements") - (DIM_TYPE* DIM1, DIM_TYPE* DIM2, DATA_TYPE** ARGOUTVIEW_FARRAY2) -{ - npy_intp dims[2] = { *$1, *$2 }; - PyObject* obj = PyArray_SimpleNewFromData(2, dims, DATA_TYPECODE, (void*)(*$3)); - PyArrayObject* array = (PyArrayObject*) obj; - - if (!array || !require_fortran(array)) SWIG_fail; - $result = SWIG_Python_AppendOutput($result,obj); -} - -/* Typemap suite for (DATA_TYPE** ARGOUTVIEW_ARRAY3, DIM_TYPE* DIM1, DIM_TYPE* DIM2, - DIM_TYPE* DIM3) - */ -%typemap(in,numinputs=0) - (DATA_TYPE** ARGOUTVIEW_ARRAY3, DIM_TYPE* DIM1 , DIM_TYPE* DIM2 , DIM_TYPE* DIM3 ) - (DATA_TYPE* data_temp = NULL , DIM_TYPE dim1_temp, DIM_TYPE dim2_temp, DIM_TYPE dim3_temp) -{ - $1 = &data_temp; - $2 = &dim1_temp; - $3 = &dim2_temp; - $4 = &dim3_temp; -} -%typemap(argout, - fragment="NumPy_Backward_Compatibility") - (DATA_TYPE** ARGOUTVIEW_ARRAY3, DIM_TYPE* DIM1, DIM_TYPE* DIM2, DIM_TYPE* DIM3) -{ - npy_intp dims[3] = { *$2, *$3, *$4 }; - PyObject* obj = PyArray_SimpleNewFromData(3, dims, DATA_TYPECODE, (void*)(*$1)); - PyArrayObject* array = (PyArrayObject*) obj; - - if (!array) SWIG_fail; - $result = SWIG_Python_AppendOutput($result,obj); -} - -/* Typemap suite for (DIM_TYPE* DIM1, DIM_TYPE* DIM2, DIM_TYPE* DIM3, - DATA_TYPE** ARGOUTVIEW_ARRAY3) - */ -%typemap(in,numinputs=0) - (DIM_TYPE* DIM1, DIM_TYPE* DIM2, DIM_TYPE* DIM3, DATA_TYPE** ARGOUTVIEW_ARRAY3) - (DIM_TYPE dim1_temp, DIM_TYPE dim2_temp, DIM_TYPE dim3_temp, DATA_TYPE* data_temp = NULL) -{ - $1 = &dim1_temp; - $2 = &dim2_temp; - $3 = &dim3_temp; - $4 = &data_temp; -} -%typemap(argout, - fragment="NumPy_Backward_Compatibility") - (DIM_TYPE* DIM1, DIM_TYPE* DIM2, DIM_TYPE* DIM3, DATA_TYPE** ARGOUTVIEW_ARRAY3) -{ - npy_intp dims[3] = { *$1, *$2, *$3 }; - PyObject* obj = PyArray_SimpleNewFromData(3, dims, DATA_TYPECODE, (void*)(*$4)); - PyArrayObject* array = (PyArrayObject*) obj; - - if (!array) SWIG_fail; - $result = SWIG_Python_AppendOutput($result,obj); -} - -/* Typemap suite for (DATA_TYPE** ARGOUTVIEW_FARRAY3, DIM_TYPE* DIM1, DIM_TYPE* DIM2, - DIM_TYPE* DIM3) - */ -%typemap(in,numinputs=0) - (DATA_TYPE** ARGOUTVIEW_FARRAY3, DIM_TYPE* DIM1 , DIM_TYPE* DIM2 , DIM_TYPE* DIM3 ) - (DATA_TYPE* data_temp = NULL , DIM_TYPE dim1_temp, DIM_TYPE dim2_temp, DIM_TYPE dim3_temp) -{ - $1 = &data_temp; - $2 = &dim1_temp; - $3 = &dim2_temp; - $4 = &dim3_temp; -} -%typemap(argout, - fragment="NumPy_Backward_Compatibility,NumPy_Array_Requirements") - (DATA_TYPE** ARGOUTVIEW_FARRAY3, DIM_TYPE* DIM1, DIM_TYPE* DIM2, DIM_TYPE* DIM3) -{ - npy_intp dims[3] = { *$2, *$3, *$4 }; - PyObject* obj = PyArray_SimpleNewFromData(3, dims, DATA_TYPECODE, (void*)(*$1)); - PyArrayObject* array = (PyArrayObject*) obj; - - if (!array || !require_fortran(array)) SWIG_fail; - $result = SWIG_Python_AppendOutput($result,obj); -} - -/* Typemap suite for (DIM_TYPE* DIM1, DIM_TYPE* DIM2, DIM_TYPE* DIM3, - DATA_TYPE** ARGOUTVIEW_FARRAY3) - */ -%typemap(in,numinputs=0) - (DIM_TYPE* DIM1 , DIM_TYPE* DIM2 , DIM_TYPE* DIM3 , DATA_TYPE** ARGOUTVIEW_FARRAY3) - (DIM_TYPE dim1_temp, DIM_TYPE dim2_temp, DIM_TYPE dim3_temp, DATA_TYPE* data_temp = NULL ) -{ - $1 = &dim1_temp; - $2 = &dim2_temp; - $3 = &dim3_temp; - $4 = &data_temp; -} -%typemap(argout, - fragment="NumPy_Backward_Compatibility,NumPy_Array_Requirements") - (DIM_TYPE* DIM1, DIM_TYPE* DIM2, DIM_TYPE* DIM3, DATA_TYPE** ARGOUTVIEW_FARRAY3) -{ - npy_intp dims[3] = { *$1, *$2, *$3 }; - PyObject* obj = PyArray_SimpleNewFromData(3, dims, DATA_TYPECODE, (void*)(*$4)); - PyArrayObject* array = (PyArrayObject*) obj; - - if (!array || !require_fortran(array)) SWIG_fail; - $result = SWIG_Python_AppendOutput($result,obj); -} - -/* Typemap suite for (DATA_TYPE** ARGOUTVIEW_ARRAY4, DIM_TYPE* DIM1, DIM_TYPE* DIM2, - DIM_TYPE* DIM3, DIM_TYPE* DIM4) - */ -%typemap(in,numinputs=0) - (DATA_TYPE** ARGOUTVIEW_ARRAY4, DIM_TYPE* DIM1 , DIM_TYPE* DIM2 , DIM_TYPE* DIM3 , DIM_TYPE* DIM4 ) - (DATA_TYPE* data_temp = NULL , DIM_TYPE dim1_temp, DIM_TYPE dim2_temp, DIM_TYPE dim3_temp, DIM_TYPE dim4_temp) -{ - $1 = &data_temp; - $2 = &dim1_temp; - $3 = &dim2_temp; - $4 = &dim3_temp; - $5 = &dim4_temp; -} -%typemap(argout, - fragment="NumPy_Backward_Compatibility") - (DATA_TYPE** ARGOUTVIEW_ARRAY4, DIM_TYPE* DIM1, DIM_TYPE* DIM2, DIM_TYPE* DIM3, DIM_TYPE* DIM4) -{ - npy_intp dims[4] = { *$2, *$3, *$4 , *$5 }; - PyObject* obj = PyArray_SimpleNewFromData(4, dims, DATA_TYPECODE, (void*)(*$1)); - PyArrayObject* array = (PyArrayObject*) obj; - - if (!array) SWIG_fail; - $result = SWIG_Python_AppendOutput($result,obj); -} - -/* Typemap suite for (DIM_TYPE* DIM1, DIM_TYPE* DIM2, DIM_TYPE* DIM3, DIM_TYPE* DIM4, - DATA_TYPE** ARGOUTVIEW_ARRAY4) - */ -%typemap(in,numinputs=0) - (DIM_TYPE* DIM1 , DIM_TYPE* DIM2 , DIM_TYPE* DIM3 , DIM_TYPE* DIM4 , DATA_TYPE** ARGOUTVIEW_ARRAY4) - (DIM_TYPE dim1_temp, DIM_TYPE dim2_temp, DIM_TYPE dim3_temp, DIM_TYPE dim4_temp, DATA_TYPE* data_temp = NULL ) -{ - $1 = &dim1_temp; - $2 = &dim2_temp; - $3 = &dim3_temp; - $4 = &dim4_temp; - $5 = &data_temp; -} -%typemap(argout, - fragment="NumPy_Backward_Compatibility") - (DIM_TYPE* DIM1, DIM_TYPE* DIM2, DIM_TYPE* DIM3, DIM_TYPE* DIM4, DATA_TYPE** ARGOUTVIEW_ARRAY4) -{ - npy_intp dims[4] = { *$1, *$2, *$3 , *$4 }; - PyObject* obj = PyArray_SimpleNewFromData(4, dims, DATA_TYPECODE, (void*)(*$5)); - PyArrayObject* array = (PyArrayObject*) obj; - - if (!array) SWIG_fail; - $result = SWIG_Python_AppendOutput($result,obj); -} - -/* Typemap suite for (DATA_TYPE** ARGOUTVIEW_FARRAY4, DIM_TYPE* DIM1, DIM_TYPE* DIM2, - DIM_TYPE* DIM3, DIM_TYPE* DIM4) - */ -%typemap(in,numinputs=0) - (DATA_TYPE** ARGOUTVIEW_FARRAY4, DIM_TYPE* DIM1 , DIM_TYPE* DIM2 , DIM_TYPE* DIM3 , DIM_TYPE* DIM4 ) - (DATA_TYPE* data_temp = NULL , DIM_TYPE dim1_temp, DIM_TYPE dim2_temp, DIM_TYPE dim3_temp, DIM_TYPE dim4_temp) -{ - $1 = &data_temp; - $2 = &dim1_temp; - $3 = &dim2_temp; - $4 = &dim3_temp; - $5 = &dim4_temp; -} -%typemap(argout, - fragment="NumPy_Backward_Compatibility,NumPy_Array_Requirements") - (DATA_TYPE** ARGOUTVIEW_FARRAY4, DIM_TYPE* DIM1, DIM_TYPE* DIM2, DIM_TYPE* DIM3, DIM_TYPE* DIM4) -{ - npy_intp dims[4] = { *$2, *$3, *$4 , *$5 }; - PyObject* obj = PyArray_SimpleNewFromData(4, dims, DATA_TYPECODE, (void*)(*$1)); - PyArrayObject* array = (PyArrayObject*) obj; - - if (!array || !require_fortran(array)) SWIG_fail; - $result = SWIG_Python_AppendOutput($result,obj); -} - -/* Typemap suite for (DIM_TYPE* DIM1, DIM_TYPE* DIM2, DIM_TYPE* DIM3, DIM_TYPE* DIM4, - DATA_TYPE** ARGOUTVIEW_FARRAY4) - */ -%typemap(in,numinputs=0) - (DIM_TYPE* DIM1 , DIM_TYPE* DIM2 , DIM_TYPE* DIM3 , DIM_TYPE* DIM4 , DATA_TYPE** ARGOUTVIEW_FARRAY4) - (DIM_TYPE dim1_temp, DIM_TYPE dim2_temp, DIM_TYPE dim3_temp, DIM_TYPE dim4_temp, DATA_TYPE* data_temp = NULL ) -{ - $1 = &dim1_temp; - $2 = &dim2_temp; - $3 = &dim3_temp; - $4 = &dim4_temp; - $5 = &data_temp; -} -%typemap(argout, - fragment="NumPy_Backward_Compatibility,NumPy_Array_Requirements") - (DIM_TYPE* DIM1, DIM_TYPE* DIM2, DIM_TYPE* DIM3, DIM_TYPE* DIM4, DATA_TYPE** ARGOUTVIEW_FARRAY4) -{ - npy_intp dims[4] = { *$1, *$2, *$3 , *$4 }; - PyObject* obj = PyArray_SimpleNewFromData(4, dims, DATA_TYPECODE, (void*)(*$5)); - PyArrayObject* array = (PyArrayObject*) obj; - - if (!array || !require_fortran(array)) SWIG_fail; - $result = SWIG_Python_AppendOutput($result,obj); -} - -/*************************************/ -/* Managed Argoutview Array Typemaps */ -/*************************************/ - -/* Typemap suite for (DATA_TYPE** ARGOUTVIEWM_ARRAY1, DIM_TYPE* DIM1) - */ -%typemap(in,numinputs=0) - (DATA_TYPE** ARGOUTVIEWM_ARRAY1, DIM_TYPE* DIM1 ) - (DATA_TYPE* data_temp = NULL , DIM_TYPE dim_temp) -{ - $1 = &data_temp; - $2 = &dim_temp; -} -%typemap(argout, - fragment="NumPy_Backward_Compatibility") - (DATA_TYPE** ARGOUTVIEWM_ARRAY1, DIM_TYPE* DIM1) -{ - npy_intp dims[1] = { *$2 }; - PyObject* obj = PyArray_SimpleNewFromData(1, dims, DATA_TYPECODE, (void*)(*$1)); - PyArrayObject* array = (PyArrayObject*) obj; - - if (!array) SWIG_fail; - -%#ifdef SWIGPY_USE_CAPSULE - PyObject* cap = PyCapsule_New((void*)(*$1), SWIGPY_CAPSULE_NAME, free_cap); -%#else - PyObject* cap = PyCObject_FromVoidPtr((void*)(*$1), free); -%#endif - -%#if NPY_API_VERSION < 0x00000007 - PyArray_BASE(array) = cap; -%#else - PyArray_SetBaseObject(array,cap); -%#endif - - $result = SWIG_Python_AppendOutput($result,obj); -} - -/* Typemap suite for (DIM_TYPE* DIM1, DATA_TYPE** ARGOUTVIEWM_ARRAY1) - */ -%typemap(in,numinputs=0) - (DIM_TYPE* DIM1 , DATA_TYPE** ARGOUTVIEWM_ARRAY1) - (DIM_TYPE dim_temp, DATA_TYPE* data_temp = NULL ) -{ - $1 = &dim_temp; - $2 = &data_temp; -} -%typemap(argout, - fragment="NumPy_Backward_Compatibility") - (DIM_TYPE* DIM1, DATA_TYPE** ARGOUTVIEWM_ARRAY1) -{ - npy_intp dims[1] = { *$1 }; - PyObject* obj = PyArray_SimpleNewFromData(1, dims, DATA_TYPECODE, (void*)(*$2)); - PyArrayObject* array = (PyArrayObject*) obj; - - if (!array) SWIG_fail; - -%#ifdef SWIGPY_USE_CAPSULE - PyObject* cap = PyCapsule_New((void*)(*$1), SWIGPY_CAPSULE_NAME, free_cap); -%#else - PyObject* cap = PyCObject_FromVoidPtr((void*)(*$1), free); -%#endif - -%#if NPY_API_VERSION < 0x00000007 - PyArray_BASE(array) = cap; -%#else - PyArray_SetBaseObject(array,cap); -%#endif - - $result = SWIG_Python_AppendOutput($result,obj); -} - -/* Typemap suite for (DATA_TYPE** ARGOUTVIEWM_ARRAY2, DIM_TYPE* DIM1, DIM_TYPE* DIM2) - */ -%typemap(in,numinputs=0) - (DATA_TYPE** ARGOUTVIEWM_ARRAY2, DIM_TYPE* DIM1 , DIM_TYPE* DIM2 ) - (DATA_TYPE* data_temp = NULL , DIM_TYPE dim1_temp, DIM_TYPE dim2_temp) -{ - $1 = &data_temp; - $2 = &dim1_temp; - $3 = &dim2_temp; -} -%typemap(argout, - fragment="NumPy_Backward_Compatibility") - (DATA_TYPE** ARGOUTVIEWM_ARRAY2, DIM_TYPE* DIM1, DIM_TYPE* DIM2) -{ - npy_intp dims[2] = { *$2, *$3 }; - PyObject* obj = PyArray_SimpleNewFromData(2, dims, DATA_TYPECODE, (void*)(*$1)); - PyArrayObject* array = (PyArrayObject*) obj; - - if (!array) SWIG_fail; - -%#ifdef SWIGPY_USE_CAPSULE - PyObject* cap = PyCapsule_New((void*)(*$1), SWIGPY_CAPSULE_NAME, free_cap); -%#else - PyObject* cap = PyCObject_FromVoidPtr((void*)(*$1), free); -%#endif - -%#if NPY_API_VERSION < 0x00000007 - PyArray_BASE(array) = cap; -%#else - PyArray_SetBaseObject(array,cap); -%#endif - - $result = SWIG_Python_AppendOutput($result,obj); -} - -/* Typemap suite for (DIM_TYPE* DIM1, DIM_TYPE* DIM2, DATA_TYPE** ARGOUTVIEWM_ARRAY2) - */ -%typemap(in,numinputs=0) - (DIM_TYPE* DIM1 , DIM_TYPE* DIM2 , DATA_TYPE** ARGOUTVIEWM_ARRAY2) - (DIM_TYPE dim1_temp, DIM_TYPE dim2_temp, DATA_TYPE* data_temp = NULL ) -{ - $1 = &dim1_temp; - $2 = &dim2_temp; - $3 = &data_temp; -} -%typemap(argout, - fragment="NumPy_Backward_Compatibility") - (DIM_TYPE* DIM1, DIM_TYPE* DIM2, DATA_TYPE** ARGOUTVIEWM_ARRAY2) -{ - npy_intp dims[2] = { *$1, *$2 }; - PyObject* obj = PyArray_SimpleNewFromData(2, dims, DATA_TYPECODE, (void*)(*$3)); - PyArrayObject* array = (PyArrayObject*) obj; - - if (!array) SWIG_fail; - -%#ifdef SWIGPY_USE_CAPSULE - PyObject* cap = PyCapsule_New((void*)(*$1), SWIGPY_CAPSULE_NAME, free_cap); -%#else - PyObject* cap = PyCObject_FromVoidPtr((void*)(*$1), free); -%#endif - -%#if NPY_API_VERSION < 0x00000007 - PyArray_BASE(array) = cap; -%#else - PyArray_SetBaseObject(array,cap); -%#endif - - $result = SWIG_Python_AppendOutput($result,obj); -} - -/* Typemap suite for (DATA_TYPE** ARGOUTVIEWM_FARRAY2, DIM_TYPE* DIM1, DIM_TYPE* DIM2) - */ -%typemap(in,numinputs=0) - (DATA_TYPE** ARGOUTVIEWM_FARRAY2, DIM_TYPE* DIM1 , DIM_TYPE* DIM2 ) - (DATA_TYPE* data_temp = NULL , DIM_TYPE dim1_temp, DIM_TYPE dim2_temp) -{ - $1 = &data_temp; - $2 = &dim1_temp; - $3 = &dim2_temp; -} -%typemap(argout, - fragment="NumPy_Backward_Compatibility,NumPy_Array_Requirements") - (DATA_TYPE** ARGOUTVIEWM_FARRAY2, DIM_TYPE* DIM1, DIM_TYPE* DIM2) -{ - npy_intp dims[2] = { *$2, *$3 }; - PyObject* obj = PyArray_SimpleNewFromData(2, dims, DATA_TYPECODE, (void*)(*$1)); - PyArrayObject* array = (PyArrayObject*) obj; - - if (!array || !require_fortran(array)) SWIG_fail; - -%#ifdef SWIGPY_USE_CAPSULE - PyObject* cap = PyCapsule_New((void*)(*$1), SWIGPY_CAPSULE_NAME, free_cap); -%#else - PyObject* cap = PyCObject_FromVoidPtr((void*)(*$1), free); -%#endif - -%#if NPY_API_VERSION < 0x00000007 - PyArray_BASE(array) = cap; -%#else - PyArray_SetBaseObject(array,cap); -%#endif - - $result = SWIG_Python_AppendOutput($result,obj); -} - -/* Typemap suite for (DIM_TYPE* DIM1, DIM_TYPE* DIM2, DATA_TYPE** ARGOUTVIEWM_FARRAY2) - */ -%typemap(in,numinputs=0) - (DIM_TYPE* DIM1 , DIM_TYPE* DIM2 , DATA_TYPE** ARGOUTVIEWM_FARRAY2) - (DIM_TYPE dim1_temp, DIM_TYPE dim2_temp, DATA_TYPE* data_temp = NULL ) -{ - $1 = &dim1_temp; - $2 = &dim2_temp; - $3 = &data_temp; -} -%typemap(argout, - fragment="NumPy_Backward_Compatibility,NumPy_Array_Requirements") - (DIM_TYPE* DIM1, DIM_TYPE* DIM2, DATA_TYPE** ARGOUTVIEWM_FARRAY2) -{ - npy_intp dims[2] = { *$1, *$2 }; - PyObject* obj = PyArray_SimpleNewFromData(2, dims, DATA_TYPECODE, (void*)(*$3)); - PyArrayObject* array = (PyArrayObject*) obj; - - if (!array || !require_fortran(array)) SWIG_fail; - -%#ifdef SWIGPY_USE_CAPSULE - PyObject* cap = PyCapsule_New((void*)(*$1), SWIGPY_CAPSULE_NAME, free_cap); -%#else - PyObject* cap = PyCObject_FromVoidPtr((void*)(*$1), free); -%#endif - -%#if NPY_API_VERSION < 0x00000007 - PyArray_BASE(array) = cap; -%#else - PyArray_SetBaseObject(array,cap); -%#endif - - $result = SWIG_Python_AppendOutput($result,obj); -} - -/* Typemap suite for (DATA_TYPE** ARGOUTVIEWM_ARRAY3, DIM_TYPE* DIM1, DIM_TYPE* DIM2, - DIM_TYPE* DIM3) - */ -%typemap(in,numinputs=0) - (DATA_TYPE** ARGOUTVIEWM_ARRAY3, DIM_TYPE* DIM1 , DIM_TYPE* DIM2 , DIM_TYPE* DIM3 ) - (DATA_TYPE* data_temp = NULL , DIM_TYPE dim1_temp, DIM_TYPE dim2_temp, DIM_TYPE dim3_temp) -{ - $1 = &data_temp; - $2 = &dim1_temp; - $3 = &dim2_temp; - $4 = &dim3_temp; -} -%typemap(argout, - fragment="NumPy_Backward_Compatibility") - (DATA_TYPE** ARGOUTVIEWM_ARRAY3, DIM_TYPE* DIM1, DIM_TYPE* DIM2, DIM_TYPE* DIM3) -{ - npy_intp dims[3] = { *$2, *$3, *$4 }; - PyObject* obj = PyArray_SimpleNewFromData(3, dims, DATA_TYPECODE, (void*)(*$1)); - PyArrayObject* array = (PyArrayObject*) obj; - - if (!array) SWIG_fail; - -%#ifdef SWIGPY_USE_CAPSULE - PyObject* cap = PyCapsule_New((void*)(*$1), SWIGPY_CAPSULE_NAME, free_cap); -%#else - PyObject* cap = PyCObject_FromVoidPtr((void*)(*$1), free); -%#endif - -%#if NPY_API_VERSION < 0x00000007 - PyArray_BASE(array) = cap; -%#else - PyArray_SetBaseObject(array,cap); -%#endif - - $result = SWIG_Python_AppendOutput($result,obj); -} - -/* Typemap suite for (DIM_TYPE* DIM1, DIM_TYPE* DIM2, DIM_TYPE* DIM3, - DATA_TYPE** ARGOUTVIEWM_ARRAY3) - */ -%typemap(in,numinputs=0) - (DIM_TYPE* DIM1 , DIM_TYPE* DIM2 , DIM_TYPE* DIM3 , DATA_TYPE** ARGOUTVIEWM_ARRAY3) - (DIM_TYPE dim1_temp, DIM_TYPE dim2_temp, DIM_TYPE dim3_temp, DATA_TYPE* data_temp = NULL ) -{ - $1 = &dim1_temp; - $2 = &dim2_temp; - $3 = &dim3_temp; - $4 = &data_temp; -} -%typemap(argout, - fragment="NumPy_Backward_Compatibility") - (DIM_TYPE* DIM1, DIM_TYPE* DIM2, DIM_TYPE* DIM3, DATA_TYPE** ARGOUTVIEWM_ARRAY3) -{ - npy_intp dims[3] = { *$1, *$2, *$3 }; - PyObject* obj= PyArray_SimpleNewFromData(3, dims, DATA_TYPECODE, (void*)(*$4)); - PyArrayObject* array = (PyArrayObject*) obj; - - if (!array) SWIG_fail; - -%#ifdef SWIGPY_USE_CAPSULE - PyObject* cap = PyCapsule_New((void*)(*$1), SWIGPY_CAPSULE_NAME, free_cap); -%#else - PyObject* cap = PyCObject_FromVoidPtr((void*)(*$1), free); -%#endif - -%#if NPY_API_VERSION < 0x00000007 - PyArray_BASE(array) = cap; -%#else - PyArray_SetBaseObject(array,cap); -%#endif - - $result = SWIG_Python_AppendOutput($result,obj); -} - -/* Typemap suite for (DATA_TYPE** ARGOUTVIEWM_FARRAY3, DIM_TYPE* DIM1, DIM_TYPE* DIM2, - DIM_TYPE* DIM3) - */ -%typemap(in,numinputs=0) - (DATA_TYPE** ARGOUTVIEWM_FARRAY3, DIM_TYPE* DIM1 , DIM_TYPE* DIM2 , DIM_TYPE* DIM3 ) - (DATA_TYPE* data_temp = NULL , DIM_TYPE dim1_temp, DIM_TYPE dim2_temp, DIM_TYPE dim3_temp) -{ - $1 = &data_temp; - $2 = &dim1_temp; - $3 = &dim2_temp; - $4 = &dim3_temp; -} -%typemap(argout, - fragment="NumPy_Backward_Compatibility,NumPy_Array_Requirements") - (DATA_TYPE** ARGOUTVIEWM_FARRAY3, DIM_TYPE* DIM1, DIM_TYPE* DIM2, DIM_TYPE* DIM3) -{ - npy_intp dims[3] = { *$2, *$3, *$4 }; - PyObject* obj = PyArray_SimpleNewFromData(3, dims, DATA_TYPECODE, (void*)(*$1)); - PyArrayObject* array = (PyArrayObject*) obj; - - if (!array || !require_fortran(array)) SWIG_fail; - -%#ifdef SWIGPY_USE_CAPSULE - PyObject* cap = PyCapsule_New((void*)(*$1), SWIGPY_CAPSULE_NAME, free_cap); -%#else - PyObject* cap = PyCObject_FromVoidPtr((void*)(*$1), free); -%#endif - -%#if NPY_API_VERSION < 0x00000007 - PyArray_BASE(array) = cap; -%#else - PyArray_SetBaseObject(array,cap); -%#endif - - $result = SWIG_Python_AppendOutput($result,obj); -} - -/* Typemap suite for (DIM_TYPE* DIM1, DIM_TYPE* DIM2, DIM_TYPE* DIM3, - DATA_TYPE** ARGOUTVIEWM_FARRAY3) - */ -%typemap(in,numinputs=0) - (DIM_TYPE* DIM1 , DIM_TYPE* DIM2 , DIM_TYPE* DIM3 , DATA_TYPE** ARGOUTVIEWM_FARRAY3) - (DIM_TYPE dim1_temp, DIM_TYPE dim2_temp, DIM_TYPE dim3_temp, DATA_TYPE* data_temp = NULL ) -{ - $1 = &dim1_temp; - $2 = &dim2_temp; - $3 = &dim3_temp; - $4 = &data_temp; -} -%typemap(argout, - fragment="NumPy_Backward_Compatibility,NumPy_Array_Requirements") - (DIM_TYPE* DIM1, DIM_TYPE* DIM2, DIM_TYPE* DIM3, DATA_TYPE** ARGOUTVIEWM_FARRAY3) -{ - npy_intp dims[3] = { *$1, *$2, *$3 }; - PyObject* obj = PyArray_SimpleNewFromData(3, dims, DATA_TYPECODE, (void*)(*$4)); - PyArrayObject* array = (PyArrayObject*) obj; - - if (!array || !require_fortran(array)) SWIG_fail; - -%#ifdef SWIGPY_USE_CAPSULE - PyObject* cap = PyCapsule_New((void*)(*$1), SWIGPY_CAPSULE_NAME, free_cap); -%#else - PyObject* cap = PyCObject_FromVoidPtr((void*)(*$1), free); -%#endif - -%#if NPY_API_VERSION < 0x00000007 - PyArray_BASE(array) = cap; -%#else - PyArray_SetBaseObject(array,cap); -%#endif - - $result = SWIG_Python_AppendOutput($result,obj); -} - -/* Typemap suite for (DATA_TYPE** ARGOUTVIEWM_ARRAY4, DIM_TYPE* DIM1, DIM_TYPE* DIM2, - DIM_TYPE* DIM3, DIM_TYPE* DIM4) - */ -%typemap(in,numinputs=0) - (DATA_TYPE** ARGOUTVIEWM_ARRAY4, DIM_TYPE* DIM1 , DIM_TYPE* DIM2 , DIM_TYPE* DIM3 , DIM_TYPE* DIM4 ) - (DATA_TYPE* data_temp = NULL , DIM_TYPE dim1_temp, DIM_TYPE dim2_temp, DIM_TYPE dim3_temp, DIM_TYPE dim4_temp) -{ - $1 = &data_temp; - $2 = &dim1_temp; - $3 = &dim2_temp; - $4 = &dim3_temp; - $5 = &dim4_temp; -} -%typemap(argout, - fragment="NumPy_Backward_Compatibility") - (DATA_TYPE** ARGOUTVIEWM_ARRAY4, DIM_TYPE* DIM1, DIM_TYPE* DIM2, DIM_TYPE* DIM3, DIM_TYPE* DIM4) -{ - npy_intp dims[4] = { *$2, *$3, *$4 , *$5 }; - PyObject* obj = PyArray_SimpleNewFromData(4, dims, DATA_TYPECODE, (void*)(*$1)); - PyArrayObject* array = (PyArrayObject*) obj; - - if (!array) SWIG_fail; - -%#ifdef SWIGPY_USE_CAPSULE - PyObject* cap = PyCapsule_New((void*)(*$1), SWIGPY_CAPSULE_NAME, free_cap); -%#else - PyObject* cap = PyCObject_FromVoidPtr((void*)(*$1), free); -%#endif - -%#if NPY_API_VERSION < 0x00000007 - PyArray_BASE(array) = cap; -%#else - PyArray_SetBaseObject(array,cap); -%#endif - - $result = SWIG_Python_AppendOutput($result,obj); -} - -/* Typemap suite for (DIM_TYPE* DIM1, DIM_TYPE* DIM2, DIM_TYPE* DIM3, DIM_TYPE* DIM4, - DATA_TYPE** ARGOUTVIEWM_ARRAY4) - */ -%typemap(in,numinputs=0) - (DIM_TYPE* DIM1 , DIM_TYPE* DIM2 , DIM_TYPE* DIM3 , DIM_TYPE* DIM4 , DATA_TYPE** ARGOUTVIEWM_ARRAY4) - (DIM_TYPE dim1_temp, DIM_TYPE dim2_temp, DIM_TYPE dim3_temp, DIM_TYPE dim4_temp, DATA_TYPE* data_temp = NULL ) -{ - $1 = &dim1_temp; - $2 = &dim2_temp; - $3 = &dim3_temp; - $4 = &dim4_temp; - $5 = &data_temp; -} -%typemap(argout, - fragment="NumPy_Backward_Compatibility") - (DIM_TYPE* DIM1, DIM_TYPE* DIM2, DIM_TYPE* DIM3, DIM_TYPE* DIM4, DATA_TYPE** ARGOUTVIEWM_ARRAY4) -{ - npy_intp dims[4] = { *$1, *$2, *$3 , *$4 }; - PyObject* obj = PyArray_SimpleNewFromData(4, dims, DATA_TYPECODE, (void*)(*$5)); - PyArrayObject* array = (PyArrayObject*) obj; - - if (!array) SWIG_fail; - -%#ifdef SWIGPY_USE_CAPSULE - PyObject* cap = PyCapsule_New((void*)(*$1), SWIGPY_CAPSULE_NAME, free_cap); -%#else - PyObject* cap = PyCObject_FromVoidPtr((void*)(*$1), free); -%#endif - -%#if NPY_API_VERSION < 0x00000007 - PyArray_BASE(array) = cap; -%#else - PyArray_SetBaseObject(array,cap); -%#endif - - $result = SWIG_Python_AppendOutput($result,obj); -} - -/* Typemap suite for (DATA_TYPE** ARGOUTVIEWM_FARRAY4, DIM_TYPE* DIM1, DIM_TYPE* DIM2, - DIM_TYPE* DIM3, DIM_TYPE* DIM4) - */ -%typemap(in,numinputs=0) - (DATA_TYPE** ARGOUTVIEWM_FARRAY4, DIM_TYPE* DIM1 , DIM_TYPE* DIM2 , DIM_TYPE* DIM3 , DIM_TYPE* DIM4 ) - (DATA_TYPE* data_temp = NULL , DIM_TYPE dim1_temp, DIM_TYPE dim2_temp, DIM_TYPE dim3_temp, DIM_TYPE dim4_temp) -{ - $1 = &data_temp; - $2 = &dim1_temp; - $3 = &dim2_temp; - $4 = &dim3_temp; - $5 = &dim4_temp; -} -%typemap(argout, - fragment="NumPy_Backward_Compatibility,NumPy_Array_Requirements") - (DATA_TYPE** ARGOUTVIEWM_FARRAY4, DIM_TYPE* DIM1, DIM_TYPE* DIM2, DIM_TYPE* DIM3) -{ - npy_intp dims[4] = { *$2, *$3, *$4 , *$5 }; - PyObject* obj = PyArray_SimpleNewFromData(4, dims, DATA_TYPECODE, (void*)(*$1)); - PyArrayObject* array = (PyArrayObject*) obj; - - if (!array || !require_fortran(array)) SWIG_fail; - -%#ifdef SWIGPY_USE_CAPSULE - PyObject* cap = PyCapsule_New((void*)(*$1), SWIGPY_CAPSULE_NAME, free_cap); -%#else - PyObject* cap = PyCObject_FromVoidPtr((void*)(*$1), free); -%#endif - -%#if NPY_API_VERSION < 0x00000007 - PyArray_BASE(array) = cap; -%#else - PyArray_SetBaseObject(array,cap); -%#endif - - $result = SWIG_Python_AppendOutput($result,obj); -} - -/* Typemap suite for (DIM_TYPE* DIM1, DIM_TYPE* DIM2, DIM_TYPE* DIM3, DIM_TYPE* DIM4, - DATA_TYPE** ARGOUTVIEWM_FARRAY4) - */ -%typemap(in,numinputs=0) - (DIM_TYPE* DIM1 , DIM_TYPE* DIM2 , DIM_TYPE* DIM3 , DIM_TYPE* DIM4 , DATA_TYPE** ARGOUTVIEWM_FARRAY4) - (DIM_TYPE dim1_temp, DIM_TYPE dim2_temp, DIM_TYPE dim3_temp, DIM_TYPE dim4_temp, DATA_TYPE* data_temp = NULL ) -{ - $1 = &dim1_temp; - $2 = &dim2_temp; - $3 = &dim3_temp; - $4 = &dim4_temp; - $5 = &data_temp; -} -%typemap(argout, - fragment="NumPy_Backward_Compatibility,NumPy_Array_Requirements") - (DIM_TYPE* DIM1, DIM_TYPE* DIM2, DIM_TYPE* DIM3, DIM_TYPE* DIM4, DATA_TYPE** ARGOUTVIEWM_FARRAY4) -{ - npy_intp dims[4] = { *$1, *$2, *$3 , *$4 }; - PyObject* obj = PyArray_SimpleNewFromData(4, dims, DATA_TYPECODE, (void*)(*$5)); - PyArrayObject* array = (PyArrayObject*) obj; - - if (!array || !require_fortran(array)) SWIG_fail; - -%#ifdef SWIGPY_USE_CAPSULE - PyObject* cap = PyCapsule_New((void*)(*$1), SWIGPY_CAPSULE_NAME, free_cap); -%#else - PyObject* cap = PyCObject_FromVoidPtr((void*)(*$1), free); -%#endif - -%#if NPY_API_VERSION < 0x00000007 - PyArray_BASE(array) = cap; -%#else - PyArray_SetBaseObject(array,cap); -%#endif - - $result = SWIG_Python_AppendOutput($result,obj); -} - -/* Typemap suite for (DATA_TYPE** ARGOUTVIEWM_ARRAY4, DIM_TYPE* DIM1, DIM_TYPE* DIM2, - DIM_TYPE* DIM3, DIM_TYPE* DIM4) - */ -%typemap(in,numinputs=0) - (DATA_TYPE** ARGOUTVIEWM_ARRAY4, DIM_TYPE* DIM1 , DIM_TYPE* DIM2 , DIM_TYPE* DIM3 , DIM_TYPE* DIM4 ) - (DATA_TYPE* data_temp = NULL , DIM_TYPE dim1_temp, DIM_TYPE dim2_temp, DIM_TYPE dim3_temp, DIM_TYPE dim4_temp) -{ - $1 = &data_temp; - $2 = &dim1_temp; - $3 = &dim2_temp; - $4 = &dim3_temp; - $5 = &dim4_temp; -} -%typemap(argout, - fragment="NumPy_Backward_Compatibility") - (DATA_TYPE** ARGOUTVIEWM_ARRAY4, DIM_TYPE* DIM1, DIM_TYPE* DIM2, DIM_TYPE* DIM3, DIM_TYPE* DIM4) -{ - npy_intp dims[4] = { *$2, *$3, *$4 , *$5 }; - PyObject* obj = PyArray_SimpleNewFromData(4, dims, DATA_TYPECODE, (void*)(*$1)); - PyArrayObject* array = (PyArrayObject*) obj; - - if (!array) SWIG_fail; - -%#ifdef SWIGPY_USE_CAPSULE - PyObject* cap = PyCapsule_New((void*)(*$1), SWIGPY_CAPSULE_NAME, free_cap); -%#else - PyObject* cap = PyCObject_FromVoidPtr((void*)(*$1), free); -%#endif - -%#if NPY_API_VERSION < 0x00000007 - PyArray_BASE(array) = cap; -%#else - PyArray_SetBaseObject(array,cap); -%#endif - - $result = SWIG_Python_AppendOutput($result,obj); -} - -/* Typemap suite for (DIM_TYPE* DIM1, DIM_TYPE* DIM2, DIM_TYPE* DIM3, DIM_TYPE* DIM4, - DATA_TYPE** ARGOUTVIEWM_ARRAY4) - */ -%typemap(in,numinputs=0) - (DIM_TYPE* DIM1 , DIM_TYPE* DIM2 , DIM_TYPE* DIM3 , DIM_TYPE* DIM4 , DATA_TYPE** ARGOUTVIEWM_ARRAY4) - (DIM_TYPE dim1_temp, DIM_TYPE dim2_temp, DIM_TYPE dim3_temp, DIM_TYPE dim4_temp, DATA_TYPE* data_temp = NULL ) -{ - $1 = &dim1_temp; - $2 = &dim2_temp; - $3 = &dim3_temp; - $4 = &dim4_temp; - $5 = &data_temp; -} -%typemap(argout, - fragment="NumPy_Backward_Compatibility") - (DIM_TYPE* DIM1, DIM_TYPE* DIM2, DIM_TYPE* DIM3, DIM_TYPE* DIM4, DATA_TYPE** ARGOUTVIEWM_ARRAY4) -{ - npy_intp dims[4] = { *$1, *$2, *$3 , *$4 }; - PyObject* obj = PyArray_SimpleNewFromData(4, dims, DATA_TYPECODE, (void*)(*$5)); - PyArrayObject* array = (PyArrayObject*) obj; - - if (!array) SWIG_fail; - -%#ifdef SWIGPY_USE_CAPSULE - PyObject* cap = PyCapsule_New((void*)(*$1), SWIGPY_CAPSULE_NAME, free_cap); -%#else - PyObject* cap = PyCObject_FromVoidPtr((void*)(*$1), free); -%#endif - -%#if NPY_API_VERSION < 0x00000007 - PyArray_BASE(array) = cap; -%#else - PyArray_SetBaseObject(array,cap); -%#endif - - $result = SWIG_Python_AppendOutput($result,obj); -} - -/* Typemap suite for (DATA_TYPE** ARGOUTVIEWM_FARRAY4, DIM_TYPE* DIM1, DIM_TYPE* DIM2, - DIM_TYPE* DIM3, DIM_TYPE* DIM4) - */ -%typemap(in,numinputs=0) - (DATA_TYPE** ARGOUTVIEWM_FARRAY4, DIM_TYPE* DIM1 , DIM_TYPE* DIM2 , DIM_TYPE* DIM3 , DIM_TYPE* DIM4 ) - (DATA_TYPE* data_temp = NULL , DIM_TYPE dim1_temp, DIM_TYPE dim2_temp, DIM_TYPE dim3_temp, DIM_TYPE dim4_temp) -{ - $1 = &data_temp; - $2 = &dim1_temp; - $3 = &dim2_temp; - $4 = &dim3_temp; - $5 = &dim4_temp; -} -%typemap(argout, - fragment="NumPy_Backward_Compatibility,NumPy_Array_Requirements") - (DATA_TYPE** ARGOUTVIEWM_FARRAY4, DIM_TYPE* DIM1, DIM_TYPE* DIM2, DIM_TYPE* DIM3, DIM_TYPE* DIM4) -{ - npy_intp dims[4] = { *$2, *$3, *$4 , *$5 }; - PyObject* obj = PyArray_SimpleNewFromData(4, dims, DATA_TYPECODE, (void*)(*$1)); - PyArrayObject* array = (PyArrayObject*) obj; - - if (!array || !require_fortran(array)) SWIG_fail; - -%#ifdef SWIGPY_USE_CAPSULE - PyObject* cap = PyCapsule_New((void*)(*$1), SWIGPY_CAPSULE_NAME, free_cap); -%#else - PyObject* cap = PyCObject_FromVoidPtr((void*)(*$1), free); -%#endif - -%#if NPY_API_VERSION < 0x00000007 - PyArray_BASE(array) = cap; -%#else - PyArray_SetBaseObject(array,cap); -%#endif - - $result = SWIG_Python_AppendOutput($result,obj); -} - -/* Typemap suite for (DIM_TYPE* DIM1, DIM_TYPE* DIM2, DIM_TYPE* DIM3, DIM_TYPE* DIM4, - DATA_TYPE** ARGOUTVIEWM_FARRAY4) - */ -%typemap(in,numinputs=0) - (DIM_TYPE* DIM1 , DIM_TYPE* DIM2 , DIM_TYPE* DIM3 , DIM_TYPE* DIM4 , DATA_TYPE** ARGOUTVIEWM_FARRAY4) - (DIM_TYPE dim1_temp, DIM_TYPE dim2_temp, DIM_TYPE dim3_temp, DIM_TYPE dim4_temp, DATA_TYPE* data_temp = NULL ) -{ - $1 = &dim1_temp; - $2 = &dim2_temp; - $3 = &dim3_temp; - $4 = &dim4_temp; - $5 = &data_temp; -} -%typemap(argout, - fragment="NumPy_Backward_Compatibility,NumPy_Array_Requirements") - (DIM_TYPE* DIM1, DIM_TYPE* DIM2, DIM_TYPE* DIM3, DIM_TYPE* DIM4, DATA_TYPE** ARGOUTVIEWM_FARRAY4) -{ - npy_intp dims[4] = { *$1, *$2, *$3 , *$4 }; - PyObject* obj = PyArray_SimpleNewFromData(4, dims, DATA_TYPECODE, (void*)(*$5)); - PyArrayObject* array = (PyArrayObject*) obj; - - if (!array || !require_fortran(array)) SWIG_fail; - -%#ifdef SWIGPY_USE_CAPSULE - PyObject* cap = PyCapsule_New((void*)(*$1), SWIGPY_CAPSULE_NAME, free_cap); -%#else - PyObject* cap = PyCObject_FromVoidPtr((void*)(*$1), free); -%#endif - -%#if NPY_API_VERSION < 0x00000007 - PyArray_BASE(array) = cap; -%#else - PyArray_SetBaseObject(array,cap); -%#endif - - $result = SWIG_Python_AppendOutput($result,obj); -} - -%enddef /* %numpy_typemaps() macro */ -/* *************************************************************** */ - -/* Concrete instances of the %numpy_typemaps() macro: Each invocation - * below applies all of the typemaps above to the specified data type. - */ -%numpy_typemaps(signed char , NPY_BYTE , int) -%numpy_typemaps(unsigned char , NPY_UBYTE , int) -%numpy_typemaps(short , NPY_SHORT , int) -%numpy_typemaps(unsigned short , NPY_USHORT , int) -%numpy_typemaps(int , NPY_INT , int) -%numpy_typemaps(unsigned int , NPY_UINT , int) -%numpy_typemaps(long , NPY_LONG , int) -%numpy_typemaps(unsigned long , NPY_ULONG , int) -%numpy_typemaps(long long , NPY_LONGLONG , int) -%numpy_typemaps(unsigned long long, NPY_ULONGLONG, int) -%numpy_typemaps(float , NPY_FLOAT , int) -%numpy_typemaps(double , NPY_DOUBLE , int) - -/* *************************************************************** - * The follow macro expansion does not work, because C++ bool is 4 - * bytes and NPY_BOOL is 1 byte - * - * %numpy_typemaps(bool, NPY_BOOL, int) - */ - -/* *************************************************************** - * On my Mac, I get the following warning for this macro expansion: - * 'swig/python detected a memory leak of type 'long double *', no destructor found.' - * - * %numpy_typemaps(long double, NPY_LONGDOUBLE, int) - */ - -/* *************************************************************** - * Swig complains about a syntax error for the following macro - * expansions: - * - * %numpy_typemaps(complex float, NPY_CFLOAT , int) - * - * %numpy_typemaps(complex double, NPY_CDOUBLE, int) - * - * %numpy_typemaps(complex long double, NPY_CLONGDOUBLE, int) - */ - -#endif /* SWIGPYTHON */ diff --git a/swig/start.i b/swig/start.i deleted file mode 100644 index 24aa1a26a..000000000 --- a/swig/start.i +++ /dev/null @@ -1,14 +0,0 @@ -%{ -#define SWIG_FILE_WITH_INIT -#include <assert.h> -%} -// numpy macros -%include numpy.i - -%init %{ - import_array(); -%} - - -//usefull macros used to instanciate templates -%define INSTANTIATED_DIMENSIONS 1,2,3,4,5,6,7 %enddef -- GitLab