netgen-mesher 6.2.2505.post48.dev0__cp313-cp313-win_amd64.whl → 6.2.2506.post48.dev0__cp313-cp313-win_amd64.whl
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- netgen/__init__.pyi +3 -3
- netgen/cmake/NetgenConfig.cmake +9 -8
- netgen/config/__init__.pyi +7 -7
- netgen/config/config.py +6 -6
- netgen/config/config.pyi +7 -7
- netgen/include/core/archive.hpp +18 -3
- netgen/include/core/array.hpp +20 -4
- netgen/include/core/autodiff.hpp +9 -11
- netgen/include/core/autodiffdiff.hpp +0 -2
- netgen/include/core/bitarray.hpp +1 -1
- netgen/include/core/flags.hpp +1 -1
- netgen/include/core/hashtable.hpp +1 -1
- netgen/include/core/memtracer.hpp +7 -7
- netgen/include/core/ngcore.hpp +5 -0
- netgen/include/core/ngcore_api.hpp +11 -0
- netgen/include/core/register_archive.hpp +8 -0
- netgen/include/core/simd_arm64.hpp +100 -5
- netgen/include/core/simd_generic.hpp +187 -6
- netgen/include/core/simd_math.hpp +3 -2
- netgen/include/core/statushandler.hpp +37 -0
- netgen/include/core/table.hpp +2 -2
- netgen/include/core/taskmanager.hpp +34 -1
- netgen/include/include/netgen_version.hpp +3 -3
- netgen/include/meshing/basegeom.hpp +1 -4
- netgen/include/meshing/global.hpp +0 -17
- netgen/include/meshing/hpref_tet.hpp +41 -0
- netgen/include/meshing/hprefinement.hpp +2 -0
- netgen/include/meshing/meshtype.hpp +1 -0
- netgen/include/meshing/msghandler.hpp +9 -6
- netgen/include/meshing/topology.hpp +2 -2
- netgen/include/nginterface.h +3 -2
- netgen/include/occ/occ_utils.hpp +26 -0
- netgen/include/occ/occgeom.hpp +8 -0
- netgen/include/pybind11/attr.h +40 -8
- netgen/include/pybind11/buffer_info.h +14 -14
- netgen/include/pybind11/cast.h +553 -29
- netgen/include/pybind11/chrono.h +4 -1
- netgen/include/pybind11/conduit/README.txt +15 -0
- netgen/include/pybind11/conduit/pybind11_conduit_v1.h +116 -0
- netgen/include/pybind11/conduit/pybind11_platform_abi_id.h +87 -0
- netgen/include/pybind11/conduit/wrap_include_python_h.h +72 -0
- netgen/include/pybind11/critical_section.h +56 -0
- netgen/include/pybind11/detail/class.h +172 -97
- netgen/include/pybind11/detail/common.h +270 -189
- netgen/include/pybind11/detail/cpp_conduit.h +75 -0
- netgen/include/pybind11/detail/descr.h +55 -0
- netgen/include/pybind11/detail/dynamic_raw_ptr_cast_if_possible.h +39 -0
- netgen/include/pybind11/detail/exception_translation.h +71 -0
- netgen/include/pybind11/detail/function_record_pyobject.h +191 -0
- netgen/include/pybind11/detail/init.h +113 -9
- netgen/include/pybind11/detail/internals.h +479 -344
- netgen/include/pybind11/detail/native_enum_data.h +209 -0
- netgen/include/pybind11/detail/pybind11_namespace_macros.h +82 -0
- netgen/include/pybind11/detail/struct_smart_holder.h +378 -0
- netgen/include/pybind11/detail/type_caster_base.h +506 -133
- netgen/include/pybind11/detail/using_smart_holder.h +22 -0
- netgen/include/pybind11/detail/value_and_holder.h +90 -0
- netgen/include/pybind11/eigen/matrix.h +19 -10
- netgen/include/pybind11/eigen/tensor.h +15 -11
- netgen/include/pybind11/embed.h +50 -46
- netgen/include/pybind11/eval.h +11 -6
- netgen/include/pybind11/functional.h +58 -49
- netgen/include/pybind11/gil.h +34 -82
- netgen/include/pybind11/gil_safe_call_once.h +12 -1
- netgen/include/pybind11/gil_simple.h +37 -0
- netgen/include/pybind11/native_enum.h +67 -0
- netgen/include/pybind11/numpy.h +272 -93
- netgen/include/pybind11/pybind11.h +947 -265
- netgen/include/pybind11/pytypes.h +127 -21
- netgen/include/pybind11/stl/filesystem.h +23 -25
- netgen/include/pybind11/stl.h +277 -59
- netgen/include/pybind11/stl_bind.h +42 -7
- netgen/include/pybind11/subinterpreter.h +299 -0
- netgen/include/pybind11/trampoline_self_life_support.h +65 -0
- netgen/include/pybind11/typing.h +177 -4
- netgen/include/pybind11/warnings.h +75 -0
- netgen/lib/libnggui.lib +0 -0
- netgen/lib/ngcore.lib +0 -0
- netgen/lib/nglib.lib +0 -0
- netgen/libnggui.dll +0 -0
- netgen/libngguipy.pyd +0 -0
- netgen/libngpy/_NgOCC.pyi +220 -141
- netgen/libngpy/_csg.pyi +26 -26
- netgen/libngpy/_geom2d.pyi +34 -25
- netgen/libngpy/_meshing.pyi +262 -111
- netgen/libngpy/_stl.pyi +3 -4
- netgen/libngpy.pyd +0 -0
- netgen/ngcore.dll +0 -0
- netgen/nglib.dll +0 -0
- netgen/read_gmsh.py +41 -0
- netgen/togl.dll +0 -0
- netgen/version.py +1 -1
- netgen/webgui.py +38 -2
- {netgen_mesher-6.2.2505.post48.dev0.dist-info → netgen_mesher-6.2.2506.post48.dev0.dist-info}/METADATA +2 -1
- {netgen_mesher-6.2.2505.post48.dev0.dist-info → netgen_mesher-6.2.2506.post48.dev0.dist-info}/RECORD +144 -124
- pyngcore/pyngcore.cp313-win_amd64.pyd +0 -0
- {netgen_mesher-6.2.2505.post48.dev0.data → netgen_mesher-6.2.2506.post48.dev0.data}/data/share/netgen/boundarycondition.geo +0 -0
- {netgen_mesher-6.2.2505.post48.dev0.data → netgen_mesher-6.2.2506.post48.dev0.data}/data/share/netgen/boxcyl.geo +0 -0
- {netgen_mesher-6.2.2505.post48.dev0.data → netgen_mesher-6.2.2506.post48.dev0.data}/data/share/netgen/circle_on_cube.geo +0 -0
- {netgen_mesher-6.2.2505.post48.dev0.data → netgen_mesher-6.2.2506.post48.dev0.data}/data/share/netgen/cone.geo +0 -0
- {netgen_mesher-6.2.2505.post48.dev0.data → netgen_mesher-6.2.2506.post48.dev0.data}/data/share/netgen/cube.geo +0 -0
- {netgen_mesher-6.2.2505.post48.dev0.data → netgen_mesher-6.2.2506.post48.dev0.data}/data/share/netgen/cubeandring.geo +0 -0
- {netgen_mesher-6.2.2505.post48.dev0.data → netgen_mesher-6.2.2506.post48.dev0.data}/data/share/netgen/cubeandspheres.geo +0 -0
- {netgen_mesher-6.2.2505.post48.dev0.data → netgen_mesher-6.2.2506.post48.dev0.data}/data/share/netgen/cubemcyl.geo +0 -0
- {netgen_mesher-6.2.2505.post48.dev0.data → netgen_mesher-6.2.2506.post48.dev0.data}/data/share/netgen/cubemsphere.geo +0 -0
- {netgen_mesher-6.2.2505.post48.dev0.data → netgen_mesher-6.2.2506.post48.dev0.data}/data/share/netgen/cylinder.geo +0 -0
- {netgen_mesher-6.2.2505.post48.dev0.data → netgen_mesher-6.2.2506.post48.dev0.data}/data/share/netgen/cylsphere.geo +0 -0
- {netgen_mesher-6.2.2505.post48.dev0.data → netgen_mesher-6.2.2506.post48.dev0.data}/data/share/netgen/doc/ng4.pdf +0 -0
- {netgen_mesher-6.2.2505.post48.dev0.data → netgen_mesher-6.2.2506.post48.dev0.data}/data/share/netgen/ellipsoid.geo +0 -0
- {netgen_mesher-6.2.2505.post48.dev0.data → netgen_mesher-6.2.2506.post48.dev0.data}/data/share/netgen/ellipticcyl.geo +0 -0
- {netgen_mesher-6.2.2505.post48.dev0.data → netgen_mesher-6.2.2506.post48.dev0.data}/data/share/netgen/extrusion.geo +0 -0
- {netgen_mesher-6.2.2505.post48.dev0.data → netgen_mesher-6.2.2506.post48.dev0.data}/data/share/netgen/fichera.geo +0 -0
- {netgen_mesher-6.2.2505.post48.dev0.data → netgen_mesher-6.2.2506.post48.dev0.data}/data/share/netgen/frame.step +0 -0
- {netgen_mesher-6.2.2505.post48.dev0.data → netgen_mesher-6.2.2506.post48.dev0.data}/data/share/netgen/hinge.stl +0 -0
- {netgen_mesher-6.2.2505.post48.dev0.data → netgen_mesher-6.2.2506.post48.dev0.data}/data/share/netgen/lshape3d.geo +0 -0
- {netgen_mesher-6.2.2505.post48.dev0.data → netgen_mesher-6.2.2506.post48.dev0.data}/data/share/netgen/manyholes.geo +0 -0
- {netgen_mesher-6.2.2505.post48.dev0.data → netgen_mesher-6.2.2506.post48.dev0.data}/data/share/netgen/manyholes2.geo +0 -0
- {netgen_mesher-6.2.2505.post48.dev0.data → netgen_mesher-6.2.2506.post48.dev0.data}/data/share/netgen/matrix.geo +0 -0
- {netgen_mesher-6.2.2505.post48.dev0.data → netgen_mesher-6.2.2506.post48.dev0.data}/data/share/netgen/ortho.geo +0 -0
- {netgen_mesher-6.2.2505.post48.dev0.data → netgen_mesher-6.2.2506.post48.dev0.data}/data/share/netgen/part1.stl +0 -0
- {netgen_mesher-6.2.2505.post48.dev0.data → netgen_mesher-6.2.2506.post48.dev0.data}/data/share/netgen/period.geo +0 -0
- {netgen_mesher-6.2.2505.post48.dev0.data → netgen_mesher-6.2.2506.post48.dev0.data}/data/share/netgen/py_tutorials/exportNeutral.py +0 -0
- {netgen_mesher-6.2.2505.post48.dev0.data → netgen_mesher-6.2.2506.post48.dev0.data}/data/share/netgen/py_tutorials/mesh.py +0 -0
- {netgen_mesher-6.2.2505.post48.dev0.data → netgen_mesher-6.2.2506.post48.dev0.data}/data/share/netgen/py_tutorials/shaft.geo +0 -0
- {netgen_mesher-6.2.2505.post48.dev0.data → netgen_mesher-6.2.2506.post48.dev0.data}/data/share/netgen/revolution.geo +0 -0
- {netgen_mesher-6.2.2505.post48.dev0.data → netgen_mesher-6.2.2506.post48.dev0.data}/data/share/netgen/screw.step +0 -0
- {netgen_mesher-6.2.2505.post48.dev0.data → netgen_mesher-6.2.2506.post48.dev0.data}/data/share/netgen/sculpture.geo +0 -0
- {netgen_mesher-6.2.2505.post48.dev0.data → netgen_mesher-6.2.2506.post48.dev0.data}/data/share/netgen/shaft.geo +0 -0
- {netgen_mesher-6.2.2505.post48.dev0.data → netgen_mesher-6.2.2506.post48.dev0.data}/data/share/netgen/shell.geo +0 -0
- {netgen_mesher-6.2.2505.post48.dev0.data → netgen_mesher-6.2.2506.post48.dev0.data}/data/share/netgen/sphere.geo +0 -0
- {netgen_mesher-6.2.2505.post48.dev0.data → netgen_mesher-6.2.2506.post48.dev0.data}/data/share/netgen/sphereincube.geo +0 -0
- {netgen_mesher-6.2.2505.post48.dev0.data → netgen_mesher-6.2.2506.post48.dev0.data}/data/share/netgen/square.in2d +0 -0
- {netgen_mesher-6.2.2505.post48.dev0.data → netgen_mesher-6.2.2506.post48.dev0.data}/data/share/netgen/squarecircle.in2d +0 -0
- {netgen_mesher-6.2.2505.post48.dev0.data → netgen_mesher-6.2.2506.post48.dev0.data}/data/share/netgen/squarehole.in2d +0 -0
- {netgen_mesher-6.2.2505.post48.dev0.data → netgen_mesher-6.2.2506.post48.dev0.data}/data/share/netgen/torus.geo +0 -0
- {netgen_mesher-6.2.2505.post48.dev0.data → netgen_mesher-6.2.2506.post48.dev0.data}/data/share/netgen/trafo.geo +0 -0
- {netgen_mesher-6.2.2505.post48.dev0.data → netgen_mesher-6.2.2506.post48.dev0.data}/data/share/netgen/twobricks.geo +0 -0
- {netgen_mesher-6.2.2505.post48.dev0.data → netgen_mesher-6.2.2506.post48.dev0.data}/data/share/netgen/twocubes.geo +0 -0
- {netgen_mesher-6.2.2505.post48.dev0.data → netgen_mesher-6.2.2506.post48.dev0.data}/data/share/netgen/twocyl.geo +0 -0
- {netgen_mesher-6.2.2505.post48.dev0.dist-info → netgen_mesher-6.2.2506.post48.dev0.dist-info}/AUTHORS +0 -0
- {netgen_mesher-6.2.2505.post48.dev0.dist-info → netgen_mesher-6.2.2506.post48.dev0.dist-info}/LICENSE +0 -0
- {netgen_mesher-6.2.2505.post48.dev0.dist-info → netgen_mesher-6.2.2506.post48.dev0.dist-info}/WHEEL +0 -0
- {netgen_mesher-6.2.2505.post48.dev0.dist-info → netgen_mesher-6.2.2506.post48.dev0.dist-info}/entry_points.txt +0 -0
- {netgen_mesher-6.2.2505.post48.dev0.dist-info → netgen_mesher-6.2.2506.post48.dev0.dist-info}/top_level.txt +0 -0
netgen/__init__.pyi
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
from __future__ import annotations
|
|
2
|
-
from netgen.libngpy._meshing import _Redraw
|
|
2
|
+
from netgen.libngpy._meshing.pybind11_detail_function_record_v1_msvc_md_mscver19 import _Redraw
|
|
3
3
|
from pathlib._local import Path
|
|
4
4
|
from pyngcore.pyngcore import Timer
|
|
5
5
|
import sys
|
|
@@ -17,6 +17,6 @@ def _get_diagnostics():
|
|
|
17
17
|
def load_occ_libs():
|
|
18
18
|
...
|
|
19
19
|
__diagnostics_template: str = '\nNetgen diagnostics:\n sys.platform: {sys.platform}\n sys.executable: {sys.executable}\n sys.version: {sys.version}\n Netgen python version: {config.PYTHON_VERSION}\n Netgen path {__file__}\n Netgen config {config.__file__}\n Netgen version {config.NETGEN_VERSION}\n sys.path: {sys.path}\n'
|
|
20
|
-
_netgen_bin_dir: str = 'C:\\gitlabci\\tools\\builds\\
|
|
21
|
-
_netgen_lib_dir: str = 'C:\\gitlabci\\tools\\builds\\
|
|
20
|
+
_netgen_bin_dir: str = 'C:\\gitlabci\\tools\\builds\\3zsqG5ns9\\0\\ngsolve\\ngsolve\\external_dependencies\\netgen\\_skbuild\\win-amd64-3.13\\cmake-install\\netgen'
|
|
21
|
+
_netgen_lib_dir: str = 'C:\\gitlabci\\tools\\builds\\3zsqG5ns9\\0\\ngsolve\\ngsolve\\external_dependencies\\netgen\\_skbuild\\win-amd64-3.13\\cmake-install\\netgen'
|
|
22
22
|
v: sys.version_info # value = sys.version_info(major=3, minor=13, micro=2, releaselevel='final', serial=0)
|
netgen/cmake/NetgenConfig.cmake
CHANGED
|
@@ -1,14 +1,15 @@
|
|
|
1
|
-
set(
|
|
1
|
+
set(CMAKE_MSVC_RUNTIME_LIBRARY "MultiThreadedDLL")
|
|
2
|
+
set(NETGEN_VERSION "6.2.2506-48-g8263c0bc")
|
|
2
3
|
set(NETGEN_VERSION_MAJOR "6")
|
|
3
4
|
set(NETGEN_VERSION_MINOR "2")
|
|
4
|
-
set(NETGEN_VERSION_PATCH "
|
|
5
|
+
set(NETGEN_VERSION_PATCH "2506")
|
|
5
6
|
set(NETGEN_VERSION_TWEAK "48")
|
|
6
7
|
|
|
7
8
|
get_filename_component(NETGEN_CMAKE_DIR "${CMAKE_CURRENT_LIST_FILE}" PATH)
|
|
8
9
|
|
|
9
10
|
get_filename_component(NETGEN_DIR "${NETGEN_CMAKE_DIR}/../../" ABSOLUTE)
|
|
10
11
|
|
|
11
|
-
set(NETGEN_COMPILE_DEFINITIONS "
|
|
12
|
+
set(NETGEN_COMPILE_DEFINITIONS "")
|
|
12
13
|
|
|
13
14
|
get_filename_component(NETGEN_INCLUDE_DIR "${NETGEN_CMAKE_DIR}/../include" ABSOLUTE)
|
|
14
15
|
get_filename_component(NETGEN_BINARY_DIR "${NETGEN_CMAKE_DIR}/../" ABSOLUTE)
|
|
@@ -16,7 +17,7 @@ get_filename_component(NETGEN_LIBRARY_DIR "${NETGEN_CMAKE_DIR}/../lib" ABSOLUTE)
|
|
|
16
17
|
get_filename_component(NETGEN_PYTHON_DIR "${NETGEN_CMAKE_DIR}/../../" ABSOLUTE)
|
|
17
18
|
get_filename_component(NETGEN_RESOURCE_DIR "${NETGEN_CMAKE_DIR}/../../share" ABSOLUTE)
|
|
18
19
|
|
|
19
|
-
set(NETGEN_SOURCE_DIR "C:/gitlabci/tools/builds/
|
|
20
|
+
set(NETGEN_SOURCE_DIR "C:/gitlabci/tools/builds/3zsqG5ns9/0/ngsolve/ngsolve/external_dependencies/netgen")
|
|
20
21
|
|
|
21
22
|
set(NETGEN_BUILD_FOR_CONDA "ON")
|
|
22
23
|
set(NETGEN_CHECK_RANGE "OFF")
|
|
@@ -41,15 +42,15 @@ set(NETGEN_OPENGL_LIBRARIES "opengl32;glu32")
|
|
|
41
42
|
set(NETGEN_PYTHON_EXECUTABLE "C:/Python313/python.exe")
|
|
42
43
|
set(NETGEN_PYTHON_INCLUDE_DIRS "C:/Python313/Include")
|
|
43
44
|
set(NETGEN_PYTHON_LIBRARIES "C:/Python313/libs/python313.lib")
|
|
44
|
-
set(NETGEN_TCL_INCLUDE_PATH "C:/gitlabci/tools/builds/
|
|
45
|
+
set(NETGEN_TCL_INCLUDE_PATH "C:/gitlabci/tools/builds/3zsqG5ns9/0/ngsolve/ngsolve/external_dependencies/netgen/_skbuild/win-amd64-3.13/cmake-build/dependencies/src/project_tcl/generic")
|
|
45
46
|
set(NETGEN_TCL_LIBRARY "C:/Python313/tcl/tclstub86.lib")
|
|
46
47
|
set(NETGEN_TK_DND_LIBRARY "")
|
|
47
|
-
set(NETGEN_TK_INCLUDE_PATH "C:/gitlabci/tools/builds/
|
|
48
|
+
set(NETGEN_TK_INCLUDE_PATH "C:/gitlabci/tools/builds/3zsqG5ns9/0/ngsolve/ngsolve/external_dependencies/netgen/_skbuild/win-amd64-3.13/cmake-build/dependencies/src/project_tk/generic")
|
|
48
49
|
set(NETGEN_TK_LIBRARY "C:/Python313/tcl/tkstub86.lib")
|
|
49
50
|
set(NETGEN_X11_X11_LIB "")
|
|
50
51
|
set(NETGEN_X11_Xmu_LIB "")
|
|
51
|
-
set(NETGEN_ZLIB_INCLUDE_DIRS "C:/gitlabci/tools/builds/
|
|
52
|
-
set(NETGEN_ZLIB_LIBRARIES "C:/gitlabci/tools/builds/
|
|
52
|
+
set(NETGEN_ZLIB_INCLUDE_DIRS "C:/gitlabci/tools/builds/3zsqG5ns9/0/ngsolve/ngsolve/external_dependencies/netgen/_skbuild/win-amd64-3.13/cmake-build/dependencies/zlib/include")
|
|
53
|
+
set(NETGEN_ZLIB_LIBRARIES "C:/gitlabci/tools/builds/3zsqG5ns9/0/ngsolve/ngsolve/external_dependencies/netgen/_skbuild/win-amd64-3.13/cmake-build/dependencies/zlib/lib/zlibstatic.lib")
|
|
53
54
|
|
|
54
55
|
set(NETGEN_USE_GUI ON)
|
|
55
56
|
set(NETGEN_USE_PYTHON ON)
|
netgen/config/__init__.pyi
CHANGED
|
@@ -5,7 +5,7 @@ __all__ = ['BUILD_FOR_CONDA', 'BUILD_STUB_FILES', 'CHECK_RANGE', 'CMAKE_INSTALL_
|
|
|
5
5
|
BUILD_FOR_CONDA: bool = True
|
|
6
6
|
BUILD_STUB_FILES: bool = True
|
|
7
7
|
CHECK_RANGE: bool = False
|
|
8
|
-
CMAKE_INSTALL_PREFIX: str = 'C:/gitlabci/tools/builds/
|
|
8
|
+
CMAKE_INSTALL_PREFIX: str = 'C:/gitlabci/tools/builds/3zsqG5ns9/0/ngsolve/ngsolve/external_dependencies/netgen/_skbuild/win-amd64-3.13/cmake-install'
|
|
9
9
|
DEBUG_LOG: bool = False
|
|
10
10
|
ENABLE_CPP_CORE_GUIDELINES_CHECK: bool = False
|
|
11
11
|
ENABLE_UNIT_TESTS: bool = False
|
|
@@ -14,13 +14,13 @@ INTEL_MIC: bool = False
|
|
|
14
14
|
NETGEN_PYTHON_PACKAGE_NAME: str = 'netgen-mesher'
|
|
15
15
|
NETGEN_PYTHON_RPATH: str = 'netgen'
|
|
16
16
|
NETGEN_PYTHON_RPATH_BIN: str = 'netgen'
|
|
17
|
-
NETGEN_VERSION: str = '6.2.
|
|
18
|
-
NETGEN_VERSION_GIT: str = 'v6.2.
|
|
19
|
-
NETGEN_VERSION_HASH: str = '
|
|
17
|
+
NETGEN_VERSION: str = '6.2.2506-48-g8263c0bc'
|
|
18
|
+
NETGEN_VERSION_GIT: str = 'v6.2.2506-48-g8263c0bc'
|
|
19
|
+
NETGEN_VERSION_HASH: str = 'g8263c0bc'
|
|
20
20
|
NETGEN_VERSION_MAJOR: str = '6'
|
|
21
21
|
NETGEN_VERSION_MINOR: str = '2'
|
|
22
|
-
NETGEN_VERSION_PATCH: str = '
|
|
23
|
-
NETGEN_VERSION_PYTHON: str = '6.2.
|
|
22
|
+
NETGEN_VERSION_PATCH: str = '2506'
|
|
23
|
+
NETGEN_VERSION_PYTHON: str = '6.2.2506.post48.dev0'
|
|
24
24
|
NETGEN_VERSION_TWEAK: str = '48'
|
|
25
25
|
NG_COMPILE_FLAGS: str = '/arch:AVX2'
|
|
26
26
|
NG_INSTALL_DIR_BIN: str = 'netgen'
|
|
@@ -49,4 +49,4 @@ USE_SPDLOG: bool = False
|
|
|
49
49
|
is_python_package: bool = True
|
|
50
50
|
ngcore_compile_definitions: str = 'NETGEN_PYTHON;NG_PYTHON;PYBIND11_SIMPLE_GIL_MANAGEMENT;_WIN32_WINNT=0x1000;WNT;WNT_WINDOW;NOMINMAX;MSVC_EXPRESS;_CRT_SECURE_NO_WARNINGS;HAVE_STRUCT_TIMESPEC;WIN32'
|
|
51
51
|
ngcore_compile_options: str = '/arch:AVX2;/bigobj;$<BUILD_INTERFACE:/MP;/W1;/wd4068>'
|
|
52
|
-
version: str = 'v6.2.
|
|
52
|
+
version: str = 'v6.2.2506-48-g8263c0bc'
|
netgen/config/config.py
CHANGED
|
@@ -26,7 +26,7 @@ USE_OCC = _cmake_to_bool("ON")
|
|
|
26
26
|
USE_PYTHON = _cmake_to_bool("ON")
|
|
27
27
|
USE_SPDLOG = _cmake_to_bool("")
|
|
28
28
|
|
|
29
|
-
CMAKE_INSTALL_PREFIX = "C:/gitlabci/tools/builds/
|
|
29
|
+
CMAKE_INSTALL_PREFIX = "C:/gitlabci/tools/builds/3zsqG5ns9/0/ngsolve/ngsolve/external_dependencies/netgen/_skbuild/win-amd64-3.13/cmake-install"
|
|
30
30
|
NG_INSTALL_DIR_PYTHON = "."
|
|
31
31
|
NG_INSTALL_DIR_BIN = "netgen"
|
|
32
32
|
NG_INSTALL_DIR_LIB = "netgen/lib"
|
|
@@ -42,15 +42,15 @@ NG_COMPILE_FLAGS = "/arch:AVX2"
|
|
|
42
42
|
ngcore_compile_options = "/arch:AVX2;/bigobj;$<BUILD_INTERFACE:/MP;/W1;/wd4068>"
|
|
43
43
|
ngcore_compile_definitions = "NETGEN_PYTHON;NG_PYTHON;PYBIND11_SIMPLE_GIL_MANAGEMENT;_WIN32_WINNT=0x1000;WNT;WNT_WINDOW;NOMINMAX;MSVC_EXPRESS;_CRT_SECURE_NO_WARNINGS;HAVE_STRUCT_TIMESPEC;WIN32"
|
|
44
44
|
|
|
45
|
-
NETGEN_VERSION = "6.2.
|
|
46
|
-
NETGEN_VERSION_GIT = "v6.2.
|
|
47
|
-
NETGEN_VERSION_PYTHON = "6.2.
|
|
45
|
+
NETGEN_VERSION = "6.2.2506-48-g8263c0bc"
|
|
46
|
+
NETGEN_VERSION_GIT = "v6.2.2506-48-g8263c0bc"
|
|
47
|
+
NETGEN_VERSION_PYTHON = "6.2.2506.post48.dev0"
|
|
48
48
|
|
|
49
49
|
NETGEN_VERSION_MAJOR = "6"
|
|
50
50
|
NETGEN_VERSION_MINOR = "2"
|
|
51
51
|
NETGEN_VERSION_TWEAK = "48"
|
|
52
|
-
NETGEN_VERSION_PATCH = "
|
|
53
|
-
NETGEN_VERSION_HASH = "
|
|
52
|
+
NETGEN_VERSION_PATCH = "2506"
|
|
53
|
+
NETGEN_VERSION_HASH = "g8263c0bc"
|
|
54
54
|
|
|
55
55
|
PYTHON_VERSION = "3.13.2"
|
|
56
56
|
PYTHON_VERSION_MAJOR = "3"
|
netgen/config/config.pyi
CHANGED
|
@@ -7,7 +7,7 @@ def get_cmake_dir():
|
|
|
7
7
|
BUILD_FOR_CONDA: bool = True
|
|
8
8
|
BUILD_STUB_FILES: bool = True
|
|
9
9
|
CHECK_RANGE: bool = False
|
|
10
|
-
CMAKE_INSTALL_PREFIX: str = 'C:/gitlabci/tools/builds/
|
|
10
|
+
CMAKE_INSTALL_PREFIX: str = 'C:/gitlabci/tools/builds/3zsqG5ns9/0/ngsolve/ngsolve/external_dependencies/netgen/_skbuild/win-amd64-3.13/cmake-install'
|
|
11
11
|
DEBUG_LOG: bool = False
|
|
12
12
|
ENABLE_CPP_CORE_GUIDELINES_CHECK: bool = False
|
|
13
13
|
ENABLE_UNIT_TESTS: bool = False
|
|
@@ -16,13 +16,13 @@ INTEL_MIC: bool = False
|
|
|
16
16
|
NETGEN_PYTHON_PACKAGE_NAME: str = 'netgen-mesher'
|
|
17
17
|
NETGEN_PYTHON_RPATH: str = 'netgen'
|
|
18
18
|
NETGEN_PYTHON_RPATH_BIN: str = 'netgen'
|
|
19
|
-
NETGEN_VERSION: str = '6.2.
|
|
20
|
-
NETGEN_VERSION_GIT: str = 'v6.2.
|
|
21
|
-
NETGEN_VERSION_HASH: str = '
|
|
19
|
+
NETGEN_VERSION: str = '6.2.2506-48-g8263c0bc'
|
|
20
|
+
NETGEN_VERSION_GIT: str = 'v6.2.2506-48-g8263c0bc'
|
|
21
|
+
NETGEN_VERSION_HASH: str = 'g8263c0bc'
|
|
22
22
|
NETGEN_VERSION_MAJOR: str = '6'
|
|
23
23
|
NETGEN_VERSION_MINOR: str = '2'
|
|
24
|
-
NETGEN_VERSION_PATCH: str = '
|
|
25
|
-
NETGEN_VERSION_PYTHON: str = '6.2.
|
|
24
|
+
NETGEN_VERSION_PATCH: str = '2506'
|
|
25
|
+
NETGEN_VERSION_PYTHON: str = '6.2.2506.post48.dev0'
|
|
26
26
|
NETGEN_VERSION_TWEAK: str = '48'
|
|
27
27
|
NG_COMPILE_FLAGS: str = '/arch:AVX2'
|
|
28
28
|
NG_INSTALL_DIR_BIN: str = 'netgen'
|
|
@@ -51,4 +51,4 @@ USE_SPDLOG: bool = False
|
|
|
51
51
|
is_python_package: bool = True
|
|
52
52
|
ngcore_compile_definitions: str = 'NETGEN_PYTHON;NG_PYTHON;PYBIND11_SIMPLE_GIL_MANAGEMENT;_WIN32_WINNT=0x1000;WNT;WNT_WINDOW;NOMINMAX;MSVC_EXPRESS;_CRT_SECURE_NO_WARNINGS;HAVE_STRUCT_TIMESPEC;WIN32'
|
|
53
53
|
ngcore_compile_options: str = '/arch:AVX2;/bigobj;$<BUILD_INTERFACE:/MP;/W1;/wd4068>'
|
|
54
|
-
version: str = 'v6.2.
|
|
54
|
+
version: str = 'v6.2.2506-48-g8263c0bc'
|
netgen/include/core/archive.hpp
CHANGED
|
@@ -70,7 +70,8 @@ namespace ngcore
|
|
|
70
70
|
|
|
71
71
|
|
|
72
72
|
#ifdef NETGEN_PYTHON
|
|
73
|
-
pybind11::object CastAnyToPy(const std::any& a);
|
|
73
|
+
NGCORE_API pybind11::object CastAnyToPy(const std::any& a);
|
|
74
|
+
NGCORE_API std::any CastPyToAny(pybind11::object& h);
|
|
74
75
|
#endif // NETGEN_PYTHON
|
|
75
76
|
|
|
76
77
|
class NGCORE_API Archive;
|
|
@@ -184,6 +185,7 @@ namespace ngcore
|
|
|
184
185
|
#ifdef NETGEN_PYTHON
|
|
185
186
|
// std::function<pybind11::object(const std::any&)> anyToPyCaster;
|
|
186
187
|
pybind11::object (*anyToPyCaster)(const std::any&);
|
|
188
|
+
std::any (*pyToAnyCaster)(pybind11::object&);
|
|
187
189
|
#endif // NETGEN_PYTHON
|
|
188
190
|
};
|
|
189
191
|
} // namespace detail
|
|
@@ -234,7 +236,10 @@ namespace ngcore
|
|
|
234
236
|
// it archives the object normally.
|
|
235
237
|
#ifdef NETGEN_PYTHON
|
|
236
238
|
template<typename T>
|
|
237
|
-
Archive& Shallow(T& val); // implemented in
|
|
239
|
+
Archive& Shallow(T& val); // implemented in register_archive.hpp
|
|
240
|
+
#ifndef __CUDACC__
|
|
241
|
+
Archive& Shallow(std::any& val); // implemented in python_ngcore.cpp
|
|
242
|
+
#endif // __CUDACC__
|
|
238
243
|
#else // NETGEN_PYTHON
|
|
239
244
|
template<typename T>
|
|
240
245
|
Archive& Shallow(T& val)
|
|
@@ -276,6 +281,14 @@ namespace ngcore
|
|
|
276
281
|
virtual Archive & operator & (std::string & str) = 0;
|
|
277
282
|
virtual Archive & operator & (char *& str) = 0;
|
|
278
283
|
|
|
284
|
+
#ifdef NETGEN_PYTHON
|
|
285
|
+
Archive & operator &(std::any& a)
|
|
286
|
+
{
|
|
287
|
+
Shallow(a);
|
|
288
|
+
return *this;
|
|
289
|
+
}
|
|
290
|
+
#endif
|
|
291
|
+
|
|
279
292
|
Archive & operator & (VersionInfo & version)
|
|
280
293
|
{
|
|
281
294
|
if(Output())
|
|
@@ -505,7 +518,8 @@ namespace ngcore
|
|
|
505
518
|
template <typename T>
|
|
506
519
|
Archive& operator & (ngcore::Shallow<T>& shallow)
|
|
507
520
|
{
|
|
508
|
-
|
|
521
|
+
if(shallow_to_python)
|
|
522
|
+
Shallow(shallow.val);
|
|
509
523
|
return *this;
|
|
510
524
|
}
|
|
511
525
|
|
|
@@ -763,6 +777,7 @@ namespace ngcore
|
|
|
763
777
|
|
|
764
778
|
#ifdef NETGEN_PYTHON
|
|
765
779
|
friend pybind11::object CastAnyToPy(const std::any&);
|
|
780
|
+
friend std::any CastPyToAny(pybind11::object&);
|
|
766
781
|
#endif // NETGEN_PYTHON
|
|
767
782
|
|
|
768
783
|
// Returns ClassArchiveInfo of Demangled typeid
|
netgen/include/core/array.hpp
CHANGED
|
@@ -347,7 +347,7 @@ namespace ngcore
|
|
|
347
347
|
|
|
348
348
|
*/
|
|
349
349
|
template <typename T>
|
|
350
|
-
auto Range(const T & x)
|
|
350
|
+
NETGEN_INLINE auto Range(const T & x)
|
|
351
351
|
-> typename std::enable_if<std::is_integral_v<T> || !has_range<T>,
|
|
352
352
|
decltype(Range_impl(x, std::is_integral<T>()))>::type {
|
|
353
353
|
return Range_impl(x, std::is_integral<T>());
|
|
@@ -455,11 +455,11 @@ namespace ngcore
|
|
|
455
455
|
using BaseArrayObject<FlatArray>::ILLEGAL_POSITION;
|
|
456
456
|
|
|
457
457
|
/// initialize array
|
|
458
|
-
|
|
458
|
+
FlatArray () = default;
|
|
459
459
|
// { ; } // size = 0; data = 0; }
|
|
460
460
|
|
|
461
461
|
/// copy constructor allows size-type conversion
|
|
462
|
-
|
|
462
|
+
FlatArray (const FlatArray & a2) = default;
|
|
463
463
|
// : size(a2.Size()), data(a2.data) { ; }
|
|
464
464
|
|
|
465
465
|
/// provide size and memory
|
|
@@ -1442,8 +1442,24 @@ namespace ngcore
|
|
|
1442
1442
|
template <class T, typename TLESS>
|
|
1443
1443
|
void QuickSort (FlatArray<T> data, TLESS less)
|
|
1444
1444
|
{
|
|
1445
|
-
|
|
1445
|
+
constexpr size_t INSERTION_SORT_THRESHOLD = 16;
|
|
1446
|
+
|
|
1447
|
+
if (data.Size() <= INSERTION_SORT_THRESHOLD) {
|
|
1448
|
+
// insertion sort
|
|
1449
|
+
for (ptrdiff_t k = 1; k < data.Size(); ++k)
|
|
1450
|
+
{
|
|
1451
|
+
auto newval = data[k];
|
|
1452
|
+
ptrdiff_t l = k;
|
|
1453
|
+
for ( ; l > 0 && less(newval, data[l-1]); --l)
|
|
1454
|
+
data[l] = data[l-1];
|
|
1455
|
+
data[l] = newval;
|
|
1456
|
+
}
|
|
1457
|
+
|
|
1458
|
+
return;
|
|
1459
|
+
}
|
|
1446
1460
|
|
|
1461
|
+
// if (data.Size() <= 1) return;
|
|
1462
|
+
|
|
1447
1463
|
ptrdiff_t i = 0;
|
|
1448
1464
|
ptrdiff_t j = data.Size()-1;
|
|
1449
1465
|
|
netgen/include/core/autodiff.hpp
CHANGED
|
@@ -9,7 +9,6 @@
|
|
|
9
9
|
|
|
10
10
|
namespace ngcore
|
|
11
11
|
{
|
|
12
|
-
using ngcore::IfPos;
|
|
13
12
|
|
|
14
13
|
// Automatic differentiation datatype
|
|
15
14
|
|
|
@@ -247,7 +246,6 @@ NETGEN_INLINE AutoDiffVec<D,SCAL> operator* (const AutoDiffVec<D,SCAL> & x, cons
|
|
|
247
246
|
}
|
|
248
247
|
|
|
249
248
|
/// AutoDiffVec times AutoDiffVec
|
|
250
|
-
using ngcore::sqr;
|
|
251
249
|
template<int D, typename SCAL>
|
|
252
250
|
NETGEN_INLINE AutoDiffVec<D,SCAL> sqr (const AutoDiffVec<D,SCAL> & x) throw()
|
|
253
251
|
{
|
|
@@ -645,10 +643,10 @@ NETGEN_INLINE AutoDiffVec<D,SCAL> asin (AutoDiffVec<D,SCAL> x)
|
|
|
645
643
|
SCAL last;
|
|
646
644
|
|
|
647
645
|
public:
|
|
648
|
-
|
|
649
|
-
|
|
646
|
+
AutoDiffRec () = default;
|
|
647
|
+
AutoDiffRec (const AutoDiffRec &) = default;
|
|
650
648
|
NETGEN_INLINE AutoDiffRec (AutoDiffRec<D-1,SCAL> _rec, SCAL _last) : rec(_rec), last(_last) { ; }
|
|
651
|
-
|
|
649
|
+
AutoDiffRec & operator= (const AutoDiffRec &) = default;
|
|
652
650
|
|
|
653
651
|
NETGEN_INLINE AutoDiffRec (SCAL aval) : rec(aval), last(0.0) { ; }
|
|
654
652
|
NETGEN_INLINE AutoDiffRec (SCAL aval, int diffindex) : rec(aval, diffindex), last((diffindex==D-1) ? 1.0 : 0.0) { ; }
|
|
@@ -691,14 +689,14 @@ NETGEN_INLINE AutoDiffVec<D,SCAL> asin (AutoDiffVec<D,SCAL> x)
|
|
|
691
689
|
{
|
|
692
690
|
SCAL val;
|
|
693
691
|
public:
|
|
694
|
-
|
|
695
|
-
|
|
692
|
+
AutoDiffRec () = default;
|
|
693
|
+
AutoDiffRec (const AutoDiffRec &) = default;
|
|
696
694
|
NETGEN_INLINE AutoDiffRec (SCAL _val) : val(_val) { ; }
|
|
697
695
|
NETGEN_INLINE AutoDiffRec (SCAL _val, SCAL /* _dummylast */) : val(_val) { ; }
|
|
698
696
|
NETGEN_INLINE AutoDiffRec (SCAL aval, const SCAL * /* grad */)
|
|
699
697
|
: val(aval) { }
|
|
700
698
|
|
|
701
|
-
|
|
699
|
+
AutoDiffRec & operator= (const AutoDiffRec &) = default;
|
|
702
700
|
NETGEN_INLINE AutoDiffRec & operator= (SCAL aval) { val = aval; return *this; }
|
|
703
701
|
|
|
704
702
|
NETGEN_INLINE SCAL Value() const { return val; }
|
|
@@ -719,8 +717,8 @@ NETGEN_INLINE AutoDiffVec<D,SCAL> asin (AutoDiffVec<D,SCAL> x)
|
|
|
719
717
|
SCAL val;
|
|
720
718
|
SCAL last;
|
|
721
719
|
public:
|
|
722
|
-
|
|
723
|
-
|
|
720
|
+
AutoDiffRec () = default;
|
|
721
|
+
AutoDiffRec (const AutoDiffRec &) = default;
|
|
724
722
|
NETGEN_INLINE AutoDiffRec (SCAL _val) : val(_val), last(0.0) { ; }
|
|
725
723
|
NETGEN_INLINE AutoDiffRec (SCAL _val, SCAL _last) : val(_val), last(_last) { ; }
|
|
726
724
|
NETGEN_INLINE AutoDiffRec (SCAL aval, int diffindex) : val(aval), last((diffindex==0) ? 1.0 : 0.0) { ; }
|
|
@@ -733,7 +731,7 @@ NETGEN_INLINE AutoDiffVec<D,SCAL> asin (AutoDiffVec<D,SCAL> x)
|
|
|
733
731
|
DValue(0) = ad.DValue(0);
|
|
734
732
|
}
|
|
735
733
|
|
|
736
|
-
|
|
734
|
+
AutoDiffRec & operator= (const AutoDiffRec &) = default;
|
|
737
735
|
NETGEN_INLINE AutoDiffRec & operator= (SCAL aval) { val = aval; last = 0.0; return *this; }
|
|
738
736
|
|
|
739
737
|
NETGEN_INLINE SCAL Value() const { return val; }
|
netgen/include/core/bitarray.hpp
CHANGED
|
@@ -155,7 +155,7 @@ public:
|
|
|
155
155
|
|
|
156
156
|
NGCORE_API auto * Data() const { return data; }
|
|
157
157
|
|
|
158
|
-
|
|
158
|
+
size_t GetMemoryUsage() const { return owns_data ? (size+CHAR_BIT-1)/CHAR_BIT : 0; }
|
|
159
159
|
const MemoryTracer& GetMemoryTracer() const { return mt; }
|
|
160
160
|
void StartMemoryTracing() const
|
|
161
161
|
{
|
netgen/include/core/flags.hpp
CHANGED
|
@@ -198,17 +198,17 @@ namespace ngcore
|
|
|
198
198
|
}
|
|
199
199
|
#else // defined(NETGEN_TRACE_MEMORY) && !defined(__CUDA_ARCH__)
|
|
200
200
|
public:
|
|
201
|
-
MemoryTracer() {}
|
|
202
|
-
MemoryTracer( std::string /* name */ ) {}
|
|
201
|
+
NETGEN_INLINE MemoryTracer() {}
|
|
202
|
+
NETGEN_INLINE MemoryTracer( std::string /* name */ ) {}
|
|
203
203
|
template <typename... TRest>
|
|
204
|
-
MemoryTracer( std::string /* name */, TRest & ... ) {}
|
|
204
|
+
NETGEN_INLINE MemoryTracer( std::string /* name */, TRest & ... ) {}
|
|
205
205
|
|
|
206
|
-
void Alloc(size_t /* size */) const {}
|
|
207
|
-
void Free(size_t /* size */) const {}
|
|
208
|
-
int GetId() const { return 0; }
|
|
206
|
+
NETGEN_INLINE void Alloc(size_t /* size */) const {}
|
|
207
|
+
NETGEN_INLINE void Free(size_t /* size */) const {}
|
|
208
|
+
NETGEN_INLINE int GetId() const { return 0; }
|
|
209
209
|
|
|
210
210
|
template <typename... TRest>
|
|
211
|
-
void Track(TRest&...) const {}
|
|
211
|
+
NETGEN_INLINE void Track(TRest&...) const {}
|
|
212
212
|
|
|
213
213
|
static std::string GetName(int /* id */) { return ""; }
|
|
214
214
|
std::string GetName() const { return ""; }
|
netgen/include/core/ngcore.hpp
CHANGED
|
@@ -39,6 +39,9 @@
|
|
|
39
39
|
#ifdef WIN32
|
|
40
40
|
#define NGCORE_API_EXPORT __declspec(dllexport)
|
|
41
41
|
#define NGCORE_API_IMPORT __declspec(dllimport)
|
|
42
|
+
#elif EMSCRIPTEN
|
|
43
|
+
#define NGCORE_API_EXPORT __attribute__((visibility("default"))) __attribute__((used))
|
|
44
|
+
#define NGCORE_API_IMPORT
|
|
42
45
|
#else
|
|
43
46
|
#define NGCORE_API_EXPORT __attribute__((visibility("default")))
|
|
44
47
|
#define NGCORE_API_IMPORT __attribute__((visibility("default")))
|
|
@@ -57,6 +60,14 @@
|
|
|
57
60
|
#define NETGEN_HD
|
|
58
61
|
#endif // __CUDACC__
|
|
59
62
|
|
|
63
|
+
|
|
64
|
+
#ifdef __CUDACC__
|
|
65
|
+
// partial override of overloaded function (Archive, MultAdd)
|
|
66
|
+
#pragma nv_diag_suppress 611
|
|
67
|
+
#endif
|
|
68
|
+
|
|
69
|
+
|
|
70
|
+
|
|
60
71
|
#ifdef __INTEL_COMPILER
|
|
61
72
|
#define NETGEN_ALWAYS_INLINE __forceinline
|
|
62
73
|
#define NETGEN_INLINE __forceinline inline
|
|
@@ -84,6 +84,14 @@ namespace ngcore {
|
|
|
84
84
|
return pybind11::cast(val);
|
|
85
85
|
}
|
|
86
86
|
};
|
|
87
|
+
info.pyToAnyCaster = [](pybind11::object &obj)
|
|
88
|
+
{
|
|
89
|
+
if constexpr(has_shared_from_this2<T>::value || !std::is_copy_constructible<T>::value)
|
|
90
|
+
return std::any { obj.cast<std::shared_ptr<T>>() };
|
|
91
|
+
else
|
|
92
|
+
return std::any { obj.cast<T>() };
|
|
93
|
+
};
|
|
94
|
+
|
|
87
95
|
#endif // NETGEN_PYTHON
|
|
88
96
|
Archive::SetArchiveRegister(std::string(Demangle(typeid(T).name())),info);
|
|
89
97
|
}
|
|
@@ -31,7 +31,93 @@ namespace ngcore
|
|
|
31
31
|
};
|
|
32
32
|
|
|
33
33
|
|
|
34
|
-
// ***************************
|
|
34
|
+
// *************************** int32 ***************************
|
|
35
|
+
|
|
36
|
+
|
|
37
|
+
|
|
38
|
+
template<>
|
|
39
|
+
class SIMD<int32_t,2>
|
|
40
|
+
{
|
|
41
|
+
int32x2_t data;
|
|
42
|
+
public:
|
|
43
|
+
static constexpr int Size() { return 2; }
|
|
44
|
+
SIMD() {}
|
|
45
|
+
SIMD (int32_t val) : data{val,val} {}
|
|
46
|
+
SIMD (int32_t v0, int32_t v1) : data{v0,v1} { }
|
|
47
|
+
SIMD (SIMD<int32_t,1> lo, SIMD<int32_t,1> hi) : data{lo[0], hi[0] } { }
|
|
48
|
+
SIMD (std::array<int32_t, 2> arr) : data{arr[0], arr[1]} { }
|
|
49
|
+
|
|
50
|
+
SIMD (int32x2_t _data) { data = _data; }
|
|
51
|
+
|
|
52
|
+
NETGEN_INLINE auto Data() const { return data; }
|
|
53
|
+
NETGEN_INLINE auto & Data() { return data; }
|
|
54
|
+
|
|
55
|
+
SIMD<int32_t,1> Lo() const { return Get<0>(); }
|
|
56
|
+
SIMD<int32_t,1> Hi() const { return Get<1>(); }
|
|
57
|
+
|
|
58
|
+
int32_t operator[] (int i) const { return data[i]; }
|
|
59
|
+
int32_t & operator[] (int i) { return ((int32_t*)&data)[i]; }
|
|
60
|
+
|
|
61
|
+
template <int I>
|
|
62
|
+
int32_t Get() const { return data[I]; }
|
|
63
|
+
static SIMD FirstInt(int n0=0) { return { n0+0, n0+1 }; }
|
|
64
|
+
};
|
|
65
|
+
|
|
66
|
+
|
|
67
|
+
template<>
|
|
68
|
+
class SIMD<int32_t,4>
|
|
69
|
+
{
|
|
70
|
+
int32x4_t data;
|
|
71
|
+
public:
|
|
72
|
+
static constexpr int Size() { return 4; }
|
|
73
|
+
SIMD() {}
|
|
74
|
+
SIMD (int32_t val) : data{val,val,val,val} {}
|
|
75
|
+
SIMD (int32_t v0, int32_t v1, int32_t v2, int32_t v3) : data{v0,v1,v2,v3} { }
|
|
76
|
+
SIMD (std::array<int32_t, 4> arr) : data{arr[0], arr[1], arr[2], arr[3]} { }
|
|
77
|
+
|
|
78
|
+
SIMD (int32x4_t _data) { data = _data; }
|
|
79
|
+
SIMD (SIMD<int32_t,2> lo, SIMD<int32_t,2> hi) : data{vcombine_s32(lo.Data(), hi.Data())} {}
|
|
80
|
+
SIMD (int32_t * p) : data{vld1q_s32(p)} { }
|
|
81
|
+
|
|
82
|
+
NETGEN_INLINE auto Data() const { return data; }
|
|
83
|
+
NETGEN_INLINE auto & Data() { return data; }
|
|
84
|
+
|
|
85
|
+
SIMD<int32_t,2> Lo() const { return vget_low_s32(data); }
|
|
86
|
+
SIMD<int32_t,2> Hi() const { return vget_high_s32(data); }
|
|
87
|
+
|
|
88
|
+
int32_t operator[] (int i) const { return data[i]; }
|
|
89
|
+
int32_t & operator[] (int i) { return ((int32_t*)&data)[i]; }
|
|
90
|
+
|
|
91
|
+
void Store (int32_t * p) { vst1q_s32(p, data); }
|
|
92
|
+
|
|
93
|
+
template <int I>
|
|
94
|
+
int32_t Get() const { return data[I]; }
|
|
95
|
+
static SIMD FirstInt(int n0=0) { return { n0+0, n0+1, n0+2, n0+3 }; }
|
|
96
|
+
};
|
|
97
|
+
|
|
98
|
+
|
|
99
|
+
|
|
100
|
+
NETGEN_INLINE auto Min (SIMD<int32_t,2> a, SIMD<int32_t,2> b) {
|
|
101
|
+
return SIMD<int32_t,2>(vmin_s32(a.Data(), b.Data()));
|
|
102
|
+
}
|
|
103
|
+
|
|
104
|
+
NETGEN_INLINE auto Max (SIMD<int32_t,2> a, SIMD<int32_t,2> b) {
|
|
105
|
+
return SIMD<int32_t,2>(vmax_s32(a.Data(), b.Data()));
|
|
106
|
+
}
|
|
107
|
+
|
|
108
|
+
|
|
109
|
+
NETGEN_INLINE auto Min (SIMD<int32_t,4> a, SIMD<int32_t,4> b) {
|
|
110
|
+
return SIMD<int32_t,4>(vminq_s32(a.Data(), b.Data()));
|
|
111
|
+
}
|
|
112
|
+
|
|
113
|
+
NETGEN_INLINE auto Max (SIMD<int32_t,4> a, SIMD<int32_t,4> b) {
|
|
114
|
+
return SIMD<int32_t,4>(vmaxq_s32(a.Data(), b.Data()));
|
|
115
|
+
}
|
|
116
|
+
|
|
117
|
+
|
|
118
|
+
|
|
119
|
+
|
|
120
|
+
// *************************** int64 ***************************
|
|
35
121
|
|
|
36
122
|
template<>
|
|
37
123
|
class SIMD<int64_t,2>
|
|
@@ -266,15 +352,24 @@ namespace ngcore
|
|
|
266
352
|
|
|
267
353
|
NETGEN_INLINE SIMD<double,2> rsqrt (SIMD<double,2> x)
|
|
268
354
|
{
|
|
269
|
-
|
|
355
|
+
return 1.0 / sqrt(x);
|
|
270
356
|
|
|
271
|
-
SIMD<double,2> y = vrsqrteq_f64(x.Data());
|
|
357
|
+
// SIMD<double,2> y = vrsqrteq_f64(x.Data());
|
|
358
|
+
|
|
359
|
+
/*
|
|
360
|
+
y = y * vrsqrtsq_f64( (x*y).Data(), y.Data());
|
|
361
|
+
y = y * vrsqrtsq_f64( (x*y).Data(), y.Data());
|
|
362
|
+
y = y * vrsqrtsq_f64( (x*y).Data(), y.Data());
|
|
363
|
+
*/
|
|
364
|
+
|
|
365
|
+
/*
|
|
272
366
|
auto x_half = 0.5*x;
|
|
273
367
|
y = y * (1.5 - (x_half * y * y));
|
|
274
368
|
y = y * (1.5 - (x_half * y * y));
|
|
275
|
-
|
|
276
|
-
|
|
369
|
+
y = y * (1.5 - (x_half * y * y));
|
|
370
|
+
|
|
277
371
|
return y;
|
|
372
|
+
*/
|
|
278
373
|
}
|
|
279
374
|
|
|
280
375
|
|