netgen-mesher 6.2.2506__cp313-cp313-win_amd64.whl → 6.2.2506.post31.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 +1 -1
- netgen/cmake/NetgenConfig.cmake +4 -3
- netgen/config/__init__.pyi +6 -6
- netgen/config/config.py +5 -5
- netgen/config/config.pyi +6 -6
- netgen/include/core/archive.hpp +16 -3
- netgen/include/core/flags.hpp +1 -1
- netgen/include/core/memtracer.hpp +1 -1
- netgen/include/core/ngcore.hpp +5 -0
- netgen/include/core/register_archive.hpp +8 -0
- netgen/include/core/simd_arm64.hpp +13 -4
- netgen/include/core/simd_math.hpp +3 -2
- netgen/include/core/statushandler.hpp +37 -0
- 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/msghandler.hpp +9 -6
- netgen/include/nginterface.h +3 -2
- netgen/include/occ/occ_utils.hpp +14 -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 +192 -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_mesher-6.2.2506.dist-info → netgen_mesher-6.2.2506.post31.dev0.dist-info}/METADATA +2 -1
- {netgen_mesher-6.2.2506.dist-info → netgen_mesher-6.2.2506.post31.dev0.dist-info}/RECORD +132 -112
- pyngcore/pyngcore.cp313-win_amd64.pyd +0 -0
- {netgen_mesher-6.2.2506.data → netgen_mesher-6.2.2506.post31.dev0.data}/data/share/netgen/boundarycondition.geo +0 -0
- {netgen_mesher-6.2.2506.data → netgen_mesher-6.2.2506.post31.dev0.data}/data/share/netgen/boxcyl.geo +0 -0
- {netgen_mesher-6.2.2506.data → netgen_mesher-6.2.2506.post31.dev0.data}/data/share/netgen/circle_on_cube.geo +0 -0
- {netgen_mesher-6.2.2506.data → netgen_mesher-6.2.2506.post31.dev0.data}/data/share/netgen/cone.geo +0 -0
- {netgen_mesher-6.2.2506.data → netgen_mesher-6.2.2506.post31.dev0.data}/data/share/netgen/cube.geo +0 -0
- {netgen_mesher-6.2.2506.data → netgen_mesher-6.2.2506.post31.dev0.data}/data/share/netgen/cubeandring.geo +0 -0
- {netgen_mesher-6.2.2506.data → netgen_mesher-6.2.2506.post31.dev0.data}/data/share/netgen/cubeandspheres.geo +0 -0
- {netgen_mesher-6.2.2506.data → netgen_mesher-6.2.2506.post31.dev0.data}/data/share/netgen/cubemcyl.geo +0 -0
- {netgen_mesher-6.2.2506.data → netgen_mesher-6.2.2506.post31.dev0.data}/data/share/netgen/cubemsphere.geo +0 -0
- {netgen_mesher-6.2.2506.data → netgen_mesher-6.2.2506.post31.dev0.data}/data/share/netgen/cylinder.geo +0 -0
- {netgen_mesher-6.2.2506.data → netgen_mesher-6.2.2506.post31.dev0.data}/data/share/netgen/cylsphere.geo +0 -0
- {netgen_mesher-6.2.2506.data → netgen_mesher-6.2.2506.post31.dev0.data}/data/share/netgen/doc/ng4.pdf +0 -0
- {netgen_mesher-6.2.2506.data → netgen_mesher-6.2.2506.post31.dev0.data}/data/share/netgen/ellipsoid.geo +0 -0
- {netgen_mesher-6.2.2506.data → netgen_mesher-6.2.2506.post31.dev0.data}/data/share/netgen/ellipticcyl.geo +0 -0
- {netgen_mesher-6.2.2506.data → netgen_mesher-6.2.2506.post31.dev0.data}/data/share/netgen/extrusion.geo +0 -0
- {netgen_mesher-6.2.2506.data → netgen_mesher-6.2.2506.post31.dev0.data}/data/share/netgen/fichera.geo +0 -0
- {netgen_mesher-6.2.2506.data → netgen_mesher-6.2.2506.post31.dev0.data}/data/share/netgen/frame.step +0 -0
- {netgen_mesher-6.2.2506.data → netgen_mesher-6.2.2506.post31.dev0.data}/data/share/netgen/hinge.stl +0 -0
- {netgen_mesher-6.2.2506.data → netgen_mesher-6.2.2506.post31.dev0.data}/data/share/netgen/lshape3d.geo +0 -0
- {netgen_mesher-6.2.2506.data → netgen_mesher-6.2.2506.post31.dev0.data}/data/share/netgen/manyholes.geo +0 -0
- {netgen_mesher-6.2.2506.data → netgen_mesher-6.2.2506.post31.dev0.data}/data/share/netgen/manyholes2.geo +0 -0
- {netgen_mesher-6.2.2506.data → netgen_mesher-6.2.2506.post31.dev0.data}/data/share/netgen/matrix.geo +0 -0
- {netgen_mesher-6.2.2506.data → netgen_mesher-6.2.2506.post31.dev0.data}/data/share/netgen/ortho.geo +0 -0
- {netgen_mesher-6.2.2506.data → netgen_mesher-6.2.2506.post31.dev0.data}/data/share/netgen/part1.stl +0 -0
- {netgen_mesher-6.2.2506.data → netgen_mesher-6.2.2506.post31.dev0.data}/data/share/netgen/period.geo +0 -0
- {netgen_mesher-6.2.2506.data → netgen_mesher-6.2.2506.post31.dev0.data}/data/share/netgen/py_tutorials/exportNeutral.py +0 -0
- {netgen_mesher-6.2.2506.data → netgen_mesher-6.2.2506.post31.dev0.data}/data/share/netgen/py_tutorials/mesh.py +0 -0
- {netgen_mesher-6.2.2506.data → netgen_mesher-6.2.2506.post31.dev0.data}/data/share/netgen/py_tutorials/shaft.geo +0 -0
- {netgen_mesher-6.2.2506.data → netgen_mesher-6.2.2506.post31.dev0.data}/data/share/netgen/revolution.geo +0 -0
- {netgen_mesher-6.2.2506.data → netgen_mesher-6.2.2506.post31.dev0.data}/data/share/netgen/screw.step +0 -0
- {netgen_mesher-6.2.2506.data → netgen_mesher-6.2.2506.post31.dev0.data}/data/share/netgen/sculpture.geo +0 -0
- {netgen_mesher-6.2.2506.data → netgen_mesher-6.2.2506.post31.dev0.data}/data/share/netgen/shaft.geo +0 -0
- {netgen_mesher-6.2.2506.data → netgen_mesher-6.2.2506.post31.dev0.data}/data/share/netgen/shell.geo +0 -0
- {netgen_mesher-6.2.2506.data → netgen_mesher-6.2.2506.post31.dev0.data}/data/share/netgen/sphere.geo +0 -0
- {netgen_mesher-6.2.2506.data → netgen_mesher-6.2.2506.post31.dev0.data}/data/share/netgen/sphereincube.geo +0 -0
- {netgen_mesher-6.2.2506.data → netgen_mesher-6.2.2506.post31.dev0.data}/data/share/netgen/square.in2d +0 -0
- {netgen_mesher-6.2.2506.data → netgen_mesher-6.2.2506.post31.dev0.data}/data/share/netgen/squarecircle.in2d +0 -0
- {netgen_mesher-6.2.2506.data → netgen_mesher-6.2.2506.post31.dev0.data}/data/share/netgen/squarehole.in2d +0 -0
- {netgen_mesher-6.2.2506.data → netgen_mesher-6.2.2506.post31.dev0.data}/data/share/netgen/torus.geo +0 -0
- {netgen_mesher-6.2.2506.data → netgen_mesher-6.2.2506.post31.dev0.data}/data/share/netgen/trafo.geo +0 -0
- {netgen_mesher-6.2.2506.data → netgen_mesher-6.2.2506.post31.dev0.data}/data/share/netgen/twobricks.geo +0 -0
- {netgen_mesher-6.2.2506.data → netgen_mesher-6.2.2506.post31.dev0.data}/data/share/netgen/twocubes.geo +0 -0
- {netgen_mesher-6.2.2506.data → netgen_mesher-6.2.2506.post31.dev0.data}/data/share/netgen/twocyl.geo +0 -0
- {netgen_mesher-6.2.2506.dist-info → netgen_mesher-6.2.2506.post31.dev0.dist-info}/AUTHORS +0 -0
- {netgen_mesher-6.2.2506.dist-info → netgen_mesher-6.2.2506.post31.dev0.dist-info}/LICENSE +0 -0
- {netgen_mesher-6.2.2506.dist-info → netgen_mesher-6.2.2506.post31.dev0.dist-info}/WHEEL +0 -0
- {netgen_mesher-6.2.2506.dist-info → netgen_mesher-6.2.2506.post31.dev0.dist-info}/entry_points.txt +0 -0
- {netgen_mesher-6.2.2506.dist-info → netgen_mesher-6.2.2506.post31.dev0.dist-info}/top_level.txt +0 -0
netgen/__init__.pyi
CHANGED
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-31-ga34e6d60")
|
|
2
3
|
set(NETGEN_VERSION_MAJOR "6")
|
|
3
4
|
set(NETGEN_VERSION_MINOR "2")
|
|
4
5
|
set(NETGEN_VERSION_PATCH "2506")
|
|
5
|
-
set(NETGEN_VERSION_TWEAK "
|
|
6
|
+
set(NETGEN_VERSION_TWEAK "31")
|
|
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)
|
netgen/config/__init__.pyi
CHANGED
|
@@ -14,14 +14,14 @@ 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.2506-
|
|
18
|
-
NETGEN_VERSION_GIT: str = 'v6.2.2506'
|
|
19
|
-
NETGEN_VERSION_HASH: str = '
|
|
17
|
+
NETGEN_VERSION: str = '6.2.2506-31-ga34e6d60'
|
|
18
|
+
NETGEN_VERSION_GIT: str = 'v6.2.2506-31-ga34e6d60'
|
|
19
|
+
NETGEN_VERSION_HASH: str = 'ga34e6d60'
|
|
20
20
|
NETGEN_VERSION_MAJOR: str = '6'
|
|
21
21
|
NETGEN_VERSION_MINOR: str = '2'
|
|
22
22
|
NETGEN_VERSION_PATCH: str = '2506'
|
|
23
|
-
NETGEN_VERSION_PYTHON: str = '6.2.2506'
|
|
24
|
-
NETGEN_VERSION_TWEAK: str = '
|
|
23
|
+
NETGEN_VERSION_PYTHON: str = '6.2.2506.post31.dev0'
|
|
24
|
+
NETGEN_VERSION_TWEAK: str = '31'
|
|
25
25
|
NG_COMPILE_FLAGS: str = '/arch:AVX2'
|
|
26
26
|
NG_INSTALL_DIR_BIN: str = 'netgen'
|
|
27
27
|
NG_INSTALL_DIR_CMAKE: str = 'netgen/cmake'
|
|
@@ -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.2506'
|
|
52
|
+
version: str = 'v6.2.2506-31-ga34e6d60'
|
netgen/config/config.py
CHANGED
|
@@ -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.2506-
|
|
46
|
-
NETGEN_VERSION_GIT = "v6.2.2506"
|
|
47
|
-
NETGEN_VERSION_PYTHON = "6.2.2506"
|
|
45
|
+
NETGEN_VERSION = "6.2.2506-31-ga34e6d60"
|
|
46
|
+
NETGEN_VERSION_GIT = "v6.2.2506-31-ga34e6d60"
|
|
47
|
+
NETGEN_VERSION_PYTHON = "6.2.2506.post31.dev0"
|
|
48
48
|
|
|
49
49
|
NETGEN_VERSION_MAJOR = "6"
|
|
50
50
|
NETGEN_VERSION_MINOR = "2"
|
|
51
|
-
NETGEN_VERSION_TWEAK = "
|
|
51
|
+
NETGEN_VERSION_TWEAK = "31"
|
|
52
52
|
NETGEN_VERSION_PATCH = "2506"
|
|
53
|
-
NETGEN_VERSION_HASH = "
|
|
53
|
+
NETGEN_VERSION_HASH = "ga34e6d60"
|
|
54
54
|
|
|
55
55
|
PYTHON_VERSION = "3.13.2"
|
|
56
56
|
PYTHON_VERSION_MAJOR = "3"
|
netgen/config/config.pyi
CHANGED
|
@@ -16,14 +16,14 @@ 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.2506-
|
|
20
|
-
NETGEN_VERSION_GIT: str = 'v6.2.2506'
|
|
21
|
-
NETGEN_VERSION_HASH: str = '
|
|
19
|
+
NETGEN_VERSION: str = '6.2.2506-31-ga34e6d60'
|
|
20
|
+
NETGEN_VERSION_GIT: str = 'v6.2.2506-31-ga34e6d60'
|
|
21
|
+
NETGEN_VERSION_HASH: str = 'ga34e6d60'
|
|
22
22
|
NETGEN_VERSION_MAJOR: str = '6'
|
|
23
23
|
NETGEN_VERSION_MINOR: str = '2'
|
|
24
24
|
NETGEN_VERSION_PATCH: str = '2506'
|
|
25
|
-
NETGEN_VERSION_PYTHON: str = '6.2.2506'
|
|
26
|
-
NETGEN_VERSION_TWEAK: str = '
|
|
25
|
+
NETGEN_VERSION_PYTHON: str = '6.2.2506.post31.dev0'
|
|
26
|
+
NETGEN_VERSION_TWEAK: str = '31'
|
|
27
27
|
NG_COMPILE_FLAGS: str = '/arch:AVX2'
|
|
28
28
|
NG_INSTALL_DIR_BIN: str = 'netgen'
|
|
29
29
|
NG_INSTALL_DIR_CMAKE: str = 'netgen/cmake'
|
|
@@ -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.2506'
|
|
54
|
+
version: str = 'v6.2.2506-31-ga34e6d60'
|
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,12 @@ namespace ngcore
|
|
|
276
281
|
virtual Archive & operator & (std::string & str) = 0;
|
|
277
282
|
virtual Archive & operator & (char *& str) = 0;
|
|
278
283
|
|
|
284
|
+
Archive & operator &(std::any& a)
|
|
285
|
+
{
|
|
286
|
+
Shallow(a);
|
|
287
|
+
return *this;
|
|
288
|
+
}
|
|
289
|
+
|
|
279
290
|
Archive & operator & (VersionInfo & version)
|
|
280
291
|
{
|
|
281
292
|
if(Output())
|
|
@@ -505,7 +516,8 @@ namespace ngcore
|
|
|
505
516
|
template <typename T>
|
|
506
517
|
Archive& operator & (ngcore::Shallow<T>& shallow)
|
|
507
518
|
{
|
|
508
|
-
|
|
519
|
+
if(shallow_to_python)
|
|
520
|
+
Shallow(shallow.val);
|
|
509
521
|
return *this;
|
|
510
522
|
}
|
|
511
523
|
|
|
@@ -763,6 +775,7 @@ namespace ngcore
|
|
|
763
775
|
|
|
764
776
|
#ifdef NETGEN_PYTHON
|
|
765
777
|
friend pybind11::object CastAnyToPy(const std::any&);
|
|
778
|
+
friend std::any CastPyToAny(pybind11::object&);
|
|
766
779
|
#endif // NETGEN_PYTHON
|
|
767
780
|
|
|
768
781
|
// Returns ClassArchiveInfo of Demangled typeid
|
netgen/include/core/flags.hpp
CHANGED
|
@@ -198,7 +198,7 @@ namespace ngcore
|
|
|
198
198
|
}
|
|
199
199
|
#else // defined(NETGEN_TRACE_MEMORY) && !defined(__CUDA_ARCH__)
|
|
200
200
|
public:
|
|
201
|
-
MemoryTracer() {}
|
|
201
|
+
NETGEN_INLINE MemoryTracer() {}
|
|
202
202
|
MemoryTracer( std::string /* name */ ) {}
|
|
203
203
|
template <typename... TRest>
|
|
204
204
|
MemoryTracer( std::string /* name */, TRest & ... ) {}
|
netgen/include/core/ngcore.hpp
CHANGED
|
@@ -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
|
}
|
|
@@ -266,15 +266,24 @@ namespace ngcore
|
|
|
266
266
|
|
|
267
267
|
NETGEN_INLINE SIMD<double,2> rsqrt (SIMD<double,2> x)
|
|
268
268
|
{
|
|
269
|
-
|
|
269
|
+
return 1.0 / sqrt(x);
|
|
270
270
|
|
|
271
|
-
SIMD<double,2> y = vrsqrteq_f64(x.Data());
|
|
271
|
+
// SIMD<double,2> y = vrsqrteq_f64(x.Data());
|
|
272
|
+
|
|
273
|
+
/*
|
|
274
|
+
y = y * vrsqrtsq_f64( (x*y).Data(), y.Data());
|
|
275
|
+
y = y * vrsqrtsq_f64( (x*y).Data(), y.Data());
|
|
276
|
+
y = y * vrsqrtsq_f64( (x*y).Data(), y.Data());
|
|
277
|
+
*/
|
|
278
|
+
|
|
279
|
+
/*
|
|
272
280
|
auto x_half = 0.5*x;
|
|
273
281
|
y = y * (1.5 - (x_half * y * y));
|
|
274
282
|
y = y * (1.5 - (x_half * y * y));
|
|
275
|
-
|
|
276
|
-
|
|
283
|
+
y = y * (1.5 - (x_half * y * y));
|
|
284
|
+
|
|
277
285
|
return y;
|
|
286
|
+
*/
|
|
278
287
|
}
|
|
279
288
|
|
|
280
289
|
|
|
@@ -57,7 +57,7 @@ namespace ngcore
|
|
|
57
57
|
template <int N>
|
|
58
58
|
auto sincos (SIMD<double,N> x)
|
|
59
59
|
{
|
|
60
|
-
auto y = round(
|
|
60
|
+
auto y = round((2/M_PI) * x);
|
|
61
61
|
auto q = lround(y);
|
|
62
62
|
|
|
63
63
|
auto [s1,c1] = sincos_reduced(x - y * (M_PI/2));
|
|
@@ -151,7 +151,7 @@ namespace ngcore
|
|
|
151
151
|
// x = ldexp( x, n );
|
|
152
152
|
}
|
|
153
153
|
|
|
154
|
-
|
|
154
|
+
/*
|
|
155
155
|
inline auto Test1 (SIMD<double> x)
|
|
156
156
|
{
|
|
157
157
|
return myexp(x);
|
|
@@ -171,6 +171,7 @@ namespace ngcore
|
|
|
171
171
|
{
|
|
172
172
|
return sincos(x);
|
|
173
173
|
}
|
|
174
|
+
*/
|
|
174
175
|
|
|
175
176
|
}
|
|
176
177
|
|
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
#ifndef NETGEN_CORE_STATUSHANDLER
|
|
2
|
+
#define NETGEN_CORE_STATUSHANDLER
|
|
3
|
+
|
|
4
|
+
#include <string>
|
|
5
|
+
#include "utils.hpp"
|
|
6
|
+
|
|
7
|
+
namespace ngcore
|
|
8
|
+
{
|
|
9
|
+
|
|
10
|
+
class NGCORE_API multithreadt
|
|
11
|
+
{
|
|
12
|
+
public:
|
|
13
|
+
int pause;
|
|
14
|
+
int testmode;
|
|
15
|
+
int redraw;
|
|
16
|
+
int drawing;
|
|
17
|
+
int terminate;
|
|
18
|
+
int running;
|
|
19
|
+
double percent;
|
|
20
|
+
const char * task;
|
|
21
|
+
bool demorunning;
|
|
22
|
+
std::string * tcl_todo = new std::string(""); // tcl commands set from parallel thread
|
|
23
|
+
multithreadt();
|
|
24
|
+
};
|
|
25
|
+
|
|
26
|
+
NGCORE_API extern volatile multithreadt multithread;
|
|
27
|
+
|
|
28
|
+
|
|
29
|
+
extern NGCORE_API void SetStatMsg(const std::string& s);
|
|
30
|
+
|
|
31
|
+
extern NGCORE_API void PushStatus(const std::string& s);
|
|
32
|
+
extern NGCORE_API void PushStatusF(const std::string& s);
|
|
33
|
+
extern NGCORE_API void PopStatus();
|
|
34
|
+
extern NGCORE_API void SetThreadPercent(double percent);
|
|
35
|
+
extern NGCORE_API void GetStatus(std::string & s, double & percentage);
|
|
36
|
+
}
|
|
37
|
+
#endif
|
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
#ifndef NETGEN_VERSION_HPP_INCLUDED
|
|
2
2
|
#define NETGEN_VERSION_HPP_INCLUDED
|
|
3
|
-
#define NETGEN_VERSION "6.2.2506"
|
|
3
|
+
#define NETGEN_VERSION "6.2.2506-31-ga34e6d60"
|
|
4
4
|
#define NETGEN_VERSION_MAJOR 6
|
|
5
5
|
#define NETGEN_VERSION_MINOR 2
|
|
6
6
|
#define NETGEN_VERSION_PATCH 2506
|
|
7
|
-
#define NETGEN_VERSION_TWEAK
|
|
8
|
-
#define NETGEN_VERSION_HASH "
|
|
7
|
+
#define NETGEN_VERSION_TWEAK 31
|
|
8
|
+
#define NETGEN_VERSION_HASH "ga34e6d60"
|
|
9
9
|
#endif // NETGEN_VERSION_HPP_INCLUDED
|
|
@@ -42,10 +42,7 @@ namespace netgen
|
|
|
42
42
|
string GetName() const { return name ? *name : "default"; }
|
|
43
43
|
Vec<4> GetColor() { return col ? *col : Vec<4>{0., 1., 0., 1.}; }
|
|
44
44
|
|
|
45
|
-
void DoArchive(Archive& ar)
|
|
46
|
-
{
|
|
47
|
-
ar & name & col & maxh & hpref & layer;
|
|
48
|
-
}
|
|
45
|
+
void DoArchive(Archive& ar);
|
|
49
46
|
};
|
|
50
47
|
|
|
51
48
|
class GeometryShape;
|
|
@@ -31,23 +31,6 @@ namespace netgen
|
|
|
31
31
|
|
|
32
32
|
DLL_HEADER extern mutex tcl_todo_mutex;
|
|
33
33
|
|
|
34
|
-
class DLL_HEADER multithreadt
|
|
35
|
-
{
|
|
36
|
-
public:
|
|
37
|
-
int pause;
|
|
38
|
-
int testmode;
|
|
39
|
-
int redraw;
|
|
40
|
-
int drawing;
|
|
41
|
-
int terminate;
|
|
42
|
-
int running;
|
|
43
|
-
double percent;
|
|
44
|
-
const char * task;
|
|
45
|
-
bool demorunning;
|
|
46
|
-
string * tcl_todo = new string(""); // tcl commands set from parallel thread
|
|
47
|
-
multithreadt();
|
|
48
|
-
};
|
|
49
|
-
|
|
50
|
-
DLL_HEADER extern volatile multithreadt multithread;
|
|
51
34
|
|
|
52
35
|
class DebugParameters;
|
|
53
36
|
class Mesh;
|
|
@@ -4184,6 +4184,47 @@ HPRef_Struct reftet_3f_0e_0v =
|
|
|
4184
4184
|
|
|
4185
4185
|
|
|
4186
4186
|
|
|
4187
|
+
|
|
4188
|
+
// HP_TET_ALFELD
|
|
4189
|
+
int reftet_Alfeld_splitedges[][3] =
|
|
4190
|
+
{
|
|
4191
|
+
{ 0, 0, 0 }
|
|
4192
|
+
};
|
|
4193
|
+
int reftet_Alfeld_splitfaces[][4] =
|
|
4194
|
+
{
|
|
4195
|
+
{ 0, 0, 0, 0 }
|
|
4196
|
+
};
|
|
4197
|
+
|
|
4198
|
+
int reftet_Alfeld_splitelements[][5] =
|
|
4199
|
+
{
|
|
4200
|
+
{ 1, 2, 3, 4, 5},
|
|
4201
|
+
{ 0 }
|
|
4202
|
+
};
|
|
4203
|
+
|
|
4204
|
+
HPREF_ELEMENT_TYPE reftet_Alfeld_newelstypes[] =
|
|
4205
|
+
{
|
|
4206
|
+
HP_TET, HP_TET, HP_TET, HP_TET,
|
|
4207
|
+
HP_NONE,
|
|
4208
|
+
};
|
|
4209
|
+
|
|
4210
|
+
int reftet_Alfeld_newels[][8] =
|
|
4211
|
+
{
|
|
4212
|
+
{ 1, 2, 3, 5 },
|
|
4213
|
+
{ 1, 4, 2, 5 },
|
|
4214
|
+
{ 1, 3, 4, 5 },
|
|
4215
|
+
{ 3, 2, 4, 5 }
|
|
4216
|
+
};
|
|
4217
|
+
HPRef_Struct reftet_Alfeld =
|
|
4218
|
+
{
|
|
4219
|
+
HP_TET,
|
|
4220
|
+
reftet_Alfeld_splitedges,
|
|
4221
|
+
reftet_Alfeld_splitfaces,
|
|
4222
|
+
reftet_Alfeld_splitelements,
|
|
4223
|
+
reftet_Alfeld_newelstypes,
|
|
4224
|
+
reftet_Alfeld_newels
|
|
4225
|
+
};
|
|
4226
|
+
|
|
4227
|
+
|
|
4187
4228
|
/*
|
|
4188
4229
|
|
|
4189
4230
|
*/
|
|
@@ -45,13 +45,16 @@ namespace netgen
|
|
|
45
45
|
const MyStr& s5="", const MyStr& s6="", const MyStr& s7="", const MyStr& s8="");
|
|
46
46
|
extern DLL_HEADER void PrintTime(const MyStr& s1="", const MyStr& s2="", const MyStr& s3="", const MyStr& s4="",
|
|
47
47
|
const MyStr& s5="", const MyStr& s6="", const MyStr& s7="", const MyStr& s8="");
|
|
48
|
-
extern DLL_HEADER void SetStatMsg(const MyStr& s);
|
|
49
48
|
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
49
|
+
|
|
50
|
+
|
|
51
|
+
|
|
52
|
+
inline void PushStatusF(const std::string& s)
|
|
53
|
+
{
|
|
54
|
+
PushStatus (s);
|
|
55
|
+
PrintFnStart(s);
|
|
56
|
+
}
|
|
57
|
+
|
|
55
58
|
}
|
|
56
59
|
|
|
57
60
|
|
netgen/include/nginterface.h
CHANGED
|
@@ -353,10 +353,11 @@ extern "C" {
|
|
|
353
353
|
|
|
354
354
|
DLL_HEADER void RunParallel ( void * (*fun)(void *), void * in);
|
|
355
355
|
|
|
356
|
-
|
|
356
|
+
#define NG_STATUS_USES_STD_STRING
|
|
357
|
+
DLL_HEADER void Ng_PushStatus (const std::string& str);
|
|
357
358
|
DLL_HEADER void Ng_PopStatus ();
|
|
358
359
|
DLL_HEADER void Ng_SetThreadPercentage (double percent);
|
|
359
|
-
DLL_HEADER void Ng_GetStatus (
|
|
360
|
+
DLL_HEADER void Ng_GetStatus (std::string& str, double & percent);
|
|
360
361
|
|
|
361
362
|
DLL_HEADER void Ng_SetTerminate(void);
|
|
362
363
|
DLL_HEADER void Ng_UnSetTerminate(void);
|
netgen/include/occ/occ_utils.hpp
CHANGED
|
@@ -71,6 +71,20 @@ namespace netgen
|
|
|
71
71
|
return gp_Pnt(p(0), p(1), p(2));
|
|
72
72
|
}
|
|
73
73
|
|
|
74
|
+
inline void CheckValidPropertyType(const TopoDS_Shape & shape)
|
|
75
|
+
{
|
|
76
|
+
switch (shape.ShapeType())
|
|
77
|
+
{
|
|
78
|
+
case TopAbs_SOLID:
|
|
79
|
+
case TopAbs_FACE:
|
|
80
|
+
case TopAbs_EDGE:
|
|
81
|
+
case TopAbs_VERTEX:
|
|
82
|
+
break;
|
|
83
|
+
default:
|
|
84
|
+
throw Exception("Cannot query properties of compound shapes - setting properties sets property on all highest dimension subshape type");
|
|
85
|
+
}
|
|
86
|
+
}
|
|
87
|
+
|
|
74
88
|
DLL_HEADER Box<3> GetBoundingBox( const TopoDS_Shape & shape );
|
|
75
89
|
|
|
76
90
|
struct OCCIdentification
|
netgen/include/occ/occgeom.hpp
CHANGED
|
@@ -146,6 +146,14 @@ namespace netgen
|
|
|
146
146
|
|
|
147
147
|
static ShapeProperties& GetProperties(const TopoDS_Shape& shape)
|
|
148
148
|
{
|
|
149
|
+
try
|
|
150
|
+
{
|
|
151
|
+
CheckValidPropertyType(shape);
|
|
152
|
+
}
|
|
153
|
+
catch(Exception& e)
|
|
154
|
+
{
|
|
155
|
+
cerr << "WARNING: " << e.what() << endl;
|
|
156
|
+
}
|
|
149
157
|
auto index = OCCGeometry::global_shape_property_indices.FindIndex(shape);
|
|
150
158
|
if(index > 0)
|
|
151
159
|
return OCCGeometry::global_shape_properties
|
netgen/include/pybind11/attr.h
CHANGED
|
@@ -12,6 +12,7 @@
|
|
|
12
12
|
|
|
13
13
|
#include "detail/common.h"
|
|
14
14
|
#include "cast.h"
|
|
15
|
+
#include "trampoline_self_life_support.h"
|
|
15
16
|
|
|
16
17
|
#include <functional>
|
|
17
18
|
|
|
@@ -81,6 +82,10 @@ struct dynamic_attr {};
|
|
|
81
82
|
/// Annotation which enables the buffer protocol for a type
|
|
82
83
|
struct buffer_protocol {};
|
|
83
84
|
|
|
85
|
+
/// Annotation which enables releasing the GIL before calling the C++ destructor of wrapped
|
|
86
|
+
/// instances (pybind/pybind11#1446).
|
|
87
|
+
struct release_gil_before_calling_cpp_dtor {};
|
|
88
|
+
|
|
84
89
|
/// Annotation which requests that a special metaclass is created for a type
|
|
85
90
|
struct metaclass {
|
|
86
91
|
handle value;
|
|
@@ -188,6 +193,7 @@ struct argument_record {
|
|
|
188
193
|
|
|
189
194
|
/// Internal data structure which holds metadata about a bound function (signature, overloads,
|
|
190
195
|
/// etc.)
|
|
196
|
+
#define PYBIND11_DETAIL_FUNCTION_RECORD_ABI_ID "v1" // PLEASE UPDATE if the struct is changed.
|
|
191
197
|
struct function_record {
|
|
192
198
|
function_record()
|
|
193
199
|
: is_constructor(false), is_new_style_constructor(false), is_stateless(false),
|
|
@@ -267,12 +273,18 @@ struct function_record {
|
|
|
267
273
|
/// Pointer to next overload
|
|
268
274
|
function_record *next = nullptr;
|
|
269
275
|
};
|
|
276
|
+
// The main purpose of this macro is to make it easy to pin-point the critically related code
|
|
277
|
+
// sections.
|
|
278
|
+
#define PYBIND11_ENSURE_PRECONDITION_FOR_FUNCTIONAL_H_PERFORMANCE_OPTIMIZATIONS(...) \
|
|
279
|
+
static_assert( \
|
|
280
|
+
__VA_ARGS__, \
|
|
281
|
+
"Violation of precondition for pybind11/functional.h performance optimizations!")
|
|
270
282
|
|
|
271
283
|
/// Special data structure which (temporarily) holds metadata about a bound class
|
|
272
284
|
struct type_record {
|
|
273
285
|
PYBIND11_NOINLINE type_record()
|
|
274
286
|
: multiple_inheritance(false), dynamic_attr(false), buffer_protocol(false),
|
|
275
|
-
|
|
287
|
+
module_local(false), is_final(false), release_gil_before_calling_cpp_dtor(false) {}
|
|
276
288
|
|
|
277
289
|
/// Handle to the parent scope
|
|
278
290
|
handle scope;
|
|
@@ -301,6 +313,12 @@ struct type_record {
|
|
|
301
313
|
/// Function pointer to class_<..>::dealloc
|
|
302
314
|
void (*dealloc)(detail::value_and_holder &) = nullptr;
|
|
303
315
|
|
|
316
|
+
/// Function pointer for casting alias class (aka trampoline) pointer to
|
|
317
|
+
/// trampoline_self_life_support pointer. Sidesteps cross-DSO RTTI issues
|
|
318
|
+
/// on platforms like macOS (see PR #5728 for details).
|
|
319
|
+
get_trampoline_self_life_support_fn get_trampoline_self_life_support
|
|
320
|
+
= [](void *) -> trampoline_self_life_support * { return nullptr; };
|
|
321
|
+
|
|
304
322
|
/// List of base classes of the newly created type
|
|
305
323
|
list bases;
|
|
306
324
|
|
|
@@ -322,15 +340,17 @@ struct type_record {
|
|
|
322
340
|
/// Does the class implement the buffer protocol?
|
|
323
341
|
bool buffer_protocol : 1;
|
|
324
342
|
|
|
325
|
-
/// Is the default (unique_ptr) holder type used?
|
|
326
|
-
bool default_holder : 1;
|
|
327
|
-
|
|
328
343
|
/// Is the class definition local to the module shared object?
|
|
329
344
|
bool module_local : 1;
|
|
330
345
|
|
|
331
346
|
/// Is the class inheritable from python classes?
|
|
332
347
|
bool is_final : 1;
|
|
333
348
|
|
|
349
|
+
/// Solves pybind/pybind11#1446
|
|
350
|
+
bool release_gil_before_calling_cpp_dtor : 1;
|
|
351
|
+
|
|
352
|
+
holder_enum_t holder_enum_v = holder_enum_t::undefined;
|
|
353
|
+
|
|
334
354
|
PYBIND11_NOINLINE void add_base(const std::type_info &base, void *(*caster)(void *) ) {
|
|
335
355
|
auto *base_info = detail::get_type_info(base, false);
|
|
336
356
|
if (!base_info) {
|
|
@@ -340,18 +360,22 @@ struct type_record {
|
|
|
340
360
|
+ "\" referenced unknown base type \"" + tname + "\"");
|
|
341
361
|
}
|
|
342
362
|
|
|
343
|
-
|
|
363
|
+
// SMART_HOLDER_BAKEIN_FOLLOW_ON: Refine holder compatibility checks.
|
|
364
|
+
bool this_has_unique_ptr_holder = (holder_enum_v == holder_enum_t::std_unique_ptr);
|
|
365
|
+
bool base_has_unique_ptr_holder
|
|
366
|
+
= (base_info->holder_enum_v == holder_enum_t::std_unique_ptr);
|
|
367
|
+
if (this_has_unique_ptr_holder != base_has_unique_ptr_holder) {
|
|
344
368
|
std::string tname(base.name());
|
|
345
369
|
detail::clean_type_id(tname);
|
|
346
370
|
pybind11_fail("generic_type: type \"" + std::string(name) + "\" "
|
|
347
|
-
+ (
|
|
371
|
+
+ (this_has_unique_ptr_holder ? "does not have" : "has")
|
|
348
372
|
+ " a non-default holder type while its base \"" + tname + "\" "
|
|
349
|
-
+ (
|
|
373
|
+
+ (base_has_unique_ptr_holder ? "does not" : "does"));
|
|
350
374
|
}
|
|
351
375
|
|
|
352
376
|
bases.append((PyObject *) base_info->type);
|
|
353
377
|
|
|
354
|
-
#
|
|
378
|
+
#ifdef PYBIND11_BACKWARD_COMPATIBILITY_TP_DICTOFFSET
|
|
355
379
|
dynamic_attr |= base_info->type->tp_dictoffset != 0;
|
|
356
380
|
#else
|
|
357
381
|
dynamic_attr |= (base_info->type->tp_flags & Py_TPFLAGS_MANAGED_DICT) != 0;
|
|
@@ -603,6 +627,14 @@ struct process_attribute<module_local> : process_attribute_default<module_local>
|
|
|
603
627
|
static void init(const module_local &l, type_record *r) { r->module_local = l.value; }
|
|
604
628
|
};
|
|
605
629
|
|
|
630
|
+
template <>
|
|
631
|
+
struct process_attribute<release_gil_before_calling_cpp_dtor>
|
|
632
|
+
: process_attribute_default<release_gil_before_calling_cpp_dtor> {
|
|
633
|
+
static void init(const release_gil_before_calling_cpp_dtor &, type_record *r) {
|
|
634
|
+
r->release_gil_before_calling_cpp_dtor = true;
|
|
635
|
+
}
|
|
636
|
+
};
|
|
637
|
+
|
|
606
638
|
/// Process a 'prepend' attribute, putting this at the beginning of the overload chain
|
|
607
639
|
template <>
|
|
608
640
|
struct process_attribute<prepend> : process_attribute_default<prepend> {
|
|
@@ -102,22 +102,22 @@ struct buffer_info {
|
|
|
102
102
|
template <typename T>
|
|
103
103
|
buffer_info(const T *ptr, ssize_t size, bool readonly = true)
|
|
104
104
|
: buffer_info(
|
|
105
|
-
|
|
105
|
+
const_cast<T *>(ptr), sizeof(T), format_descriptor<T>::format(), size, readonly) {}
|
|
106
106
|
|
|
107
107
|
explicit buffer_info(Py_buffer *view, bool ownview = true)
|
|
108
108
|
: buffer_info(
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
|
|
109
|
+
view->buf,
|
|
110
|
+
view->itemsize,
|
|
111
|
+
view->format,
|
|
112
|
+
view->ndim,
|
|
113
|
+
{view->shape, view->shape + view->ndim},
|
|
114
|
+
/* Though buffer::request() requests PyBUF_STRIDES, ctypes objects
|
|
115
|
+
* ignore this flag and return a view with NULL strides.
|
|
116
|
+
* When strides are NULL, build them manually. */
|
|
117
|
+
view->strides
|
|
118
|
+
? std::vector<ssize_t>(view->strides, view->strides + view->ndim)
|
|
119
|
+
: detail::c_strides({view->shape, view->shape + view->ndim}, view->itemsize),
|
|
120
|
+
(view->readonly != 0)) {
|
|
121
121
|
// NOLINTNEXTLINE(cppcoreguidelines-prefer-member-initializer)
|
|
122
122
|
this->m_view = view;
|
|
123
123
|
// NOLINTNEXTLINE(cppcoreguidelines-prefer-member-initializer)
|
|
@@ -176,7 +176,7 @@ private:
|
|
|
176
176
|
detail::any_container<ssize_t> &&strides_in,
|
|
177
177
|
bool readonly)
|
|
178
178
|
: buffer_info(
|
|
179
|
-
|
|
179
|
+
ptr, itemsize, format, ndim, std::move(shape_in), std::move(strides_in), readonly) {}
|
|
180
180
|
|
|
181
181
|
Py_buffer *m_view = nullptr;
|
|
182
182
|
bool ownview = false;
|