hillclimber 0.1.6__cp313-cp313-macosx_15_0_x86_64.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.
Files changed (468) hide show
  1. hillclimber/__init__.py +41 -0
  2. hillclimber/actions.py +53 -0
  3. hillclimber/analysis.py +590 -0
  4. hillclimber/biases.py +293 -0
  5. hillclimber/calc.py +22 -0
  6. hillclimber/cvs.py +1070 -0
  7. hillclimber/interfaces.py +133 -0
  8. hillclimber/metadynamics.py +416 -0
  9. hillclimber/nodes.py +6 -0
  10. hillclimber/opes.py +359 -0
  11. hillclimber/pycv.py +362 -0
  12. hillclimber/selectors.py +230 -0
  13. hillclimber/virtual_atoms.py +341 -0
  14. hillclimber-0.1.6.dist-info/METADATA +325 -0
  15. hillclimber-0.1.6.dist-info/RECORD +468 -0
  16. hillclimber-0.1.6.dist-info/WHEEL +6 -0
  17. hillclimber-0.1.6.dist-info/entry_points.txt +8 -0
  18. hillclimber-0.1.6.dist-info/licenses/LICENSE +165 -0
  19. plumed/__init__.py +104 -0
  20. plumed/_lib/bin/plumed +0 -0
  21. plumed/_lib/bin/plumed-config +9 -0
  22. plumed/_lib/bin/plumed-patch +9 -0
  23. plumed/_lib/include/plumed/adjmat/AdjacencyMatrixBase.h +659 -0
  24. plumed/_lib/include/plumed/adjmat/ContactMatrix.h +59 -0
  25. plumed/_lib/include/plumed/asmjit/arch.h +228 -0
  26. plumed/_lib/include/plumed/asmjit/arm.h +43 -0
  27. plumed/_lib/include/plumed/asmjit/asmjit.h +69 -0
  28. plumed/_lib/include/plumed/asmjit/asmjit_apibegin.h +143 -0
  29. plumed/_lib/include/plumed/asmjit/asmjit_apiend.h +93 -0
  30. plumed/_lib/include/plumed/asmjit/asmjit_build.h +971 -0
  31. plumed/_lib/include/plumed/asmjit/assembler.h +183 -0
  32. plumed/_lib/include/plumed/asmjit/base.h +56 -0
  33. plumed/_lib/include/plumed/asmjit/codebuilder.h +944 -0
  34. plumed/_lib/include/plumed/asmjit/codecompiler.h +767 -0
  35. plumed/_lib/include/plumed/asmjit/codeemitter.h +528 -0
  36. plumed/_lib/include/plumed/asmjit/codeholder.h +777 -0
  37. plumed/_lib/include/plumed/asmjit/constpool.h +286 -0
  38. plumed/_lib/include/plumed/asmjit/cpuinfo.h +402 -0
  39. plumed/_lib/include/plumed/asmjit/func.h +1327 -0
  40. plumed/_lib/include/plumed/asmjit/globals.h +370 -0
  41. plumed/_lib/include/plumed/asmjit/inst.h +137 -0
  42. plumed/_lib/include/plumed/asmjit/logging.h +317 -0
  43. plumed/_lib/include/plumed/asmjit/misc_p.h +103 -0
  44. plumed/_lib/include/plumed/asmjit/moved_string.h +318 -0
  45. plumed/_lib/include/plumed/asmjit/operand.h +1599 -0
  46. plumed/_lib/include/plumed/asmjit/osutils.h +207 -0
  47. plumed/_lib/include/plumed/asmjit/regalloc_p.h +597 -0
  48. plumed/_lib/include/plumed/asmjit/runtime.h +227 -0
  49. plumed/_lib/include/plumed/asmjit/simdtypes.h +1104 -0
  50. plumed/_lib/include/plumed/asmjit/utils.h +1387 -0
  51. plumed/_lib/include/plumed/asmjit/vmem.h +183 -0
  52. plumed/_lib/include/plumed/asmjit/x86.h +45 -0
  53. plumed/_lib/include/plumed/asmjit/x86assembler.h +125 -0
  54. plumed/_lib/include/plumed/asmjit/x86builder.h +117 -0
  55. plumed/_lib/include/plumed/asmjit/x86compiler.h +322 -0
  56. plumed/_lib/include/plumed/asmjit/x86emitter.h +5149 -0
  57. plumed/_lib/include/plumed/asmjit/x86globals.h +535 -0
  58. plumed/_lib/include/plumed/asmjit/x86inst.h +2547 -0
  59. plumed/_lib/include/plumed/asmjit/x86instimpl_p.h +74 -0
  60. plumed/_lib/include/plumed/asmjit/x86internal_p.h +108 -0
  61. plumed/_lib/include/plumed/asmjit/x86logging_p.h +92 -0
  62. plumed/_lib/include/plumed/asmjit/x86misc.h +417 -0
  63. plumed/_lib/include/plumed/asmjit/x86operand.h +1133 -0
  64. plumed/_lib/include/plumed/asmjit/x86regalloc_p.h +734 -0
  65. plumed/_lib/include/plumed/asmjit/zone.h +1157 -0
  66. plumed/_lib/include/plumed/bias/Bias.h +82 -0
  67. plumed/_lib/include/plumed/bias/ReweightBase.h +58 -0
  68. plumed/_lib/include/plumed/blas/blas.h +253 -0
  69. plumed/_lib/include/plumed/blas/def_external.h +61 -0
  70. plumed/_lib/include/plumed/blas/def_internal.h +97 -0
  71. plumed/_lib/include/plumed/blas/real.h +49 -0
  72. plumed/_lib/include/plumed/cltools/CLTool.h +32 -0
  73. plumed/_lib/include/plumed/clusters/ClusteringBase.h +70 -0
  74. plumed/_lib/include/plumed/colvar/Colvar.h +32 -0
  75. plumed/_lib/include/plumed/colvar/ColvarInput.h +68 -0
  76. plumed/_lib/include/plumed/colvar/ColvarShortcut.h +81 -0
  77. plumed/_lib/include/plumed/colvar/CoordinationBase.h +52 -0
  78. plumed/_lib/include/plumed/colvar/MultiColvarTemplate.h +333 -0
  79. plumed/_lib/include/plumed/colvar/PathMSDBase.h +101 -0
  80. plumed/_lib/include/plumed/colvar/RMSDVector.h +78 -0
  81. plumed/_lib/include/plumed/config/Config.h +118 -0
  82. plumed/_lib/include/plumed/config/version.h +9 -0
  83. plumed/_lib/include/plumed/contour/ContourFindingObject.h +87 -0
  84. plumed/_lib/include/plumed/contour/DistanceFromContourBase.h +82 -0
  85. plumed/_lib/include/plumed/contour/FindContour.h +67 -0
  86. plumed/_lib/include/plumed/core/Action.h +540 -0
  87. plumed/_lib/include/plumed/core/ActionAnyorder.h +48 -0
  88. plumed/_lib/include/plumed/core/ActionAtomistic.h +343 -0
  89. plumed/_lib/include/plumed/core/ActionForInterface.h +99 -0
  90. plumed/_lib/include/plumed/core/ActionPilot.h +57 -0
  91. plumed/_lib/include/plumed/core/ActionRegister.h +124 -0
  92. plumed/_lib/include/plumed/core/ActionSet.h +163 -0
  93. plumed/_lib/include/plumed/core/ActionSetup.h +48 -0
  94. plumed/_lib/include/plumed/core/ActionShortcut.h +73 -0
  95. plumed/_lib/include/plumed/core/ActionToGetData.h +59 -0
  96. plumed/_lib/include/plumed/core/ActionToPutData.h +101 -0
  97. plumed/_lib/include/plumed/core/ActionWithArguments.h +140 -0
  98. plumed/_lib/include/plumed/core/ActionWithMatrix.h +87 -0
  99. plumed/_lib/include/plumed/core/ActionWithValue.h +258 -0
  100. plumed/_lib/include/plumed/core/ActionWithVector.h +94 -0
  101. plumed/_lib/include/plumed/core/ActionWithVirtualAtom.h +123 -0
  102. plumed/_lib/include/plumed/core/CLTool.h +177 -0
  103. plumed/_lib/include/plumed/core/CLToolMain.h +102 -0
  104. plumed/_lib/include/plumed/core/CLToolRegister.h +108 -0
  105. plumed/_lib/include/plumed/core/Colvar.h +115 -0
  106. plumed/_lib/include/plumed/core/DataPassingObject.h +94 -0
  107. plumed/_lib/include/plumed/core/DataPassingTools.h +54 -0
  108. plumed/_lib/include/plumed/core/DomainDecomposition.h +120 -0
  109. plumed/_lib/include/plumed/core/ExchangePatterns.h +47 -0
  110. plumed/_lib/include/plumed/core/FlexibleBin.h +63 -0
  111. plumed/_lib/include/plumed/core/GREX.h +61 -0
  112. plumed/_lib/include/plumed/core/GenericMolInfo.h +89 -0
  113. plumed/_lib/include/plumed/core/Group.h +41 -0
  114. plumed/_lib/include/plumed/core/ModuleMap.h +30 -0
  115. plumed/_lib/include/plumed/core/ParallelTaskManager.h +1023 -0
  116. plumed/_lib/include/plumed/core/PbcAction.h +61 -0
  117. plumed/_lib/include/plumed/core/PlumedMain.h +632 -0
  118. plumed/_lib/include/plumed/core/PlumedMainInitializer.h +118 -0
  119. plumed/_lib/include/plumed/core/RegisterBase.h +340 -0
  120. plumed/_lib/include/plumed/core/TargetDist.h +48 -0
  121. plumed/_lib/include/plumed/core/Value.h +547 -0
  122. plumed/_lib/include/plumed/core/WithCmd.h +93 -0
  123. plumed/_lib/include/plumed/dimred/SMACOF.h +55 -0
  124. plumed/_lib/include/plumed/drr/DRR.h +383 -0
  125. plumed/_lib/include/plumed/drr/colvar_UIestimator.h +777 -0
  126. plumed/_lib/include/plumed/fisst/legendre_rule_fast.h +44 -0
  127. plumed/_lib/include/plumed/function/Custom.h +54 -0
  128. plumed/_lib/include/plumed/function/Function.h +85 -0
  129. plumed/_lib/include/plumed/function/FunctionOfMatrix.h +368 -0
  130. plumed/_lib/include/plumed/function/FunctionOfScalar.h +135 -0
  131. plumed/_lib/include/plumed/function/FunctionOfVector.h +296 -0
  132. plumed/_lib/include/plumed/function/FunctionSetup.h +180 -0
  133. plumed/_lib/include/plumed/function/FunctionShortcut.h +130 -0
  134. plumed/_lib/include/plumed/function/FunctionWithSingleArgument.h +165 -0
  135. plumed/_lib/include/plumed/gridtools/ActionWithGrid.h +43 -0
  136. plumed/_lib/include/plumed/gridtools/EvaluateGridFunction.h +99 -0
  137. plumed/_lib/include/plumed/gridtools/FunctionOfGrid.h +295 -0
  138. plumed/_lib/include/plumed/gridtools/GridCoordinatesObject.h +179 -0
  139. plumed/_lib/include/plumed/gridtools/GridSearch.h +135 -0
  140. plumed/_lib/include/plumed/gridtools/Interpolator.h +45 -0
  141. plumed/_lib/include/plumed/gridtools/KDE.h +455 -0
  142. plumed/_lib/include/plumed/gridtools/RDF.h +40 -0
  143. plumed/_lib/include/plumed/gridtools/SumOfKernels.h +219 -0
  144. plumed/_lib/include/plumed/isdb/MetainferenceBase.h +398 -0
  145. plumed/_lib/include/plumed/lapack/def_external.h +207 -0
  146. plumed/_lib/include/plumed/lapack/def_internal.h +388 -0
  147. plumed/_lib/include/plumed/lapack/lapack.h +899 -0
  148. plumed/_lib/include/plumed/lapack/lapack_limits.h +79 -0
  149. plumed/_lib/include/plumed/lapack/real.h +50 -0
  150. plumed/_lib/include/plumed/lepton/CompiledExpression.h +164 -0
  151. plumed/_lib/include/plumed/lepton/CustomFunction.h +143 -0
  152. plumed/_lib/include/plumed/lepton/Exception.h +93 -0
  153. plumed/_lib/include/plumed/lepton/ExpressionProgram.h +137 -0
  154. plumed/_lib/include/plumed/lepton/ExpressionTreeNode.h +145 -0
  155. plumed/_lib/include/plumed/lepton/Lepton.h +85 -0
  156. plumed/_lib/include/plumed/lepton/MSVC_erfc.h +123 -0
  157. plumed/_lib/include/plumed/lepton/Operation.h +1302 -0
  158. plumed/_lib/include/plumed/lepton/ParsedExpression.h +165 -0
  159. plumed/_lib/include/plumed/lepton/Parser.h +111 -0
  160. plumed/_lib/include/plumed/lepton/windowsIncludes.h +73 -0
  161. plumed/_lib/include/plumed/mapping/Path.h +44 -0
  162. plumed/_lib/include/plumed/mapping/PathProjectionCalculator.h +57 -0
  163. plumed/_lib/include/plumed/matrixtools/MatrixOperationBase.h +54 -0
  164. plumed/_lib/include/plumed/matrixtools/MatrixTimesMatrix.h +309 -0
  165. plumed/_lib/include/plumed/matrixtools/MatrixTimesVectorBase.h +365 -0
  166. plumed/_lib/include/plumed/matrixtools/OuterProduct.h +238 -0
  167. plumed/_lib/include/plumed/maze/Core.h +65 -0
  168. plumed/_lib/include/plumed/maze/Loss.h +86 -0
  169. plumed/_lib/include/plumed/maze/Member.h +66 -0
  170. plumed/_lib/include/plumed/maze/Memetic.h +799 -0
  171. plumed/_lib/include/plumed/maze/Optimizer.h +357 -0
  172. plumed/_lib/include/plumed/maze/Random_MT.h +156 -0
  173. plumed/_lib/include/plumed/maze/Tools.h +183 -0
  174. plumed/_lib/include/plumed/metatomic/vesin.h +188 -0
  175. plumed/_lib/include/plumed/molfile/Gromacs.h +2013 -0
  176. plumed/_lib/include/plumed/molfile/endianswap.h +217 -0
  177. plumed/_lib/include/plumed/molfile/fastio.h +683 -0
  178. plumed/_lib/include/plumed/molfile/largefiles.h +78 -0
  179. plumed/_lib/include/plumed/molfile/libmolfile_plugin.h +77 -0
  180. plumed/_lib/include/plumed/molfile/molfile_plugin.h +1034 -0
  181. plumed/_lib/include/plumed/molfile/periodic_table.h +248 -0
  182. plumed/_lib/include/plumed/molfile/readpdb.h +447 -0
  183. plumed/_lib/include/plumed/molfile/vmdplugin.h +236 -0
  184. plumed/_lib/include/plumed/multicolvar/MultiColvarShortcuts.h +45 -0
  185. plumed/_lib/include/plumed/opes/ExpansionCVs.h +79 -0
  186. plumed/_lib/include/plumed/sasa/Sasa.h +32 -0
  187. plumed/_lib/include/plumed/secondarystructure/SecondaryStructureBase.h +372 -0
  188. plumed/_lib/include/plumed/setup/ActionSetup.h +25 -0
  189. plumed/_lib/include/plumed/small_vector/small_vector.h +6114 -0
  190. plumed/_lib/include/plumed/symfunc/CoordinationNumbers.h +41 -0
  191. plumed/_lib/include/plumed/tools/Angle.h +52 -0
  192. plumed/_lib/include/plumed/tools/AtomDistribution.h +138 -0
  193. plumed/_lib/include/plumed/tools/AtomNumber.h +152 -0
  194. plumed/_lib/include/plumed/tools/BiasRepresentation.h +106 -0
  195. plumed/_lib/include/plumed/tools/BitmaskEnum.h +167 -0
  196. plumed/_lib/include/plumed/tools/Brent1DRootSearch.h +159 -0
  197. plumed/_lib/include/plumed/tools/CheckInRange.h +44 -0
  198. plumed/_lib/include/plumed/tools/Citations.h +74 -0
  199. plumed/_lib/include/plumed/tools/ColvarOutput.h +118 -0
  200. plumed/_lib/include/plumed/tools/Communicator.h +316 -0
  201. plumed/_lib/include/plumed/tools/ConjugateGradient.h +80 -0
  202. plumed/_lib/include/plumed/tools/DLLoader.h +79 -0
  203. plumed/_lib/include/plumed/tools/ERMSD.h +73 -0
  204. plumed/_lib/include/plumed/tools/Exception.h +406 -0
  205. plumed/_lib/include/plumed/tools/File.h +28 -0
  206. plumed/_lib/include/plumed/tools/FileBase.h +153 -0
  207. plumed/_lib/include/plumed/tools/FileTools.h +37 -0
  208. plumed/_lib/include/plumed/tools/ForwardDecl.h +54 -0
  209. plumed/_lib/include/plumed/tools/Grid.h +638 -0
  210. plumed/_lib/include/plumed/tools/HistogramBead.h +136 -0
  211. plumed/_lib/include/plumed/tools/IFile.h +117 -0
  212. plumed/_lib/include/plumed/tools/KernelFunctions.h +113 -0
  213. plumed/_lib/include/plumed/tools/Keywords.h +380 -0
  214. plumed/_lib/include/plumed/tools/LatticeReduction.h +66 -0
  215. plumed/_lib/include/plumed/tools/LeptonCall.h +64 -0
  216. plumed/_lib/include/plumed/tools/LinkCells.h +126 -0
  217. plumed/_lib/include/plumed/tools/Log.h +41 -0
  218. plumed/_lib/include/plumed/tools/LoopUnroller.h +163 -0
  219. plumed/_lib/include/plumed/tools/Matrix.h +721 -0
  220. plumed/_lib/include/plumed/tools/MatrixSquareBracketsAccess.h +138 -0
  221. plumed/_lib/include/plumed/tools/MergeVectorTools.h +153 -0
  222. plumed/_lib/include/plumed/tools/Minimise1DBrent.h +244 -0
  223. plumed/_lib/include/plumed/tools/MinimiseBase.h +120 -0
  224. plumed/_lib/include/plumed/tools/MolDataClass.h +51 -0
  225. plumed/_lib/include/plumed/tools/NeighborList.h +112 -0
  226. plumed/_lib/include/plumed/tools/OFile.h +286 -0
  227. plumed/_lib/include/plumed/tools/OpenACC.h +180 -0
  228. plumed/_lib/include/plumed/tools/OpenMP.h +75 -0
  229. plumed/_lib/include/plumed/tools/PDB.h +154 -0
  230. plumed/_lib/include/plumed/tools/Pbc.h +139 -0
  231. plumed/_lib/include/plumed/tools/PlumedHandle.h +105 -0
  232. plumed/_lib/include/plumed/tools/RMSD.h +493 -0
  233. plumed/_lib/include/plumed/tools/Random.h +80 -0
  234. plumed/_lib/include/plumed/tools/RootFindingBase.h +79 -0
  235. plumed/_lib/include/plumed/tools/Stopwatch.h +475 -0
  236. plumed/_lib/include/plumed/tools/Subprocess.h +142 -0
  237. plumed/_lib/include/plumed/tools/SwitchingFunction.h +208 -0
  238. plumed/_lib/include/plumed/tools/Tensor.h +724 -0
  239. plumed/_lib/include/plumed/tools/TokenizedLine.h +123 -0
  240. plumed/_lib/include/plumed/tools/Tools.h +638 -0
  241. plumed/_lib/include/plumed/tools/Torsion.h +55 -0
  242. plumed/_lib/include/plumed/tools/TrajectoryParser.h +118 -0
  243. plumed/_lib/include/plumed/tools/Tree.h +61 -0
  244. plumed/_lib/include/plumed/tools/TypesafePtr.h +463 -0
  245. plumed/_lib/include/plumed/tools/Units.h +167 -0
  246. plumed/_lib/include/plumed/tools/Vector.h +433 -0
  247. plumed/_lib/include/plumed/tools/View.h +296 -0
  248. plumed/_lib/include/plumed/tools/View2D.h +100 -0
  249. plumed/_lib/include/plumed/tools/h36.h +39 -0
  250. plumed/_lib/include/plumed/vatom/ActionWithVirtualAtom.h +32 -0
  251. plumed/_lib/include/plumed/ves/BasisFunctions.h +380 -0
  252. plumed/_lib/include/plumed/ves/CoeffsBase.h +310 -0
  253. plumed/_lib/include/plumed/ves/CoeffsMatrix.h +220 -0
  254. plumed/_lib/include/plumed/ves/CoeffsVector.h +251 -0
  255. plumed/_lib/include/plumed/ves/FermiSwitchingFunction.h +74 -0
  256. plumed/_lib/include/plumed/ves/GridIntegrationWeights.h +50 -0
  257. plumed/_lib/include/plumed/ves/GridLinearInterpolation.h +81 -0
  258. plumed/_lib/include/plumed/ves/GridProjWeights.h +61 -0
  259. plumed/_lib/include/plumed/ves/LinearBasisSetExpansion.h +303 -0
  260. plumed/_lib/include/plumed/ves/Optimizer.h +444 -0
  261. plumed/_lib/include/plumed/ves/TargetDistModifer.h +53 -0
  262. plumed/_lib/include/plumed/ves/TargetDistribution.h +266 -0
  263. plumed/_lib/include/plumed/ves/VesBias.h +545 -0
  264. plumed/_lib/include/plumed/ves/VesTools.h +142 -0
  265. plumed/_lib/include/plumed/ves/WaveletGrid.h +75 -0
  266. plumed/_lib/include/plumed/volumes/ActionVolume.h +268 -0
  267. plumed/_lib/include/plumed/volumes/VolumeShortcut.h +147 -0
  268. plumed/_lib/include/plumed/wrapper/Plumed.h +5025 -0
  269. plumed/_lib/include/plumed/xdrfile/xdrfile.h +663 -0
  270. plumed/_lib/include/plumed/xdrfile/xdrfile_trr.h +89 -0
  271. plumed/_lib/include/plumed/xdrfile/xdrfile_xtc.h +90 -0
  272. plumed/_lib/lib/PythonCVInterface.dylib +0 -0
  273. plumed/_lib/lib/libplumed.dylib +0 -0
  274. plumed/_lib/lib/libplumedKernel.dylib +0 -0
  275. plumed/_lib/lib/libplumedWrapper.a +0 -0
  276. plumed/_lib/lib/pkgconfig/plumed.pc +13 -0
  277. plumed/_lib/lib/pkgconfig/plumedInternals.pc +13 -0
  278. plumed/_lib/lib/pkgconfig/plumedWrapper.pc +13 -0
  279. plumed/_lib/lib/plumed/fortran/plumed.f90 +879 -0
  280. plumed/_lib/lib/plumed/fortran/plumed_f08.f90 +2625 -0
  281. plumed/_lib/lib/plumed/modulefile +69 -0
  282. plumed/_lib/lib/plumed/patches/gromacs-2022.5.config +43 -0
  283. plumed/_lib/lib/plumed/patches/gromacs-2022.5.diff/src/gromacs/CMakeLists.txt +543 -0
  284. plumed/_lib/lib/plumed/patches/gromacs-2022.5.diff/src/gromacs/CMakeLists.txt.preplumed +540 -0
  285. plumed/_lib/lib/plumed/patches/gromacs-2022.5.diff/src/gromacs/mdlib/expanded.cpp +1628 -0
  286. plumed/_lib/lib/plumed/patches/gromacs-2022.5.diff/src/gromacs/mdlib/expanded.cpp.preplumed +1590 -0
  287. plumed/_lib/lib/plumed/patches/gromacs-2022.5.diff/src/gromacs/mdlib/expanded.h +103 -0
  288. plumed/_lib/lib/plumed/patches/gromacs-2022.5.diff/src/gromacs/mdlib/expanded.h.preplumed +99 -0
  289. plumed/_lib/lib/plumed/patches/gromacs-2022.5.diff/src/gromacs/mdlib/sim_util.cpp +2527 -0
  290. plumed/_lib/lib/plumed/patches/gromacs-2022.5.diff/src/gromacs/mdlib/sim_util.cpp.preplumed +2513 -0
  291. plumed/_lib/lib/plumed/patches/gromacs-2022.5.diff/src/gromacs/mdrun/legacymdrunoptions.cpp +208 -0
  292. plumed/_lib/lib/plumed/patches/gromacs-2022.5.diff/src/gromacs/mdrun/legacymdrunoptions.cpp.preplumed +175 -0
  293. plumed/_lib/lib/plumed/patches/gromacs-2022.5.diff/src/gromacs/mdrun/legacymdrunoptions.h +408 -0
  294. plumed/_lib/lib/plumed/patches/gromacs-2022.5.diff/src/gromacs/mdrun/legacymdrunoptions.h.preplumed +394 -0
  295. plumed/_lib/lib/plumed/patches/gromacs-2022.5.diff/src/gromacs/mdrun/md.cpp +2348 -0
  296. plumed/_lib/lib/plumed/patches/gromacs-2022.5.diff/src/gromacs/mdrun/md.cpp.preplumed +2091 -0
  297. plumed/_lib/lib/plumed/patches/gromacs-2022.5.diff/src/gromacs/mdrun/minimize.cpp +3573 -0
  298. plumed/_lib/lib/plumed/patches/gromacs-2022.5.diff/src/gromacs/mdrun/minimize.cpp.preplumed +3495 -0
  299. plumed/_lib/lib/plumed/patches/gromacs-2022.5.diff/src/gromacs/mdrun/replicaexchange.cpp +1506 -0
  300. plumed/_lib/lib/plumed/patches/gromacs-2022.5.diff/src/gromacs/mdrun/replicaexchange.cpp.preplumed +1402 -0
  301. plumed/_lib/lib/plumed/patches/gromacs-2022.5.diff/src/gromacs/mdrun/replicaexchange.h +114 -0
  302. plumed/_lib/lib/plumed/patches/gromacs-2022.5.diff/src/gromacs/mdrun/replicaexchange.h.preplumed +106 -0
  303. plumed/_lib/lib/plumed/patches/gromacs-2022.5.diff/src/gromacs/mdrun/rerun.cpp +997 -0
  304. plumed/_lib/lib/plumed/patches/gromacs-2022.5.diff/src/gromacs/mdrun/rerun.cpp.preplumed +906 -0
  305. plumed/_lib/lib/plumed/patches/gromacs-2022.5.diff/src/gromacs/mdrun/runner.cpp +2780 -0
  306. plumed/_lib/lib/plumed/patches/gromacs-2022.5.diff/src/gromacs/mdrun/runner.cpp.preplumed +2738 -0
  307. plumed/_lib/lib/plumed/patches/gromacs-2022.5.diff/src/gromacs/modularsimulator/expandedensembleelement.cpp +224 -0
  308. plumed/_lib/lib/plumed/patches/gromacs-2022.5.diff/src/gromacs/modularsimulator/expandedensembleelement.cpp.preplumed +222 -0
  309. plumed/_lib/lib/plumed/patches/gromacs-2023.5.config +43 -0
  310. plumed/_lib/lib/plumed/patches/gromacs-2023.5.diff/src/gromacs/CMakeLists.txt +549 -0
  311. plumed/_lib/lib/plumed/patches/gromacs-2023.5.diff/src/gromacs/CMakeLists.txt.preplumed +546 -0
  312. plumed/_lib/lib/plumed/patches/gromacs-2023.5.diff/src/gromacs/mdlib/expanded.cpp +1632 -0
  313. plumed/_lib/lib/plumed/patches/gromacs-2023.5.diff/src/gromacs/mdlib/expanded.cpp.preplumed +1594 -0
  314. plumed/_lib/lib/plumed/patches/gromacs-2023.5.diff/src/gromacs/mdlib/expanded.h +104 -0
  315. plumed/_lib/lib/plumed/patches/gromacs-2023.5.diff/src/gromacs/mdlib/expanded.h.preplumed +100 -0
  316. plumed/_lib/lib/plumed/patches/gromacs-2023.5.diff/src/gromacs/mdlib/sim_util.cpp +2624 -0
  317. plumed/_lib/lib/plumed/patches/gromacs-2023.5.diff/src/gromacs/mdlib/sim_util.cpp.preplumed +2610 -0
  318. plumed/_lib/lib/plumed/patches/gromacs-2023.5.diff/src/gromacs/mdrun/legacymdrunoptions.cpp +208 -0
  319. plumed/_lib/lib/plumed/patches/gromacs-2023.5.diff/src/gromacs/mdrun/legacymdrunoptions.cpp.preplumed +175 -0
  320. plumed/_lib/lib/plumed/patches/gromacs-2023.5.diff/src/gromacs/mdrun/legacymdrunoptions.h +409 -0
  321. plumed/_lib/lib/plumed/patches/gromacs-2023.5.diff/src/gromacs/mdrun/legacymdrunoptions.h.preplumed +395 -0
  322. plumed/_lib/lib/plumed/patches/gromacs-2023.5.diff/src/gromacs/mdrun/md.cpp +2419 -0
  323. plumed/_lib/lib/plumed/patches/gromacs-2023.5.diff/src/gromacs/mdrun/md.cpp.preplumed +2164 -0
  324. plumed/_lib/lib/plumed/patches/gromacs-2023.5.diff/src/gromacs/mdrun/minimize.cpp +3546 -0
  325. plumed/_lib/lib/plumed/patches/gromacs-2023.5.diff/src/gromacs/mdrun/minimize.cpp.preplumed +3468 -0
  326. plumed/_lib/lib/plumed/patches/gromacs-2023.5.diff/src/gromacs/mdrun/replicaexchange.cpp +1513 -0
  327. plumed/_lib/lib/plumed/patches/gromacs-2023.5.diff/src/gromacs/mdrun/replicaexchange.cpp.preplumed +1409 -0
  328. plumed/_lib/lib/plumed/patches/gromacs-2023.5.diff/src/gromacs/mdrun/replicaexchange.h +114 -0
  329. plumed/_lib/lib/plumed/patches/gromacs-2023.5.diff/src/gromacs/mdrun/replicaexchange.h.preplumed +106 -0
  330. plumed/_lib/lib/plumed/patches/gromacs-2023.5.diff/src/gromacs/mdrun/rerun.cpp +991 -0
  331. plumed/_lib/lib/plumed/patches/gromacs-2023.5.diff/src/gromacs/mdrun/rerun.cpp.preplumed +900 -0
  332. plumed/_lib/lib/plumed/patches/gromacs-2023.5.diff/src/gromacs/mdrun/runner.cpp +2895 -0
  333. plumed/_lib/lib/plumed/patches/gromacs-2023.5.diff/src/gromacs/mdrun/runner.cpp.preplumed +2849 -0
  334. plumed/_lib/lib/plumed/patches/gromacs-2023.5.diff/src/gromacs/modularsimulator/expandedensembleelement.cpp +224 -0
  335. plumed/_lib/lib/plumed/patches/gromacs-2023.5.diff/src/gromacs/modularsimulator/expandedensembleelement.cpp.preplumed +222 -0
  336. plumed/_lib/lib/plumed/patches/gromacs-2023.5.diff/src/gromacs/taskassignment/decidegpuusage.cpp +886 -0
  337. plumed/_lib/lib/plumed/patches/gromacs-2023.5.diff/src/gromacs/taskassignment/decidegpuusage.cpp.preplumed +880 -0
  338. plumed/_lib/lib/plumed/patches/gromacs-2023.5.diff/src/gromacs/taskassignment/include/gromacs/taskassignment/decidegpuusage.h +347 -0
  339. plumed/_lib/lib/plumed/patches/gromacs-2023.5.diff/src/gromacs/taskassignment/include/gromacs/taskassignment/decidegpuusage.h.preplumed +345 -0
  340. plumed/_lib/lib/plumed/patches/gromacs-2024.3.config +43 -0
  341. plumed/_lib/lib/plumed/patches/gromacs-2024.3.diff/src/gromacs/CMakeLists.txt +575 -0
  342. plumed/_lib/lib/plumed/patches/gromacs-2024.3.diff/src/gromacs/CMakeLists.txt.preplumed +572 -0
  343. plumed/_lib/lib/plumed/patches/gromacs-2024.3.diff/src/gromacs/mdlib/expanded.cpp +1632 -0
  344. plumed/_lib/lib/plumed/patches/gromacs-2024.3.diff/src/gromacs/mdlib/expanded.cpp.preplumed +1594 -0
  345. plumed/_lib/lib/plumed/patches/gromacs-2024.3.diff/src/gromacs/mdlib/expanded.h +104 -0
  346. plumed/_lib/lib/plumed/patches/gromacs-2024.3.diff/src/gromacs/mdlib/expanded.h.preplumed +100 -0
  347. plumed/_lib/lib/plumed/patches/gromacs-2024.3.diff/src/gromacs/mdlib/sim_util.cpp +2564 -0
  348. plumed/_lib/lib/plumed/patches/gromacs-2024.3.diff/src/gromacs/mdlib/sim_util.cpp.preplumed +2550 -0
  349. plumed/_lib/lib/plumed/patches/gromacs-2024.3.diff/src/gromacs/mdrun/legacymdrunoptions.cpp +208 -0
  350. plumed/_lib/lib/plumed/patches/gromacs-2024.3.diff/src/gromacs/mdrun/legacymdrunoptions.cpp.preplumed +175 -0
  351. plumed/_lib/lib/plumed/patches/gromacs-2024.3.diff/src/gromacs/mdrun/legacymdrunoptions.h +410 -0
  352. plumed/_lib/lib/plumed/patches/gromacs-2024.3.diff/src/gromacs/mdrun/legacymdrunoptions.h.preplumed +396 -0
  353. plumed/_lib/lib/plumed/patches/gromacs-2024.3.diff/src/gromacs/mdrun/md.cpp +2435 -0
  354. plumed/_lib/lib/plumed/patches/gromacs-2024.3.diff/src/gromacs/mdrun/md.cpp.preplumed +2187 -0
  355. plumed/_lib/lib/plumed/patches/gromacs-2024.3.diff/src/gromacs/mdrun/minimize.cpp +3592 -0
  356. plumed/_lib/lib/plumed/patches/gromacs-2024.3.diff/src/gromacs/mdrun/minimize.cpp.preplumed +3514 -0
  357. plumed/_lib/lib/plumed/patches/gromacs-2024.3.diff/src/gromacs/mdrun/replicaexchange.cpp +1513 -0
  358. plumed/_lib/lib/plumed/patches/gromacs-2024.3.diff/src/gromacs/mdrun/replicaexchange.cpp.preplumed +1409 -0
  359. plumed/_lib/lib/plumed/patches/gromacs-2024.3.diff/src/gromacs/mdrun/replicaexchange.h +114 -0
  360. plumed/_lib/lib/plumed/patches/gromacs-2024.3.diff/src/gromacs/mdrun/replicaexchange.h.preplumed +106 -0
  361. plumed/_lib/lib/plumed/patches/gromacs-2024.3.diff/src/gromacs/mdrun/rerun.cpp +958 -0
  362. plumed/_lib/lib/plumed/patches/gromacs-2024.3.diff/src/gromacs/mdrun/rerun.cpp.preplumed +929 -0
  363. plumed/_lib/lib/plumed/patches/gromacs-2024.3.diff/src/gromacs/mdrun/runner.cpp +2987 -0
  364. plumed/_lib/lib/plumed/patches/gromacs-2024.3.diff/src/gromacs/mdrun/runner.cpp.preplumed +2941 -0
  365. plumed/_lib/lib/plumed/patches/gromacs-2024.3.diff/src/gromacs/modularsimulator/expandedensembleelement.cpp +224 -0
  366. plumed/_lib/lib/plumed/patches/gromacs-2024.3.diff/src/gromacs/modularsimulator/expandedensembleelement.cpp.preplumed +222 -0
  367. plumed/_lib/lib/plumed/patches/gromacs-2024.3.diff/src/gromacs/taskassignment/decidegpuusage.cpp +904 -0
  368. plumed/_lib/lib/plumed/patches/gromacs-2024.3.diff/src/gromacs/taskassignment/decidegpuusage.cpp.preplumed +898 -0
  369. plumed/_lib/lib/plumed/patches/gromacs-2024.3.diff/src/gromacs/taskassignment/include/gromacs/taskassignment/decidegpuusage.h +353 -0
  370. plumed/_lib/lib/plumed/patches/gromacs-2024.3.diff/src/gromacs/taskassignment/include/gromacs/taskassignment/decidegpuusage.h.preplumed +351 -0
  371. plumed/_lib/lib/plumed/patches/gromacs-2025.0.config +39 -0
  372. plumed/_lib/lib/plumed/patches/gromacs-2025.0.diff/cmake/gmxManagePlumed.cmake +82 -0
  373. plumed/_lib/lib/plumed/patches/gromacs-2025.0.diff/cmake/gmxManagePlumed.cmake.preplumed +82 -0
  374. plumed/_lib/lib/plumed/patches/gromacs-2025.0.diff/src/gromacs/applied_forces/plumed/plumedMDModule.cpp +162 -0
  375. plumed/_lib/lib/plumed/patches/gromacs-2025.0.diff/src/gromacs/applied_forces/plumed/plumedMDModule.cpp.preplumed +154 -0
  376. plumed/_lib/lib/plumed/patches/gromacs-2025.0.diff/src/gromacs/applied_forces/plumed/plumedOptions.cpp +107 -0
  377. plumed/_lib/lib/plumed/patches/gromacs-2025.0.diff/src/gromacs/applied_forces/plumed/plumedOptions.cpp.preplumed +99 -0
  378. plumed/_lib/lib/plumed/patches/gromacs-2025.0.diff/src/gromacs/applied_forces/plumed/plumedOptions.h +120 -0
  379. plumed/_lib/lib/plumed/patches/gromacs-2025.0.diff/src/gromacs/applied_forces/plumed/plumedOptions.h.preplumed +111 -0
  380. plumed/_lib/lib/plumed/patches/gromacs-2025.0.diff/src/gromacs/applied_forces/plumed/plumedforceprovider.cpp +215 -0
  381. plumed/_lib/lib/plumed/patches/gromacs-2025.0.diff/src/gromacs/applied_forces/plumed/plumedforceprovider.cpp.preplumed +197 -0
  382. plumed/_lib/lib/plumed/patches/gromacs-2025.0.diff/src/gromacs/applied_forces/plumed/plumedforceprovider.h +87 -0
  383. plumed/_lib/lib/plumed/patches/gromacs-2025.0.diff/src/gromacs/applied_forces/plumed/plumedforceprovider.h.preplumed +86 -0
  384. plumed/_lib/lib/plumed/patches/gromacs-2025.0.diff/src/gromacs/mdrun/runner.cpp +2971 -0
  385. plumed/_lib/lib/plumed/patches/gromacs-2025.0.diff/src/gromacs/mdrun/runner.cpp.preplumed +2970 -0
  386. plumed/_lib/lib/plumed/patches/gromacs-2025.0.diff/src/gromacs/mdrunutility/mdmodulesnotifiers.h +430 -0
  387. plumed/_lib/lib/plumed/patches/gromacs-2025.0.diff/src/gromacs/mdrunutility/mdmodulesnotifiers.h.preplumed +429 -0
  388. plumed/_lib/lib/plumed/patches/namd-2.12.config +30 -0
  389. plumed/_lib/lib/plumed/patches/namd-2.12.diff +267 -0
  390. plumed/_lib/lib/plumed/patches/namd-2.13.config +30 -0
  391. plumed/_lib/lib/plumed/patches/namd-2.13.diff +267 -0
  392. plumed/_lib/lib/plumed/patches/namd-2.14.config +30 -0
  393. plumed/_lib/lib/plumed/patches/namd-2.14.diff +268 -0
  394. plumed/_lib/lib/plumed/patches/patch.sh +500 -0
  395. plumed/_lib/lib/plumed/patches/qespresso-5.0.2.config +25 -0
  396. plumed/_lib/lib/plumed/patches/qespresso-5.0.2.diff/PW/src/forces.f90 +368 -0
  397. plumed/_lib/lib/plumed/patches/qespresso-5.0.2.diff/PW/src/forces.f90.preplumed +366 -0
  398. plumed/_lib/lib/plumed/patches/qespresso-5.0.2.diff/PW/src/plugin_forces.f90 +71 -0
  399. plumed/_lib/lib/plumed/patches/qespresso-5.0.2.diff/PW/src/plugin_forces.f90.preplumed +24 -0
  400. plumed/_lib/lib/plumed/patches/qespresso-5.0.2.diff/PW/src/plugin_initialization.f90 +62 -0
  401. plumed/_lib/lib/plumed/patches/qespresso-5.0.2.diff/PW/src/plugin_initialization.f90.preplumed +21 -0
  402. plumed/_lib/lib/plumed/patches/qespresso-5.0.2.diff/PW/src/pwscf.f90 +189 -0
  403. plumed/_lib/lib/plumed/patches/qespresso-5.0.2.diff/PW/src/pwscf.f90.preplumed +185 -0
  404. plumed/_lib/lib/plumed/patches/qespresso-6.2.config +26 -0
  405. plumed/_lib/lib/plumed/patches/qespresso-6.2.diff/PW/src/forces.f90 +422 -0
  406. plumed/_lib/lib/plumed/patches/qespresso-6.2.diff/PW/src/forces.f90.preplumed +420 -0
  407. plumed/_lib/lib/plumed/patches/qespresso-6.2.diff/PW/src/plugin_ext_forces.f90 +70 -0
  408. plumed/_lib/lib/plumed/patches/qespresso-6.2.diff/PW/src/plugin_ext_forces.f90.preplumed +23 -0
  409. plumed/_lib/lib/plumed/patches/qespresso-6.2.diff/PW/src/plugin_initialization.f90 +62 -0
  410. plumed/_lib/lib/plumed/patches/qespresso-6.2.diff/PW/src/plugin_initialization.f90.preplumed +21 -0
  411. plumed/_lib/lib/plumed/patches/qespresso-6.2.diff/PW/src/run_pwscf.f90 +233 -0
  412. plumed/_lib/lib/plumed/patches/qespresso-6.2.diff/PW/src/run_pwscf.f90.preplumed +230 -0
  413. plumed/_lib/lib/plumed/patches/qespresso-7.0.config +28 -0
  414. plumed/_lib/lib/plumed/patches/qespresso-7.0.diff/Modules/Makefile +175 -0
  415. plumed/_lib/lib/plumed/patches/qespresso-7.0.diff/Modules/Makefile.preplumed +171 -0
  416. plumed/_lib/lib/plumed/patches/qespresso-7.0.diff/PW/src/forces.f90 +486 -0
  417. plumed/_lib/lib/plumed/patches/qespresso-7.0.diff/PW/src/forces.f90.preplumed +484 -0
  418. plumed/_lib/lib/plumed/patches/qespresso-7.0.diff/PW/src/plugin_ext_forces.f90 +74 -0
  419. plumed/_lib/lib/plumed/patches/qespresso-7.0.diff/PW/src/plugin_ext_forces.f90.preplumed +23 -0
  420. plumed/_lib/lib/plumed/patches/qespresso-7.0.diff/PW/src/plugin_initialization.f90 +64 -0
  421. plumed/_lib/lib/plumed/patches/qespresso-7.0.diff/PW/src/plugin_initialization.f90.preplumed +21 -0
  422. plumed/_lib/lib/plumed/patches/qespresso-7.0.diff/PW/src/run_pwscf.f90 +532 -0
  423. plumed/_lib/lib/plumed/patches/qespresso-7.0.diff/PW/src/run_pwscf.f90.preplumed +518 -0
  424. plumed/_lib/lib/plumed/patches/qespresso-7.2.config +28 -0
  425. plumed/_lib/lib/plumed/patches/qespresso-7.2.diff/Modules/Makefile +249 -0
  426. plumed/_lib/lib/plumed/patches/qespresso-7.2.diff/Modules/Makefile.preplumed +244 -0
  427. plumed/_lib/lib/plumed/patches/qespresso-7.2.diff/PW/src/forces.f90 +532 -0
  428. plumed/_lib/lib/plumed/patches/qespresso-7.2.diff/PW/src/forces.f90.preplumed +535 -0
  429. plumed/_lib/lib/plumed/patches/qespresso-7.2.diff/PW/src/plugin_ext_forces.f90 +74 -0
  430. plumed/_lib/lib/plumed/patches/qespresso-7.2.diff/PW/src/plugin_ext_forces.f90.preplumed +23 -0
  431. plumed/_lib/lib/plumed/patches/qespresso-7.2.diff/PW/src/plugin_initialization.f90 +64 -0
  432. plumed/_lib/lib/plumed/patches/qespresso-7.2.diff/PW/src/plugin_initialization.f90.preplumed +21 -0
  433. plumed/_lib/lib/plumed/patches/qespresso-7.2.diff/PW/src/run_pwscf.f90 +569 -0
  434. plumed/_lib/lib/plumed/patches/qespresso-7.2.diff/PW/src/run_pwscf.f90.preplumed +560 -0
  435. plumed/_lib/lib/plumed/plumed-config +9 -0
  436. plumed/_lib/lib/plumed/plumed-mklib +9 -0
  437. plumed/_lib/lib/plumed/plumed-newcv +9 -0
  438. plumed/_lib/lib/plumed/plumed-partial_tempering +9 -0
  439. plumed/_lib/lib/plumed/plumed-patch +9 -0
  440. plumed/_lib/lib/plumed/plumed-runtime +0 -0
  441. plumed/_lib/lib/plumed/plumed-selector +9 -0
  442. plumed/_lib/lib/plumed/plumed-vim2html +9 -0
  443. plumed/_lib/lib/plumed/scripts/config.sh +126 -0
  444. plumed/_lib/lib/plumed/scripts/mklib.sh +175 -0
  445. plumed/_lib/lib/plumed/scripts/newcv.sh +26 -0
  446. plumed/_lib/lib/plumed/scripts/partial_tempering.sh +319 -0
  447. plumed/_lib/lib/plumed/scripts/patch.sh +4 -0
  448. plumed/_lib/lib/plumed/scripts/selector.sh +234 -0
  449. plumed/_lib/lib/plumed/scripts/vim2html.sh +190 -0
  450. plumed/_lib/lib/plumed/src/colvar/Template.cpp +116 -0
  451. plumed/_lib/lib/plumed/src/config/compile_options.sh +3 -0
  452. plumed/_lib/lib/plumed/src/config/config.txt +181 -0
  453. plumed/_lib/lib/plumed/src/lib/Plumed.cmake +6 -0
  454. plumed/_lib/lib/plumed/src/lib/Plumed.cmake.runtime +5 -0
  455. plumed/_lib/lib/plumed/src/lib/Plumed.cmake.shared +5 -0
  456. plumed/_lib/lib/plumed/src/lib/Plumed.cmake.static +3 -0
  457. plumed/_lib/lib/plumed/src/lib/Plumed.inc +6 -0
  458. plumed/_lib/lib/plumed/src/lib/Plumed.inc.runtime +5 -0
  459. plumed/_lib/lib/plumed/src/lib/Plumed.inc.shared +5 -0
  460. plumed/_lib/lib/plumed/src/lib/Plumed.inc.static +3 -0
  461. plumed/_lib/lib/plumed/vim/scripts.vim +6 -0
  462. plumed/_plumed_core.cpython-311-darwin.so +0 -0
  463. plumed/_plumed_core.cpython-312-darwin.so +0 -0
  464. plumed/_plumed_core.cpython-313-darwin.so +0 -0
  465. plumedCommunications.cpython-311-darwin.so +0 -0
  466. plumedCommunications.cpython-312-darwin.so +0 -0
  467. plumedCommunications.cpython-313-darwin.so +0 -0
  468. plumedCommunications.pyi +431 -0
@@ -0,0 +1,79 @@
1
+ /* +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
2
+ These files are semi-automatic translations by f2c from the original netlib LAPACK library.
3
+ The source has been modified to (mostly) use modern C formatting, and to get rid of
4
+ compiler warnings. Any errors in doing this should be blamed on the GROMACS developers, and
5
+ not the reference LAPACK implementation.
6
+
7
+ The reference LAPACK implementation is available from http://www.netlib.org/lapack
8
+
9
+ LAPACK does not come with a formal named "license", but a general statement saying:
10
+
11
+ "The reference LAPACK is a freely-available software package. It is available from netlib
12
+ via anonymous ftp and the World Wide Web. Thus, it can be included in commercial software
13
+ packages (and has been). We only ask that proper credit be given to the authors."
14
+
15
+ While the rest of GROMACS is LGPL, we think it's only fair to give you the same rights to
16
+ our modified LAPACK files as the original netlib versions, so do what you want with them.
17
+
18
+ However, be warned that we have only tested that they to the right thing in the cases used
19
+ in GROMACS (primarily full & sparse matrix diagonalization), so in most cases it is a much
20
+ better idea to use the full reference implementation.
21
+
22
+ Erik Lindahl, 2008-10-07.
23
+ +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ */
24
+ #ifndef __PLUMED_lapack_lapack_limits_h
25
+ #define __PLUMED_lapack_lapack_limits_h
26
+
27
+ #define DSTEBZ_BLOCKSIZE 1
28
+
29
+ #define DORGBR_BLOCKSIZE 32
30
+ #define DORGBR_MINBLOCKSIZE 2
31
+ #define DORGBR_CROSSOVER 128
32
+
33
+ #define DGEQRF_BLOCKSIZE 32
34
+ #define DGEQRF_MINBLOCKSIZE 2
35
+ #define DGEQRF_CROSSOVER 128
36
+
37
+ #define DORGQR_BLOCKSIZE 32
38
+ #define DORGQR_MINBLOCKSIZE 2
39
+ #define DORGQR_CROSSOVER 128
40
+
41
+ #define DORMLQ_BLOCKSIZE 32
42
+ #define DORMLQ_MINBLOCKSIZE 2
43
+ #define DORMLQ_CROSSOVER 128
44
+
45
+ #define DORMQL_BLOCKSIZE 32
46
+ #define DORMQL_MINBLOCKSIZE 2
47
+ #define DORMQL_CROSSOVER 128
48
+
49
+ #define DSYTRD_BLOCKSIZE 32
50
+ #define DSYTRD_MINBLOCKSIZE 2
51
+ #define DSYTRD_CROSSOVER 128
52
+
53
+ #define DGEBRD_BLOCKSIZE 32
54
+ #define DGEBRD_MINBLOCKSIZE 2
55
+ #define DGEBRD_CROSSOVER 128
56
+
57
+ #define DORMQR_BLOCKSIZE 32
58
+ #define DORMQR_MINBLOCKSIZE 2
59
+ #define DORMQR_CROSSOVER 128
60
+
61
+ #define DGELQF_BLOCKSIZE 32
62
+ #define DGELQF_MINBLOCKSIZE 2
63
+ #define DGELQF_CROSSOVER 128
64
+
65
+ #define DGETRF_BLOCKSIZE 64
66
+ #define DGETRF_MINBLOCKSIZE 2
67
+
68
+ #define DGETRI_BLOCKSIZE 64
69
+ #define DGETRI_MINBLOCKSIZE 2
70
+
71
+ #define DTRTRI_BLOCKSIZE 64
72
+
73
+ #define DBDSDC_SMALLSIZE 25
74
+
75
+ #define DBDSQR_MAXITR 6
76
+
77
+
78
+
79
+ #endif /* _LAPACK_LIMITS_H_ */
@@ -0,0 +1,50 @@
1
+ /* +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
2
+ These files are semi-automatic translations by f2c from the original netlib LAPACK library.
3
+ The source has been modified to (mostly) use modern C formatting, and to get rid of
4
+ compiler warnings. Any errors in doing this should be blamed on the GROMACS developers, and
5
+ not the reference LAPACK implementation.
6
+
7
+ The reference LAPACK implementation is available from http://www.netlib.org/lapack
8
+
9
+ LAPACK does not come with a formal named "license", but a general statement saying:
10
+
11
+ "The reference LAPACK is a freely-available software package. It is available from netlib
12
+ via anonymous ftp and the World Wide Web. Thus, it can be included in commercial software
13
+ packages (and has been). We only ask that proper credit be given to the authors."
14
+
15
+ While the rest of GROMACS is LGPL, we think it's only fair to give you the same rights to
16
+ our modified LAPACK files as the original netlib versions, so do what you want with them.
17
+
18
+ However, be warned that we have only tested that they to the right thing in the cases used
19
+ in GROMACS (primarily full & sparse matrix diagonalization), so in most cases it is a much
20
+ better idea to use the full reference implementation.
21
+
22
+ Erik Lindahl, 2008-10-07.
23
+ +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ */
24
+ #ifndef __PLUMED_lapack_real_h
25
+ #define __PLUMED_lapack_real_h
26
+ /*! \brief Double precision accuracy */
27
+ #define PLUMED_GMX_DOUBLE_EPS 2.2204460492503131e-16
28
+
29
+ /*! \brief Maximum double precision value - reduced 1 unit in last digit for MSVC */
30
+ #define PLUMED_GMX_DOUBLE_MAX 1.7976931348623157e+308
31
+
32
+ /*! \brief Minimum double precision value */
33
+ #define PLUMED_GMX_DOUBLE_MIN 2.2250738585072014e-308
34
+
35
+ /*! \brief Single precision accuracy */
36
+ #define PLUMED_GMX_FLOAT_EPS 1.19209290e-07F
37
+
38
+ /*! \brief Maximum single precision value - reduced 1 unit in last digit for MSVC */
39
+ #define PLUMED_GMX_FLOAT_MAX 3.40282346E+38F
40
+
41
+ /*! \brief Minimum single precision value */
42
+ #define PLUMED_GMX_FLOAT_MIN 1.175494351E-38F
43
+
44
+ #if defined(F77_NO_UNDERSCORE)
45
+ #define PLUMED_BLAS_F77_FUNC(lower,upper) lower
46
+ #else
47
+ #define PLUMED_BLAS_F77_FUNC(lower,upper) lower ## _
48
+ #endif
49
+
50
+ #endif
@@ -0,0 +1,164 @@
1
+ /* +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
2
+ * -------------------------------------------------------------------------- *
3
+ * Lepton *
4
+ * -------------------------------------------------------------------------- *
5
+ * This is part of the Lepton expression parser originating from *
6
+ * Simbios, the NIH National Center for Physics-Based Simulation of *
7
+ * Biological Structures at Stanford, funded under the NIH Roadmap for *
8
+ * Medical Research, grant U54 GM072970. See https://simtk.org. *
9
+ * *
10
+ * Portions copyright (c) 2013-2016 Stanford University and the Authors. *
11
+ * Authors: Peter Eastman *
12
+ * Contributors: *
13
+ * *
14
+ * Permission is hereby granted, free of charge, to any person obtaining a *
15
+ * copy of this software and associated documentation files (the "Software"), *
16
+ * to deal in the Software without restriction, including without limitation *
17
+ * the rights to use, copy, modify, merge, publish, distribute, sublicense, *
18
+ * and/or sell copies of the Software, and to permit persons to whom the *
19
+ * Software is furnished to do so, subject to the following conditions: *
20
+ * *
21
+ * The above copyright notice and this permission notice shall be included in *
22
+ * all copies or substantial portions of the Software. *
23
+ * *
24
+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR *
25
+ * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, *
26
+ * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL *
27
+ * THE AUTHORS, CONTRIBUTORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, *
28
+ * DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR *
29
+ * OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE *
30
+ * USE OR OTHER DEALINGS IN THE SOFTWARE. *
31
+ * -------------------------------------------------------------------------- *
32
+ +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ */
33
+ #ifndef __PLUMED_lepton_CompiledExpression_h
34
+ #define __PLUMED_lepton_CompiledExpression_h
35
+
36
+ /* -------------------------------------------------------------------------- *
37
+ * lepton *
38
+ * -------------------------------------------------------------------------- *
39
+ * This is part of the lepton expression parser originating from *
40
+ * Simbios, the NIH National Center for Physics-Based Simulation of *
41
+ * Biological Structures at Stanford, funded under the NIH Roadmap for *
42
+ * Medical Research, grant U54 GM072970. See https://simtk.org. *
43
+ * *
44
+ * Portions copyright (c) 2013-2019 Stanford University and the Authors. *
45
+ * Authors: Peter Eastman *
46
+ * Contributors: *
47
+ * *
48
+ * Permission is hereby granted, free of charge, to any person obtaining a *
49
+ * copy of this software and associated documentation files (the "Software"), *
50
+ * to deal in the Software without restriction, including without limitation *
51
+ * the rights to use, copy, modify, merge, publish, distribute, sublicense, *
52
+ * and/or sell copies of the Software, and to permit persons to whom the *
53
+ * Software is furnished to do so, subject to the following conditions: *
54
+ * *
55
+ * The above copyright notice and this permission notice shall be included in *
56
+ * all copies or substantial portions of the Software. *
57
+ * *
58
+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR *
59
+ * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, *
60
+ * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL *
61
+ * THE AUTHORS, CONTRIBUTORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, *
62
+ * DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR *
63
+ * OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE *
64
+ * USE OR OTHER DEALINGS IN THE SOFTWARE. *
65
+ * -------------------------------------------------------------------------- */
66
+
67
+ #include "ExpressionTreeNode.h"
68
+ #include "windowsIncludes.h"
69
+ #include <map>
70
+ #include <set>
71
+ #include <string>
72
+ #include <utility>
73
+ #include <vector>
74
+
75
+ namespace PLMD {
76
+ namespace lepton {
77
+
78
+ bool useAsmJit();
79
+
80
+ // Utility class.
81
+ // Implement an unique pointer to asmjit::JitRuntime.
82
+ // Needed to decouple asmjit header file from this one.
83
+ class AsmJitRuntimePtr {
84
+ /// if ASMJIT is not defined, just set the pointer to null
85
+ void* ptr=nullptr;
86
+ public:
87
+ /// constructor
88
+ AsmJitRuntimePtr();
89
+ /// destructor
90
+ ~AsmJitRuntimePtr();
91
+ /// deleted copy constructor
92
+ AsmJitRuntimePtr(const AsmJitRuntimePtr&) = delete;
93
+ /// deleted assignment
94
+ AsmJitRuntimePtr & operator=(const AsmJitRuntimePtr&) = delete;
95
+ /// get the pointer
96
+ void* get() {
97
+ return ptr;
98
+ }
99
+ };
100
+
101
+ class Operation;
102
+ class ParsedExpression;
103
+
104
+ /**
105
+ * A CompiledExpression is a highly optimized representation of an expression for cases when you want to evaluate
106
+ * it many times as quickly as possible. You should treat it as an opaque object; none of the internal representation
107
+ * is visible.
108
+ *
109
+ * A CompiledExpression is created by calling createCompiledExpression() on a ParsedExpression.
110
+ *
111
+ * WARNING: CompiledExpression is NOT thread safe. You should never access a CompiledExpression from two threads at
112
+ * the same time.
113
+ */
114
+
115
+ class LEPTON_EXPORT CompiledExpression {
116
+ public:
117
+ CompiledExpression();
118
+ CompiledExpression(const CompiledExpression& expression);
119
+ ~CompiledExpression();
120
+ CompiledExpression& operator=(const CompiledExpression& expression);
121
+ /**
122
+ * Get the names of all variables used by this expression.
123
+ */
124
+ const std::set<std::string>& getVariables() const;
125
+ /**
126
+ * Get a reference to the memory location where the value of a particular variable is stored. This can be used
127
+ * to set the value of the variable before calling evaluate().
128
+ */
129
+ double& getVariableReference(const std::string& name);
130
+ /**
131
+ * You can optionally specify the memory locations from which the values of variables should be read.
132
+ * This is useful, for example, when several expressions all use the same variable. You can then set
133
+ * the value of that variable in one place, and it will be seen by all of them.
134
+ */
135
+ void setVariableLocations(std::map<std::string, double*>& variableLocations);
136
+ /**
137
+ * Evaluate the expression. The values of all variables should have been set before calling this.
138
+ */
139
+ double evaluate() const;
140
+ private:
141
+ friend class ParsedExpression;
142
+ CompiledExpression(const ParsedExpression& expression);
143
+ void compileExpression(const ExpressionTreeNode& node, std::vector<std::pair<ExpressionTreeNode, int> >& temps);
144
+ int findTempIndex(const ExpressionTreeNode& node, std::vector<std::pair<ExpressionTreeNode, int> >& temps);
145
+ std::map<std::string, double*> variablePointers;
146
+ std::vector<std::pair<double*, double*> > variablesToCopy;
147
+ std::vector<std::vector<int> > arguments;
148
+ std::vector<int> target;
149
+ std::vector<Operation*> operation;
150
+ std::map<std::string, int> variableIndices;
151
+ std::set<std::string> variableNames;
152
+ mutable std::vector<double> workspace;
153
+ mutable std::vector<double> argValues;
154
+ std::map<std::string, double> dummyVariables;
155
+ void* jitCode;
156
+ void generateJitCode();
157
+ std::vector<double> constants;
158
+ AsmJitRuntimePtr runtimeptr;
159
+ };
160
+
161
+ } // namespace lepton
162
+ } // namespace PLMD
163
+
164
+ #endif /*LEPTON_COMPILED_EXPRESSION_H_*/
@@ -0,0 +1,143 @@
1
+ /* +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
2
+ * -------------------------------------------------------------------------- *
3
+ * Lepton *
4
+ * -------------------------------------------------------------------------- *
5
+ * This is part of the Lepton expression parser originating from *
6
+ * Simbios, the NIH National Center for Physics-Based Simulation of *
7
+ * Biological Structures at Stanford, funded under the NIH Roadmap for *
8
+ * Medical Research, grant U54 GM072970. See https://simtk.org. *
9
+ * *
10
+ * Portions copyright (c) 2013-2016 Stanford University and the Authors. *
11
+ * Authors: Peter Eastman *
12
+ * Contributors: *
13
+ * *
14
+ * Permission is hereby granted, free of charge, to any person obtaining a *
15
+ * copy of this software and associated documentation files (the "Software"), *
16
+ * to deal in the Software without restriction, including without limitation *
17
+ * the rights to use, copy, modify, merge, publish, distribute, sublicense, *
18
+ * and/or sell copies of the Software, and to permit persons to whom the *
19
+ * Software is furnished to do so, subject to the following conditions: *
20
+ * *
21
+ * The above copyright notice and this permission notice shall be included in *
22
+ * all copies or substantial portions of the Software. *
23
+ * *
24
+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR *
25
+ * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, *
26
+ * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL *
27
+ * THE AUTHORS, CONTRIBUTORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, *
28
+ * DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR *
29
+ * OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE *
30
+ * USE OR OTHER DEALINGS IN THE SOFTWARE. *
31
+ * -------------------------------------------------------------------------- *
32
+ +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ */
33
+ #ifndef __PLUMED_lepton_CustomFunction_h
34
+ #define __PLUMED_lepton_CustomFunction_h
35
+
36
+ /* -------------------------------------------------------------------------- *
37
+ * lepton *
38
+ * -------------------------------------------------------------------------- *
39
+ * This is part of the lepton expression parser originating from *
40
+ * Simbios, the NIH National Center for Physics-Based Simulation of *
41
+ * Biological Structures at Stanford, funded under the NIH Roadmap for *
42
+ * Medical Research, grant U54 GM072970. See https://simtk.org. *
43
+ * *
44
+ * Portions copyright (c) 2009 Stanford University and the Authors. *
45
+ * Authors: Peter Eastman *
46
+ * Contributors: *
47
+ * *
48
+ * Permission is hereby granted, free of charge, to any person obtaining a *
49
+ * copy of this software and associated documentation files (the "Software"), *
50
+ * to deal in the Software without restriction, including without limitation *
51
+ * the rights to use, copy, modify, merge, publish, distribute, sublicense, *
52
+ * and/or sell copies of the Software, and to permit persons to whom the *
53
+ * Software is furnished to do so, subject to the following conditions: *
54
+ * *
55
+ * The above copyright notice and this permission notice shall be included in *
56
+ * all copies or substantial portions of the Software. *
57
+ * *
58
+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR *
59
+ * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, *
60
+ * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL *
61
+ * THE AUTHORS, CONTRIBUTORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, *
62
+ * DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR *
63
+ * OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE *
64
+ * USE OR OTHER DEALINGS IN THE SOFTWARE. *
65
+ * -------------------------------------------------------------------------- */
66
+
67
+ #include "windowsIncludes.h"
68
+
69
+ namespace PLMD {
70
+ namespace lepton {
71
+
72
+ /**
73
+ * This class is the interface for defining your own function that may be included in expressions.
74
+ * To use it, create a concrete subclass that implements all of the virtual methods for each new function
75
+ * you want to define. Then when you call Parser::parse() to parse an expression, pass a map of
76
+ * function names to CustomFunction objects.
77
+ */
78
+
79
+ class LEPTON_EXPORT CustomFunction {
80
+ public:
81
+ virtual ~CustomFunction() {
82
+ }
83
+ /**
84
+ * Get the number of arguments this function expects.
85
+ */
86
+ virtual int getNumArguments() const = 0;
87
+ /**
88
+ * Evaluate the function.
89
+ *
90
+ * @param arguments the array of argument values
91
+ */
92
+ virtual double evaluate(const double* arguments) const = 0;
93
+ /**
94
+ * Evaluate a derivative of the function.
95
+ *
96
+ * @param arguments the array of argument values
97
+ * @param derivOrder an array specifying the number of times the function has been differentiated
98
+ * with respect to each of its arguments. For example, the array {0, 2} indicates
99
+ * a second derivative with respect to the second argument.
100
+ */
101
+ virtual double evaluateDerivative(const double* arguments, const int* derivOrder) const = 0;
102
+ /**
103
+ * Create a new duplicate of this object on the heap using the "new" operator.
104
+ */
105
+ virtual CustomFunction* clone() const = 0;
106
+ };
107
+
108
+ /**
109
+ * This class is an implementation of CustomFunction that does no computation. It just returns
110
+ * 0 for the value and derivatives. This is useful when using the parser to analyze expressions
111
+ * rather than to evaluate them. You can just create PlaceholderFunctions to represent any custom
112
+ * functions that may appear in expressions.
113
+ */
114
+
115
+ class LEPTON_EXPORT PlaceholderFunction : public CustomFunction {
116
+ public:
117
+ /**
118
+ * Create a Placeholder function.
119
+ *
120
+ * @param numArgs the number of arguments the function expects
121
+ */
122
+ PlaceholderFunction(int numArguments) : numArgs(numArguments) {
123
+ }
124
+ int getNumArguments() const {
125
+ return numArgs;
126
+ }
127
+ double evaluate(const double* arguments) const {
128
+ return 0.0;
129
+ }
130
+ double evaluateDerivative(const double* arguments, const int* derivOrder) const {
131
+ return 0.0;
132
+ }
133
+ CustomFunction* clone() const {
134
+ return new PlaceholderFunction(numArgs);
135
+ };
136
+ private:
137
+ int numArgs;
138
+ };
139
+
140
+ } // namespace lepton
141
+ } // namespace PLMD
142
+
143
+ #endif /*LEPTON_CUSTOM_FUNCTION_H_*/
@@ -0,0 +1,93 @@
1
+ /* +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
2
+ * -------------------------------------------------------------------------- *
3
+ * Lepton *
4
+ * -------------------------------------------------------------------------- *
5
+ * This is part of the Lepton expression parser originating from *
6
+ * Simbios, the NIH National Center for Physics-Based Simulation of *
7
+ * Biological Structures at Stanford, funded under the NIH Roadmap for *
8
+ * Medical Research, grant U54 GM072970. See https://simtk.org. *
9
+ * *
10
+ * Portions copyright (c) 2013-2016 Stanford University and the Authors. *
11
+ * Authors: Peter Eastman *
12
+ * Contributors: *
13
+ * *
14
+ * Permission is hereby granted, free of charge, to any person obtaining a *
15
+ * copy of this software and associated documentation files (the "Software"), *
16
+ * to deal in the Software without restriction, including without limitation *
17
+ * the rights to use, copy, modify, merge, publish, distribute, sublicense, *
18
+ * and/or sell copies of the Software, and to permit persons to whom the *
19
+ * Software is furnished to do so, subject to the following conditions: *
20
+ * *
21
+ * The above copyright notice and this permission notice shall be included in *
22
+ * all copies or substantial portions of the Software. *
23
+ * *
24
+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR *
25
+ * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, *
26
+ * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL *
27
+ * THE AUTHORS, CONTRIBUTORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, *
28
+ * DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR *
29
+ * OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE *
30
+ * USE OR OTHER DEALINGS IN THE SOFTWARE. *
31
+ * -------------------------------------------------------------------------- *
32
+ +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ */
33
+ #ifndef __PLUMED_lepton_Exception_h
34
+ #define __PLUMED_lepton_Exception_h
35
+
36
+ /* -------------------------------------------------------------------------- *
37
+ * lepton *
38
+ * -------------------------------------------------------------------------- *
39
+ * This is part of the lepton expression parser originating from *
40
+ * Simbios, the NIH National Center for Physics-Based Simulation of *
41
+ * Biological Structures at Stanford, funded under the NIH Roadmap for *
42
+ * Medical Research, grant U54 GM072970. See https://simtk.org. *
43
+ * *
44
+ * Portions copyright (c) 2009 Stanford University and the Authors. *
45
+ * Authors: Peter Eastman *
46
+ * Contributors: *
47
+ * *
48
+ * Permission is hereby granted, free of charge, to any person obtaining a *
49
+ * copy of this software and associated documentation files (the "Software"), *
50
+ * to deal in the Software without restriction, including without limitation *
51
+ * the rights to use, copy, modify, merge, publish, distribute, sublicense, *
52
+ * and/or sell copies of the Software, and to permit persons to whom the *
53
+ * Software is furnished to do so, subject to the following conditions: *
54
+ * *
55
+ * The above copyright notice and this permission notice shall be included in *
56
+ * all copies or substantial portions of the Software. *
57
+ * *
58
+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR *
59
+ * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, *
60
+ * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL *
61
+ * THE AUTHORS, CONTRIBUTORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, *
62
+ * DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR *
63
+ * OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE *
64
+ * USE OR OTHER DEALINGS IN THE SOFTWARE. *
65
+ * -------------------------------------------------------------------------- */
66
+
67
+ #include <exception>
68
+ #include <string>
69
+
70
+ namespace PLMD {
71
+ namespace lepton {
72
+
73
+ /**
74
+ * This class is used for all exceptions thrown by lepton.
75
+ */
76
+
77
+ class Exception : public std::exception {
78
+ public:
79
+ Exception(const std::string& msg) : message(msg) {
80
+ }
81
+ ~Exception() throw() {
82
+ }
83
+ const char* what() const throw() {
84
+ return message.c_str();
85
+ }
86
+ private:
87
+ std::string message;
88
+ };
89
+
90
+ } // namespace lepton
91
+ } // namespace PLMD
92
+
93
+ #endif /*LEPTON_EXCEPTION_H_*/
@@ -0,0 +1,137 @@
1
+ /* +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
2
+ * -------------------------------------------------------------------------- *
3
+ * Lepton *
4
+ * -------------------------------------------------------------------------- *
5
+ * This is part of the Lepton expression parser originating from *
6
+ * Simbios, the NIH National Center for Physics-Based Simulation of *
7
+ * Biological Structures at Stanford, funded under the NIH Roadmap for *
8
+ * Medical Research, grant U54 GM072970. See https://simtk.org. *
9
+ * *
10
+ * Portions copyright (c) 2013-2016 Stanford University and the Authors. *
11
+ * Authors: Peter Eastman *
12
+ * Contributors: *
13
+ * *
14
+ * Permission is hereby granted, free of charge, to any person obtaining a *
15
+ * copy of this software and associated documentation files (the "Software"), *
16
+ * to deal in the Software without restriction, including without limitation *
17
+ * the rights to use, copy, modify, merge, publish, distribute, sublicense, *
18
+ * and/or sell copies of the Software, and to permit persons to whom the *
19
+ * Software is furnished to do so, subject to the following conditions: *
20
+ * *
21
+ * The above copyright notice and this permission notice shall be included in *
22
+ * all copies or substantial portions of the Software. *
23
+ * *
24
+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR *
25
+ * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, *
26
+ * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL *
27
+ * THE AUTHORS, CONTRIBUTORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, *
28
+ * DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR *
29
+ * OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE *
30
+ * USE OR OTHER DEALINGS IN THE SOFTWARE. *
31
+ * -------------------------------------------------------------------------- *
32
+ +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ */
33
+ #ifndef __PLUMED_lepton_ExpressionProgram_h
34
+ #define __PLUMED_lepton_ExpressionProgram_h
35
+
36
+ /* -------------------------------------------------------------------------- *
37
+ * lepton *
38
+ * -------------------------------------------------------------------------- *
39
+ * This is part of the lepton expression parser originating from *
40
+ * Simbios, the NIH National Center for Physics-Based Simulation of *
41
+ * Biological Structures at Stanford, funded under the NIH Roadmap for *
42
+ * Medical Research, grant U54 GM072970. See https://simtk.org. *
43
+ * *
44
+ * Portions copyright (c) 2009-2018 Stanford University and the Authors. *
45
+ * Authors: Peter Eastman *
46
+ * Contributors: *
47
+ * *
48
+ * Permission is hereby granted, free of charge, to any person obtaining a *
49
+ * copy of this software and associated documentation files (the "Software"), *
50
+ * to deal in the Software without restriction, including without limitation *
51
+ * the rights to use, copy, modify, merge, publish, distribute, sublicense, *
52
+ * and/or sell copies of the Software, and to permit persons to whom the *
53
+ * Software is furnished to do so, subject to the following conditions: *
54
+ * *
55
+ * The above copyright notice and this permission notice shall be included in *
56
+ * all copies or substantial portions of the Software. *
57
+ * *
58
+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR *
59
+ * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, *
60
+ * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL *
61
+ * THE AUTHORS, CONTRIBUTORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, *
62
+ * DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR *
63
+ * OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE *
64
+ * USE OR OTHER DEALINGS IN THE SOFTWARE. *
65
+ * -------------------------------------------------------------------------- */
66
+
67
+ #include "ExpressionTreeNode.h"
68
+ #include "windowsIncludes.h"
69
+ #include <map>
70
+ #include <string>
71
+ #include <vector>
72
+
73
+ namespace PLMD {
74
+ namespace lepton {
75
+
76
+ class ParsedExpression;
77
+
78
+ /**
79
+ * An ExpressionProgram is a linear sequence of Operations for evaluating an expression. The evaluation
80
+ * is done with a stack. The arguments to each Operation are first taken off the stack in order, then it is
81
+ * evaluated and the result is pushed back onto the stack. At the end, the stack contains a single value,
82
+ * which is the value of the expression.
83
+ *
84
+ * An ExpressionProgram is created by calling createProgram() on a ParsedExpression.
85
+ */
86
+
87
+ class LEPTON_EXPORT ExpressionProgram {
88
+ public:
89
+ ExpressionProgram();
90
+ ExpressionProgram(const ExpressionProgram& program);
91
+ ~ExpressionProgram();
92
+ ExpressionProgram& operator=(const ExpressionProgram& program);
93
+ /**
94
+ * Get the number of Operations that make up this program.
95
+ */
96
+ int getNumOperations() const;
97
+ /**
98
+ * Get an Operation in this program.
99
+ */
100
+ const Operation& getOperation(int index) const;
101
+ /**
102
+ * Change an Operation in this program.
103
+ *
104
+ * The Operation must have been allocated on the heap with the "new" operator.
105
+ * The ExpressionProgram assumes ownership of it and will delete it when it
106
+ * is no longer needed.
107
+ */
108
+ void setOperation(int index, Operation* operation);
109
+ /**
110
+ * Get the size of the stack needed to execute this program. This is the largest number of elements present
111
+ * on the stack at any point during evaluation.
112
+ */
113
+ int getStackSize() const;
114
+ /**
115
+ * Evaluate the expression. If the expression involves any variables, this method will throw an exception.
116
+ */
117
+ double evaluate() const;
118
+ /**
119
+ * Evaluate the expression.
120
+ *
121
+ * @param variables a map specifying the values of all variables that appear in the expression. If any
122
+ * variable appears in the expression but is not included in this map, an exception
123
+ * will be thrown.
124
+ */
125
+ double evaluate(const std::map<std::string, double>& variables) const;
126
+ private:
127
+ friend class ParsedExpression;
128
+ ExpressionProgram(const ParsedExpression& expression);
129
+ void buildProgram(const ExpressionTreeNode& node);
130
+ std::vector<Operation*> operations;
131
+ int maxArgs, stackSize;
132
+ };
133
+
134
+ } // namespace lepton
135
+ } // namespace PLMD
136
+
137
+ #endif /*LEPTON_EXPRESSION_PROGRAM_H_*/