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.
- hillclimber/__init__.py +41 -0
- hillclimber/actions.py +53 -0
- hillclimber/analysis.py +590 -0
- hillclimber/biases.py +293 -0
- hillclimber/calc.py +22 -0
- hillclimber/cvs.py +1070 -0
- hillclimber/interfaces.py +133 -0
- hillclimber/metadynamics.py +416 -0
- hillclimber/nodes.py +6 -0
- hillclimber/opes.py +359 -0
- hillclimber/pycv.py +362 -0
- hillclimber/selectors.py +230 -0
- hillclimber/virtual_atoms.py +341 -0
- hillclimber-0.1.6.dist-info/METADATA +325 -0
- hillclimber-0.1.6.dist-info/RECORD +468 -0
- hillclimber-0.1.6.dist-info/WHEEL +6 -0
- hillclimber-0.1.6.dist-info/entry_points.txt +8 -0
- hillclimber-0.1.6.dist-info/licenses/LICENSE +165 -0
- plumed/__init__.py +104 -0
- plumed/_lib/bin/plumed +0 -0
- plumed/_lib/bin/plumed-config +9 -0
- plumed/_lib/bin/plumed-patch +9 -0
- plumed/_lib/include/plumed/adjmat/AdjacencyMatrixBase.h +659 -0
- plumed/_lib/include/plumed/adjmat/ContactMatrix.h +59 -0
- plumed/_lib/include/plumed/asmjit/arch.h +228 -0
- plumed/_lib/include/plumed/asmjit/arm.h +43 -0
- plumed/_lib/include/plumed/asmjit/asmjit.h +69 -0
- plumed/_lib/include/plumed/asmjit/asmjit_apibegin.h +143 -0
- plumed/_lib/include/plumed/asmjit/asmjit_apiend.h +93 -0
- plumed/_lib/include/plumed/asmjit/asmjit_build.h +971 -0
- plumed/_lib/include/plumed/asmjit/assembler.h +183 -0
- plumed/_lib/include/plumed/asmjit/base.h +56 -0
- plumed/_lib/include/plumed/asmjit/codebuilder.h +944 -0
- plumed/_lib/include/plumed/asmjit/codecompiler.h +767 -0
- plumed/_lib/include/plumed/asmjit/codeemitter.h +528 -0
- plumed/_lib/include/plumed/asmjit/codeholder.h +777 -0
- plumed/_lib/include/plumed/asmjit/constpool.h +286 -0
- plumed/_lib/include/plumed/asmjit/cpuinfo.h +402 -0
- plumed/_lib/include/plumed/asmjit/func.h +1327 -0
- plumed/_lib/include/plumed/asmjit/globals.h +370 -0
- plumed/_lib/include/plumed/asmjit/inst.h +137 -0
- plumed/_lib/include/plumed/asmjit/logging.h +317 -0
- plumed/_lib/include/plumed/asmjit/misc_p.h +103 -0
- plumed/_lib/include/plumed/asmjit/moved_string.h +318 -0
- plumed/_lib/include/plumed/asmjit/operand.h +1599 -0
- plumed/_lib/include/plumed/asmjit/osutils.h +207 -0
- plumed/_lib/include/plumed/asmjit/regalloc_p.h +597 -0
- plumed/_lib/include/plumed/asmjit/runtime.h +227 -0
- plumed/_lib/include/plumed/asmjit/simdtypes.h +1104 -0
- plumed/_lib/include/plumed/asmjit/utils.h +1387 -0
- plumed/_lib/include/plumed/asmjit/vmem.h +183 -0
- plumed/_lib/include/plumed/asmjit/x86.h +45 -0
- plumed/_lib/include/plumed/asmjit/x86assembler.h +125 -0
- plumed/_lib/include/plumed/asmjit/x86builder.h +117 -0
- plumed/_lib/include/plumed/asmjit/x86compiler.h +322 -0
- plumed/_lib/include/plumed/asmjit/x86emitter.h +5149 -0
- plumed/_lib/include/plumed/asmjit/x86globals.h +535 -0
- plumed/_lib/include/plumed/asmjit/x86inst.h +2547 -0
- plumed/_lib/include/plumed/asmjit/x86instimpl_p.h +74 -0
- plumed/_lib/include/plumed/asmjit/x86internal_p.h +108 -0
- plumed/_lib/include/plumed/asmjit/x86logging_p.h +92 -0
- plumed/_lib/include/plumed/asmjit/x86misc.h +417 -0
- plumed/_lib/include/plumed/asmjit/x86operand.h +1133 -0
- plumed/_lib/include/plumed/asmjit/x86regalloc_p.h +734 -0
- plumed/_lib/include/plumed/asmjit/zone.h +1157 -0
- plumed/_lib/include/plumed/bias/Bias.h +82 -0
- plumed/_lib/include/plumed/bias/ReweightBase.h +58 -0
- plumed/_lib/include/plumed/blas/blas.h +253 -0
- plumed/_lib/include/plumed/blas/def_external.h +61 -0
- plumed/_lib/include/plumed/blas/def_internal.h +97 -0
- plumed/_lib/include/plumed/blas/real.h +49 -0
- plumed/_lib/include/plumed/cltools/CLTool.h +32 -0
- plumed/_lib/include/plumed/clusters/ClusteringBase.h +70 -0
- plumed/_lib/include/plumed/colvar/Colvar.h +32 -0
- plumed/_lib/include/plumed/colvar/ColvarInput.h +68 -0
- plumed/_lib/include/plumed/colvar/ColvarShortcut.h +81 -0
- plumed/_lib/include/plumed/colvar/CoordinationBase.h +52 -0
- plumed/_lib/include/plumed/colvar/MultiColvarTemplate.h +333 -0
- plumed/_lib/include/plumed/colvar/PathMSDBase.h +101 -0
- plumed/_lib/include/plumed/colvar/RMSDVector.h +78 -0
- plumed/_lib/include/plumed/config/Config.h +118 -0
- plumed/_lib/include/plumed/config/version.h +9 -0
- plumed/_lib/include/plumed/contour/ContourFindingObject.h +87 -0
- plumed/_lib/include/plumed/contour/DistanceFromContourBase.h +82 -0
- plumed/_lib/include/plumed/contour/FindContour.h +67 -0
- plumed/_lib/include/plumed/core/Action.h +540 -0
- plumed/_lib/include/plumed/core/ActionAnyorder.h +48 -0
- plumed/_lib/include/plumed/core/ActionAtomistic.h +343 -0
- plumed/_lib/include/plumed/core/ActionForInterface.h +99 -0
- plumed/_lib/include/plumed/core/ActionPilot.h +57 -0
- plumed/_lib/include/plumed/core/ActionRegister.h +124 -0
- plumed/_lib/include/plumed/core/ActionSet.h +163 -0
- plumed/_lib/include/plumed/core/ActionSetup.h +48 -0
- plumed/_lib/include/plumed/core/ActionShortcut.h +73 -0
- plumed/_lib/include/plumed/core/ActionToGetData.h +59 -0
- plumed/_lib/include/plumed/core/ActionToPutData.h +101 -0
- plumed/_lib/include/plumed/core/ActionWithArguments.h +140 -0
- plumed/_lib/include/plumed/core/ActionWithMatrix.h +87 -0
- plumed/_lib/include/plumed/core/ActionWithValue.h +258 -0
- plumed/_lib/include/plumed/core/ActionWithVector.h +94 -0
- plumed/_lib/include/plumed/core/ActionWithVirtualAtom.h +123 -0
- plumed/_lib/include/plumed/core/CLTool.h +177 -0
- plumed/_lib/include/plumed/core/CLToolMain.h +102 -0
- plumed/_lib/include/plumed/core/CLToolRegister.h +108 -0
- plumed/_lib/include/plumed/core/Colvar.h +115 -0
- plumed/_lib/include/plumed/core/DataPassingObject.h +94 -0
- plumed/_lib/include/plumed/core/DataPassingTools.h +54 -0
- plumed/_lib/include/plumed/core/DomainDecomposition.h +120 -0
- plumed/_lib/include/plumed/core/ExchangePatterns.h +47 -0
- plumed/_lib/include/plumed/core/FlexibleBin.h +63 -0
- plumed/_lib/include/plumed/core/GREX.h +61 -0
- plumed/_lib/include/plumed/core/GenericMolInfo.h +89 -0
- plumed/_lib/include/plumed/core/Group.h +41 -0
- plumed/_lib/include/plumed/core/ModuleMap.h +30 -0
- plumed/_lib/include/plumed/core/ParallelTaskManager.h +1023 -0
- plumed/_lib/include/plumed/core/PbcAction.h +61 -0
- plumed/_lib/include/plumed/core/PlumedMain.h +632 -0
- plumed/_lib/include/plumed/core/PlumedMainInitializer.h +118 -0
- plumed/_lib/include/plumed/core/RegisterBase.h +340 -0
- plumed/_lib/include/plumed/core/TargetDist.h +48 -0
- plumed/_lib/include/plumed/core/Value.h +547 -0
- plumed/_lib/include/plumed/core/WithCmd.h +93 -0
- plumed/_lib/include/plumed/dimred/SMACOF.h +55 -0
- plumed/_lib/include/plumed/drr/DRR.h +383 -0
- plumed/_lib/include/plumed/drr/colvar_UIestimator.h +777 -0
- plumed/_lib/include/plumed/fisst/legendre_rule_fast.h +44 -0
- plumed/_lib/include/plumed/function/Custom.h +54 -0
- plumed/_lib/include/plumed/function/Function.h +85 -0
- plumed/_lib/include/plumed/function/FunctionOfMatrix.h +368 -0
- plumed/_lib/include/plumed/function/FunctionOfScalar.h +135 -0
- plumed/_lib/include/plumed/function/FunctionOfVector.h +296 -0
- plumed/_lib/include/plumed/function/FunctionSetup.h +180 -0
- plumed/_lib/include/plumed/function/FunctionShortcut.h +130 -0
- plumed/_lib/include/plumed/function/FunctionWithSingleArgument.h +165 -0
- plumed/_lib/include/plumed/gridtools/ActionWithGrid.h +43 -0
- plumed/_lib/include/plumed/gridtools/EvaluateGridFunction.h +99 -0
- plumed/_lib/include/plumed/gridtools/FunctionOfGrid.h +295 -0
- plumed/_lib/include/plumed/gridtools/GridCoordinatesObject.h +179 -0
- plumed/_lib/include/plumed/gridtools/GridSearch.h +135 -0
- plumed/_lib/include/plumed/gridtools/Interpolator.h +45 -0
- plumed/_lib/include/plumed/gridtools/KDE.h +455 -0
- plumed/_lib/include/plumed/gridtools/RDF.h +40 -0
- plumed/_lib/include/plumed/gridtools/SumOfKernels.h +219 -0
- plumed/_lib/include/plumed/isdb/MetainferenceBase.h +398 -0
- plumed/_lib/include/plumed/lapack/def_external.h +207 -0
- plumed/_lib/include/plumed/lapack/def_internal.h +388 -0
- plumed/_lib/include/plumed/lapack/lapack.h +899 -0
- plumed/_lib/include/plumed/lapack/lapack_limits.h +79 -0
- plumed/_lib/include/plumed/lapack/real.h +50 -0
- plumed/_lib/include/plumed/lepton/CompiledExpression.h +164 -0
- plumed/_lib/include/plumed/lepton/CustomFunction.h +143 -0
- plumed/_lib/include/plumed/lepton/Exception.h +93 -0
- plumed/_lib/include/plumed/lepton/ExpressionProgram.h +137 -0
- plumed/_lib/include/plumed/lepton/ExpressionTreeNode.h +145 -0
- plumed/_lib/include/plumed/lepton/Lepton.h +85 -0
- plumed/_lib/include/plumed/lepton/MSVC_erfc.h +123 -0
- plumed/_lib/include/plumed/lepton/Operation.h +1302 -0
- plumed/_lib/include/plumed/lepton/ParsedExpression.h +165 -0
- plumed/_lib/include/plumed/lepton/Parser.h +111 -0
- plumed/_lib/include/plumed/lepton/windowsIncludes.h +73 -0
- plumed/_lib/include/plumed/mapping/Path.h +44 -0
- plumed/_lib/include/plumed/mapping/PathProjectionCalculator.h +57 -0
- plumed/_lib/include/plumed/matrixtools/MatrixOperationBase.h +54 -0
- plumed/_lib/include/plumed/matrixtools/MatrixTimesMatrix.h +309 -0
- plumed/_lib/include/plumed/matrixtools/MatrixTimesVectorBase.h +365 -0
- plumed/_lib/include/plumed/matrixtools/OuterProduct.h +238 -0
- plumed/_lib/include/plumed/maze/Core.h +65 -0
- plumed/_lib/include/plumed/maze/Loss.h +86 -0
- plumed/_lib/include/plumed/maze/Member.h +66 -0
- plumed/_lib/include/plumed/maze/Memetic.h +799 -0
- plumed/_lib/include/plumed/maze/Optimizer.h +357 -0
- plumed/_lib/include/plumed/maze/Random_MT.h +156 -0
- plumed/_lib/include/plumed/maze/Tools.h +183 -0
- plumed/_lib/include/plumed/metatomic/vesin.h +188 -0
- plumed/_lib/include/plumed/molfile/Gromacs.h +2013 -0
- plumed/_lib/include/plumed/molfile/endianswap.h +217 -0
- plumed/_lib/include/plumed/molfile/fastio.h +683 -0
- plumed/_lib/include/plumed/molfile/largefiles.h +78 -0
- plumed/_lib/include/plumed/molfile/libmolfile_plugin.h +77 -0
- plumed/_lib/include/plumed/molfile/molfile_plugin.h +1034 -0
- plumed/_lib/include/plumed/molfile/periodic_table.h +248 -0
- plumed/_lib/include/plumed/molfile/readpdb.h +447 -0
- plumed/_lib/include/plumed/molfile/vmdplugin.h +236 -0
- plumed/_lib/include/plumed/multicolvar/MultiColvarShortcuts.h +45 -0
- plumed/_lib/include/plumed/opes/ExpansionCVs.h +79 -0
- plumed/_lib/include/plumed/sasa/Sasa.h +32 -0
- plumed/_lib/include/plumed/secondarystructure/SecondaryStructureBase.h +372 -0
- plumed/_lib/include/plumed/setup/ActionSetup.h +25 -0
- plumed/_lib/include/plumed/small_vector/small_vector.h +6114 -0
- plumed/_lib/include/plumed/symfunc/CoordinationNumbers.h +41 -0
- plumed/_lib/include/plumed/tools/Angle.h +52 -0
- plumed/_lib/include/plumed/tools/AtomDistribution.h +138 -0
- plumed/_lib/include/plumed/tools/AtomNumber.h +152 -0
- plumed/_lib/include/plumed/tools/BiasRepresentation.h +106 -0
- plumed/_lib/include/plumed/tools/BitmaskEnum.h +167 -0
- plumed/_lib/include/plumed/tools/Brent1DRootSearch.h +159 -0
- plumed/_lib/include/plumed/tools/CheckInRange.h +44 -0
- plumed/_lib/include/plumed/tools/Citations.h +74 -0
- plumed/_lib/include/plumed/tools/ColvarOutput.h +118 -0
- plumed/_lib/include/plumed/tools/Communicator.h +316 -0
- plumed/_lib/include/plumed/tools/ConjugateGradient.h +80 -0
- plumed/_lib/include/plumed/tools/DLLoader.h +79 -0
- plumed/_lib/include/plumed/tools/ERMSD.h +73 -0
- plumed/_lib/include/plumed/tools/Exception.h +406 -0
- plumed/_lib/include/plumed/tools/File.h +28 -0
- plumed/_lib/include/plumed/tools/FileBase.h +153 -0
- plumed/_lib/include/plumed/tools/FileTools.h +37 -0
- plumed/_lib/include/plumed/tools/ForwardDecl.h +54 -0
- plumed/_lib/include/plumed/tools/Grid.h +638 -0
- plumed/_lib/include/plumed/tools/HistogramBead.h +136 -0
- plumed/_lib/include/plumed/tools/IFile.h +117 -0
- plumed/_lib/include/plumed/tools/KernelFunctions.h +113 -0
- plumed/_lib/include/plumed/tools/Keywords.h +380 -0
- plumed/_lib/include/plumed/tools/LatticeReduction.h +66 -0
- plumed/_lib/include/plumed/tools/LeptonCall.h +64 -0
- plumed/_lib/include/plumed/tools/LinkCells.h +126 -0
- plumed/_lib/include/plumed/tools/Log.h +41 -0
- plumed/_lib/include/plumed/tools/LoopUnroller.h +163 -0
- plumed/_lib/include/plumed/tools/Matrix.h +721 -0
- plumed/_lib/include/plumed/tools/MatrixSquareBracketsAccess.h +138 -0
- plumed/_lib/include/plumed/tools/MergeVectorTools.h +153 -0
- plumed/_lib/include/plumed/tools/Minimise1DBrent.h +244 -0
- plumed/_lib/include/plumed/tools/MinimiseBase.h +120 -0
- plumed/_lib/include/plumed/tools/MolDataClass.h +51 -0
- plumed/_lib/include/plumed/tools/NeighborList.h +112 -0
- plumed/_lib/include/plumed/tools/OFile.h +286 -0
- plumed/_lib/include/plumed/tools/OpenACC.h +180 -0
- plumed/_lib/include/plumed/tools/OpenMP.h +75 -0
- plumed/_lib/include/plumed/tools/PDB.h +154 -0
- plumed/_lib/include/plumed/tools/Pbc.h +139 -0
- plumed/_lib/include/plumed/tools/PlumedHandle.h +105 -0
- plumed/_lib/include/plumed/tools/RMSD.h +493 -0
- plumed/_lib/include/plumed/tools/Random.h +80 -0
- plumed/_lib/include/plumed/tools/RootFindingBase.h +79 -0
- plumed/_lib/include/plumed/tools/Stopwatch.h +475 -0
- plumed/_lib/include/plumed/tools/Subprocess.h +142 -0
- plumed/_lib/include/plumed/tools/SwitchingFunction.h +208 -0
- plumed/_lib/include/plumed/tools/Tensor.h +724 -0
- plumed/_lib/include/plumed/tools/TokenizedLine.h +123 -0
- plumed/_lib/include/plumed/tools/Tools.h +638 -0
- plumed/_lib/include/plumed/tools/Torsion.h +55 -0
- plumed/_lib/include/plumed/tools/TrajectoryParser.h +118 -0
- plumed/_lib/include/plumed/tools/Tree.h +61 -0
- plumed/_lib/include/plumed/tools/TypesafePtr.h +463 -0
- plumed/_lib/include/plumed/tools/Units.h +167 -0
- plumed/_lib/include/plumed/tools/Vector.h +433 -0
- plumed/_lib/include/plumed/tools/View.h +296 -0
- plumed/_lib/include/plumed/tools/View2D.h +100 -0
- plumed/_lib/include/plumed/tools/h36.h +39 -0
- plumed/_lib/include/plumed/vatom/ActionWithVirtualAtom.h +32 -0
- plumed/_lib/include/plumed/ves/BasisFunctions.h +380 -0
- plumed/_lib/include/plumed/ves/CoeffsBase.h +310 -0
- plumed/_lib/include/plumed/ves/CoeffsMatrix.h +220 -0
- plumed/_lib/include/plumed/ves/CoeffsVector.h +251 -0
- plumed/_lib/include/plumed/ves/FermiSwitchingFunction.h +74 -0
- plumed/_lib/include/plumed/ves/GridIntegrationWeights.h +50 -0
- plumed/_lib/include/plumed/ves/GridLinearInterpolation.h +81 -0
- plumed/_lib/include/plumed/ves/GridProjWeights.h +61 -0
- plumed/_lib/include/plumed/ves/LinearBasisSetExpansion.h +303 -0
- plumed/_lib/include/plumed/ves/Optimizer.h +444 -0
- plumed/_lib/include/plumed/ves/TargetDistModifer.h +53 -0
- plumed/_lib/include/plumed/ves/TargetDistribution.h +266 -0
- plumed/_lib/include/plumed/ves/VesBias.h +545 -0
- plumed/_lib/include/plumed/ves/VesTools.h +142 -0
- plumed/_lib/include/plumed/ves/WaveletGrid.h +75 -0
- plumed/_lib/include/plumed/volumes/ActionVolume.h +268 -0
- plumed/_lib/include/plumed/volumes/VolumeShortcut.h +147 -0
- plumed/_lib/include/plumed/wrapper/Plumed.h +5025 -0
- plumed/_lib/include/plumed/xdrfile/xdrfile.h +663 -0
- plumed/_lib/include/plumed/xdrfile/xdrfile_trr.h +89 -0
- plumed/_lib/include/plumed/xdrfile/xdrfile_xtc.h +90 -0
- plumed/_lib/lib/PythonCVInterface.dylib +0 -0
- plumed/_lib/lib/libplumed.dylib +0 -0
- plumed/_lib/lib/libplumedKernel.dylib +0 -0
- plumed/_lib/lib/libplumedWrapper.a +0 -0
- plumed/_lib/lib/pkgconfig/plumed.pc +13 -0
- plumed/_lib/lib/pkgconfig/plumedInternals.pc +13 -0
- plumed/_lib/lib/pkgconfig/plumedWrapper.pc +13 -0
- plumed/_lib/lib/plumed/fortran/plumed.f90 +879 -0
- plumed/_lib/lib/plumed/fortran/plumed_f08.f90 +2625 -0
- plumed/_lib/lib/plumed/modulefile +69 -0
- plumed/_lib/lib/plumed/patches/gromacs-2022.5.config +43 -0
- plumed/_lib/lib/plumed/patches/gromacs-2022.5.diff/src/gromacs/CMakeLists.txt +543 -0
- plumed/_lib/lib/plumed/patches/gromacs-2022.5.diff/src/gromacs/CMakeLists.txt.preplumed +540 -0
- plumed/_lib/lib/plumed/patches/gromacs-2022.5.diff/src/gromacs/mdlib/expanded.cpp +1628 -0
- plumed/_lib/lib/plumed/patches/gromacs-2022.5.diff/src/gromacs/mdlib/expanded.cpp.preplumed +1590 -0
- plumed/_lib/lib/plumed/patches/gromacs-2022.5.diff/src/gromacs/mdlib/expanded.h +103 -0
- plumed/_lib/lib/plumed/patches/gromacs-2022.5.diff/src/gromacs/mdlib/expanded.h.preplumed +99 -0
- plumed/_lib/lib/plumed/patches/gromacs-2022.5.diff/src/gromacs/mdlib/sim_util.cpp +2527 -0
- plumed/_lib/lib/plumed/patches/gromacs-2022.5.diff/src/gromacs/mdlib/sim_util.cpp.preplumed +2513 -0
- plumed/_lib/lib/plumed/patches/gromacs-2022.5.diff/src/gromacs/mdrun/legacymdrunoptions.cpp +208 -0
- plumed/_lib/lib/plumed/patches/gromacs-2022.5.diff/src/gromacs/mdrun/legacymdrunoptions.cpp.preplumed +175 -0
- plumed/_lib/lib/plumed/patches/gromacs-2022.5.diff/src/gromacs/mdrun/legacymdrunoptions.h +408 -0
- plumed/_lib/lib/plumed/patches/gromacs-2022.5.diff/src/gromacs/mdrun/legacymdrunoptions.h.preplumed +394 -0
- plumed/_lib/lib/plumed/patches/gromacs-2022.5.diff/src/gromacs/mdrun/md.cpp +2348 -0
- plumed/_lib/lib/plumed/patches/gromacs-2022.5.diff/src/gromacs/mdrun/md.cpp.preplumed +2091 -0
- plumed/_lib/lib/plumed/patches/gromacs-2022.5.diff/src/gromacs/mdrun/minimize.cpp +3573 -0
- plumed/_lib/lib/plumed/patches/gromacs-2022.5.diff/src/gromacs/mdrun/minimize.cpp.preplumed +3495 -0
- plumed/_lib/lib/plumed/patches/gromacs-2022.5.diff/src/gromacs/mdrun/replicaexchange.cpp +1506 -0
- plumed/_lib/lib/plumed/patches/gromacs-2022.5.diff/src/gromacs/mdrun/replicaexchange.cpp.preplumed +1402 -0
- plumed/_lib/lib/plumed/patches/gromacs-2022.5.diff/src/gromacs/mdrun/replicaexchange.h +114 -0
- plumed/_lib/lib/plumed/patches/gromacs-2022.5.diff/src/gromacs/mdrun/replicaexchange.h.preplumed +106 -0
- plumed/_lib/lib/plumed/patches/gromacs-2022.5.diff/src/gromacs/mdrun/rerun.cpp +997 -0
- plumed/_lib/lib/plumed/patches/gromacs-2022.5.diff/src/gromacs/mdrun/rerun.cpp.preplumed +906 -0
- plumed/_lib/lib/plumed/patches/gromacs-2022.5.diff/src/gromacs/mdrun/runner.cpp +2780 -0
- plumed/_lib/lib/plumed/patches/gromacs-2022.5.diff/src/gromacs/mdrun/runner.cpp.preplumed +2738 -0
- plumed/_lib/lib/plumed/patches/gromacs-2022.5.diff/src/gromacs/modularsimulator/expandedensembleelement.cpp +224 -0
- plumed/_lib/lib/plumed/patches/gromacs-2022.5.diff/src/gromacs/modularsimulator/expandedensembleelement.cpp.preplumed +222 -0
- plumed/_lib/lib/plumed/patches/gromacs-2023.5.config +43 -0
- plumed/_lib/lib/plumed/patches/gromacs-2023.5.diff/src/gromacs/CMakeLists.txt +549 -0
- plumed/_lib/lib/plumed/patches/gromacs-2023.5.diff/src/gromacs/CMakeLists.txt.preplumed +546 -0
- plumed/_lib/lib/plumed/patches/gromacs-2023.5.diff/src/gromacs/mdlib/expanded.cpp +1632 -0
- plumed/_lib/lib/plumed/patches/gromacs-2023.5.diff/src/gromacs/mdlib/expanded.cpp.preplumed +1594 -0
- plumed/_lib/lib/plumed/patches/gromacs-2023.5.diff/src/gromacs/mdlib/expanded.h +104 -0
- plumed/_lib/lib/plumed/patches/gromacs-2023.5.diff/src/gromacs/mdlib/expanded.h.preplumed +100 -0
- plumed/_lib/lib/plumed/patches/gromacs-2023.5.diff/src/gromacs/mdlib/sim_util.cpp +2624 -0
- plumed/_lib/lib/plumed/patches/gromacs-2023.5.diff/src/gromacs/mdlib/sim_util.cpp.preplumed +2610 -0
- plumed/_lib/lib/plumed/patches/gromacs-2023.5.diff/src/gromacs/mdrun/legacymdrunoptions.cpp +208 -0
- plumed/_lib/lib/plumed/patches/gromacs-2023.5.diff/src/gromacs/mdrun/legacymdrunoptions.cpp.preplumed +175 -0
- plumed/_lib/lib/plumed/patches/gromacs-2023.5.diff/src/gromacs/mdrun/legacymdrunoptions.h +409 -0
- plumed/_lib/lib/plumed/patches/gromacs-2023.5.diff/src/gromacs/mdrun/legacymdrunoptions.h.preplumed +395 -0
- plumed/_lib/lib/plumed/patches/gromacs-2023.5.diff/src/gromacs/mdrun/md.cpp +2419 -0
- plumed/_lib/lib/plumed/patches/gromacs-2023.5.diff/src/gromacs/mdrun/md.cpp.preplumed +2164 -0
- plumed/_lib/lib/plumed/patches/gromacs-2023.5.diff/src/gromacs/mdrun/minimize.cpp +3546 -0
- plumed/_lib/lib/plumed/patches/gromacs-2023.5.diff/src/gromacs/mdrun/minimize.cpp.preplumed +3468 -0
- plumed/_lib/lib/plumed/patches/gromacs-2023.5.diff/src/gromacs/mdrun/replicaexchange.cpp +1513 -0
- plumed/_lib/lib/plumed/patches/gromacs-2023.5.diff/src/gromacs/mdrun/replicaexchange.cpp.preplumed +1409 -0
- plumed/_lib/lib/plumed/patches/gromacs-2023.5.diff/src/gromacs/mdrun/replicaexchange.h +114 -0
- plumed/_lib/lib/plumed/patches/gromacs-2023.5.diff/src/gromacs/mdrun/replicaexchange.h.preplumed +106 -0
- plumed/_lib/lib/plumed/patches/gromacs-2023.5.diff/src/gromacs/mdrun/rerun.cpp +991 -0
- plumed/_lib/lib/plumed/patches/gromacs-2023.5.diff/src/gromacs/mdrun/rerun.cpp.preplumed +900 -0
- plumed/_lib/lib/plumed/patches/gromacs-2023.5.diff/src/gromacs/mdrun/runner.cpp +2895 -0
- plumed/_lib/lib/plumed/patches/gromacs-2023.5.diff/src/gromacs/mdrun/runner.cpp.preplumed +2849 -0
- plumed/_lib/lib/plumed/patches/gromacs-2023.5.diff/src/gromacs/modularsimulator/expandedensembleelement.cpp +224 -0
- plumed/_lib/lib/plumed/patches/gromacs-2023.5.diff/src/gromacs/modularsimulator/expandedensembleelement.cpp.preplumed +222 -0
- plumed/_lib/lib/plumed/patches/gromacs-2023.5.diff/src/gromacs/taskassignment/decidegpuusage.cpp +886 -0
- plumed/_lib/lib/plumed/patches/gromacs-2023.5.diff/src/gromacs/taskassignment/decidegpuusage.cpp.preplumed +880 -0
- plumed/_lib/lib/plumed/patches/gromacs-2023.5.diff/src/gromacs/taskassignment/include/gromacs/taskassignment/decidegpuusage.h +347 -0
- plumed/_lib/lib/plumed/patches/gromacs-2023.5.diff/src/gromacs/taskassignment/include/gromacs/taskassignment/decidegpuusage.h.preplumed +345 -0
- plumed/_lib/lib/plumed/patches/gromacs-2024.3.config +43 -0
- plumed/_lib/lib/plumed/patches/gromacs-2024.3.diff/src/gromacs/CMakeLists.txt +575 -0
- plumed/_lib/lib/plumed/patches/gromacs-2024.3.diff/src/gromacs/CMakeLists.txt.preplumed +572 -0
- plumed/_lib/lib/plumed/patches/gromacs-2024.3.diff/src/gromacs/mdlib/expanded.cpp +1632 -0
- plumed/_lib/lib/plumed/patches/gromacs-2024.3.diff/src/gromacs/mdlib/expanded.cpp.preplumed +1594 -0
- plumed/_lib/lib/plumed/patches/gromacs-2024.3.diff/src/gromacs/mdlib/expanded.h +104 -0
- plumed/_lib/lib/plumed/patches/gromacs-2024.3.diff/src/gromacs/mdlib/expanded.h.preplumed +100 -0
- plumed/_lib/lib/plumed/patches/gromacs-2024.3.diff/src/gromacs/mdlib/sim_util.cpp +2564 -0
- plumed/_lib/lib/plumed/patches/gromacs-2024.3.diff/src/gromacs/mdlib/sim_util.cpp.preplumed +2550 -0
- plumed/_lib/lib/plumed/patches/gromacs-2024.3.diff/src/gromacs/mdrun/legacymdrunoptions.cpp +208 -0
- plumed/_lib/lib/plumed/patches/gromacs-2024.3.diff/src/gromacs/mdrun/legacymdrunoptions.cpp.preplumed +175 -0
- plumed/_lib/lib/plumed/patches/gromacs-2024.3.diff/src/gromacs/mdrun/legacymdrunoptions.h +410 -0
- plumed/_lib/lib/plumed/patches/gromacs-2024.3.diff/src/gromacs/mdrun/legacymdrunoptions.h.preplumed +396 -0
- plumed/_lib/lib/plumed/patches/gromacs-2024.3.diff/src/gromacs/mdrun/md.cpp +2435 -0
- plumed/_lib/lib/plumed/patches/gromacs-2024.3.diff/src/gromacs/mdrun/md.cpp.preplumed +2187 -0
- plumed/_lib/lib/plumed/patches/gromacs-2024.3.diff/src/gromacs/mdrun/minimize.cpp +3592 -0
- plumed/_lib/lib/plumed/patches/gromacs-2024.3.diff/src/gromacs/mdrun/minimize.cpp.preplumed +3514 -0
- plumed/_lib/lib/plumed/patches/gromacs-2024.3.diff/src/gromacs/mdrun/replicaexchange.cpp +1513 -0
- plumed/_lib/lib/plumed/patches/gromacs-2024.3.diff/src/gromacs/mdrun/replicaexchange.cpp.preplumed +1409 -0
- plumed/_lib/lib/plumed/patches/gromacs-2024.3.diff/src/gromacs/mdrun/replicaexchange.h +114 -0
- plumed/_lib/lib/plumed/patches/gromacs-2024.3.diff/src/gromacs/mdrun/replicaexchange.h.preplumed +106 -0
- plumed/_lib/lib/plumed/patches/gromacs-2024.3.diff/src/gromacs/mdrun/rerun.cpp +958 -0
- plumed/_lib/lib/plumed/patches/gromacs-2024.3.diff/src/gromacs/mdrun/rerun.cpp.preplumed +929 -0
- plumed/_lib/lib/plumed/patches/gromacs-2024.3.diff/src/gromacs/mdrun/runner.cpp +2987 -0
- plumed/_lib/lib/plumed/patches/gromacs-2024.3.diff/src/gromacs/mdrun/runner.cpp.preplumed +2941 -0
- plumed/_lib/lib/plumed/patches/gromacs-2024.3.diff/src/gromacs/modularsimulator/expandedensembleelement.cpp +224 -0
- plumed/_lib/lib/plumed/patches/gromacs-2024.3.diff/src/gromacs/modularsimulator/expandedensembleelement.cpp.preplumed +222 -0
- plumed/_lib/lib/plumed/patches/gromacs-2024.3.diff/src/gromacs/taskassignment/decidegpuusage.cpp +904 -0
- plumed/_lib/lib/plumed/patches/gromacs-2024.3.diff/src/gromacs/taskassignment/decidegpuusage.cpp.preplumed +898 -0
- plumed/_lib/lib/plumed/patches/gromacs-2024.3.diff/src/gromacs/taskassignment/include/gromacs/taskassignment/decidegpuusage.h +353 -0
- plumed/_lib/lib/plumed/patches/gromacs-2024.3.diff/src/gromacs/taskassignment/include/gromacs/taskassignment/decidegpuusage.h.preplumed +351 -0
- plumed/_lib/lib/plumed/patches/gromacs-2025.0.config +39 -0
- plumed/_lib/lib/plumed/patches/gromacs-2025.0.diff/cmake/gmxManagePlumed.cmake +82 -0
- plumed/_lib/lib/plumed/patches/gromacs-2025.0.diff/cmake/gmxManagePlumed.cmake.preplumed +82 -0
- plumed/_lib/lib/plumed/patches/gromacs-2025.0.diff/src/gromacs/applied_forces/plumed/plumedMDModule.cpp +162 -0
- plumed/_lib/lib/plumed/patches/gromacs-2025.0.diff/src/gromacs/applied_forces/plumed/plumedMDModule.cpp.preplumed +154 -0
- plumed/_lib/lib/plumed/patches/gromacs-2025.0.diff/src/gromacs/applied_forces/plumed/plumedOptions.cpp +107 -0
- plumed/_lib/lib/plumed/patches/gromacs-2025.0.diff/src/gromacs/applied_forces/plumed/plumedOptions.cpp.preplumed +99 -0
- plumed/_lib/lib/plumed/patches/gromacs-2025.0.diff/src/gromacs/applied_forces/plumed/plumedOptions.h +120 -0
- plumed/_lib/lib/plumed/patches/gromacs-2025.0.diff/src/gromacs/applied_forces/plumed/plumedOptions.h.preplumed +111 -0
- plumed/_lib/lib/plumed/patches/gromacs-2025.0.diff/src/gromacs/applied_forces/plumed/plumedforceprovider.cpp +215 -0
- plumed/_lib/lib/plumed/patches/gromacs-2025.0.diff/src/gromacs/applied_forces/plumed/plumedforceprovider.cpp.preplumed +197 -0
- plumed/_lib/lib/plumed/patches/gromacs-2025.0.diff/src/gromacs/applied_forces/plumed/plumedforceprovider.h +87 -0
- plumed/_lib/lib/plumed/patches/gromacs-2025.0.diff/src/gromacs/applied_forces/plumed/plumedforceprovider.h.preplumed +86 -0
- plumed/_lib/lib/plumed/patches/gromacs-2025.0.diff/src/gromacs/mdrun/runner.cpp +2971 -0
- plumed/_lib/lib/plumed/patches/gromacs-2025.0.diff/src/gromacs/mdrun/runner.cpp.preplumed +2970 -0
- plumed/_lib/lib/plumed/patches/gromacs-2025.0.diff/src/gromacs/mdrunutility/mdmodulesnotifiers.h +430 -0
- plumed/_lib/lib/plumed/patches/gromacs-2025.0.diff/src/gromacs/mdrunutility/mdmodulesnotifiers.h.preplumed +429 -0
- plumed/_lib/lib/plumed/patches/namd-2.12.config +30 -0
- plumed/_lib/lib/plumed/patches/namd-2.12.diff +267 -0
- plumed/_lib/lib/plumed/patches/namd-2.13.config +30 -0
- plumed/_lib/lib/plumed/patches/namd-2.13.diff +267 -0
- plumed/_lib/lib/plumed/patches/namd-2.14.config +30 -0
- plumed/_lib/lib/plumed/patches/namd-2.14.diff +268 -0
- plumed/_lib/lib/plumed/patches/patch.sh +500 -0
- plumed/_lib/lib/plumed/patches/qespresso-5.0.2.config +25 -0
- plumed/_lib/lib/plumed/patches/qespresso-5.0.2.diff/PW/src/forces.f90 +368 -0
- plumed/_lib/lib/plumed/patches/qespresso-5.0.2.diff/PW/src/forces.f90.preplumed +366 -0
- plumed/_lib/lib/plumed/patches/qespresso-5.0.2.diff/PW/src/plugin_forces.f90 +71 -0
- plumed/_lib/lib/plumed/patches/qespresso-5.0.2.diff/PW/src/plugin_forces.f90.preplumed +24 -0
- plumed/_lib/lib/plumed/patches/qespresso-5.0.2.diff/PW/src/plugin_initialization.f90 +62 -0
- plumed/_lib/lib/plumed/patches/qespresso-5.0.2.diff/PW/src/plugin_initialization.f90.preplumed +21 -0
- plumed/_lib/lib/plumed/patches/qespresso-5.0.2.diff/PW/src/pwscf.f90 +189 -0
- plumed/_lib/lib/plumed/patches/qespresso-5.0.2.diff/PW/src/pwscf.f90.preplumed +185 -0
- plumed/_lib/lib/plumed/patches/qespresso-6.2.config +26 -0
- plumed/_lib/lib/plumed/patches/qespresso-6.2.diff/PW/src/forces.f90 +422 -0
- plumed/_lib/lib/plumed/patches/qespresso-6.2.diff/PW/src/forces.f90.preplumed +420 -0
- plumed/_lib/lib/plumed/patches/qespresso-6.2.diff/PW/src/plugin_ext_forces.f90 +70 -0
- plumed/_lib/lib/plumed/patches/qespresso-6.2.diff/PW/src/plugin_ext_forces.f90.preplumed +23 -0
- plumed/_lib/lib/plumed/patches/qespresso-6.2.diff/PW/src/plugin_initialization.f90 +62 -0
- plumed/_lib/lib/plumed/patches/qespresso-6.2.diff/PW/src/plugin_initialization.f90.preplumed +21 -0
- plumed/_lib/lib/plumed/patches/qespresso-6.2.diff/PW/src/run_pwscf.f90 +233 -0
- plumed/_lib/lib/plumed/patches/qespresso-6.2.diff/PW/src/run_pwscf.f90.preplumed +230 -0
- plumed/_lib/lib/plumed/patches/qespresso-7.0.config +28 -0
- plumed/_lib/lib/plumed/patches/qespresso-7.0.diff/Modules/Makefile +175 -0
- plumed/_lib/lib/plumed/patches/qespresso-7.0.diff/Modules/Makefile.preplumed +171 -0
- plumed/_lib/lib/plumed/patches/qespresso-7.0.diff/PW/src/forces.f90 +486 -0
- plumed/_lib/lib/plumed/patches/qespresso-7.0.diff/PW/src/forces.f90.preplumed +484 -0
- plumed/_lib/lib/plumed/patches/qespresso-7.0.diff/PW/src/plugin_ext_forces.f90 +74 -0
- plumed/_lib/lib/plumed/patches/qespresso-7.0.diff/PW/src/plugin_ext_forces.f90.preplumed +23 -0
- plumed/_lib/lib/plumed/patches/qespresso-7.0.diff/PW/src/plugin_initialization.f90 +64 -0
- plumed/_lib/lib/plumed/patches/qespresso-7.0.diff/PW/src/plugin_initialization.f90.preplumed +21 -0
- plumed/_lib/lib/plumed/patches/qespresso-7.0.diff/PW/src/run_pwscf.f90 +532 -0
- plumed/_lib/lib/plumed/patches/qespresso-7.0.diff/PW/src/run_pwscf.f90.preplumed +518 -0
- plumed/_lib/lib/plumed/patches/qespresso-7.2.config +28 -0
- plumed/_lib/lib/plumed/patches/qespresso-7.2.diff/Modules/Makefile +249 -0
- plumed/_lib/lib/plumed/patches/qespresso-7.2.diff/Modules/Makefile.preplumed +244 -0
- plumed/_lib/lib/plumed/patches/qespresso-7.2.diff/PW/src/forces.f90 +532 -0
- plumed/_lib/lib/plumed/patches/qespresso-7.2.diff/PW/src/forces.f90.preplumed +535 -0
- plumed/_lib/lib/plumed/patches/qespresso-7.2.diff/PW/src/plugin_ext_forces.f90 +74 -0
- plumed/_lib/lib/plumed/patches/qespresso-7.2.diff/PW/src/plugin_ext_forces.f90.preplumed +23 -0
- plumed/_lib/lib/plumed/patches/qespresso-7.2.diff/PW/src/plugin_initialization.f90 +64 -0
- plumed/_lib/lib/plumed/patches/qespresso-7.2.diff/PW/src/plugin_initialization.f90.preplumed +21 -0
- plumed/_lib/lib/plumed/patches/qespresso-7.2.diff/PW/src/run_pwscf.f90 +569 -0
- plumed/_lib/lib/plumed/patches/qespresso-7.2.diff/PW/src/run_pwscf.f90.preplumed +560 -0
- plumed/_lib/lib/plumed/plumed-config +9 -0
- plumed/_lib/lib/plumed/plumed-mklib +9 -0
- plumed/_lib/lib/plumed/plumed-newcv +9 -0
- plumed/_lib/lib/plumed/plumed-partial_tempering +9 -0
- plumed/_lib/lib/plumed/plumed-patch +9 -0
- plumed/_lib/lib/plumed/plumed-runtime +0 -0
- plumed/_lib/lib/plumed/plumed-selector +9 -0
- plumed/_lib/lib/plumed/plumed-vim2html +9 -0
- plumed/_lib/lib/plumed/scripts/config.sh +126 -0
- plumed/_lib/lib/plumed/scripts/mklib.sh +175 -0
- plumed/_lib/lib/plumed/scripts/newcv.sh +26 -0
- plumed/_lib/lib/plumed/scripts/partial_tempering.sh +319 -0
- plumed/_lib/lib/plumed/scripts/patch.sh +4 -0
- plumed/_lib/lib/plumed/scripts/selector.sh +234 -0
- plumed/_lib/lib/plumed/scripts/vim2html.sh +190 -0
- plumed/_lib/lib/plumed/src/colvar/Template.cpp +116 -0
- plumed/_lib/lib/plumed/src/config/compile_options.sh +3 -0
- plumed/_lib/lib/plumed/src/config/config.txt +181 -0
- plumed/_lib/lib/plumed/src/lib/Plumed.cmake +6 -0
- plumed/_lib/lib/plumed/src/lib/Plumed.cmake.runtime +5 -0
- plumed/_lib/lib/plumed/src/lib/Plumed.cmake.shared +5 -0
- plumed/_lib/lib/plumed/src/lib/Plumed.cmake.static +3 -0
- plumed/_lib/lib/plumed/src/lib/Plumed.inc +6 -0
- plumed/_lib/lib/plumed/src/lib/Plumed.inc.runtime +5 -0
- plumed/_lib/lib/plumed/src/lib/Plumed.inc.shared +5 -0
- plumed/_lib/lib/plumed/src/lib/Plumed.inc.static +3 -0
- plumed/_lib/lib/plumed/vim/scripts.vim +6 -0
- plumed/_plumed_core.cpython-311-darwin.so +0 -0
- plumed/_plumed_core.cpython-312-darwin.so +0 -0
- plumed/_plumed_core.cpython-313-darwin.so +0 -0
- plumedCommunications.cpython-311-darwin.so +0 -0
- plumedCommunications.cpython-312-darwin.so +0 -0
- plumedCommunications.cpython-313-darwin.so +0 -0
- 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_*/
|