PyNEC 2.3.2__tar.gz → 2.3.4__tar.gz

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.
Files changed (509) hide show
  1. {pynec-2.3.2 → pynec-2.3.4}/PKG-INFO +1 -1
  2. {pynec-2.3.2 → pynec-2.3.4}/PyNEC.egg-info/PKG-INFO +1 -1
  3. {pynec-2.3.2 → pynec-2.3.4}/PyNEC.py +4 -4
  4. {pynec-2.3.2 → pynec-2.3.4}/PyNEC_wrap.cxx +214 -6
  5. {pynec-2.3.2 → pynec-2.3.4}/necpp_src/src/c_geometry.cpp +23 -52
  6. {pynec-2.3.2 → pynec-2.3.4}/necpp_src/src/c_geometry_tb.cpp +61 -0
  7. {pynec-2.3.2 → pynec-2.3.4}/necpp_src/src/libNEC.cpp +7 -0
  8. {pynec-2.3.2 → pynec-2.3.4}/necpp_src/src/libnecpp.h +9 -0
  9. {pynec-2.3.2 → pynec-2.3.4}/necpp_src/src/matrix_algebra.cpp +10 -2
  10. {pynec-2.3.2 → pynec-2.3.4}/necpp_src/src/nec_context.cpp +11 -8
  11. {pynec-2.3.2 → pynec-2.3.4}/necpp_src/src/nec_context.h +44 -7
  12. {pynec-2.3.2 → pynec-2.3.4}/pyproject.toml +1 -1
  13. {pynec-2.3.2 → pynec-2.3.4}/setup.py +1 -1
  14. {pynec-2.3.2 → pynec-2.3.4}/LICENCE.txt +0 -0
  15. {pynec-2.3.2 → pynec-2.3.4}/MANIFEST.in +0 -0
  16. {pynec-2.3.2 → pynec-2.3.4}/PyNEC.egg-info/SOURCES.txt +0 -0
  17. {pynec-2.3.2 → pynec-2.3.4}/PyNEC.egg-info/dependency_links.txt +0 -0
  18. {pynec-2.3.2 → pynec-2.3.4}/PyNEC.egg-info/requires.txt +0 -0
  19. {pynec-2.3.2 → pynec-2.3.4}/PyNEC.egg-info/top_level.txt +0 -0
  20. {pynec-2.3.2 → pynec-2.3.4}/README.md +0 -0
  21. {pynec-2.3.2 → pynec-2.3.4}/example/antenna_util.py +0 -0
  22. {pynec-2.3.2 → pynec-2.3.4}/example/basic_usage.py +0 -0
  23. {pynec-2.3.2 → pynec-2.3.4}/example/context_clean.py +0 -0
  24. {pynec-2.3.2 → pynec-2.3.4}/example/dipole.py +0 -0
  25. {pynec-2.3.2 → pynec-2.3.4}/example/impedance_plot.py +0 -0
  26. {pynec-2.3.2 → pynec-2.3.4}/example/logperiodic_opt.py +0 -0
  27. {pynec-2.3.2 → pynec-2.3.4}/example/monopole.py +0 -0
  28. {pynec-2.3.2 → pynec-2.3.4}/example/monopole_realistic_ground_plane.py +0 -0
  29. {pynec-2.3.2 → pynec-2.3.4}/example/optimized.py +0 -0
  30. {pynec-2.3.2 → pynec-2.3.4}/example/radiation_pattern.py +0 -0
  31. {pynec-2.3.2 → pynec-2.3.4}/example/test_ai.py +0 -0
  32. {pynec-2.3.2 → pynec-2.3.4}/example/test_charge_densities.py +0 -0
  33. {pynec-2.3.2 → pynec-2.3.4}/example/test_ne_nh.py +0 -0
  34. {pynec-2.3.2 → pynec-2.3.4}/example/test_nrp.py +0 -0
  35. {pynec-2.3.2 → pynec-2.3.4}/example/test_rp.py +0 -0
  36. {pynec-2.3.2 → pynec-2.3.4}/example/test_rp2.py +0 -0
  37. {pynec-2.3.2 → pynec-2.3.4}/example/test_se.py +0 -0
  38. {pynec-2.3.2 → pynec-2.3.4}/example/test_structure_currents.py +0 -0
  39. {pynec-2.3.2 → pynec-2.3.4}/example/test_surface_patch_currents.py +0 -0
  40. {pynec-2.3.2 → pynec-2.3.4}/necpp_src/src/AntennaInput.h +0 -0
  41. {pynec-2.3.2 → pynec-2.3.4}/necpp_src/src/BaseInput.h +0 -0
  42. {pynec-2.3.2 → pynec-2.3.4}/necpp_src/src/CurrentInput.h +0 -0
  43. {pynec-2.3.2 → pynec-2.3.4}/necpp_src/src/PowerBudget.h +0 -0
  44. {pynec-2.3.2 → pynec-2.3.4}/necpp_src/src/RadiationInput.h +0 -0
  45. {pynec-2.3.2 → pynec-2.3.4}/necpp_src/src/XGetopt.cpp +0 -0
  46. {pynec-2.3.2 → pynec-2.3.4}/necpp_src/src/XGetopt.h +0 -0
  47. {pynec-2.3.2 → pynec-2.3.4}/necpp_src/src/c_evlcom.cpp +0 -0
  48. {pynec-2.3.2 → pynec-2.3.4}/necpp_src/src/c_evlcom.h +0 -0
  49. {pynec-2.3.2 → pynec-2.3.4}/necpp_src/src/c_evlcom_tb.cpp +0 -0
  50. {pynec-2.3.2 → pynec-2.3.4}/necpp_src/src/c_geometry.h +0 -0
  51. {pynec-2.3.2 → pynec-2.3.4}/necpp_src/src/c_ggrid.cpp +0 -0
  52. {pynec-2.3.2 → pynec-2.3.4}/necpp_src/src/c_ggrid.h +0 -0
  53. {pynec-2.3.2 → pynec-2.3.4}/necpp_src/src/c_plot_card.cpp +0 -0
  54. {pynec-2.3.2 → pynec-2.3.4}/necpp_src/src/c_plot_card.h +0 -0
  55. {pynec-2.3.2 → pynec-2.3.4}/necpp_src/src/common.h +0 -0
  56. {pynec-2.3.2 → pynec-2.3.4}/necpp_src/src/config.h.in +0 -0
  57. {pynec-2.3.2 → pynec-2.3.4}/necpp_src/src/eigen/Eigen/AccelerateSupport +0 -0
  58. {pynec-2.3.2 → pynec-2.3.4}/necpp_src/src/eigen/Eigen/Cholesky +0 -0
  59. {pynec-2.3.2 → pynec-2.3.4}/necpp_src/src/eigen/Eigen/CholmodSupport +0 -0
  60. {pynec-2.3.2 → pynec-2.3.4}/necpp_src/src/eigen/Eigen/Core +0 -0
  61. {pynec-2.3.2 → pynec-2.3.4}/necpp_src/src/eigen/Eigen/Dense +0 -0
  62. {pynec-2.3.2 → pynec-2.3.4}/necpp_src/src/eigen/Eigen/Eigen +0 -0
  63. {pynec-2.3.2 → pynec-2.3.4}/necpp_src/src/eigen/Eigen/Eigenvalues +0 -0
  64. {pynec-2.3.2 → pynec-2.3.4}/necpp_src/src/eigen/Eigen/Geometry +0 -0
  65. {pynec-2.3.2 → pynec-2.3.4}/necpp_src/src/eigen/Eigen/Householder +0 -0
  66. {pynec-2.3.2 → pynec-2.3.4}/necpp_src/src/eigen/Eigen/IterativeLinearSolvers +0 -0
  67. {pynec-2.3.2 → pynec-2.3.4}/necpp_src/src/eigen/Eigen/Jacobi +0 -0
  68. {pynec-2.3.2 → pynec-2.3.4}/necpp_src/src/eigen/Eigen/KLUSupport +0 -0
  69. {pynec-2.3.2 → pynec-2.3.4}/necpp_src/src/eigen/Eigen/LU +0 -0
  70. {pynec-2.3.2 → pynec-2.3.4}/necpp_src/src/eigen/Eigen/MetisSupport +0 -0
  71. {pynec-2.3.2 → pynec-2.3.4}/necpp_src/src/eigen/Eigen/OrderingMethods +0 -0
  72. {pynec-2.3.2 → pynec-2.3.4}/necpp_src/src/eigen/Eigen/PaStiXSupport +0 -0
  73. {pynec-2.3.2 → pynec-2.3.4}/necpp_src/src/eigen/Eigen/PardisoSupport +0 -0
  74. {pynec-2.3.2 → pynec-2.3.4}/necpp_src/src/eigen/Eigen/QR +0 -0
  75. {pynec-2.3.2 → pynec-2.3.4}/necpp_src/src/eigen/Eigen/QtAlignedMalloc +0 -0
  76. {pynec-2.3.2 → pynec-2.3.4}/necpp_src/src/eigen/Eigen/SPQRSupport +0 -0
  77. {pynec-2.3.2 → pynec-2.3.4}/necpp_src/src/eigen/Eigen/SVD +0 -0
  78. {pynec-2.3.2 → pynec-2.3.4}/necpp_src/src/eigen/Eigen/Sparse +0 -0
  79. {pynec-2.3.2 → pynec-2.3.4}/necpp_src/src/eigen/Eigen/SparseCholesky +0 -0
  80. {pynec-2.3.2 → pynec-2.3.4}/necpp_src/src/eigen/Eigen/SparseCore +0 -0
  81. {pynec-2.3.2 → pynec-2.3.4}/necpp_src/src/eigen/Eigen/SparseLU +0 -0
  82. {pynec-2.3.2 → pynec-2.3.4}/necpp_src/src/eigen/Eigen/SparseQR +0 -0
  83. {pynec-2.3.2 → pynec-2.3.4}/necpp_src/src/eigen/Eigen/StdDeque +0 -0
  84. {pynec-2.3.2 → pynec-2.3.4}/necpp_src/src/eigen/Eigen/StdList +0 -0
  85. {pynec-2.3.2 → pynec-2.3.4}/necpp_src/src/eigen/Eigen/StdVector +0 -0
  86. {pynec-2.3.2 → pynec-2.3.4}/necpp_src/src/eigen/Eigen/SuperLUSupport +0 -0
  87. {pynec-2.3.2 → pynec-2.3.4}/necpp_src/src/eigen/Eigen/ThreadPool +0 -0
  88. {pynec-2.3.2 → pynec-2.3.4}/necpp_src/src/eigen/Eigen/UmfPackSupport +0 -0
  89. {pynec-2.3.2 → pynec-2.3.4}/necpp_src/src/eigen/Eigen/Version +0 -0
  90. {pynec-2.3.2 → pynec-2.3.4}/necpp_src/src/eigen/Eigen/src/AccelerateSupport/AccelerateSupport.h +0 -0
  91. {pynec-2.3.2 → pynec-2.3.4}/necpp_src/src/eigen/Eigen/src/AccelerateSupport/InternalHeaderCheck.h +0 -0
  92. {pynec-2.3.2 → pynec-2.3.4}/necpp_src/src/eigen/Eigen/src/Cholesky/InternalHeaderCheck.h +0 -0
  93. {pynec-2.3.2 → pynec-2.3.4}/necpp_src/src/eigen/Eigen/src/Cholesky/LDLT.h +0 -0
  94. {pynec-2.3.2 → pynec-2.3.4}/necpp_src/src/eigen/Eigen/src/Cholesky/LLT.h +0 -0
  95. {pynec-2.3.2 → pynec-2.3.4}/necpp_src/src/eigen/Eigen/src/Cholesky/LLT_LAPACKE.h +0 -0
  96. {pynec-2.3.2 → pynec-2.3.4}/necpp_src/src/eigen/Eigen/src/CholmodSupport/CholmodSupport.h +0 -0
  97. {pynec-2.3.2 → pynec-2.3.4}/necpp_src/src/eigen/Eigen/src/CholmodSupport/InternalHeaderCheck.h +0 -0
  98. {pynec-2.3.2 → pynec-2.3.4}/necpp_src/src/eigen/Eigen/src/Core/ArithmeticSequence.h +0 -0
  99. {pynec-2.3.2 → pynec-2.3.4}/necpp_src/src/eigen/Eigen/src/Core/Array.h +0 -0
  100. {pynec-2.3.2 → pynec-2.3.4}/necpp_src/src/eigen/Eigen/src/Core/ArrayBase.h +0 -0
  101. {pynec-2.3.2 → pynec-2.3.4}/necpp_src/src/eigen/Eigen/src/Core/ArrayWrapper.h +0 -0
  102. {pynec-2.3.2 → pynec-2.3.4}/necpp_src/src/eigen/Eigen/src/Core/Assign.h +0 -0
  103. {pynec-2.3.2 → pynec-2.3.4}/necpp_src/src/eigen/Eigen/src/Core/AssignEvaluator.h +0 -0
  104. {pynec-2.3.2 → pynec-2.3.4}/necpp_src/src/eigen/Eigen/src/Core/Assign_MKL.h +0 -0
  105. {pynec-2.3.2 → pynec-2.3.4}/necpp_src/src/eigen/Eigen/src/Core/BandMatrix.h +0 -0
  106. {pynec-2.3.2 → pynec-2.3.4}/necpp_src/src/eigen/Eigen/src/Core/Block.h +0 -0
  107. {pynec-2.3.2 → pynec-2.3.4}/necpp_src/src/eigen/Eigen/src/Core/CommaInitializer.h +0 -0
  108. {pynec-2.3.2 → pynec-2.3.4}/necpp_src/src/eigen/Eigen/src/Core/ConditionEstimator.h +0 -0
  109. {pynec-2.3.2 → pynec-2.3.4}/necpp_src/src/eigen/Eigen/src/Core/CoreEvaluators.h +0 -0
  110. {pynec-2.3.2 → pynec-2.3.4}/necpp_src/src/eigen/Eigen/src/Core/CoreIterators.h +0 -0
  111. {pynec-2.3.2 → pynec-2.3.4}/necpp_src/src/eigen/Eigen/src/Core/CwiseBinaryOp.h +0 -0
  112. {pynec-2.3.2 → pynec-2.3.4}/necpp_src/src/eigen/Eigen/src/Core/CwiseNullaryOp.h +0 -0
  113. {pynec-2.3.2 → pynec-2.3.4}/necpp_src/src/eigen/Eigen/src/Core/CwiseTernaryOp.h +0 -0
  114. {pynec-2.3.2 → pynec-2.3.4}/necpp_src/src/eigen/Eigen/src/Core/CwiseUnaryOp.h +0 -0
  115. {pynec-2.3.2 → pynec-2.3.4}/necpp_src/src/eigen/Eigen/src/Core/CwiseUnaryView.h +0 -0
  116. {pynec-2.3.2 → pynec-2.3.4}/necpp_src/src/eigen/Eigen/src/Core/DenseBase.h +0 -0
  117. {pynec-2.3.2 → pynec-2.3.4}/necpp_src/src/eigen/Eigen/src/Core/DenseCoeffsBase.h +0 -0
  118. {pynec-2.3.2 → pynec-2.3.4}/necpp_src/src/eigen/Eigen/src/Core/DenseStorage.h +0 -0
  119. {pynec-2.3.2 → pynec-2.3.4}/necpp_src/src/eigen/Eigen/src/Core/DeviceWrapper.h +0 -0
  120. {pynec-2.3.2 → pynec-2.3.4}/necpp_src/src/eigen/Eigen/src/Core/Diagonal.h +0 -0
  121. {pynec-2.3.2 → pynec-2.3.4}/necpp_src/src/eigen/Eigen/src/Core/DiagonalMatrix.h +0 -0
  122. {pynec-2.3.2 → pynec-2.3.4}/necpp_src/src/eigen/Eigen/src/Core/DiagonalProduct.h +0 -0
  123. {pynec-2.3.2 → pynec-2.3.4}/necpp_src/src/eigen/Eigen/src/Core/Dot.h +0 -0
  124. {pynec-2.3.2 → pynec-2.3.4}/necpp_src/src/eigen/Eigen/src/Core/EigenBase.h +0 -0
  125. {pynec-2.3.2 → pynec-2.3.4}/necpp_src/src/eigen/Eigen/src/Core/Fill.h +0 -0
  126. {pynec-2.3.2 → pynec-2.3.4}/necpp_src/src/eigen/Eigen/src/Core/FindCoeff.h +0 -0
  127. {pynec-2.3.2 → pynec-2.3.4}/necpp_src/src/eigen/Eigen/src/Core/ForceAlignedAccess.h +0 -0
  128. {pynec-2.3.2 → pynec-2.3.4}/necpp_src/src/eigen/Eigen/src/Core/Fuzzy.h +0 -0
  129. {pynec-2.3.2 → pynec-2.3.4}/necpp_src/src/eigen/Eigen/src/Core/GeneralProduct.h +0 -0
  130. {pynec-2.3.2 → pynec-2.3.4}/necpp_src/src/eigen/Eigen/src/Core/GenericPacketMath.h +0 -0
  131. {pynec-2.3.2 → pynec-2.3.4}/necpp_src/src/eigen/Eigen/src/Core/GlobalFunctions.h +0 -0
  132. {pynec-2.3.2 → pynec-2.3.4}/necpp_src/src/eigen/Eigen/src/Core/IO.h +0 -0
  133. {pynec-2.3.2 → pynec-2.3.4}/necpp_src/src/eigen/Eigen/src/Core/IndexedView.h +0 -0
  134. {pynec-2.3.2 → pynec-2.3.4}/necpp_src/src/eigen/Eigen/src/Core/InnerProduct.h +0 -0
  135. {pynec-2.3.2 → pynec-2.3.4}/necpp_src/src/eigen/Eigen/src/Core/InternalHeaderCheck.h +0 -0
  136. {pynec-2.3.2 → pynec-2.3.4}/necpp_src/src/eigen/Eigen/src/Core/Inverse.h +0 -0
  137. {pynec-2.3.2 → pynec-2.3.4}/necpp_src/src/eigen/Eigen/src/Core/Map.h +0 -0
  138. {pynec-2.3.2 → pynec-2.3.4}/necpp_src/src/eigen/Eigen/src/Core/MapBase.h +0 -0
  139. {pynec-2.3.2 → pynec-2.3.4}/necpp_src/src/eigen/Eigen/src/Core/MathFunctions.h +0 -0
  140. {pynec-2.3.2 → pynec-2.3.4}/necpp_src/src/eigen/Eigen/src/Core/MathFunctionsImpl.h +0 -0
  141. {pynec-2.3.2 → pynec-2.3.4}/necpp_src/src/eigen/Eigen/src/Core/Matrix.h +0 -0
  142. {pynec-2.3.2 → pynec-2.3.4}/necpp_src/src/eigen/Eigen/src/Core/MatrixBase.h +0 -0
  143. {pynec-2.3.2 → pynec-2.3.4}/necpp_src/src/eigen/Eigen/src/Core/NestByValue.h +0 -0
  144. {pynec-2.3.2 → pynec-2.3.4}/necpp_src/src/eigen/Eigen/src/Core/NoAlias.h +0 -0
  145. {pynec-2.3.2 → pynec-2.3.4}/necpp_src/src/eigen/Eigen/src/Core/NumTraits.h +0 -0
  146. {pynec-2.3.2 → pynec-2.3.4}/necpp_src/src/eigen/Eigen/src/Core/PartialReduxEvaluator.h +0 -0
  147. {pynec-2.3.2 → pynec-2.3.4}/necpp_src/src/eigen/Eigen/src/Core/PermutationMatrix.h +0 -0
  148. {pynec-2.3.2 → pynec-2.3.4}/necpp_src/src/eigen/Eigen/src/Core/PlainObjectBase.h +0 -0
  149. {pynec-2.3.2 → pynec-2.3.4}/necpp_src/src/eigen/Eigen/src/Core/Product.h +0 -0
  150. {pynec-2.3.2 → pynec-2.3.4}/necpp_src/src/eigen/Eigen/src/Core/ProductEvaluators.h +0 -0
  151. {pynec-2.3.2 → pynec-2.3.4}/necpp_src/src/eigen/Eigen/src/Core/Random.h +0 -0
  152. {pynec-2.3.2 → pynec-2.3.4}/necpp_src/src/eigen/Eigen/src/Core/RandomImpl.h +0 -0
  153. {pynec-2.3.2 → pynec-2.3.4}/necpp_src/src/eigen/Eigen/src/Core/RealView.h +0 -0
  154. {pynec-2.3.2 → pynec-2.3.4}/necpp_src/src/eigen/Eigen/src/Core/Redux.h +0 -0
  155. {pynec-2.3.2 → pynec-2.3.4}/necpp_src/src/eigen/Eigen/src/Core/Ref.h +0 -0
  156. {pynec-2.3.2 → pynec-2.3.4}/necpp_src/src/eigen/Eigen/src/Core/Replicate.h +0 -0
  157. {pynec-2.3.2 → pynec-2.3.4}/necpp_src/src/eigen/Eigen/src/Core/Reshaped.h +0 -0
  158. {pynec-2.3.2 → pynec-2.3.4}/necpp_src/src/eigen/Eigen/src/Core/ReturnByValue.h +0 -0
  159. {pynec-2.3.2 → pynec-2.3.4}/necpp_src/src/eigen/Eigen/src/Core/Reverse.h +0 -0
  160. {pynec-2.3.2 → pynec-2.3.4}/necpp_src/src/eigen/Eigen/src/Core/Select.h +0 -0
  161. {pynec-2.3.2 → pynec-2.3.4}/necpp_src/src/eigen/Eigen/src/Core/SelfAdjointView.h +0 -0
  162. {pynec-2.3.2 → pynec-2.3.4}/necpp_src/src/eigen/Eigen/src/Core/SelfCwiseBinaryOp.h +0 -0
  163. {pynec-2.3.2 → pynec-2.3.4}/necpp_src/src/eigen/Eigen/src/Core/SkewSymmetricMatrix3.h +0 -0
  164. {pynec-2.3.2 → pynec-2.3.4}/necpp_src/src/eigen/Eigen/src/Core/Solve.h +0 -0
  165. {pynec-2.3.2 → pynec-2.3.4}/necpp_src/src/eigen/Eigen/src/Core/SolveTriangular.h +0 -0
  166. {pynec-2.3.2 → pynec-2.3.4}/necpp_src/src/eigen/Eigen/src/Core/SolverBase.h +0 -0
  167. {pynec-2.3.2 → pynec-2.3.4}/necpp_src/src/eigen/Eigen/src/Core/StableNorm.h +0 -0
  168. {pynec-2.3.2 → pynec-2.3.4}/necpp_src/src/eigen/Eigen/src/Core/StlIterators.h +0 -0
  169. {pynec-2.3.2 → pynec-2.3.4}/necpp_src/src/eigen/Eigen/src/Core/Stride.h +0 -0
  170. {pynec-2.3.2 → pynec-2.3.4}/necpp_src/src/eigen/Eigen/src/Core/Swap.h +0 -0
  171. {pynec-2.3.2 → pynec-2.3.4}/necpp_src/src/eigen/Eigen/src/Core/Transpose.h +0 -0
  172. {pynec-2.3.2 → pynec-2.3.4}/necpp_src/src/eigen/Eigen/src/Core/Transpositions.h +0 -0
  173. {pynec-2.3.2 → pynec-2.3.4}/necpp_src/src/eigen/Eigen/src/Core/TriangularMatrix.h +0 -0
  174. {pynec-2.3.2 → pynec-2.3.4}/necpp_src/src/eigen/Eigen/src/Core/VectorBlock.h +0 -0
  175. {pynec-2.3.2 → pynec-2.3.4}/necpp_src/src/eigen/Eigen/src/Core/VectorwiseOp.h +0 -0
  176. {pynec-2.3.2 → pynec-2.3.4}/necpp_src/src/eigen/Eigen/src/Core/Visitor.h +0 -0
  177. {pynec-2.3.2 → pynec-2.3.4}/necpp_src/src/eigen/Eigen/src/Core/arch/AVX/Complex.h +0 -0
  178. {pynec-2.3.2 → pynec-2.3.4}/necpp_src/src/eigen/Eigen/src/Core/arch/AVX/MathFunctions.h +0 -0
  179. {pynec-2.3.2 → pynec-2.3.4}/necpp_src/src/eigen/Eigen/src/Core/arch/AVX/PacketMath.h +0 -0
  180. {pynec-2.3.2 → pynec-2.3.4}/necpp_src/src/eigen/Eigen/src/Core/arch/AVX/Reductions.h +0 -0
  181. {pynec-2.3.2 → pynec-2.3.4}/necpp_src/src/eigen/Eigen/src/Core/arch/AVX/TypeCasting.h +0 -0
  182. {pynec-2.3.2 → pynec-2.3.4}/necpp_src/src/eigen/Eigen/src/Core/arch/AVX512/Complex.h +0 -0
  183. {pynec-2.3.2 → pynec-2.3.4}/necpp_src/src/eigen/Eigen/src/Core/arch/AVX512/GemmKernel.h +0 -0
  184. {pynec-2.3.2 → pynec-2.3.4}/necpp_src/src/eigen/Eigen/src/Core/arch/AVX512/MathFunctions.h +0 -0
  185. {pynec-2.3.2 → pynec-2.3.4}/necpp_src/src/eigen/Eigen/src/Core/arch/AVX512/MathFunctionsFP16.h +0 -0
  186. {pynec-2.3.2 → pynec-2.3.4}/necpp_src/src/eigen/Eigen/src/Core/arch/AVX512/PacketMath.h +0 -0
  187. {pynec-2.3.2 → pynec-2.3.4}/necpp_src/src/eigen/Eigen/src/Core/arch/AVX512/PacketMathFP16.h +0 -0
  188. {pynec-2.3.2 → pynec-2.3.4}/necpp_src/src/eigen/Eigen/src/Core/arch/AVX512/Reductions.h +0 -0
  189. {pynec-2.3.2 → pynec-2.3.4}/necpp_src/src/eigen/Eigen/src/Core/arch/AVX512/TrsmKernel.h +0 -0
  190. {pynec-2.3.2 → pynec-2.3.4}/necpp_src/src/eigen/Eigen/src/Core/arch/AVX512/TrsmUnrolls.inc +0 -0
  191. {pynec-2.3.2 → pynec-2.3.4}/necpp_src/src/eigen/Eigen/src/Core/arch/AVX512/TypeCasting.h +0 -0
  192. {pynec-2.3.2 → pynec-2.3.4}/necpp_src/src/eigen/Eigen/src/Core/arch/AVX512/TypeCastingFP16.h +0 -0
  193. {pynec-2.3.2 → pynec-2.3.4}/necpp_src/src/eigen/Eigen/src/Core/arch/AltiVec/Complex.h +0 -0
  194. {pynec-2.3.2 → pynec-2.3.4}/necpp_src/src/eigen/Eigen/src/Core/arch/AltiVec/MathFunctions.h +0 -0
  195. {pynec-2.3.2 → pynec-2.3.4}/necpp_src/src/eigen/Eigen/src/Core/arch/AltiVec/MatrixProduct.h +0 -0
  196. {pynec-2.3.2 → pynec-2.3.4}/necpp_src/src/eigen/Eigen/src/Core/arch/AltiVec/MatrixProductCommon.h +0 -0
  197. {pynec-2.3.2 → pynec-2.3.4}/necpp_src/src/eigen/Eigen/src/Core/arch/AltiVec/MatrixProductMMA.h +0 -0
  198. {pynec-2.3.2 → pynec-2.3.4}/necpp_src/src/eigen/Eigen/src/Core/arch/AltiVec/MatrixProductMMAbfloat16.h +0 -0
  199. {pynec-2.3.2 → pynec-2.3.4}/necpp_src/src/eigen/Eigen/src/Core/arch/AltiVec/MatrixVectorProduct.inc +0 -0
  200. {pynec-2.3.2 → pynec-2.3.4}/necpp_src/src/eigen/Eigen/src/Core/arch/AltiVec/PacketMath.h +0 -0
  201. {pynec-2.3.2 → pynec-2.3.4}/necpp_src/src/eigen/Eigen/src/Core/arch/AltiVec/TypeCasting.h +0 -0
  202. {pynec-2.3.2 → pynec-2.3.4}/necpp_src/src/eigen/Eigen/src/Core/arch/Default/BFloat16.h +0 -0
  203. {pynec-2.3.2 → pynec-2.3.4}/necpp_src/src/eigen/Eigen/src/Core/arch/Default/ConjHelper.h +0 -0
  204. {pynec-2.3.2 → pynec-2.3.4}/necpp_src/src/eigen/Eigen/src/Core/arch/Default/GenericPacketMathFunctions.h +0 -0
  205. {pynec-2.3.2 → pynec-2.3.4}/necpp_src/src/eigen/Eigen/src/Core/arch/Default/GenericPacketMathFunctionsFwd.h +0 -0
  206. {pynec-2.3.2 → pynec-2.3.4}/necpp_src/src/eigen/Eigen/src/Core/arch/Default/Half.h +0 -0
  207. {pynec-2.3.2 → pynec-2.3.4}/necpp_src/src/eigen/Eigen/src/Core/arch/Default/Settings.h +0 -0
  208. {pynec-2.3.2 → pynec-2.3.4}/necpp_src/src/eigen/Eigen/src/Core/arch/GPU/Complex.h +0 -0
  209. {pynec-2.3.2 → pynec-2.3.4}/necpp_src/src/eigen/Eigen/src/Core/arch/GPU/MathFunctions.h +0 -0
  210. {pynec-2.3.2 → pynec-2.3.4}/necpp_src/src/eigen/Eigen/src/Core/arch/GPU/PacketMath.h +0 -0
  211. {pynec-2.3.2 → pynec-2.3.4}/necpp_src/src/eigen/Eigen/src/Core/arch/GPU/Tuple.h +0 -0
  212. {pynec-2.3.2 → pynec-2.3.4}/necpp_src/src/eigen/Eigen/src/Core/arch/GPU/TypeCasting.h +0 -0
  213. {pynec-2.3.2 → pynec-2.3.4}/necpp_src/src/eigen/Eigen/src/Core/arch/HIP/hcc/math_constants.h +0 -0
  214. {pynec-2.3.2 → pynec-2.3.4}/necpp_src/src/eigen/Eigen/src/Core/arch/HVX/PacketMath.h +0 -0
  215. {pynec-2.3.2 → pynec-2.3.4}/necpp_src/src/eigen/Eigen/src/Core/arch/LSX/Complex.h +0 -0
  216. {pynec-2.3.2 → pynec-2.3.4}/necpp_src/src/eigen/Eigen/src/Core/arch/LSX/GeneralBlockPanelKernel.h +0 -0
  217. {pynec-2.3.2 → pynec-2.3.4}/necpp_src/src/eigen/Eigen/src/Core/arch/LSX/MathFunctions.h +0 -0
  218. {pynec-2.3.2 → pynec-2.3.4}/necpp_src/src/eigen/Eigen/src/Core/arch/LSX/PacketMath.h +0 -0
  219. {pynec-2.3.2 → pynec-2.3.4}/necpp_src/src/eigen/Eigen/src/Core/arch/LSX/TypeCasting.h +0 -0
  220. {pynec-2.3.2 → pynec-2.3.4}/necpp_src/src/eigen/Eigen/src/Core/arch/MSA/Complex.h +0 -0
  221. {pynec-2.3.2 → pynec-2.3.4}/necpp_src/src/eigen/Eigen/src/Core/arch/MSA/MathFunctions.h +0 -0
  222. {pynec-2.3.2 → pynec-2.3.4}/necpp_src/src/eigen/Eigen/src/Core/arch/MSA/PacketMath.h +0 -0
  223. {pynec-2.3.2 → pynec-2.3.4}/necpp_src/src/eigen/Eigen/src/Core/arch/NEON/Complex.h +0 -0
  224. {pynec-2.3.2 → pynec-2.3.4}/necpp_src/src/eigen/Eigen/src/Core/arch/NEON/GeneralBlockPanelKernel.h +0 -0
  225. {pynec-2.3.2 → pynec-2.3.4}/necpp_src/src/eigen/Eigen/src/Core/arch/NEON/MathFunctions.h +0 -0
  226. {pynec-2.3.2 → pynec-2.3.4}/necpp_src/src/eigen/Eigen/src/Core/arch/NEON/PacketMath.h +0 -0
  227. {pynec-2.3.2 → pynec-2.3.4}/necpp_src/src/eigen/Eigen/src/Core/arch/NEON/TypeCasting.h +0 -0
  228. {pynec-2.3.2 → pynec-2.3.4}/necpp_src/src/eigen/Eigen/src/Core/arch/NEON/UnaryFunctors.h +0 -0
  229. {pynec-2.3.2 → pynec-2.3.4}/necpp_src/src/eigen/Eigen/src/Core/arch/SSE/Complex.h +0 -0
  230. {pynec-2.3.2 → pynec-2.3.4}/necpp_src/src/eigen/Eigen/src/Core/arch/SSE/MathFunctions.h +0 -0
  231. {pynec-2.3.2 → pynec-2.3.4}/necpp_src/src/eigen/Eigen/src/Core/arch/SSE/PacketMath.h +0 -0
  232. {pynec-2.3.2 → pynec-2.3.4}/necpp_src/src/eigen/Eigen/src/Core/arch/SSE/Reductions.h +0 -0
  233. {pynec-2.3.2 → pynec-2.3.4}/necpp_src/src/eigen/Eigen/src/Core/arch/SSE/TypeCasting.h +0 -0
  234. {pynec-2.3.2 → pynec-2.3.4}/necpp_src/src/eigen/Eigen/src/Core/arch/SVE/MathFunctions.h +0 -0
  235. {pynec-2.3.2 → pynec-2.3.4}/necpp_src/src/eigen/Eigen/src/Core/arch/SVE/PacketMath.h +0 -0
  236. {pynec-2.3.2 → pynec-2.3.4}/necpp_src/src/eigen/Eigen/src/Core/arch/SVE/TypeCasting.h +0 -0
  237. {pynec-2.3.2 → pynec-2.3.4}/necpp_src/src/eigen/Eigen/src/Core/arch/SYCL/InteropHeaders.h +0 -0
  238. {pynec-2.3.2 → pynec-2.3.4}/necpp_src/src/eigen/Eigen/src/Core/arch/SYCL/MathFunctions.h +0 -0
  239. {pynec-2.3.2 → pynec-2.3.4}/necpp_src/src/eigen/Eigen/src/Core/arch/SYCL/PacketMath.h +0 -0
  240. {pynec-2.3.2 → pynec-2.3.4}/necpp_src/src/eigen/Eigen/src/Core/arch/SYCL/TypeCasting.h +0 -0
  241. {pynec-2.3.2 → pynec-2.3.4}/necpp_src/src/eigen/Eigen/src/Core/arch/ZVector/Complex.h +0 -0
  242. {pynec-2.3.2 → pynec-2.3.4}/necpp_src/src/eigen/Eigen/src/Core/arch/ZVector/MathFunctions.h +0 -0
  243. {pynec-2.3.2 → pynec-2.3.4}/necpp_src/src/eigen/Eigen/src/Core/arch/ZVector/PacketMath.h +0 -0
  244. {pynec-2.3.2 → pynec-2.3.4}/necpp_src/src/eigen/Eigen/src/Core/functors/AssignmentFunctors.h +0 -0
  245. {pynec-2.3.2 → pynec-2.3.4}/necpp_src/src/eigen/Eigen/src/Core/functors/BinaryFunctors.h +0 -0
  246. {pynec-2.3.2 → pynec-2.3.4}/necpp_src/src/eigen/Eigen/src/Core/functors/NullaryFunctors.h +0 -0
  247. {pynec-2.3.2 → pynec-2.3.4}/necpp_src/src/eigen/Eigen/src/Core/functors/StlFunctors.h +0 -0
  248. {pynec-2.3.2 → pynec-2.3.4}/necpp_src/src/eigen/Eigen/src/Core/functors/TernaryFunctors.h +0 -0
  249. {pynec-2.3.2 → pynec-2.3.4}/necpp_src/src/eigen/Eigen/src/Core/functors/UnaryFunctors.h +0 -0
  250. {pynec-2.3.2 → pynec-2.3.4}/necpp_src/src/eigen/Eigen/src/Core/products/GeneralBlockPanelKernel.h +0 -0
  251. {pynec-2.3.2 → pynec-2.3.4}/necpp_src/src/eigen/Eigen/src/Core/products/GeneralMatrixMatrix.h +0 -0
  252. {pynec-2.3.2 → pynec-2.3.4}/necpp_src/src/eigen/Eigen/src/Core/products/GeneralMatrixMatrixTriangular.h +0 -0
  253. {pynec-2.3.2 → pynec-2.3.4}/necpp_src/src/eigen/Eigen/src/Core/products/GeneralMatrixMatrixTriangular_BLAS.h +0 -0
  254. {pynec-2.3.2 → pynec-2.3.4}/necpp_src/src/eigen/Eigen/src/Core/products/GeneralMatrixMatrix_BLAS.h +0 -0
  255. {pynec-2.3.2 → pynec-2.3.4}/necpp_src/src/eigen/Eigen/src/Core/products/GeneralMatrixVector.h +0 -0
  256. {pynec-2.3.2 → pynec-2.3.4}/necpp_src/src/eigen/Eigen/src/Core/products/GeneralMatrixVector_BLAS.h +0 -0
  257. {pynec-2.3.2 → pynec-2.3.4}/necpp_src/src/eigen/Eigen/src/Core/products/Parallelizer.h +0 -0
  258. {pynec-2.3.2 → pynec-2.3.4}/necpp_src/src/eigen/Eigen/src/Core/products/SelfadjointMatrixMatrix.h +0 -0
  259. {pynec-2.3.2 → pynec-2.3.4}/necpp_src/src/eigen/Eigen/src/Core/products/SelfadjointMatrixMatrix_BLAS.h +0 -0
  260. {pynec-2.3.2 → pynec-2.3.4}/necpp_src/src/eigen/Eigen/src/Core/products/SelfadjointMatrixVector.h +0 -0
  261. {pynec-2.3.2 → pynec-2.3.4}/necpp_src/src/eigen/Eigen/src/Core/products/SelfadjointMatrixVector_BLAS.h +0 -0
  262. {pynec-2.3.2 → pynec-2.3.4}/necpp_src/src/eigen/Eigen/src/Core/products/SelfadjointProduct.h +0 -0
  263. {pynec-2.3.2 → pynec-2.3.4}/necpp_src/src/eigen/Eigen/src/Core/products/SelfadjointRank2Update.h +0 -0
  264. {pynec-2.3.2 → pynec-2.3.4}/necpp_src/src/eigen/Eigen/src/Core/products/TriangularMatrixMatrix.h +0 -0
  265. {pynec-2.3.2 → pynec-2.3.4}/necpp_src/src/eigen/Eigen/src/Core/products/TriangularMatrixMatrix_BLAS.h +0 -0
  266. {pynec-2.3.2 → pynec-2.3.4}/necpp_src/src/eigen/Eigen/src/Core/products/TriangularMatrixVector.h +0 -0
  267. {pynec-2.3.2 → pynec-2.3.4}/necpp_src/src/eigen/Eigen/src/Core/products/TriangularMatrixVector_BLAS.h +0 -0
  268. {pynec-2.3.2 → pynec-2.3.4}/necpp_src/src/eigen/Eigen/src/Core/products/TriangularSolverMatrix.h +0 -0
  269. {pynec-2.3.2 → pynec-2.3.4}/necpp_src/src/eigen/Eigen/src/Core/products/TriangularSolverMatrix_BLAS.h +0 -0
  270. {pynec-2.3.2 → pynec-2.3.4}/necpp_src/src/eigen/Eigen/src/Core/products/TriangularSolverVector.h +0 -0
  271. {pynec-2.3.2 → pynec-2.3.4}/necpp_src/src/eigen/Eigen/src/Core/util/Assert.h +0 -0
  272. {pynec-2.3.2 → pynec-2.3.4}/necpp_src/src/eigen/Eigen/src/Core/util/BlasUtil.h +0 -0
  273. {pynec-2.3.2 → pynec-2.3.4}/necpp_src/src/eigen/Eigen/src/Core/util/ConfigureVectorization.h +0 -0
  274. {pynec-2.3.2 → pynec-2.3.4}/necpp_src/src/eigen/Eigen/src/Core/util/Constants.h +0 -0
  275. {pynec-2.3.2 → pynec-2.3.4}/necpp_src/src/eigen/Eigen/src/Core/util/DisableStupidWarnings.h +0 -0
  276. {pynec-2.3.2 → pynec-2.3.4}/necpp_src/src/eigen/Eigen/src/Core/util/EmulateArray.h +0 -0
  277. {pynec-2.3.2 → pynec-2.3.4}/necpp_src/src/eigen/Eigen/src/Core/util/ForwardDeclarations.h +0 -0
  278. {pynec-2.3.2 → pynec-2.3.4}/necpp_src/src/eigen/Eigen/src/Core/util/GpuHipCudaDefines.inc +0 -0
  279. {pynec-2.3.2 → pynec-2.3.4}/necpp_src/src/eigen/Eigen/src/Core/util/GpuHipCudaUndefines.inc +0 -0
  280. {pynec-2.3.2 → pynec-2.3.4}/necpp_src/src/eigen/Eigen/src/Core/util/IndexedViewHelper.h +0 -0
  281. {pynec-2.3.2 → pynec-2.3.4}/necpp_src/src/eigen/Eigen/src/Core/util/IntegralConstant.h +0 -0
  282. {pynec-2.3.2 → pynec-2.3.4}/necpp_src/src/eigen/Eigen/src/Core/util/MKL_support.h +0 -0
  283. {pynec-2.3.2 → pynec-2.3.4}/necpp_src/src/eigen/Eigen/src/Core/util/Macros.h +0 -0
  284. {pynec-2.3.2 → pynec-2.3.4}/necpp_src/src/eigen/Eigen/src/Core/util/MaxSizeVector.h +0 -0
  285. {pynec-2.3.2 → pynec-2.3.4}/necpp_src/src/eigen/Eigen/src/Core/util/Memory.h +0 -0
  286. {pynec-2.3.2 → pynec-2.3.4}/necpp_src/src/eigen/Eigen/src/Core/util/Meta.h +0 -0
  287. {pynec-2.3.2 → pynec-2.3.4}/necpp_src/src/eigen/Eigen/src/Core/util/MoreMeta.h +0 -0
  288. {pynec-2.3.2 → pynec-2.3.4}/necpp_src/src/eigen/Eigen/src/Core/util/ReenableStupidWarnings.h +0 -0
  289. {pynec-2.3.2 → pynec-2.3.4}/necpp_src/src/eigen/Eigen/src/Core/util/ReshapedHelper.h +0 -0
  290. {pynec-2.3.2 → pynec-2.3.4}/necpp_src/src/eigen/Eigen/src/Core/util/Serializer.h +0 -0
  291. {pynec-2.3.2 → pynec-2.3.4}/necpp_src/src/eigen/Eigen/src/Core/util/StaticAssert.h +0 -0
  292. {pynec-2.3.2 → pynec-2.3.4}/necpp_src/src/eigen/Eigen/src/Core/util/SymbolicIndex.h +0 -0
  293. {pynec-2.3.2 → pynec-2.3.4}/necpp_src/src/eigen/Eigen/src/Core/util/XprHelper.h +0 -0
  294. {pynec-2.3.2 → pynec-2.3.4}/necpp_src/src/eigen/Eigen/src/Eigenvalues/ComplexEigenSolver.h +0 -0
  295. {pynec-2.3.2 → pynec-2.3.4}/necpp_src/src/eigen/Eigen/src/Eigenvalues/ComplexSchur.h +0 -0
  296. {pynec-2.3.2 → pynec-2.3.4}/necpp_src/src/eigen/Eigen/src/Eigenvalues/ComplexSchur_LAPACKE.h +0 -0
  297. {pynec-2.3.2 → pynec-2.3.4}/necpp_src/src/eigen/Eigen/src/Eigenvalues/EigenSolver.h +0 -0
  298. {pynec-2.3.2 → pynec-2.3.4}/necpp_src/src/eigen/Eigen/src/Eigenvalues/GeneralizedEigenSolver.h +0 -0
  299. {pynec-2.3.2 → pynec-2.3.4}/necpp_src/src/eigen/Eigen/src/Eigenvalues/GeneralizedSelfAdjointEigenSolver.h +0 -0
  300. {pynec-2.3.2 → pynec-2.3.4}/necpp_src/src/eigen/Eigen/src/Eigenvalues/HessenbergDecomposition.h +0 -0
  301. {pynec-2.3.2 → pynec-2.3.4}/necpp_src/src/eigen/Eigen/src/Eigenvalues/InternalHeaderCheck.h +0 -0
  302. {pynec-2.3.2 → pynec-2.3.4}/necpp_src/src/eigen/Eigen/src/Eigenvalues/MatrixBaseEigenvalues.h +0 -0
  303. {pynec-2.3.2 → pynec-2.3.4}/necpp_src/src/eigen/Eigen/src/Eigenvalues/RealQZ.h +0 -0
  304. {pynec-2.3.2 → pynec-2.3.4}/necpp_src/src/eigen/Eigen/src/Eigenvalues/RealSchur.h +0 -0
  305. {pynec-2.3.2 → pynec-2.3.4}/necpp_src/src/eigen/Eigen/src/Eigenvalues/RealSchur_LAPACKE.h +0 -0
  306. {pynec-2.3.2 → pynec-2.3.4}/necpp_src/src/eigen/Eigen/src/Eigenvalues/SelfAdjointEigenSolver.h +0 -0
  307. {pynec-2.3.2 → pynec-2.3.4}/necpp_src/src/eigen/Eigen/src/Eigenvalues/SelfAdjointEigenSolver_LAPACKE.h +0 -0
  308. {pynec-2.3.2 → pynec-2.3.4}/necpp_src/src/eigen/Eigen/src/Eigenvalues/Tridiagonalization.h +0 -0
  309. {pynec-2.3.2 → pynec-2.3.4}/necpp_src/src/eigen/Eigen/src/Geometry/AlignedBox.h +0 -0
  310. {pynec-2.3.2 → pynec-2.3.4}/necpp_src/src/eigen/Eigen/src/Geometry/AngleAxis.h +0 -0
  311. {pynec-2.3.2 → pynec-2.3.4}/necpp_src/src/eigen/Eigen/src/Geometry/EulerAngles.h +0 -0
  312. {pynec-2.3.2 → pynec-2.3.4}/necpp_src/src/eigen/Eigen/src/Geometry/Homogeneous.h +0 -0
  313. {pynec-2.3.2 → pynec-2.3.4}/necpp_src/src/eigen/Eigen/src/Geometry/Hyperplane.h +0 -0
  314. {pynec-2.3.2 → pynec-2.3.4}/necpp_src/src/eigen/Eigen/src/Geometry/InternalHeaderCheck.h +0 -0
  315. {pynec-2.3.2 → pynec-2.3.4}/necpp_src/src/eigen/Eigen/src/Geometry/OrthoMethods.h +0 -0
  316. {pynec-2.3.2 → pynec-2.3.4}/necpp_src/src/eigen/Eigen/src/Geometry/ParametrizedLine.h +0 -0
  317. {pynec-2.3.2 → pynec-2.3.4}/necpp_src/src/eigen/Eigen/src/Geometry/Quaternion.h +0 -0
  318. {pynec-2.3.2 → pynec-2.3.4}/necpp_src/src/eigen/Eigen/src/Geometry/Rotation2D.h +0 -0
  319. {pynec-2.3.2 → pynec-2.3.4}/necpp_src/src/eigen/Eigen/src/Geometry/RotationBase.h +0 -0
  320. {pynec-2.3.2 → pynec-2.3.4}/necpp_src/src/eigen/Eigen/src/Geometry/Scaling.h +0 -0
  321. {pynec-2.3.2 → pynec-2.3.4}/necpp_src/src/eigen/Eigen/src/Geometry/Transform.h +0 -0
  322. {pynec-2.3.2 → pynec-2.3.4}/necpp_src/src/eigen/Eigen/src/Geometry/Translation.h +0 -0
  323. {pynec-2.3.2 → pynec-2.3.4}/necpp_src/src/eigen/Eigen/src/Geometry/Umeyama.h +0 -0
  324. {pynec-2.3.2 → pynec-2.3.4}/necpp_src/src/eigen/Eigen/src/Geometry/arch/Geometry_SIMD.h +0 -0
  325. {pynec-2.3.2 → pynec-2.3.4}/necpp_src/src/eigen/Eigen/src/Householder/BlockHouseholder.h +0 -0
  326. {pynec-2.3.2 → pynec-2.3.4}/necpp_src/src/eigen/Eigen/src/Householder/Householder.h +0 -0
  327. {pynec-2.3.2 → pynec-2.3.4}/necpp_src/src/eigen/Eigen/src/Householder/HouseholderSequence.h +0 -0
  328. {pynec-2.3.2 → pynec-2.3.4}/necpp_src/src/eigen/Eigen/src/Householder/InternalHeaderCheck.h +0 -0
  329. {pynec-2.3.2 → pynec-2.3.4}/necpp_src/src/eigen/Eigen/src/IterativeLinearSolvers/BasicPreconditioners.h +0 -0
  330. {pynec-2.3.2 → pynec-2.3.4}/necpp_src/src/eigen/Eigen/src/IterativeLinearSolvers/BiCGSTAB.h +0 -0
  331. {pynec-2.3.2 → pynec-2.3.4}/necpp_src/src/eigen/Eigen/src/IterativeLinearSolvers/ConjugateGradient.h +0 -0
  332. {pynec-2.3.2 → pynec-2.3.4}/necpp_src/src/eigen/Eigen/src/IterativeLinearSolvers/IncompleteCholesky.h +0 -0
  333. {pynec-2.3.2 → pynec-2.3.4}/necpp_src/src/eigen/Eigen/src/IterativeLinearSolvers/IncompleteLUT.h +0 -0
  334. {pynec-2.3.2 → pynec-2.3.4}/necpp_src/src/eigen/Eigen/src/IterativeLinearSolvers/InternalHeaderCheck.h +0 -0
  335. {pynec-2.3.2 → pynec-2.3.4}/necpp_src/src/eigen/Eigen/src/IterativeLinearSolvers/IterativeSolverBase.h +0 -0
  336. {pynec-2.3.2 → pynec-2.3.4}/necpp_src/src/eigen/Eigen/src/IterativeLinearSolvers/LeastSquareConjugateGradient.h +0 -0
  337. {pynec-2.3.2 → pynec-2.3.4}/necpp_src/src/eigen/Eigen/src/IterativeLinearSolvers/SolveWithGuess.h +0 -0
  338. {pynec-2.3.2 → pynec-2.3.4}/necpp_src/src/eigen/Eigen/src/Jacobi/InternalHeaderCheck.h +0 -0
  339. {pynec-2.3.2 → pynec-2.3.4}/necpp_src/src/eigen/Eigen/src/Jacobi/Jacobi.h +0 -0
  340. {pynec-2.3.2 → pynec-2.3.4}/necpp_src/src/eigen/Eigen/src/KLUSupport/InternalHeaderCheck.h +0 -0
  341. {pynec-2.3.2 → pynec-2.3.4}/necpp_src/src/eigen/Eigen/src/KLUSupport/KLUSupport.h +0 -0
  342. {pynec-2.3.2 → pynec-2.3.4}/necpp_src/src/eigen/Eigen/src/LU/Determinant.h +0 -0
  343. {pynec-2.3.2 → pynec-2.3.4}/necpp_src/src/eigen/Eigen/src/LU/FullPivLU.h +0 -0
  344. {pynec-2.3.2 → pynec-2.3.4}/necpp_src/src/eigen/Eigen/src/LU/InternalHeaderCheck.h +0 -0
  345. {pynec-2.3.2 → pynec-2.3.4}/necpp_src/src/eigen/Eigen/src/LU/InverseImpl.h +0 -0
  346. {pynec-2.3.2 → pynec-2.3.4}/necpp_src/src/eigen/Eigen/src/LU/PartialPivLU.h +0 -0
  347. {pynec-2.3.2 → pynec-2.3.4}/necpp_src/src/eigen/Eigen/src/LU/PartialPivLU_LAPACKE.h +0 -0
  348. {pynec-2.3.2 → pynec-2.3.4}/necpp_src/src/eigen/Eigen/src/LU/arch/InverseSize4.h +0 -0
  349. {pynec-2.3.2 → pynec-2.3.4}/necpp_src/src/eigen/Eigen/src/MetisSupport/InternalHeaderCheck.h +0 -0
  350. {pynec-2.3.2 → pynec-2.3.4}/necpp_src/src/eigen/Eigen/src/MetisSupport/MetisSupport.h +0 -0
  351. {pynec-2.3.2 → pynec-2.3.4}/necpp_src/src/eigen/Eigen/src/OrderingMethods/Amd.h +0 -0
  352. {pynec-2.3.2 → pynec-2.3.4}/necpp_src/src/eigen/Eigen/src/OrderingMethods/Eigen_Colamd.h +0 -0
  353. {pynec-2.3.2 → pynec-2.3.4}/necpp_src/src/eigen/Eigen/src/OrderingMethods/InternalHeaderCheck.h +0 -0
  354. {pynec-2.3.2 → pynec-2.3.4}/necpp_src/src/eigen/Eigen/src/OrderingMethods/Ordering.h +0 -0
  355. {pynec-2.3.2 → pynec-2.3.4}/necpp_src/src/eigen/Eigen/src/PaStiXSupport/InternalHeaderCheck.h +0 -0
  356. {pynec-2.3.2 → pynec-2.3.4}/necpp_src/src/eigen/Eigen/src/PaStiXSupport/PaStiXSupport.h +0 -0
  357. {pynec-2.3.2 → pynec-2.3.4}/necpp_src/src/eigen/Eigen/src/PardisoSupport/InternalHeaderCheck.h +0 -0
  358. {pynec-2.3.2 → pynec-2.3.4}/necpp_src/src/eigen/Eigen/src/PardisoSupport/PardisoSupport.h +0 -0
  359. {pynec-2.3.2 → pynec-2.3.4}/necpp_src/src/eigen/Eigen/src/QR/ColPivHouseholderQR.h +0 -0
  360. {pynec-2.3.2 → pynec-2.3.4}/necpp_src/src/eigen/Eigen/src/QR/ColPivHouseholderQR_LAPACKE.h +0 -0
  361. {pynec-2.3.2 → pynec-2.3.4}/necpp_src/src/eigen/Eigen/src/QR/CompleteOrthogonalDecomposition.h +0 -0
  362. {pynec-2.3.2 → pynec-2.3.4}/necpp_src/src/eigen/Eigen/src/QR/FullPivHouseholderQR.h +0 -0
  363. {pynec-2.3.2 → pynec-2.3.4}/necpp_src/src/eigen/Eigen/src/QR/HouseholderQR.h +0 -0
  364. {pynec-2.3.2 → pynec-2.3.4}/necpp_src/src/eigen/Eigen/src/QR/HouseholderQR_LAPACKE.h +0 -0
  365. {pynec-2.3.2 → pynec-2.3.4}/necpp_src/src/eigen/Eigen/src/QR/InternalHeaderCheck.h +0 -0
  366. {pynec-2.3.2 → pynec-2.3.4}/necpp_src/src/eigen/Eigen/src/SPQRSupport/InternalHeaderCheck.h +0 -0
  367. {pynec-2.3.2 → pynec-2.3.4}/necpp_src/src/eigen/Eigen/src/SPQRSupport/SuiteSparseQRSupport.h +0 -0
  368. {pynec-2.3.2 → pynec-2.3.4}/necpp_src/src/eigen/Eigen/src/SVD/BDCSVD.h +0 -0
  369. {pynec-2.3.2 → pynec-2.3.4}/necpp_src/src/eigen/Eigen/src/SVD/BDCSVD_LAPACKE.h +0 -0
  370. {pynec-2.3.2 → pynec-2.3.4}/necpp_src/src/eigen/Eigen/src/SVD/InternalHeaderCheck.h +0 -0
  371. {pynec-2.3.2 → pynec-2.3.4}/necpp_src/src/eigen/Eigen/src/SVD/JacobiSVD.h +0 -0
  372. {pynec-2.3.2 → pynec-2.3.4}/necpp_src/src/eigen/Eigen/src/SVD/JacobiSVD_LAPACKE.h +0 -0
  373. {pynec-2.3.2 → pynec-2.3.4}/necpp_src/src/eigen/Eigen/src/SVD/SVDBase.h +0 -0
  374. {pynec-2.3.2 → pynec-2.3.4}/necpp_src/src/eigen/Eigen/src/SVD/UpperBidiagonalization.h +0 -0
  375. {pynec-2.3.2 → pynec-2.3.4}/necpp_src/src/eigen/Eigen/src/SparseCholesky/InternalHeaderCheck.h +0 -0
  376. {pynec-2.3.2 → pynec-2.3.4}/necpp_src/src/eigen/Eigen/src/SparseCholesky/SimplicialCholesky.h +0 -0
  377. {pynec-2.3.2 → pynec-2.3.4}/necpp_src/src/eigen/Eigen/src/SparseCholesky/SimplicialCholesky_impl.h +0 -0
  378. {pynec-2.3.2 → pynec-2.3.4}/necpp_src/src/eigen/Eigen/src/SparseCore/AmbiVector.h +0 -0
  379. {pynec-2.3.2 → pynec-2.3.4}/necpp_src/src/eigen/Eigen/src/SparseCore/CompressedStorage.h +0 -0
  380. {pynec-2.3.2 → pynec-2.3.4}/necpp_src/src/eigen/Eigen/src/SparseCore/ConservativeSparseSparseProduct.h +0 -0
  381. {pynec-2.3.2 → pynec-2.3.4}/necpp_src/src/eigen/Eigen/src/SparseCore/InternalHeaderCheck.h +0 -0
  382. {pynec-2.3.2 → pynec-2.3.4}/necpp_src/src/eigen/Eigen/src/SparseCore/SparseAssign.h +0 -0
  383. {pynec-2.3.2 → pynec-2.3.4}/necpp_src/src/eigen/Eigen/src/SparseCore/SparseBlock.h +0 -0
  384. {pynec-2.3.2 → pynec-2.3.4}/necpp_src/src/eigen/Eigen/src/SparseCore/SparseColEtree.h +0 -0
  385. {pynec-2.3.2 → pynec-2.3.4}/necpp_src/src/eigen/Eigen/src/SparseCore/SparseCompressedBase.h +0 -0
  386. {pynec-2.3.2 → pynec-2.3.4}/necpp_src/src/eigen/Eigen/src/SparseCore/SparseCwiseBinaryOp.h +0 -0
  387. {pynec-2.3.2 → pynec-2.3.4}/necpp_src/src/eigen/Eigen/src/SparseCore/SparseCwiseUnaryOp.h +0 -0
  388. {pynec-2.3.2 → pynec-2.3.4}/necpp_src/src/eigen/Eigen/src/SparseCore/SparseDenseProduct.h +0 -0
  389. {pynec-2.3.2 → pynec-2.3.4}/necpp_src/src/eigen/Eigen/src/SparseCore/SparseDiagonalProduct.h +0 -0
  390. {pynec-2.3.2 → pynec-2.3.4}/necpp_src/src/eigen/Eigen/src/SparseCore/SparseDot.h +0 -0
  391. {pynec-2.3.2 → pynec-2.3.4}/necpp_src/src/eigen/Eigen/src/SparseCore/SparseFuzzy.h +0 -0
  392. {pynec-2.3.2 → pynec-2.3.4}/necpp_src/src/eigen/Eigen/src/SparseCore/SparseMap.h +0 -0
  393. {pynec-2.3.2 → pynec-2.3.4}/necpp_src/src/eigen/Eigen/src/SparseCore/SparseMatrix.h +0 -0
  394. {pynec-2.3.2 → pynec-2.3.4}/necpp_src/src/eigen/Eigen/src/SparseCore/SparseMatrixBase.h +0 -0
  395. {pynec-2.3.2 → pynec-2.3.4}/necpp_src/src/eigen/Eigen/src/SparseCore/SparsePermutation.h +0 -0
  396. {pynec-2.3.2 → pynec-2.3.4}/necpp_src/src/eigen/Eigen/src/SparseCore/SparseProduct.h +0 -0
  397. {pynec-2.3.2 → pynec-2.3.4}/necpp_src/src/eigen/Eigen/src/SparseCore/SparseRedux.h +0 -0
  398. {pynec-2.3.2 → pynec-2.3.4}/necpp_src/src/eigen/Eigen/src/SparseCore/SparseRef.h +0 -0
  399. {pynec-2.3.2 → pynec-2.3.4}/necpp_src/src/eigen/Eigen/src/SparseCore/SparseSelfAdjointView.h +0 -0
  400. {pynec-2.3.2 → pynec-2.3.4}/necpp_src/src/eigen/Eigen/src/SparseCore/SparseSolverBase.h +0 -0
  401. {pynec-2.3.2 → pynec-2.3.4}/necpp_src/src/eigen/Eigen/src/SparseCore/SparseSparseProductWithPruning.h +0 -0
  402. {pynec-2.3.2 → pynec-2.3.4}/necpp_src/src/eigen/Eigen/src/SparseCore/SparseTranspose.h +0 -0
  403. {pynec-2.3.2 → pynec-2.3.4}/necpp_src/src/eigen/Eigen/src/SparseCore/SparseTriangularView.h +0 -0
  404. {pynec-2.3.2 → pynec-2.3.4}/necpp_src/src/eigen/Eigen/src/SparseCore/SparseUtil.h +0 -0
  405. {pynec-2.3.2 → pynec-2.3.4}/necpp_src/src/eigen/Eigen/src/SparseCore/SparseVector.h +0 -0
  406. {pynec-2.3.2 → pynec-2.3.4}/necpp_src/src/eigen/Eigen/src/SparseCore/SparseView.h +0 -0
  407. {pynec-2.3.2 → pynec-2.3.4}/necpp_src/src/eigen/Eigen/src/SparseCore/TriangularSolver.h +0 -0
  408. {pynec-2.3.2 → pynec-2.3.4}/necpp_src/src/eigen/Eigen/src/SparseLU/InternalHeaderCheck.h +0 -0
  409. {pynec-2.3.2 → pynec-2.3.4}/necpp_src/src/eigen/Eigen/src/SparseLU/SparseLU.h +0 -0
  410. {pynec-2.3.2 → pynec-2.3.4}/necpp_src/src/eigen/Eigen/src/SparseLU/SparseLUImpl.h +0 -0
  411. {pynec-2.3.2 → pynec-2.3.4}/necpp_src/src/eigen/Eigen/src/SparseLU/SparseLU_Memory.h +0 -0
  412. {pynec-2.3.2 → pynec-2.3.4}/necpp_src/src/eigen/Eigen/src/SparseLU/SparseLU_Structs.h +0 -0
  413. {pynec-2.3.2 → pynec-2.3.4}/necpp_src/src/eigen/Eigen/src/SparseLU/SparseLU_SupernodalMatrix.h +0 -0
  414. {pynec-2.3.2 → pynec-2.3.4}/necpp_src/src/eigen/Eigen/src/SparseLU/SparseLU_Utils.h +0 -0
  415. {pynec-2.3.2 → pynec-2.3.4}/necpp_src/src/eigen/Eigen/src/SparseLU/SparseLU_column_bmod.h +0 -0
  416. {pynec-2.3.2 → pynec-2.3.4}/necpp_src/src/eigen/Eigen/src/SparseLU/SparseLU_column_dfs.h +0 -0
  417. {pynec-2.3.2 → pynec-2.3.4}/necpp_src/src/eigen/Eigen/src/SparseLU/SparseLU_copy_to_ucol.h +0 -0
  418. {pynec-2.3.2 → pynec-2.3.4}/necpp_src/src/eigen/Eigen/src/SparseLU/SparseLU_heap_relax_snode.h +0 -0
  419. {pynec-2.3.2 → pynec-2.3.4}/necpp_src/src/eigen/Eigen/src/SparseLU/SparseLU_kernel_bmod.h +0 -0
  420. {pynec-2.3.2 → pynec-2.3.4}/necpp_src/src/eigen/Eigen/src/SparseLU/SparseLU_panel_bmod.h +0 -0
  421. {pynec-2.3.2 → pynec-2.3.4}/necpp_src/src/eigen/Eigen/src/SparseLU/SparseLU_panel_dfs.h +0 -0
  422. {pynec-2.3.2 → pynec-2.3.4}/necpp_src/src/eigen/Eigen/src/SparseLU/SparseLU_pivotL.h +0 -0
  423. {pynec-2.3.2 → pynec-2.3.4}/necpp_src/src/eigen/Eigen/src/SparseLU/SparseLU_pruneL.h +0 -0
  424. {pynec-2.3.2 → pynec-2.3.4}/necpp_src/src/eigen/Eigen/src/SparseLU/SparseLU_relax_snode.h +0 -0
  425. {pynec-2.3.2 → pynec-2.3.4}/necpp_src/src/eigen/Eigen/src/SparseQR/InternalHeaderCheck.h +0 -0
  426. {pynec-2.3.2 → pynec-2.3.4}/necpp_src/src/eigen/Eigen/src/SparseQR/SparseQR.h +0 -0
  427. {pynec-2.3.2 → pynec-2.3.4}/necpp_src/src/eigen/Eigen/src/StlSupport/StdDeque.h +0 -0
  428. {pynec-2.3.2 → pynec-2.3.4}/necpp_src/src/eigen/Eigen/src/StlSupport/StdList.h +0 -0
  429. {pynec-2.3.2 → pynec-2.3.4}/necpp_src/src/eigen/Eigen/src/StlSupport/StdVector.h +0 -0
  430. {pynec-2.3.2 → pynec-2.3.4}/necpp_src/src/eigen/Eigen/src/StlSupport/details.h +0 -0
  431. {pynec-2.3.2 → pynec-2.3.4}/necpp_src/src/eigen/Eigen/src/SuperLUSupport/InternalHeaderCheck.h +0 -0
  432. {pynec-2.3.2 → pynec-2.3.4}/necpp_src/src/eigen/Eigen/src/SuperLUSupport/SuperLUSupport.h +0 -0
  433. {pynec-2.3.2 → pynec-2.3.4}/necpp_src/src/eigen/Eigen/src/ThreadPool/Barrier.h +0 -0
  434. {pynec-2.3.2 → pynec-2.3.4}/necpp_src/src/eigen/Eigen/src/ThreadPool/CoreThreadPoolDevice.h +0 -0
  435. {pynec-2.3.2 → pynec-2.3.4}/necpp_src/src/eigen/Eigen/src/ThreadPool/EventCount.h +0 -0
  436. {pynec-2.3.2 → pynec-2.3.4}/necpp_src/src/eigen/Eigen/src/ThreadPool/ForkJoin.h +0 -0
  437. {pynec-2.3.2 → pynec-2.3.4}/necpp_src/src/eigen/Eigen/src/ThreadPool/InternalHeaderCheck.h +0 -0
  438. {pynec-2.3.2 → pynec-2.3.4}/necpp_src/src/eigen/Eigen/src/ThreadPool/NonBlockingThreadPool.h +0 -0
  439. {pynec-2.3.2 → pynec-2.3.4}/necpp_src/src/eigen/Eigen/src/ThreadPool/RunQueue.h +0 -0
  440. {pynec-2.3.2 → pynec-2.3.4}/necpp_src/src/eigen/Eigen/src/ThreadPool/ThreadCancel.h +0 -0
  441. {pynec-2.3.2 → pynec-2.3.4}/necpp_src/src/eigen/Eigen/src/ThreadPool/ThreadEnvironment.h +0 -0
  442. {pynec-2.3.2 → pynec-2.3.4}/necpp_src/src/eigen/Eigen/src/ThreadPool/ThreadLocal.h +0 -0
  443. {pynec-2.3.2 → pynec-2.3.4}/necpp_src/src/eigen/Eigen/src/ThreadPool/ThreadPoolInterface.h +0 -0
  444. {pynec-2.3.2 → pynec-2.3.4}/necpp_src/src/eigen/Eigen/src/ThreadPool/ThreadYield.h +0 -0
  445. {pynec-2.3.2 → pynec-2.3.4}/necpp_src/src/eigen/Eigen/src/UmfPackSupport/InternalHeaderCheck.h +0 -0
  446. {pynec-2.3.2 → pynec-2.3.4}/necpp_src/src/eigen/Eigen/src/UmfPackSupport/UmfPackSupport.h +0 -0
  447. {pynec-2.3.2 → pynec-2.3.4}/necpp_src/src/eigen/Eigen/src/misc/Image.h +0 -0
  448. {pynec-2.3.2 → pynec-2.3.4}/necpp_src/src/eigen/Eigen/src/misc/InternalHeaderCheck.h +0 -0
  449. {pynec-2.3.2 → pynec-2.3.4}/necpp_src/src/eigen/Eigen/src/misc/Kernel.h +0 -0
  450. {pynec-2.3.2 → pynec-2.3.4}/necpp_src/src/eigen/Eigen/src/misc/RealSvd2x2.h +0 -0
  451. {pynec-2.3.2 → pynec-2.3.4}/necpp_src/src/eigen/Eigen/src/misc/blas.h +0 -0
  452. {pynec-2.3.2 → pynec-2.3.4}/necpp_src/src/eigen/Eigen/src/misc/lapacke.h +0 -0
  453. {pynec-2.3.2 → pynec-2.3.4}/necpp_src/src/eigen/Eigen/src/misc/lapacke_helpers.h +0 -0
  454. {pynec-2.3.2 → pynec-2.3.4}/necpp_src/src/eigen/Eigen/src/misc/lapacke_mangling.h +0 -0
  455. {pynec-2.3.2 → pynec-2.3.4}/necpp_src/src/eigen/Eigen/src/plugins/ArrayCwiseBinaryOps.inc +0 -0
  456. {pynec-2.3.2 → pynec-2.3.4}/necpp_src/src/eigen/Eigen/src/plugins/ArrayCwiseUnaryOps.inc +0 -0
  457. {pynec-2.3.2 → pynec-2.3.4}/necpp_src/src/eigen/Eigen/src/plugins/BlockMethods.inc +0 -0
  458. {pynec-2.3.2 → pynec-2.3.4}/necpp_src/src/eigen/Eigen/src/plugins/CommonCwiseBinaryOps.inc +0 -0
  459. {pynec-2.3.2 → pynec-2.3.4}/necpp_src/src/eigen/Eigen/src/plugins/CommonCwiseUnaryOps.inc +0 -0
  460. {pynec-2.3.2 → pynec-2.3.4}/necpp_src/src/eigen/Eigen/src/plugins/IndexedViewMethods.inc +0 -0
  461. {pynec-2.3.2 → pynec-2.3.4}/necpp_src/src/eigen/Eigen/src/plugins/InternalHeaderCheck.inc +0 -0
  462. {pynec-2.3.2 → pynec-2.3.4}/necpp_src/src/eigen/Eigen/src/plugins/MatrixCwiseBinaryOps.inc +0 -0
  463. {pynec-2.3.2 → pynec-2.3.4}/necpp_src/src/eigen/Eigen/src/plugins/MatrixCwiseUnaryOps.inc +0 -0
  464. {pynec-2.3.2 → pynec-2.3.4}/necpp_src/src/eigen/Eigen/src/plugins/ReshapedMethods.inc +0 -0
  465. {pynec-2.3.2 → pynec-2.3.4}/necpp_src/src/eigen/signature_of_eigen3_matrix_library +0 -0
  466. {pynec-2.3.2 → pynec-2.3.4}/necpp_src/src/electromag.cpp +0 -0
  467. {pynec-2.3.2 → pynec-2.3.4}/necpp_src/src/electromag.h +0 -0
  468. {pynec-2.3.2 → pynec-2.3.4}/necpp_src/src/math_util.h +0 -0
  469. {pynec-2.3.2 → pynec-2.3.4}/necpp_src/src/math_util_tb.cpp +0 -0
  470. {pynec-2.3.2 → pynec-2.3.4}/necpp_src/src/matrix_algebra.h +0 -0
  471. {pynec-2.3.2 → pynec-2.3.4}/necpp_src/src/matrix_algebra_tb.cpp +0 -0
  472. {pynec-2.3.2 → pynec-2.3.4}/necpp_src/src/misc.cpp +0 -0
  473. {pynec-2.3.2 → pynec-2.3.4}/necpp_src/src/misc.h +0 -0
  474. {pynec-2.3.2 → pynec-2.3.4}/necpp_src/src/nec2cpp.cpp +0 -0
  475. {pynec-2.3.2 → pynec-2.3.4}/necpp_src/src/nec2cpp.h +0 -0
  476. {pynec-2.3.2 → pynec-2.3.4}/necpp_src/src/nec2cpp_tb.cpp +0 -0
  477. {pynec-2.3.2 → pynec-2.3.4}/necpp_src/src/necDiff.cpp +0 -0
  478. {pynec-2.3.2 → pynec-2.3.4}/necpp_src/src/nec_card_parser.h +0 -0
  479. {pynec-2.3.2 → pynec-2.3.4}/necpp_src/src/nec_context_tb.cpp +0 -0
  480. {pynec-2.3.2 → pynec-2.3.4}/necpp_src/src/nec_debug.h +0 -0
  481. {pynec-2.3.2 → pynec-2.3.4}/necpp_src/src/nec_exception.cpp +0 -0
  482. {pynec-2.3.2 → pynec-2.3.4}/necpp_src/src/nec_exception.h +0 -0
  483. {pynec-2.3.2 → pynec-2.3.4}/necpp_src/src/nec_ground.cpp +0 -0
  484. {pynec-2.3.2 → pynec-2.3.4}/necpp_src/src/nec_ground.h +0 -0
  485. {pynec-2.3.2 → pynec-2.3.4}/necpp_src/src/nec_output.cpp +0 -0
  486. {pynec-2.3.2 → pynec-2.3.4}/necpp_src/src/nec_output.h +0 -0
  487. {pynec-2.3.2 → pynec-2.3.4}/necpp_src/src/nec_radiation_pattern.cpp +0 -0
  488. {pynec-2.3.2 → pynec-2.3.4}/necpp_src/src/nec_radiation_pattern.h +0 -0
  489. {pynec-2.3.2 → pynec-2.3.4}/necpp_src/src/nec_results.cpp +0 -0
  490. {pynec-2.3.2 → pynec-2.3.4}/necpp_src/src/nec_results.h +0 -0
  491. {pynec-2.3.2 → pynec-2.3.4}/necpp_src/src/nec_structure_currents.cpp +0 -0
  492. {pynec-2.3.2 → pynec-2.3.4}/necpp_src/src/nec_structure_currents.h +0 -0
  493. {pynec-2.3.2 → pynec-2.3.4}/necpp_src/src/nec_wasm.cpp +0 -0
  494. {pynec-2.3.2 → pynec-2.3.4}/necpp_src/src/nec_wire.h +0 -0
  495. {pynec-2.3.2 → pynec-2.3.4}/necpp_src/src/net_solve.cpp +0 -0
  496. {pynec-2.3.2 → pynec-2.3.4}/necpp_src/src/safe_array.h +0 -0
  497. {pynec-2.3.2 → pynec-2.3.4}/necpp_src/src/safe_array_tb.cpp +0 -0
  498. {pynec-2.3.2 → pynec-2.3.4}/necpp_src/src/typesafe_stdint.h +0 -0
  499. {pynec-2.3.2 → pynec-2.3.4}/setup.cfg +0 -0
  500. {pynec-2.3.2 → pynec-2.3.4}/tests/test_charge_densities.py +0 -0
  501. {pynec-2.3.2 → pynec-2.3.4}/tests/test_examples.py +0 -0
  502. {pynec-2.3.2 → pynec-2.3.4}/tests/test_get_gain.py +0 -0
  503. {pynec-2.3.2 → pynec-2.3.4}/tests/test_input_parameters.py +0 -0
  504. {pynec-2.3.2 → pynec-2.3.4}/tests/test_near_field.py +0 -0
  505. {pynec-2.3.2 → pynec-2.3.4}/tests/test_norm_rx_pattern.py +0 -0
  506. {pynec-2.3.2 → pynec-2.3.4}/tests/test_patches.py +0 -0
  507. {pynec-2.3.2 → pynec-2.3.4}/tests/test_radiation_pattern.py +0 -0
  508. {pynec-2.3.2 → pynec-2.3.4}/tests/test_structure_currents.py +0 -0
  509. {pynec-2.3.2 → pynec-2.3.4}/tests/test_structure_excitation.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: PyNEC
3
- Version: 2.3.2
3
+ Version: 2.3.4
4
4
  Summary: Python Antenna Simulation Module (nec2++) object-oriented interface
5
5
  Author-email: Tim Molteno <tim@physics.otago.ac.nz>
6
6
  License-Expression: GPL-3.0-only
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: PyNEC
3
- Version: 2.3.2
3
+ Version: 2.3.4
4
4
  Summary: Python Antenna Simulation Module (nec2++) object-oriented interface
5
5
  Author-email: Tim Molteno <tim@physics.otago.ac.nz>
6
6
  License-Expression: GPL-3.0-only
@@ -108,11 +108,11 @@ class nec_context(object):
108
108
  def get_gain_lhcp_sd(self, freq_index):
109
109
  return _PyNEC.nec_context_get_gain_lhcp_sd(self, freq_index)
110
110
 
111
- def get_impedance_real(self, freq_index):
112
- return _PyNEC.nec_context_get_impedance_real(self, freq_index)
111
+ def get_impedance_real(self, freq_index, feed_index=0):
112
+ return _PyNEC.nec_context_get_impedance_real(self, freq_index, feed_index)
113
113
 
114
- def get_impedance_imag(self, freq_index):
115
- return _PyNEC.nec_context_get_impedance_imag(self, freq_index)
114
+ def get_impedance_imag(self, freq_index, feed_index=0):
115
+ return _PyNEC.nec_context_get_impedance_imag(self, freq_index, feed_index)
116
116
 
117
117
  def get_input_parameters(self, index):
118
118
  return _PyNEC.nec_context_get_input_parameters(self, index)
@@ -4339,19 +4339,69 @@ fail:
4339
4339
  }
4340
4340
 
4341
4341
 
4342
- SWIGINTERN PyObject *_wrap_nec_context_get_impedance_real(PyObject *self, PyObject *args) {
4342
+ SWIGINTERN PyObject *_wrap_nec_context_get_impedance_real__SWIG_0(PyObject *self, Py_ssize_t nobjs, PyObject **swig_obj) {
4343
4343
  PyObject *resultobj = 0;
4344
4344
  nec_context *arg1 = (nec_context *) 0 ;
4345
4345
  int arg2 ;
4346
+ int arg3 ;
4346
4347
  void *argp1 = 0 ;
4347
4348
  int res1 = 0 ;
4348
4349
  int val2 ;
4349
4350
  int ecode2 = 0 ;
4350
- PyObject *swig_obj[2] ;
4351
+ int val3 ;
4352
+ int ecode3 = 0 ;
4351
4353
  double result;
4352
4354
 
4353
4355
  (void)self;
4354
- if (!SWIG_Python_UnpackTuple(args, "nec_context_get_impedance_real", 2, 2, swig_obj)) SWIG_fail;
4356
+ if ((nobjs < 3) || (nobjs > 3)) SWIG_fail;
4357
+ res1 = SWIG_ConvertPtr(swig_obj[0], &argp1,SWIGTYPE_p_nec_context, 0 | 0 );
4358
+ if (!SWIG_IsOK(res1)) {
4359
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "nec_context_get_impedance_real" "', argument " "1"" of type '" "nec_context *""'");
4360
+ }
4361
+ arg1 = reinterpret_cast< nec_context * >(argp1);
4362
+ ecode2 = SWIG_AsVal_int(swig_obj[1], &val2);
4363
+ if (!SWIG_IsOK(ecode2)) {
4364
+ SWIG_exception_fail(SWIG_ArgError(ecode2), "in method '" "nec_context_get_impedance_real" "', argument " "2"" of type '" "int""'");
4365
+ }
4366
+ arg2 = static_cast< int >(val2);
4367
+ ecode3 = SWIG_AsVal_int(swig_obj[2], &val3);
4368
+ if (!SWIG_IsOK(ecode3)) {
4369
+ SWIG_exception_fail(SWIG_ArgError(ecode3), "in method '" "nec_context_get_impedance_real" "', argument " "3"" of type '" "int""'");
4370
+ }
4371
+ arg3 = static_cast< int >(val3);
4372
+ {
4373
+ try {
4374
+ result = (double)(arg1)->get_impedance_real(arg2,arg3);
4375
+ }
4376
+ catch (nec_exception* nex) {
4377
+ SWIG_exception(SWIG_RuntimeError,nex->get_message().c_str());
4378
+ }
4379
+ catch (const char* message) {
4380
+ SWIG_exception(SWIG_RuntimeError,message);
4381
+ }
4382
+ catch (...) {
4383
+ SWIG_exception(SWIG_RuntimeError,"Unknown exception");
4384
+ }
4385
+ }
4386
+ resultobj = SWIG_From_double(static_cast< double >(result));
4387
+ return resultobj;
4388
+ fail:
4389
+ return NULL;
4390
+ }
4391
+
4392
+
4393
+ SWIGINTERN PyObject *_wrap_nec_context_get_impedance_real__SWIG_1(PyObject *self, Py_ssize_t nobjs, PyObject **swig_obj) {
4394
+ PyObject *resultobj = 0;
4395
+ nec_context *arg1 = (nec_context *) 0 ;
4396
+ int arg2 ;
4397
+ void *argp1 = 0 ;
4398
+ int res1 = 0 ;
4399
+ int val2 ;
4400
+ int ecode2 = 0 ;
4401
+ double result;
4402
+
4403
+ (void)self;
4404
+ if ((nobjs < 2) || (nobjs > 2)) SWIG_fail;
4355
4405
  res1 = SWIG_ConvertPtr(swig_obj[0], &argp1,SWIGTYPE_p_nec_context, 0 | 0 );
4356
4406
  if (!SWIG_IsOK(res1)) {
4357
4407
  SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "nec_context_get_impedance_real" "', argument " "1"" of type '" "nec_context *""'");
@@ -4383,19 +4433,123 @@ fail:
4383
4433
  }
4384
4434
 
4385
4435
 
4386
- SWIGINTERN PyObject *_wrap_nec_context_get_impedance_imag(PyObject *self, PyObject *args) {
4436
+ SWIGINTERN PyObject *_wrap_nec_context_get_impedance_real(PyObject *self, PyObject *args) {
4437
+ Py_ssize_t argc;
4438
+ PyObject *argv[4] = {
4439
+ 0
4440
+ };
4441
+
4442
+ if (!(argc = SWIG_Python_UnpackTuple(args, "nec_context_get_impedance_real", 0, 3, argv))) SWIG_fail;
4443
+ --argc;
4444
+ if (argc == 2) {
4445
+ int _v = 0;
4446
+ void *vptr = 0;
4447
+ int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_nec_context, 0);
4448
+ _v = SWIG_CheckState(res);
4449
+ if (_v) {
4450
+ {
4451
+ int res = SWIG_AsVal_int(argv[1], NULL);
4452
+ _v = SWIG_CheckState(res);
4453
+ }
4454
+ if (_v) {
4455
+ return _wrap_nec_context_get_impedance_real__SWIG_1(self, argc, argv);
4456
+ }
4457
+ }
4458
+ }
4459
+ if (argc == 3) {
4460
+ int _v = 0;
4461
+ void *vptr = 0;
4462
+ int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_nec_context, 0);
4463
+ _v = SWIG_CheckState(res);
4464
+ if (_v) {
4465
+ {
4466
+ int res = SWIG_AsVal_int(argv[1], NULL);
4467
+ _v = SWIG_CheckState(res);
4468
+ }
4469
+ if (_v) {
4470
+ {
4471
+ int res = SWIG_AsVal_int(argv[2], NULL);
4472
+ _v = SWIG_CheckState(res);
4473
+ }
4474
+ if (_v) {
4475
+ return _wrap_nec_context_get_impedance_real__SWIG_0(self, argc, argv);
4476
+ }
4477
+ }
4478
+ }
4479
+ }
4480
+
4481
+ fail:
4482
+ SWIG_Python_RaiseOrModifyTypeError("Wrong number or type of arguments for overloaded function 'nec_context_get_impedance_real'.\n"
4483
+ " Possible C/C++ prototypes are:\n"
4484
+ " nec_context::get_impedance_real(int,int)\n"
4485
+ " nec_context::get_impedance_real(int)\n");
4486
+ return 0;
4487
+ }
4488
+
4489
+
4490
+ SWIGINTERN PyObject *_wrap_nec_context_get_impedance_imag__SWIG_0(PyObject *self, Py_ssize_t nobjs, PyObject **swig_obj) {
4387
4491
  PyObject *resultobj = 0;
4388
4492
  nec_context *arg1 = (nec_context *) 0 ;
4389
4493
  int arg2 ;
4494
+ int arg3 ;
4390
4495
  void *argp1 = 0 ;
4391
4496
  int res1 = 0 ;
4392
4497
  int val2 ;
4393
4498
  int ecode2 = 0 ;
4394
- PyObject *swig_obj[2] ;
4499
+ int val3 ;
4500
+ int ecode3 = 0 ;
4395
4501
  double result;
4396
4502
 
4397
4503
  (void)self;
4398
- if (!SWIG_Python_UnpackTuple(args, "nec_context_get_impedance_imag", 2, 2, swig_obj)) SWIG_fail;
4504
+ if ((nobjs < 3) || (nobjs > 3)) SWIG_fail;
4505
+ res1 = SWIG_ConvertPtr(swig_obj[0], &argp1,SWIGTYPE_p_nec_context, 0 | 0 );
4506
+ if (!SWIG_IsOK(res1)) {
4507
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "nec_context_get_impedance_imag" "', argument " "1"" of type '" "nec_context *""'");
4508
+ }
4509
+ arg1 = reinterpret_cast< nec_context * >(argp1);
4510
+ ecode2 = SWIG_AsVal_int(swig_obj[1], &val2);
4511
+ if (!SWIG_IsOK(ecode2)) {
4512
+ SWIG_exception_fail(SWIG_ArgError(ecode2), "in method '" "nec_context_get_impedance_imag" "', argument " "2"" of type '" "int""'");
4513
+ }
4514
+ arg2 = static_cast< int >(val2);
4515
+ ecode3 = SWIG_AsVal_int(swig_obj[2], &val3);
4516
+ if (!SWIG_IsOK(ecode3)) {
4517
+ SWIG_exception_fail(SWIG_ArgError(ecode3), "in method '" "nec_context_get_impedance_imag" "', argument " "3"" of type '" "int""'");
4518
+ }
4519
+ arg3 = static_cast< int >(val3);
4520
+ {
4521
+ try {
4522
+ result = (double)(arg1)->get_impedance_imag(arg2,arg3);
4523
+ }
4524
+ catch (nec_exception* nex) {
4525
+ SWIG_exception(SWIG_RuntimeError,nex->get_message().c_str());
4526
+ }
4527
+ catch (const char* message) {
4528
+ SWIG_exception(SWIG_RuntimeError,message);
4529
+ }
4530
+ catch (...) {
4531
+ SWIG_exception(SWIG_RuntimeError,"Unknown exception");
4532
+ }
4533
+ }
4534
+ resultobj = SWIG_From_double(static_cast< double >(result));
4535
+ return resultobj;
4536
+ fail:
4537
+ return NULL;
4538
+ }
4539
+
4540
+
4541
+ SWIGINTERN PyObject *_wrap_nec_context_get_impedance_imag__SWIG_1(PyObject *self, Py_ssize_t nobjs, PyObject **swig_obj) {
4542
+ PyObject *resultobj = 0;
4543
+ nec_context *arg1 = (nec_context *) 0 ;
4544
+ int arg2 ;
4545
+ void *argp1 = 0 ;
4546
+ int res1 = 0 ;
4547
+ int val2 ;
4548
+ int ecode2 = 0 ;
4549
+ double result;
4550
+
4551
+ (void)self;
4552
+ if ((nobjs < 2) || (nobjs > 2)) SWIG_fail;
4399
4553
  res1 = SWIG_ConvertPtr(swig_obj[0], &argp1,SWIGTYPE_p_nec_context, 0 | 0 );
4400
4554
  if (!SWIG_IsOK(res1)) {
4401
4555
  SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "nec_context_get_impedance_imag" "', argument " "1"" of type '" "nec_context *""'");
@@ -4427,6 +4581,60 @@ fail:
4427
4581
  }
4428
4582
 
4429
4583
 
4584
+ SWIGINTERN PyObject *_wrap_nec_context_get_impedance_imag(PyObject *self, PyObject *args) {
4585
+ Py_ssize_t argc;
4586
+ PyObject *argv[4] = {
4587
+ 0
4588
+ };
4589
+
4590
+ if (!(argc = SWIG_Python_UnpackTuple(args, "nec_context_get_impedance_imag", 0, 3, argv))) SWIG_fail;
4591
+ --argc;
4592
+ if (argc == 2) {
4593
+ int _v = 0;
4594
+ void *vptr = 0;
4595
+ int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_nec_context, 0);
4596
+ _v = SWIG_CheckState(res);
4597
+ if (_v) {
4598
+ {
4599
+ int res = SWIG_AsVal_int(argv[1], NULL);
4600
+ _v = SWIG_CheckState(res);
4601
+ }
4602
+ if (_v) {
4603
+ return _wrap_nec_context_get_impedance_imag__SWIG_1(self, argc, argv);
4604
+ }
4605
+ }
4606
+ }
4607
+ if (argc == 3) {
4608
+ int _v = 0;
4609
+ void *vptr = 0;
4610
+ int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_nec_context, 0);
4611
+ _v = SWIG_CheckState(res);
4612
+ if (_v) {
4613
+ {
4614
+ int res = SWIG_AsVal_int(argv[1], NULL);
4615
+ _v = SWIG_CheckState(res);
4616
+ }
4617
+ if (_v) {
4618
+ {
4619
+ int res = SWIG_AsVal_int(argv[2], NULL);
4620
+ _v = SWIG_CheckState(res);
4621
+ }
4622
+ if (_v) {
4623
+ return _wrap_nec_context_get_impedance_imag__SWIG_0(self, argc, argv);
4624
+ }
4625
+ }
4626
+ }
4627
+ }
4628
+
4629
+ fail:
4630
+ SWIG_Python_RaiseOrModifyTypeError("Wrong number or type of arguments for overloaded function 'nec_context_get_impedance_imag'.\n"
4631
+ " Possible C/C++ prototypes are:\n"
4632
+ " nec_context::get_impedance_imag(int,int)\n"
4633
+ " nec_context::get_impedance_imag(int)\n");
4634
+ return 0;
4635
+ }
4636
+
4637
+
4430
4638
  SWIGINTERN PyObject *_wrap_nec_context_get_input_parameters(PyObject *self, PyObject *args) {
4431
4639
  PyObject *resultobj = 0;
4432
4640
  nec_context *arg1 = (nec_context *) 0 ;
@@ -1152,29 +1152,28 @@ void c_geometry::reflect_plane( int sym_plane, int& tag_increment )
1152
1152
 
1153
1153
  /* --- planar symmetry --- */
1154
1154
  /* sym_plane bits: 0 = negate X, 1 = negate Y, 2 = negate Z */
1155
- int mask = sym_plane;
1156
- bool neg_x = mask & 1;
1157
- bool neg_y = mask & 2;
1158
- bool neg_z = mask & 4;
1159
- int num_axes = (neg_x?1:0) + (neg_y?1:0) + (neg_z?1:0);
1160
- int num_copies = 1 << num_axes; /* 2 for single axis, 4 for two axes */
1161
-
1162
1155
  int64_t orig_n = n_segments;
1163
1156
  int64_t orig_m = m;
1164
1157
  int itx = tag_increment;
1165
1158
 
1166
- /* Axis priority: Z (bit 2) > Y (bit 1) > X (bit 0).
1167
- For two-axis combos, copy order is: original, axis1-neg, axis2-neg, both-neg.
1168
- Tag increments: +0, +itx, +2*itx, +3*itx. */
1169
- int axis1_mask = 0, axis2_mask = 0;
1170
- if ( neg_z ) { axis1_mask = 4; axis2_mask = neg_y ? 2 : (neg_x ? 1 : 0); }
1171
- else if ( neg_y ) { axis1_mask = 2; axis2_mask = neg_x ? 1 : 0; }
1172
- else if ( neg_x ) { axis1_mask = 1; }
1159
+ /* Build copy masks in the Z, Y, X order used by sequential NEC-2
1160
+ reflection passes. Each pass appends a reflected copy of every existing
1161
+ combination. */
1162
+ int copy_mask[8] = { 0 };
1163
+ int num_copies = 1;
1164
+
1165
+ for ( int axis_mask = 4; axis_mask > 0; axis_mask >>= 1 )
1166
+ {
1167
+ if ( 0 == (sym_plane & axis_mask) )
1168
+ continue;
1173
1169
 
1174
- int tag_inc[4] = { 0, itx, 2*itx, 3*itx };
1170
+ for ( int copy = 0; copy < num_copies; copy++ )
1171
+ copy_mask[num_copies + copy] = copy_mask[copy] | axis_mask;
1172
+
1173
+ num_copies *= 2;
1174
+ }
1175
1175
 
1176
- /* Final tag_increment: X never doubles, Z and Y always double */
1177
- tag_increment = itx << ( (neg_z ? 1 : 0) + (neg_y ? 1 : 0) );
1176
+ tag_increment = itx * num_copies;
1178
1177
 
1179
1178
  /* --- SEGMENTS --- */
1180
1179
  if ( orig_n > 0 )
@@ -1196,23 +1195,9 @@ void c_geometry::reflect_plane( int sym_plane, int& tag_increment )
1196
1195
  for( int copy = 1; copy < num_copies; copy++ )
1197
1196
  {
1198
1197
  /* Determine which axes to negate for this copy */
1199
- bool flip_x = false, flip_y = false, flip_z = false;
1200
- if ( copy == 1 )
1201
- {
1202
- if ( axis1_mask == 4 ) flip_z = true;
1203
- else if ( axis1_mask == 2 ) flip_y = true;
1204
- else if ( axis1_mask == 1 ) flip_x = true;
1205
- }
1206
- else if ( copy == 2 )
1207
- {
1208
- if ( axis2_mask == 4 ) flip_z = true;
1209
- else if ( axis2_mask == 2 ) flip_y = true;
1210
- else if ( axis2_mask == 1 ) flip_x = true;
1211
- }
1212
- else if ( copy == 3 )
1213
- {
1214
- flip_x = neg_x; flip_y = neg_y; flip_z = neg_z;
1215
- }
1198
+ bool flip_x = (0 != (copy_mask[copy] & 1));
1199
+ bool flip_y = (0 != (copy_mask[copy] & 2));
1200
+ bool flip_z = (0 != (copy_mask[copy] & 4));
1216
1201
 
1217
1202
  int64_t base = copy * orig_n;
1218
1203
 
@@ -1269,7 +1254,7 @@ void c_geometry::reflect_plane( int sym_plane, int& tag_increment )
1269
1254
  if ( itagi == 0 )
1270
1255
  segment_tags[nx] = 0;
1271
1256
  if ( itagi != 0 )
1272
- segment_tags[nx] = itagi + tag_inc[copy];
1257
+ segment_tags[nx] = itagi + copy * itx;
1273
1258
 
1274
1259
  segment_radius[nx] = segment_radius[i];
1275
1260
  }
@@ -1298,23 +1283,9 @@ void c_geometry::reflect_plane( int sym_plane, int& tag_increment )
1298
1283
 
1299
1284
  for( int copy = 1; copy < num_copies; copy++ )
1300
1285
  {
1301
- bool flip_x = false, flip_y = false, flip_z = false;
1302
- if ( copy == 1 )
1303
- {
1304
- if ( axis1_mask == 4 ) flip_z = true;
1305
- else if ( axis1_mask == 2 ) flip_y = true;
1306
- else if ( axis1_mask == 1 ) flip_x = true;
1307
- }
1308
- else if ( copy == 2 )
1309
- {
1310
- if ( axis2_mask == 4 ) flip_z = true;
1311
- else if ( axis2_mask == 2 ) flip_y = true;
1312
- else if ( axis2_mask == 1 ) flip_x = true;
1313
- }
1314
- else if ( copy == 3 )
1315
- {
1316
- flip_x = neg_x; flip_y = neg_y; flip_z = neg_z;
1317
- }
1286
+ bool flip_x = (0 != (copy_mask[copy] & 1));
1287
+ bool flip_y = (0 != (copy_mask[copy] & 2));
1288
+ bool flip_z = (0 != (copy_mask[copy] & 4));
1318
1289
 
1319
1290
  int neg_count = (flip_x?1:0) + (flip_y?1:0) + (flip_z?1:0);
1320
1291
  bool neg_psalp = (neg_count % 2 == 1);
@@ -212,3 +212,64 @@ TEST_CASE( "NE card with multiple near-field points", "[near_field]") {
212
212
 
213
213
  nec_delete(nec);
214
214
  }
215
+
216
+ TEST_CASE( "GX one-plane symmetry produces finite impedance", "[symmetry]") {
217
+ // PR #124: GX cards produced INF impedance due to uninitialized scratch
218
+ // slot in solves(), inverted fblock() guard, and incomplete reflection.
219
+ // One wire, GX 2 100 -> reflect in X, tag increment 2, NOP=2.
220
+ nec_context* nec = nec_create();
221
+
222
+ HANDLE_NEC(nec_wire(nec, 1, 11, -0.75, 0.0, -0.245, -0.75, 0.0, 0.245, 0.001, 1.0, 1.0));
223
+ HANDLE_NEC(nec_wire(nec, 2, 11, -0.25, 0.0, -0.245, -0.25, 0.0, 0.245, 0.001, 1.0, 1.0));
224
+ // GX: tag_inc=2, planes=100 -> X only (ix=1, iy=0, iz=0 -> nop=2)
225
+ HANDLE_NEC(nec_gx_card(nec, 2, 100));
226
+ HANDLE_NEC(nec_geometry_complete(nec, 0));
227
+ HANDLE_NEC(nec_fr_card(nec, 0, 1, 299.7925, 0.0));
228
+ // Feed all 4 tags (original + GX reflections) in natural order
229
+ HANDLE_NEC(nec_ex_card(nec, 0, 1, 6, 0, 1.0, 0.0, 0, 0, 0, 0));
230
+ HANDLE_NEC(nec_ex_card(nec, 0, 2, 6, 0, 1.0, 0.0, 0, 0, 0, 0));
231
+ HANDLE_NEC(nec_ex_card(nec, 0, 3, 6, 0, 1.0, 0.0, 0, 0, 0, 0));
232
+ HANDLE_NEC(nec_ex_card(nec, 0, 4, 6, 0, 1.0, 0.0, 0, 0, 0, 0));
233
+ HANDLE_NEC(nec_rp_card(nec, 0, 1, 361, 0, 0, 0, 0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0));
234
+
235
+ // Feed 0 (tag 1): 65.7 - j0.75 ohms
236
+ double zr = nec->get_impedance_real(0, 0);
237
+ double zi = nec->get_impedance_imag(0, 0);
238
+ REQUIRE( zr == Catch::Approx(65.7).margin(0.5) );
239
+ REQUIRE( zi == Catch::Approx(-0.75).margin(1.0) );
240
+
241
+ // Feed 1 (tag 2): 52.8 - j9.7 ohms
242
+ double zr1 = nec->get_impedance_real(0, 1);
243
+ double zi1 = nec->get_impedance_imag(0, 1);
244
+ REQUIRE( zr1 == Catch::Approx(52.8).margin(0.5) );
245
+ REQUIRE( zi1 == Catch::Approx(-9.7).margin(1.0) );
246
+
247
+ // Out-of-range feed index returns sentinel
248
+ double zr_bad = nec->get_impedance_real(0, 99);
249
+ REQUIRE( zr_bad == -999.0 );
250
+
251
+ nec_delete(nec);
252
+ }
253
+
254
+ TEST_CASE( "GX three-plane symmetry produces correct impedance", "[symmetry]") {
255
+ // PR #124: three-plane symmetry (nop=8) was broken — fblock() had wrong
256
+ // pass count, reflect_plane() missed copies 4-7. GX 1 111 -> all planes.
257
+ nec_context* nec = nec_create();
258
+
259
+ HANDLE_NEC(nec_wire(nec, 1, 9, 0.1, 0.1, 0.1, 0.1, 0.1, 0.35, 0.001, 1.0, 1.0));
260
+ // GX: tag_inc=1, planes=111 -> X,Y,Z (nop=8)
261
+ HANDLE_NEC(nec_gx_card(nec, 1, 111));
262
+ HANDLE_NEC(nec_geometry_complete(nec, 0));
263
+ HANDLE_NEC(nec_fr_card(nec, 0, 1, 299.8, 0.0));
264
+ HANDLE_NEC(nec_ex_card(nec, 0, 1, 5, 0, 1.0, 0.0, 0, 0, 0, 0));
265
+ HANDLE_NEC(nec_rp_card(nec, 0, 1, 361, 0, 0, 0, 0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0));
266
+
267
+ double zr = nec_impedance_real(nec, 0);
268
+ double zi = nec_impedance_imag(nec, 0);
269
+
270
+ // Tag 1 (only EX card): 13.7 - j470 ohms
271
+ REQUIRE( zr == Catch::Approx(13.7).margin(1.0) );
272
+ REQUIRE( zi == Catch::Approx(-470.5).margin(1.0) );
273
+
274
+ nec_delete(nec);
275
+ }
@@ -151,6 +151,13 @@ double nec_impedance_imag(nec_context* in_context, int freq_index) {
151
151
  return in_context->get_impedance_imag(freq_index);
152
152
  }
153
153
 
154
+ double nec_impedance_real_indexed(nec_context* in_context, int freq_index, int feed_index) {
155
+ return in_context->get_impedance_real(freq_index, feed_index);
156
+ }
157
+ double nec_impedance_imag_indexed(nec_context* in_context, int freq_index, int feed_index) {
158
+ return in_context->get_impedance_imag(freq_index, feed_index);
159
+ }
160
+
154
161
  long nec_medium_parameters(nec_context* in_context, double permittivity, double permeability) {
155
162
  NEC_ERROR_HANDLE(in_context->medium_parameters(permittivity, permeability));
156
163
  }
@@ -596,6 +596,15 @@ double nec_impedance_real(nec_context* in_context, int freq_index);
596
596
  */
597
597
  double nec_impedance_imag(nec_context* in_context, int freq_index);
598
598
 
599
+ /*! \brief Impedance: Real Part for a specific feed.
600
+ \param feed_index Zero-based feed index within the frequency.
601
+ \return Real impedance in ohms, or -999.0 if no result exists. */
602
+ double nec_impedance_real_indexed(nec_context* in_context, int freq_index, int feed_index);
603
+
604
+ /*! \brief Impedance: Imaginary Part for a specific feed.
605
+ \param feed_index Zero-based feed index within the frequency. */
606
+ double nec_impedance_imag_indexed(nec_context* in_context, int freq_index, int feed_index);
607
+
599
608
  ///@}
600
609
 
601
610
  #ifdef __cplusplus
@@ -398,7 +398,11 @@ void solves(complex_array& a, int_array& ip, complex_array& b, int64_t neq,
398
398
 
399
399
  /* transform matrix eq. rhs vector according to symmetry modes */
400
400
  for (int64_t i = 0; i < npeq; i++ ) {
401
- nec_complex sum_normal(b[i+column_offset]);
401
+ /* Each image row below is seeded from this row's untransformed
402
+ value, so hold it in scm[0] before the normalized sum
403
+ overwrites b[i]. */
404
+ scm[0] = b[i+column_offset];
405
+ nec_complex sum_normal(scm[0]);
402
406
  for (int64_t k = 1; k < nop; k++ ) {
403
407
  int64_t ia= i+ k* npeq;
404
408
  scm[k]= b[ia+column_offset];
@@ -441,7 +445,11 @@ void solves(complex_array& a, int_array& ip, complex_array& b, int64_t neq,
441
445
  for (int64_t ic = 0; ic < nrh; ic++ ) {
442
446
  int64_t column_offset = ic*neq;
443
447
  for (int64_t i = 0; i < npeq; i++ ) {
444
- nec_complex sum_normal(b[i+column_offset]);
448
+ /* Each image row below is seeded from this row's untransformed
449
+ value, so hold it in scm[0] before the summed value overwrites
450
+ b[i]. */
451
+ scm[0] = b[i+column_offset];
452
+ nec_complex sum_normal(scm[0]);
445
453
  for (int64_t k = 1; k < nop; k++ ) {
446
454
  int64_t ia= i+ k* npeq;
447
455
  scm[k]= b[ia+column_offset];
@@ -6439,14 +6439,17 @@ void nec_context::fblock( int nrow, int ncol, int64_t imax, int ipsym ) {
6439
6439
  int kk=1;
6440
6440
  symmetry_array[0]=cplx_10();
6441
6441
 
6442
- if ((2 == nop) || (4 == nop) || (8 == nop))
6443
- return;
6444
- int ka = nop / 2;
6445
-
6446
- // int k_power = 2;
6447
- // for( ka = 1; k_power != nop; ka++ )
6448
- // k_power *= 2;
6449
-
6442
+ /* Plane symmetry admits two, four, or eight sections; the doubling below
6443
+ cannot span the matrix for any other count. */
6444
+ if ((2 != nop) && (4 != nop) && (8 != nop))
6445
+ nec_stop("SYMMETRY ERROR - NOP: %d", nop );
6446
+
6447
+ /* Each pass doubles the width of the filled block, so the pass count is
6448
+ log2(nop). */
6449
+ int ka = 1;
6450
+ for (int k_power = 2; k_power != nop; k_power *= 2)
6451
+ ka++;
6452
+
6450
6453
  for(int k = 0; k < ka; k++ ) {
6451
6454
  for(int i = 0; i < kk; i++ ) {
6452
6455
  for(int j = 0; j < kk; j++ ) {
@@ -208,21 +208,58 @@ public:
208
208
  }
209
209
 
210
210
  /****************** IMPEDANCE CHARACTERISTICS *********************/
211
-
212
- /*! \brief Impedance: Real Part */
213
- double get_impedance_real(int freq_index = 0) {
211
+
212
+ /*! \name Antenna Input Impedance
213
+ *
214
+ * Each call to nec_ex_card() or nec_fr_card() with a new frequency
215
+ * creates a feed. Multiple feeds at the same frequency (e.g. phased
216
+ * arrays) are stored as separate entries within a single
217
+ * nec_antenna_input result; the \p feed_index selects among them.
218
+ *
219
+ * | Scenario | freq_index | feed_index |
220
+ * |-----------------------------|-----------|------------|
221
+ * | Single dipole | 0 | 0 |
222
+ * | Two feeds, same frequency | 0 | 0 or 1 |
223
+ * | Swept frequency, single feed| 0, 1, … | 0 |
224
+ *
225
+ * If no result exists (no simulation run, missing feed, or
226
+ * out-of-range index) the sentinel value \c -999.0 is returned.
227
+ *
228
+ * Prior to v2.3.4 these methods returned imp.back() — the *last*
229
+ * feed's impedance — which depended on EX card ordering and was
230
+ * incorrect for multi-feed setups. They now return imp[feed_index]
231
+ * with \p feed_index defaulting to 0 (the first feed).
232
+ *
233
+ * @{
234
+ */
235
+
236
+ /*! \brief Real part of the feed-point impedance.
237
+ \param freq_index Zero-based simulation index (0 = first frequency).
238
+ \param feed_index Zero-based feed index within that frequency
239
+ (0 = first EX card at that frequency).
240
+ \return Resistance in ohms, or \c -999.0 if no result exists.
241
+ \see get_impedance_imag() */
242
+ double get_impedance_real(int freq_index = 0, int feed_index = 0) {
214
243
  nec_antenna_input* ipt = get_input_parameters(freq_index);
215
244
  if (NULL == ipt) return -999.0;
216
245
  vector<nec_complex>& imp(ipt->get_impedance());
217
- return imp.back().real();
246
+ if (feed_index < 0 || (size_t)feed_index >= imp.size()) return -999.0;
247
+ return imp[feed_index].real();
218
248
  }
219
- /*! \brief Impedance: Imaginary Part */
220
- double get_impedance_imag(int freq_index = 0) {
249
+ /*! \brief Imaginary part of the feed-point impedance.
250
+ \param freq_index Zero-based simulation index (0 = first frequency).
251
+ \param feed_index Zero-based feed index within that frequency.
252
+ \return Reactance in ohms, or \c -999.0 if no result exists.
253
+ \see get_impedance_real() */
254
+ double get_impedance_imag(int freq_index = 0, int feed_index = 0) {
221
255
  nec_antenna_input* ipt = get_input_parameters(freq_index);
222
256
  if (NULL == ipt) return -999.0;
223
257
  vector<nec_complex>& imp(ipt->get_impedance());
224
- return imp.back().imag();
258
+ if (feed_index < 0 || (size_t)feed_index >= imp.size()) return -999.0;
259
+ return imp[feed_index].imag();
225
260
  }
261
+
262
+ /*! @} */
226
263
 
227
264
  /*! \brief Get Antenna Input Parameter Results
228
265
  \param index The zero-based index for the result (simulations can return more than one set of results).
@@ -5,7 +5,7 @@ build-backend = "setuptools.build_meta"
5
5
 
6
6
  [project]
7
7
  name = "PyNEC"
8
- version = "2.3.2"
8
+ version = "2.3.4"
9
9
  description = "Python Antenna Simulation Module (nec2++) object-oriented interface"
10
10
  readme = "README.md"
11
11
  license = "GPL-3.0-only"
@@ -24,7 +24,7 @@ BUILD_DIR = "necpp_src/build"
24
24
  os.makedirs(BUILD_DIR, exist_ok=True)
25
25
 
26
26
  # Try to read the version from pyproject.toml; fall back to a known default.
27
- _version = "2.3.2"
27
+ _version = "2.3.4"
28
28
  try:
29
29
  import tomllib # Python 3.11+
30
30
  except ImportError:
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes