From 37839622c621c5443a863192085840def4d003b7 Mon Sep 17 00:00:00 2001 From: "Daniel R. Roe" Date: Tue, 17 Dec 2019 13:26:33 -0500 Subject: [PATCH 001/162] DRR - Use forward declares. --- src/Command.h | 3 ++- src/Control.cpp | 9 +++++---- src/Control.h | 17 ++++++----------- src/VariableArray.cpp | 2 ++ src/VariableArray.h | 7 +++++-- src/cpptrajdepend | 14 +++++++------- 6 files changed, 27 insertions(+), 25 deletions(-) diff --git a/src/Command.h b/src/Command.h index 2d9ea426b7..008cab372b 100644 --- a/src/Command.h +++ b/src/Command.h @@ -2,7 +2,8 @@ #define INC_COMMAND_H #include "CmdList.h" #include "CpptrajState.h" -#include "Control.h" +#include "VariableArray.h" +class ControlBlock; class Command { public: static void Init(); diff --git a/src/Control.cpp b/src/Control.cpp index e299cedfc1..e94fc117f8 100644 --- a/src/Control.cpp +++ b/src/Control.cpp @@ -2,6 +2,7 @@ #include "Control.h" #include "CpptrajStdio.h" #include "StringRoutines.h" +#include "VariableArray.h" void ControlBlock_For::Help() const { mprintf("\t{ {atoms|residues|molecules|molfirstres|mollastres}\n" @@ -333,7 +334,7 @@ void ControlBlock_For::Start() { } /** For each mask check if done, then update CurrentVars, then increment. */ -ControlBlock::DoneType ControlBlock_For::CheckDone(Varray& CurrentVars) { +ControlBlock::DoneType ControlBlock_For::CheckDone(VariableArray& CurrentVars) { static const char* prefix[] = {"@", ":", "^", ":", ":"}; for (Marray::iterator MH = Vars_.begin(); MH != Vars_.end(); ++MH) { // Exit as soon as one is done TODO check all? @@ -386,7 +387,7 @@ void Control_Set::Help() const { * so re-tokenize the original argument line (minus the command). */ CpptrajState::RetType - Control_Set::SetupControl(CpptrajState& State, ArgList& argIn, Varray& CurrentVars) + Control_Set::SetupControl(CpptrajState& State, ArgList& argIn, VariableArray& CurrentVars) { ArgList remaining = argIn.RemainingArgs(); size_t pos0 = remaining.ArgLineStr().find_first_of("="); @@ -460,9 +461,9 @@ void Control_Show::Help() const { } CpptrajState::RetType - Control_Show::SetupControl(CpptrajState& State, ArgList& argIn, Varray& CurrentVars) + Control_Show::SetupControl(CpptrajState& State, ArgList& argIn, VariableArray& CurrentVars) { - for (Varray::const_iterator it = CurrentVars.begin(); it != CurrentVars.end(); ++it) + for (VariableArray::const_iterator it = CurrentVars.begin(); it != CurrentVars.end(); ++it) mprintf("\t%s = '%s'\n", it->first.c_str(), it->second.c_str()); return CpptrajState::OK; } diff --git a/src/Control.h b/src/Control.h index 09eb0157f2..14b25f9e84 100644 --- a/src/Control.h +++ b/src/Control.h @@ -1,14 +1,12 @@ #ifndef INC_CONTROL_H #define INC_CONTROL_H #include "CpptrajState.h" -#include "VariableArray.h" +class VariableArray; /// Control block structures. class ControlBlock : public DispatchObject { public: typedef std::vector ArgArray; typedef ArgArray::const_iterator const_iterator; - /// Hold variable/value pairs - typedef VariableArray Varray; /// Control block states enum DoneType { DONE = 0, NOT_DONE, ERROR }; @@ -29,7 +27,7 @@ class ControlBlock : public DispatchObject { /// Start control block. Init internal variables if necessary. virtual void Start() = 0; /// Add/update variables and increment, check block state. - virtual DoneType CheckDone(Varray&) = 0; + virtual DoneType CheckDone(VariableArray&) = 0; protected: std::string description_; ///< Describe control TODO private? }; @@ -47,7 +45,7 @@ class ControlBlock_For : public ControlBlock { const_iterator begin() const { return commands_.begin(); } const_iterator end() const { return commands_.end(); } void Start(); - DoneType CheckDone(Varray&); + DoneType CheckDone(VariableArray&); private: enum ForType {ATOMS=0, RESIDUES, MOLECULES, MOLFIRSTRES, MOLLASTRES, INTEGER, LIST, UNKNOWN}; enum OpType { INCREMENT=0, DECREMENT, LESS_THAN, GREATER_THAN, NO_OP }; @@ -77,12 +75,9 @@ class ControlBlock_For : public ControlBlock { /// Work with script variables class Control : public DispatchObject { public: - /// Hold variable/value pairs - typedef VariableArray Varray; - Control() : DispatchObject(CONTROL) {} virtual ~Control() {} - virtual CpptrajState::RetType SetupControl(CpptrajState&, ArgList&, Varray&) = 0; + virtual CpptrajState::RetType SetupControl(CpptrajState&, ArgList&, VariableArray&) = 0; }; /// Create/update script variables @@ -92,7 +87,7 @@ class Control_Set : public Control { void Help() const; DispatchObject* Alloc() const { return (DispatchObject*)new Control_Set(); } - CpptrajState::RetType SetupControl(CpptrajState&, ArgList&, Varray&); + CpptrajState::RetType SetupControl(CpptrajState&, ArgList&, VariableArray&); }; /// List all variables and values. @@ -102,6 +97,6 @@ class Control_Show : public Control { void Help() const; DispatchObject* Alloc() const { return (DispatchObject*)new Control_Show(); } - CpptrajState::RetType SetupControl(CpptrajState&, ArgList&, Varray&); + CpptrajState::RetType SetupControl(CpptrajState&, ArgList&, VariableArray&); }; #endif diff --git a/src/VariableArray.cpp b/src/VariableArray.cpp index 799bad4339..33e5bbb529 100644 --- a/src/VariableArray.cpp +++ b/src/VariableArray.cpp @@ -3,6 +3,8 @@ #include "DataSet_string.h" #include "DataSet_1D.h" #include "StringRoutines.h" +#include "DataSetList.h" +#include "ArgList.h" /** Add variable/value to array if it doesnt exist, otherwise set value. */ void VariableArray::UpdateVariable(std::string const& varname, std::string const& value) diff --git a/src/VariableArray.h b/src/VariableArray.h index 51e171f4f5..6b4aadac1f 100644 --- a/src/VariableArray.h +++ b/src/VariableArray.h @@ -1,6 +1,9 @@ #ifndef INC_VARIABLEARRAY_H #define INC_VARIABLEARRAY_H -#include "DataSetList.h" +#include +#include +class DataSetList; +class ArgList; /// Hold script variables and their values. class VariableArray { /// Hold variable and corresponding value. @@ -12,7 +15,7 @@ class VariableArray { VariableArray() {} /// Add/update variable with given value. void UpdateVariable(std::string const&, std::string const&); - /// Add/append variable with given value. + /// Add/append variable tith given value. void AppendVariable(std::string const&, std::string const&); /// Replace all variables in given ArgList with their values. ArgList ReplaceVariables(ArgList const&, DataSetList const&, int); diff --git a/src/cpptrajdepend b/src/cpptrajdepend index b44607dee0..e11621e2f3 100644 --- a/src/cpptrajdepend +++ b/src/cpptrajdepend @@ -164,7 +164,7 @@ Control.o : Control.cpp Action.h ActionList.h ActionState.h Analysis.h AnalysisL CoordinateInfo.o : CoordinateInfo.cpp Box.h CoordinateInfo.h CpptrajStdio.h Matrix_3x3.h Parallel.h ReplicaDimArray.h Vec3.h Corr.o : Corr.cpp ArrayIterator.h ComplexArray.h Corr.h PubFFT.h Cph.o : Cph.cpp Cph.h NameType.h -Cpptraj.o : Cpptraj.cpp Action.h ActionList.h ActionState.h Analysis.h AnalysisList.h AnalysisState.h ArgList.h AssociatedData.h Atom.h AtomExtra.h AtomMask.h AtomType.h BaseIOtype.h BondSearch.h Box.h Cmd.h CmdInput.h CmdList.h Command.h Constants.h Control.h CoordinateInfo.h Cpptraj.h CpptrajFile.h CpptrajState.h CpptrajStdio.h DataFile.h DataFileList.h DataIO.h DataSet.h DataSetList.h DataSet_Coords.h DataSet_Coords_REF.h Dimension.h DispatchObject.h EnsembleIn.h EnsembleOutList.h FileIO.h FileName.h FileTypes.h Frame.h FramePtrArray.h InputTrajCommon.h MaskToken.h Matrix_3x3.h MetaData.h Molecule.h NameType.h Parallel.h ParameterHolders.h ParameterSet.h ParameterTypes.h ParmFile.h ParmIO.h Range.h ReadLine.h ReferenceFrame.h ReplicaDimArray.h ReplicaInfo.h Residue.h StringRoutines.h SymbolExporting.h TextFormat.h Timer.h TopInfo.h Topology.h TrajFrameCounter.h TrajectoryFile.h Trajin.h TrajinList.h TrajoutList.h TypeNameHolder.h VariableArray.h Vec3.h Version.h +Cpptraj.o : Cpptraj.cpp Action.h ActionList.h ActionState.h Analysis.h AnalysisList.h AnalysisState.h ArgList.h AssociatedData.h Atom.h AtomExtra.h AtomMask.h AtomType.h BaseIOtype.h BondSearch.h Box.h Cmd.h CmdInput.h CmdList.h Command.h Constants.h CoordinateInfo.h Cpptraj.h CpptrajFile.h CpptrajState.h CpptrajStdio.h DataFile.h DataFileList.h DataIO.h DataSet.h DataSetList.h DataSet_Coords.h DataSet_Coords_REF.h Dimension.h DispatchObject.h EnsembleIn.h EnsembleOutList.h FileIO.h FileName.h FileTypes.h Frame.h FramePtrArray.h InputTrajCommon.h MaskToken.h Matrix_3x3.h MetaData.h Molecule.h NameType.h Parallel.h ParameterHolders.h ParameterSet.h ParameterTypes.h ParmFile.h ParmIO.h Range.h ReadLine.h ReferenceFrame.h ReplicaDimArray.h ReplicaInfo.h Residue.h StringRoutines.h SymbolExporting.h TextFormat.h Timer.h TopInfo.h Topology.h TrajFrameCounter.h TrajectoryFile.h Trajin.h TrajinList.h TrajoutList.h TypeNameHolder.h VariableArray.h Vec3.h Version.h CpptrajFile.o : CpptrajFile.cpp CpptrajFile.h CpptrajStdio.h FileIO.h FileIO_Bzip2.h FileIO_Gzip.h FileIO_Mpi.h FileIO_MpiShared.h FileIO_Std.h FileName.h Parallel.h StringRoutines.h CpptrajState.o : CpptrajState.cpp Action.h ActionList.h ActionState.h Action_CreateCrd.h Analysis.h AnalysisList.h AnalysisState.h ArgList.h AssociatedData.h Atom.h AtomExtra.h AtomMask.h AtomType.h BaseIOtype.h Box.h Constants.h CoordinateInfo.h CpptrajFile.h CpptrajState.h CpptrajStdio.h DataFile.h DataFileList.h DataIO.h DataSet.h DataSetList.h DataSet_Coords.h DataSet_Coords_CRD.h DataSet_Coords_REF.h DataSet_Coords_TRJ.h DataSet_Topology.h Dimension.h DispatchObject.h EnsembleIn.h EnsembleNavigator.h EnsembleOutList.h FileIO.h FileName.h FileTypes.h Frame.h FrameArray.h FramePtrArray.h InputTrajCommon.h MaskToken.h Matrix_3x3.h MetaData.h Molecule.h NameType.h Parallel.h ParameterHolders.h ParameterSet.h ParameterTypes.h ProgressBar.h Range.h ReferenceFrame.h ReplicaDimArray.h ReplicaInfo.h Residue.h SymbolExporting.h TextFormat.h Timer.h Topology.h TrajFrameCounter.h TrajFrameIndex.h Trajin.h TrajinList.h TrajoutList.h TypeNameHolder.h Vec3.h CpptrajStdio.o : CpptrajStdio.cpp Parallel.h @@ -238,7 +238,7 @@ EnsembleOut_Single.o : EnsembleOut_Single.cpp ActionFrameCounter.h ArgList.h Ato Ewald.o : Ewald.cpp Atom.h AtomExtra.h AtomMask.h AtomType.h Box.h CharMask.h Constants.h CoordinateInfo.h CpptrajStdio.h EnergyKernel_Adjust.h EnergyKernel_Nonbond.h Ewald.h FileName.h Frame.h MaskToken.h Matrix_3x3.h Molecule.h NameType.h PairList.h PairListLoop.h Parallel.h ParameterHolders.h ParameterSet.h ParameterTypes.h Range.h ReplicaDimArray.h Residue.h Spline.h StringRoutines.h SymbolExporting.h Timer.h Topology.h TypeNameHolder.h Vec3.h Ewald_ParticleMesh.o : Ewald_ParticleMesh.cpp Atom.h AtomExtra.h AtomMask.h AtomType.h Box.h Constants.h CoordinateInfo.h CpptrajStdio.h Ewald.h Ewald_ParticleMesh.h FileName.h Frame.h MaskToken.h Matrix_3x3.h Molecule.h NameType.h PairList.h Parallel.h ParameterHolders.h ParameterSet.h ParameterTypes.h Range.h ReplicaDimArray.h Residue.h SymbolExporting.h Timer.h Topology.h TypeNameHolder.h Vec3.h helpme_standalone.h Ewald_Regular.o : Ewald_Regular.cpp Atom.h AtomExtra.h AtomMask.h AtomType.h Box.h Constants.h CoordinateInfo.h CpptrajStdio.h Ewald.h Ewald_Regular.h FileName.h Frame.h MaskToken.h Matrix_3x3.h Molecule.h NameType.h PairList.h Parallel.h ParameterHolders.h ParameterSet.h ParameterTypes.h Range.h ReplicaDimArray.h Residue.h StringRoutines.h SymbolExporting.h Timer.h Topology.h TypeNameHolder.h Vec3.h -Exec_Analyze.o : Exec_Analyze.cpp Action.h ActionList.h ActionState.h Analysis.h AnalysisList.h AnalysisState.h ArgList.h AssociatedData.h Atom.h AtomExtra.h AtomMask.h AtomType.h BaseIOtype.h Box.h Cmd.h CmdList.h Command.h Constants.h Control.h CoordinateInfo.h CpptrajFile.h CpptrajState.h CpptrajStdio.h DataFile.h DataFileList.h DataIO.h DataSet.h DataSetList.h DataSet_Coords.h DataSet_Coords_REF.h Dimension.h DispatchObject.h EnsembleIn.h EnsembleOutList.h Exec.h Exec_Analyze.h FileIO.h FileName.h FileTypes.h Frame.h FramePtrArray.h InputTrajCommon.h MaskToken.h Matrix_3x3.h MetaData.h Molecule.h NameType.h Parallel.h ParameterHolders.h ParameterSet.h ParameterTypes.h Range.h ReferenceFrame.h ReplicaDimArray.h ReplicaInfo.h Residue.h SymbolExporting.h TextFormat.h Timer.h Topology.h TrajFrameCounter.h Trajin.h TrajinList.h TrajoutList.h TypeNameHolder.h VariableArray.h Vec3.h +Exec_Analyze.o : Exec_Analyze.cpp Action.h ActionList.h ActionState.h Analysis.h AnalysisList.h AnalysisState.h ArgList.h AssociatedData.h Atom.h AtomExtra.h AtomMask.h AtomType.h BaseIOtype.h Box.h Cmd.h CmdList.h Command.h Constants.h CoordinateInfo.h CpptrajFile.h CpptrajState.h CpptrajStdio.h DataFile.h DataFileList.h DataIO.h DataSet.h DataSetList.h DataSet_Coords.h DataSet_Coords_REF.h Dimension.h DispatchObject.h EnsembleIn.h EnsembleOutList.h Exec.h Exec_Analyze.h FileIO.h FileName.h FileTypes.h Frame.h FramePtrArray.h InputTrajCommon.h MaskToken.h Matrix_3x3.h MetaData.h Molecule.h NameType.h Parallel.h ParameterHolders.h ParameterSet.h ParameterTypes.h Range.h ReferenceFrame.h ReplicaDimArray.h ReplicaInfo.h Residue.h SymbolExporting.h TextFormat.h Timer.h Topology.h TrajFrameCounter.h Trajin.h TrajinList.h TrajoutList.h TypeNameHolder.h VariableArray.h Vec3.h Exec_Calc.o : Exec_Calc.cpp Action.h ActionList.h ActionState.h Analysis.h AnalysisList.h AnalysisState.h ArgList.h AssociatedData.h Atom.h AtomExtra.h AtomMask.h AtomType.h BaseIOtype.h Box.h Constants.h CoordinateInfo.h CpptrajFile.h CpptrajState.h CpptrajStdio.h DataFile.h DataFileList.h DataIO.h DataSet.h DataSetList.h DataSet_Coords.h DataSet_Coords_REF.h Dimension.h DispatchObject.h EnsembleIn.h EnsembleOutList.h Exec.h Exec_Calc.h FileIO.h FileName.h FileTypes.h Frame.h FramePtrArray.h InputTrajCommon.h MaskToken.h Matrix_3x3.h MetaData.h Molecule.h NameType.h Parallel.h ParameterHolders.h ParameterSet.h ParameterTypes.h RPNcalc.h Range.h ReferenceFrame.h ReplicaDimArray.h ReplicaInfo.h Residue.h SymbolExporting.h TextFormat.h Timer.h Topology.h TrajFrameCounter.h Trajin.h TrajinList.h TrajoutList.h TypeNameHolder.h Vec3.h Exec_CatCrd.o : Exec_CatCrd.cpp Action.h ActionList.h ActionState.h Analysis.h AnalysisList.h AnalysisState.h ArgList.h AssociatedData.h Atom.h AtomExtra.h AtomMask.h AtomType.h BaseIOtype.h Box.h Constants.h CoordinateInfo.h CpptrajFile.h CpptrajState.h CpptrajStdio.h DataFile.h DataFileList.h DataIO.h DataSet.h DataSetList.h DataSet_Coords.h DataSet_Coords_REF.h Dimension.h DispatchObject.h EnsembleIn.h EnsembleOutList.h Exec.h Exec_CatCrd.h FileIO.h FileName.h FileTypes.h Frame.h FramePtrArray.h InputTrajCommon.h MaskToken.h Matrix_3x3.h MetaData.h Molecule.h NameType.h Parallel.h ParameterHolders.h ParameterSet.h ParameterTypes.h Range.h ReferenceFrame.h ReplicaDimArray.h ReplicaInfo.h Residue.h SymbolExporting.h TextFormat.h Timer.h Topology.h TrajFrameCounter.h Trajin.h TrajinList.h TrajoutList.h TypeNameHolder.h Vec3.h Exec_Change.o : Exec_Change.cpp Action.h ActionList.h ActionState.h Analysis.h AnalysisList.h AnalysisState.h ArgList.h AssociatedData.h Atom.h AtomExtra.h AtomMask.h AtomType.h BaseIOtype.h Box.h Constants.h CoordinateInfo.h CpptrajFile.h CpptrajState.h CpptrajStdio.h DataFile.h DataFileList.h DataIO.h DataSet.h DataSetList.h DataSet_Coords.h DataSet_Coords_REF.h Dimension.h DispatchObject.h EnsembleIn.h EnsembleOutList.h Exec.h Exec_Change.h FileIO.h FileName.h FileTypes.h Frame.h FramePtrArray.h InputTrajCommon.h MaskToken.h Matrix_3x3.h MetaData.h Molecule.h NameType.h Parallel.h ParameterHolders.h ParameterSet.h ParameterTypes.h Range.h ReferenceFrame.h ReplicaDimArray.h ReplicaInfo.h Residue.h SymbolExporting.h TextFormat.h Timer.h Topology.h TrajFrameCounter.h Trajin.h TrajinList.h TrajoutList.h TypeNameHolder.h Vec3.h @@ -246,14 +246,14 @@ Exec_ClusterMap.o : Exec_ClusterMap.cpp Action.h ActionList.h ActionState.h Anal Exec_CombineCoords.o : Exec_CombineCoords.cpp Action.h ActionList.h ActionState.h Analysis.h AnalysisList.h AnalysisState.h ArgList.h AssociatedData.h Atom.h AtomExtra.h AtomMask.h AtomType.h BaseIOtype.h Box.h Constants.h CoordinateInfo.h CpptrajFile.h CpptrajState.h CpptrajStdio.h DataFile.h DataFileList.h DataIO.h DataSet.h DataSetList.h DataSet_Coords.h DataSet_Coords_REF.h Dimension.h DispatchObject.h EnsembleIn.h EnsembleOutList.h Exec.h Exec_CombineCoords.h FileIO.h FileName.h FileTypes.h Frame.h FramePtrArray.h InputTrajCommon.h MaskToken.h Matrix_3x3.h MetaData.h Molecule.h NameType.h Parallel.h ParameterHolders.h ParameterSet.h ParameterTypes.h Range.h ReferenceFrame.h ReplicaDimArray.h ReplicaInfo.h Residue.h SymbolExporting.h TextFormat.h Timer.h Topology.h TrajFrameCounter.h Trajin.h TrajinList.h TrajoutList.h TypeNameHolder.h Vec3.h Exec_Commands.o : Exec_Commands.cpp Action.h ActionList.h ActionState.h Analysis.h AnalysisList.h AnalysisState.h ArgList.h AssociatedData.h Atom.h AtomExtra.h AtomMask.h AtomType.h BaseIOtype.h Box.h Constants.h CoordinateInfo.h CpptrajFile.h CpptrajState.h CpptrajStdio.h DataFile.h DataFileList.h DataIO.h DataSet.h DataSetList.h DataSet_Coords.h DataSet_Coords_REF.h Dimension.h DispatchObject.h EnsembleIn.h EnsembleOutList.h Exec.h Exec_Commands.h FileIO.h FileName.h FileTypes.h Frame.h FramePtrArray.h InputTrajCommon.h MaskToken.h Matrix_3x3.h MetaData.h Molecule.h NameType.h Parallel.h ParameterHolders.h ParameterSet.h ParameterTypes.h Range.h ReferenceFrame.h ReplicaDimArray.h ReplicaInfo.h Residue.h SymbolExporting.h TextFormat.h Timer.h Topology.h TrajFrameCounter.h Trajin.h TrajinList.h TrajoutList.h TypeNameHolder.h Vec3.h Exec_CompareTop.o : Exec_CompareTop.cpp Action.h ActionList.h ActionState.h Analysis.h AnalysisList.h AnalysisState.h ArgList.h AssociatedData.h Atom.h AtomExtra.h AtomMask.h AtomType.h BaseIOtype.h Box.h Constants.h CoordinateInfo.h CpptrajFile.h CpptrajState.h CpptrajStdio.h DataFile.h DataFileList.h DataIO.h DataSet.h DataSetList.h DataSet_Coords.h DataSet_Coords_REF.h Dimension.h DispatchObject.h EnsembleIn.h EnsembleOutList.h Exec.h Exec_CompareTop.h FileIO.h FileName.h FileTypes.h Frame.h FramePtrArray.h InputTrajCommon.h MaskToken.h Matrix_3x3.h MetaData.h Molecule.h NameType.h Parallel.h ParameterHolders.h ParameterSet.h ParameterTypes.h Range.h ReferenceFrame.h ReplicaDimArray.h ReplicaInfo.h Residue.h SymbolExporting.h TextFormat.h Timer.h Topology.h TrajFrameCounter.h Trajin.h TrajinList.h TrajoutList.h TypeNameHolder.h Vec3.h -Exec_CrdAction.o : Exec_CrdAction.cpp Action.h ActionList.h ActionState.h Analysis.h AnalysisList.h AnalysisState.h ArgList.h AssociatedData.h Atom.h AtomExtra.h AtomMask.h AtomType.h BaseIOtype.h Box.h Cmd.h CmdList.h Command.h Constants.h Control.h CoordinateInfo.h CpptrajFile.h CpptrajState.h CpptrajStdio.h DataFile.h DataFileList.h DataIO.h DataSet.h DataSetList.h DataSet_Coords.h DataSet_Coords_CRD.h DataSet_Coords_REF.h Dimension.h DispatchObject.h EnsembleIn.h EnsembleOutList.h Exec.h Exec_CrdAction.h FileIO.h FileName.h FileTypes.h Frame.h FramePtrArray.h InputTrajCommon.h MaskToken.h Matrix_3x3.h MetaData.h Molecule.h NameType.h Parallel.h ParameterHolders.h ParameterSet.h ParameterTypes.h ProgressBar.h Range.h ReferenceFrame.h ReplicaDimArray.h ReplicaInfo.h Residue.h SymbolExporting.h TextFormat.h Timer.h Topology.h TrajFrameCounter.h Trajin.h TrajinList.h TrajoutList.h TypeNameHolder.h VariableArray.h Vec3.h +Exec_CrdAction.o : Exec_CrdAction.cpp Action.h ActionList.h ActionState.h Analysis.h AnalysisList.h AnalysisState.h ArgList.h AssociatedData.h Atom.h AtomExtra.h AtomMask.h AtomType.h BaseIOtype.h Box.h Cmd.h CmdList.h Command.h Constants.h CoordinateInfo.h CpptrajFile.h CpptrajState.h CpptrajStdio.h DataFile.h DataFileList.h DataIO.h DataSet.h DataSetList.h DataSet_Coords.h DataSet_Coords_CRD.h DataSet_Coords_REF.h Dimension.h DispatchObject.h EnsembleIn.h EnsembleOutList.h Exec.h Exec_CrdAction.h FileIO.h FileName.h FileTypes.h Frame.h FramePtrArray.h InputTrajCommon.h MaskToken.h Matrix_3x3.h MetaData.h Molecule.h NameType.h Parallel.h ParameterHolders.h ParameterSet.h ParameterTypes.h ProgressBar.h Range.h ReferenceFrame.h ReplicaDimArray.h ReplicaInfo.h Residue.h SymbolExporting.h TextFormat.h Timer.h Topology.h TrajFrameCounter.h Trajin.h TrajinList.h TrajoutList.h TypeNameHolder.h VariableArray.h Vec3.h Exec_CrdOut.o : Exec_CrdOut.cpp Action.h ActionFrameCounter.h ActionList.h ActionState.h Analysis.h AnalysisList.h AnalysisState.h ArgList.h AssociatedData.h Atom.h AtomExtra.h AtomMask.h AtomType.h BaseIOtype.h Box.h Constants.h CoordinateInfo.h CpptrajFile.h CpptrajState.h CpptrajStdio.h DataFile.h DataFileList.h DataIO.h DataSet.h DataSetList.h DataSet_Coords.h DataSet_Coords_REF.h Dimension.h DispatchObject.h EnsembleIn.h EnsembleOutList.h Exec.h Exec_CrdOut.h FileIO.h FileName.h FileTypes.h Frame.h FramePtrArray.h InputTrajCommon.h MaskToken.h Matrix_3x3.h MetaData.h Molecule.h NameType.h OutputTrajCommon.h Parallel.h ParameterHolders.h ParameterSet.h ParameterTypes.h ProgressBar.h Range.h ReferenceFrame.h ReplicaDimArray.h ReplicaInfo.h Residue.h SymbolExporting.h TextFormat.h Timer.h Topology.h TrajFrameCounter.h TrajectoryFile.h Trajin.h TrajinList.h TrajoutList.h Trajout_Single.h TypeNameHolder.h Vec3.h Exec_CreateSet.o : Exec_CreateSet.cpp Action.h ActionList.h ActionState.h Analysis.h AnalysisList.h AnalysisState.h ArgList.h AssociatedData.h Atom.h AtomExtra.h AtomMask.h AtomType.h BaseIOtype.h Box.h Constants.h CoordinateInfo.h CpptrajFile.h CpptrajState.h CpptrajStdio.h DataFile.h DataFileList.h DataIO.h DataSet.h DataSetList.h DataSet_Coords.h DataSet_Coords_REF.h Dimension.h DispatchObject.h EnsembleIn.h EnsembleOutList.h Exec.h Exec_CreateSet.h FileIO.h FileName.h FileTypes.h Frame.h FramePtrArray.h InputTrajCommon.h MaskToken.h Matrix_3x3.h MetaData.h Molecule.h NameType.h Parallel.h ParameterHolders.h ParameterSet.h ParameterTypes.h RPNcalc.h Range.h ReferenceFrame.h ReplicaDimArray.h ReplicaInfo.h Residue.h SymbolExporting.h TextFormat.h Timer.h Topology.h TrajFrameCounter.h Trajin.h TrajinList.h TrajoutList.h TypeNameHolder.h Vec3.h Exec_DataFile.o : Exec_DataFile.cpp Action.h ActionList.h ActionState.h Analysis.h AnalysisList.h AnalysisState.h ArgList.h AssociatedData.h Atom.h AtomExtra.h AtomMask.h AtomType.h BaseIOtype.h Box.h Constants.h CoordinateInfo.h CpptrajFile.h CpptrajState.h CpptrajStdio.h DataFile.h DataFileList.h DataIO.h DataSet.h DataSetList.h DataSet_Coords.h DataSet_Coords_REF.h Dimension.h DispatchObject.h EnsembleIn.h EnsembleOutList.h Exec.h Exec_DataFile.h FileIO.h FileName.h FileTypes.h Frame.h FramePtrArray.h InputTrajCommon.h MaskToken.h Matrix_3x3.h MetaData.h Molecule.h NameType.h Parallel.h ParameterHolders.h ParameterSet.h ParameterTypes.h Range.h ReferenceFrame.h ReplicaDimArray.h ReplicaInfo.h Residue.h StringRoutines.h SymbolExporting.h TextFormat.h Timer.h Topology.h TrajFrameCounter.h Trajin.h TrajinList.h TrajoutList.h TypeNameHolder.h Vec3.h Exec_DataFilter.o : Exec_DataFilter.cpp Action.h ActionList.h ActionState.h Action_FilterByData.h Analysis.h AnalysisList.h AnalysisState.h ArgList.h Array1D.h AssociatedData.h Atom.h AtomExtra.h AtomMask.h AtomType.h BaseIOtype.h Box.h Constants.h CoordinateInfo.h CpptrajFile.h CpptrajState.h CpptrajStdio.h DataFile.h DataFileList.h DataIO.h DataSet.h DataSetList.h DataSet_1D.h DataSet_Coords.h DataSet_Coords_REF.h Dimension.h DispatchObject.h EnsembleIn.h EnsembleOutList.h Exec.h Exec_DataFilter.h FileIO.h FileName.h FileTypes.h Frame.h FramePtrArray.h InputTrajCommon.h MaskToken.h Matrix_3x3.h MetaData.h Molecule.h NameType.h Parallel.h ParameterHolders.h ParameterSet.h ParameterTypes.h ProgressBar.h Range.h ReferenceFrame.h ReplicaDimArray.h ReplicaInfo.h Residue.h SymbolExporting.h TextFormat.h Timer.h Topology.h TrajFrameCounter.h Trajin.h TrajinList.h TrajoutList.h TypeNameHolder.h Vec3.h Exec_DataSetCmd.o : Exec_DataSetCmd.cpp Action.h ActionList.h ActionState.h Analysis.h AnalysisList.h AnalysisState.h ArgList.h ArrayIterator.h AssociatedData.h Atom.h AtomExtra.h AtomMask.h AtomType.h BaseIOtype.h Box.h ComplexArray.h Constants.h CoordinateInfo.h CpptrajFile.h CpptrajState.h CpptrajStdio.h DataFile.h DataFileList.h DataIO.h DataSet.h DataSetList.h DataSet_1D.h DataSet_2D.h DataSet_Coords.h DataSet_Coords_REF.h DataSet_MatrixDbl.h DataSet_Mesh.h DataSet_Vector.h DataSet_string.h Dimension.h DispatchObject.h EnsembleIn.h EnsembleOutList.h Exec.h Exec_DataSetCmd.h FileIO.h FileName.h FileTypes.h Frame.h FramePtrArray.h InputTrajCommon.h MaskToken.h Matrix.h Matrix_3x3.h MetaData.h Molecule.h NameType.h Parallel.h ParameterHolders.h ParameterSet.h ParameterTypes.h Range.h ReferenceFrame.h ReplicaDimArray.h ReplicaInfo.h Residue.h Spline.h StringRoutines.h SymbolExporting.h TextFormat.h Timer.h Topology.h TrajFrameCounter.h Trajin.h TrajinList.h TrajoutList.h TypeNameHolder.h Vec3.h Exec_GenerateAmberRst.o : Exec_GenerateAmberRst.cpp Action.h ActionList.h ActionState.h Analysis.h AnalysisList.h AnalysisState.h ArgList.h AssociatedData.h Atom.h AtomExtra.h AtomMask.h AtomType.h BaseIOtype.h Box.h Constants.h CoordinateInfo.h CpptrajFile.h CpptrajState.h CpptrajStdio.h DataFile.h DataFileList.h DataIO.h DataSet.h DataSetList.h DataSet_Coords.h DataSet_Coords_REF.h Dimension.h DispatchObject.h DistRoutines.h EnsembleIn.h EnsembleOutList.h Exec.h Exec_GenerateAmberRst.h FileIO.h FileName.h FileTypes.h Frame.h FramePtrArray.h InputTrajCommon.h MaskToken.h Matrix_3x3.h MetaData.h Molecule.h NameType.h Parallel.h ParameterHolders.h ParameterSet.h ParameterTypes.h Range.h ReferenceFrame.h ReplicaDimArray.h ReplicaInfo.h Residue.h SymbolExporting.h TextFormat.h Timer.h Topology.h TorsionRoutines.h TrajFrameCounter.h Trajin.h TrajinList.h TrajoutList.h TypeNameHolder.h Vec3.h -Exec_Help.o : Exec_Help.cpp Action.h ActionList.h ActionState.h Analysis.h AnalysisList.h AnalysisState.h ArgList.h AssociatedData.h Atom.h AtomExtra.h AtomMask.h AtomType.h BaseIOtype.h BondSearch.h Box.h Cmd.h CmdList.h Command.h Constants.h Control.h CoordinateInfo.h CpptrajFile.h CpptrajState.h CpptrajStdio.h DataFile.h DataFileList.h DataIO.h DataSet.h DataSetList.h DataSet_Coords.h DataSet_Coords_REF.h Dimension.h DispatchObject.h EnsembleIn.h EnsembleOutList.h Exec.h Exec_Help.h FileIO.h FileName.h FileTypes.h Frame.h FramePtrArray.h InputTrajCommon.h MaskToken.h Matrix_3x3.h MetaData.h Molecule.h NameType.h Parallel.h ParameterHolders.h ParameterSet.h ParameterTypes.h ParmFile.h ParmIO.h Range.h ReferenceFrame.h ReplicaDimArray.h ReplicaInfo.h Residue.h SymbolExporting.h TextFormat.h Timer.h Topology.h TrajFrameCounter.h TrajectoryFile.h Trajin.h TrajinList.h TrajoutList.h TypeNameHolder.h VariableArray.h Vec3.h +Exec_Help.o : Exec_Help.cpp Action.h ActionList.h ActionState.h Analysis.h AnalysisList.h AnalysisState.h ArgList.h AssociatedData.h Atom.h AtomExtra.h AtomMask.h AtomType.h BaseIOtype.h BondSearch.h Box.h Cmd.h CmdList.h Command.h Constants.h CoordinateInfo.h CpptrajFile.h CpptrajState.h CpptrajStdio.h DataFile.h DataFileList.h DataIO.h DataSet.h DataSetList.h DataSet_Coords.h DataSet_Coords_REF.h Dimension.h DispatchObject.h EnsembleIn.h EnsembleOutList.h Exec.h Exec_Help.h FileIO.h FileName.h FileTypes.h Frame.h FramePtrArray.h InputTrajCommon.h MaskToken.h Matrix_3x3.h MetaData.h Molecule.h NameType.h Parallel.h ParameterHolders.h ParameterSet.h ParameterTypes.h ParmFile.h ParmIO.h Range.h ReferenceFrame.h ReplicaDimArray.h ReplicaInfo.h Residue.h SymbolExporting.h TextFormat.h Timer.h Topology.h TrajFrameCounter.h TrajectoryFile.h Trajin.h TrajinList.h TrajoutList.h TypeNameHolder.h VariableArray.h Vec3.h Exec_LoadCrd.o : Exec_LoadCrd.cpp Action.h ActionList.h ActionState.h Analysis.h AnalysisList.h AnalysisState.h ArgList.h AssociatedData.h Atom.h AtomExtra.h AtomMask.h AtomType.h BaseIOtype.h Box.h Constants.h CoordinateInfo.h CpptrajFile.h CpptrajState.h CpptrajStdio.h DataFile.h DataFileList.h DataIO.h DataSet.h DataSetList.h DataSet_Coords.h DataSet_Coords_REF.h Dimension.h DispatchObject.h EnsembleIn.h EnsembleOutList.h Exec.h Exec_LoadCrd.h FileIO.h FileName.h FileTypes.h Frame.h FramePtrArray.h InputTrajCommon.h MaskToken.h Matrix_3x3.h MetaData.h Molecule.h NameType.h Parallel.h ParameterHolders.h ParameterSet.h ParameterTypes.h Range.h ReferenceFrame.h ReplicaDimArray.h ReplicaInfo.h Residue.h SymbolExporting.h TextFormat.h Timer.h Topology.h TrajFrameCounter.h Trajin.h TrajinList.h Trajin_Single.h TrajoutList.h TypeNameHolder.h Vec3.h Exec_LoadTraj.o : Exec_LoadTraj.cpp Action.h ActionList.h ActionState.h Analysis.h AnalysisList.h AnalysisState.h ArgList.h AssociatedData.h Atom.h AtomExtra.h AtomMask.h AtomType.h BaseIOtype.h Box.h Constants.h CoordinateInfo.h CpptrajFile.h CpptrajState.h CpptrajStdio.h DataFile.h DataFileList.h DataIO.h DataSet.h DataSetList.h DataSet_Coords.h DataSet_Coords_REF.h DataSet_Coords_TRJ.h Dimension.h DispatchObject.h EnsembleIn.h EnsembleOutList.h Exec.h Exec_LoadTraj.h FileIO.h FileName.h FileTypes.h Frame.h FramePtrArray.h InputTrajCommon.h MaskToken.h Matrix_3x3.h MetaData.h Molecule.h NameType.h Parallel.h ParameterHolders.h ParameterSet.h ParameterTypes.h Range.h ReferenceFrame.h ReplicaDimArray.h ReplicaInfo.h Residue.h SymbolExporting.h TextFormat.h Timer.h Topology.h TrajFrameCounter.h TrajFrameIndex.h Trajin.h TrajinList.h TrajoutList.h TypeNameHolder.h Vec3.h Exec_ParallelAnalysis.o : Exec_ParallelAnalysis.cpp Action.h ActionList.h ActionState.h Analysis.h AnalysisList.h AnalysisState.h ArgList.h AssociatedData.h Atom.h AtomExtra.h AtomMask.h AtomType.h BaseIOtype.h Box.h Constants.h CoordinateInfo.h CpptrajFile.h CpptrajState.h CpptrajStdio.h DataFile.h DataFileList.h DataIO.h DataSet.h DataSetList.h DataSet_Coords.h DataSet_Coords_REF.h Dimension.h DispatchObject.h EnsembleIn.h EnsembleOutList.h Exec.h Exec_ParallelAnalysis.h FileIO.h FileName.h FileTypes.h Frame.h FramePtrArray.h InputTrajCommon.h MaskToken.h Matrix_3x3.h MetaData.h Molecule.h NameType.h Parallel.h ParameterHolders.h ParameterSet.h ParameterTypes.h Range.h ReferenceFrame.h ReplicaDimArray.h ReplicaInfo.h Residue.h SymbolExporting.h TextFormat.h Timer.h Topology.h TrajFrameCounter.h Trajin.h TrajinList.h TrajoutList.h TypeNameHolder.h Vec3.h @@ -266,9 +266,9 @@ Exec_Precision.o : Exec_Precision.cpp Action.h ActionList.h ActionState.h Analys Exec_PrintData.o : Exec_PrintData.cpp Action.h ActionList.h ActionState.h Analysis.h AnalysisList.h AnalysisState.h ArgList.h AssociatedData.h Atom.h AtomExtra.h AtomMask.h AtomType.h BaseIOtype.h Box.h Constants.h CoordinateInfo.h CpptrajFile.h CpptrajState.h CpptrajStdio.h DataFile.h DataFileList.h DataIO.h DataSet.h DataSetList.h DataSet_Coords.h DataSet_Coords_REF.h Dimension.h DispatchObject.h EnsembleIn.h EnsembleOutList.h Exec.h Exec_PrintData.h FileIO.h FileName.h FileTypes.h Frame.h FramePtrArray.h InputTrajCommon.h MaskToken.h Matrix_3x3.h MetaData.h Molecule.h NameType.h Parallel.h ParameterHolders.h ParameterSet.h ParameterTypes.h Range.h ReferenceFrame.h ReplicaDimArray.h ReplicaInfo.h Residue.h SymbolExporting.h TextFormat.h Timer.h Topology.h TrajFrameCounter.h Trajin.h TrajinList.h TrajoutList.h TypeNameHolder.h Vec3.h Exec_ReadData.o : Exec_ReadData.cpp Action.h ActionList.h ActionState.h Analysis.h AnalysisList.h AnalysisState.h ArgList.h AssociatedData.h Atom.h AtomExtra.h AtomMask.h AtomType.h BaseIOtype.h Box.h Constants.h CoordinateInfo.h CpptrajFile.h CpptrajState.h CpptrajStdio.h DataFile.h DataFileList.h DataIO.h DataSet.h DataSetList.h DataSet_Coords.h DataSet_Coords_REF.h Dimension.h DispatchObject.h EnsembleIn.h EnsembleOutList.h Exec.h Exec_ReadData.h FileIO.h FileName.h FileTypes.h Frame.h FramePtrArray.h InputTrajCommon.h MaskToken.h Matrix_3x3.h MetaData.h Molecule.h NameType.h Parallel.h ParameterHolders.h ParameterSet.h ParameterTypes.h Range.h ReferenceFrame.h ReplicaDimArray.h ReplicaInfo.h Residue.h SymbolExporting.h TextFormat.h Timer.h Topology.h TrajFrameCounter.h Trajin.h TrajinList.h TrajoutList.h TypeNameHolder.h Vec3.h Exec_ReadEnsembleData.o : Exec_ReadEnsembleData.cpp Action.h ActionList.h ActionState.h Analysis.h AnalysisList.h AnalysisState.h ArgList.h AssociatedData.h Atom.h AtomExtra.h AtomMask.h AtomType.h BaseIOtype.h Box.h Constants.h CoordinateInfo.h CpptrajFile.h CpptrajState.h CpptrajStdio.h DataFile.h DataFileList.h DataIO.h DataSet.h DataSetList.h DataSet_Coords.h DataSet_Coords_REF.h Dimension.h DispatchObject.h EnsembleIn.h EnsembleOutList.h Exec.h Exec_ReadEnsembleData.h FileIO.h FileName.h FileTypes.h Frame.h FramePtrArray.h InputTrajCommon.h MaskToken.h Matrix_3x3.h MetaData.h Molecule.h NameType.h Parallel.h ParameterHolders.h ParameterSet.h ParameterTypes.h Range.h ReferenceFrame.h ReplicaDimArray.h ReplicaInfo.h Residue.h SymbolExporting.h TextFormat.h Timer.h Topology.h TrajFrameCounter.h Trajin.h TrajinList.h TrajoutList.h TypeNameHolder.h Vec3.h -Exec_ReadInput.o : Exec_ReadInput.cpp Action.h ActionList.h ActionState.h Analysis.h AnalysisList.h AnalysisState.h ArgList.h AssociatedData.h Atom.h AtomExtra.h AtomMask.h AtomType.h BaseIOtype.h Box.h Cmd.h CmdList.h Command.h Constants.h Control.h CoordinateInfo.h CpptrajFile.h CpptrajState.h CpptrajStdio.h DataFile.h DataFileList.h DataIO.h DataSet.h DataSetList.h DataSet_Coords.h DataSet_Coords_REF.h Dimension.h DispatchObject.h EnsembleIn.h EnsembleOutList.h Exec.h Exec_ReadInput.h FileIO.h FileName.h FileTypes.h Frame.h FramePtrArray.h InputTrajCommon.h MaskToken.h Matrix_3x3.h MetaData.h Molecule.h NameType.h Parallel.h ParameterHolders.h ParameterSet.h ParameterTypes.h Range.h ReferenceFrame.h ReplicaDimArray.h ReplicaInfo.h Residue.h SymbolExporting.h TextFormat.h Timer.h Topology.h TrajFrameCounter.h Trajin.h TrajinList.h TrajoutList.h TypeNameHolder.h VariableArray.h Vec3.h +Exec_ReadInput.o : Exec_ReadInput.cpp Action.h ActionList.h ActionState.h Analysis.h AnalysisList.h AnalysisState.h ArgList.h AssociatedData.h Atom.h AtomExtra.h AtomMask.h AtomType.h BaseIOtype.h Box.h Cmd.h CmdList.h Command.h Constants.h CoordinateInfo.h CpptrajFile.h CpptrajState.h CpptrajStdio.h DataFile.h DataFileList.h DataIO.h DataSet.h DataSetList.h DataSet_Coords.h DataSet_Coords_REF.h Dimension.h DispatchObject.h EnsembleIn.h EnsembleOutList.h Exec.h Exec_ReadInput.h FileIO.h FileName.h FileTypes.h Frame.h FramePtrArray.h InputTrajCommon.h MaskToken.h Matrix_3x3.h MetaData.h Molecule.h NameType.h Parallel.h ParameterHolders.h ParameterSet.h ParameterTypes.h Range.h ReferenceFrame.h ReplicaDimArray.h ReplicaInfo.h Residue.h SymbolExporting.h TextFormat.h Timer.h Topology.h TrajFrameCounter.h Trajin.h TrajinList.h TrajoutList.h TypeNameHolder.h VariableArray.h Vec3.h Exec_RotateDihedral.o : Exec_RotateDihedral.cpp Action.h ActionList.h ActionState.h Analysis.h AnalysisList.h AnalysisState.h ArgList.h AssociatedData.h Atom.h AtomExtra.h AtomMask.h AtomType.h BaseIOtype.h Box.h Constants.h CoordinateInfo.h CpptrajFile.h CpptrajState.h CpptrajStdio.h DataFile.h DataFileList.h DataIO.h DataSet.h DataSetList.h DataSet_Coords.h DataSet_Coords_REF.h DihedralSearch.h Dimension.h DispatchObject.h EnsembleIn.h EnsembleOutList.h Exec.h Exec_RotateDihedral.h FileIO.h FileName.h FileTypes.h Frame.h FramePtrArray.h InputTrajCommon.h MaskToken.h Matrix_3x3.h MetaData.h Molecule.h NameType.h Parallel.h ParameterHolders.h ParameterSet.h ParameterTypes.h Range.h ReferenceFrame.h ReplicaDimArray.h ReplicaInfo.h Residue.h SymbolExporting.h TextFormat.h Timer.h Topology.h TorsionRoutines.h TrajFrameCounter.h Trajin.h TrajinList.h TrajoutList.h TypeNameHolder.h Vec3.h -Exec_RunAnalysis.o : Exec_RunAnalysis.cpp Action.h ActionList.h ActionState.h Analysis.h AnalysisList.h AnalysisState.h ArgList.h AssociatedData.h Atom.h AtomExtra.h AtomMask.h AtomType.h BaseIOtype.h Box.h Cmd.h CmdList.h Command.h Constants.h Control.h CoordinateInfo.h CpptrajFile.h CpptrajState.h CpptrajStdio.h DataFile.h DataFileList.h DataIO.h DataSet.h DataSetList.h DataSet_Coords.h DataSet_Coords_REF.h Dimension.h DispatchObject.h EnsembleIn.h EnsembleOutList.h Exec.h Exec_RunAnalysis.h FileIO.h FileName.h FileTypes.h Frame.h FramePtrArray.h InputTrajCommon.h MaskToken.h Matrix_3x3.h MetaData.h Molecule.h NameType.h Parallel.h ParameterHolders.h ParameterSet.h ParameterTypes.h Range.h ReferenceFrame.h ReplicaDimArray.h ReplicaInfo.h Residue.h SymbolExporting.h TextFormat.h Timer.h Topology.h TrajFrameCounter.h Trajin.h TrajinList.h TrajoutList.h TypeNameHolder.h VariableArray.h Vec3.h +Exec_RunAnalysis.o : Exec_RunAnalysis.cpp Action.h ActionList.h ActionState.h Analysis.h AnalysisList.h AnalysisState.h ArgList.h AssociatedData.h Atom.h AtomExtra.h AtomMask.h AtomType.h BaseIOtype.h Box.h Cmd.h CmdList.h Command.h Constants.h CoordinateInfo.h CpptrajFile.h CpptrajState.h CpptrajStdio.h DataFile.h DataFileList.h DataIO.h DataSet.h DataSetList.h DataSet_Coords.h DataSet_Coords_REF.h Dimension.h DispatchObject.h EnsembleIn.h EnsembleOutList.h Exec.h Exec_RunAnalysis.h FileIO.h FileName.h FileTypes.h Frame.h FramePtrArray.h InputTrajCommon.h MaskToken.h Matrix_3x3.h MetaData.h Molecule.h NameType.h Parallel.h ParameterHolders.h ParameterSet.h ParameterTypes.h Range.h ReferenceFrame.h ReplicaDimArray.h ReplicaInfo.h Residue.h SymbolExporting.h TextFormat.h Timer.h Topology.h TrajFrameCounter.h Trajin.h TrajinList.h TrajoutList.h TypeNameHolder.h VariableArray.h Vec3.h Exec_ScaleDihedralK.o : Exec_ScaleDihedralK.cpp Action.h ActionList.h ActionState.h Analysis.h AnalysisList.h AnalysisState.h ArgList.h AssociatedData.h Atom.h AtomExtra.h AtomMask.h AtomType.h BaseIOtype.h Box.h Constants.h CoordinateInfo.h CpptrajFile.h CpptrajState.h CpptrajStdio.h DataFile.h DataFileList.h DataIO.h DataSet.h DataSetList.h DataSet_Coords.h DataSet_Coords_REF.h Dimension.h DispatchObject.h EnsembleIn.h EnsembleOutList.h Exec.h Exec_ScaleDihedralK.h FileIO.h FileName.h FileTypes.h Frame.h FramePtrArray.h InputTrajCommon.h MaskToken.h Matrix_3x3.h MetaData.h Molecule.h NameType.h Parallel.h ParameterHolders.h ParameterSet.h ParameterTypes.h Range.h ReferenceFrame.h ReplicaDimArray.h ReplicaInfo.h Residue.h SymbolExporting.h TextFormat.h Timer.h Topology.h TrajFrameCounter.h Trajin.h TrajinList.h TrajoutList.h TypeNameHolder.h Vec3.h Exec_SequenceAlign.o : Exec_SequenceAlign.cpp Action.h ActionFrameCounter.h ActionList.h ActionState.h Analysis.h AnalysisList.h AnalysisState.h ArgList.h AssociatedData.h Atom.h AtomExtra.h AtomMask.h AtomType.h BaseIOtype.h Box.h BufferedLine.h Constants.h CoordinateInfo.h CpptrajFile.h CpptrajState.h CpptrajStdio.h DataFile.h DataFileList.h DataIO.h DataSet.h DataSetList.h DataSet_Coords.h DataSet_Coords_REF.h Dimension.h DispatchObject.h EnsembleIn.h EnsembleOutList.h Exec.h Exec_SequenceAlign.h FileIO.h FileName.h FileTypes.h Frame.h FramePtrArray.h InputTrajCommon.h MaskToken.h Matrix_3x3.h MetaData.h Molecule.h NameType.h OutputTrajCommon.h Parallel.h ParameterHolders.h ParameterSet.h ParameterTypes.h Range.h ReferenceFrame.h ReplicaDimArray.h ReplicaInfo.h Residue.h StringRoutines.h SymbolExporting.h TextFormat.h Timer.h Topology.h TrajFrameCounter.h TrajectoryFile.h Trajin.h TrajinList.h TrajoutList.h Trajout_Single.h TypeNameHolder.h Vec3.h Exec_SortEnsembleData.o : Exec_SortEnsembleData.cpp Action.h ActionList.h ActionState.h Analysis.h AnalysisList.h AnalysisState.h ArgList.h AssociatedData.h Atom.h AtomExtra.h AtomMask.h AtomType.h BaseIOtype.h Box.h Constants.h CoordinateInfo.h Cph.h CpptrajFile.h CpptrajState.h CpptrajStdio.h DataFile.h DataFileList.h DataIO.h DataSet.h DataSetList.h DataSet_1D.h DataSet_Coords.h DataSet_Coords_REF.h DataSet_PHREMD.h DataSet_PHREMD_Explicit.h DataSet_PHREMD_Implicit.h DataSet_pH.h Dimension.h DispatchObject.h EnsembleIn.h EnsembleOutList.h Exec.h Exec_SortEnsembleData.h FileIO.h FileName.h FileTypes.h Frame.h FramePtrArray.h InputTrajCommon.h MaskToken.h Matrix_3x3.h MetaData.h Molecule.h NameType.h Parallel.h ParameterHolders.h ParameterSet.h ParameterTypes.h Range.h ReferenceFrame.h ReplicaDimArray.h ReplicaInfo.h Residue.h StringRoutines.h SymbolExporting.h TextFormat.h Timer.h Topology.h TrajFrameCounter.h Trajin.h TrajinList.h TrajoutList.h TypeNameHolder.h Vec3.h @@ -325,7 +325,7 @@ PubFFT.o : PubFFT.cpp ArrayIterator.h ComplexArray.h CpptrajStdio.h PubFFT.h RPNcalc.o : RPNcalc.cpp ArgList.h ArrayIterator.h AssociatedData.h Atom.h AtomExtra.h AtomMask.h AtomType.h Box.h ComplexArray.h Constants.h CoordinateInfo.h CpptrajFile.h CpptrajStdio.h DataSet.h DataSetList.h DataSet_1D.h DataSet_2D.h DataSet_3D.h DataSet_Coords.h DataSet_Coords_REF.h DataSet_GridFlt.h DataSet_MatrixDbl.h DataSet_Vector.h DataSet_double.h Dimension.h FileIO.h FileName.h Frame.h Grid.h GridBin.h MaskToken.h Matrix.h Matrix_3x3.h MetaData.h Molecule.h NameType.h Parallel.h ParameterHolders.h ParameterSet.h ParameterTypes.h RPNcalc.h Range.h ReferenceFrame.h ReplicaDimArray.h Residue.h SymbolExporting.h TextFormat.h Timer.h Topology.h TypeNameHolder.h Vec3.h Random.o : Random.cpp CpptrajStdio.h Random.h Range.o : Range.cpp ArgList.h CpptrajStdio.h Range.h -ReadLine.o : ReadLine.cpp Action.h ActionList.h ActionState.h Analysis.h AnalysisList.h AnalysisState.h ArgList.h AssociatedData.h Atom.h AtomExtra.h AtomMask.h AtomType.h BaseIOtype.h Box.h Cmd.h CmdInput.h CmdList.h Command.h Constants.h Control.h CoordinateInfo.h CpptrajFile.h CpptrajState.h CpptrajStdio.h DataFile.h DataFileList.h DataIO.h DataSet.h DataSetList.h DataSet_Coords.h DataSet_Coords_REF.h Dimension.h DispatchObject.h EnsembleIn.h EnsembleOutList.h FileIO.h FileName.h FileTypes.h Frame.h FramePtrArray.h InputTrajCommon.h MaskToken.h Matrix_3x3.h MetaData.h Molecule.h NameType.h Parallel.h ParameterHolders.h ParameterSet.h ParameterTypes.h Range.h ReadLine.h ReferenceFrame.h ReplicaDimArray.h ReplicaInfo.h Residue.h SymbolExporting.h TextFormat.h Timer.h Topology.h TrajFrameCounter.h Trajin.h TrajinList.h TrajoutList.h TypeNameHolder.h VariableArray.h Vec3.h +ReadLine.o : ReadLine.cpp Action.h ActionList.h ActionState.h Analysis.h AnalysisList.h AnalysisState.h ArgList.h AssociatedData.h Atom.h AtomExtra.h AtomMask.h AtomType.h BaseIOtype.h Box.h Cmd.h CmdInput.h CmdList.h Command.h Constants.h CoordinateInfo.h CpptrajFile.h CpptrajState.h CpptrajStdio.h DataFile.h DataFileList.h DataIO.h DataSet.h DataSetList.h DataSet_Coords.h DataSet_Coords_REF.h Dimension.h DispatchObject.h EnsembleIn.h EnsembleOutList.h FileIO.h FileName.h FileTypes.h Frame.h FramePtrArray.h InputTrajCommon.h MaskToken.h Matrix_3x3.h MetaData.h Molecule.h NameType.h Parallel.h ParameterHolders.h ParameterSet.h ParameterTypes.h Range.h ReadLine.h ReferenceFrame.h ReplicaDimArray.h ReplicaInfo.h Residue.h SymbolExporting.h TextFormat.h Timer.h Topology.h TrajFrameCounter.h Trajin.h TrajinList.h TrajoutList.h TypeNameHolder.h VariableArray.h Vec3.h ReferenceAction.o : ReferenceAction.cpp ArgList.h AssociatedData.h Atom.h AtomExtra.h AtomMask.h AtomType.h Box.h Constants.h CoordinateInfo.h CpptrajFile.h CpptrajStdio.h DataSet.h DataSetList.h DataSet_Coords.h DataSet_Coords_REF.h DataSet_Coords_TRJ.h Dimension.h FileIO.h FileName.h Frame.h InputTrajCommon.h MaskToken.h Matrix_3x3.h MetaData.h Molecule.h NameType.h Parallel.h ParameterHolders.h ParameterSet.h ParameterTypes.h Range.h ReferenceAction.h ReferenceFrame.h ReplicaDimArray.h Residue.h SymbolExporting.h TextFormat.h Timer.h Topology.h TrajFrameCounter.h TrajFrameIndex.h Trajin.h TypeNameHolder.h Vec3.h RemdReservoirNC.o : RemdReservoirNC.cpp Atom.h AtomMask.h Box.h CoordinateInfo.h CpptrajStdio.h FileName.h Frame.h MaskToken.h Matrix_3x3.h Molecule.h NC_Routines.h NameType.h NetcdfFile.h Parallel.h RemdReservoirNC.h ReplicaDimArray.h Residue.h SymbolExporting.h Vec3.h Residue.o : Residue.cpp NameType.h Residue.h From d2055fce06959210e9e009efa43ef59102d995aa Mon Sep 17 00:00:00 2001 From: "Daniel R. Roe" Date: Tue, 17 Dec 2019 13:43:44 -0500 Subject: [PATCH 002/162] DRR - Split ControlBlock class stuff from the Control file. --- src/Command.cpp | 2 + src/Control.cpp | 368 +---------------------------------------- src/Control.h | 75 +-------- src/ControlBlock.h | 38 +++++ src/ControlBlock_For.h | 43 +++++ src/cpptrajdepend | 3 +- src/cpptrajfiles | 1 + 7 files changed, 92 insertions(+), 438 deletions(-) create mode 100644 src/ControlBlock.h create mode 100644 src/ControlBlock_For.h diff --git a/src/Command.cpp b/src/Command.cpp index b0923e42ba..deb15dbf24 100644 --- a/src/Command.cpp +++ b/src/Command.cpp @@ -8,6 +8,8 @@ #include "RPNcalc.h" #include "Deprecated.h" #include "Control.h" +#include "ControlBlock.h" +#include "ControlBlock_For.h" #include "Parallel.h" // ----- GENERAL --------------------------------------------------------------- #include "Exec_Analyze.h" diff --git a/src/Control.cpp b/src/Control.cpp index e94fc117f8..961c97df89 100644 --- a/src/Control.cpp +++ b/src/Control.cpp @@ -1,374 +1,10 @@ #include // std::min #include "Control.h" #include "CpptrajStdio.h" -#include "StringRoutines.h" #include "VariableArray.h" +#include "ArgList.h" +#include "StringRoutines.h" -void ControlBlock_For::Help() const { - mprintf("\t{ {atoms|residues|molecules|molfirstres|mollastres}\n" - "\t inmask [%s] ... |\n" - "\t in \n" - "\t =;[;][] ... }\n", - DataSetList::TopIdxArgs); - mprintf("\tEND KEYWORD: 'done'\n"); - mprintf(" Create a 'for' loop around specified mask(s), comma-separated list of\n" - " strings and/or integer value(s). Any number and combination of masks,\n" - " lists, and integers can be specified. Strings in lists can be file\n" - " names containing wildcard characters ('*' or '?').\n" - " Variables created in the for loop can be referenced by prefacing\n" - " the name with a '$' character.\n" - " Available 'end OP' : '<' '>'\n" - " Available 'increment OP' : '++', '--', '+=', '-='\n" - " Note that variables are NOT incremented after the final loop iteration,\n" - " i.e. loop variables always retain their final value.\n" - " Examples:\n" - "\tfor atoms A0 inmask :1-27&!@H= i=1;i++\n" - "\t distance d$i :TCS $A0 out $i.dat\n" - "\tdone\n" - "\tfor TRAJ in trajA*.nc,trajB*.nc\n" - "\t trajin $TRAJ 1 last 10\n" - "\tdone\n" - ); -} - -/** Set up each mask/integer loop. */ -int ControlBlock_For::SetupBlock(CpptrajState& State, ArgList& argIn) { - mprintf(" Setting up 'for' loop.\n"); - Vars_.clear(); - Topology* currentTop = 0; - static const char* TypeStr[] = { "ATOMS ", "RESIDUES ", "MOLECULES ", - "MOL_FIRST_RES ", "MOL_LAST_RES " }; - static const char* OpStr[] = {"+=", "-=", "<", ">"}; - description_.assign("for ("); - int MaxIterations = -1; - int iarg = 0; - while (iarg < argIn.Nargs()) - { - // Advance to next unmarked argument. - while (iarg < argIn.Nargs() && argIn.Marked(iarg)) iarg++; - if (iarg == argIn.Nargs()) break; - // Determine 'for' type - ForType ftype = UNKNOWN; - bool isMaskFor = true; - int argToMark = iarg; - if ( argIn[iarg] == "atoms" ) ftype = ATOMS; - else if ( argIn[iarg] == "residues" ) ftype = RESIDUES; - else if ( argIn[iarg] == "molecules" ) ftype = MOLECULES; - else if ( argIn[iarg] == "molfirstres" ) ftype = MOLFIRSTRES; - else if ( argIn[iarg] == "mollastres" ) ftype = MOLLASTRES; - else if ( argIn[iarg].find(";") != std::string::npos ) { - isMaskFor = false; - ftype = INTEGER; - } - // If type is still unknown, check for list. - if (ftype == UNKNOWN) { - if (iarg+1 < argIn.Nargs() && argIn[iarg+1] == "in") { - ftype = LIST; - isMaskFor = false; - argToMark = iarg+1; - } - } - // Exit if type could not be determined. - if (ftype == UNKNOWN) { - mprinterr("Error: for loop type not specfied.\n"); - return 1; - } - argIn.MarkArg(argToMark); - Vars_.push_back( LoopVar() ); - LoopVar& MH = Vars_.back(); - int Niterations = -1; - // Set up for specific type - if (description_ != "for (") description_.append(", "); - // ------------------------------------------- - if (isMaskFor) - { - // {atoms|residues|molecules} inmask [TOP KEYWORDS] - if (argIn[iarg+2] != "inmask") { - mprinterr("Error: Expected 'inmask', got %s\n", argIn[iarg+2].c_str()); - return 1; - } - AtomMask currentMask; - if (currentMask.SetMaskString( argIn.GetStringKey("inmask") )) return 1; - MH.varType_ = ftype; - Topology* top = State.DSL().GetTopByIndex( argIn ); - if (top != 0) currentTop = top; - if (currentTop == 0) return 1; - MH.varname_ = argIn.GetStringNext(); - if (MH.varname_.empty()) { - mprinterr("Error: 'for inmask': missing variable name.\n"); - return 1; - } - MH.varname_ = "$" + MH.varname_; - // Set up mask - if (currentTop->SetupIntegerMask( currentMask )) return 1; - currentMask.MaskInfo(); - if (currentMask.None()) return 1; - // Set up indices - if (MH.varType_ == ATOMS) - MH.Idxs_ = currentMask.Selected(); - else if (MH.varType_ == RESIDUES) { - int curRes = -1; - for (AtomMask::const_iterator at = currentMask.begin(); at != currentMask.end(); ++at) { - int res = (*currentTop)[*at].ResNum(); - if (res != curRes) { - MH.Idxs_.push_back( res ); - curRes = res; - } - } - } else if (MH.varType_ == MOLECULES || - MH.varType_ == MOLFIRSTRES || - MH.varType_ == MOLLASTRES) - { - int curMol = -1; - for (AtomMask::const_iterator at = currentMask.begin(); at != currentMask.end(); ++at) { - int mol = (*currentTop)[*at].MolNum(); - if (mol != curMol) { - if (MH.varType_ == MOLECULES) - MH.Idxs_.push_back( mol ); - else { - int res; - if (MH.varType_ == MOLFIRSTRES) - res = (*currentTop)[ currentTop->Mol( mol ).BeginAtom() ].ResNum(); - else // MOLLASTRES - res = (*currentTop)[ currentTop->Mol( mol ).EndAtom()-1 ].ResNum(); - MH.Idxs_.push_back( res ); - } - curMol = mol; - } - } - } - Niterations = (int)MH.Idxs_.size(); - description_.append(std::string(TypeStr[MH.varType_]) + - MH.varname_ + " inmask " + currentMask.MaskExpression()); - // ------------------------------------------- - } else if (ftype == INTEGER) { - // [=;[;][]] - MH.varType_ = ftype; - ArgList varArg( argIn[iarg], ";" ); - if (varArg.Nargs() < 2 || varArg.Nargs() > 3) { - mprinterr("Error: Malformed 'for' loop variable.\n" - "Error: Expected '[=;[;][]]'\n" - "Error: Got '%s'\n", argIn[iarg].c_str()); - return 1; - } - // First argument: = - ArgList startArg( varArg[0], "=" ); - if (startArg.Nargs() != 2) { - mprinterr("Error: Malformed 'start' argument.\n" - "Error: Expected =, got '%s'\n", varArg[0].c_str()); - return 1; - } - MH.varname_ = startArg[0]; - if (!validInteger(startArg[1])) { - // TODO allow variables - mprinterr("Error: Start argument must be an integer.\n"); - return 1; - } else - MH.start_ = convertToInteger(startArg[1]); - // Second argument: - size_t pos0 = MH.varname_.size(); - size_t pos1 = pos0 + 1; - MH.endOp_ = NO_OP; - int iargIdx = 1; - if (varArg.Nargs() == 3) { - iargIdx = 2; - if ( varArg[1][pos0] == '<' ) - MH.endOp_ = LESS_THAN; - else if (varArg[1][pos0] == '>') - MH.endOp_ = GREATER_THAN; - if (MH.endOp_ == NO_OP) { - mprinterr("Error: Unrecognized end op: '%s'\n", - varArg[1].substr(pos0, pos1-pos0).c_str()); - return 1; - } - std::string endStr = varArg[1].substr(pos1); - if (!validInteger(endStr)) { - // TODO allow variables - mprinterr("Error: End argument must be an integer.\n"); - return 1; - } else - MH.end_ = convertToInteger(endStr); - } - // Third argument: [] - pos1 = pos0 + 2; - MH.incOp_ = NO_OP; - bool needValue = false; - if ( varArg[iargIdx][pos0] == '+' ) { - if (varArg[iargIdx][pos0+1] == '+') { - MH.incOp_ = INCREMENT; - MH.inc_ = 1; - } else if (varArg[iargIdx][pos0+1] == '=') { - MH.incOp_ = INCREMENT; - needValue = true; - } - } else if ( varArg[iargIdx][pos0] == '-' ) { - if (varArg[iargIdx][pos0+1] == '-' ) { - MH.incOp_ = DECREMENT; - MH.inc_ = 1; - } else if (varArg[iargIdx][pos0+1] == '=') { - MH.incOp_ = DECREMENT; - needValue = true; - } - } - if (MH.incOp_ == NO_OP) { - mprinterr("Error: Unrecognized increment op: '%s'\n", - varArg[iargIdx].substr(pos0, pos1-pos0).c_str()); - return 1; - } - if (needValue) { - std::string incStr = varArg[iargIdx].substr(pos1); - if (!validInteger(incStr)) { - mprinterr("Error: increment value is not a valid integer.\n"); - return 1; - } - MH.inc_ = convertToInteger(incStr); - if (MH.inc_ < 1) { - mprinterr("Error: Extra '-' detected in increment.\n"); - return 1; - } - } - // Description - MH.varname_ = "$" + MH.varname_; - std::string sval = integerToString(MH.start_); - description_.append("(" + MH.varname_ + "=" + sval + "; "); - std::string eval; - if (iargIdx == 2) { - // End argument present - eval = integerToString(MH.end_); - description_.append(MH.varname_ + std::string(OpStr[MH.endOp_]) + eval + "; "); - // Check end > start for increment, start > end for decrement - int maxval, minval; - if (MH.incOp_ == INCREMENT) { - if (MH.start_ >= MH.end_) { - mprinterr("Error: start must be less than end for increment.\n"); - return 1; - } - minval = MH.start_; - maxval = MH.end_; - } else { - if (MH.end_ >= MH.start_) { - mprinterr("Error: end must be less than start for decrement.\n"); - return 1; - } - minval = MH.end_; - maxval = MH.start_; - } - // Figure out number of iterations - Niterations = (maxval - minval) / MH.inc_; - if (((maxval-minval) % MH.inc_) > 0) Niterations++; - } - description_.append( MH.varname_ + std::string(OpStr[MH.incOp_]) + - integerToString(MH.inc_) + ")" ); - // If decrementing just negate value - if (MH.incOp_ == DECREMENT) - MH.inc_ = -MH.inc_; - // DEBUG - //mprintf("DEBUG: start=%i endOp=%i end=%i incOp=%i val=%i startArg=%s endArg=%s\n", - // MH.start_, (int)MH.endOp_, MH.end_, (int)MH.incOp_, MH.inc_, - // MH.startArg_.c_str(), MH.endArg_.c_str()); - // ------------------------------------------- - } else if (ftype == LIST) { - // in [,...] - MH.varType_ = ftype; - // Variable name - MH.varname_ = argIn.GetStringNext(); - if (MH.varname_.empty()) { - mprinterr("Error: 'for in': missing variable name.\n"); - return 1; - } - MH.varname_ = "$" + MH.varname_; - // Comma-separated list of strings - std::string listArg = argIn.GetStringNext(); - if (listArg.empty()) { - mprinterr("Error: 'for in': missing comma-separated list of strings.\n"); - return 1; - } - ArgList list(listArg, ","); - if (list.Nargs() < 1) { - mprinterr("Error: Could not parse '%s' for 'for in'\n", listArg.c_str()); - return 1; - } - for (int il = 0; il != list.Nargs(); il++) { - // Check if file name expansion should occur - if (list[il].find_first_of("*?") != std::string::npos) { - File::NameArray files = File::ExpandToFilenames( list[il] ); - for (File::NameArray::const_iterator fn = files.begin(); fn != files.end(); ++fn) - MH.List_.push_back( fn->Full() ); - } else - MH.List_.push_back( list[il] ); - } - Niterations = (int)MH.List_.size(); - // Description - description_.append( MH.varname_ + " in " + listArg ); - - } - // Check number of values - if (MaxIterations == -1) - MaxIterations = Niterations; - else if (Niterations != -1 && Niterations != MaxIterations) { - mprintf("Warning: # iterations %i != previous # iterations %i\n", - Niterations, MaxIterations); - MaxIterations = std::min(Niterations, MaxIterations); - } - } - mprintf("\tLoop will execute for %i iterations.\n", MaxIterations); - if (MaxIterations < 1) { - mprinterr("Error: Loop has less than 1 iteration.\n"); - return 1; - } - description_.append(") do"); - - return 0; -} - -/** For each mask initialize iterator. For each integer set to start value. */ -void ControlBlock_For::Start() { - for (Marray::iterator MH = Vars_.begin(); MH != Vars_.end(); ++MH) { - if (MH->varType_ == INTEGER) - MH->currentVal_ = MH->start_; // TODO search currentvars - else if ( MH->varType_ == LIST) - MH->sdx_ = MH->List_.begin(); - else - MH->idx_ = MH->Idxs_.begin(); - } -} - -/** For each mask check if done, then update CurrentVars, then increment. */ -ControlBlock::DoneType ControlBlock_For::CheckDone(VariableArray& CurrentVars) { - static const char* prefix[] = {"@", ":", "^", ":", ":"}; - for (Marray::iterator MH = Vars_.begin(); MH != Vars_.end(); ++MH) { - // Exit as soon as one is done TODO check all? - if (MH->varType_ == INTEGER) { - if (MH->endOp_ == LESS_THAN) { - if (MH->currentVal_ >= MH->end_) return DONE; - } else if (MH->endOp_ == GREATER_THAN) { - if (MH->currentVal_ <= MH->end_) return DONE; - } - // Get variable value and update CurrentVars - CurrentVars.UpdateVariable( MH->varname_, integerToString( MH->currentVal_ )); - // Increment - MH->currentVal_ += MH->inc_; - } else if (MH->varType_ == LIST) { - if (MH->sdx_ == MH->List_.end()) return DONE; - // Get variable value - CurrentVars.UpdateVariable( MH->varname_, *(MH->sdx_) ); - // Increment - ++(MH->sdx_); - } else { - if (MH->idx_ == MH->Idxs_.end()) return DONE; - // Get variable value - std::string maskStr = prefix[MH->varType_] + integerToString(*(MH->idx_) + 1); - //mprintf("DEBUG: ControlBlock_For: %s\n", maskStr.c_str()); - // Update CurrentVars - CurrentVars.UpdateVariable( MH->varname_, maskStr ); - // Increment - ++(MH->idx_); - } - } - return NOT_DONE; -} - -// ============================================================================= void Control_Set::Help() const { mprintf("\t{ |\n" "\t {atoms|residues|molecules} inmask \n" diff --git a/src/Control.h b/src/Control.h index 14b25f9e84..cf0c4f58e6 100644 --- a/src/Control.h +++ b/src/Control.h @@ -1,77 +1,10 @@ #ifndef INC_CONTROL_H #define INC_CONTROL_H -#include "CpptrajState.h" +#include "DispatchObject.h" +#include "CpptrajState.h" // TODO do we need to return CpptrajState::RetType? +class CpptrajState; +class ArgList; class VariableArray; -/// Control block structures. -class ControlBlock : public DispatchObject { - public: - typedef std::vector ArgArray; - typedef ArgArray::const_iterator const_iterator; - /// Control block states - enum DoneType { DONE = 0, NOT_DONE, ERROR }; - - ControlBlock() : DispatchObject(CONTROL) {} - virtual ~ControlBlock() {} - /// \return Description of control block. - std::string const& Description() const { return description_; } - /// Set up control block. - virtual int SetupBlock(CpptrajState&, ArgList&) = 0; - /// Check for control block end command. - virtual bool EndBlock(ArgList const&) const = 0; - /// Add command to control block. - virtual void AddCommand(ArgList const&) = 0; - /// \return iterator to first command in the block. - virtual const_iterator begin() const = 0; - /// \return iterator to last command in the block. - virtual const_iterator end() const = 0; - /// Start control block. Init internal variables if necessary. - virtual void Start() = 0; - /// Add/update variables and increment, check block state. - virtual DoneType CheckDone(VariableArray&) = 0; - protected: - std::string description_; ///< Describe control TODO private? -}; - -/// Loop over mask expression or integer -class ControlBlock_For : public ControlBlock { - public: - ControlBlock_For() {} - void Help() const; - DispatchObject* Alloc() const { return (DispatchObject*)new ControlBlock_For(); } - - int SetupBlock(CpptrajState&, ArgList&); - bool EndBlock(ArgList const& a) const { return (a.CommandIs("done")); } - void AddCommand(ArgList const& c) { commands_.push_back(c); } - const_iterator begin() const { return commands_.begin(); } - const_iterator end() const { return commands_.end(); } - void Start(); - DoneType CheckDone(VariableArray&); - private: - enum ForType {ATOMS=0, RESIDUES, MOLECULES, MOLFIRSTRES, MOLLASTRES, INTEGER, LIST, UNKNOWN}; - enum OpType { INCREMENT=0, DECREMENT, LESS_THAN, GREATER_THAN, NO_OP }; - typedef std::vector Iarray; - typedef std::vector Sarray; - class LoopVar { - public: - LoopVar() : varType_(UNKNOWN) {} - Iarray Idxs_; ///< (MASK only) Selected atom/residue/molecule indices - Iarray::const_iterator idx_; ///< (MASK only) Current atom/residue/molecule index - Sarray List_; ///< (LIST only) List of strings to iterate over. - Sarray::const_iterator sdx_; ///< (LIST only) Iterator to current list item. - std::string varname_; ///< Loop variable name - ForType varType_; ///< Loop variable type - OpType endOp_; ///< (INTEGER only) end operator - OpType incOp_; ///< (INTEGER only) increment operator - int start_; ///< (INTEGER only) initial value - int end_; ///< (INTEGER only) end value - int inc_; ///< (INTEGER only) increment value - int currentVal_; ///< (INTEGER only) current value - }; - typedef std::vector Marray; - Marray Vars_; - ArgArray commands_; -}; -// ============================================================================= /// Work with script variables class Control : public DispatchObject { public: diff --git a/src/ControlBlock.h b/src/ControlBlock.h new file mode 100644 index 0000000000..6f8d0ed453 --- /dev/null +++ b/src/ControlBlock.h @@ -0,0 +1,38 @@ +#ifndef INC_CONTROLBLOCK_H +#define INC_CONTROLBLOCK_H +#include +#include +#include "DispatchObject.h" +class CpptrajState; +class VariableArray; +class ArgList; +/// Abstract base class for control block structures. +class ControlBlock : public DispatchObject { + public: + typedef std::vector ArgArray; + typedef ArgArray::const_iterator const_iterator; + /// Control block states + enum DoneType { DONE = 0, NOT_DONE, ERROR }; + + ControlBlock() : DispatchObject(CONTROL) {} + virtual ~ControlBlock() {} + /// \return Description of control block. + std::string const& Description() const { return description_; } + /// Set up control block. + virtual int SetupBlock(CpptrajState&, ArgList&) = 0; + /// Check for control block end command. + virtual bool EndBlock(ArgList const&) const = 0; + /// Add command to control block. + virtual void AddCommand(ArgList const&) = 0; + /// \return iterator to first command in the block. + virtual const_iterator begin() const = 0; + /// \return iterator to last command in the block. + virtual const_iterator end() const = 0; + /// Start control block. Init internal variables if necessary. + virtual void Start() = 0; + /// Add/update variables and increment, check block state. + virtual DoneType CheckDone(VariableArray&) = 0; + protected: + std::string description_; ///< Describe control TODO private? +}; +#endif diff --git a/src/ControlBlock_For.h b/src/ControlBlock_For.h new file mode 100644 index 0000000000..f9833897ba --- /dev/null +++ b/src/ControlBlock_For.h @@ -0,0 +1,43 @@ +#ifndef INC_CONTROLBLOCK_FOR_H +#define INC_CONTROLBLOCK_FOR_H +#include "ControlBlock.h" +/// Loop over mask expression or integer +class ControlBlock_For : public ControlBlock { + public: + ControlBlock_For() {} + void Help() const; + DispatchObject* Alloc() const { return (DispatchObject*)new ControlBlock_For(); } + + int SetupBlock(CpptrajState&, ArgList&); + bool EndBlock(ArgList const&) const; + void AddCommand(ArgList const& c) { commands_.push_back(c); } + const_iterator begin() const { return commands_.begin(); } + const_iterator end() const { return commands_.end(); } + void Start(); + DoneType CheckDone(VariableArray&); + private: + enum ForType {ATOMS=0, RESIDUES, MOLECULES, MOLFIRSTRES, MOLLASTRES, INTEGER, LIST, UNKNOWN}; + enum OpType { INCREMENT=0, DECREMENT, LESS_THAN, GREATER_THAN, NO_OP }; + typedef std::vector Iarray; + typedef std::vector Sarray; + class LoopVar { + public: + LoopVar() : varType_(UNKNOWN) {} + Iarray Idxs_; ///< (MASK only) Selected atom/residue/molecule indices + Iarray::const_iterator idx_; ///< (MASK only) Current atom/residue/molecule index + Sarray List_; ///< (LIST only) List of strings to iterate over. + Sarray::const_iterator sdx_; ///< (LIST only) Iterator to current list item. + std::string varname_; ///< Loop variable name + ForType varType_; ///< Loop variable type + OpType endOp_; ///< (INTEGER only) end operator + OpType incOp_; ///< (INTEGER only) increment operator + int start_; ///< (INTEGER only) initial value + int end_; ///< (INTEGER only) end value + int inc_; ///< (INTEGER only) increment value + int currentVal_; ///< (INTEGER only) current value + }; + typedef std::vector Marray; + Marray Vars_; + ArgArray commands_; +}; +#endif diff --git a/src/cpptrajdepend b/src/cpptrajdepend index e11621e2f3..b84f6e66d9 100644 --- a/src/cpptrajdepend +++ b/src/cpptrajdepend @@ -157,10 +157,11 @@ Cluster_ReadInfo.o : Cluster_ReadInfo.cpp ArgList.h ArrayIterator.h AssociatedDa Cmd.o : Cmd.cpp Cmd.h DispatchObject.h CmdInput.o : CmdInput.cpp CmdInput.h StringRoutines.h CmdList.o : CmdList.cpp Cmd.h CmdList.h DispatchObject.h -Command.o : Command.cpp Action.h ActionFrameCounter.h ActionList.h ActionState.h Action_Align.h Action_Angle.h Action_AreaPerMol.h Action_AtomMap.h Action_AtomicCorr.h Action_AtomicFluct.h Action_AutoImage.h Action_Average.h Action_Bounds.h Action_Box.h Action_Center.h Action_Channel.h Action_CheckChirality.h Action_CheckStructure.h Action_Closest.h Action_ClusterDihedral.h Action_Contacts.h Action_CreateCrd.h Action_CreateReservoir.h Action_DNAionTracker.h Action_DSSP.h Action_Density.h Action_Diffusion.h Action_Dihedral.h Action_DihedralRMS.h Action_Dipole.h Action_DistRmsd.h Action_Distance.h Action_Energy.h Action_Esander.h Action_FilterByData.h Action_FixAtomOrder.h Action_FixImagedBonds.h Action_GIST.h Action_Grid.h Action_GridFreeEnergy.h Action_HydrogenBond.h Action_Image.h Action_InfraredSpectrum.h Action_Jcoupling.h Action_LESsplit.h Action_LIE.h Action_LipidOrder.h Action_MakeStructure.h Action_Mask.h Action_Matrix.h Action_MinImage.h Action_Molsurf.h Action_MultiDihedral.h Action_MultiVector.h Action_NAstruct.h Action_NMRrst.h Action_NativeContacts.h Action_OrderParameter.h Action_Outtraj.h Action_PairDist.h Action_Pairwise.h Action_Principal.h Action_Projection.h Action_Pucker.h Action_Radgyr.h Action_Radial.h Action_RandomizeIons.h Action_Remap.h Action_ReplicateCell.h Action_Rmsd.h Action_Rotate.h Action_RunningAvg.h Action_STFC_Diffusion.h Action_Scale.h Action_SetVelocity.h Action_Spam.h Action_Strip.h Action_Surf.h Action_SymmetricRmsd.h Action_Temperature.h Action_Time.h Action_Translate.h Action_Unstrip.h Action_Unwrap.h Action_Vector.h Action_VelocityAutoCorr.h Action_Volmap.h Action_Volume.h Action_Watershell.h Action_XtalSymm.h Analysis.h AnalysisList.h AnalysisState.h Analysis_AmdBias.h Analysis_AutoCorr.h Analysis_Average.h Analysis_Clustering.h Analysis_ConstantPHStats.h Analysis_Corr.h Analysis_CrankShaft.h Analysis_CrdFluct.h Analysis_CrossCorr.h Analysis_CurveFit.h Analysis_Divergence.h Analysis_FFT.h Analysis_HausdorffDistance.h Analysis_Hist.h Analysis_IRED.h Analysis_Integrate.h Analysis_KDE.h Analysis_Lifetime.h Analysis_LowestCurve.h Analysis_Matrix.h Analysis_MeltCurve.h Analysis_Modes.h Analysis_MultiHist.h Analysis_Multicurve.h Analysis_Overlap.h Analysis_PhiPsi.h Analysis_Regression.h Analysis_RemLog.h Analysis_Rms2d.h Analysis_RmsAvgCorr.h Analysis_Rotdif.h Analysis_RunningAvg.h Analysis_Slope.h Analysis_Spline.h Analysis_State.h Analysis_Statistics.h Analysis_TI.h Analysis_Timecorr.h Analysis_VectorMath.h Analysis_Wavelet.h ArgList.h Array1D.h ArrayIterator.h AssociatedData.h Atom.h AtomExtra.h AtomMap.h AtomMask.h AtomType.h AxisType.h BaseIOtype.h Box.h BufferedLine.h CharMask.h ClusterDist.h ClusterList.h ClusterMap.h ClusterNode.h ClusterSieve.h Cmd.h CmdInput.h CmdList.h Command.h ComplexArray.h Constants.h Constraints.h Control.h CoordinateInfo.h Corr.h Cph.h CpptrajFile.h CpptrajState.h CpptrajStdio.h DataFile.h DataFileList.h DataIO.h DataSet.h DataSetList.h DataSet_1D.h DataSet_2D.h DataSet_3D.h DataSet_Cmatrix.h DataSet_Coords.h DataSet_Coords_CRD.h DataSet_Coords_REF.h DataSet_GridFlt.h DataSet_Mat3x3.h DataSet_MatrixDbl.h DataSet_MatrixFlt.h DataSet_Mesh.h DataSet_Modes.h DataSet_RemLog.h DataSet_Vector.h DataSet_double.h DataSet_float.h DataSet_integer.h DataSet_integer_mem.h DataSet_pH.h DataSet_string.h Deprecated.h DihedralSearch.h Dimension.h DispatchObject.h DistRoutines.h Energy.h Energy_Sander.h EnsembleIn.h EnsembleOutList.h Exec.h Exec_Analyze.h Exec_Calc.h Exec_CatCrd.h Exec_Change.h Exec_ClusterMap.h Exec_CombineCoords.h Exec_Commands.h Exec_CompareTop.h Exec_CrdAction.h Exec_CrdOut.h Exec_CreateSet.h Exec_DataFile.h Exec_DataFilter.h Exec_DataSetCmd.h Exec_GenerateAmberRst.h Exec_Help.h Exec_LoadCrd.h Exec_LoadTraj.h Exec_ParallelAnalysis.h Exec_ParmBox.h Exec_ParmSolvent.h Exec_ParmStrip.h Exec_ParmWrite.h Exec_PermuteDihedrals.h Exec_Precision.h Exec_PrintData.h Exec_ReadData.h Exec_ReadEnsembleData.h Exec_ReadInput.h Exec_RotateDihedral.h Exec_RunAnalysis.h Exec_ScaleDihedralK.h Exec_SequenceAlign.h Exec_SortEnsembleData.h Exec_SplitCoords.h Exec_System.h Exec_Top.h Exec_Traj.h Exec_UpdateParameters.h Exec_ViewRst.h FileIO.h FileName.h FileTypes.h Frame.h FramePtrArray.h Grid.h GridAction.h GridBin.h HistBin.h Hungarian.h ImageTypes.h ImagedAction.h InputTrajCommon.h MapAtom.h MaskArray.h MaskToken.h Matrix.h Matrix_3x3.h MetaData.h Molecule.h NameType.h NetcdfFile.h OnlineVarT.h OutputTrajCommon.h PDBfile.h PairList.h Parallel.h ParameterHolders.h ParameterSet.h ParameterTypes.h PubFFT.h RPNcalc.h Random.h Range.h ReferenceAction.h ReferenceFrame.h RemdReservoirNC.h ReplicaDimArray.h ReplicaInfo.h Residue.h Spline.h StructureCheck.h SymbolExporting.h SymmetricRmsdCalc.h TextFormat.h Timer.h Topology.h TrajFrameCounter.h TrajectoryFile.h Trajin.h TrajinList.h TrajoutList.h Trajout_Single.h TypeNameHolder.h VariableArray.h Vec3.h molsurf.h +Command.o : Command.cpp Action.h ActionFrameCounter.h ActionList.h ActionState.h Action_Align.h Action_Angle.h Action_AreaPerMol.h Action_AtomMap.h Action_AtomicCorr.h Action_AtomicFluct.h Action_AutoImage.h Action_Average.h Action_Bounds.h Action_Box.h Action_Center.h Action_Channel.h Action_CheckChirality.h Action_CheckStructure.h Action_Closest.h Action_ClusterDihedral.h Action_Contacts.h Action_CreateCrd.h Action_CreateReservoir.h Action_DNAionTracker.h Action_DSSP.h Action_Density.h Action_Diffusion.h Action_Dihedral.h Action_DihedralRMS.h Action_Dipole.h Action_DistRmsd.h Action_Distance.h Action_Energy.h Action_Esander.h Action_FilterByData.h Action_FixAtomOrder.h Action_FixImagedBonds.h Action_GIST.h Action_Grid.h Action_GridFreeEnergy.h Action_HydrogenBond.h Action_Image.h Action_InfraredSpectrum.h Action_Jcoupling.h Action_LESsplit.h Action_LIE.h Action_LipidOrder.h Action_MakeStructure.h Action_Mask.h Action_Matrix.h Action_MinImage.h Action_Molsurf.h Action_MultiDihedral.h Action_MultiVector.h Action_NAstruct.h Action_NMRrst.h Action_NativeContacts.h Action_OrderParameter.h Action_Outtraj.h Action_PairDist.h Action_Pairwise.h Action_Principal.h Action_Projection.h Action_Pucker.h Action_Radgyr.h Action_Radial.h Action_RandomizeIons.h Action_Remap.h Action_ReplicateCell.h Action_Rmsd.h Action_Rotate.h Action_RunningAvg.h Action_STFC_Diffusion.h Action_Scale.h Action_SetVelocity.h Action_Spam.h Action_Strip.h Action_Surf.h Action_SymmetricRmsd.h Action_Temperature.h Action_Time.h Action_Translate.h Action_Unstrip.h Action_Unwrap.h Action_Vector.h Action_VelocityAutoCorr.h Action_Volmap.h Action_Volume.h Action_Watershell.h Action_XtalSymm.h Analysis.h AnalysisList.h AnalysisState.h Analysis_AmdBias.h Analysis_AutoCorr.h Analysis_Average.h Analysis_Clustering.h Analysis_ConstantPHStats.h Analysis_Corr.h Analysis_CrankShaft.h Analysis_CrdFluct.h Analysis_CrossCorr.h Analysis_CurveFit.h Analysis_Divergence.h Analysis_FFT.h Analysis_HausdorffDistance.h Analysis_Hist.h Analysis_IRED.h Analysis_Integrate.h Analysis_KDE.h Analysis_Lifetime.h Analysis_LowestCurve.h Analysis_Matrix.h Analysis_MeltCurve.h Analysis_Modes.h Analysis_MultiHist.h Analysis_Multicurve.h Analysis_Overlap.h Analysis_PhiPsi.h Analysis_Regression.h Analysis_RemLog.h Analysis_Rms2d.h Analysis_RmsAvgCorr.h Analysis_Rotdif.h Analysis_RunningAvg.h Analysis_Slope.h Analysis_Spline.h Analysis_State.h Analysis_Statistics.h Analysis_TI.h Analysis_Timecorr.h Analysis_VectorMath.h Analysis_Wavelet.h ArgList.h Array1D.h ArrayIterator.h AssociatedData.h Atom.h AtomExtra.h AtomMap.h AtomMask.h AtomType.h AxisType.h BaseIOtype.h Box.h BufferedLine.h CharMask.h ClusterDist.h ClusterList.h ClusterMap.h ClusterNode.h ClusterSieve.h Cmd.h CmdInput.h CmdList.h Command.h ComplexArray.h Constants.h Constraints.h Control.h ControlBlock.h ControlBlock_For.h CoordinateInfo.h Corr.h Cph.h CpptrajFile.h CpptrajState.h CpptrajStdio.h DataFile.h DataFileList.h DataIO.h DataSet.h DataSetList.h DataSet_1D.h DataSet_2D.h DataSet_3D.h DataSet_Cmatrix.h DataSet_Coords.h DataSet_Coords_CRD.h DataSet_Coords_REF.h DataSet_GridFlt.h DataSet_Mat3x3.h DataSet_MatrixDbl.h DataSet_MatrixFlt.h DataSet_Mesh.h DataSet_Modes.h DataSet_RemLog.h DataSet_Vector.h DataSet_double.h DataSet_float.h DataSet_integer.h DataSet_integer_mem.h DataSet_pH.h DataSet_string.h Deprecated.h DihedralSearch.h Dimension.h DispatchObject.h DistRoutines.h Energy.h Energy_Sander.h EnsembleIn.h EnsembleOutList.h Exec.h Exec_Analyze.h Exec_Calc.h Exec_CatCrd.h Exec_Change.h Exec_ClusterMap.h Exec_CombineCoords.h Exec_Commands.h Exec_CompareTop.h Exec_CrdAction.h Exec_CrdOut.h Exec_CreateSet.h Exec_DataFile.h Exec_DataFilter.h Exec_DataSetCmd.h Exec_GenerateAmberRst.h Exec_Help.h Exec_LoadCrd.h Exec_LoadTraj.h Exec_ParallelAnalysis.h Exec_ParmBox.h Exec_ParmSolvent.h Exec_ParmStrip.h Exec_ParmWrite.h Exec_PermuteDihedrals.h Exec_Precision.h Exec_PrintData.h Exec_ReadData.h Exec_ReadEnsembleData.h Exec_ReadInput.h Exec_RotateDihedral.h Exec_RunAnalysis.h Exec_ScaleDihedralK.h Exec_SequenceAlign.h Exec_SortEnsembleData.h Exec_SplitCoords.h Exec_System.h Exec_Top.h Exec_Traj.h Exec_UpdateParameters.h Exec_ViewRst.h FileIO.h FileName.h FileTypes.h Frame.h FramePtrArray.h Grid.h GridAction.h GridBin.h HistBin.h Hungarian.h ImageTypes.h ImagedAction.h InputTrajCommon.h MapAtom.h MaskArray.h MaskToken.h Matrix.h Matrix_3x3.h MetaData.h Molecule.h NameType.h NetcdfFile.h OnlineVarT.h OutputTrajCommon.h PDBfile.h PairList.h Parallel.h ParameterHolders.h ParameterSet.h ParameterTypes.h PubFFT.h RPNcalc.h Random.h Range.h ReferenceAction.h ReferenceFrame.h RemdReservoirNC.h ReplicaDimArray.h ReplicaInfo.h Residue.h Spline.h StructureCheck.h SymbolExporting.h SymmetricRmsdCalc.h TextFormat.h Timer.h Topology.h TrajFrameCounter.h TrajectoryFile.h Trajin.h TrajinList.h TrajoutList.h Trajout_Single.h TypeNameHolder.h VariableArray.h Vec3.h molsurf.h ComplexArray.o : ComplexArray.cpp ArrayIterator.h ComplexArray.h Constraints.o : Constraints.cpp ArgList.h Atom.h AtomExtra.h AtomMask.h AtomType.h Box.h CharMask.h Constants.h Constraints.h CoordinateInfo.h CpptrajStdio.h FileName.h Frame.h MaskToken.h Matrix_3x3.h Molecule.h NameType.h Parallel.h ParameterHolders.h ParameterSet.h ParameterTypes.h Range.h ReplicaDimArray.h Residue.h SymbolExporting.h Topology.h TypeNameHolder.h Vec3.h Control.o : Control.cpp Action.h ActionList.h ActionState.h Analysis.h AnalysisList.h AnalysisState.h ArgList.h AssociatedData.h Atom.h AtomExtra.h AtomMask.h AtomType.h BaseIOtype.h Box.h Constants.h Control.h CoordinateInfo.h CpptrajFile.h CpptrajState.h CpptrajStdio.h DataFile.h DataFileList.h DataIO.h DataSet.h DataSetList.h DataSet_Coords.h DataSet_Coords_REF.h Dimension.h DispatchObject.h EnsembleIn.h EnsembleOutList.h FileIO.h FileName.h FileTypes.h Frame.h FramePtrArray.h InputTrajCommon.h MaskToken.h Matrix_3x3.h MetaData.h Molecule.h NameType.h Parallel.h ParameterHolders.h ParameterSet.h ParameterTypes.h Range.h ReferenceFrame.h ReplicaDimArray.h ReplicaInfo.h Residue.h StringRoutines.h SymbolExporting.h TextFormat.h Timer.h Topology.h TrajFrameCounter.h Trajin.h TrajinList.h TrajoutList.h TypeNameHolder.h VariableArray.h Vec3.h +ControlBlock_For.o : ControlBlock_For.cpp Action.h ActionList.h ActionState.h Analysis.h AnalysisList.h AnalysisState.h ArgList.h AssociatedData.h Atom.h AtomExtra.h AtomMask.h AtomType.h BaseIOtype.h Box.h Constants.h ControlBlock.h ControlBlock_For.h CoordinateInfo.h CpptrajFile.h CpptrajState.h CpptrajStdio.h DataFile.h DataFileList.h DataIO.h DataSet.h DataSetList.h DataSet_Coords.h DataSet_Coords_REF.h Dimension.h DispatchObject.h EnsembleIn.h EnsembleOutList.h FileIO.h FileName.h FileTypes.h Frame.h FramePtrArray.h InputTrajCommon.h MaskToken.h Matrix_3x3.h MetaData.h Molecule.h NameType.h Parallel.h ParameterHolders.h ParameterSet.h ParameterTypes.h Range.h ReferenceFrame.h ReplicaDimArray.h ReplicaInfo.h Residue.h StringRoutines.h SymbolExporting.h TextFormat.h Timer.h Topology.h TrajFrameCounter.h Trajin.h TrajinList.h TrajoutList.h TypeNameHolder.h VariableArray.h Vec3.h CoordinateInfo.o : CoordinateInfo.cpp Box.h CoordinateInfo.h CpptrajStdio.h Matrix_3x3.h Parallel.h ReplicaDimArray.h Vec3.h Corr.o : Corr.cpp ArrayIterator.h ComplexArray.h Corr.h PubFFT.h Cph.o : Cph.cpp Cph.h NameType.h diff --git a/src/cpptrajfiles b/src/cpptrajfiles index 4c67cbea53..27604a953c 100644 --- a/src/cpptrajfiles +++ b/src/cpptrajfiles @@ -163,6 +163,7 @@ COMMON_SOURCES= \ ComplexArray.cpp \ Constraints.cpp \ Control.cpp \ + ControlBlock_For.cpp \ CoordinateInfo.cpp \ Corr.cpp \ Cph.cpp \ From 12d7f7d66e10980080097d615e42f4f127dd006b Mon Sep 17 00:00:00 2001 From: "Daniel R. Roe" Date: Wed, 18 Dec 2019 09:43:37 -0500 Subject: [PATCH 003/162] DRR - Add missing file. --- src/ControlBlock_For.cpp | 376 +++++++++++++++++++++++++++++++++++++++ 1 file changed, 376 insertions(+) create mode 100644 src/ControlBlock_For.cpp diff --git a/src/ControlBlock_For.cpp b/src/ControlBlock_For.cpp new file mode 100644 index 0000000000..b235ce472b --- /dev/null +++ b/src/ControlBlock_For.cpp @@ -0,0 +1,376 @@ +#include "ControlBlock_For.h" +#include "CpptrajStdio.h" +#include "ArgList.h" +#include "DataSetList.h" +#include "CpptrajState.h" +#include "VariableArray.h" +#include "StringRoutines.h" + +void ControlBlock_For::Help() const { + mprintf("\t{ {atoms|residues|molecules|molfirstres|mollastres}\n" + "\t inmask [%s] ... |\n" + "\t in \n" + "\t =;[;][] ... }\n", + DataSetList::TopIdxArgs); + mprintf("\tEND KEYWORD: 'done'\n"); + mprintf(" Create a 'for' loop around specified mask(s), comma-separated list of\n" + " strings and/or integer value(s). Any number and combination of masks,\n" + " lists, and integers can be specified. Strings in lists can be file\n" + " names containing wildcard characters ('*' or '?').\n" + " Variables created in the for loop can be referenced by prefacing\n" + " the name with a '$' character.\n" + " Available 'end OP' : '<' '>'\n" + " Available 'increment OP' : '++', '--', '+=', '-='\n" + " Note that variables are NOT incremented after the final loop iteration,\n" + " i.e. loop variables always retain their final value.\n" + " Examples:\n" + "\tfor atoms A0 inmask :1-27&!@H= i=1;i++\n" + "\t distance d$i :TCS $A0 out $i.dat\n" + "\tdone\n" + "\tfor TRAJ in trajA*.nc,trajB*.nc\n" + "\t trajin $TRAJ 1 last 10\n" + "\tdone\n" + ); +} + +/** Set up each mask/integer loop. */ +int ControlBlock_For::SetupBlock(CpptrajState& State, ArgList& argIn) { + mprintf(" Setting up 'for' loop.\n"); + Vars_.clear(); + Topology* currentTop = 0; + static const char* TypeStr[] = { "ATOMS ", "RESIDUES ", "MOLECULES ", + "MOL_FIRST_RES ", "MOL_LAST_RES " }; + static const char* OpStr[] = {"+=", "-=", "<", ">"}; + description_.assign("for ("); + int MaxIterations = -1; + int iarg = 0; + while (iarg < argIn.Nargs()) + { + // Advance to next unmarked argument. + while (iarg < argIn.Nargs() && argIn.Marked(iarg)) iarg++; + if (iarg == argIn.Nargs()) break; + // Determine 'for' type + ForType ftype = UNKNOWN; + bool isMaskFor = true; + int argToMark = iarg; + if ( argIn[iarg] == "atoms" ) ftype = ATOMS; + else if ( argIn[iarg] == "residues" ) ftype = RESIDUES; + else if ( argIn[iarg] == "molecules" ) ftype = MOLECULES; + else if ( argIn[iarg] == "molfirstres" ) ftype = MOLFIRSTRES; + else if ( argIn[iarg] == "mollastres" ) ftype = MOLLASTRES; + else if ( argIn[iarg].find(";") != std::string::npos ) { + isMaskFor = false; + ftype = INTEGER; + } + // If type is still unknown, check for list. + if (ftype == UNKNOWN) { + if (iarg+1 < argIn.Nargs() && argIn[iarg+1] == "in") { + ftype = LIST; + isMaskFor = false; + argToMark = iarg+1; + } + } + // Exit if type could not be determined. + if (ftype == UNKNOWN) { + mprinterr("Error: for loop type not specfied.\n"); + return 1; + } + argIn.MarkArg(argToMark); + Vars_.push_back( LoopVar() ); + LoopVar& MH = Vars_.back(); + int Niterations = -1; + // Set up for specific type + if (description_ != "for (") description_.append(", "); + // ------------------------------------------- + if (isMaskFor) + { + // {atoms|residues|molecules} inmask [TOP KEYWORDS] + if (argIn[iarg+2] != "inmask") { + mprinterr("Error: Expected 'inmask', got %s\n", argIn[iarg+2].c_str()); + return 1; + } + AtomMask currentMask; + if (currentMask.SetMaskString( argIn.GetStringKey("inmask") )) return 1; + MH.varType_ = ftype; + Topology* top = State.DSL().GetTopByIndex( argIn ); + if (top != 0) currentTop = top; + if (currentTop == 0) return 1; + MH.varname_ = argIn.GetStringNext(); + if (MH.varname_.empty()) { + mprinterr("Error: 'for inmask': missing variable name.\n"); + return 1; + } + MH.varname_ = "$" + MH.varname_; + // Set up mask + if (currentTop->SetupIntegerMask( currentMask )) return 1; + currentMask.MaskInfo(); + if (currentMask.None()) return 1; + // Set up indices + if (MH.varType_ == ATOMS) + MH.Idxs_ = currentMask.Selected(); + else if (MH.varType_ == RESIDUES) { + int curRes = -1; + for (AtomMask::const_iterator at = currentMask.begin(); at != currentMask.end(); ++at) { + int res = (*currentTop)[*at].ResNum(); + if (res != curRes) { + MH.Idxs_.push_back( res ); + curRes = res; + } + } + } else if (MH.varType_ == MOLECULES || + MH.varType_ == MOLFIRSTRES || + MH.varType_ == MOLLASTRES) + { + int curMol = -1; + for (AtomMask::const_iterator at = currentMask.begin(); at != currentMask.end(); ++at) { + int mol = (*currentTop)[*at].MolNum(); + if (mol != curMol) { + if (MH.varType_ == MOLECULES) + MH.Idxs_.push_back( mol ); + else { + int res; + if (MH.varType_ == MOLFIRSTRES) + res = (*currentTop)[ currentTop->Mol( mol ).BeginAtom() ].ResNum(); + else // MOLLASTRES + res = (*currentTop)[ currentTop->Mol( mol ).EndAtom()-1 ].ResNum(); + MH.Idxs_.push_back( res ); + } + curMol = mol; + } + } + } + Niterations = (int)MH.Idxs_.size(); + description_.append(std::string(TypeStr[MH.varType_]) + + MH.varname_ + " inmask " + currentMask.MaskExpression()); + // ------------------------------------------- + } else if (ftype == INTEGER) { + // [=;[;][]] + MH.varType_ = ftype; + ArgList varArg( argIn[iarg], ";" ); + if (varArg.Nargs() < 2 || varArg.Nargs() > 3) { + mprinterr("Error: Malformed 'for' loop variable.\n" + "Error: Expected '[=;[;][]]'\n" + "Error: Got '%s'\n", argIn[iarg].c_str()); + return 1; + } + // First argument: = + ArgList startArg( varArg[0], "=" ); + if (startArg.Nargs() != 2) { + mprinterr("Error: Malformed 'start' argument.\n" + "Error: Expected =, got '%s'\n", varArg[0].c_str()); + return 1; + } + MH.varname_ = startArg[0]; + if (!validInteger(startArg[1])) { + // TODO allow variables + mprinterr("Error: Start argument must be an integer.\n"); + return 1; + } else + MH.start_ = convertToInteger(startArg[1]); + // Second argument: + size_t pos0 = MH.varname_.size(); + size_t pos1 = pos0 + 1; + MH.endOp_ = NO_OP; + int iargIdx = 1; + if (varArg.Nargs() == 3) { + iargIdx = 2; + if ( varArg[1][pos0] == '<' ) + MH.endOp_ = LESS_THAN; + else if (varArg[1][pos0] == '>') + MH.endOp_ = GREATER_THAN; + if (MH.endOp_ == NO_OP) { + mprinterr("Error: Unrecognized end op: '%s'\n", + varArg[1].substr(pos0, pos1-pos0).c_str()); + return 1; + } + std::string endStr = varArg[1].substr(pos1); + if (!validInteger(endStr)) { + // TODO allow variables + mprinterr("Error: End argument must be an integer.\n"); + return 1; + } else + MH.end_ = convertToInteger(endStr); + } + // Third argument: [] + pos1 = pos0 + 2; + MH.incOp_ = NO_OP; + bool needValue = false; + if ( varArg[iargIdx][pos0] == '+' ) { + if (varArg[iargIdx][pos0+1] == '+') { + MH.incOp_ = INCREMENT; + MH.inc_ = 1; + } else if (varArg[iargIdx][pos0+1] == '=') { + MH.incOp_ = INCREMENT; + needValue = true; + } + } else if ( varArg[iargIdx][pos0] == '-' ) { + if (varArg[iargIdx][pos0+1] == '-' ) { + MH.incOp_ = DECREMENT; + MH.inc_ = 1; + } else if (varArg[iargIdx][pos0+1] == '=') { + MH.incOp_ = DECREMENT; + needValue = true; + } + } + if (MH.incOp_ == NO_OP) { + mprinterr("Error: Unrecognized increment op: '%s'\n", + varArg[iargIdx].substr(pos0, pos1-pos0).c_str()); + return 1; + } + if (needValue) { + std::string incStr = varArg[iargIdx].substr(pos1); + if (!validInteger(incStr)) { + mprinterr("Error: increment value is not a valid integer.\n"); + return 1; + } + MH.inc_ = convertToInteger(incStr); + if (MH.inc_ < 1) { + mprinterr("Error: Extra '-' detected in increment.\n"); + return 1; + } + } + // Description + MH.varname_ = "$" + MH.varname_; + std::string sval = integerToString(MH.start_); + description_.append("(" + MH.varname_ + "=" + sval + "; "); + std::string eval; + if (iargIdx == 2) { + // End argument present + eval = integerToString(MH.end_); + description_.append(MH.varname_ + std::string(OpStr[MH.endOp_]) + eval + "; "); + // Check end > start for increment, start > end for decrement + int maxval, minval; + if (MH.incOp_ == INCREMENT) { + if (MH.start_ >= MH.end_) { + mprinterr("Error: start must be less than end for increment.\n"); + return 1; + } + minval = MH.start_; + maxval = MH.end_; + } else { + if (MH.end_ >= MH.start_) { + mprinterr("Error: end must be less than start for decrement.\n"); + return 1; + } + minval = MH.end_; + maxval = MH.start_; + } + // Figure out number of iterations + Niterations = (maxval - minval) / MH.inc_; + if (((maxval-minval) % MH.inc_) > 0) Niterations++; + } + description_.append( MH.varname_ + std::string(OpStr[MH.incOp_]) + + integerToString(MH.inc_) + ")" ); + // If decrementing just negate value + if (MH.incOp_ == DECREMENT) + MH.inc_ = -MH.inc_; + // DEBUG + //mprintf("DEBUG: start=%i endOp=%i end=%i incOp=%i val=%i startArg=%s endArg=%s\n", + // MH.start_, (int)MH.endOp_, MH.end_, (int)MH.incOp_, MH.inc_, + // MH.startArg_.c_str(), MH.endArg_.c_str()); + // ------------------------------------------- + } else if (ftype == LIST) { + // in [,...] + MH.varType_ = ftype; + // Variable name + MH.varname_ = argIn.GetStringNext(); + if (MH.varname_.empty()) { + mprinterr("Error: 'for in': missing variable name.\n"); + return 1; + } + MH.varname_ = "$" + MH.varname_; + // Comma-separated list of strings + std::string listArg = argIn.GetStringNext(); + if (listArg.empty()) { + mprinterr("Error: 'for in': missing comma-separated list of strings.\n"); + return 1; + } + ArgList list(listArg, ","); + if (list.Nargs() < 1) { + mprinterr("Error: Could not parse '%s' for 'for in'\n", listArg.c_str()); + return 1; + } + for (int il = 0; il != list.Nargs(); il++) { + // Check if file name expansion should occur + if (list[il].find_first_of("*?") != std::string::npos) { + File::NameArray files = File::ExpandToFilenames( list[il] ); + for (File::NameArray::const_iterator fn = files.begin(); fn != files.end(); ++fn) + MH.List_.push_back( fn->Full() ); + } else + MH.List_.push_back( list[il] ); + } + Niterations = (int)MH.List_.size(); + // Description + description_.append( MH.varname_ + " in " + listArg ); + + } + // Check number of values + if (MaxIterations == -1) + MaxIterations = Niterations; + else if (Niterations != -1 && Niterations != MaxIterations) { + mprintf("Warning: # iterations %i != previous # iterations %i\n", + Niterations, MaxIterations); + MaxIterations = std::min(Niterations, MaxIterations); + } + } + mprintf("\tLoop will execute for %i iterations.\n", MaxIterations); + if (MaxIterations < 1) { + mprinterr("Error: Loop has less than 1 iteration.\n"); + return 1; + } + description_.append(") do"); + + return 0; +} + +/** \return true if the given command will finish this block. */ +bool ControlBlock_For::EndBlock(ArgList const& a) const { + return (a.CommandIs("done")); +} + +/** For each mask initialize iterator. For each integer set to start value. */ +void ControlBlock_For::Start() { + for (Marray::iterator MH = Vars_.begin(); MH != Vars_.end(); ++MH) { + if (MH->varType_ == INTEGER) + MH->currentVal_ = MH->start_; // TODO search currentvars + else if ( MH->varType_ == LIST) + MH->sdx_ = MH->List_.begin(); + else + MH->idx_ = MH->Idxs_.begin(); + } +} + +/** For each mask check if done, then update CurrentVars, then increment. */ +ControlBlock::DoneType ControlBlock_For::CheckDone(VariableArray& CurrentVars) { + static const char* prefix[] = {"@", ":", "^", ":", ":"}; + for (Marray::iterator MH = Vars_.begin(); MH != Vars_.end(); ++MH) { + // Exit as soon as one is done TODO check all? + if (MH->varType_ == INTEGER) { + if (MH->endOp_ == LESS_THAN) { + if (MH->currentVal_ >= MH->end_) return DONE; + } else if (MH->endOp_ == GREATER_THAN) { + if (MH->currentVal_ <= MH->end_) return DONE; + } + // Get variable value and update CurrentVars + CurrentVars.UpdateVariable( MH->varname_, integerToString( MH->currentVal_ )); + // Increment + MH->currentVal_ += MH->inc_; + } else if (MH->varType_ == LIST) { + if (MH->sdx_ == MH->List_.end()) return DONE; + // Get variable value + CurrentVars.UpdateVariable( MH->varname_, *(MH->sdx_) ); + // Increment + ++(MH->sdx_); + } else { + if (MH->idx_ == MH->Idxs_.end()) return DONE; + // Get variable value + std::string maskStr = prefix[MH->varType_] + integerToString(*(MH->idx_) + 1); + //mprintf("DEBUG: ControlBlock_For: %s\n", maskStr.c_str()); + // Update CurrentVars + CurrentVars.UpdateVariable( MH->varname_, maskStr ); + // Increment + ++(MH->idx_); + } + } + return NOT_DONE; +} From 117d6b026828fcca6d8bc833772df97b6ab6fb99 Mon Sep 17 00:00:00 2001 From: "Daniel R. Roe" Date: Wed, 18 Dec 2019 10:29:53 -0500 Subject: [PATCH 004/162] DRR - Start trying to split out the various for loop types. --- src/ForLoop.h | 28 ++++++++ src/ForLoop_integer.cpp | 152 ++++++++++++++++++++++++++++++++++++++++ src/ForLoop_integer.h | 22 ++++++ 3 files changed, 202 insertions(+) create mode 100644 src/ForLoop.h create mode 100644 src/ForLoop_integer.cpp create mode 100644 src/ForLoop_integer.h diff --git a/src/ForLoop.h b/src/ForLoop.h new file mode 100644 index 0000000000..ceeb88d6d5 --- /dev/null +++ b/src/ForLoop.h @@ -0,0 +1,28 @@ +#ifndef INC_FORLOOP_H +#define INC_FORLOOP_H +#include +class CpptrajState; +class ArgList; +/// Abstract base class for all for loops +class ForLoop { + public: + enum ForType {ATOMS=0, RESIDUES, MOLECULES, MOLFIRSTRES, MOLLASTRES, INTEGER, LIST, UNKNOWN}; + + ForLoop() : varType_(UNKNOWN), Niterations_(-1) {} + virtual ~ForLoop() {} + + virtual int SetupFor(CpptrajState&, std::string const&) = 0; + protected: + void SetDescription(std::string const& descIn) { description_ = descIn; } + void SetType(ForType f) { varType_ = f; } + void SetVarName(std::string const& v) { varname_ = v; } + void SetNiterations(int n) { Niterations_ = n; } + + std::string const& VarName() const { return varname_; } + private: + std::string description_; ///< For loop long description + std::string varname_; ///< Variable over which for loop is iterating + ForType varType_; ///< For loop type + int Niterations_; ///< # of iterations the loops will execute if known. +}; +#endif diff --git a/src/ForLoop_integer.cpp b/src/ForLoop_integer.cpp new file mode 100644 index 0000000000..4d36b47a6c --- /dev/null +++ b/src/ForLoop_integer.cpp @@ -0,0 +1,152 @@ +#include "ForLoop_integer.h" +#include "CpptrajStdio.h" +#include "ArgList.h" +#include "StringRoutines.h" + +const char* ForLoop_integer::OpStr_[] = {"+=", "-=", "<", ">"}; + +ForLoop_integer::ForLoop_integer() : + endOp_(NO_OP), + incOp_(NO_OP), + start_(0), + end_(0), + inc_(0), + currentVal_(0) +{} + +int ForLoop_integer::SetupFor(CpptrajState& state, std::string const& expr) { + int Niterations = -1; + // [=;[;][]] + SetType( INTEGER ); + ArgList varArg( expr, ";" ); + if (varArg.Nargs() < 2 || varArg.Nargs() > 3) { + mprinterr("Error: Malformed 'for' loop variable.\n" + "Error: Expected '[=;[;][]]'\n" + "Error: Got '%s'\n", expr.c_str()); + return 1; + } + // First argument: = + ArgList startArg( varArg[0], "=" ); + if (startArg.Nargs() != 2) { + mprinterr("Error: Malformed 'start' argument.\n" + "Error: Expected =, got '%s'\n", varArg[0].c_str()); + return 1; + } + SetVarName( startArg[0] ); + mprintf("DEBUG: Start argument: '%s' = '%s'\n", VarName().c_str(), startArg[1].c_str()); + //if ( startArg[1][0] == '$' ) { + // // Variable name + //} else + if (!validInteger(startArg[1])) { + // Not Integer or variable + mprinterr("Error: Start argument must be an integer or variable name.\n"); + return 1; + } else + start_ = convertToInteger(startArg[1]); + // Second argument: + size_t pos0 = VarName().size(); + size_t pos1 = pos0 + 1; + endOp_ = NO_OP; + int iargIdx = 1; + if (varArg.Nargs() == 3) { + iargIdx = 2; + if ( varArg[1][pos0] == '<' ) + endOp_ = LESS_THAN; + else if (varArg[1][pos0] == '>') + endOp_ = GREATER_THAN; + if (endOp_ == NO_OP) { + mprinterr("Error: Unrecognized end op: '%s'\n", + varArg[1].substr(pos0, pos1-pos0).c_str()); + return 1; + } + std::string endStr = varArg[1].substr(pos1); + if (!validInteger(endStr)) { + // TODO allow variables + mprinterr("Error: End argument must be an integer.\n"); + return 1; + } else + end_ = convertToInteger(endStr); + } + // Third argument: [] + pos1 = pos0 + 2; + incOp_ = NO_OP; + bool needValue = false; + if ( varArg[iargIdx][pos0] == '+' ) { + if (varArg[iargIdx][pos0+1] == '+') { + incOp_ = INCREMENT; + inc_ = 1; + } else if (varArg[iargIdx][pos0+1] == '=') { + incOp_ = INCREMENT; + needValue = true; + } + } else if ( varArg[iargIdx][pos0] == '-' ) { + if (varArg[iargIdx][pos0+1] == '-' ) { + incOp_ = DECREMENT; + inc_ = 1; + } else if (varArg[iargIdx][pos0+1] == '=') { + incOp_ = DECREMENT; + needValue = true; + } + } + if (incOp_ == NO_OP) { + mprinterr("Error: Unrecognized increment op: '%s'\n", + varArg[iargIdx].substr(pos0, pos1-pos0).c_str()); + return 1; + } + if (needValue) { + std::string incStr = varArg[iargIdx].substr(pos1); + if (!validInteger(incStr)) { + mprinterr("Error: increment value is not a valid integer.\n"); + return 1; + } + inc_ = convertToInteger(incStr); + if (inc_ < 1) { + mprinterr("Error: Extra '-' detected in increment.\n"); + return 1; + } + } + // Description + std::string varnametmp = "$" + VarName(); + std::string sval = integerToString(start_); + std::string description("(" + varnametmp + "=" + sval + "; "); + std::string eval; + if (iargIdx == 2) { + // End argument present + eval = integerToString(end_); + description.append(varnametmp + std::string(OpStr_[endOp_]) + eval + "; "); + // Check end > start for increment, start > end for decrement + int maxval, minval; + if (incOp_ == INCREMENT) { + if (start_ >= end_) { + mprinterr("Error: start must be less than end for increment.\n"); + return 1; + } + minval = start_; + maxval = end_; + } else { + if (end_ >= start_) { + mprinterr("Error: end must be less than start for decrement.\n"); + return 1; + } + minval = end_; + maxval = start_; + } + // Figure out number of iterations + Niterations = (maxval - minval) / inc_; + if (((maxval-minval) % inc_) > 0) Niterations++; + } + description.append( varnametmp + std::string(OpStr_[incOp_]) + + integerToString(inc_) + ")" ); + SetVarName( varnametmp ); + SetDescription( description ); + SetNiterations( Niterations ); + // If decrementing just negate value + if (incOp_ == DECREMENT) + inc_ = -inc_; + // DEBUG + //mprintf("DEBUG: start=%i endOp=%i end=%i incOp=%i val=%i startArg=%s endArg=%s\n", + // start_, (int)endOp_, end_, (int)incOp_, inc_, + // startArg_.c_str(), endArg_.c_str()); + + return 0; +} diff --git a/src/ForLoop_integer.h b/src/ForLoop_integer.h new file mode 100644 index 0000000000..1df2b449a0 --- /dev/null +++ b/src/ForLoop_integer.h @@ -0,0 +1,22 @@ +#ifndef INC_FORLOOP_INTEGER_H +#define INC_FORLOOP_INTEGER_H +#include "ForLoop.h" +/// Basic for loops over integer value +class ForLoop_integer : public ForLoop { + public: + ForLoop_integer(); + + int SetupFor(CpptrajState&, std::string const&); + + enum OpType { INCREMENT=0, DECREMENT, LESS_THAN, GREATER_THAN, NO_OP }; + private: + static const char* OpStr_[NO_OP]; + + OpType endOp_; ///< (INTEGER only) end operator + OpType incOp_; ///< (INTEGER only) increment operator + int start_; ///< (INTEGER only) initial value + int end_; ///< (INTEGER only) end value + int inc_; ///< (INTEGER only) increment value + int currentVal_; ///< (INTEGER only) current value +}; +#endif From bc42822cd0bfe987056c5a03a1ffdcd7ab6829a3 Mon Sep 17 00:00:00 2001 From: "Daniel R. Roe" Date: Wed, 18 Dec 2019 11:24:47 -0500 Subject: [PATCH 005/162] DRR - Add mask for loop type --- src/ForLoop.h | 3 +- src/ForLoop_integer.cpp | 2 +- src/ForLoop_mask.cpp | 84 +++++++++++++++++++++++++++++++++++++++++ src/ForLoop_mask.h | 18 +++++++++ 4 files changed, 105 insertions(+), 2 deletions(-) create mode 100644 src/ForLoop_mask.cpp create mode 100644 src/ForLoop_mask.h diff --git a/src/ForLoop.h b/src/ForLoop.h index ceeb88d6d5..99839f2c88 100644 --- a/src/ForLoop.h +++ b/src/ForLoop.h @@ -11,7 +11,7 @@ class ForLoop { ForLoop() : varType_(UNKNOWN), Niterations_(-1) {} virtual ~ForLoop() {} - virtual int SetupFor(CpptrajState&, std::string const&) = 0; + virtual int SetupFor(CpptrajState&, std::string const&, ArgList&) = 0; protected: void SetDescription(std::string const& descIn) { description_ = descIn; } void SetType(ForType f) { varType_ = f; } @@ -19,6 +19,7 @@ class ForLoop { void SetNiterations(int n) { Niterations_ = n; } std::string const& VarName() const { return varname_; } + ForType VarType() const { return varType_; } private: std::string description_; ///< For loop long description std::string varname_; ///< Variable over which for loop is iterating diff --git a/src/ForLoop_integer.cpp b/src/ForLoop_integer.cpp index 4d36b47a6c..0c7a2a4871 100644 --- a/src/ForLoop_integer.cpp +++ b/src/ForLoop_integer.cpp @@ -14,7 +14,7 @@ ForLoop_integer::ForLoop_integer() : currentVal_(0) {} -int ForLoop_integer::SetupFor(CpptrajState& state, std::string const& expr) { +int ForLoop_integer::SetupFor(CpptrajState& state, std::string const& expr, ArgList& argIn) { int Niterations = -1; // [=;[;][]] SetType( INTEGER ); diff --git a/src/ForLoop_mask.cpp b/src/ForLoop_mask.cpp new file mode 100644 index 0000000000..4f22316653 --- /dev/null +++ b/src/ForLoop_mask.cpp @@ -0,0 +1,84 @@ +#include "ForLoop_mask.h" +#include "CpptrajStdio.h" +#include "ArgList.h" +#include "CpptrajState.h" + +int ForLoop_mask::SetupFor(CpptrajState& State, std::string const& expr, ArgList& argIn) { + int Niterations = -1; + static const char* TypeStr[] = { "ATOMS ", "RESIDUES ", "MOLECULES ", + "MOL_FIRST_RES ", "MOL_LAST_RES " }; + // {atoms|residues|molecules} inmask [TOP KEYWORDS] + Topology* currentTop = 0; + if ( expr == "atoms" ) SetType( ATOMS ); + else if ( expr == "residues" ) SetType( RESIDUES ); + else if ( expr == "molecules" ) SetType( MOLECULES ); + else if ( expr == "molfirstres" ) SetType( MOLFIRSTRES ); + else if ( expr == "mollastres" ) SetType( MOLLASTRES ); + else { + mprinterr("Error: Unrecognized mask for loop type: %s\n", expr.c_str()); + return 1; + } + //if (argIn[iarg+2] != "inmask") { + // mprinterr("Error: Expected 'inmask', got %s\n", argIn[iarg+2].c_str()); + // return 1; + //} + if (!argIn.Contains("inmask")) { + mprinterr("Error: mask for loop does not contain 'inmask' keyword.\n"); + return 1; + } + AtomMask currentMask; + if (currentMask.SetMaskString( argIn.GetStringKey("inmask") )) return 1; + Topology* top = State.DSL().GetTopByIndex( argIn ); + if (top != 0) currentTop = top; + if (currentTop == 0) return 1; + SetVarName( argIn.GetStringNext() ); + if (VarName().empty()) { + mprinterr("Error: 'for inmask': missing variable name.\n"); + return 1; + } + SetVarName( "$" + VarName() ); + // Set up mask + if (currentTop->SetupIntegerMask( currentMask )) return 1; + currentMask.MaskInfo(); + if (currentMask.None()) return 1; + // Set up indices + if (VarType() == ATOMS) + Idxs_ = currentMask.Selected(); + else if (VarType() == RESIDUES) { + int curRes = -1; + for (AtomMask::const_iterator at = currentMask.begin(); at != currentMask.end(); ++at) { + int res = (*currentTop)[*at].ResNum(); + if (res != curRes) { + Idxs_.push_back( res ); + curRes = res; + } + } + } else if (VarType() == MOLECULES || + VarType() == MOLFIRSTRES || + VarType() == MOLLASTRES) + { + int curMol = -1; + for (AtomMask::const_iterator at = currentMask.begin(); at != currentMask.end(); ++at) { + int mol = (*currentTop)[*at].MolNum(); + if (mol != curMol) { + if (VarType() == MOLECULES) + Idxs_.push_back( mol ); + else { + int res; + if (VarType() == MOLFIRSTRES) + res = (*currentTop)[ currentTop->Mol( mol ).BeginAtom() ].ResNum(); + else // MOLLASTRES + res = (*currentTop)[ currentTop->Mol( mol ).EndAtom()-1 ].ResNum(); + Idxs_.push_back( res ); + } + curMol = mol; + } + } + } + Niterations = (int)Idxs_.size(); + std::string description(std::string(TypeStr[VarType()]) + + VarName() + " inmask " + currentMask.MaskExpression()); + SetDescription( description ); + SetNiterations( Niterations ); + return 0; +} diff --git a/src/ForLoop_mask.h b/src/ForLoop_mask.h new file mode 100644 index 0000000000..d04a938950 --- /dev/null +++ b/src/ForLoop_mask.h @@ -0,0 +1,18 @@ +#ifndef INC_FORLOOP_MASK_H +#define INC_FORLOOP_MASK_H +#include +#include "ForLoop.h" +/// For loop over mask expression +class ForLoop_mask : public ForLoop { + public: + ForLoop_mask() {} + + int SetupFor(CpptrajState&, std::string const&, ArgList&); + private: + typedef std::vector Iarray; + + Iarray Idxs_; ///< (MASK only) Selected atom/residue/molecule indices + Iarray::const_iterator idx_; ///< (MASK only) Current atom/residue/molecule index + +}; +#endif From 03fc2db0f04854f2a9cd443e705e04cb4cbff347 Mon Sep 17 00:00:00 2001 From: "Daniel R. Roe" Date: Wed, 18 Dec 2019 12:11:24 -0500 Subject: [PATCH 006/162] DRR - Most of VarType only needed for mask type loop --- src/ForLoop.h | 11 +++++------ src/ForLoop_integer.cpp | 2 +- src/ForLoop_integer.h | 2 +- src/ForLoop_mask.cpp | 29 +++++++++++++++-------------- src/ForLoop_mask.h | 1 + 5 files changed, 23 insertions(+), 22 deletions(-) diff --git a/src/ForLoop.h b/src/ForLoop.h index 99839f2c88..eaa2d0984f 100644 --- a/src/ForLoop.h +++ b/src/ForLoop.h @@ -6,24 +6,23 @@ class ArgList; /// Abstract base class for all for loops class ForLoop { public: - enum ForType {ATOMS=0, RESIDUES, MOLECULES, MOLFIRSTRES, MOLLASTRES, INTEGER, LIST, UNKNOWN}; - - ForLoop() : varType_(UNKNOWN), Niterations_(-1) {} + //ForLoop() : varType_(UNKNOWN), Niterations_(-1) {} + ForLoop() : Niterations_(-1) {} virtual ~ForLoop() {} virtual int SetupFor(CpptrajState&, std::string const&, ArgList&) = 0; protected: void SetDescription(std::string const& descIn) { description_ = descIn; } - void SetType(ForType f) { varType_ = f; } + //void SetType(ForType f) { varType_ = f; } void SetVarName(std::string const& v) { varname_ = v; } void SetNiterations(int n) { Niterations_ = n; } std::string const& VarName() const { return varname_; } - ForType VarType() const { return varType_; } + //ForType VarType() const { return varType_; } private: std::string description_; ///< For loop long description std::string varname_; ///< Variable over which for loop is iterating - ForType varType_; ///< For loop type + //ForType varType_; ///< For loop type int Niterations_; ///< # of iterations the loops will execute if known. }; #endif diff --git a/src/ForLoop_integer.cpp b/src/ForLoop_integer.cpp index 0c7a2a4871..379b638631 100644 --- a/src/ForLoop_integer.cpp +++ b/src/ForLoop_integer.cpp @@ -17,7 +17,7 @@ ForLoop_integer::ForLoop_integer() : int ForLoop_integer::SetupFor(CpptrajState& state, std::string const& expr, ArgList& argIn) { int Niterations = -1; // [=;[;][]] - SetType( INTEGER ); + //SetType( INTEGER ); ArgList varArg( expr, ";" ); if (varArg.Nargs() < 2 || varArg.Nargs() > 3) { mprinterr("Error: Malformed 'for' loop variable.\n" diff --git a/src/ForLoop_integer.h b/src/ForLoop_integer.h index 1df2b449a0..dbfe364551 100644 --- a/src/ForLoop_integer.h +++ b/src/ForLoop_integer.h @@ -6,7 +6,7 @@ class ForLoop_integer : public ForLoop { public: ForLoop_integer(); - int SetupFor(CpptrajState&, std::string const&); + int SetupFor(CpptrajState&, std::string const&, ArgList&); enum OpType { INCREMENT=0, DECREMENT, LESS_THAN, GREATER_THAN, NO_OP }; private: diff --git a/src/ForLoop_mask.cpp b/src/ForLoop_mask.cpp index 4f22316653..f3d1c83e2c 100644 --- a/src/ForLoop_mask.cpp +++ b/src/ForLoop_mask.cpp @@ -5,15 +5,16 @@ int ForLoop_mask::SetupFor(CpptrajState& State, std::string const& expr, ArgList& argIn) { int Niterations = -1; - static const char* TypeStr[] = { "ATOMS ", "RESIDUES ", "MOLECULES ", + static const char* TypeStr[NTYPES] = { "ATOMS ", "RESIDUES ", "MOLECULES ", "MOL_FIRST_RES ", "MOL_LAST_RES " }; // {atoms|residues|molecules} inmask [TOP KEYWORDS] Topology* currentTop = 0; - if ( expr == "atoms" ) SetType( ATOMS ); - else if ( expr == "residues" ) SetType( RESIDUES ); - else if ( expr == "molecules" ) SetType( MOLECULES ); - else if ( expr == "molfirstres" ) SetType( MOLFIRSTRES ); - else if ( expr == "mollastres" ) SetType( MOLLASTRES ); + MaskType mtype = NTYPES; + if ( expr == "atoms" ) mtype = ATOMS; + else if ( expr == "residues" ) mtype = RESIDUES; + else if ( expr == "molecules" ) mtype = MOLECULES; + else if ( expr == "molfirstres" ) mtype = MOLFIRSTRES; + else if ( expr == "mollastres" ) mtype = MOLLASTRES; else { mprinterr("Error: Unrecognized mask for loop type: %s\n", expr.c_str()); return 1; @@ -42,9 +43,9 @@ int ForLoop_mask::SetupFor(CpptrajState& State, std::string const& expr, ArgList currentMask.MaskInfo(); if (currentMask.None()) return 1; // Set up indices - if (VarType() == ATOMS) + if (mtype == ATOMS) Idxs_ = currentMask.Selected(); - else if (VarType() == RESIDUES) { + else if (mtype == RESIDUES) { int curRes = -1; for (AtomMask::const_iterator at = currentMask.begin(); at != currentMask.end(); ++at) { int res = (*currentTop)[*at].ResNum(); @@ -53,19 +54,19 @@ int ForLoop_mask::SetupFor(CpptrajState& State, std::string const& expr, ArgList curRes = res; } } - } else if (VarType() == MOLECULES || - VarType() == MOLFIRSTRES || - VarType() == MOLLASTRES) + } else if (mtype == MOLECULES || + mtype == MOLFIRSTRES || + mtype == MOLLASTRES) { int curMol = -1; for (AtomMask::const_iterator at = currentMask.begin(); at != currentMask.end(); ++at) { int mol = (*currentTop)[*at].MolNum(); if (mol != curMol) { - if (VarType() == MOLECULES) + if (mtype == MOLECULES) Idxs_.push_back( mol ); else { int res; - if (VarType() == MOLFIRSTRES) + if (mtype == MOLFIRSTRES) res = (*currentTop)[ currentTop->Mol( mol ).BeginAtom() ].ResNum(); else // MOLLASTRES res = (*currentTop)[ currentTop->Mol( mol ).EndAtom()-1 ].ResNum(); @@ -76,7 +77,7 @@ int ForLoop_mask::SetupFor(CpptrajState& State, std::string const& expr, ArgList } } Niterations = (int)Idxs_.size(); - std::string description(std::string(TypeStr[VarType()]) + + std::string description(std::string(TypeStr[mtype]) + VarName() + " inmask " + currentMask.MaskExpression()); SetDescription( description ); SetNiterations( Niterations ); diff --git a/src/ForLoop_mask.h b/src/ForLoop_mask.h index d04a938950..677883408a 100644 --- a/src/ForLoop_mask.h +++ b/src/ForLoop_mask.h @@ -9,6 +9,7 @@ class ForLoop_mask : public ForLoop { int SetupFor(CpptrajState&, std::string const&, ArgList&); private: + enum MaskType {ATOMS=0, RESIDUES, MOLECULES, MOLFIRSTRES, MOLLASTRES, NTYPES}; typedef std::vector Iarray; Iarray Idxs_; ///< (MASK only) Selected atom/residue/molecule indices From 7779bd894a7db8d62b9b63386cf0ed8d4737af27 Mon Sep 17 00:00:00 2001 From: "Daniel R. Roe" Date: Wed, 18 Dec 2019 12:21:59 -0500 Subject: [PATCH 007/162] DRR - Have SetVarName prepend the $ automatically --- src/ForLoop.h | 5 ++++- src/ForLoop_integer.cpp | 10 ++++------ src/ForLoop_mask.cpp | 5 ----- 3 files changed, 8 insertions(+), 12 deletions(-) diff --git a/src/ForLoop.h b/src/ForLoop.h index eaa2d0984f..75bbe764db 100644 --- a/src/ForLoop.h +++ b/src/ForLoop.h @@ -14,8 +14,11 @@ class ForLoop { protected: void SetDescription(std::string const& descIn) { description_ = descIn; } //void SetType(ForType f) { varType_ = f; } - void SetVarName(std::string const& v) { varname_ = v; } void SetNiterations(int n) { Niterations_ = n; } + void SetVarName(std::string const& v) { + if (!v.empty()) + varname_ = "$" + v; + } std::string const& VarName() const { return varname_; } //ForType VarType() const { return varType_; } diff --git a/src/ForLoop_integer.cpp b/src/ForLoop_integer.cpp index 379b638631..53a52d6851 100644 --- a/src/ForLoop_integer.cpp +++ b/src/ForLoop_integer.cpp @@ -14,7 +14,7 @@ ForLoop_integer::ForLoop_integer() : currentVal_(0) {} -int ForLoop_integer::SetupFor(CpptrajState& state, std::string const& expr, ArgList& argIn) { +int ForLoop_integer::SetupFor(CpptrajState& State, std::string const& expr, ArgList& argIn) { int Niterations = -1; // [=;[;][]] //SetType( INTEGER ); @@ -106,14 +106,13 @@ int ForLoop_integer::SetupFor(CpptrajState& state, std::string const& expr, ArgL } } // Description - std::string varnametmp = "$" + VarName(); std::string sval = integerToString(start_); - std::string description("(" + varnametmp + "=" + sval + "; "); + std::string description("(" + VarName() + "=" + sval + "; "); std::string eval; if (iargIdx == 2) { // End argument present eval = integerToString(end_); - description.append(varnametmp + std::string(OpStr_[endOp_]) + eval + "; "); + description.append(VarName() + std::string(OpStr_[endOp_]) + eval + "; "); // Check end > start for increment, start > end for decrement int maxval, minval; if (incOp_ == INCREMENT) { @@ -135,9 +134,8 @@ int ForLoop_integer::SetupFor(CpptrajState& state, std::string const& expr, ArgL Niterations = (maxval - minval) / inc_; if (((maxval-minval) % inc_) > 0) Niterations++; } - description.append( varnametmp + std::string(OpStr_[incOp_]) + + description.append( VarName() + std::string(OpStr_[incOp_]) + integerToString(inc_) + ")" ); - SetVarName( varnametmp ); SetDescription( description ); SetNiterations( Niterations ); // If decrementing just negate value diff --git a/src/ForLoop_mask.cpp b/src/ForLoop_mask.cpp index f3d1c83e2c..722932de79 100644 --- a/src/ForLoop_mask.cpp +++ b/src/ForLoop_mask.cpp @@ -33,11 +33,6 @@ int ForLoop_mask::SetupFor(CpptrajState& State, std::string const& expr, ArgList if (top != 0) currentTop = top; if (currentTop == 0) return 1; SetVarName( argIn.GetStringNext() ); - if (VarName().empty()) { - mprinterr("Error: 'for inmask': missing variable name.\n"); - return 1; - } - SetVarName( "$" + VarName() ); // Set up mask if (currentTop->SetupIntegerMask( currentMask )) return 1; currentMask.MaskInfo(); From a498b4d92ba8fd896425aa3e2560ee43d19ba9c2 Mon Sep 17 00:00:00 2001 From: "Daniel R. Roe" Date: Wed, 18 Dec 2019 12:22:18 -0500 Subject: [PATCH 008/162] DRR - Add list for loop type --- src/ForLoop_list.cpp | 39 +++++++++++++++++++++++++++++++++++++++ src/ForLoop_list.h | 16 ++++++++++++++++ 2 files changed, 55 insertions(+) create mode 100644 src/ForLoop_list.cpp create mode 100644 src/ForLoop_list.h diff --git a/src/ForLoop_list.cpp b/src/ForLoop_list.cpp new file mode 100644 index 0000000000..1b67fcb776 --- /dev/null +++ b/src/ForLoop_list.cpp @@ -0,0 +1,39 @@ +#include "ForLoop_list.h" +#include "CpptrajStdio.h" +#include "ArgList.h" +#include "FileName.h" + +int ForLoop_list::SetupFor(CpptrajState& State, std::string const& expr, ArgList& argIn) { + int Niterations = -1; + // in [,...] + //MH.varType_ = ftype; + // Variable name + SetVarName( argIn.GetStringNext() ); + // Comma-separated list of strings + std::string listArg = argIn.GetStringNext(); + if (listArg.empty()) { + mprinterr("Error: 'for in': missing comma-separated list of strings.\n"); + return 1; + } + ArgList list(listArg, ","); + if (list.Nargs() < 1) { + mprinterr("Error: Could not parse '%s' for 'for in'\n", listArg.c_str()); + return 1; + } + for (int il = 0; il != list.Nargs(); il++) { + // Check if file name expansion should occur + if (list[il].find_first_of("*?") != std::string::npos) { + File::NameArray files = File::ExpandToFilenames( list[il] ); + for (File::NameArray::const_iterator fn = files.begin(); fn != files.end(); ++fn) + List_.push_back( fn->Full() ); + } else + List_.push_back( list[il] ); + } + Niterations = (int)List_.size(); + // Description + std::string description( VarName() + " in " + listArg ); + SetDescription( description ); + SetNiterations( Niterations ); + return 0; +} + diff --git a/src/ForLoop_list.h b/src/ForLoop_list.h new file mode 100644 index 0000000000..ad2c9b07c2 --- /dev/null +++ b/src/ForLoop_list.h @@ -0,0 +1,16 @@ +#ifndef INC_FORLOOP_LIST_H +#define INC_FORLOOP_LIST_H +#include +#include +#include "ForLoop.h" +class ForLoop_list : public ForLoop { + public: + ForLoop_list() {} + + int SetupFor(CpptrajState&, std::string const&, ArgList&); + private: + typedef std::vector Sarray; + Sarray List_; ///< (LIST only) List of strings to iterate over. + Sarray::const_iterator sdx_; ///< (LIST only) Iterator to current list item. +}; +#endif From e1874f28a2388d4496abe2b70f9492f3c0b983f7 Mon Sep 17 00:00:00 2001 From: "Daniel R. Roe" Date: Wed, 18 Dec 2019 12:54:43 -0500 Subject: [PATCH 009/162] DRR - Add begin and end functions. --- src/ForLoop.h | 10 ++++++++- src/ForLoop_integer.cpp | 19 ++++++++++++++++ src/ForLoop_integer.h | 2 ++ src/ForLoop_list.cpp | 14 ++++++++++++ src/ForLoop_list.h | 2 ++ src/ForLoop_mask.cpp | 48 +++++++++++++++++++++++++++++------------ src/ForLoop_mask.h | 8 ++++--- 7 files changed, 85 insertions(+), 18 deletions(-) diff --git a/src/ForLoop.h b/src/ForLoop.h index 75bbe764db..7b8d7c5e99 100644 --- a/src/ForLoop.h +++ b/src/ForLoop.h @@ -3,14 +3,22 @@ #include class CpptrajState; class ArgList; +class VariableArray; /// Abstract base class for all for loops class ForLoop { public: //ForLoop() : varType_(UNKNOWN), Niterations_(-1) {} ForLoop() : Niterations_(-1) {} virtual ~ForLoop() {} - + /// Set up the loop, ensure syntax is correct virtual int SetupFor(CpptrajState&, std::string const&, ArgList&) = 0; + /// Start the loop + virtual int BeginFor() = 0; + /// \return True if loop is done, otherwise increment the loop + virtual bool EndFor(VariableArray&) = 0; + + int Niterations() const { return Niterations_; } + std::string const& Description() const { return description_; } protected: void SetDescription(std::string const& descIn) { description_ = descIn; } //void SetType(ForType f) { varType_ = f; } diff --git a/src/ForLoop_integer.cpp b/src/ForLoop_integer.cpp index 53a52d6851..91c52c8324 100644 --- a/src/ForLoop_integer.cpp +++ b/src/ForLoop_integer.cpp @@ -2,6 +2,7 @@ #include "CpptrajStdio.h" #include "ArgList.h" #include "StringRoutines.h" +#include "VariableArray.h" const char* ForLoop_integer::OpStr_[] = {"+=", "-=", "<", ">"}; @@ -148,3 +149,21 @@ int ForLoop_integer::SetupFor(CpptrajState& State, std::string const& expr, ArgL return 0; } + +int ForLoop_integer::BeginFor() { + currentVal_ = start_; + return 0; +} + +bool ForLoop_integer::EndFor(VariableArray& CurrentVars) { + if (endOp_ == LESS_THAN) { + if (currentVal_ >= end_) return true; + } else if (endOp_ == GREATER_THAN) { + if (currentVal_ <= end_) return true; + } + // Get variable value and update CurrentVars + CurrentVars.UpdateVariable( VarName(), integerToString( currentVal_ )); + // Increment + currentVal_ += inc_; + return false; +} diff --git a/src/ForLoop_integer.h b/src/ForLoop_integer.h index dbfe364551..9f8c32db5c 100644 --- a/src/ForLoop_integer.h +++ b/src/ForLoop_integer.h @@ -7,6 +7,8 @@ class ForLoop_integer : public ForLoop { ForLoop_integer(); int SetupFor(CpptrajState&, std::string const&, ArgList&); + int BeginFor(); + bool EndFor(VariableArray&); enum OpType { INCREMENT=0, DECREMENT, LESS_THAN, GREATER_THAN, NO_OP }; private: diff --git a/src/ForLoop_list.cpp b/src/ForLoop_list.cpp index 1b67fcb776..38073d9daf 100644 --- a/src/ForLoop_list.cpp +++ b/src/ForLoop_list.cpp @@ -2,6 +2,7 @@ #include "CpptrajStdio.h" #include "ArgList.h" #include "FileName.h" +#include "VariableArray.h" int ForLoop_list::SetupFor(CpptrajState& State, std::string const& expr, ArgList& argIn) { int Niterations = -1; @@ -37,3 +38,16 @@ int ForLoop_list::SetupFor(CpptrajState& State, std::string const& expr, ArgList return 0; } +int ForLoop_list::BeginFor() { + sdx_ = List_.begin(); + return 0; +} + +bool ForLoop_list::EndFor(VariableArray& CurrentVars) { + if (sdx_ == List_.end()) return true; + // Get variable value + CurrentVars.UpdateVariable( VarName(), *(sdx_) ); + // Increment + ++(sdx_); + return false; +} diff --git a/src/ForLoop_list.h b/src/ForLoop_list.h index ad2c9b07c2..4f9ab53309 100644 --- a/src/ForLoop_list.h +++ b/src/ForLoop_list.h @@ -8,6 +8,8 @@ class ForLoop_list : public ForLoop { ForLoop_list() {} int SetupFor(CpptrajState&, std::string const&, ArgList&); + int BeginFor(); + bool EndFor(VariableArray&); private: typedef std::vector Sarray; Sarray List_; ///< (LIST only) List of strings to iterate over. diff --git a/src/ForLoop_mask.cpp b/src/ForLoop_mask.cpp index 722932de79..5c0e4c612b 100644 --- a/src/ForLoop_mask.cpp +++ b/src/ForLoop_mask.cpp @@ -2,6 +2,8 @@ #include "CpptrajStdio.h" #include "ArgList.h" #include "CpptrajState.h" +#include "StringRoutines.h" +#include "VariableArray.h" int ForLoop_mask::SetupFor(CpptrajState& State, std::string const& expr, ArgList& argIn) { int Niterations = -1; @@ -9,12 +11,12 @@ int ForLoop_mask::SetupFor(CpptrajState& State, std::string const& expr, ArgList "MOL_FIRST_RES ", "MOL_LAST_RES " }; // {atoms|residues|molecules} inmask [TOP KEYWORDS] Topology* currentTop = 0; - MaskType mtype = NTYPES; - if ( expr == "atoms" ) mtype = ATOMS; - else if ( expr == "residues" ) mtype = RESIDUES; - else if ( expr == "molecules" ) mtype = MOLECULES; - else if ( expr == "molfirstres" ) mtype = MOLFIRSTRES; - else if ( expr == "mollastres" ) mtype = MOLLASTRES; + mtype_ = NTYPES; + if ( expr == "atoms" ) mtype_ = ATOMS; + else if ( expr == "residues" ) mtype_ = RESIDUES; + else if ( expr == "molecules" ) mtype_ = MOLECULES; + else if ( expr == "molfirstres" ) mtype_ = MOLFIRSTRES; + else if ( expr == "mollastres" ) mtype_ = MOLLASTRES; else { mprinterr("Error: Unrecognized mask for loop type: %s\n", expr.c_str()); return 1; @@ -38,9 +40,9 @@ int ForLoop_mask::SetupFor(CpptrajState& State, std::string const& expr, ArgList currentMask.MaskInfo(); if (currentMask.None()) return 1; // Set up indices - if (mtype == ATOMS) + if (mtype_ == ATOMS) Idxs_ = currentMask.Selected(); - else if (mtype == RESIDUES) { + else if (mtype_ == RESIDUES) { int curRes = -1; for (AtomMask::const_iterator at = currentMask.begin(); at != currentMask.end(); ++at) { int res = (*currentTop)[*at].ResNum(); @@ -49,19 +51,19 @@ int ForLoop_mask::SetupFor(CpptrajState& State, std::string const& expr, ArgList curRes = res; } } - } else if (mtype == MOLECULES || - mtype == MOLFIRSTRES || - mtype == MOLLASTRES) + } else if (mtype_ == MOLECULES || + mtype_ == MOLFIRSTRES || + mtype_ == MOLLASTRES) { int curMol = -1; for (AtomMask::const_iterator at = currentMask.begin(); at != currentMask.end(); ++at) { int mol = (*currentTop)[*at].MolNum(); if (mol != curMol) { - if (mtype == MOLECULES) + if (mtype_ == MOLECULES) Idxs_.push_back( mol ); else { int res; - if (mtype == MOLFIRSTRES) + if (mtype_ == MOLFIRSTRES) res = (*currentTop)[ currentTop->Mol( mol ).BeginAtom() ].ResNum(); else // MOLLASTRES res = (*currentTop)[ currentTop->Mol( mol ).EndAtom()-1 ].ResNum(); @@ -72,9 +74,27 @@ int ForLoop_mask::SetupFor(CpptrajState& State, std::string const& expr, ArgList } } Niterations = (int)Idxs_.size(); - std::string description(std::string(TypeStr[mtype]) + + std::string description(std::string(TypeStr[mtype_]) + VarName() + " inmask " + currentMask.MaskExpression()); SetDescription( description ); SetNiterations( Niterations ); return 0; } + +int ForLoop_mask::BeginFor() { + idx_ = Idxs_.begin(); + return 0; +} + +bool ForLoop_mask::EndFor(VariableArray& CurrentVars) { + static const char* prefix[NTYPES] = {"@", ":", "^", ":", ":"}; + if (idx_ == Idxs_.end()) return true; + // Get variable value + std::string maskStr = prefix[mtype_] + integerToString(*(idx_) + 1); + //mprintf("DEBUG: ControlBlock_For: %s\n", maskStr.c_str()); + // Update CurrentVars + CurrentVars.UpdateVariable( VarName(), maskStr ); + // Increment + ++(idx_); + return false; +} diff --git a/src/ForLoop_mask.h b/src/ForLoop_mask.h index 677883408a..8b1ca9ece7 100644 --- a/src/ForLoop_mask.h +++ b/src/ForLoop_mask.h @@ -4,16 +4,18 @@ #include "ForLoop.h" /// For loop over mask expression class ForLoop_mask : public ForLoop { + enum MaskType {ATOMS=0, RESIDUES, MOLECULES, MOLFIRSTRES, MOLLASTRES, NTYPES}; public: - ForLoop_mask() {} + ForLoop_mask() : mtype_(NTYPES) {} int SetupFor(CpptrajState&, std::string const&, ArgList&); + int BeginFor(); + bool EndFor(VariableArray&); private: - enum MaskType {ATOMS=0, RESIDUES, MOLECULES, MOLFIRSTRES, MOLLASTRES, NTYPES}; typedef std::vector Iarray; Iarray Idxs_; ///< (MASK only) Selected atom/residue/molecule indices Iarray::const_iterator idx_; ///< (MASK only) Current atom/residue/molecule index - + MaskType mtype_; ///< Hold specific mask type }; #endif From 2663af720f632429928be90727982cc4ea4c1dae Mon Sep 17 00:00:00 2001 From: "Daniel R. Roe" Date: Wed, 18 Dec 2019 12:56:43 -0500 Subject: [PATCH 010/162] DRR - Add ForLoop files, update depends --- src/cpptrajdepend | 5 ++++- src/cpptrajfiles | 3 +++ 2 files changed, 7 insertions(+), 1 deletion(-) diff --git a/src/cpptrajdepend b/src/cpptrajdepend index b84f6e66d9..4d10da3596 100644 --- a/src/cpptrajdepend +++ b/src/cpptrajdepend @@ -161,7 +161,7 @@ Command.o : Command.cpp Action.h ActionFrameCounter.h ActionList.h ActionState.h ComplexArray.o : ComplexArray.cpp ArrayIterator.h ComplexArray.h Constraints.o : Constraints.cpp ArgList.h Atom.h AtomExtra.h AtomMask.h AtomType.h Box.h CharMask.h Constants.h Constraints.h CoordinateInfo.h CpptrajStdio.h FileName.h Frame.h MaskToken.h Matrix_3x3.h Molecule.h NameType.h Parallel.h ParameterHolders.h ParameterSet.h ParameterTypes.h Range.h ReplicaDimArray.h Residue.h SymbolExporting.h Topology.h TypeNameHolder.h Vec3.h Control.o : Control.cpp Action.h ActionList.h ActionState.h Analysis.h AnalysisList.h AnalysisState.h ArgList.h AssociatedData.h Atom.h AtomExtra.h AtomMask.h AtomType.h BaseIOtype.h Box.h Constants.h Control.h CoordinateInfo.h CpptrajFile.h CpptrajState.h CpptrajStdio.h DataFile.h DataFileList.h DataIO.h DataSet.h DataSetList.h DataSet_Coords.h DataSet_Coords_REF.h Dimension.h DispatchObject.h EnsembleIn.h EnsembleOutList.h FileIO.h FileName.h FileTypes.h Frame.h FramePtrArray.h InputTrajCommon.h MaskToken.h Matrix_3x3.h MetaData.h Molecule.h NameType.h Parallel.h ParameterHolders.h ParameterSet.h ParameterTypes.h Range.h ReferenceFrame.h ReplicaDimArray.h ReplicaInfo.h Residue.h StringRoutines.h SymbolExporting.h TextFormat.h Timer.h Topology.h TrajFrameCounter.h Trajin.h TrajinList.h TrajoutList.h TypeNameHolder.h VariableArray.h Vec3.h -ControlBlock_For.o : ControlBlock_For.cpp Action.h ActionList.h ActionState.h Analysis.h AnalysisList.h AnalysisState.h ArgList.h AssociatedData.h Atom.h AtomExtra.h AtomMask.h AtomType.h BaseIOtype.h Box.h Constants.h ControlBlock.h ControlBlock_For.h CoordinateInfo.h CpptrajFile.h CpptrajState.h CpptrajStdio.h DataFile.h DataFileList.h DataIO.h DataSet.h DataSetList.h DataSet_Coords.h DataSet_Coords_REF.h Dimension.h DispatchObject.h EnsembleIn.h EnsembleOutList.h FileIO.h FileName.h FileTypes.h Frame.h FramePtrArray.h InputTrajCommon.h MaskToken.h Matrix_3x3.h MetaData.h Molecule.h NameType.h Parallel.h ParameterHolders.h ParameterSet.h ParameterTypes.h Range.h ReferenceFrame.h ReplicaDimArray.h ReplicaInfo.h Residue.h StringRoutines.h SymbolExporting.h TextFormat.h Timer.h Topology.h TrajFrameCounter.h Trajin.h TrajinList.h TrajoutList.h TypeNameHolder.h VariableArray.h Vec3.h +ControlBlock_For.o : ControlBlock_For.cpp ArgList.h AssociatedData.h Atom.h AtomExtra.h AtomMask.h AtomType.h Box.h Constants.h ControlBlock.h ControlBlock_For.h CoordinateInfo.h CpptrajFile.h CpptrajStdio.h DataSet.h DataSetList.h DataSet_Coords.h DataSet_Coords_REF.h Dimension.h DispatchObject.h FileIO.h FileName.h ForLoop.h ForLoop_integer.h ForLoop_list.h ForLoop_mask.h Frame.h MaskToken.h Matrix_3x3.h MetaData.h Molecule.h NameType.h Parallel.h ParameterHolders.h ParameterSet.h ParameterTypes.h Range.h ReferenceFrame.h ReplicaDimArray.h Residue.h SymbolExporting.h TextFormat.h Timer.h Topology.h TypeNameHolder.h Vec3.h CoordinateInfo.o : CoordinateInfo.cpp Box.h CoordinateInfo.h CpptrajStdio.h Matrix_3x3.h Parallel.h ReplicaDimArray.h Vec3.h Corr.o : Corr.cpp ArrayIterator.h ComplexArray.h Corr.h PubFFT.h Cph.o : Cph.cpp Cph.h NameType.h @@ -287,6 +287,9 @@ FileIO_Std.o : FileIO_Std.cpp FileIO.h FileIO_Std.h FileName.o : FileName.cpp CpptrajStdio.h FileName.h StringRoutines.h FileTypes.o : FileTypes.cpp ArgList.h BaseIOtype.h CpptrajStdio.h FileTypes.h File_TempName.o : File_TempName.cpp CpptrajStdio.h FileName.h File_TempName.h StringRoutines.h +ForLoop_integer.o : ForLoop_integer.cpp ArgList.h CpptrajStdio.h ForLoop.h ForLoop_integer.h StringRoutines.h VariableArray.h +ForLoop_list.o : ForLoop_list.cpp ArgList.h CpptrajStdio.h FileName.h ForLoop.h ForLoop_list.h VariableArray.h +ForLoop_mask.o : ForLoop_mask.cpp Action.h ActionList.h ActionState.h Analysis.h AnalysisList.h AnalysisState.h ArgList.h AssociatedData.h Atom.h AtomExtra.h AtomMask.h AtomType.h BaseIOtype.h Box.h Constants.h CoordinateInfo.h CpptrajFile.h CpptrajState.h CpptrajStdio.h DataFile.h DataFileList.h DataIO.h DataSet.h DataSetList.h DataSet_Coords.h DataSet_Coords_REF.h Dimension.h DispatchObject.h EnsembleIn.h EnsembleOutList.h FileIO.h FileName.h FileTypes.h ForLoop.h ForLoop_mask.h Frame.h FramePtrArray.h InputTrajCommon.h MaskToken.h Matrix_3x3.h MetaData.h Molecule.h NameType.h Parallel.h ParameterHolders.h ParameterSet.h ParameterTypes.h Range.h ReferenceFrame.h ReplicaDimArray.h ReplicaInfo.h Residue.h StringRoutines.h SymbolExporting.h TextFormat.h Timer.h Topology.h TrajFrameCounter.h Trajin.h TrajinList.h TrajoutList.h TypeNameHolder.h VariableArray.h Vec3.h Frame.o : Frame.cpp Atom.h AtomMask.h Box.h Constants.h CoordinateInfo.h CpptrajStdio.h Frame.h MaskToken.h Matrix_3x3.h Molecule.h NameType.h Parallel.h ReplicaDimArray.h Residue.h SymbolExporting.h Vec3.h GridAction.o : GridAction.cpp ArgList.h ArrayIterator.h AssociatedData.h Atom.h AtomExtra.h AtomMask.h AtomType.h Box.h Constants.h CoordinateInfo.h CpptrajFile.h CpptrajStdio.h DataSet.h DataSetList.h DataSet_3D.h DataSet_Coords.h DataSet_Coords_REF.h DataSet_GridFlt.h Dimension.h FileIO.h FileName.h Frame.h Grid.h GridAction.h GridBin.h MaskToken.h Matrix_3x3.h MetaData.h Molecule.h NameType.h Parallel.h ParameterHolders.h ParameterSet.h ParameterTypes.h Range.h ReferenceFrame.h ReplicaDimArray.h Residue.h SymbolExporting.h TextFormat.h Timer.h Topology.h TypeNameHolder.h Vec3.h HistBin.o : HistBin.cpp Constants.h CpptrajStdio.h Dimension.h HistBin.h diff --git a/src/cpptrajfiles b/src/cpptrajfiles index 27604a953c..5f843f61ff 100644 --- a/src/cpptrajfiles +++ b/src/cpptrajfiles @@ -287,6 +287,9 @@ COMMON_SOURCES= \ FileIO_Std.cpp \ FileName.cpp \ FileTypes.cpp \ + ForLoop_integer.cpp \ + ForLoop_list.cpp \ + ForLoop_mask.cpp \ Frame.cpp \ GridAction.cpp \ HistBin.cpp \ From b9679727ac754f0d9ec73383e3668cdffb29a901 Mon Sep 17 00:00:00 2001 From: "Daniel R. Roe" Date: Wed, 18 Dec 2019 12:58:25 -0500 Subject: [PATCH 011/162] DRR - Try to use new ForLoop class. Doesnt appear to work yet... --- src/Command.cpp | 3 + src/ControlBlock_For.cpp | 330 +++++---------------------------------- src/ControlBlock_For.h | 28 +--- 3 files changed, 47 insertions(+), 314 deletions(-) diff --git a/src/Command.cpp b/src/Command.cpp index deb15dbf24..cd98551cb7 100644 --- a/src/Command.cpp +++ b/src/Command.cpp @@ -550,6 +550,7 @@ void Command::ListCommands(DispatchObject::Otype typeIn) { ListCommandsForType( typeIn ); } +// ----- Control block functions ----------------------------------------------- /** \return true if any control blocks remain. */ bool Command::UnterminatedControl() { if (!control_.empty()) { @@ -605,6 +606,8 @@ int Command::ExecuteControlBlock(int block, CpptrajState& State) return 0; } +// ----- END Control block functions ------------------------------------------- + /** Handle the given command. If inside a control block, if the command is * a control command a new block will be created, otherwise the command will * be added to the current control block. Once all control blocks are diff --git a/src/ControlBlock_For.cpp b/src/ControlBlock_For.cpp index b235ce472b..d128e16a28 100644 --- a/src/ControlBlock_For.cpp +++ b/src/ControlBlock_For.cpp @@ -1,10 +1,19 @@ #include "ControlBlock_For.h" #include "CpptrajStdio.h" #include "ArgList.h" -#include "DataSetList.h" -#include "CpptrajState.h" -#include "VariableArray.h" -#include "StringRoutines.h" +#include "DataSetList.h" // TODO move into ForLoop help? +// For loop types +#include "ForLoop.h" +#include "ForLoop_integer.h" +#include "ForLoop_mask.h" +#include "ForLoop_list.h" + +/// DESTRUCTOR +ControlBlock_For::~ControlBlock_For() { + for (Marray::iterator it = Vars_.begin(); it != Vars_.end(); ++it) + delete *it; + Vars_.clear(); +} void ControlBlock_For::Help() const { mprintf("\t{ {atoms|residues|molecules|molfirstres|mollastres}\n" @@ -37,10 +46,6 @@ void ControlBlock_For::Help() const { int ControlBlock_For::SetupBlock(CpptrajState& State, ArgList& argIn) { mprintf(" Setting up 'for' loop.\n"); Vars_.clear(); - Topology* currentTop = 0; - static const char* TypeStr[] = { "ATOMS ", "RESIDUES ", "MOLECULES ", - "MOL_FIRST_RES ", "MOL_LAST_RES " }; - static const char* OpStr[] = {"+=", "-=", "<", ">"}; description_.assign("for ("); int MaxIterations = -1; int iarg = 0; @@ -50,261 +55,31 @@ int ControlBlock_For::SetupBlock(CpptrajState& State, ArgList& argIn) { while (iarg < argIn.Nargs() && argIn.Marked(iarg)) iarg++; if (iarg == argIn.Nargs()) break; // Determine 'for' type - ForType ftype = UNKNOWN; - bool isMaskFor = true; int argToMark = iarg; - if ( argIn[iarg] == "atoms" ) ftype = ATOMS; - else if ( argIn[iarg] == "residues" ) ftype = RESIDUES; - else if ( argIn[iarg] == "molecules" ) ftype = MOLECULES; - else if ( argIn[iarg] == "molfirstres" ) ftype = MOLFIRSTRES; - else if ( argIn[iarg] == "mollastres" ) ftype = MOLLASTRES; - else if ( argIn[iarg].find(";") != std::string::npos ) { - isMaskFor = false; - ftype = INTEGER; - } - // If type is still unknown, check for list. - if (ftype == UNKNOWN) { - if (iarg+1 < argIn.Nargs() && argIn[iarg+1] == "in") { - ftype = LIST; - isMaskFor = false; - argToMark = iarg+1; - } - } - // Exit if type could not be determined. - if (ftype == UNKNOWN) { + if ( argIn[iarg] == "atoms" || + argIn[iarg] == "residues" || + argIn[iarg] == "molecules" || + argIn[iarg] == "molfirstres" || + argIn[iarg] == "mollastres" ) + { + Vars_.push_back( static_cast( new ForLoop_mask() ) ); + } else if ( argIn[iarg].find(";") != std::string::npos ) { + Vars_.push_back( static_cast( new ForLoop_integer() ) ); + } else if (iarg+1 < argIn.Nargs() && argIn[iarg+1] == "in") { + Vars_.push_back( static_cast( new ForLoop_list() ) ); + } else { + // Exit if type could not be determined. mprinterr("Error: for loop type not specfied.\n"); return 1; } argIn.MarkArg(argToMark); - Vars_.push_back( LoopVar() ); - LoopVar& MH = Vars_.back(); - int Niterations = -1; - // Set up for specific type - if (description_ != "for (") description_.append(", "); - // ------------------------------------------- - if (isMaskFor) - { - // {atoms|residues|molecules} inmask [TOP KEYWORDS] - if (argIn[iarg+2] != "inmask") { - mprinterr("Error: Expected 'inmask', got %s\n", argIn[iarg+2].c_str()); - return 1; - } - AtomMask currentMask; - if (currentMask.SetMaskString( argIn.GetStringKey("inmask") )) return 1; - MH.varType_ = ftype; - Topology* top = State.DSL().GetTopByIndex( argIn ); - if (top != 0) currentTop = top; - if (currentTop == 0) return 1; - MH.varname_ = argIn.GetStringNext(); - if (MH.varname_.empty()) { - mprinterr("Error: 'for inmask': missing variable name.\n"); - return 1; - } - MH.varname_ = "$" + MH.varname_; - // Set up mask - if (currentTop->SetupIntegerMask( currentMask )) return 1; - currentMask.MaskInfo(); - if (currentMask.None()) return 1; - // Set up indices - if (MH.varType_ == ATOMS) - MH.Idxs_ = currentMask.Selected(); - else if (MH.varType_ == RESIDUES) { - int curRes = -1; - for (AtomMask::const_iterator at = currentMask.begin(); at != currentMask.end(); ++at) { - int res = (*currentTop)[*at].ResNum(); - if (res != curRes) { - MH.Idxs_.push_back( res ); - curRes = res; - } - } - } else if (MH.varType_ == MOLECULES || - MH.varType_ == MOLFIRSTRES || - MH.varType_ == MOLLASTRES) - { - int curMol = -1; - for (AtomMask::const_iterator at = currentMask.begin(); at != currentMask.end(); ++at) { - int mol = (*currentTop)[*at].MolNum(); - if (mol != curMol) { - if (MH.varType_ == MOLECULES) - MH.Idxs_.push_back( mol ); - else { - int res; - if (MH.varType_ == MOLFIRSTRES) - res = (*currentTop)[ currentTop->Mol( mol ).BeginAtom() ].ResNum(); - else // MOLLASTRES - res = (*currentTop)[ currentTop->Mol( mol ).EndAtom()-1 ].ResNum(); - MH.Idxs_.push_back( res ); - } - curMol = mol; - } - } - } - Niterations = (int)MH.Idxs_.size(); - description_.append(std::string(TypeStr[MH.varType_]) + - MH.varname_ + " inmask " + currentMask.MaskExpression()); - // ------------------------------------------- - } else if (ftype == INTEGER) { - // [=;[;][]] - MH.varType_ = ftype; - ArgList varArg( argIn[iarg], ";" ); - if (varArg.Nargs() < 2 || varArg.Nargs() > 3) { - mprinterr("Error: Malformed 'for' loop variable.\n" - "Error: Expected '[=;[;][]]'\n" - "Error: Got '%s'\n", argIn[iarg].c_str()); - return 1; - } - // First argument: = - ArgList startArg( varArg[0], "=" ); - if (startArg.Nargs() != 2) { - mprinterr("Error: Malformed 'start' argument.\n" - "Error: Expected =, got '%s'\n", varArg[0].c_str()); - return 1; - } - MH.varname_ = startArg[0]; - if (!validInteger(startArg[1])) { - // TODO allow variables - mprinterr("Error: Start argument must be an integer.\n"); - return 1; - } else - MH.start_ = convertToInteger(startArg[1]); - // Second argument: - size_t pos0 = MH.varname_.size(); - size_t pos1 = pos0 + 1; - MH.endOp_ = NO_OP; - int iargIdx = 1; - if (varArg.Nargs() == 3) { - iargIdx = 2; - if ( varArg[1][pos0] == '<' ) - MH.endOp_ = LESS_THAN; - else if (varArg[1][pos0] == '>') - MH.endOp_ = GREATER_THAN; - if (MH.endOp_ == NO_OP) { - mprinterr("Error: Unrecognized end op: '%s'\n", - varArg[1].substr(pos0, pos1-pos0).c_str()); - return 1; - } - std::string endStr = varArg[1].substr(pos1); - if (!validInteger(endStr)) { - // TODO allow variables - mprinterr("Error: End argument must be an integer.\n"); - return 1; - } else - MH.end_ = convertToInteger(endStr); - } - // Third argument: [] - pos1 = pos0 + 2; - MH.incOp_ = NO_OP; - bool needValue = false; - if ( varArg[iargIdx][pos0] == '+' ) { - if (varArg[iargIdx][pos0+1] == '+') { - MH.incOp_ = INCREMENT; - MH.inc_ = 1; - } else if (varArg[iargIdx][pos0+1] == '=') { - MH.incOp_ = INCREMENT; - needValue = true; - } - } else if ( varArg[iargIdx][pos0] == '-' ) { - if (varArg[iargIdx][pos0+1] == '-' ) { - MH.incOp_ = DECREMENT; - MH.inc_ = 1; - } else if (varArg[iargIdx][pos0+1] == '=') { - MH.incOp_ = DECREMENT; - needValue = true; - } - } - if (MH.incOp_ == NO_OP) { - mprinterr("Error: Unrecognized increment op: '%s'\n", - varArg[iargIdx].substr(pos0, pos1-pos0).c_str()); - return 1; - } - if (needValue) { - std::string incStr = varArg[iargIdx].substr(pos1); - if (!validInteger(incStr)) { - mprinterr("Error: increment value is not a valid integer.\n"); - return 1; - } - MH.inc_ = convertToInteger(incStr); - if (MH.inc_ < 1) { - mprinterr("Error: Extra '-' detected in increment.\n"); - return 1; - } - } - // Description - MH.varname_ = "$" + MH.varname_; - std::string sval = integerToString(MH.start_); - description_.append("(" + MH.varname_ + "=" + sval + "; "); - std::string eval; - if (iargIdx == 2) { - // End argument present - eval = integerToString(MH.end_); - description_.append(MH.varname_ + std::string(OpStr[MH.endOp_]) + eval + "; "); - // Check end > start for increment, start > end for decrement - int maxval, minval; - if (MH.incOp_ == INCREMENT) { - if (MH.start_ >= MH.end_) { - mprinterr("Error: start must be less than end for increment.\n"); - return 1; - } - minval = MH.start_; - maxval = MH.end_; - } else { - if (MH.end_ >= MH.start_) { - mprinterr("Error: end must be less than start for decrement.\n"); - return 1; - } - minval = MH.end_; - maxval = MH.start_; - } - // Figure out number of iterations - Niterations = (maxval - minval) / MH.inc_; - if (((maxval-minval) % MH.inc_) > 0) Niterations++; - } - description_.append( MH.varname_ + std::string(OpStr[MH.incOp_]) + - integerToString(MH.inc_) + ")" ); - // If decrementing just negate value - if (MH.incOp_ == DECREMENT) - MH.inc_ = -MH.inc_; - // DEBUG - //mprintf("DEBUG: start=%i endOp=%i end=%i incOp=%i val=%i startArg=%s endArg=%s\n", - // MH.start_, (int)MH.endOp_, MH.end_, (int)MH.incOp_, MH.inc_, - // MH.startArg_.c_str(), MH.endArg_.c_str()); - // ------------------------------------------- - } else if (ftype == LIST) { - // in [,...] - MH.varType_ = ftype; - // Variable name - MH.varname_ = argIn.GetStringNext(); - if (MH.varname_.empty()) { - mprinterr("Error: 'for in': missing variable name.\n"); - return 1; - } - MH.varname_ = "$" + MH.varname_; - // Comma-separated list of strings - std::string listArg = argIn.GetStringNext(); - if (listArg.empty()) { - mprinterr("Error: 'for in': missing comma-separated list of strings.\n"); - return 1; - } - ArgList list(listArg, ","); - if (list.Nargs() < 1) { - mprinterr("Error: Could not parse '%s' for 'for in'\n", listArg.c_str()); - return 1; - } - for (int il = 0; il != list.Nargs(); il++) { - // Check if file name expansion should occur - if (list[il].find_first_of("*?") != std::string::npos) { - File::NameArray files = File::ExpandToFilenames( list[il] ); - for (File::NameArray::const_iterator fn = files.begin(); fn != files.end(); ++fn) - MH.List_.push_back( fn->Full() ); - } else - MH.List_.push_back( list[il] ); - } - Niterations = (int)MH.List_.size(); - // Description - description_.append( MH.varname_ + " in " + listArg ); - + ForLoop& forloop = static_cast( *(Vars_.back()) ); + if ( forloop.SetupFor( State, argIn[iarg], argIn ) ) { + mprinterr("Error: For loop setup failed.\n"); + return 1; } // Check number of values + int Niterations = forloop.Niterations(); if (MaxIterations == -1) MaxIterations = Niterations; else if (Niterations != -1 && Niterations != MaxIterations) { @@ -312,6 +87,9 @@ int ControlBlock_For::SetupBlock(CpptrajState& State, ArgList& argIn) { Niterations, MaxIterations); MaxIterations = std::min(Niterations, MaxIterations); } + // Append description + description_.append( forloop.Description() ); + // TODO check variable name } mprintf("\tLoop will execute for %i iterations.\n", MaxIterations); if (MaxIterations < 1) { @@ -330,47 +108,17 @@ bool ControlBlock_For::EndBlock(ArgList const& a) const { /** For each mask initialize iterator. For each integer set to start value. */ void ControlBlock_For::Start() { - for (Marray::iterator MH = Vars_.begin(); MH != Vars_.end(); ++MH) { - if (MH->varType_ == INTEGER) - MH->currentVal_ = MH->start_; // TODO search currentvars - else if ( MH->varType_ == LIST) - MH->sdx_ = MH->List_.begin(); - else - MH->idx_ = MH->Idxs_.begin(); - } + // TODO search currentvars + for (Marray::iterator MH = Vars_.begin(); MH != Vars_.end(); ++MH) + (*MH)->BeginFor(); } /** For each mask check if done, then update CurrentVars, then increment. */ ControlBlock::DoneType ControlBlock_For::CheckDone(VariableArray& CurrentVars) { - static const char* prefix[] = {"@", ":", "^", ":", ":"}; for (Marray::iterator MH = Vars_.begin(); MH != Vars_.end(); ++MH) { // Exit as soon as one is done TODO check all? - if (MH->varType_ == INTEGER) { - if (MH->endOp_ == LESS_THAN) { - if (MH->currentVal_ >= MH->end_) return DONE; - } else if (MH->endOp_ == GREATER_THAN) { - if (MH->currentVal_ <= MH->end_) return DONE; - } - // Get variable value and update CurrentVars - CurrentVars.UpdateVariable( MH->varname_, integerToString( MH->currentVal_ )); - // Increment - MH->currentVal_ += MH->inc_; - } else if (MH->varType_ == LIST) { - if (MH->sdx_ == MH->List_.end()) return DONE; - // Get variable value - CurrentVars.UpdateVariable( MH->varname_, *(MH->sdx_) ); - // Increment - ++(MH->sdx_); - } else { - if (MH->idx_ == MH->Idxs_.end()) return DONE; - // Get variable value - std::string maskStr = prefix[MH->varType_] + integerToString(*(MH->idx_) + 1); - //mprintf("DEBUG: ControlBlock_For: %s\n", maskStr.c_str()); - // Update CurrentVars - CurrentVars.UpdateVariable( MH->varname_, maskStr ); - // Increment - ++(MH->idx_); - } + if ( (*MH)->EndFor(CurrentVars) ) return DONE; } + return NOT_DONE; } diff --git a/src/ControlBlock_For.h b/src/ControlBlock_For.h index f9833897ba..a32edd60ec 100644 --- a/src/ControlBlock_For.h +++ b/src/ControlBlock_For.h @@ -1,10 +1,12 @@ #ifndef INC_CONTROLBLOCK_FOR_H #define INC_CONTROLBLOCK_FOR_H #include "ControlBlock.h" -/// Loop over mask expression or integer +class ForLoop; +/// Hold one or more 'for' loops of various types class ControlBlock_For : public ControlBlock { public: ControlBlock_For() {} + ~ControlBlock_For(); void Help() const; DispatchObject* Alloc() const { return (DispatchObject*)new ControlBlock_For(); } @@ -16,28 +18,8 @@ class ControlBlock_For : public ControlBlock { void Start(); DoneType CheckDone(VariableArray&); private: - enum ForType {ATOMS=0, RESIDUES, MOLECULES, MOLFIRSTRES, MOLLASTRES, INTEGER, LIST, UNKNOWN}; - enum OpType { INCREMENT=0, DECREMENT, LESS_THAN, GREATER_THAN, NO_OP }; - typedef std::vector Iarray; - typedef std::vector Sarray; - class LoopVar { - public: - LoopVar() : varType_(UNKNOWN) {} - Iarray Idxs_; ///< (MASK only) Selected atom/residue/molecule indices - Iarray::const_iterator idx_; ///< (MASK only) Current atom/residue/molecule index - Sarray List_; ///< (LIST only) List of strings to iterate over. - Sarray::const_iterator sdx_; ///< (LIST only) Iterator to current list item. - std::string varname_; ///< Loop variable name - ForType varType_; ///< Loop variable type - OpType endOp_; ///< (INTEGER only) end operator - OpType incOp_; ///< (INTEGER only) increment operator - int start_; ///< (INTEGER only) initial value - int end_; ///< (INTEGER only) end value - int inc_; ///< (INTEGER only) increment value - int currentVal_; ///< (INTEGER only) current value - }; - typedef std::vector Marray; - Marray Vars_; + typedef std::vector Marray; + Marray Vars_; ///< Hold all for loops for this block ArgArray commands_; }; #endif From 4bd4c84446361963aa767707c80a054e3e1346a9 Mon Sep 17 00:00:00 2001 From: "Daniel R. Roe" Date: Wed, 18 Dec 2019 14:03:11 -0500 Subject: [PATCH 012/162] DRR - Need to account for prepended $ --- src/ForLoop_integer.cpp | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/src/ForLoop_integer.cpp b/src/ForLoop_integer.cpp index 91c52c8324..972f01ce4f 100644 --- a/src/ForLoop_integer.cpp +++ b/src/ForLoop_integer.cpp @@ -20,6 +20,7 @@ int ForLoop_integer::SetupFor(CpptrajState& State, std::string const& expr, ArgL // [=;[;][]] //SetType( INTEGER ); ArgList varArg( expr, ";" ); + varArg.PrintDebug(); // DEBUG if (varArg.Nargs() < 2 || varArg.Nargs() > 3) { mprinterr("Error: Malformed 'for' loop variable.\n" "Error: Expected '[=;[;][]]'\n" @@ -45,7 +46,7 @@ int ForLoop_integer::SetupFor(CpptrajState& State, std::string const& expr, ArgL } else start_ = convertToInteger(startArg[1]); // Second argument: - size_t pos0 = VarName().size(); + size_t pos0 = VarName().size() - 1; // Minus 1 to account for prepended '$' size_t pos1 = pos0 + 1; endOp_ = NO_OP; int iargIdx = 1; From 4a8d7ae965435c7274f3b8ea26d564a953264b14 Mon Sep 17 00:00:00 2001 From: "Daniel R. Roe" Date: Wed, 18 Dec 2019 14:07:03 -0500 Subject: [PATCH 013/162] DRR - Fix variable name and 'in' for list for loop --- src/ForLoop_list.cpp | 11 ++++++----- 1 file changed, 6 insertions(+), 5 deletions(-) diff --git a/src/ForLoop_list.cpp b/src/ForLoop_list.cpp index 38073d9daf..58457617c7 100644 --- a/src/ForLoop_list.cpp +++ b/src/ForLoop_list.cpp @@ -8,12 +8,13 @@ int ForLoop_list::SetupFor(CpptrajState& State, std::string const& expr, ArgList int Niterations = -1; // in [,...] //MH.varType_ = ftype; - // Variable name - SetVarName( argIn.GetStringNext() ); - // Comma-separated list of strings - std::string listArg = argIn.GetStringNext(); + argIn.PrintDebug(); + // Variable name. Should be expr. + SetVarName( expr ); + // Comma-separated list of strings. + std::string listArg = argIn.GetStringKey("in"); if (listArg.empty()) { - mprinterr("Error: 'for in': missing comma-separated list of strings.\n"); + mprinterr("Error: 'for in': missing ' in '.\n"); return 1; } ArgList list(listArg, ","); From a8614d72b5c88032683dc0225ef0a4977b929835 Mon Sep 17 00:00:00 2001 From: "Daniel R. Roe" Date: Thu, 19 Dec 2019 07:39:04 -0500 Subject: [PATCH 014/162] DRR - Add GetVariable function --- src/VariableArray.cpp | 9 +++++++++ src/VariableArray.h | 2 ++ 2 files changed, 11 insertions(+) diff --git a/src/VariableArray.cpp b/src/VariableArray.cpp index 33e5bbb529..5380d6b66a 100644 --- a/src/VariableArray.cpp +++ b/src/VariableArray.cpp @@ -6,6 +6,15 @@ #include "DataSetList.h" #include "ArgList.h" +/** \return value corresponding to variable if it exists. */ +std::string VariableArray::GetVariable(std::string const& varname) const { + Varray::const_iterator it = CurrentVars_.begin(); + for (; it != CurrentVars_.end(); ++it) + if (it->first == varname) + return it->second; + return std::string(); +} + /** Add variable/value to array if it doesnt exist, otherwise set value. */ void VariableArray::UpdateVariable(std::string const& varname, std::string const& value) { diff --git a/src/VariableArray.h b/src/VariableArray.h index 6b4aadac1f..a45c16b25d 100644 --- a/src/VariableArray.h +++ b/src/VariableArray.h @@ -13,6 +13,8 @@ class VariableArray { public: /// CONSTRUCTOR VariableArray() {} + /// \return value corresponding to variable if it exists. TODO return const&? + std::string GetVariable(std::string const&) const; /// Add/update variable with given value. void UpdateVariable(std::string const&, std::string const&); /// Add/append variable tith given value. From 61064a9b5a81e0d1c30cf3fe294961c9faf60df1 Mon Sep 17 00:00:00 2001 From: "Daniel R. Roe" Date: Thu, 19 Dec 2019 07:48:53 -0500 Subject: [PATCH 015/162] DRR - Have loop start use CurrentVars --- src/Command.cpp | 2 +- src/ControlBlock.h | 2 +- src/ControlBlock_For.cpp | 7 +++++-- src/ControlBlock_For.h | 2 +- src/ForLoop.h | 2 +- src/ForLoop_integer.cpp | 35 ++++++++++++++++++++++++++--------- src/ForLoop_integer.h | 3 ++- src/ForLoop_list.cpp | 2 +- src/ForLoop_list.h | 2 +- src/ForLoop_mask.cpp | 2 +- src/ForLoop_mask.h | 2 +- 11 files changed, 41 insertions(+), 20 deletions(-) diff --git a/src/Command.cpp b/src/Command.cpp index cd98551cb7..20b038850c 100644 --- a/src/Command.cpp +++ b/src/Command.cpp @@ -581,7 +581,7 @@ int Command::AddControlBlock(ControlBlock* ctl, CpptrajState& State, ArgList& cm /** Execute the specified control block. */ int Command::ExecuteControlBlock(int block, CpptrajState& State) { - control_[block]->Start(); + if (control_[block]->Start(CurrentVars_)) return 1; ControlBlock::DoneType ret = control_[block]->CheckDone(CurrentVars_); if (State.Debug() > 0) { mprintf("DEBUG: Start: CurrentVars:"); diff --git a/src/ControlBlock.h b/src/ControlBlock.h index 6f8d0ed453..1bfed3cc0c 100644 --- a/src/ControlBlock.h +++ b/src/ControlBlock.h @@ -29,7 +29,7 @@ class ControlBlock : public DispatchObject { /// \return iterator to last command in the block. virtual const_iterator end() const = 0; /// Start control block. Init internal variables if necessary. - virtual void Start() = 0; + virtual int Start(VariableArray const&) = 0; /// Add/update variables and increment, check block state. virtual DoneType CheckDone(VariableArray&) = 0; protected: diff --git a/src/ControlBlock_For.cpp b/src/ControlBlock_For.cpp index d128e16a28..fcd6008f9d 100644 --- a/src/ControlBlock_For.cpp +++ b/src/ControlBlock_For.cpp @@ -107,10 +107,13 @@ bool ControlBlock_For::EndBlock(ArgList const& a) const { } /** For each mask initialize iterator. For each integer set to start value. */ -void ControlBlock_For::Start() { +int ControlBlock_For::Start(VariableArray const& CurrentVars) { // TODO search currentvars for (Marray::iterator MH = Vars_.begin(); MH != Vars_.end(); ++MH) - (*MH)->BeginFor(); + { + if ((*MH)->BeginFor(CurrentVars)) return 1; + } + return 0; } /** For each mask check if done, then update CurrentVars, then increment. */ diff --git a/src/ControlBlock_For.h b/src/ControlBlock_For.h index a32edd60ec..339866031f 100644 --- a/src/ControlBlock_For.h +++ b/src/ControlBlock_For.h @@ -15,7 +15,7 @@ class ControlBlock_For : public ControlBlock { void AddCommand(ArgList const& c) { commands_.push_back(c); } const_iterator begin() const { return commands_.begin(); } const_iterator end() const { return commands_.end(); } - void Start(); + int Start(VariableArray const&); DoneType CheckDone(VariableArray&); private: typedef std::vector Marray; diff --git a/src/ForLoop.h b/src/ForLoop.h index 7b8d7c5e99..56cbddc253 100644 --- a/src/ForLoop.h +++ b/src/ForLoop.h @@ -13,7 +13,7 @@ class ForLoop { /// Set up the loop, ensure syntax is correct virtual int SetupFor(CpptrajState&, std::string const&, ArgList&) = 0; /// Start the loop - virtual int BeginFor() = 0; + virtual int BeginFor(VariableArray const&) = 0; /// \return True if loop is done, otherwise increment the loop virtual bool EndFor(VariableArray&) = 0; diff --git a/src/ForLoop_integer.cpp b/src/ForLoop_integer.cpp index 972f01ce4f..e012ca1117 100644 --- a/src/ForLoop_integer.cpp +++ b/src/ForLoop_integer.cpp @@ -36,10 +36,10 @@ int ForLoop_integer::SetupFor(CpptrajState& State, std::string const& expr, ArgL } SetVarName( startArg[0] ); mprintf("DEBUG: Start argument: '%s' = '%s'\n", VarName().c_str(), startArg[1].c_str()); - //if ( startArg[1][0] == '$' ) { - // // Variable name - //} else - if (!validInteger(startArg[1])) { + if ( startArg[1][0] == '$' ) { + // Variable name + startVarName_ = startArg[1]; + } else if (!validInteger(startArg[1])) { // Not Integer or variable mprinterr("Error: Start argument must be an integer or variable name.\n"); return 1; @@ -108,11 +108,15 @@ int ForLoop_integer::SetupFor(CpptrajState& State, std::string const& expr, ArgL } } // Description - std::string sval = integerToString(start_); + std::string sval; + if (startVarName_.empty()) + sval = integerToString(start_); + else + sval = startVarName_; std::string description("(" + VarName() + "=" + sval + "; "); std::string eval; - if (iargIdx == 2) { - // End argument present + if (startVarName_.empty() && iargIdx == 2) { + // Start value specified and End argument present eval = integerToString(end_); description.append(VarName() + std::string(OpStr_[endOp_]) + eval + "; "); // Check end > start for increment, start > end for decrement @@ -151,8 +155,21 @@ int ForLoop_integer::SetupFor(CpptrajState& State, std::string const& expr, ArgL return 0; } -int ForLoop_integer::BeginFor() { - currentVal_ = start_; +int ForLoop_integer::BeginFor(VariableArray const& CurrentVars) { + if (!startVarName_.empty()) { + std::string sval = CurrentVars.GetVariable( startVarName_ ); + if (sval.empty()) { + mprinterr("Error: Start variable '%s' does not exist.\n", startVarName_.c_str()); + return 1; + } + if (!validInteger(sval)) { + mprinterr("Error: Variable '%s' does not contain a valid integer (%s)\n", + startVarName_.c_str(), sval.c_str()); + return 1; + } + currentVal_ = convertToInteger(sval); + } else + currentVal_ = start_; return 0; } diff --git a/src/ForLoop_integer.h b/src/ForLoop_integer.h index 9f8c32db5c..1d88ba7d4b 100644 --- a/src/ForLoop_integer.h +++ b/src/ForLoop_integer.h @@ -7,13 +7,14 @@ class ForLoop_integer : public ForLoop { ForLoop_integer(); int SetupFor(CpptrajState&, std::string const&, ArgList&); - int BeginFor(); + int BeginFor(VariableArray const&); bool EndFor(VariableArray&); enum OpType { INCREMENT=0, DECREMENT, LESS_THAN, GREATER_THAN, NO_OP }; private: static const char* OpStr_[NO_OP]; + std::string startVarName_; ///< Variable containing initial value OpType endOp_; ///< (INTEGER only) end operator OpType incOp_; ///< (INTEGER only) increment operator int start_; ///< (INTEGER only) initial value diff --git a/src/ForLoop_list.cpp b/src/ForLoop_list.cpp index 58457617c7..589230e9d2 100644 --- a/src/ForLoop_list.cpp +++ b/src/ForLoop_list.cpp @@ -39,7 +39,7 @@ int ForLoop_list::SetupFor(CpptrajState& State, std::string const& expr, ArgList return 0; } -int ForLoop_list::BeginFor() { +int ForLoop_list::BeginFor(VariableArray const& CurrentVars) { sdx_ = List_.begin(); return 0; } diff --git a/src/ForLoop_list.h b/src/ForLoop_list.h index 4f9ab53309..112b29f64e 100644 --- a/src/ForLoop_list.h +++ b/src/ForLoop_list.h @@ -8,7 +8,7 @@ class ForLoop_list : public ForLoop { ForLoop_list() {} int SetupFor(CpptrajState&, std::string const&, ArgList&); - int BeginFor(); + int BeginFor(VariableArray const&); bool EndFor(VariableArray&); private: typedef std::vector Sarray; diff --git a/src/ForLoop_mask.cpp b/src/ForLoop_mask.cpp index 5c0e4c612b..4b3bfd0bba 100644 --- a/src/ForLoop_mask.cpp +++ b/src/ForLoop_mask.cpp @@ -81,7 +81,7 @@ int ForLoop_mask::SetupFor(CpptrajState& State, std::string const& expr, ArgList return 0; } -int ForLoop_mask::BeginFor() { +int ForLoop_mask::BeginFor(VariableArray const& CurrentVars) { idx_ = Idxs_.begin(); return 0; } diff --git a/src/ForLoop_mask.h b/src/ForLoop_mask.h index 8b1ca9ece7..7dc8ef1eb6 100644 --- a/src/ForLoop_mask.h +++ b/src/ForLoop_mask.h @@ -9,7 +9,7 @@ class ForLoop_mask : public ForLoop { ForLoop_mask() : mtype_(NTYPES) {} int SetupFor(CpptrajState&, std::string const&, ArgList&); - int BeginFor(); + int BeginFor(VariableArray const&); bool EndFor(VariableArray&); private: typedef std::vector Iarray; From 739666a84b2c47e8adf6720e62ae2936af3c5548 Mon Sep 17 00:00:00 2001 From: "Daniel R. Roe" Date: Thu, 19 Dec 2019 07:58:40 -0500 Subject: [PATCH 016/162] DRR - Have BeginFor return the number of iterations. --- src/ForLoop.h | 8 ++--- src/ForLoop_integer.cpp | 67 ++++++++++++++++++++++++----------------- src/ForLoop_integer.h | 2 ++ 3 files changed, 45 insertions(+), 32 deletions(-) diff --git a/src/ForLoop.h b/src/ForLoop.h index 56cbddc253..b53e334850 100644 --- a/src/ForLoop.h +++ b/src/ForLoop.h @@ -8,21 +8,22 @@ class VariableArray; class ForLoop { public: //ForLoop() : varType_(UNKNOWN), Niterations_(-1) {} - ForLoop() : Niterations_(-1) {} + ForLoop() {} virtual ~ForLoop() {} /// Set up the loop, ensure syntax is correct virtual int SetupFor(CpptrajState&, std::string const&, ArgList&) = 0; /// Start the loop + /** \return Number of iterations in loop, or NITERATIONS_UNKNOWN. */ virtual int BeginFor(VariableArray const&) = 0; /// \return True if loop is done, otherwise increment the loop virtual bool EndFor(VariableArray&) = 0; - int Niterations() const { return Niterations_; } + static const int NITERATIONS_UNKNOWN = -1; + std::string const& Description() const { return description_; } protected: void SetDescription(std::string const& descIn) { description_ = descIn; } //void SetType(ForType f) { varType_ = f; } - void SetNiterations(int n) { Niterations_ = n; } void SetVarName(std::string const& v) { if (!v.empty()) varname_ = "$" + v; @@ -34,6 +35,5 @@ class ForLoop { std::string description_; ///< For loop long description std::string varname_; ///< Variable over which for loop is iterating //ForType varType_; ///< For loop type - int Niterations_; ///< # of iterations the loops will execute if known. }; #endif diff --git a/src/ForLoop_integer.cpp b/src/ForLoop_integer.cpp index e012ca1117..3ada113326 100644 --- a/src/ForLoop_integer.cpp +++ b/src/ForLoop_integer.cpp @@ -15,8 +15,8 @@ ForLoop_integer::ForLoop_integer() : currentVal_(0) {} +/** Setup integer for loop. */ int ForLoop_integer::SetupFor(CpptrajState& State, std::string const& expr, ArgList& argIn) { - int Niterations = -1; // [=;[;][]] //SetType( INTEGER ); ArgList varArg( expr, ";" ); @@ -119,31 +119,11 @@ int ForLoop_integer::SetupFor(CpptrajState& State, std::string const& expr, ArgL // Start value specified and End argument present eval = integerToString(end_); description.append(VarName() + std::string(OpStr_[endOp_]) + eval + "; "); - // Check end > start for increment, start > end for decrement - int maxval, minval; - if (incOp_ == INCREMENT) { - if (start_ >= end_) { - mprinterr("Error: start must be less than end for increment.\n"); - return 1; - } - minval = start_; - maxval = end_; - } else { - if (end_ >= start_) { - mprinterr("Error: end must be less than start for decrement.\n"); - return 1; - } - minval = end_; - maxval = start_; - } - // Figure out number of iterations - Niterations = (maxval - minval) / inc_; - if (((maxval-minval) % inc_) > 0) Niterations++; + } description.append( VarName() + std::string(OpStr_[incOp_]) + integerToString(inc_) + ")" ); SetDescription( description ); - SetNiterations( Niterations ); // If decrementing just negate value if (incOp_ == DECREMENT) inc_ = -inc_; @@ -155,24 +135,55 @@ int ForLoop_integer::SetupFor(CpptrajState& State, std::string const& expr, ArgL return 0; } +/** Calculate the number of times the loop will execute. Also check + * that start and end values are sane. + */ +int ForLoop_integer::calcNumIterations() const { + // Check end > start for increment, start > end for decrement + int maxval, minval; + if (incOp_ == INCREMENT) { + if (start_ >= end_) { + mprinterr("Error: start must be less than end for increment.\n"); + return NITERATIONS_UNKNOWN; + } + minval = start_; + maxval = end_; + } else { + if (end_ >= start_) { + mprinterr("Error: end must be less than start for decrement.\n"); + return NITERATIONS_UNKNOWN; + } + minval = end_; + maxval = start_; + } + // Figure out number of iterations + int Niterations = (maxval - minval) / inc_; + // Sanity check + if (Niterations < 0) return NITERATIONS_UNKNOWN; + if (((maxval-minval) % inc_) > 0) Niterations++; + return Niterations; +} + +/** Set start value and determine number of iterations. */ int ForLoop_integer::BeginFor(VariableArray const& CurrentVars) { if (!startVarName_.empty()) { std::string sval = CurrentVars.GetVariable( startVarName_ ); if (sval.empty()) { mprinterr("Error: Start variable '%s' does not exist.\n", startVarName_.c_str()); - return 1; + return NITERATIONS_UNKNOWN; } if (!validInteger(sval)) { mprinterr("Error: Variable '%s' does not contain a valid integer (%s)\n", startVarName_.c_str(), sval.c_str()); - return 1; + return NITERATIONS_UNKNOWN; } - currentVal_ = convertToInteger(sval); - } else - currentVal_ = start_; - return 0; + start_ = convertToInteger(sval); + } + currentVal_ = start_; + return calcNumIterations(); } +/** Check if integer for loop is done, increment if not. */ bool ForLoop_integer::EndFor(VariableArray& CurrentVars) { if (endOp_ == LESS_THAN) { if (currentVal_ >= end_) return true; diff --git a/src/ForLoop_integer.h b/src/ForLoop_integer.h index 1d88ba7d4b..ba3deda101 100644 --- a/src/ForLoop_integer.h +++ b/src/ForLoop_integer.h @@ -14,6 +14,8 @@ class ForLoop_integer : public ForLoop { private: static const char* OpStr_[NO_OP]; + int calcNumIterations() const; + std::string startVarName_; ///< Variable containing initial value OpType endOp_; ///< (INTEGER only) end operator OpType incOp_; ///< (INTEGER only) increment operator From 6dfb78b4fa5b08d7d5966a3f4988a1029551573e Mon Sep 17 00:00:00 2001 From: "Daniel R. Roe" Date: Thu, 19 Dec 2019 08:16:07 -0500 Subject: [PATCH 017/162] DRR - Number of iterations is now determined when loop starts. --- src/Command.cpp | 2 +- src/ControlBlock_For.cpp | 44 ++++++++++++++++++++++++---------------- src/ForLoop.h | 4 +++- src/ForLoop_integer.cpp | 23 ++++++++++++--------- src/ForLoop_integer.h | 1 + src/ForLoop_list.cpp | 5 +---- src/ForLoop_mask.cpp | 5 +---- 7 files changed, 46 insertions(+), 38 deletions(-) diff --git a/src/Command.cpp b/src/Command.cpp index 20b038850c..1bb7d955e4 100644 --- a/src/Command.cpp +++ b/src/Command.cpp @@ -583,7 +583,7 @@ int Command::ExecuteControlBlock(int block, CpptrajState& State) { if (control_[block]->Start(CurrentVars_)) return 1; ControlBlock::DoneType ret = control_[block]->CheckDone(CurrentVars_); - if (State.Debug() > 0) { + if (State.Debug() >= 0) { mprintf("DEBUG: Start: CurrentVars:"); CurrentVars_.PrintVariables(); } diff --git a/src/ControlBlock_For.cpp b/src/ControlBlock_For.cpp index fcd6008f9d..cc8b4c701b 100644 --- a/src/ControlBlock_For.cpp +++ b/src/ControlBlock_For.cpp @@ -47,7 +47,6 @@ int ControlBlock_For::SetupBlock(CpptrajState& State, ArgList& argIn) { mprintf(" Setting up 'for' loop.\n"); Vars_.clear(); description_.assign("for ("); - int MaxIterations = -1; int iarg = 0; while (iarg < argIn.Nargs()) { @@ -78,24 +77,11 @@ int ControlBlock_For::SetupBlock(CpptrajState& State, ArgList& argIn) { mprinterr("Error: For loop setup failed.\n"); return 1; } - // Check number of values - int Niterations = forloop.Niterations(); - if (MaxIterations == -1) - MaxIterations = Niterations; - else if (Niterations != -1 && Niterations != MaxIterations) { - mprintf("Warning: # iterations %i != previous # iterations %i\n", - Niterations, MaxIterations); - MaxIterations = std::min(Niterations, MaxIterations); - } + // Append description description_.append( forloop.Description() ); // TODO check variable name } - mprintf("\tLoop will execute for %i iterations.\n", MaxIterations); - if (MaxIterations < 1) { - mprinterr("Error: Loop has less than 1 iteration.\n"); - return 1; - } description_.append(") do"); return 0; @@ -106,13 +92,35 @@ bool ControlBlock_For::EndBlock(ArgList const& a) const { return (a.CommandIs("done")); } -/** For each mask initialize iterator. For each integer set to start value. */ +/** Set all loops to their initial values and determine # iterations + * \return 0 if all loops were set up, 1 if an error occurred. + */ int ControlBlock_For::Start(VariableArray const& CurrentVars) { - // TODO search currentvars + int MaxIterations = -1; for (Marray::iterator MH = Vars_.begin(); MH != Vars_.end(); ++MH) { - if ((*MH)->BeginFor(CurrentVars)) return 1; + int Niterations = ((*MH)->BeginFor(CurrentVars)); + if (Niterations == ForLoop::LOOP_ERROR) return 1; + // Check number of values + if (Niterations != ForLoop::NITERATIONS_UNKNOWN) + { + if (MaxIterations == -1) + MaxIterations = Niterations; + else { + if (Niterations != MaxIterations) + mprintf("Warning: # iterations %i != previous # iterations %i\n", + Niterations, MaxIterations); + MaxIterations = std::min(Niterations, MaxIterations); + } + } else + mprintf("Warning: Loop '%s' has unknown # iterations.\n", (*MH)->Description().c_str()); + } + mprintf("\tLoop will execute for %i iterations.\n", MaxIterations); + if (MaxIterations < 1) { + mprinterr("Error: Loop has less than 1 iteration.\n"); + return 1; } + return 0; } diff --git a/src/ForLoop.h b/src/ForLoop.h index b53e334850..faed9b21c4 100644 --- a/src/ForLoop.h +++ b/src/ForLoop.h @@ -17,8 +17,10 @@ class ForLoop { virtual int BeginFor(VariableArray const&) = 0; /// \return True if loop is done, otherwise increment the loop virtual bool EndFor(VariableArray&) = 0; - + /// Return value when number of iterations is not known static const int NITERATIONS_UNKNOWN = -1; + /// Return value when an error has occurred + static const int LOOP_ERROR = -2; std::string const& Description() const { return description_; } protected: diff --git a/src/ForLoop_integer.cpp b/src/ForLoop_integer.cpp index 3ada113326..39dbfbd8b1 100644 --- a/src/ForLoop_integer.cpp +++ b/src/ForLoop_integer.cpp @@ -12,7 +12,8 @@ ForLoop_integer::ForLoop_integer() : start_(0), end_(0), inc_(0), - currentVal_(0) + currentVal_(0), + endArgPresent_(false) {} /** Setup integer for loop. */ @@ -115,12 +116,13 @@ int ForLoop_integer::SetupFor(CpptrajState& State, std::string const& expr, ArgL sval = startVarName_; std::string description("(" + VarName() + "=" + sval + "; "); std::string eval; - if (startVarName_.empty() && iargIdx == 2) { - // Start value specified and End argument present + if (iargIdx == 2) { + // End argument present + endArgPresent_ = true; eval = integerToString(end_); description.append(VarName() + std::string(OpStr_[endOp_]) + eval + "; "); - - } + } else + endArgPresent_ = false; description.append( VarName() + std::string(OpStr_[incOp_]) + integerToString(inc_) + ")" ); SetDescription( description ); @@ -139,19 +141,20 @@ int ForLoop_integer::SetupFor(CpptrajState& State, std::string const& expr, ArgL * that start and end values are sane. */ int ForLoop_integer::calcNumIterations() const { + if (!endArgPresent_) return NITERATIONS_UNKNOWN; // Check end > start for increment, start > end for decrement int maxval, minval; if (incOp_ == INCREMENT) { if (start_ >= end_) { mprinterr("Error: start must be less than end for increment.\n"); - return NITERATIONS_UNKNOWN; + return LOOP_ERROR; } minval = start_; maxval = end_; } else { if (end_ >= start_) { mprinterr("Error: end must be less than start for decrement.\n"); - return NITERATIONS_UNKNOWN; + return LOOP_ERROR; } minval = end_; maxval = start_; @@ -159,7 +162,7 @@ int ForLoop_integer::calcNumIterations() const { // Figure out number of iterations int Niterations = (maxval - minval) / inc_; // Sanity check - if (Niterations < 0) return NITERATIONS_UNKNOWN; + if (Niterations < 0) return LOOP_ERROR; if (((maxval-minval) % inc_) > 0) Niterations++; return Niterations; } @@ -170,12 +173,12 @@ int ForLoop_integer::BeginFor(VariableArray const& CurrentVars) { std::string sval = CurrentVars.GetVariable( startVarName_ ); if (sval.empty()) { mprinterr("Error: Start variable '%s' does not exist.\n", startVarName_.c_str()); - return NITERATIONS_UNKNOWN; + return LOOP_ERROR; } if (!validInteger(sval)) { mprinterr("Error: Variable '%s' does not contain a valid integer (%s)\n", startVarName_.c_str(), sval.c_str()); - return NITERATIONS_UNKNOWN; + return LOOP_ERROR; } start_ = convertToInteger(sval); } diff --git a/src/ForLoop_integer.h b/src/ForLoop_integer.h index ba3deda101..39435a5120 100644 --- a/src/ForLoop_integer.h +++ b/src/ForLoop_integer.h @@ -23,5 +23,6 @@ class ForLoop_integer : public ForLoop { int end_; ///< (INTEGER only) end value int inc_; ///< (INTEGER only) increment value int currentVal_; ///< (INTEGER only) current value + bool endArgPresent_; ///< True if an end argument was specified }; #endif diff --git a/src/ForLoop_list.cpp b/src/ForLoop_list.cpp index 589230e9d2..82e955586b 100644 --- a/src/ForLoop_list.cpp +++ b/src/ForLoop_list.cpp @@ -5,7 +5,6 @@ #include "VariableArray.h" int ForLoop_list::SetupFor(CpptrajState& State, std::string const& expr, ArgList& argIn) { - int Niterations = -1; // in [,...] //MH.varType_ = ftype; argIn.PrintDebug(); @@ -31,17 +30,15 @@ int ForLoop_list::SetupFor(CpptrajState& State, std::string const& expr, ArgList } else List_.push_back( list[il] ); } - Niterations = (int)List_.size(); // Description std::string description( VarName() + " in " + listArg ); SetDescription( description ); - SetNiterations( Niterations ); return 0; } int ForLoop_list::BeginFor(VariableArray const& CurrentVars) { sdx_ = List_.begin(); - return 0; + return (int)List_.size(); } bool ForLoop_list::EndFor(VariableArray& CurrentVars) { diff --git a/src/ForLoop_mask.cpp b/src/ForLoop_mask.cpp index 4b3bfd0bba..5235a4f09d 100644 --- a/src/ForLoop_mask.cpp +++ b/src/ForLoop_mask.cpp @@ -6,7 +6,6 @@ #include "VariableArray.h" int ForLoop_mask::SetupFor(CpptrajState& State, std::string const& expr, ArgList& argIn) { - int Niterations = -1; static const char* TypeStr[NTYPES] = { "ATOMS ", "RESIDUES ", "MOLECULES ", "MOL_FIRST_RES ", "MOL_LAST_RES " }; // {atoms|residues|molecules} inmask [TOP KEYWORDS] @@ -73,17 +72,15 @@ int ForLoop_mask::SetupFor(CpptrajState& State, std::string const& expr, ArgList } } } - Niterations = (int)Idxs_.size(); std::string description(std::string(TypeStr[mtype_]) + VarName() + " inmask " + currentMask.MaskExpression()); SetDescription( description ); - SetNiterations( Niterations ); return 0; } int ForLoop_mask::BeginFor(VariableArray const& CurrentVars) { idx_ = Idxs_.begin(); - return 0; + return (int)Idxs_.size(); } bool ForLoop_mask::EndFor(VariableArray& CurrentVars) { From 04d0ebc87b1a79708aed73a5d999a879d6940b62 Mon Sep 17 00:00:00 2001 From: "Daniel R. Roe" Date: Thu, 19 Dec 2019 08:34:30 -0500 Subject: [PATCH 018/162] DRR - Allow end argument to be a variable. More informative messages on how many iterations loop will execute. --- src/ControlBlock_For.cpp | 7 +++++-- src/ForLoop.h | 2 +- src/ForLoop_integer.cpp | 28 ++++++++++++++++++++++++---- src/ForLoop_integer.h | 1 + 4 files changed, 31 insertions(+), 7 deletions(-) diff --git a/src/ControlBlock_For.cpp b/src/ControlBlock_For.cpp index cc8b4c701b..06d57bdef1 100644 --- a/src/ControlBlock_For.cpp +++ b/src/ControlBlock_For.cpp @@ -112,10 +112,13 @@ int ControlBlock_For::Start(VariableArray const& CurrentVars) { Niterations, MaxIterations); MaxIterations = std::min(Niterations, MaxIterations); } + mprintf("\tLoop over '%s' will execute for %i iterations.\n", + (*MH)->VarName().c_str(), Niterations); } else - mprintf("Warning: Loop '%s' has unknown # iterations.\n", (*MH)->Description().c_str()); + mprintf("Warning: Loop over '%s' has unknown # iterations.\n", (*MH)->VarName().c_str()); } - mprintf("\tLoop will execute for %i iterations.\n", MaxIterations); + if (Vars_.size() > 1) + mprintf("\tLoop will execute for %i iterations.\n", MaxIterations); if (MaxIterations < 1) { mprinterr("Error: Loop has less than 1 iteration.\n"); return 1; diff --git a/src/ForLoop.h b/src/ForLoop.h index faed9b21c4..847d7783bc 100644 --- a/src/ForLoop.h +++ b/src/ForLoop.h @@ -23,6 +23,7 @@ class ForLoop { static const int LOOP_ERROR = -2; std::string const& Description() const { return description_; } + std::string const& VarName() const { return varname_; } protected: void SetDescription(std::string const& descIn) { description_ = descIn; } //void SetType(ForType f) { varType_ = f; } @@ -31,7 +32,6 @@ class ForLoop { varname_ = "$" + v; } - std::string const& VarName() const { return varname_; } //ForType VarType() const { return varType_; } private: std::string description_; ///< For loop long description diff --git a/src/ForLoop_integer.cpp b/src/ForLoop_integer.cpp index 39dbfbd8b1..0e3508f2a6 100644 --- a/src/ForLoop_integer.cpp +++ b/src/ForLoop_integer.cpp @@ -63,9 +63,12 @@ int ForLoop_integer::SetupFor(CpptrajState& State, std::string const& expr, ArgL return 1; } std::string endStr = varArg[1].substr(pos1); - if (!validInteger(endStr)) { - // TODO allow variables - mprinterr("Error: End argument must be an integer.\n"); + if ( endStr[0] == '$' ) { + // Variable name + endVarName_ = endStr; + } else if (!validInteger(endStr)) { + // Not Integer of variable + mprinterr("Error: End argument must be an integer or variable name.\n"); return 1; } else end_ = convertToInteger(endStr); @@ -119,7 +122,10 @@ int ForLoop_integer::SetupFor(CpptrajState& State, std::string const& expr, ArgL if (iargIdx == 2) { // End argument present endArgPresent_ = true; - eval = integerToString(end_); + if (endVarName_.empty()) + eval = integerToString(end_); + else + eval = endVarName_; description.append(VarName() + std::string(OpStr_[endOp_]) + eval + "; "); } else endArgPresent_ = false; @@ -183,6 +189,20 @@ int ForLoop_integer::BeginFor(VariableArray const& CurrentVars) { start_ = convertToInteger(sval); } currentVal_ = start_; + // Determine end arg if necessary + if (endArgPresent_ && !endVarName_.empty()) { + std::string eval = CurrentVars.GetVariable( endVarName_ ); + if (eval.empty()) { + mprinterr("Error: End variable '%s' does not exist.\n", endVarName_.c_str()); + return LOOP_ERROR; + } + if (!validInteger(eval)) { + mprinterr("Error: Variable '%s' does not contain a valid integer (%s)\n", + endVarName_.c_str(), eval.c_str()); + return LOOP_ERROR; + } + end_ = convertToInteger(eval); + } return calcNumIterations(); } diff --git a/src/ForLoop_integer.h b/src/ForLoop_integer.h index 39435a5120..6b0a41ae11 100644 --- a/src/ForLoop_integer.h +++ b/src/ForLoop_integer.h @@ -17,6 +17,7 @@ class ForLoop_integer : public ForLoop { int calcNumIterations() const; std::string startVarName_; ///< Variable containing initial value + std::string endVarName_; ///< Variable containing the end value OpType endOp_; ///< (INTEGER only) end operator OpType incOp_; ///< (INTEGER only) increment operator int start_; ///< (INTEGER only) initial value From 8ed39f03f7268fbdf3000dba92bc4809fa29fda4 Mon Sep 17 00:00:00 2001 From: "Daniel R. Roe" Date: Thu, 19 Dec 2019 08:37:02 -0500 Subject: [PATCH 019/162] DRR - Hide debug and change warning to info --- src/Command.cpp | 2 +- src/ControlBlock_For.cpp | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/src/Command.cpp b/src/Command.cpp index 1bb7d955e4..20b038850c 100644 --- a/src/Command.cpp +++ b/src/Command.cpp @@ -583,7 +583,7 @@ int Command::ExecuteControlBlock(int block, CpptrajState& State) { if (control_[block]->Start(CurrentVars_)) return 1; ControlBlock::DoneType ret = control_[block]->CheckDone(CurrentVars_); - if (State.Debug() >= 0) { + if (State.Debug() > 0) { mprintf("DEBUG: Start: CurrentVars:"); CurrentVars_.PrintVariables(); } diff --git a/src/ControlBlock_For.cpp b/src/ControlBlock_For.cpp index 06d57bdef1..dcbc9ce3ab 100644 --- a/src/ControlBlock_For.cpp +++ b/src/ControlBlock_For.cpp @@ -115,7 +115,7 @@ int ControlBlock_For::Start(VariableArray const& CurrentVars) { mprintf("\tLoop over '%s' will execute for %i iterations.\n", (*MH)->VarName().c_str(), Niterations); } else - mprintf("Warning: Loop over '%s' has unknown # iterations.\n", (*MH)->VarName().c_str()); + mprintf("\tLoop over '%s' has unknown # iterations.\n", (*MH)->VarName().c_str()); } if (Vars_.size() > 1) mprintf("\tLoop will execute for %i iterations.\n", MaxIterations); From 6e89acfc579ad5eeb89b83a78e9d2f3a2950d37c Mon Sep 17 00:00:00 2001 From: "Daniel R. Roe" Date: Thu, 19 Dec 2019 08:39:09 -0500 Subject: [PATCH 020/162] DRR - Hide some debug info --- src/ForLoop_integer.cpp | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/ForLoop_integer.cpp b/src/ForLoop_integer.cpp index 0e3508f2a6..4ace5c3509 100644 --- a/src/ForLoop_integer.cpp +++ b/src/ForLoop_integer.cpp @@ -21,7 +21,7 @@ int ForLoop_integer::SetupFor(CpptrajState& State, std::string const& expr, ArgL // [=;[;][]] //SetType( INTEGER ); ArgList varArg( expr, ";" ); - varArg.PrintDebug(); // DEBUG + //varArg.PrintDebug(); // DEBUG if (varArg.Nargs() < 2 || varArg.Nargs() > 3) { mprinterr("Error: Malformed 'for' loop variable.\n" "Error: Expected '[=;[;][]]'\n" @@ -36,7 +36,7 @@ int ForLoop_integer::SetupFor(CpptrajState& State, std::string const& expr, ArgL return 1; } SetVarName( startArg[0] ); - mprintf("DEBUG: Start argument: '%s' = '%s'\n", VarName().c_str(), startArg[1].c_str()); + //mprintf("DEBUG: Start argument: '%s' = '%s'\n", VarName().c_str(), startArg[1].c_str()); if ( startArg[1][0] == '$' ) { // Variable name startVarName_ = startArg[1]; From ffa34688475b49384f8897fab3d8b24ab36772d6 Mon Sep 17 00:00:00 2001 From: "Daniel R. Roe" Date: Thu, 19 Dec 2019 11:59:40 -0500 Subject: [PATCH 021/162] DRR - Add MemUsageInBytes to template --- devtools/Template.sh | 1 + 1 file changed, 1 insertion(+) diff --git a/devtools/Template.sh b/devtools/Template.sh index bbf82916b7..901d6bd76b 100755 --- a/devtools/Template.sh +++ b/devtools/Template.sh @@ -419,6 +419,7 @@ elif [ "$TYPE" = 'DataSet' ] ; then void Add(size_t, const void*) { return; } void WriteBuffer(CpptrajFile&, SizeArray const&) const { return; } int Append(DataSet*) { return 1; } + size_t MemUsageInBytes() const { return 0; } # ifdef MPI int Sync(size_t, std::vector const&, Parallel::Comm const&) { return 1; } # endif From 748e9bb3d98728ee5ada45213f7d3832eba6cfec Mon Sep 17 00:00:00 2001 From: "Daniel R. Roe" Date: Thu, 19 Dec 2019 12:01:22 -0500 Subject: [PATCH 022/162] DRR - Add StringVar data set --- src/DataSet_StringVar.cpp | 11 +++++++++++ src/DataSet_StringVar.h | 25 +++++++++++++++++++++++++ 2 files changed, 36 insertions(+) create mode 100644 src/DataSet_StringVar.cpp create mode 100644 src/DataSet_StringVar.h diff --git a/src/DataSet_StringVar.cpp b/src/DataSet_StringVar.cpp new file mode 100644 index 0000000000..1ea27079cf --- /dev/null +++ b/src/DataSet_StringVar.cpp @@ -0,0 +1,11 @@ +#include "DataSet_StringVar.h" +#include "CpptrajStdio.h" + +/// CONSTRUCTOR +DataSet_StringVar::DataSet_StringVar() : + DataSet(STRINGVAR, GENERIC, TextFormat(), 0) +{ } + +size_t DataSet_StringVar::MemUsageInBytes() const { + return sizeof(std::string) + (var_.size() * sizeof(char)); +} diff --git a/src/DataSet_StringVar.h b/src/DataSet_StringVar.h new file mode 100644 index 0000000000..663589f15f --- /dev/null +++ b/src/DataSet_StringVar.h @@ -0,0 +1,25 @@ +#ifndef INC_DATASET_STRINGVAR_H +#define INC_DATASET_STRINGVAR_H +#include "DataSet.h" +#include +/// Hold a single string variable +class DataSet_StringVar : public DataSet { + public: + DataSet_StringVar(); + static DataSet* Alloc() { return (DataSet*)new DataSet_StringVar(); } + // ----- DataSet functions ------------------- + size_t Size() const { return 1; } + void Info() const { return; } + int Allocate(SizeArray const&) { return 0; } + void Add(size_t, const void*) { return; } + void WriteBuffer(CpptrajFile&, SizeArray const&) const { return; } + int Append(DataSet*) { return 1; } + size_t MemUsageInBytes() const; +# ifdef MPI + int Sync(size_t, std::vector const&, Parallel::Comm const&) { return 1; } +# endif + // ------------------------------------------- + private: + std::string var_; ///< String variable +}; +#endif From 80be7af8317c00f6dbd9f2018e1b44269d2d242b Mon Sep 17 00:00:00 2001 From: "Daniel R. Roe" Date: Thu, 19 Dec 2019 13:33:30 -0500 Subject: [PATCH 023/162] DRR - Add STRINGVAR to DataSet --- src/DataSet.cpp | 3 ++- src/DataSet.h | 2 +- 2 files changed, 3 insertions(+), 2 deletions(-) diff --git a/src/DataSet.cpp b/src/DataSet.cpp index 22cc7a4c1f..c462a52007 100644 --- a/src/DataSet.cpp +++ b/src/DataSet.cpp @@ -29,7 +29,8 @@ const char* DataSet::Descriptions_[] = { "pH REMD (explicit)", // PH_EXPL "pH REMD (implicit)", // PH_IMPL "parameters", // PARAMETERS - "tensor" // TENSOR + "tensor", // TENSOR + "string variable" // STRINGVAR }; // CONSTRUCTOR diff --git a/src/DataSet.h b/src/DataSet.h index f4c3714792..198ce737f4 100644 --- a/src/DataSet.h +++ b/src/DataSet.h @@ -28,7 +28,7 @@ class DataSet { UNKNOWN_DATA=0, DOUBLE, FLOAT, INTEGER, STRING, MATRIX_DBL, MATRIX_FLT, COORDS, VECTOR, MODES, GRID_FLT, GRID_DBL, REMLOG, XYMESH, TRAJ, REF_FRAME, MAT3X3, TOPOLOGY, CMATRIX, CMATRIX_NOMEM, CMATRIX_DISK, PH, PH_EXPL, PH_IMPL, - PARAMETERS, TENSOR + PARAMETERS, TENSOR, STRINGVAR }; /// Group DataSet belongs to. enum DataGroup { From 11918bf32e064d05accc20f53bd6fcf9bf3b40d1 Mon Sep 17 00:00:00 2001 From: "Daniel R. Roe" Date: Thu, 19 Dec 2019 13:48:30 -0500 Subject: [PATCH 024/162] DRR - Add Add and append functions --- src/DataSet_StringVar.cpp | 5 +++++ src/DataSet_StringVar.h | 4 +++- 2 files changed, 8 insertions(+), 1 deletion(-) diff --git a/src/DataSet_StringVar.cpp b/src/DataSet_StringVar.cpp index 1ea27079cf..5e1ffcebc3 100644 --- a/src/DataSet_StringVar.cpp +++ b/src/DataSet_StringVar.cpp @@ -9,3 +9,8 @@ DataSet_StringVar::DataSet_StringVar() : size_t DataSet_StringVar::MemUsageInBytes() const { return sizeof(std::string) + (var_.size() * sizeof(char)); } + +void DataSet_StringVar::Add(size_t n, const void* ptr) { + const char* cptr = (const char*)ptr; + var_ = std::string(cptr); +} diff --git a/src/DataSet_StringVar.h b/src/DataSet_StringVar.h index 663589f15f..bac71520ce 100644 --- a/src/DataSet_StringVar.h +++ b/src/DataSet_StringVar.h @@ -11,7 +11,7 @@ class DataSet_StringVar : public DataSet { size_t Size() const { return 1; } void Info() const { return; } int Allocate(SizeArray const&) { return 0; } - void Add(size_t, const void*) { return; } + void Add(size_t, const void*); void WriteBuffer(CpptrajFile&, SizeArray const&) const { return; } int Append(DataSet*) { return 1; } size_t MemUsageInBytes() const; @@ -19,6 +19,8 @@ class DataSet_StringVar : public DataSet { int Sync(size_t, std::vector const&, Parallel::Comm const&) { return 1; } # endif // ------------------------------------------- + + void append(std::string const& s) { var_.append(s); } private: std::string var_; ///< String variable }; From 91746da7dde7b981aee716b93b09454f793f0cff Mon Sep 17 00:00:00 2001 From: "Daniel R. Roe" Date: Thu, 19 Dec 2019 13:55:42 -0500 Subject: [PATCH 025/162] DRR - Add Exec version of the Set command --- src/Exec_Set.cpp | 136 +++++++++++++++++++++++++++++++++++++++++++++++ src/Exec_Set.h | 15 ++++++ 2 files changed, 151 insertions(+) create mode 100644 src/Exec_Set.cpp create mode 100644 src/Exec_Set.h diff --git a/src/Exec_Set.cpp b/src/Exec_Set.cpp new file mode 100644 index 0000000000..bc382ac2fb --- /dev/null +++ b/src/Exec_Set.cpp @@ -0,0 +1,136 @@ +#include "Exec_Set.h" +#include "CpptrajStdio.h" +#include "StringRoutines.h" +#include "DataSet_StringVar.h" + +void Exec_Set::Help() const { + mprintf("\t{ |\n" + "\t {atoms|residues|molecules} inmask \n" + "\t [%s]\n" + "\t trajinframes }\n", + DataSetList::TopIdxArgs); + mprintf(" Set ( = '=') or append ( = '+=') a script variable.\n" + " - Set script variable to value .\n" + " - Set script variable to the number of atoms/residues/molecules in\n" + " the given atom mask.\n" + " - Set script variable to the current number of frames that will\n" + " be read from all previous 'trajin' statements.\n"); +} + +/** Set up variable with value. In this case allow any amount of whitespace, + * so re-tokenize the original argument line (minus the command). + */ +Exec::RetType Exec_Set::Execute(CpptrajState& State, ArgList& argIn) +{ + ArgList remaining = argIn.RemainingArgs(); + size_t pos0 = remaining.ArgLineStr().find_first_of("="); + if (pos0 == std::string::npos) { + mprinterr("Error: Expected =\n"); + return CpptrajState::ERR; + } + size_t pos1 = pos0; + bool append = false; + if (pos0 > 0 && remaining.ArgLineStr()[pos0-1] == '+') { + pos0--; + append = true; + } + std::string variable = NoWhitespace( remaining.ArgLineStr().substr(0, pos0) ); + if (variable.empty()) { + mprinterr("Error: No variable name.\n"); + return CpptrajState::ERR; + } + ArgList equals( NoLeadingWhitespace(remaining.ArgLineStr().substr(pos1+1)) ); + std::string value; + if (equals.Contains("inmask")) { + AtomMask mask( equals.GetStringKey("inmask") ); + Topology* top = State.DSL().GetTopByIndex( equals ); + if (top == 0) return CpptrajState::ERR; + if (top->SetupIntegerMask( mask )) return CpptrajState::ERR; + if (equals.hasKey("atoms")) + value = integerToString( mask.Nselected() ); + else if (equals.hasKey("residues")) { + int curRes = -1; + int nres = 0; + for (AtomMask::const_iterator at = mask.begin(); at != mask.end(); ++at) { + int res = (*top)[*at].ResNum(); + if (res != curRes) { + nres++; + curRes = res; + } + } + value = integerToString( nres ); + } else if (equals.hasKey("molecules")) { + int curMol = -1; + int nmol = 0; + for (AtomMask::const_iterator at = mask.begin(); at != mask.end(); ++at) { + int mol = (*top)[*at].MolNum(); + if (mol != curMol) { + nmol++; + curMol = mol; + } + } + value = integerToString( nmol ); + } else { + mprinterr("Error: Expected 'atoms', 'residues', or 'molecules'.\n"); + return CpptrajState::ERR; + } + } else if (equals.hasKey("trajinframes")) { + value = integerToString(State.InputTrajList().MaxFrames()); + } else + value = equals.ArgLineStr(); + if (append) + AppendVariable( State, variable, value ); + else + UpdateVariable( State, variable, value ); + mprintf("\tVariable '%s' set to '%s'\n", variable.c_str(), value.c_str()); + for (int iarg = 0; iarg < argIn.Nargs(); iarg++) + argIn.MarkArg( iarg ); + return CpptrajState::OK; +} + +/** Create new variable set with given value. */ +int Exec_Set::AddVariable(CpptrajState& State, std::string const& varname, + std::string const& value) +{ + DataSet* ds = State.DSL().AddSet( DataSet::STRINGVAR, MetaData(varname) ); + if (ds == 0) return 1; + return 0; +} + +/** Add variable/value if it doesnt exist, otherwise append value. */ +int Exec_Set::AppendVariable(CpptrajState& State, std::string const& varname, + std::string const& value) +{ + DataSet* ds = State.DSL().GetDataSet( varname ); + if (ds == 0) { + // Create new + return AddVariable(State, varname, value); + } + // Set exists; append + if (ds->Type() != DataSet::STRINGVAR) { + mprinterr("Error: 'set +=' can only be done for string variable sets.\n"); + return 1; + } + DataSet_StringVar& var = static_cast( *ds ); + var.append( value ); + return 0; +} + +/** Add variable/value if it doesnt exist, otherwise set value. */ +int Exec_Set::UpdateVariable(CpptrajState& State, std::string const& varname, + std::string const& value) +{ + DataSet* ds = State.DSL().GetDataSet( varname ); + if (ds == 0) { + // Create new + return AddVariable(State, varname, value); + } + // Set exists; replace current value + if (ds->Type() != DataSet::STRINGVAR) { + mprinterr("Error: 'set +=' can only be done for string variable sets.\n"); + return 1; + } + DataSet_StringVar& var = static_cast( *ds ); + var.assign( value ); + return 0; +} diff --git a/src/Exec_Set.h b/src/Exec_Set.h new file mode 100644 index 0000000000..73c2d3d2f6 --- /dev/null +++ b/src/Exec_Set.h @@ -0,0 +1,15 @@ +#ifndef INC_EXEC_SET_H +#include "Exec.h" +/// Used to set script variables +class Exec_Set : public Exec { + public: + Exec_Set() : Exec(CONTROL) {} + void Help() const; + DispatchObject* Alloc() const { return (DispatchObject*)new Exec_Set(); } + RetType Execute(CpptrajState&, ArgList&); + private: + static int AddVariable(CpptrajState&, std::string const&, std::string const&); + static int AppendVariable(CpptrajState&, std::string const&, std::string const&); + static int UpdateVariable(CpptrajState&, std::string const&, std::string const&); +}; +#endif From 4a6faf17a4c4de7c56a39af20378fc9542bf789d Mon Sep 17 00:00:00 2001 From: "Daniel R. Roe" Date: Thu, 19 Dec 2019 14:03:00 -0500 Subject: [PATCH 026/162] DRR - Exec version of show command --- src/DataSet_StringVar.h | 3 +++ src/Exec_Show.cpp | 14 ++++++++++++++ src/Exec_Show.h | 12 ++++++++++++ 3 files changed, 29 insertions(+) create mode 100644 src/Exec_Show.cpp create mode 100644 src/Exec_Show.h diff --git a/src/DataSet_StringVar.h b/src/DataSet_StringVar.h index bac71520ce..2e8738f65c 100644 --- a/src/DataSet_StringVar.h +++ b/src/DataSet_StringVar.h @@ -21,6 +21,9 @@ class DataSet_StringVar : public DataSet { // ------------------------------------------- void append(std::string const& s) { var_.append(s); } + void assign(std::string const& s) { var_.assign(s); } + + std::string const& Value() const { return var_; } private: std::string var_; ///< String variable }; diff --git a/src/Exec_Show.cpp b/src/Exec_Show.cpp new file mode 100644 index 0000000000..36f6bf04a1 --- /dev/null +++ b/src/Exec_Show.cpp @@ -0,0 +1,14 @@ +#include "Exec_Show.h" +#include "CpptrajStdio.h" +#include "DataSet_StringVar.h" + +Exec::RetType Exec_Show::Execute(CpptrajState& State, ArgList& argIn) +{ + DataSetList vars = State.DSL().GetSetsOfType("*", DataSet::STRINGVAR); + for (DataSetList::const_iterator it = vars.begin(); it != vars.end(); ++it) + { + DataSet_StringVar const& var = static_cast( *(*it) ); + mprintf("\t%s = %s\n", var.legend(), var.Value().c_str()); + } + return CpptrajState::OK; +} diff --git a/src/Exec_Show.h b/src/Exec_Show.h new file mode 100644 index 0000000000..5bb2973d15 --- /dev/null +++ b/src/Exec_Show.h @@ -0,0 +1,12 @@ +#ifndef INC_EXEC_SHOW_H +#define INC_EXEC_SHOW_H +#include "Exec.h" +/// Used to print current script variables to stdout +class Exec_Show : public Exec { + public: + Exec_Show() : Exec(CONTROL) {} + void Help() const; + DispatchObject* Alloc() const { return (DispatchObject*)new Exec_Show(); } + RetType Execute(CpptrajState&, ArgList&); +}; +#endif From 3afcb322dbcce06ad50f27bc5e6f1767c07fbded Mon Sep 17 00:00:00 2001 From: "Daniel R. Roe" Date: Thu, 19 Dec 2019 14:29:03 -0500 Subject: [PATCH 027/162] DRR - Start massive changes to move VariableArray functionality to DataSetList --- src/Command.cpp | 7 +-- src/Command.h | 3 -- src/Control.cpp | 105 ------------------------------------- src/Control.h | 35 ------------- src/VariableArray.cpp | 119 ------------------------------------------ src/VariableArray.h | 33 ------------ src/cpptrajdepend | 20 +++---- src/cpptrajfiles | 4 +- 8 files changed, 16 insertions(+), 310 deletions(-) delete mode 100644 src/Control.cpp delete mode 100644 src/Control.h delete mode 100644 src/VariableArray.cpp delete mode 100644 src/VariableArray.h diff --git a/src/Command.cpp b/src/Command.cpp index 20b038850c..d6c810026c 100644 --- a/src/Command.cpp +++ b/src/Command.cpp @@ -7,7 +7,6 @@ #include "CmdInput.h" // ProcessInput() #include "RPNcalc.h" #include "Deprecated.h" -#include "Control.h" #include "ControlBlock.h" #include "ControlBlock_For.h" #include "Parallel.h" @@ -32,6 +31,8 @@ #include "Exec_SortEnsembleData.h" #include "Exec_SequenceAlign.h" #include "Exec_ViewRst.h" +#include "Exec_Set.h" +#include "Exec_Show.h" // ----- SYSTEM ---------------------------------------------------------------- #include "Exec_System.h" // ----- COORDS ---------------------------------------------------------------- @@ -408,8 +409,8 @@ void Command::Init() { Command::AddCmd( new Analysis_Wavelet(), Cmd::ANA, 1, "wavelet" ); // CONTROL STRUCTURES Command::AddCmd( new ControlBlock_For(), Cmd::BLK, 1, "for" ); - Command::AddCmd( new Control_Set(), Cmd::CTL, 1, "set" ); - Command::AddCmd( new Control_Show(), Cmd::CTL, 1, "show" ); + Command::AddCmd( new Exec_Set(), Cmd::EXE, 1, "set" ); + Command::AddCmd( new Exec_Show(), Cmd::EXE, 1, "show" ); // DEPRECATED COMMANDS Command::AddCmd( new Deprecated_AvgCoord(), Cmd::DEP, 1, "avgcoord" ); Command::AddCmd( new Deprecated_DihScan(), Cmd::DEP, 1, "dihedralscan" ); diff --git a/src/Command.h b/src/Command.h index 008cab372b..037386c4c8 100644 --- a/src/Command.h +++ b/src/Command.h @@ -2,7 +2,6 @@ #define INC_COMMAND_H #include "CmdList.h" #include "CpptrajState.h" -#include "VariableArray.h" class ControlBlock; class Command { public: @@ -45,7 +44,5 @@ class Command { typedef std::vector CtlArray; static CtlArray control_; ///< Array of control blocks static int ctlidx_; ///< Point to current control block - /// Array of script variables and their current values. - static VariableArray CurrentVars_; }; #endif diff --git a/src/Control.cpp b/src/Control.cpp deleted file mode 100644 index 961c97df89..0000000000 --- a/src/Control.cpp +++ /dev/null @@ -1,105 +0,0 @@ -#include // std::min -#include "Control.h" -#include "CpptrajStdio.h" -#include "VariableArray.h" -#include "ArgList.h" -#include "StringRoutines.h" - -void Control_Set::Help() const { - mprintf("\t{ |\n" - "\t {atoms|residues|molecules} inmask \n" - "\t [%s]\n" - "\t trajinframes }\n", - DataSetList::TopIdxArgs); - mprintf(" Set ( = '=') or append ( = '+=') a script variable.\n" - " - Set script variable to value .\n" - " - Set script variable to the number of atoms/residues/molecules in\n" - " the given atom mask.\n" - " - Set script variable to the current number of frames that will\n" - " be read from all previous 'trajin' statements.\n"); -} - -/** Set up variable with value. In this case allow any amount of whitespace, - * so re-tokenize the original argument line (minus the command). - */ -CpptrajState::RetType - Control_Set::SetupControl(CpptrajState& State, ArgList& argIn, VariableArray& CurrentVars) -{ - ArgList remaining = argIn.RemainingArgs(); - size_t pos0 = remaining.ArgLineStr().find_first_of("="); - if (pos0 == std::string::npos) { - mprinterr("Error: Expected =\n"); - return CpptrajState::ERR; - } - size_t pos1 = pos0; - bool append = false; - if (pos0 > 0 && remaining.ArgLineStr()[pos0-1] == '+') { - pos0--; - append = true; - } - std::string variable = NoWhitespace( remaining.ArgLineStr().substr(0, pos0) ); - if (variable.empty()) { - mprinterr("Error: No variable name.\n"); - return CpptrajState::ERR; - } - ArgList equals( NoLeadingWhitespace(remaining.ArgLineStr().substr(pos1+1)) ); - std::string value; - if (equals.Contains("inmask")) { - AtomMask mask( equals.GetStringKey("inmask") ); - Topology* top = State.DSL().GetTopByIndex( equals ); - if (top == 0) return CpptrajState::ERR; - if (top->SetupIntegerMask( mask )) return CpptrajState::ERR; - if (equals.hasKey("atoms")) - value = integerToString( mask.Nselected() ); - else if (equals.hasKey("residues")) { - int curRes = -1; - int nres = 0; - for (AtomMask::const_iterator at = mask.begin(); at != mask.end(); ++at) { - int res = (*top)[*at].ResNum(); - if (res != curRes) { - nres++; - curRes = res; - } - } - value = integerToString( nres ); - } else if (equals.hasKey("molecules")) { - int curMol = -1; - int nmol = 0; - for (AtomMask::const_iterator at = mask.begin(); at != mask.end(); ++at) { - int mol = (*top)[*at].MolNum(); - if (mol != curMol) { - nmol++; - curMol = mol; - } - } - value = integerToString( nmol ); - } else { - mprinterr("Error: Expected 'atoms', 'residues', or 'molecules'.\n"); - return CpptrajState::ERR; - } - } else if (equals.hasKey("trajinframes")) { - value = integerToString(State.InputTrajList().MaxFrames()); - } else - value = equals.ArgLineStr(); - if (append) - CurrentVars.AppendVariable( "$" + variable, value ); - else - CurrentVars.UpdateVariable( "$" + variable, value ); - mprintf("\tVariable '%s' set to '%s'\n", variable.c_str(), value.c_str()); - for (int iarg = 0; iarg < argIn.Nargs(); iarg++) - argIn.MarkArg( iarg ); - return CpptrajState::OK; -} - -// ----------------------------------------------------------------------------- -void Control_Show::Help() const { - mprintf(" Show all current script variables and their values.\n"); -} - -CpptrajState::RetType - Control_Show::SetupControl(CpptrajState& State, ArgList& argIn, VariableArray& CurrentVars) -{ - for (VariableArray::const_iterator it = CurrentVars.begin(); it != CurrentVars.end(); ++it) - mprintf("\t%s = '%s'\n", it->first.c_str(), it->second.c_str()); - return CpptrajState::OK; -} diff --git a/src/Control.h b/src/Control.h deleted file mode 100644 index cf0c4f58e6..0000000000 --- a/src/Control.h +++ /dev/null @@ -1,35 +0,0 @@ -#ifndef INC_CONTROL_H -#define INC_CONTROL_H -#include "DispatchObject.h" -#include "CpptrajState.h" // TODO do we need to return CpptrajState::RetType? -class CpptrajState; -class ArgList; -class VariableArray; -/// Work with script variables -class Control : public DispatchObject { - public: - Control() : DispatchObject(CONTROL) {} - virtual ~Control() {} - virtual CpptrajState::RetType SetupControl(CpptrajState&, ArgList&, VariableArray&) = 0; -}; - -/// Create/update script variables -class Control_Set : public Control { - public: - Control_Set() {} - void Help() const; - DispatchObject* Alloc() const { return (DispatchObject*)new Control_Set(); } - - CpptrajState::RetType SetupControl(CpptrajState&, ArgList&, VariableArray&); -}; - -/// List all variables and values. -class Control_Show : public Control { - public: - Control_Show() {} - void Help() const; - DispatchObject* Alloc() const { return (DispatchObject*)new Control_Show(); } - - CpptrajState::RetType SetupControl(CpptrajState&, ArgList&, VariableArray&); -}; -#endif diff --git a/src/VariableArray.cpp b/src/VariableArray.cpp deleted file mode 100644 index 5380d6b66a..0000000000 --- a/src/VariableArray.cpp +++ /dev/null @@ -1,119 +0,0 @@ -#include "VariableArray.h" -#include "CpptrajStdio.h" -#include "DataSet_string.h" -#include "DataSet_1D.h" -#include "StringRoutines.h" -#include "DataSetList.h" -#include "ArgList.h" - -/** \return value corresponding to variable if it exists. */ -std::string VariableArray::GetVariable(std::string const& varname) const { - Varray::const_iterator it = CurrentVars_.begin(); - for (; it != CurrentVars_.end(); ++it) - if (it->first == varname) - return it->second; - return std::string(); -} - -/** Add variable/value to array if it doesnt exist, otherwise set value. */ -void VariableArray::UpdateVariable(std::string const& varname, std::string const& value) -{ - Varray::iterator it = CurrentVars_.begin(); - for (; it != CurrentVars_.end(); ++it) - if (it->first == varname) - break; - if (it == CurrentVars_.end()) - CurrentVars_.push_back( Vpair(varname, value) ); - else - it->second = value; -} - -/** Add variable/value to array if it doesnt exist, otherwise append value. */ -void VariableArray::AppendVariable(std::string const& varname, std::string const& value) -{ - Varray::iterator it = CurrentVars_.begin(); - for (; it != CurrentVars_.end(); ++it) - if (it->first == varname) - break; - if (it == CurrentVars_.end()) - CurrentVars_.push_back( Vpair(varname, value) ); - else - it->second += value; -} - -/** Replace all variables in given ArgList with their values. */ -ArgList VariableArray::ReplaceVariables(ArgList const& argIn, DataSetList const& DSL, int debug) -{ - if (debug > 0) mprintf("DEBUG: Before variable replacement: [%s]\n", argIn.ArgLine()); - ArgList modCmd = argIn; - for (int n = 0; n < modCmd.Nargs(); n++) { - size_t pos = modCmd[n].find("$"); - while (pos != std::string::npos) { - // Argument is/contains a variable. Find first non-alphanumeric char - size_t len = 1; - for (size_t pos1 = pos+1; pos1 < modCmd[n].size(); pos1++, len++) - if (!isalnum(modCmd[n][pos1])) break; - std::string var_in_arg = modCmd[n].substr(pos, len); - // See if variable occurs in CurrentVars_ - Varray::const_iterator vp = CurrentVars_.begin(); - for (; vp != CurrentVars_.end(); ++vp) - if (vp->first == var_in_arg) break; - // If found replace with value from CurrentVars_ - if (vp != CurrentVars_.end()) { - if (debug > 0) - mprintf("DEBUG: Replaced variable '%s' with value '%s'\n", - var_in_arg.c_str(), vp->second.c_str()); - std::string arg = modCmd[n]; - arg.replace(pos, vp->first.size(), vp->second); - modCmd.ChangeArg(n, arg); - } else { - // Not found in CurrentVars_; see if this is a DataSet. - for (size_t pos1 = pos+len; pos1 < modCmd[n].size(); pos1++, len++) - if (!isalnum(modCmd[n][pos1]) && - modCmd[n][pos1] != '[' && - modCmd[n][pos1] != ':' && - modCmd[n][pos1] != ']' && - modCmd[n][pos1] != '_' && - modCmd[n][pos1] != '-' && - modCmd[n][pos1] != '%') - break; - var_in_arg = modCmd[n].substr(pos+1, len-1); - DataSet* ds = DSL.GetDataSet( var_in_arg ); - if (ds == 0) { - mprinterr("Error: Unrecognized variable in command: %s\n", var_in_arg.c_str()); - return ArgList(); - } else { - if (ds->Type() != DataSet::STRING && ds->Group() != DataSet::SCALAR_1D) { - mprinterr("Error: Only 1D data sets supported.\n"); - return ArgList(); - } - if (ds->Size() < 1) { - mprinterr("Error: Set is empty.\n"); - return ArgList(); - } - if (ds->Size() > 1) - mprintf("Warning: Only using first value.\n"); - std::string value; - if (ds->Type() == DataSet::STRING) - value = (*((DataSet_string*)ds))[0]; - else - value = doubleToString(((DataSet_1D*)ds)->Dval(0)); - if (debug > 0) - mprintf("DEBUG: Replaced variable '$%s' with value '%s' from DataSet '%s'\n", - var_in_arg.c_str(), value.c_str(), ds->legend()); - std::string arg = modCmd[n]; - arg.replace(pos, var_in_arg.size()+1, value); - modCmd.ChangeArg(n, arg); - } - } - pos = modCmd[n].find("$"); - } // END loop over this argument - } - return modCmd; -} - -void VariableArray::PrintVariables() const { - for (Varray::const_iterator vp = CurrentVars_.begin(); vp != CurrentVars_.end(); ++vp) - mprintf(" %s=%s", vp->first.c_str(), vp->second.c_str()); - mprintf("\n"); -} diff --git a/src/VariableArray.h b/src/VariableArray.h deleted file mode 100644 index a45c16b25d..0000000000 --- a/src/VariableArray.h +++ /dev/null @@ -1,33 +0,0 @@ -#ifndef INC_VARIABLEARRAY_H -#define INC_VARIABLEARRAY_H -#include -#include -class DataSetList; -class ArgList; -/// Hold script variables and their values. -class VariableArray { - /// Hold variable and corresponding value. - typedef std::pair Vpair; - /// Hold list of variables and corresponding values. - typedef std::vector Varray; - public: - /// CONSTRUCTOR - VariableArray() {} - /// \return value corresponding to variable if it exists. TODO return const&? - std::string GetVariable(std::string const&) const; - /// Add/update variable with given value. - void UpdateVariable(std::string const&, std::string const&); - /// Add/append variable tith given value. - void AppendVariable(std::string const&, std::string const&); - /// Replace all variables in given ArgList with their values. - ArgList ReplaceVariables(ArgList const&, DataSetList const&, int); - /// Print all variable/value pairs to stdout - void PrintVariables() const; - - typedef Varray::const_iterator const_iterator; - const_iterator begin() const { return CurrentVars_.begin(); } - const_iterator end() const { return CurrentVars_.end(); } - private: - Varray CurrentVars_; ///< Hold all current variables -}; -#endif diff --git a/src/cpptrajdepend b/src/cpptrajdepend index 4d10da3596..e0726088e7 100644 --- a/src/cpptrajdepend +++ b/src/cpptrajdepend @@ -157,15 +157,14 @@ Cluster_ReadInfo.o : Cluster_ReadInfo.cpp ArgList.h ArrayIterator.h AssociatedDa Cmd.o : Cmd.cpp Cmd.h DispatchObject.h CmdInput.o : CmdInput.cpp CmdInput.h StringRoutines.h CmdList.o : CmdList.cpp Cmd.h CmdList.h DispatchObject.h -Command.o : Command.cpp Action.h ActionFrameCounter.h ActionList.h ActionState.h Action_Align.h Action_Angle.h Action_AreaPerMol.h Action_AtomMap.h Action_AtomicCorr.h Action_AtomicFluct.h Action_AutoImage.h Action_Average.h Action_Bounds.h Action_Box.h Action_Center.h Action_Channel.h Action_CheckChirality.h Action_CheckStructure.h Action_Closest.h Action_ClusterDihedral.h Action_Contacts.h Action_CreateCrd.h Action_CreateReservoir.h Action_DNAionTracker.h Action_DSSP.h Action_Density.h Action_Diffusion.h Action_Dihedral.h Action_DihedralRMS.h Action_Dipole.h Action_DistRmsd.h Action_Distance.h Action_Energy.h Action_Esander.h Action_FilterByData.h Action_FixAtomOrder.h Action_FixImagedBonds.h Action_GIST.h Action_Grid.h Action_GridFreeEnergy.h Action_HydrogenBond.h Action_Image.h Action_InfraredSpectrum.h Action_Jcoupling.h Action_LESsplit.h Action_LIE.h Action_LipidOrder.h Action_MakeStructure.h Action_Mask.h Action_Matrix.h Action_MinImage.h Action_Molsurf.h Action_MultiDihedral.h Action_MultiVector.h Action_NAstruct.h Action_NMRrst.h Action_NativeContacts.h Action_OrderParameter.h Action_Outtraj.h Action_PairDist.h Action_Pairwise.h Action_Principal.h Action_Projection.h Action_Pucker.h Action_Radgyr.h Action_Radial.h Action_RandomizeIons.h Action_Remap.h Action_ReplicateCell.h Action_Rmsd.h Action_Rotate.h Action_RunningAvg.h Action_STFC_Diffusion.h Action_Scale.h Action_SetVelocity.h Action_Spam.h Action_Strip.h Action_Surf.h Action_SymmetricRmsd.h Action_Temperature.h Action_Time.h Action_Translate.h Action_Unstrip.h Action_Unwrap.h Action_Vector.h Action_VelocityAutoCorr.h Action_Volmap.h Action_Volume.h Action_Watershell.h Action_XtalSymm.h Analysis.h AnalysisList.h AnalysisState.h Analysis_AmdBias.h Analysis_AutoCorr.h Analysis_Average.h Analysis_Clustering.h Analysis_ConstantPHStats.h Analysis_Corr.h Analysis_CrankShaft.h Analysis_CrdFluct.h Analysis_CrossCorr.h Analysis_CurveFit.h Analysis_Divergence.h Analysis_FFT.h Analysis_HausdorffDistance.h Analysis_Hist.h Analysis_IRED.h Analysis_Integrate.h Analysis_KDE.h Analysis_Lifetime.h Analysis_LowestCurve.h Analysis_Matrix.h Analysis_MeltCurve.h Analysis_Modes.h Analysis_MultiHist.h Analysis_Multicurve.h Analysis_Overlap.h Analysis_PhiPsi.h Analysis_Regression.h Analysis_RemLog.h Analysis_Rms2d.h Analysis_RmsAvgCorr.h Analysis_Rotdif.h Analysis_RunningAvg.h Analysis_Slope.h Analysis_Spline.h Analysis_State.h Analysis_Statistics.h Analysis_TI.h Analysis_Timecorr.h Analysis_VectorMath.h Analysis_Wavelet.h ArgList.h Array1D.h ArrayIterator.h AssociatedData.h Atom.h AtomExtra.h AtomMap.h AtomMask.h AtomType.h AxisType.h BaseIOtype.h Box.h BufferedLine.h CharMask.h ClusterDist.h ClusterList.h ClusterMap.h ClusterNode.h ClusterSieve.h Cmd.h CmdInput.h CmdList.h Command.h ComplexArray.h Constants.h Constraints.h Control.h ControlBlock.h ControlBlock_For.h CoordinateInfo.h Corr.h Cph.h CpptrajFile.h CpptrajState.h CpptrajStdio.h DataFile.h DataFileList.h DataIO.h DataSet.h DataSetList.h DataSet_1D.h DataSet_2D.h DataSet_3D.h DataSet_Cmatrix.h DataSet_Coords.h DataSet_Coords_CRD.h DataSet_Coords_REF.h DataSet_GridFlt.h DataSet_Mat3x3.h DataSet_MatrixDbl.h DataSet_MatrixFlt.h DataSet_Mesh.h DataSet_Modes.h DataSet_RemLog.h DataSet_Vector.h DataSet_double.h DataSet_float.h DataSet_integer.h DataSet_integer_mem.h DataSet_pH.h DataSet_string.h Deprecated.h DihedralSearch.h Dimension.h DispatchObject.h DistRoutines.h Energy.h Energy_Sander.h EnsembleIn.h EnsembleOutList.h Exec.h Exec_Analyze.h Exec_Calc.h Exec_CatCrd.h Exec_Change.h Exec_ClusterMap.h Exec_CombineCoords.h Exec_Commands.h Exec_CompareTop.h Exec_CrdAction.h Exec_CrdOut.h Exec_CreateSet.h Exec_DataFile.h Exec_DataFilter.h Exec_DataSetCmd.h Exec_GenerateAmberRst.h Exec_Help.h Exec_LoadCrd.h Exec_LoadTraj.h Exec_ParallelAnalysis.h Exec_ParmBox.h Exec_ParmSolvent.h Exec_ParmStrip.h Exec_ParmWrite.h Exec_PermuteDihedrals.h Exec_Precision.h Exec_PrintData.h Exec_ReadData.h Exec_ReadEnsembleData.h Exec_ReadInput.h Exec_RotateDihedral.h Exec_RunAnalysis.h Exec_ScaleDihedralK.h Exec_SequenceAlign.h Exec_SortEnsembleData.h Exec_SplitCoords.h Exec_System.h Exec_Top.h Exec_Traj.h Exec_UpdateParameters.h Exec_ViewRst.h FileIO.h FileName.h FileTypes.h Frame.h FramePtrArray.h Grid.h GridAction.h GridBin.h HistBin.h Hungarian.h ImageTypes.h ImagedAction.h InputTrajCommon.h MapAtom.h MaskArray.h MaskToken.h Matrix.h Matrix_3x3.h MetaData.h Molecule.h NameType.h NetcdfFile.h OnlineVarT.h OutputTrajCommon.h PDBfile.h PairList.h Parallel.h ParameterHolders.h ParameterSet.h ParameterTypes.h PubFFT.h RPNcalc.h Random.h Range.h ReferenceAction.h ReferenceFrame.h RemdReservoirNC.h ReplicaDimArray.h ReplicaInfo.h Residue.h Spline.h StructureCheck.h SymbolExporting.h SymmetricRmsdCalc.h TextFormat.h Timer.h Topology.h TrajFrameCounter.h TrajectoryFile.h Trajin.h TrajinList.h TrajoutList.h Trajout_Single.h TypeNameHolder.h VariableArray.h Vec3.h molsurf.h +Command.o : Command.cpp Action.h ActionFrameCounter.h ActionList.h ActionState.h Action_Align.h Action_Angle.h Action_AreaPerMol.h Action_AtomMap.h Action_AtomicCorr.h Action_AtomicFluct.h Action_AutoImage.h Action_Average.h Action_Bounds.h Action_Box.h Action_Center.h Action_Channel.h Action_CheckChirality.h Action_CheckStructure.h Action_Closest.h Action_ClusterDihedral.h Action_Contacts.h Action_CreateCrd.h Action_CreateReservoir.h Action_DNAionTracker.h Action_DSSP.h Action_Density.h Action_Diffusion.h Action_Dihedral.h Action_DihedralRMS.h Action_Dipole.h Action_DistRmsd.h Action_Distance.h Action_Energy.h Action_Esander.h Action_FilterByData.h Action_FixAtomOrder.h Action_FixImagedBonds.h Action_GIST.h Action_Grid.h Action_GridFreeEnergy.h Action_HydrogenBond.h Action_Image.h Action_InfraredSpectrum.h Action_Jcoupling.h Action_LESsplit.h Action_LIE.h Action_LipidOrder.h Action_MakeStructure.h Action_Mask.h Action_Matrix.h Action_MinImage.h Action_Molsurf.h Action_MultiDihedral.h Action_MultiVector.h Action_NAstruct.h Action_NMRrst.h Action_NativeContacts.h Action_OrderParameter.h Action_Outtraj.h Action_PairDist.h Action_Pairwise.h Action_Principal.h Action_Projection.h Action_Pucker.h Action_Radgyr.h Action_Radial.h Action_RandomizeIons.h Action_Remap.h Action_ReplicateCell.h Action_Rmsd.h Action_Rotate.h Action_RunningAvg.h Action_STFC_Diffusion.h Action_Scale.h Action_SetVelocity.h Action_Spam.h Action_Strip.h Action_Surf.h Action_SymmetricRmsd.h Action_Temperature.h Action_Time.h Action_Translate.h Action_Unstrip.h Action_Unwrap.h Action_Vector.h Action_VelocityAutoCorr.h Action_Volmap.h Action_Volume.h Action_Watershell.h Action_XtalSymm.h Analysis.h AnalysisList.h AnalysisState.h Analysis_AmdBias.h Analysis_AutoCorr.h Analysis_Average.h Analysis_Clustering.h Analysis_ConstantPHStats.h Analysis_Corr.h Analysis_CrankShaft.h Analysis_CrdFluct.h Analysis_CrossCorr.h Analysis_CurveFit.h Analysis_Divergence.h Analysis_FFT.h Analysis_HausdorffDistance.h Analysis_Hist.h Analysis_IRED.h Analysis_Integrate.h Analysis_KDE.h Analysis_Lifetime.h Analysis_LowestCurve.h Analysis_Matrix.h Analysis_MeltCurve.h Analysis_Modes.h Analysis_MultiHist.h Analysis_Multicurve.h Analysis_Overlap.h Analysis_PhiPsi.h Analysis_Regression.h Analysis_RemLog.h Analysis_Rms2d.h Analysis_RmsAvgCorr.h Analysis_Rotdif.h Analysis_RunningAvg.h Analysis_Slope.h Analysis_Spline.h Analysis_State.h Analysis_Statistics.h Analysis_TI.h Analysis_Timecorr.h Analysis_VectorMath.h Analysis_Wavelet.h ArgList.h Array1D.h ArrayIterator.h AssociatedData.h Atom.h AtomExtra.h AtomMap.h AtomMask.h AtomType.h AxisType.h BaseIOtype.h Box.h BufferedLine.h CharMask.h ClusterDist.h ClusterList.h ClusterMap.h ClusterNode.h ClusterSieve.h Cmd.h CmdInput.h CmdList.h Command.h ComplexArray.h Constants.h Constraints.h ControlBlock.h ControlBlock_For.h CoordinateInfo.h Corr.h Cph.h CpptrajFile.h CpptrajState.h CpptrajStdio.h DataFile.h DataFileList.h DataIO.h DataSet.h DataSetList.h DataSet_1D.h DataSet_2D.h DataSet_3D.h DataSet_Cmatrix.h DataSet_Coords.h DataSet_Coords_CRD.h DataSet_Coords_REF.h DataSet_GridFlt.h DataSet_Mat3x3.h DataSet_MatrixDbl.h DataSet_MatrixFlt.h DataSet_Mesh.h DataSet_Modes.h DataSet_RemLog.h DataSet_Vector.h DataSet_double.h DataSet_float.h DataSet_integer.h DataSet_integer_mem.h DataSet_pH.h DataSet_string.h Deprecated.h DihedralSearch.h Dimension.h DispatchObject.h DistRoutines.h Energy.h Energy_Sander.h EnsembleIn.h EnsembleOutList.h Exec.h Exec_Analyze.h Exec_Calc.h Exec_CatCrd.h Exec_Change.h Exec_ClusterMap.h Exec_CombineCoords.h Exec_Commands.h Exec_CompareTop.h Exec_CrdAction.h Exec_CrdOut.h Exec_CreateSet.h Exec_DataFile.h Exec_DataFilter.h Exec_DataSetCmd.h Exec_GenerateAmberRst.h Exec_Help.h Exec_LoadCrd.h Exec_LoadTraj.h Exec_ParallelAnalysis.h Exec_ParmBox.h Exec_ParmSolvent.h Exec_ParmStrip.h Exec_ParmWrite.h Exec_PermuteDihedrals.h Exec_Precision.h Exec_PrintData.h Exec_ReadData.h Exec_ReadEnsembleData.h Exec_ReadInput.h Exec_RotateDihedral.h Exec_RunAnalysis.h Exec_ScaleDihedralK.h Exec_SequenceAlign.h Exec_Set.h Exec_Show.h Exec_SortEnsembleData.h Exec_SplitCoords.h Exec_System.h Exec_Top.h Exec_Traj.h Exec_UpdateParameters.h Exec_ViewRst.h FileIO.h FileName.h FileTypes.h Frame.h FramePtrArray.h Grid.h GridAction.h GridBin.h HistBin.h Hungarian.h ImageTypes.h ImagedAction.h InputTrajCommon.h MapAtom.h MaskArray.h MaskToken.h Matrix.h Matrix_3x3.h MetaData.h Molecule.h NameType.h NetcdfFile.h OnlineVarT.h OutputTrajCommon.h PDBfile.h PairList.h Parallel.h ParameterHolders.h ParameterSet.h ParameterTypes.h PubFFT.h RPNcalc.h Random.h Range.h ReferenceAction.h ReferenceFrame.h RemdReservoirNC.h ReplicaDimArray.h ReplicaInfo.h Residue.h Spline.h StructureCheck.h SymbolExporting.h SymmetricRmsdCalc.h TextFormat.h Timer.h Topology.h TrajFrameCounter.h TrajectoryFile.h Trajin.h TrajinList.h TrajoutList.h Trajout_Single.h TypeNameHolder.h Vec3.h molsurf.h ComplexArray.o : ComplexArray.cpp ArrayIterator.h ComplexArray.h Constraints.o : Constraints.cpp ArgList.h Atom.h AtomExtra.h AtomMask.h AtomType.h Box.h CharMask.h Constants.h Constraints.h CoordinateInfo.h CpptrajStdio.h FileName.h Frame.h MaskToken.h Matrix_3x3.h Molecule.h NameType.h Parallel.h ParameterHolders.h ParameterSet.h ParameterTypes.h Range.h ReplicaDimArray.h Residue.h SymbolExporting.h Topology.h TypeNameHolder.h Vec3.h -Control.o : Control.cpp Action.h ActionList.h ActionState.h Analysis.h AnalysisList.h AnalysisState.h ArgList.h AssociatedData.h Atom.h AtomExtra.h AtomMask.h AtomType.h BaseIOtype.h Box.h Constants.h Control.h CoordinateInfo.h CpptrajFile.h CpptrajState.h CpptrajStdio.h DataFile.h DataFileList.h DataIO.h DataSet.h DataSetList.h DataSet_Coords.h DataSet_Coords_REF.h Dimension.h DispatchObject.h EnsembleIn.h EnsembleOutList.h FileIO.h FileName.h FileTypes.h Frame.h FramePtrArray.h InputTrajCommon.h MaskToken.h Matrix_3x3.h MetaData.h Molecule.h NameType.h Parallel.h ParameterHolders.h ParameterSet.h ParameterTypes.h Range.h ReferenceFrame.h ReplicaDimArray.h ReplicaInfo.h Residue.h StringRoutines.h SymbolExporting.h TextFormat.h Timer.h Topology.h TrajFrameCounter.h Trajin.h TrajinList.h TrajoutList.h TypeNameHolder.h VariableArray.h Vec3.h ControlBlock_For.o : ControlBlock_For.cpp ArgList.h AssociatedData.h Atom.h AtomExtra.h AtomMask.h AtomType.h Box.h Constants.h ControlBlock.h ControlBlock_For.h CoordinateInfo.h CpptrajFile.h CpptrajStdio.h DataSet.h DataSetList.h DataSet_Coords.h DataSet_Coords_REF.h Dimension.h DispatchObject.h FileIO.h FileName.h ForLoop.h ForLoop_integer.h ForLoop_list.h ForLoop_mask.h Frame.h MaskToken.h Matrix_3x3.h MetaData.h Molecule.h NameType.h Parallel.h ParameterHolders.h ParameterSet.h ParameterTypes.h Range.h ReferenceFrame.h ReplicaDimArray.h Residue.h SymbolExporting.h TextFormat.h Timer.h Topology.h TypeNameHolder.h Vec3.h CoordinateInfo.o : CoordinateInfo.cpp Box.h CoordinateInfo.h CpptrajStdio.h Matrix_3x3.h Parallel.h ReplicaDimArray.h Vec3.h Corr.o : Corr.cpp ArrayIterator.h ComplexArray.h Corr.h PubFFT.h Cph.o : Cph.cpp Cph.h NameType.h -Cpptraj.o : Cpptraj.cpp Action.h ActionList.h ActionState.h Analysis.h AnalysisList.h AnalysisState.h ArgList.h AssociatedData.h Atom.h AtomExtra.h AtomMask.h AtomType.h BaseIOtype.h BondSearch.h Box.h Cmd.h CmdInput.h CmdList.h Command.h Constants.h CoordinateInfo.h Cpptraj.h CpptrajFile.h CpptrajState.h CpptrajStdio.h DataFile.h DataFileList.h DataIO.h DataSet.h DataSetList.h DataSet_Coords.h DataSet_Coords_REF.h Dimension.h DispatchObject.h EnsembleIn.h EnsembleOutList.h FileIO.h FileName.h FileTypes.h Frame.h FramePtrArray.h InputTrajCommon.h MaskToken.h Matrix_3x3.h MetaData.h Molecule.h NameType.h Parallel.h ParameterHolders.h ParameterSet.h ParameterTypes.h ParmFile.h ParmIO.h Range.h ReadLine.h ReferenceFrame.h ReplicaDimArray.h ReplicaInfo.h Residue.h StringRoutines.h SymbolExporting.h TextFormat.h Timer.h TopInfo.h Topology.h TrajFrameCounter.h TrajectoryFile.h Trajin.h TrajinList.h TrajoutList.h TypeNameHolder.h VariableArray.h Vec3.h Version.h +Cpptraj.o : Cpptraj.cpp Action.h ActionList.h ActionState.h Analysis.h AnalysisList.h AnalysisState.h ArgList.h AssociatedData.h Atom.h AtomExtra.h AtomMask.h AtomType.h BaseIOtype.h BondSearch.h Box.h Cmd.h CmdInput.h CmdList.h Command.h Constants.h CoordinateInfo.h Cpptraj.h CpptrajFile.h CpptrajState.h CpptrajStdio.h DataFile.h DataFileList.h DataIO.h DataSet.h DataSetList.h DataSet_Coords.h DataSet_Coords_REF.h Dimension.h DispatchObject.h EnsembleIn.h EnsembleOutList.h FileIO.h FileName.h FileTypes.h Frame.h FramePtrArray.h InputTrajCommon.h MaskToken.h Matrix_3x3.h MetaData.h Molecule.h NameType.h Parallel.h ParameterHolders.h ParameterSet.h ParameterTypes.h ParmFile.h ParmIO.h Range.h ReadLine.h ReferenceFrame.h ReplicaDimArray.h ReplicaInfo.h Residue.h StringRoutines.h SymbolExporting.h TextFormat.h Timer.h TopInfo.h Topology.h TrajFrameCounter.h TrajectoryFile.h Trajin.h TrajinList.h TrajoutList.h TypeNameHolder.h Vec3.h Version.h CpptrajFile.o : CpptrajFile.cpp CpptrajFile.h CpptrajStdio.h FileIO.h FileIO_Bzip2.h FileIO_Gzip.h FileIO_Mpi.h FileIO_MpiShared.h FileIO_Std.h FileName.h Parallel.h StringRoutines.h CpptrajState.o : CpptrajState.cpp Action.h ActionList.h ActionState.h Action_CreateCrd.h Analysis.h AnalysisList.h AnalysisState.h ArgList.h AssociatedData.h Atom.h AtomExtra.h AtomMask.h AtomType.h BaseIOtype.h Box.h Constants.h CoordinateInfo.h CpptrajFile.h CpptrajState.h CpptrajStdio.h DataFile.h DataFileList.h DataIO.h DataSet.h DataSetList.h DataSet_Coords.h DataSet_Coords_CRD.h DataSet_Coords_REF.h DataSet_Coords_TRJ.h DataSet_Topology.h Dimension.h DispatchObject.h EnsembleIn.h EnsembleNavigator.h EnsembleOutList.h FileIO.h FileName.h FileTypes.h Frame.h FrameArray.h FramePtrArray.h InputTrajCommon.h MaskToken.h Matrix_3x3.h MetaData.h Molecule.h NameType.h Parallel.h ParameterHolders.h ParameterSet.h ParameterTypes.h ProgressBar.h Range.h ReferenceFrame.h ReplicaDimArray.h ReplicaInfo.h Residue.h SymbolExporting.h TextFormat.h Timer.h Topology.h TrajFrameCounter.h TrajFrameIndex.h Trajin.h TrajinList.h TrajoutList.h TypeNameHolder.h Vec3.h CpptrajStdio.o : CpptrajStdio.cpp Parallel.h @@ -214,6 +213,7 @@ DataSet_PHREMD_Explicit.o : DataSet_PHREMD_Explicit.cpp ArgList.h AssociatedData DataSet_PHREMD_Implicit.o : DataSet_PHREMD_Implicit.cpp ArgList.h AssociatedData.h Cph.h CpptrajFile.h CpptrajStdio.h DataSet.h DataSet_PHREMD.h DataSet_PHREMD_Implicit.h Dimension.h FileIO.h FileName.h MetaData.h NameType.h Parallel.h Range.h TextFormat.h DataSet_Parameters.o : DataSet_Parameters.cpp ArgList.h AssociatedData.h AtomType.h Constants.h CpptrajFile.h CpptrajStdio.h DataSet.h DataSet_Parameters.h Dimension.h FileIO.h FileName.h MetaData.h NameType.h Parallel.h ParameterHolders.h ParameterSet.h ParameterTypes.h Range.h TextFormat.h TypeNameHolder.h DataSet_RemLog.o : DataSet_RemLog.cpp ArgList.h AssociatedData.h CpptrajFile.h CpptrajStdio.h DataSet.h DataSet_RemLog.h Dimension.h FileIO.h FileName.h MetaData.h Parallel.h Range.h ReplicaDimArray.h TextFormat.h +DataSet_StringVar.o : DataSet_StringVar.cpp ArgList.h AssociatedData.h CpptrajFile.h CpptrajStdio.h DataSet.h DataSet_StringVar.h Dimension.h FileIO.h FileName.h MetaData.h Parallel.h Range.h TextFormat.h DataSet_Tensor.o : DataSet_Tensor.cpp ArgList.h AssociatedData.h CpptrajFile.h DataSet.h DataSet_Tensor.h Dimension.h FileIO.h FileName.h MetaData.h Parallel.h Range.h SymmetricTensor.h TextFormat.h DataSet_Topology.o : DataSet_Topology.cpp ArgList.h AssociatedData.h Atom.h AtomExtra.h AtomMask.h AtomType.h BaseIOtype.h BondSearch.h Box.h Constants.h CoordinateInfo.h CpptrajFile.h CpptrajStdio.h DataSet.h DataSet_Topology.h Dimension.h FileIO.h FileName.h FileTypes.h Frame.h MaskToken.h Matrix_3x3.h MetaData.h Molecule.h NameType.h Parallel.h ParameterHolders.h ParameterSet.h ParameterTypes.h ParmFile.h ParmIO.h Range.h ReplicaDimArray.h Residue.h SymbolExporting.h TextFormat.h Topology.h TypeNameHolder.h Vec3.h DataSet_Vector.o : DataSet_Vector.cpp ArgList.h ArrayIterator.h AssociatedData.h ComplexArray.h Constants.h Corr.h CpptrajFile.h DataSet.h DataSet_1D.h DataSet_Vector.h Dimension.h FileIO.h FileName.h MetaData.h Parallel.h PubFFT.h Range.h SymbolExporting.h TextFormat.h Vec3.h @@ -239,7 +239,7 @@ EnsembleOut_Single.o : EnsembleOut_Single.cpp ActionFrameCounter.h ArgList.h Ato Ewald.o : Ewald.cpp Atom.h AtomExtra.h AtomMask.h AtomType.h Box.h CharMask.h Constants.h CoordinateInfo.h CpptrajStdio.h EnergyKernel_Adjust.h EnergyKernel_Nonbond.h Ewald.h FileName.h Frame.h MaskToken.h Matrix_3x3.h Molecule.h NameType.h PairList.h PairListLoop.h Parallel.h ParameterHolders.h ParameterSet.h ParameterTypes.h Range.h ReplicaDimArray.h Residue.h Spline.h StringRoutines.h SymbolExporting.h Timer.h Topology.h TypeNameHolder.h Vec3.h Ewald_ParticleMesh.o : Ewald_ParticleMesh.cpp Atom.h AtomExtra.h AtomMask.h AtomType.h Box.h Constants.h CoordinateInfo.h CpptrajStdio.h Ewald.h Ewald_ParticleMesh.h FileName.h Frame.h MaskToken.h Matrix_3x3.h Molecule.h NameType.h PairList.h Parallel.h ParameterHolders.h ParameterSet.h ParameterTypes.h Range.h ReplicaDimArray.h Residue.h SymbolExporting.h Timer.h Topology.h TypeNameHolder.h Vec3.h helpme_standalone.h Ewald_Regular.o : Ewald_Regular.cpp Atom.h AtomExtra.h AtomMask.h AtomType.h Box.h Constants.h CoordinateInfo.h CpptrajStdio.h Ewald.h Ewald_Regular.h FileName.h Frame.h MaskToken.h Matrix_3x3.h Molecule.h NameType.h PairList.h Parallel.h ParameterHolders.h ParameterSet.h ParameterTypes.h Range.h ReplicaDimArray.h Residue.h StringRoutines.h SymbolExporting.h Timer.h Topology.h TypeNameHolder.h Vec3.h -Exec_Analyze.o : Exec_Analyze.cpp Action.h ActionList.h ActionState.h Analysis.h AnalysisList.h AnalysisState.h ArgList.h AssociatedData.h Atom.h AtomExtra.h AtomMask.h AtomType.h BaseIOtype.h Box.h Cmd.h CmdList.h Command.h Constants.h CoordinateInfo.h CpptrajFile.h CpptrajState.h CpptrajStdio.h DataFile.h DataFileList.h DataIO.h DataSet.h DataSetList.h DataSet_Coords.h DataSet_Coords_REF.h Dimension.h DispatchObject.h EnsembleIn.h EnsembleOutList.h Exec.h Exec_Analyze.h FileIO.h FileName.h FileTypes.h Frame.h FramePtrArray.h InputTrajCommon.h MaskToken.h Matrix_3x3.h MetaData.h Molecule.h NameType.h Parallel.h ParameterHolders.h ParameterSet.h ParameterTypes.h Range.h ReferenceFrame.h ReplicaDimArray.h ReplicaInfo.h Residue.h SymbolExporting.h TextFormat.h Timer.h Topology.h TrajFrameCounter.h Trajin.h TrajinList.h TrajoutList.h TypeNameHolder.h VariableArray.h Vec3.h +Exec_Analyze.o : Exec_Analyze.cpp Action.h ActionList.h ActionState.h Analysis.h AnalysisList.h AnalysisState.h ArgList.h AssociatedData.h Atom.h AtomExtra.h AtomMask.h AtomType.h BaseIOtype.h Box.h Cmd.h CmdList.h Command.h Constants.h CoordinateInfo.h CpptrajFile.h CpptrajState.h CpptrajStdio.h DataFile.h DataFileList.h DataIO.h DataSet.h DataSetList.h DataSet_Coords.h DataSet_Coords_REF.h Dimension.h DispatchObject.h EnsembleIn.h EnsembleOutList.h Exec.h Exec_Analyze.h FileIO.h FileName.h FileTypes.h Frame.h FramePtrArray.h InputTrajCommon.h MaskToken.h Matrix_3x3.h MetaData.h Molecule.h NameType.h Parallel.h ParameterHolders.h ParameterSet.h ParameterTypes.h Range.h ReferenceFrame.h ReplicaDimArray.h ReplicaInfo.h Residue.h SymbolExporting.h TextFormat.h Timer.h Topology.h TrajFrameCounter.h Trajin.h TrajinList.h TrajoutList.h TypeNameHolder.h Vec3.h Exec_Calc.o : Exec_Calc.cpp Action.h ActionList.h ActionState.h Analysis.h AnalysisList.h AnalysisState.h ArgList.h AssociatedData.h Atom.h AtomExtra.h AtomMask.h AtomType.h BaseIOtype.h Box.h Constants.h CoordinateInfo.h CpptrajFile.h CpptrajState.h CpptrajStdio.h DataFile.h DataFileList.h DataIO.h DataSet.h DataSetList.h DataSet_Coords.h DataSet_Coords_REF.h Dimension.h DispatchObject.h EnsembleIn.h EnsembleOutList.h Exec.h Exec_Calc.h FileIO.h FileName.h FileTypes.h Frame.h FramePtrArray.h InputTrajCommon.h MaskToken.h Matrix_3x3.h MetaData.h Molecule.h NameType.h Parallel.h ParameterHolders.h ParameterSet.h ParameterTypes.h RPNcalc.h Range.h ReferenceFrame.h ReplicaDimArray.h ReplicaInfo.h Residue.h SymbolExporting.h TextFormat.h Timer.h Topology.h TrajFrameCounter.h Trajin.h TrajinList.h TrajoutList.h TypeNameHolder.h Vec3.h Exec_CatCrd.o : Exec_CatCrd.cpp Action.h ActionList.h ActionState.h Analysis.h AnalysisList.h AnalysisState.h ArgList.h AssociatedData.h Atom.h AtomExtra.h AtomMask.h AtomType.h BaseIOtype.h Box.h Constants.h CoordinateInfo.h CpptrajFile.h CpptrajState.h CpptrajStdio.h DataFile.h DataFileList.h DataIO.h DataSet.h DataSetList.h DataSet_Coords.h DataSet_Coords_REF.h Dimension.h DispatchObject.h EnsembleIn.h EnsembleOutList.h Exec.h Exec_CatCrd.h FileIO.h FileName.h FileTypes.h Frame.h FramePtrArray.h InputTrajCommon.h MaskToken.h Matrix_3x3.h MetaData.h Molecule.h NameType.h Parallel.h ParameterHolders.h ParameterSet.h ParameterTypes.h Range.h ReferenceFrame.h ReplicaDimArray.h ReplicaInfo.h Residue.h SymbolExporting.h TextFormat.h Timer.h Topology.h TrajFrameCounter.h Trajin.h TrajinList.h TrajoutList.h TypeNameHolder.h Vec3.h Exec_Change.o : Exec_Change.cpp Action.h ActionList.h ActionState.h Analysis.h AnalysisList.h AnalysisState.h ArgList.h AssociatedData.h Atom.h AtomExtra.h AtomMask.h AtomType.h BaseIOtype.h Box.h Constants.h CoordinateInfo.h CpptrajFile.h CpptrajState.h CpptrajStdio.h DataFile.h DataFileList.h DataIO.h DataSet.h DataSetList.h DataSet_Coords.h DataSet_Coords_REF.h Dimension.h DispatchObject.h EnsembleIn.h EnsembleOutList.h Exec.h Exec_Change.h FileIO.h FileName.h FileTypes.h Frame.h FramePtrArray.h InputTrajCommon.h MaskToken.h Matrix_3x3.h MetaData.h Molecule.h NameType.h Parallel.h ParameterHolders.h ParameterSet.h ParameterTypes.h Range.h ReferenceFrame.h ReplicaDimArray.h ReplicaInfo.h Residue.h SymbolExporting.h TextFormat.h Timer.h Topology.h TrajFrameCounter.h Trajin.h TrajinList.h TrajoutList.h TypeNameHolder.h Vec3.h @@ -247,14 +247,14 @@ Exec_ClusterMap.o : Exec_ClusterMap.cpp Action.h ActionList.h ActionState.h Anal Exec_CombineCoords.o : Exec_CombineCoords.cpp Action.h ActionList.h ActionState.h Analysis.h AnalysisList.h AnalysisState.h ArgList.h AssociatedData.h Atom.h AtomExtra.h AtomMask.h AtomType.h BaseIOtype.h Box.h Constants.h CoordinateInfo.h CpptrajFile.h CpptrajState.h CpptrajStdio.h DataFile.h DataFileList.h DataIO.h DataSet.h DataSetList.h DataSet_Coords.h DataSet_Coords_REF.h Dimension.h DispatchObject.h EnsembleIn.h EnsembleOutList.h Exec.h Exec_CombineCoords.h FileIO.h FileName.h FileTypes.h Frame.h FramePtrArray.h InputTrajCommon.h MaskToken.h Matrix_3x3.h MetaData.h Molecule.h NameType.h Parallel.h ParameterHolders.h ParameterSet.h ParameterTypes.h Range.h ReferenceFrame.h ReplicaDimArray.h ReplicaInfo.h Residue.h SymbolExporting.h TextFormat.h Timer.h Topology.h TrajFrameCounter.h Trajin.h TrajinList.h TrajoutList.h TypeNameHolder.h Vec3.h Exec_Commands.o : Exec_Commands.cpp Action.h ActionList.h ActionState.h Analysis.h AnalysisList.h AnalysisState.h ArgList.h AssociatedData.h Atom.h AtomExtra.h AtomMask.h AtomType.h BaseIOtype.h Box.h Constants.h CoordinateInfo.h CpptrajFile.h CpptrajState.h CpptrajStdio.h DataFile.h DataFileList.h DataIO.h DataSet.h DataSetList.h DataSet_Coords.h DataSet_Coords_REF.h Dimension.h DispatchObject.h EnsembleIn.h EnsembleOutList.h Exec.h Exec_Commands.h FileIO.h FileName.h FileTypes.h Frame.h FramePtrArray.h InputTrajCommon.h MaskToken.h Matrix_3x3.h MetaData.h Molecule.h NameType.h Parallel.h ParameterHolders.h ParameterSet.h ParameterTypes.h Range.h ReferenceFrame.h ReplicaDimArray.h ReplicaInfo.h Residue.h SymbolExporting.h TextFormat.h Timer.h Topology.h TrajFrameCounter.h Trajin.h TrajinList.h TrajoutList.h TypeNameHolder.h Vec3.h Exec_CompareTop.o : Exec_CompareTop.cpp Action.h ActionList.h ActionState.h Analysis.h AnalysisList.h AnalysisState.h ArgList.h AssociatedData.h Atom.h AtomExtra.h AtomMask.h AtomType.h BaseIOtype.h Box.h Constants.h CoordinateInfo.h CpptrajFile.h CpptrajState.h CpptrajStdio.h DataFile.h DataFileList.h DataIO.h DataSet.h DataSetList.h DataSet_Coords.h DataSet_Coords_REF.h Dimension.h DispatchObject.h EnsembleIn.h EnsembleOutList.h Exec.h Exec_CompareTop.h FileIO.h FileName.h FileTypes.h Frame.h FramePtrArray.h InputTrajCommon.h MaskToken.h Matrix_3x3.h MetaData.h Molecule.h NameType.h Parallel.h ParameterHolders.h ParameterSet.h ParameterTypes.h Range.h ReferenceFrame.h ReplicaDimArray.h ReplicaInfo.h Residue.h SymbolExporting.h TextFormat.h Timer.h Topology.h TrajFrameCounter.h Trajin.h TrajinList.h TrajoutList.h TypeNameHolder.h Vec3.h -Exec_CrdAction.o : Exec_CrdAction.cpp Action.h ActionList.h ActionState.h Analysis.h AnalysisList.h AnalysisState.h ArgList.h AssociatedData.h Atom.h AtomExtra.h AtomMask.h AtomType.h BaseIOtype.h Box.h Cmd.h CmdList.h Command.h Constants.h CoordinateInfo.h CpptrajFile.h CpptrajState.h CpptrajStdio.h DataFile.h DataFileList.h DataIO.h DataSet.h DataSetList.h DataSet_Coords.h DataSet_Coords_CRD.h DataSet_Coords_REF.h Dimension.h DispatchObject.h EnsembleIn.h EnsembleOutList.h Exec.h Exec_CrdAction.h FileIO.h FileName.h FileTypes.h Frame.h FramePtrArray.h InputTrajCommon.h MaskToken.h Matrix_3x3.h MetaData.h Molecule.h NameType.h Parallel.h ParameterHolders.h ParameterSet.h ParameterTypes.h ProgressBar.h Range.h ReferenceFrame.h ReplicaDimArray.h ReplicaInfo.h Residue.h SymbolExporting.h TextFormat.h Timer.h Topology.h TrajFrameCounter.h Trajin.h TrajinList.h TrajoutList.h TypeNameHolder.h VariableArray.h Vec3.h +Exec_CrdAction.o : Exec_CrdAction.cpp Action.h ActionList.h ActionState.h Analysis.h AnalysisList.h AnalysisState.h ArgList.h AssociatedData.h Atom.h AtomExtra.h AtomMask.h AtomType.h BaseIOtype.h Box.h Cmd.h CmdList.h Command.h Constants.h CoordinateInfo.h CpptrajFile.h CpptrajState.h CpptrajStdio.h DataFile.h DataFileList.h DataIO.h DataSet.h DataSetList.h DataSet_Coords.h DataSet_Coords_CRD.h DataSet_Coords_REF.h Dimension.h DispatchObject.h EnsembleIn.h EnsembleOutList.h Exec.h Exec_CrdAction.h FileIO.h FileName.h FileTypes.h Frame.h FramePtrArray.h InputTrajCommon.h MaskToken.h Matrix_3x3.h MetaData.h Molecule.h NameType.h Parallel.h ParameterHolders.h ParameterSet.h ParameterTypes.h ProgressBar.h Range.h ReferenceFrame.h ReplicaDimArray.h ReplicaInfo.h Residue.h SymbolExporting.h TextFormat.h Timer.h Topology.h TrajFrameCounter.h Trajin.h TrajinList.h TrajoutList.h TypeNameHolder.h Vec3.h Exec_CrdOut.o : Exec_CrdOut.cpp Action.h ActionFrameCounter.h ActionList.h ActionState.h Analysis.h AnalysisList.h AnalysisState.h ArgList.h AssociatedData.h Atom.h AtomExtra.h AtomMask.h AtomType.h BaseIOtype.h Box.h Constants.h CoordinateInfo.h CpptrajFile.h CpptrajState.h CpptrajStdio.h DataFile.h DataFileList.h DataIO.h DataSet.h DataSetList.h DataSet_Coords.h DataSet_Coords_REF.h Dimension.h DispatchObject.h EnsembleIn.h EnsembleOutList.h Exec.h Exec_CrdOut.h FileIO.h FileName.h FileTypes.h Frame.h FramePtrArray.h InputTrajCommon.h MaskToken.h Matrix_3x3.h MetaData.h Molecule.h NameType.h OutputTrajCommon.h Parallel.h ParameterHolders.h ParameterSet.h ParameterTypes.h ProgressBar.h Range.h ReferenceFrame.h ReplicaDimArray.h ReplicaInfo.h Residue.h SymbolExporting.h TextFormat.h Timer.h Topology.h TrajFrameCounter.h TrajectoryFile.h Trajin.h TrajinList.h TrajoutList.h Trajout_Single.h TypeNameHolder.h Vec3.h Exec_CreateSet.o : Exec_CreateSet.cpp Action.h ActionList.h ActionState.h Analysis.h AnalysisList.h AnalysisState.h ArgList.h AssociatedData.h Atom.h AtomExtra.h AtomMask.h AtomType.h BaseIOtype.h Box.h Constants.h CoordinateInfo.h CpptrajFile.h CpptrajState.h CpptrajStdio.h DataFile.h DataFileList.h DataIO.h DataSet.h DataSetList.h DataSet_Coords.h DataSet_Coords_REF.h Dimension.h DispatchObject.h EnsembleIn.h EnsembleOutList.h Exec.h Exec_CreateSet.h FileIO.h FileName.h FileTypes.h Frame.h FramePtrArray.h InputTrajCommon.h MaskToken.h Matrix_3x3.h MetaData.h Molecule.h NameType.h Parallel.h ParameterHolders.h ParameterSet.h ParameterTypes.h RPNcalc.h Range.h ReferenceFrame.h ReplicaDimArray.h ReplicaInfo.h Residue.h SymbolExporting.h TextFormat.h Timer.h Topology.h TrajFrameCounter.h Trajin.h TrajinList.h TrajoutList.h TypeNameHolder.h Vec3.h Exec_DataFile.o : Exec_DataFile.cpp Action.h ActionList.h ActionState.h Analysis.h AnalysisList.h AnalysisState.h ArgList.h AssociatedData.h Atom.h AtomExtra.h AtomMask.h AtomType.h BaseIOtype.h Box.h Constants.h CoordinateInfo.h CpptrajFile.h CpptrajState.h CpptrajStdio.h DataFile.h DataFileList.h DataIO.h DataSet.h DataSetList.h DataSet_Coords.h DataSet_Coords_REF.h Dimension.h DispatchObject.h EnsembleIn.h EnsembleOutList.h Exec.h Exec_DataFile.h FileIO.h FileName.h FileTypes.h Frame.h FramePtrArray.h InputTrajCommon.h MaskToken.h Matrix_3x3.h MetaData.h Molecule.h NameType.h Parallel.h ParameterHolders.h ParameterSet.h ParameterTypes.h Range.h ReferenceFrame.h ReplicaDimArray.h ReplicaInfo.h Residue.h StringRoutines.h SymbolExporting.h TextFormat.h Timer.h Topology.h TrajFrameCounter.h Trajin.h TrajinList.h TrajoutList.h TypeNameHolder.h Vec3.h Exec_DataFilter.o : Exec_DataFilter.cpp Action.h ActionList.h ActionState.h Action_FilterByData.h Analysis.h AnalysisList.h AnalysisState.h ArgList.h Array1D.h AssociatedData.h Atom.h AtomExtra.h AtomMask.h AtomType.h BaseIOtype.h Box.h Constants.h CoordinateInfo.h CpptrajFile.h CpptrajState.h CpptrajStdio.h DataFile.h DataFileList.h DataIO.h DataSet.h DataSetList.h DataSet_1D.h DataSet_Coords.h DataSet_Coords_REF.h Dimension.h DispatchObject.h EnsembleIn.h EnsembleOutList.h Exec.h Exec_DataFilter.h FileIO.h FileName.h FileTypes.h Frame.h FramePtrArray.h InputTrajCommon.h MaskToken.h Matrix_3x3.h MetaData.h Molecule.h NameType.h Parallel.h ParameterHolders.h ParameterSet.h ParameterTypes.h ProgressBar.h Range.h ReferenceFrame.h ReplicaDimArray.h ReplicaInfo.h Residue.h SymbolExporting.h TextFormat.h Timer.h Topology.h TrajFrameCounter.h Trajin.h TrajinList.h TrajoutList.h TypeNameHolder.h Vec3.h Exec_DataSetCmd.o : Exec_DataSetCmd.cpp Action.h ActionList.h ActionState.h Analysis.h AnalysisList.h AnalysisState.h ArgList.h ArrayIterator.h AssociatedData.h Atom.h AtomExtra.h AtomMask.h AtomType.h BaseIOtype.h Box.h ComplexArray.h Constants.h CoordinateInfo.h CpptrajFile.h CpptrajState.h CpptrajStdio.h DataFile.h DataFileList.h DataIO.h DataSet.h DataSetList.h DataSet_1D.h DataSet_2D.h DataSet_Coords.h DataSet_Coords_REF.h DataSet_MatrixDbl.h DataSet_Mesh.h DataSet_Vector.h DataSet_string.h Dimension.h DispatchObject.h EnsembleIn.h EnsembleOutList.h Exec.h Exec_DataSetCmd.h FileIO.h FileName.h FileTypes.h Frame.h FramePtrArray.h InputTrajCommon.h MaskToken.h Matrix.h Matrix_3x3.h MetaData.h Molecule.h NameType.h Parallel.h ParameterHolders.h ParameterSet.h ParameterTypes.h Range.h ReferenceFrame.h ReplicaDimArray.h ReplicaInfo.h Residue.h Spline.h StringRoutines.h SymbolExporting.h TextFormat.h Timer.h Topology.h TrajFrameCounter.h Trajin.h TrajinList.h TrajoutList.h TypeNameHolder.h Vec3.h Exec_GenerateAmberRst.o : Exec_GenerateAmberRst.cpp Action.h ActionList.h ActionState.h Analysis.h AnalysisList.h AnalysisState.h ArgList.h AssociatedData.h Atom.h AtomExtra.h AtomMask.h AtomType.h BaseIOtype.h Box.h Constants.h CoordinateInfo.h CpptrajFile.h CpptrajState.h CpptrajStdio.h DataFile.h DataFileList.h DataIO.h DataSet.h DataSetList.h DataSet_Coords.h DataSet_Coords_REF.h Dimension.h DispatchObject.h DistRoutines.h EnsembleIn.h EnsembleOutList.h Exec.h Exec_GenerateAmberRst.h FileIO.h FileName.h FileTypes.h Frame.h FramePtrArray.h InputTrajCommon.h MaskToken.h Matrix_3x3.h MetaData.h Molecule.h NameType.h Parallel.h ParameterHolders.h ParameterSet.h ParameterTypes.h Range.h ReferenceFrame.h ReplicaDimArray.h ReplicaInfo.h Residue.h SymbolExporting.h TextFormat.h Timer.h Topology.h TorsionRoutines.h TrajFrameCounter.h Trajin.h TrajinList.h TrajoutList.h TypeNameHolder.h Vec3.h -Exec_Help.o : Exec_Help.cpp Action.h ActionList.h ActionState.h Analysis.h AnalysisList.h AnalysisState.h ArgList.h AssociatedData.h Atom.h AtomExtra.h AtomMask.h AtomType.h BaseIOtype.h BondSearch.h Box.h Cmd.h CmdList.h Command.h Constants.h CoordinateInfo.h CpptrajFile.h CpptrajState.h CpptrajStdio.h DataFile.h DataFileList.h DataIO.h DataSet.h DataSetList.h DataSet_Coords.h DataSet_Coords_REF.h Dimension.h DispatchObject.h EnsembleIn.h EnsembleOutList.h Exec.h Exec_Help.h FileIO.h FileName.h FileTypes.h Frame.h FramePtrArray.h InputTrajCommon.h MaskToken.h Matrix_3x3.h MetaData.h Molecule.h NameType.h Parallel.h ParameterHolders.h ParameterSet.h ParameterTypes.h ParmFile.h ParmIO.h Range.h ReferenceFrame.h ReplicaDimArray.h ReplicaInfo.h Residue.h SymbolExporting.h TextFormat.h Timer.h Topology.h TrajFrameCounter.h TrajectoryFile.h Trajin.h TrajinList.h TrajoutList.h TypeNameHolder.h VariableArray.h Vec3.h +Exec_Help.o : Exec_Help.cpp Action.h ActionList.h ActionState.h Analysis.h AnalysisList.h AnalysisState.h ArgList.h AssociatedData.h Atom.h AtomExtra.h AtomMask.h AtomType.h BaseIOtype.h BondSearch.h Box.h Cmd.h CmdList.h Command.h Constants.h CoordinateInfo.h CpptrajFile.h CpptrajState.h CpptrajStdio.h DataFile.h DataFileList.h DataIO.h DataSet.h DataSetList.h DataSet_Coords.h DataSet_Coords_REF.h Dimension.h DispatchObject.h EnsembleIn.h EnsembleOutList.h Exec.h Exec_Help.h FileIO.h FileName.h FileTypes.h Frame.h FramePtrArray.h InputTrajCommon.h MaskToken.h Matrix_3x3.h MetaData.h Molecule.h NameType.h Parallel.h ParameterHolders.h ParameterSet.h ParameterTypes.h ParmFile.h ParmIO.h Range.h ReferenceFrame.h ReplicaDimArray.h ReplicaInfo.h Residue.h SymbolExporting.h TextFormat.h Timer.h Topology.h TrajFrameCounter.h TrajectoryFile.h Trajin.h TrajinList.h TrajoutList.h TypeNameHolder.h Vec3.h Exec_LoadCrd.o : Exec_LoadCrd.cpp Action.h ActionList.h ActionState.h Analysis.h AnalysisList.h AnalysisState.h ArgList.h AssociatedData.h Atom.h AtomExtra.h AtomMask.h AtomType.h BaseIOtype.h Box.h Constants.h CoordinateInfo.h CpptrajFile.h CpptrajState.h CpptrajStdio.h DataFile.h DataFileList.h DataIO.h DataSet.h DataSetList.h DataSet_Coords.h DataSet_Coords_REF.h Dimension.h DispatchObject.h EnsembleIn.h EnsembleOutList.h Exec.h Exec_LoadCrd.h FileIO.h FileName.h FileTypes.h Frame.h FramePtrArray.h InputTrajCommon.h MaskToken.h Matrix_3x3.h MetaData.h Molecule.h NameType.h Parallel.h ParameterHolders.h ParameterSet.h ParameterTypes.h Range.h ReferenceFrame.h ReplicaDimArray.h ReplicaInfo.h Residue.h SymbolExporting.h TextFormat.h Timer.h Topology.h TrajFrameCounter.h Trajin.h TrajinList.h Trajin_Single.h TrajoutList.h TypeNameHolder.h Vec3.h Exec_LoadTraj.o : Exec_LoadTraj.cpp Action.h ActionList.h ActionState.h Analysis.h AnalysisList.h AnalysisState.h ArgList.h AssociatedData.h Atom.h AtomExtra.h AtomMask.h AtomType.h BaseIOtype.h Box.h Constants.h CoordinateInfo.h CpptrajFile.h CpptrajState.h CpptrajStdio.h DataFile.h DataFileList.h DataIO.h DataSet.h DataSetList.h DataSet_Coords.h DataSet_Coords_REF.h DataSet_Coords_TRJ.h Dimension.h DispatchObject.h EnsembleIn.h EnsembleOutList.h Exec.h Exec_LoadTraj.h FileIO.h FileName.h FileTypes.h Frame.h FramePtrArray.h InputTrajCommon.h MaskToken.h Matrix_3x3.h MetaData.h Molecule.h NameType.h Parallel.h ParameterHolders.h ParameterSet.h ParameterTypes.h Range.h ReferenceFrame.h ReplicaDimArray.h ReplicaInfo.h Residue.h SymbolExporting.h TextFormat.h Timer.h Topology.h TrajFrameCounter.h TrajFrameIndex.h Trajin.h TrajinList.h TrajoutList.h TypeNameHolder.h Vec3.h Exec_ParallelAnalysis.o : Exec_ParallelAnalysis.cpp Action.h ActionList.h ActionState.h Analysis.h AnalysisList.h AnalysisState.h ArgList.h AssociatedData.h Atom.h AtomExtra.h AtomMask.h AtomType.h BaseIOtype.h Box.h Constants.h CoordinateInfo.h CpptrajFile.h CpptrajState.h CpptrajStdio.h DataFile.h DataFileList.h DataIO.h DataSet.h DataSetList.h DataSet_Coords.h DataSet_Coords_REF.h Dimension.h DispatchObject.h EnsembleIn.h EnsembleOutList.h Exec.h Exec_ParallelAnalysis.h FileIO.h FileName.h FileTypes.h Frame.h FramePtrArray.h InputTrajCommon.h MaskToken.h Matrix_3x3.h MetaData.h Molecule.h NameType.h Parallel.h ParameterHolders.h ParameterSet.h ParameterTypes.h Range.h ReferenceFrame.h ReplicaDimArray.h ReplicaInfo.h Residue.h SymbolExporting.h TextFormat.h Timer.h Topology.h TrajFrameCounter.h Trajin.h TrajinList.h TrajoutList.h TypeNameHolder.h Vec3.h @@ -267,11 +267,12 @@ Exec_Precision.o : Exec_Precision.cpp Action.h ActionList.h ActionState.h Analys Exec_PrintData.o : Exec_PrintData.cpp Action.h ActionList.h ActionState.h Analysis.h AnalysisList.h AnalysisState.h ArgList.h AssociatedData.h Atom.h AtomExtra.h AtomMask.h AtomType.h BaseIOtype.h Box.h Constants.h CoordinateInfo.h CpptrajFile.h CpptrajState.h CpptrajStdio.h DataFile.h DataFileList.h DataIO.h DataSet.h DataSetList.h DataSet_Coords.h DataSet_Coords_REF.h Dimension.h DispatchObject.h EnsembleIn.h EnsembleOutList.h Exec.h Exec_PrintData.h FileIO.h FileName.h FileTypes.h Frame.h FramePtrArray.h InputTrajCommon.h MaskToken.h Matrix_3x3.h MetaData.h Molecule.h NameType.h Parallel.h ParameterHolders.h ParameterSet.h ParameterTypes.h Range.h ReferenceFrame.h ReplicaDimArray.h ReplicaInfo.h Residue.h SymbolExporting.h TextFormat.h Timer.h Topology.h TrajFrameCounter.h Trajin.h TrajinList.h TrajoutList.h TypeNameHolder.h Vec3.h Exec_ReadData.o : Exec_ReadData.cpp Action.h ActionList.h ActionState.h Analysis.h AnalysisList.h AnalysisState.h ArgList.h AssociatedData.h Atom.h AtomExtra.h AtomMask.h AtomType.h BaseIOtype.h Box.h Constants.h CoordinateInfo.h CpptrajFile.h CpptrajState.h CpptrajStdio.h DataFile.h DataFileList.h DataIO.h DataSet.h DataSetList.h DataSet_Coords.h DataSet_Coords_REF.h Dimension.h DispatchObject.h EnsembleIn.h EnsembleOutList.h Exec.h Exec_ReadData.h FileIO.h FileName.h FileTypes.h Frame.h FramePtrArray.h InputTrajCommon.h MaskToken.h Matrix_3x3.h MetaData.h Molecule.h NameType.h Parallel.h ParameterHolders.h ParameterSet.h ParameterTypes.h Range.h ReferenceFrame.h ReplicaDimArray.h ReplicaInfo.h Residue.h SymbolExporting.h TextFormat.h Timer.h Topology.h TrajFrameCounter.h Trajin.h TrajinList.h TrajoutList.h TypeNameHolder.h Vec3.h Exec_ReadEnsembleData.o : Exec_ReadEnsembleData.cpp Action.h ActionList.h ActionState.h Analysis.h AnalysisList.h AnalysisState.h ArgList.h AssociatedData.h Atom.h AtomExtra.h AtomMask.h AtomType.h BaseIOtype.h Box.h Constants.h CoordinateInfo.h CpptrajFile.h CpptrajState.h CpptrajStdio.h DataFile.h DataFileList.h DataIO.h DataSet.h DataSetList.h DataSet_Coords.h DataSet_Coords_REF.h Dimension.h DispatchObject.h EnsembleIn.h EnsembleOutList.h Exec.h Exec_ReadEnsembleData.h FileIO.h FileName.h FileTypes.h Frame.h FramePtrArray.h InputTrajCommon.h MaskToken.h Matrix_3x3.h MetaData.h Molecule.h NameType.h Parallel.h ParameterHolders.h ParameterSet.h ParameterTypes.h Range.h ReferenceFrame.h ReplicaDimArray.h ReplicaInfo.h Residue.h SymbolExporting.h TextFormat.h Timer.h Topology.h TrajFrameCounter.h Trajin.h TrajinList.h TrajoutList.h TypeNameHolder.h Vec3.h -Exec_ReadInput.o : Exec_ReadInput.cpp Action.h ActionList.h ActionState.h Analysis.h AnalysisList.h AnalysisState.h ArgList.h AssociatedData.h Atom.h AtomExtra.h AtomMask.h AtomType.h BaseIOtype.h Box.h Cmd.h CmdList.h Command.h Constants.h CoordinateInfo.h CpptrajFile.h CpptrajState.h CpptrajStdio.h DataFile.h DataFileList.h DataIO.h DataSet.h DataSetList.h DataSet_Coords.h DataSet_Coords_REF.h Dimension.h DispatchObject.h EnsembleIn.h EnsembleOutList.h Exec.h Exec_ReadInput.h FileIO.h FileName.h FileTypes.h Frame.h FramePtrArray.h InputTrajCommon.h MaskToken.h Matrix_3x3.h MetaData.h Molecule.h NameType.h Parallel.h ParameterHolders.h ParameterSet.h ParameterTypes.h Range.h ReferenceFrame.h ReplicaDimArray.h ReplicaInfo.h Residue.h SymbolExporting.h TextFormat.h Timer.h Topology.h TrajFrameCounter.h Trajin.h TrajinList.h TrajoutList.h TypeNameHolder.h VariableArray.h Vec3.h +Exec_ReadInput.o : Exec_ReadInput.cpp Action.h ActionList.h ActionState.h Analysis.h AnalysisList.h AnalysisState.h ArgList.h AssociatedData.h Atom.h AtomExtra.h AtomMask.h AtomType.h BaseIOtype.h Box.h Cmd.h CmdList.h Command.h Constants.h CoordinateInfo.h CpptrajFile.h CpptrajState.h CpptrajStdio.h DataFile.h DataFileList.h DataIO.h DataSet.h DataSetList.h DataSet_Coords.h DataSet_Coords_REF.h Dimension.h DispatchObject.h EnsembleIn.h EnsembleOutList.h Exec.h Exec_ReadInput.h FileIO.h FileName.h FileTypes.h Frame.h FramePtrArray.h InputTrajCommon.h MaskToken.h Matrix_3x3.h MetaData.h Molecule.h NameType.h Parallel.h ParameterHolders.h ParameterSet.h ParameterTypes.h Range.h ReferenceFrame.h ReplicaDimArray.h ReplicaInfo.h Residue.h SymbolExporting.h TextFormat.h Timer.h Topology.h TrajFrameCounter.h Trajin.h TrajinList.h TrajoutList.h TypeNameHolder.h Vec3.h Exec_RotateDihedral.o : Exec_RotateDihedral.cpp Action.h ActionList.h ActionState.h Analysis.h AnalysisList.h AnalysisState.h ArgList.h AssociatedData.h Atom.h AtomExtra.h AtomMask.h AtomType.h BaseIOtype.h Box.h Constants.h CoordinateInfo.h CpptrajFile.h CpptrajState.h CpptrajStdio.h DataFile.h DataFileList.h DataIO.h DataSet.h DataSetList.h DataSet_Coords.h DataSet_Coords_REF.h DihedralSearch.h Dimension.h DispatchObject.h EnsembleIn.h EnsembleOutList.h Exec.h Exec_RotateDihedral.h FileIO.h FileName.h FileTypes.h Frame.h FramePtrArray.h InputTrajCommon.h MaskToken.h Matrix_3x3.h MetaData.h Molecule.h NameType.h Parallel.h ParameterHolders.h ParameterSet.h ParameterTypes.h Range.h ReferenceFrame.h ReplicaDimArray.h ReplicaInfo.h Residue.h SymbolExporting.h TextFormat.h Timer.h Topology.h TorsionRoutines.h TrajFrameCounter.h Trajin.h TrajinList.h TrajoutList.h TypeNameHolder.h Vec3.h -Exec_RunAnalysis.o : Exec_RunAnalysis.cpp Action.h ActionList.h ActionState.h Analysis.h AnalysisList.h AnalysisState.h ArgList.h AssociatedData.h Atom.h AtomExtra.h AtomMask.h AtomType.h BaseIOtype.h Box.h Cmd.h CmdList.h Command.h Constants.h CoordinateInfo.h CpptrajFile.h CpptrajState.h CpptrajStdio.h DataFile.h DataFileList.h DataIO.h DataSet.h DataSetList.h DataSet_Coords.h DataSet_Coords_REF.h Dimension.h DispatchObject.h EnsembleIn.h EnsembleOutList.h Exec.h Exec_RunAnalysis.h FileIO.h FileName.h FileTypes.h Frame.h FramePtrArray.h InputTrajCommon.h MaskToken.h Matrix_3x3.h MetaData.h Molecule.h NameType.h Parallel.h ParameterHolders.h ParameterSet.h ParameterTypes.h Range.h ReferenceFrame.h ReplicaDimArray.h ReplicaInfo.h Residue.h SymbolExporting.h TextFormat.h Timer.h Topology.h TrajFrameCounter.h Trajin.h TrajinList.h TrajoutList.h TypeNameHolder.h VariableArray.h Vec3.h +Exec_RunAnalysis.o : Exec_RunAnalysis.cpp Action.h ActionList.h ActionState.h Analysis.h AnalysisList.h AnalysisState.h ArgList.h AssociatedData.h Atom.h AtomExtra.h AtomMask.h AtomType.h BaseIOtype.h Box.h Cmd.h CmdList.h Command.h Constants.h CoordinateInfo.h CpptrajFile.h CpptrajState.h CpptrajStdio.h DataFile.h DataFileList.h DataIO.h DataSet.h DataSetList.h DataSet_Coords.h DataSet_Coords_REF.h Dimension.h DispatchObject.h EnsembleIn.h EnsembleOutList.h Exec.h Exec_RunAnalysis.h FileIO.h FileName.h FileTypes.h Frame.h FramePtrArray.h InputTrajCommon.h MaskToken.h Matrix_3x3.h MetaData.h Molecule.h NameType.h Parallel.h ParameterHolders.h ParameterSet.h ParameterTypes.h Range.h ReferenceFrame.h ReplicaDimArray.h ReplicaInfo.h Residue.h SymbolExporting.h TextFormat.h Timer.h Topology.h TrajFrameCounter.h Trajin.h TrajinList.h TrajoutList.h TypeNameHolder.h Vec3.h Exec_ScaleDihedralK.o : Exec_ScaleDihedralK.cpp Action.h ActionList.h ActionState.h Analysis.h AnalysisList.h AnalysisState.h ArgList.h AssociatedData.h Atom.h AtomExtra.h AtomMask.h AtomType.h BaseIOtype.h Box.h Constants.h CoordinateInfo.h CpptrajFile.h CpptrajState.h CpptrajStdio.h DataFile.h DataFileList.h DataIO.h DataSet.h DataSetList.h DataSet_Coords.h DataSet_Coords_REF.h Dimension.h DispatchObject.h EnsembleIn.h EnsembleOutList.h Exec.h Exec_ScaleDihedralK.h FileIO.h FileName.h FileTypes.h Frame.h FramePtrArray.h InputTrajCommon.h MaskToken.h Matrix_3x3.h MetaData.h Molecule.h NameType.h Parallel.h ParameterHolders.h ParameterSet.h ParameterTypes.h Range.h ReferenceFrame.h ReplicaDimArray.h ReplicaInfo.h Residue.h SymbolExporting.h TextFormat.h Timer.h Topology.h TrajFrameCounter.h Trajin.h TrajinList.h TrajoutList.h TypeNameHolder.h Vec3.h Exec_SequenceAlign.o : Exec_SequenceAlign.cpp Action.h ActionFrameCounter.h ActionList.h ActionState.h Analysis.h AnalysisList.h AnalysisState.h ArgList.h AssociatedData.h Atom.h AtomExtra.h AtomMask.h AtomType.h BaseIOtype.h Box.h BufferedLine.h Constants.h CoordinateInfo.h CpptrajFile.h CpptrajState.h CpptrajStdio.h DataFile.h DataFileList.h DataIO.h DataSet.h DataSetList.h DataSet_Coords.h DataSet_Coords_REF.h Dimension.h DispatchObject.h EnsembleIn.h EnsembleOutList.h Exec.h Exec_SequenceAlign.h FileIO.h FileName.h FileTypes.h Frame.h FramePtrArray.h InputTrajCommon.h MaskToken.h Matrix_3x3.h MetaData.h Molecule.h NameType.h OutputTrajCommon.h Parallel.h ParameterHolders.h ParameterSet.h ParameterTypes.h Range.h ReferenceFrame.h ReplicaDimArray.h ReplicaInfo.h Residue.h StringRoutines.h SymbolExporting.h TextFormat.h Timer.h Topology.h TrajFrameCounter.h TrajectoryFile.h Trajin.h TrajinList.h TrajoutList.h Trajout_Single.h TypeNameHolder.h Vec3.h +Exec_Set.o : Exec_Set.cpp Action.h ActionList.h ActionState.h Analysis.h AnalysisList.h AnalysisState.h ArgList.h AssociatedData.h Atom.h AtomExtra.h AtomMask.h AtomType.h BaseIOtype.h Box.h Constants.h CoordinateInfo.h CpptrajFile.h CpptrajState.h CpptrajStdio.h DataFile.h DataFileList.h DataIO.h DataSet.h DataSetList.h DataSet_Coords.h DataSet_Coords_REF.h DataSet_StringVar.h Dimension.h DispatchObject.h EnsembleIn.h EnsembleOutList.h Exec.h Exec_Set.h FileIO.h FileName.h FileTypes.h Frame.h FramePtrArray.h InputTrajCommon.h MaskToken.h Matrix_3x3.h MetaData.h Molecule.h NameType.h Parallel.h ParameterHolders.h ParameterSet.h ParameterTypes.h Range.h ReferenceFrame.h ReplicaDimArray.h ReplicaInfo.h Residue.h StringRoutines.h SymbolExporting.h TextFormat.h Timer.h Topology.h TrajFrameCounter.h Trajin.h TrajinList.h TrajoutList.h TypeNameHolder.h Vec3.h Exec_SortEnsembleData.o : Exec_SortEnsembleData.cpp Action.h ActionList.h ActionState.h Analysis.h AnalysisList.h AnalysisState.h ArgList.h AssociatedData.h Atom.h AtomExtra.h AtomMask.h AtomType.h BaseIOtype.h Box.h Constants.h CoordinateInfo.h Cph.h CpptrajFile.h CpptrajState.h CpptrajStdio.h DataFile.h DataFileList.h DataIO.h DataSet.h DataSetList.h DataSet_1D.h DataSet_Coords.h DataSet_Coords_REF.h DataSet_PHREMD.h DataSet_PHREMD_Explicit.h DataSet_PHREMD_Implicit.h DataSet_pH.h Dimension.h DispatchObject.h EnsembleIn.h EnsembleOutList.h Exec.h Exec_SortEnsembleData.h FileIO.h FileName.h FileTypes.h Frame.h FramePtrArray.h InputTrajCommon.h MaskToken.h Matrix_3x3.h MetaData.h Molecule.h NameType.h Parallel.h ParameterHolders.h ParameterSet.h ParameterTypes.h Range.h ReferenceFrame.h ReplicaDimArray.h ReplicaInfo.h Residue.h StringRoutines.h SymbolExporting.h TextFormat.h Timer.h Topology.h TrajFrameCounter.h Trajin.h TrajinList.h TrajoutList.h TypeNameHolder.h Vec3.h Exec_SplitCoords.o : Exec_SplitCoords.cpp Action.h ActionList.h ActionState.h Analysis.h AnalysisList.h AnalysisState.h ArgList.h AssociatedData.h Atom.h AtomExtra.h AtomMask.h AtomType.h BaseIOtype.h Box.h Constants.h CoordinateInfo.h CpptrajFile.h CpptrajState.h CpptrajStdio.h DataFile.h DataFileList.h DataIO.h DataSet.h DataSetList.h DataSet_Coords.h DataSet_Coords_CRD.h DataSet_Coords_REF.h Dimension.h DispatchObject.h EnsembleIn.h EnsembleOutList.h Exec.h Exec_SplitCoords.h FileIO.h FileName.h FileTypes.h Frame.h FramePtrArray.h InputTrajCommon.h MaskToken.h Matrix_3x3.h MetaData.h Molecule.h NameType.h Parallel.h ParameterHolders.h ParameterSet.h ParameterTypes.h ProgressBar.h Range.h ReferenceFrame.h ReplicaDimArray.h ReplicaInfo.h Residue.h SymbolExporting.h TextFormat.h Timer.h Topology.h TrajFrameCounter.h Trajin.h TrajinList.h TrajoutList.h TypeNameHolder.h Vec3.h Exec_System.o : Exec_System.cpp Action.h ActionList.h ActionState.h Analysis.h AnalysisList.h AnalysisState.h ArgList.h AssociatedData.h Atom.h AtomExtra.h AtomMask.h AtomType.h BaseIOtype.h Box.h Constants.h CoordinateInfo.h CpptrajFile.h CpptrajState.h CpptrajStdio.h DataFile.h DataFileList.h DataIO.h DataSet.h DataSetList.h DataSet_Coords.h DataSet_Coords_REF.h Dimension.h DispatchObject.h EnsembleIn.h EnsembleOutList.h Exec.h Exec_System.h FileIO.h FileName.h FileTypes.h Frame.h FramePtrArray.h InputTrajCommon.h MaskToken.h Matrix_3x3.h MetaData.h Molecule.h NameType.h Parallel.h ParameterHolders.h ParameterSet.h ParameterTypes.h Range.h ReferenceFrame.h ReplicaDimArray.h ReplicaInfo.h Residue.h SymbolExporting.h TextFormat.h Timer.h Topology.h TrajFrameCounter.h Trajin.h TrajinList.h TrajoutList.h TypeNameHolder.h Vec3.h @@ -329,7 +330,7 @@ PubFFT.o : PubFFT.cpp ArrayIterator.h ComplexArray.h CpptrajStdio.h PubFFT.h RPNcalc.o : RPNcalc.cpp ArgList.h ArrayIterator.h AssociatedData.h Atom.h AtomExtra.h AtomMask.h AtomType.h Box.h ComplexArray.h Constants.h CoordinateInfo.h CpptrajFile.h CpptrajStdio.h DataSet.h DataSetList.h DataSet_1D.h DataSet_2D.h DataSet_3D.h DataSet_Coords.h DataSet_Coords_REF.h DataSet_GridFlt.h DataSet_MatrixDbl.h DataSet_Vector.h DataSet_double.h Dimension.h FileIO.h FileName.h Frame.h Grid.h GridBin.h MaskToken.h Matrix.h Matrix_3x3.h MetaData.h Molecule.h NameType.h Parallel.h ParameterHolders.h ParameterSet.h ParameterTypes.h RPNcalc.h Range.h ReferenceFrame.h ReplicaDimArray.h Residue.h SymbolExporting.h TextFormat.h Timer.h Topology.h TypeNameHolder.h Vec3.h Random.o : Random.cpp CpptrajStdio.h Random.h Range.o : Range.cpp ArgList.h CpptrajStdio.h Range.h -ReadLine.o : ReadLine.cpp Action.h ActionList.h ActionState.h Analysis.h AnalysisList.h AnalysisState.h ArgList.h AssociatedData.h Atom.h AtomExtra.h AtomMask.h AtomType.h BaseIOtype.h Box.h Cmd.h CmdInput.h CmdList.h Command.h Constants.h CoordinateInfo.h CpptrajFile.h CpptrajState.h CpptrajStdio.h DataFile.h DataFileList.h DataIO.h DataSet.h DataSetList.h DataSet_Coords.h DataSet_Coords_REF.h Dimension.h DispatchObject.h EnsembleIn.h EnsembleOutList.h FileIO.h FileName.h FileTypes.h Frame.h FramePtrArray.h InputTrajCommon.h MaskToken.h Matrix_3x3.h MetaData.h Molecule.h NameType.h Parallel.h ParameterHolders.h ParameterSet.h ParameterTypes.h Range.h ReadLine.h ReferenceFrame.h ReplicaDimArray.h ReplicaInfo.h Residue.h SymbolExporting.h TextFormat.h Timer.h Topology.h TrajFrameCounter.h Trajin.h TrajinList.h TrajoutList.h TypeNameHolder.h VariableArray.h Vec3.h +ReadLine.o : ReadLine.cpp Action.h ActionList.h ActionState.h Analysis.h AnalysisList.h AnalysisState.h ArgList.h AssociatedData.h Atom.h AtomExtra.h AtomMask.h AtomType.h BaseIOtype.h Box.h Cmd.h CmdInput.h CmdList.h Command.h Constants.h CoordinateInfo.h CpptrajFile.h CpptrajState.h CpptrajStdio.h DataFile.h DataFileList.h DataIO.h DataSet.h DataSetList.h DataSet_Coords.h DataSet_Coords_REF.h Dimension.h DispatchObject.h EnsembleIn.h EnsembleOutList.h FileIO.h FileName.h FileTypes.h Frame.h FramePtrArray.h InputTrajCommon.h MaskToken.h Matrix_3x3.h MetaData.h Molecule.h NameType.h Parallel.h ParameterHolders.h ParameterSet.h ParameterTypes.h Range.h ReadLine.h ReferenceFrame.h ReplicaDimArray.h ReplicaInfo.h Residue.h SymbolExporting.h TextFormat.h Timer.h Topology.h TrajFrameCounter.h Trajin.h TrajinList.h TrajoutList.h TypeNameHolder.h Vec3.h ReferenceAction.o : ReferenceAction.cpp ArgList.h AssociatedData.h Atom.h AtomExtra.h AtomMask.h AtomType.h Box.h Constants.h CoordinateInfo.h CpptrajFile.h CpptrajStdio.h DataSet.h DataSetList.h DataSet_Coords.h DataSet_Coords_REF.h DataSet_Coords_TRJ.h Dimension.h FileIO.h FileName.h Frame.h InputTrajCommon.h MaskToken.h Matrix_3x3.h MetaData.h Molecule.h NameType.h Parallel.h ParameterHolders.h ParameterSet.h ParameterTypes.h Range.h ReferenceAction.h ReferenceFrame.h ReplicaDimArray.h Residue.h SymbolExporting.h TextFormat.h Timer.h Topology.h TrajFrameCounter.h TrajFrameIndex.h Trajin.h TypeNameHolder.h Vec3.h RemdReservoirNC.o : RemdReservoirNC.cpp Atom.h AtomMask.h Box.h CoordinateInfo.h CpptrajStdio.h FileName.h Frame.h MaskToken.h Matrix_3x3.h Molecule.h NC_Routines.h NameType.h NetcdfFile.h Parallel.h RemdReservoirNC.h ReplicaDimArray.h Residue.h SymbolExporting.h Vec3.h Residue.o : Residue.cpp NameType.h Residue.h @@ -378,7 +379,6 @@ Trajin_Multi.o : Trajin_Multi.cpp ArgList.h Atom.h AtomExtra.h AtomMask.h AtomTy Trajin_Single.o : Trajin_Single.cpp ArgList.h Atom.h AtomExtra.h AtomMask.h AtomType.h BaseIOtype.h Box.h Constants.h CoordinateInfo.h CpptrajStdio.h FileName.h FileTypes.h Frame.h FramePtrArray.h InputTrajCommon.h MaskToken.h Matrix_3x3.h Molecule.h NameType.h Parallel.h ParameterHolders.h ParameterSet.h ParameterTypes.h Range.h ReplicaDimArray.h Residue.h SymbolExporting.h Topology.h TrajFrameCounter.h TrajectoryFile.h TrajectoryIO.h Trajin.h Trajin_Single.h TypeNameHolder.h Vec3.h TrajoutList.o : TrajoutList.cpp ActionFrameCounter.h ArgList.h AssociatedData.h Atom.h AtomExtra.h AtomMask.h AtomType.h BaseIOtype.h Box.h Constants.h CoordinateInfo.h CpptrajFile.h CpptrajStdio.h DataSet.h DataSetList.h DataSet_Coords.h DataSet_Coords_REF.h Dimension.h FileIO.h FileName.h FileTypes.h Frame.h MaskToken.h Matrix_3x3.h MetaData.h Molecule.h NameType.h OutputTrajCommon.h Parallel.h ParameterHolders.h ParameterSet.h ParameterTypes.h Range.h ReferenceFrame.h ReplicaDimArray.h Residue.h SymbolExporting.h TextFormat.h Timer.h Topology.h TrajectoryFile.h TrajoutList.h Trajout_Single.h TypeNameHolder.h Vec3.h Trajout_Single.o : Trajout_Single.cpp ActionFrameCounter.h ArgList.h Atom.h AtomExtra.h AtomMask.h AtomType.h BaseIOtype.h Box.h Constants.h CoordinateInfo.h CpptrajStdio.h FileName.h FileTypes.h Frame.h FramePtrArray.h MaskToken.h Matrix_3x3.h Molecule.h NameType.h OutputTrajCommon.h Parallel.h ParameterHolders.h ParameterSet.h ParameterTypes.h Range.h ReplicaDimArray.h Residue.h StringRoutines.h SymbolExporting.h Topology.h TrajectoryFile.h TrajectoryIO.h Trajout_Single.h TypeNameHolder.h Vec3.h -VariableArray.o : VariableArray.cpp ArgList.h AssociatedData.h Atom.h AtomExtra.h AtomMask.h AtomType.h Box.h Constants.h CoordinateInfo.h CpptrajFile.h CpptrajStdio.h DataSet.h DataSetList.h DataSet_1D.h DataSet_Coords.h DataSet_Coords_REF.h DataSet_string.h Dimension.h FileIO.h FileName.h Frame.h MaskToken.h Matrix_3x3.h MetaData.h Molecule.h NameType.h Parallel.h ParameterHolders.h ParameterSet.h ParameterTypes.h Range.h ReferenceFrame.h ReplicaDimArray.h Residue.h StringRoutines.h SymbolExporting.h TextFormat.h Timer.h Topology.h TypeNameHolder.h VariableArray.h Vec3.h Vec3.o : Vec3.cpp Constants.h CpptrajStdio.h Vec3.h ViewRst.o : ViewRst.cpp ActionFrameCounter.h ArgList.h AssociatedData.h Atom.h AtomExtra.h AtomMask.h AtomType.h BaseIOtype.h BondSearch.h Box.h Constants.h CoordinateInfo.h CpptrajFile.h CpptrajStdio.h DataSet.h DataSetList.h DataSet_Coords.h DataSet_Coords_REF.h Dimension.h FileIO.h FileName.h FileTypes.h Frame.h MaskToken.h Matrix_3x3.h MetaData.h Molecule.h NameType.h OutputTrajCommon.h Parallel.h ParameterHolders.h ParameterSet.h ParameterTypes.h ParmFile.h ParmIO.h Range.h ReferenceFrame.h ReplicaDimArray.h Residue.h SymbolExporting.h TextFormat.h Timer.h Topology.h TrajectoryFile.h Trajout_Single.h TypeNameHolder.h Vec3.h ViewRst.h main.o : main.cpp Action.h ActionList.h ActionState.h Analysis.h AnalysisList.h AnalysisState.h ArgList.h AssociatedData.h Atom.h AtomExtra.h AtomMask.h AtomType.h BaseIOtype.h Box.h Constants.h CoordinateInfo.h Cpptraj.h CpptrajFile.h CpptrajState.h DataFile.h DataFileList.h DataIO.h DataSet.h DataSetList.h DataSet_Coords.h DataSet_Coords_REF.h Dimension.h DispatchObject.h EnsembleIn.h EnsembleOutList.h FileIO.h FileName.h FileTypes.h Frame.h FramePtrArray.h InputTrajCommon.h MaskToken.h Matrix_3x3.h MetaData.h Molecule.h NameType.h Parallel.h ParameterHolders.h ParameterSet.h ParameterTypes.h Range.h ReferenceFrame.h ReplicaDimArray.h ReplicaInfo.h Residue.h SymbolExporting.h TextFormat.h Timer.h Topology.h TrajFrameCounter.h Trajin.h TrajinList.h TrajoutList.h TypeNameHolder.h Vec3.h diff --git a/src/cpptrajfiles b/src/cpptrajfiles index 5f843f61ff..23bb8fb9ab 100644 --- a/src/cpptrajfiles +++ b/src/cpptrajfiles @@ -162,7 +162,6 @@ COMMON_SOURCES= \ CmdList.cpp \ ComplexArray.cpp \ Constraints.cpp \ - Control.cpp \ ControlBlock_For.cpp \ CoordinateInfo.cpp \ Corr.cpp \ @@ -223,6 +222,7 @@ COMMON_SOURCES= \ DataSet_integer_disk.cpp \ DataSet_integer_mem.cpp \ DataSet_string.cpp \ + DataSet_StringVar.cpp \ DataSet_Tensor.cpp \ Deprecated.cpp \ DihedralSearch.cpp \ @@ -271,6 +271,7 @@ COMMON_SOURCES= \ Exec_RotateDihedral.cpp \ Exec_RunAnalysis.cpp \ Exec_ScaleDihedralK.cpp \ + Exec_Set.cpp \ Exec_SequenceAlign.cpp \ Exec_SortEnsembleData.cpp \ Exec_SplitCoords.cpp \ @@ -376,7 +377,6 @@ COMMON_SOURCES= \ TrajIOarray.cpp \ Trajout_Single.cpp \ TrajoutList.cpp \ - VariableArray.cpp \ Vec3.cpp \ ViewRst.cpp From a7a752cd7916ae45cdd66e368989be911ce8b28a Mon Sep 17 00:00:00 2001 From: "Daniel R. Roe" Date: Thu, 19 Dec 2019 19:41:53 -0500 Subject: [PATCH 028/162] DRR - More work replacing VariableArray with DataSetList. Add some functions to DataSetList --- src/ControlBlock.h | 6 +-- src/ControlBlock_For.cpp | 10 ++--- src/ControlBlock_For.h | 4 +- src/DataSetList.cpp | 81 ++++++++++++++++++++++++++++++++++++++++ src/DataSetList.h | 5 +++ src/ForLoop.h | 6 +-- src/ForLoop_integer.cpp | 8 ++-- src/ForLoop_integer.h | 4 +- 8 files changed, 105 insertions(+), 19 deletions(-) diff --git a/src/ControlBlock.h b/src/ControlBlock.h index 1bfed3cc0c..abce639dc8 100644 --- a/src/ControlBlock.h +++ b/src/ControlBlock.h @@ -4,7 +4,7 @@ #include #include "DispatchObject.h" class CpptrajState; -class VariableArray; +class DataSetList; class ArgList; /// Abstract base class for control block structures. class ControlBlock : public DispatchObject { @@ -29,9 +29,9 @@ class ControlBlock : public DispatchObject { /// \return iterator to last command in the block. virtual const_iterator end() const = 0; /// Start control block. Init internal variables if necessary. - virtual int Start(VariableArray const&) = 0; + virtual int Start(DataSetList const&) = 0; /// Add/update variables and increment, check block state. - virtual DoneType CheckDone(VariableArray&) = 0; + virtual DoneType CheckDone(DataSetList&) = 0; protected: std::string description_; ///< Describe control TODO private? }; diff --git a/src/ControlBlock_For.cpp b/src/ControlBlock_For.cpp index dcbc9ce3ab..9aa1c296b4 100644 --- a/src/ControlBlock_For.cpp +++ b/src/ControlBlock_For.cpp @@ -95,11 +95,11 @@ bool ControlBlock_For::EndBlock(ArgList const& a) const { /** Set all loops to their initial values and determine # iterations * \return 0 if all loops were set up, 1 if an error occurred. */ -int ControlBlock_For::Start(VariableArray const& CurrentVars) { +int ControlBlock_For::Start(DataSetList const& DSL) { int MaxIterations = -1; for (Marray::iterator MH = Vars_.begin(); MH != Vars_.end(); ++MH) { - int Niterations = ((*MH)->BeginFor(CurrentVars)); + int Niterations = ((*MH)->BeginFor(DSL)); if (Niterations == ForLoop::LOOP_ERROR) return 1; // Check number of values if (Niterations != ForLoop::NITERATIONS_UNKNOWN) @@ -127,11 +127,11 @@ int ControlBlock_For::Start(VariableArray const& CurrentVars) { return 0; } -/** For each mask check if done, then update CurrentVars, then increment. */ -ControlBlock::DoneType ControlBlock_For::CheckDone(VariableArray& CurrentVars) { +/** For each mask check if done, then update variables, then increment. */ // TODO const DSL? +ControlBlock::DoneType ControlBlock_For::CheckDone(DataSetList& DSL) { for (Marray::iterator MH = Vars_.begin(); MH != Vars_.end(); ++MH) { // Exit as soon as one is done TODO check all? - if ( (*MH)->EndFor(CurrentVars) ) return DONE; + if ( (*MH)->EndFor(DSL) ) return DONE; } return NOT_DONE; diff --git a/src/ControlBlock_For.h b/src/ControlBlock_For.h index 339866031f..1b9943d6f9 100644 --- a/src/ControlBlock_For.h +++ b/src/ControlBlock_For.h @@ -15,8 +15,8 @@ class ControlBlock_For : public ControlBlock { void AddCommand(ArgList const& c) { commands_.push_back(c); } const_iterator begin() const { return commands_.begin(); } const_iterator end() const { return commands_.end(); } - int Start(VariableArray const&); - DoneType CheckDone(VariableArray&); + int Start(DataSetList const&); + DoneType CheckDone(DataSetList&); private: typedef std::vector Marray; Marray Vars_; ///< Hold all for loops for this block diff --git a/src/DataSetList.cpp b/src/DataSetList.cpp index b1a225ceef..048658d4fd 100644 --- a/src/DataSetList.cpp +++ b/src/DataSetList.cpp @@ -31,6 +31,7 @@ #include "DataSet_PHREMD_Implicit.h" #include "DataSet_Parameters.h" #include "DataSet_Tensor.h" +#include "DataSet_StringVar.h" bool DataSetList::useDiskCache_ = false; @@ -78,6 +79,7 @@ DataSet* DataSetList::NewSet(DataSet::DataType typeIn) { case DataSet::PH_IMPL : ds = DataSet_PHREMD_Implicit::Alloc(); break; case DataSet::PARAMETERS : ds = DataSet_Parameters::Alloc(); break; case DataSet::TENSOR : ds = DataSet_Tensor::Alloc(); break; + case DataSet::STRINGVAR : ds = DataSet_StringVar::Alloc(); break; // Sanity check default: mprinterr("Internal Error: No allocator for DataSet type '%s'\n", @@ -782,6 +784,85 @@ int DataSetList::SynchronizeData(Parallel::Comm const& commIn) { return 0; } #endif +// ----------------------------------------------------------------------------- +inline bool ValidVariableSet(DataSet* ds) { + return (ds->Type() == DataSet::STRINGVAR || + ds->Type() == DataSet::STRING || + ds->Group() == DataSet::SCALAR_1D); +} + +std::string DataSetList::GetVariable(std::string const& varnameIn) const { + DataSet* ds = GetDataSet( varnameIn ); + if (ds == 0) return std::string(); + std::string val; + if (ds->Size() > 0) { + if (ds->Type() == DataSet::STRINGVAR) { + val = ((DataSet_StringVar*)ds)->Value(); + } else if (ds->Type() == DataSet::STRING) { + val = (*((DataSet_string*)ds))[0]; + } else { + val = doubleToString( ((DataSet_1D*)ds)->Dval(0) ); + } + } + + return val; +} + +std::string DataSetList::ReplaceVariables(std::string const& varnameIn) const { + std::string varname = varnameIn; + size_t pos = varname.find("$"); + while (pos != std::string::npos) { + // Argument is/contains a variable. Find first non-alphanumeric char + size_t len = 1; + for (size_t pos1 = pos+1; pos1 < varname.size(); pos1++, len++) + if (!isalnum(varname[pos1])) break; + std::string var_in_arg = varname.substr(pos, len); //TODO needed? + // Not found in CurrentVars_; see if this is a DataSet. + for (size_t pos1 = pos+len; pos1 < varname.size(); pos1++, len++) + if (!isalnum(varname[pos1]) && + varname[pos1] != '[' && + varname[pos1] != ':' && + varname[pos1] != ']' && + varname[pos1] != '_' && + varname[pos1] != '-' && + varname[pos1] != '%') + break; + var_in_arg = varname.substr(pos+1, len-1); + DataSet* ds = GetDataSet( var_in_arg ); + if (ds == 0) { + mprinterr("Error: Unrecognized variable in command: %s\n", var_in_arg.c_str()); + return std::string(); + } else { + if (ds->Type() != DataSet::STRINGVAR && + ds->Type() != DataSet::STRING && + ds->Group() != DataSet::SCALAR_1D) + { + mprinterr("Error: Only strings and 1D data sets supported for variable replacement.\n"); + return std::string(); + } + if (ds->Size() < 1) { + mprinterr("Error: Set is empty.\n"); + return std::string(); + } + if (ds->Size() > 1) + mprintf("Warning: Only using first value.\n"); + std::string value; + if (ds->Type() == DataSet::STRINGVAR) + value = (*((DataSet_StringVar*)ds)).Value(); + else if (ds->Type() == DataSet::STRING) + value = (*((DataSet_string*)ds))[0]; + else + value = doubleToString(((DataSet_1D*)ds)->Dval(0)); + if (debug_ > 0) + mprintf("DEBUG: Replaced variable '$%s' with value '%s' from DataSet '%s'\n", + var_in_arg.c_str(), value.c_str(), ds->legend()); + varname.replace(pos, var_in_arg.size()+1, value); + } + pos = varname.find("$"); + } // END loop over this argument + return varname; +} + // ----------------------------------------------------------------------------- const char* DataSetList::RefArgs = "reference | ref | refindex <#>"; diff --git a/src/DataSetList.h b/src/DataSetList.h index b1189bef19..4d97754de9 100644 --- a/src/DataSetList.h +++ b/src/DataSetList.h @@ -123,6 +123,11 @@ class DataSetList { int SynchronizeData(Parallel::Comm const&); # endif + /// \return Value corresponding to given data set as a string + std::string GetVariable(std::string const&) const; + /// \return String with all variables replaced with their values. + std::string ReplaceVariables(std::string const&) const; + // REF_COORDS functions ---------------------- /// reference arg help text static const char* RefArgs; diff --git a/src/ForLoop.h b/src/ForLoop.h index 847d7783bc..1a198b54ac 100644 --- a/src/ForLoop.h +++ b/src/ForLoop.h @@ -3,7 +3,7 @@ #include class CpptrajState; class ArgList; -class VariableArray; +class DataSetList; /// Abstract base class for all for loops class ForLoop { public: @@ -14,9 +14,9 @@ class ForLoop { virtual int SetupFor(CpptrajState&, std::string const&, ArgList&) = 0; /// Start the loop /** \return Number of iterations in loop, or NITERATIONS_UNKNOWN. */ - virtual int BeginFor(VariableArray const&) = 0; + virtual int BeginFor(DataSetList const&) = 0; /// \return True if loop is done, otherwise increment the loop - virtual bool EndFor(VariableArray&) = 0; + virtual bool EndFor(DataSetList const&) = 0; /// Return value when number of iterations is not known static const int NITERATIONS_UNKNOWN = -1; /// Return value when an error has occurred diff --git a/src/ForLoop_integer.cpp b/src/ForLoop_integer.cpp index 4ace5c3509..4dc860c8ec 100644 --- a/src/ForLoop_integer.cpp +++ b/src/ForLoop_integer.cpp @@ -2,7 +2,7 @@ #include "CpptrajStdio.h" #include "ArgList.h" #include "StringRoutines.h" -#include "VariableArray.h" +#include "DataSetList.h" const char* ForLoop_integer::OpStr_[] = {"+=", "-=", "<", ">"}; @@ -174,9 +174,9 @@ int ForLoop_integer::calcNumIterations() const { } /** Set start value and determine number of iterations. */ -int ForLoop_integer::BeginFor(VariableArray const& CurrentVars) { +int ForLoop_integer::BeginFor(DataSetList const& DSL) { if (!startVarName_.empty()) { - std::string sval = CurrentVars.GetVariable( startVarName_ ); + std::string sval = DSL.GetVariable( startVarName_ ); if (sval.empty()) { mprinterr("Error: Start variable '%s' does not exist.\n", startVarName_.c_str()); return LOOP_ERROR; @@ -191,7 +191,7 @@ int ForLoop_integer::BeginFor(VariableArray const& CurrentVars) { currentVal_ = start_; // Determine end arg if necessary if (endArgPresent_ && !endVarName_.empty()) { - std::string eval = CurrentVars.GetVariable( endVarName_ ); + std::string eval = DSL.GetVariable( endVarName_ ); if (eval.empty()) { mprinterr("Error: End variable '%s' does not exist.\n", endVarName_.c_str()); return LOOP_ERROR; diff --git a/src/ForLoop_integer.h b/src/ForLoop_integer.h index 6b0a41ae11..d056885973 100644 --- a/src/ForLoop_integer.h +++ b/src/ForLoop_integer.h @@ -7,8 +7,8 @@ class ForLoop_integer : public ForLoop { ForLoop_integer(); int SetupFor(CpptrajState&, std::string const&, ArgList&); - int BeginFor(VariableArray const&); - bool EndFor(VariableArray&); + int BeginFor(DataSetList const&); + bool EndFor(DataSetList const&); enum OpType { INCREMENT=0, DECREMENT, LESS_THAN, GREATER_THAN, NO_OP }; private: From c8f2e71bad2331e7f5c5a2adba0e94b4fc0ae706 Mon Sep 17 00:00:00 2001 From: "Daniel R. Roe" Date: Fri, 20 Dec 2019 09:06:59 -0500 Subject: [PATCH 029/162] DRR - Add another check --- src/DataSetList.cpp | 15 +++++++++------ 1 file changed, 9 insertions(+), 6 deletions(-) diff --git a/src/DataSetList.cpp b/src/DataSetList.cpp index 048658d4fd..c786b0a879 100644 --- a/src/DataSetList.cpp +++ b/src/DataSetList.cpp @@ -785,12 +785,8 @@ int DataSetList::SynchronizeData(Parallel::Comm const& commIn) { } #endif // ----------------------------------------------------------------------------- -inline bool ValidVariableSet(DataSet* ds) { - return (ds->Type() == DataSet::STRINGVAR || - ds->Type() == DataSet::STRING || - ds->Group() == DataSet::SCALAR_1D); -} +/** Get a value from specified DataSet as a string. */ std::string DataSetList::GetVariable(std::string const& varnameIn) const { DataSet* ds = GetDataSet( varnameIn ); if (ds == 0) return std::string(); @@ -800,14 +796,19 @@ std::string DataSetList::GetVariable(std::string const& varnameIn) const { val = ((DataSet_StringVar*)ds)->Value(); } else if (ds->Type() == DataSet::STRING) { val = (*((DataSet_string*)ds))[0]; - } else { + } else if (ds->Group() == DataSet::SCALAR_1D) { val = doubleToString( ((DataSet_1D*)ds)->Dval(0) ); + } else { + mprinterr("Internal Error: DataSetList::GetVariable(): Invalid set type: '%s'\n", + ds->legend()); + return std::string(); } } return val; } +/** Replace all variables (beginning with $) in string with their values. */ std::string DataSetList::ReplaceVariables(std::string const& varnameIn) const { std::string varname = varnameIn; size_t pos = varname.find("$"); @@ -819,6 +820,7 @@ std::string DataSetList::ReplaceVariables(std::string const& varnameIn) const { std::string var_in_arg = varname.substr(pos, len); //TODO needed? // Not found in CurrentVars_; see if this is a DataSet. for (size_t pos1 = pos+len; pos1 < varname.size(); pos1++, len++) + { if (!isalnum(varname[pos1]) && varname[pos1] != '[' && varname[pos1] != ':' && @@ -827,6 +829,7 @@ std::string DataSetList::ReplaceVariables(std::string const& varnameIn) const { varname[pos1] != '-' && varname[pos1] != '%') break; + } var_in_arg = varname.substr(pos+1, len-1); DataSet* ds = GetDataSet( var_in_arg ); if (ds == 0) { From 54a4cb33f7db295e454a77fa31f26b4cbc75bf3e Mon Sep 17 00:00:00 2001 From: "Daniel R. Roe" Date: Fri, 20 Dec 2019 09:12:40 -0500 Subject: [PATCH 030/162] DRR - Add UpdateStringVar routine and make ForLoop_integer use it. --- src/DataSetList.cpp | 13 +++++++++++++ src/DataSetList.h | 2 ++ src/ForLoop_integer.cpp | 4 ++-- src/cpptrajdepend | 4 ++-- 4 files changed, 19 insertions(+), 4 deletions(-) diff --git a/src/DataSetList.cpp b/src/DataSetList.cpp index c786b0a879..40c70277f4 100644 --- a/src/DataSetList.cpp +++ b/src/DataSetList.cpp @@ -786,6 +786,19 @@ int DataSetList::SynchronizeData(Parallel::Comm const& commIn) { #endif // ----------------------------------------------------------------------------- +int DataSetList::UpdateStringVar(std::string const& varnameIn, std::string const& newValue) +const +{ + DataSet* ds = FindSetOfType( varnameIn, DataSet::STRINGVAR ); + if (ds == 0) { + mprinterr("Error: No string variable named '%s'\n", varnameIn.c_str()); + return 1; + } + DataSet_StringVar& var = static_cast( *ds ); + var.assign( newValue ); + return 0; +} + /** Get a value from specified DataSet as a string. */ std::string DataSetList::GetVariable(std::string const& varnameIn) const { DataSet* ds = GetDataSet( varnameIn ); diff --git a/src/DataSetList.h b/src/DataSetList.h index 4d97754de9..01900e79d6 100644 --- a/src/DataSetList.h +++ b/src/DataSetList.h @@ -123,6 +123,8 @@ class DataSetList { int SynchronizeData(Parallel::Comm const&); # endif + /// Update value in given string variable with new value + int UpdateStringVar(std::string const&, std::string const&) const; /// \return Value corresponding to given data set as a string std::string GetVariable(std::string const&) const; /// \return String with all variables replaced with their values. diff --git a/src/ForLoop_integer.cpp b/src/ForLoop_integer.cpp index 4dc860c8ec..b8d1a4eaae 100644 --- a/src/ForLoop_integer.cpp +++ b/src/ForLoop_integer.cpp @@ -207,14 +207,14 @@ int ForLoop_integer::BeginFor(DataSetList const& DSL) { } /** Check if integer for loop is done, increment if not. */ -bool ForLoop_integer::EndFor(VariableArray& CurrentVars) { +bool ForLoop_integer::EndFor(DataSetList const& DSL) { if (endOp_ == LESS_THAN) { if (currentVal_ >= end_) return true; } else if (endOp_ == GREATER_THAN) { if (currentVal_ <= end_) return true; } // Get variable value and update CurrentVars - CurrentVars.UpdateVariable( VarName(), integerToString( currentVal_ )); + DSL.UpdateStringVar( VarName(), integerToString( currentVal_ ) ); // Increment currentVal_ += inc_; return false; diff --git a/src/cpptrajdepend b/src/cpptrajdepend index e0726088e7..f8439fd41f 100644 --- a/src/cpptrajdepend +++ b/src/cpptrajdepend @@ -191,7 +191,7 @@ DataIO_VecTraj.o : DataIO_VecTraj.cpp ActionFrameCounter.h ArgList.h ArrayIterat DataIO_XVG.o : DataIO_XVG.cpp ArgList.h AssociatedData.h Atom.h AtomExtra.h AtomMask.h AtomType.h BaseIOtype.h Box.h BufferedLine.h Constants.h CoordinateInfo.h CpptrajFile.h CpptrajStdio.h DataIO.h DataIO_XVG.h DataSet.h DataSetList.h DataSet_1D.h DataSet_Coords.h DataSet_Coords_REF.h DataSet_double.h Dimension.h FileIO.h FileName.h Frame.h MaskToken.h Matrix_3x3.h MetaData.h Molecule.h NameType.h Parallel.h ParameterHolders.h ParameterSet.h ParameterTypes.h Range.h ReferenceFrame.h ReplicaDimArray.h Residue.h SymbolExporting.h TextFormat.h Timer.h Topology.h TypeNameHolder.h Vec3.h DataIO_Xplor.o : DataIO_Xplor.cpp ArgList.h ArrayIterator.h AssociatedData.h Atom.h AtomExtra.h AtomMask.h AtomType.h BaseIOtype.h Box.h BufferedLine.h Constants.h CoordinateInfo.h CpptrajFile.h CpptrajStdio.h DataIO.h DataIO_Xplor.h DataSet.h DataSetList.h DataSet_3D.h DataSet_Coords.h DataSet_Coords_REF.h DataSet_GridFlt.h Dimension.h FileIO.h FileName.h Frame.h Grid.h GridBin.h MaskToken.h Matrix_3x3.h MetaData.h Molecule.h NameType.h Parallel.h ParameterHolders.h ParameterSet.h ParameterTypes.h ProgressBar.h Range.h ReferenceFrame.h ReplicaDimArray.h Residue.h SymbolExporting.h TextFormat.h Timer.h Topology.h TypeNameHolder.h Vec3.h DataSet.o : DataSet.cpp ArgList.h AssociatedData.h CpptrajFile.h CpptrajStdio.h DataSet.h Dimension.h FileIO.h FileName.h MetaData.h Parallel.h Range.h TextFormat.h -DataSetList.o : DataSetList.cpp ArgList.h ArrayIterator.h AssociatedData.h Atom.h AtomExtra.h AtomMap.h AtomMask.h AtomType.h Box.h ClusterDist.h ClusterSieve.h ComplexArray.h Constants.h CoordinateInfo.h Cph.h CpptrajFile.h CpptrajStdio.h DataSet.h DataSetList.h DataSet_1D.h DataSet_2D.h DataSet_3D.h DataSet_Cmatrix.h DataSet_Cmatrix_DISK.h DataSet_Cmatrix_MEM.h DataSet_Cmatrix_NOMEM.h DataSet_Coords.h DataSet_Coords_CRD.h DataSet_Coords_REF.h DataSet_Coords_TRJ.h DataSet_GridDbl.h DataSet_GridFlt.h DataSet_Mat3x3.h DataSet_MatrixDbl.h DataSet_MatrixFlt.h DataSet_Mesh.h DataSet_Modes.h DataSet_PHREMD.h DataSet_PHREMD_Explicit.h DataSet_PHREMD_Implicit.h DataSet_Parameters.h DataSet_RemLog.h DataSet_Tensor.h DataSet_Topology.h DataSet_Vector.h DataSet_double.h DataSet_float.h DataSet_integer.h DataSet_integer_disk.h DataSet_integer_mem.h DataSet_pH.h DataSet_string.h Dimension.h FileIO.h FileName.h Frame.h Grid.h GridBin.h Hungarian.h InputTrajCommon.h MapAtom.h MaskToken.h Matrix.h Matrix_3x3.h MetaData.h Molecule.h NC_Cmatrix.h NameType.h Parallel.h ParameterHolders.h ParameterSet.h ParameterTypes.h Range.h ReferenceFrame.h ReplicaDimArray.h Residue.h Spline.h StringRoutines.h SymbolExporting.h SymmetricRmsdCalc.h SymmetricTensor.h TextFormat.h Timer.h Topology.h TrajFrameCounter.h TrajFrameIndex.h Trajin.h TypeNameHolder.h Vec3.h +DataSetList.o : DataSetList.cpp ArgList.h ArrayIterator.h AssociatedData.h Atom.h AtomExtra.h AtomMap.h AtomMask.h AtomType.h Box.h ClusterDist.h ClusterSieve.h ComplexArray.h Constants.h CoordinateInfo.h Cph.h CpptrajFile.h CpptrajStdio.h DataSet.h DataSetList.h DataSet_1D.h DataSet_2D.h DataSet_3D.h DataSet_Cmatrix.h DataSet_Cmatrix_DISK.h DataSet_Cmatrix_MEM.h DataSet_Cmatrix_NOMEM.h DataSet_Coords.h DataSet_Coords_CRD.h DataSet_Coords_REF.h DataSet_Coords_TRJ.h DataSet_GridDbl.h DataSet_GridFlt.h DataSet_Mat3x3.h DataSet_MatrixDbl.h DataSet_MatrixFlt.h DataSet_Mesh.h DataSet_Modes.h DataSet_PHREMD.h DataSet_PHREMD_Explicit.h DataSet_PHREMD_Implicit.h DataSet_Parameters.h DataSet_RemLog.h DataSet_StringVar.h DataSet_Tensor.h DataSet_Topology.h DataSet_Vector.h DataSet_double.h DataSet_float.h DataSet_integer.h DataSet_integer_disk.h DataSet_integer_mem.h DataSet_pH.h DataSet_string.h Dimension.h FileIO.h FileName.h Frame.h Grid.h GridBin.h Hungarian.h InputTrajCommon.h MapAtom.h MaskToken.h Matrix.h Matrix_3x3.h MetaData.h Molecule.h NC_Cmatrix.h NameType.h Parallel.h ParameterHolders.h ParameterSet.h ParameterTypes.h Range.h ReferenceFrame.h ReplicaDimArray.h Residue.h Spline.h StringRoutines.h SymbolExporting.h SymmetricRmsdCalc.h SymmetricTensor.h TextFormat.h Timer.h Topology.h TrajFrameCounter.h TrajFrameIndex.h Trajin.h TypeNameHolder.h Vec3.h DataSet_1D.o : DataSet_1D.cpp ArgList.h ArrayIterator.h AssociatedData.h ComplexArray.h Constants.h Corr.h CpptrajFile.h CpptrajStdio.h DataSet.h DataSet_1D.h Dimension.h FileIO.h FileName.h MetaData.h Parallel.h PubFFT.h Range.h TextFormat.h DataSet_3D.o : DataSet_3D.cpp ArgList.h AssociatedData.h Box.h CpptrajFile.h CpptrajStdio.h DataSet.h DataSet_3D.h Dimension.h FileIO.h FileName.h GridBin.h Matrix_3x3.h MetaData.h Parallel.h Range.h TextFormat.h Vec3.h DataSet_Cmatrix.o : DataSet_Cmatrix.cpp ArgList.h ArrayIterator.h AssociatedData.h Atom.h AtomExtra.h AtomMap.h AtomMask.h AtomType.h Box.h ClusterDist.h ClusterSieve.h Constants.h CoordinateInfo.h CpptrajFile.h CpptrajStdio.h DataSet.h DataSet_1D.h DataSet_Cmatrix.h DataSet_Coords.h Dimension.h FileIO.h FileName.h Frame.h Hungarian.h MapAtom.h MaskToken.h Matrix.h Matrix_3x3.h MetaData.h Molecule.h NameType.h Parallel.h ParameterHolders.h ParameterSet.h ParameterTypes.h Range.h ReplicaDimArray.h Residue.h SymbolExporting.h SymmetricRmsdCalc.h TextFormat.h Topology.h TypeNameHolder.h Vec3.h @@ -288,7 +288,7 @@ FileIO_Std.o : FileIO_Std.cpp FileIO.h FileIO_Std.h FileName.o : FileName.cpp CpptrajStdio.h FileName.h StringRoutines.h FileTypes.o : FileTypes.cpp ArgList.h BaseIOtype.h CpptrajStdio.h FileTypes.h File_TempName.o : File_TempName.cpp CpptrajStdio.h FileName.h File_TempName.h StringRoutines.h -ForLoop_integer.o : ForLoop_integer.cpp ArgList.h CpptrajStdio.h ForLoop.h ForLoop_integer.h StringRoutines.h VariableArray.h +ForLoop_integer.o : ForLoop_integer.cpp ArgList.h AssociatedData.h Atom.h AtomExtra.h AtomMask.h AtomType.h Box.h Constants.h CoordinateInfo.h CpptrajFile.h CpptrajStdio.h DataSet.h DataSetList.h DataSet_Coords.h DataSet_Coords_REF.h Dimension.h FileIO.h FileName.h ForLoop.h ForLoop_integer.h Frame.h MaskToken.h Matrix_3x3.h MetaData.h Molecule.h NameType.h Parallel.h ParameterHolders.h ParameterSet.h ParameterTypes.h Range.h ReferenceFrame.h ReplicaDimArray.h Residue.h StringRoutines.h SymbolExporting.h TextFormat.h Timer.h Topology.h TypeNameHolder.h Vec3.h ForLoop_list.o : ForLoop_list.cpp ArgList.h CpptrajStdio.h FileName.h ForLoop.h ForLoop_list.h VariableArray.h ForLoop_mask.o : ForLoop_mask.cpp Action.h ActionList.h ActionState.h Analysis.h AnalysisList.h AnalysisState.h ArgList.h AssociatedData.h Atom.h AtomExtra.h AtomMask.h AtomType.h BaseIOtype.h Box.h Constants.h CoordinateInfo.h CpptrajFile.h CpptrajState.h CpptrajStdio.h DataFile.h DataFileList.h DataIO.h DataSet.h DataSetList.h DataSet_Coords.h DataSet_Coords_REF.h Dimension.h DispatchObject.h EnsembleIn.h EnsembleOutList.h FileIO.h FileName.h FileTypes.h ForLoop.h ForLoop_mask.h Frame.h FramePtrArray.h InputTrajCommon.h MaskToken.h Matrix_3x3.h MetaData.h Molecule.h NameType.h Parallel.h ParameterHolders.h ParameterSet.h ParameterTypes.h Range.h ReferenceFrame.h ReplicaDimArray.h ReplicaInfo.h Residue.h StringRoutines.h SymbolExporting.h TextFormat.h Timer.h Topology.h TrajFrameCounter.h Trajin.h TrajinList.h TrajoutList.h TypeNameHolder.h VariableArray.h Vec3.h Frame.o : Frame.cpp Atom.h AtomMask.h Box.h Constants.h CoordinateInfo.h CpptrajStdio.h Frame.h MaskToken.h Matrix_3x3.h Molecule.h NameType.h Parallel.h ReplicaDimArray.h Residue.h SymbolExporting.h Vec3.h From e062975a3de508deddce46b93f40fc84508a1fad Mon Sep 17 00:00:00 2001 From: "Daniel R. Roe" Date: Fri, 20 Dec 2019 09:17:28 -0500 Subject: [PATCH 031/162] DRR - Use DataSetList in remaining for loops. --- src/ForLoop.h | 5 +---- src/ForLoop_list.cpp | 8 ++++---- src/ForLoop_list.h | 4 ++-- src/ForLoop_mask.cpp | 8 ++++---- src/ForLoop_mask.h | 4 ++-- src/cpptrajdepend | 4 ++-- 6 files changed, 15 insertions(+), 18 deletions(-) diff --git a/src/ForLoop.h b/src/ForLoop.h index 1a198b54ac..94d5fa3a25 100644 --- a/src/ForLoop.h +++ b/src/ForLoop.h @@ -27,10 +27,7 @@ class ForLoop { protected: void SetDescription(std::string const& descIn) { description_ = descIn; } //void SetType(ForType f) { varType_ = f; } - void SetVarName(std::string const& v) { - if (!v.empty()) - varname_ = "$" + v; - } + void SetVarName(std::string const& v) { varname_ = v; } //ForType VarType() const { return varType_; } private: diff --git a/src/ForLoop_list.cpp b/src/ForLoop_list.cpp index 82e955586b..45247863d6 100644 --- a/src/ForLoop_list.cpp +++ b/src/ForLoop_list.cpp @@ -2,7 +2,7 @@ #include "CpptrajStdio.h" #include "ArgList.h" #include "FileName.h" -#include "VariableArray.h" +#include "DataSetList.h" int ForLoop_list::SetupFor(CpptrajState& State, std::string const& expr, ArgList& argIn) { // in [,...] @@ -36,15 +36,15 @@ int ForLoop_list::SetupFor(CpptrajState& State, std::string const& expr, ArgList return 0; } -int ForLoop_list::BeginFor(VariableArray const& CurrentVars) { +int ForLoop_list::BeginFor(DataSetList const& CurrentVars) { sdx_ = List_.begin(); return (int)List_.size(); } -bool ForLoop_list::EndFor(VariableArray& CurrentVars) { +bool ForLoop_list::EndFor(DataSetList const& DSL) { if (sdx_ == List_.end()) return true; // Get variable value - CurrentVars.UpdateVariable( VarName(), *(sdx_) ); + DSL.UpdateStringVar( VarName(), *(sdx_) ); // Increment ++(sdx_); return false; diff --git a/src/ForLoop_list.h b/src/ForLoop_list.h index 112b29f64e..5468d1e661 100644 --- a/src/ForLoop_list.h +++ b/src/ForLoop_list.h @@ -8,8 +8,8 @@ class ForLoop_list : public ForLoop { ForLoop_list() {} int SetupFor(CpptrajState&, std::string const&, ArgList&); - int BeginFor(VariableArray const&); - bool EndFor(VariableArray&); + int BeginFor(DataSetList const&); + bool EndFor(DataSetList const&); private: typedef std::vector Sarray; Sarray List_; ///< (LIST only) List of strings to iterate over. diff --git a/src/ForLoop_mask.cpp b/src/ForLoop_mask.cpp index 5235a4f09d..125b5e60c7 100644 --- a/src/ForLoop_mask.cpp +++ b/src/ForLoop_mask.cpp @@ -3,7 +3,7 @@ #include "ArgList.h" #include "CpptrajState.h" #include "StringRoutines.h" -#include "VariableArray.h" +#include "DataSetList.h" int ForLoop_mask::SetupFor(CpptrajState& State, std::string const& expr, ArgList& argIn) { static const char* TypeStr[NTYPES] = { "ATOMS ", "RESIDUES ", "MOLECULES ", @@ -78,19 +78,19 @@ int ForLoop_mask::SetupFor(CpptrajState& State, std::string const& expr, ArgList return 0; } -int ForLoop_mask::BeginFor(VariableArray const& CurrentVars) { +int ForLoop_mask::BeginFor(DataSetList const& DSL) { idx_ = Idxs_.begin(); return (int)Idxs_.size(); } -bool ForLoop_mask::EndFor(VariableArray& CurrentVars) { +bool ForLoop_mask::EndFor(DataSetList const& DSL) { static const char* prefix[NTYPES] = {"@", ":", "^", ":", ":"}; if (idx_ == Idxs_.end()) return true; // Get variable value std::string maskStr = prefix[mtype_] + integerToString(*(idx_) + 1); //mprintf("DEBUG: ControlBlock_For: %s\n", maskStr.c_str()); // Update CurrentVars - CurrentVars.UpdateVariable( VarName(), maskStr ); + DSL.UpdateStringVar( VarName(), maskStr ); // Increment ++(idx_); return false; diff --git a/src/ForLoop_mask.h b/src/ForLoop_mask.h index 7dc8ef1eb6..c6c5e945cc 100644 --- a/src/ForLoop_mask.h +++ b/src/ForLoop_mask.h @@ -9,8 +9,8 @@ class ForLoop_mask : public ForLoop { ForLoop_mask() : mtype_(NTYPES) {} int SetupFor(CpptrajState&, std::string const&, ArgList&); - int BeginFor(VariableArray const&); - bool EndFor(VariableArray&); + int BeginFor(DataSetList const&); + bool EndFor(DataSetList const&); private: typedef std::vector Iarray; diff --git a/src/cpptrajdepend b/src/cpptrajdepend index f8439fd41f..ebdf1cdc07 100644 --- a/src/cpptrajdepend +++ b/src/cpptrajdepend @@ -289,8 +289,8 @@ FileName.o : FileName.cpp CpptrajStdio.h FileName.h StringRoutines.h FileTypes.o : FileTypes.cpp ArgList.h BaseIOtype.h CpptrajStdio.h FileTypes.h File_TempName.o : File_TempName.cpp CpptrajStdio.h FileName.h File_TempName.h StringRoutines.h ForLoop_integer.o : ForLoop_integer.cpp ArgList.h AssociatedData.h Atom.h AtomExtra.h AtomMask.h AtomType.h Box.h Constants.h CoordinateInfo.h CpptrajFile.h CpptrajStdio.h DataSet.h DataSetList.h DataSet_Coords.h DataSet_Coords_REF.h Dimension.h FileIO.h FileName.h ForLoop.h ForLoop_integer.h Frame.h MaskToken.h Matrix_3x3.h MetaData.h Molecule.h NameType.h Parallel.h ParameterHolders.h ParameterSet.h ParameterTypes.h Range.h ReferenceFrame.h ReplicaDimArray.h Residue.h StringRoutines.h SymbolExporting.h TextFormat.h Timer.h Topology.h TypeNameHolder.h Vec3.h -ForLoop_list.o : ForLoop_list.cpp ArgList.h CpptrajStdio.h FileName.h ForLoop.h ForLoop_list.h VariableArray.h -ForLoop_mask.o : ForLoop_mask.cpp Action.h ActionList.h ActionState.h Analysis.h AnalysisList.h AnalysisState.h ArgList.h AssociatedData.h Atom.h AtomExtra.h AtomMask.h AtomType.h BaseIOtype.h Box.h Constants.h CoordinateInfo.h CpptrajFile.h CpptrajState.h CpptrajStdio.h DataFile.h DataFileList.h DataIO.h DataSet.h DataSetList.h DataSet_Coords.h DataSet_Coords_REF.h Dimension.h DispatchObject.h EnsembleIn.h EnsembleOutList.h FileIO.h FileName.h FileTypes.h ForLoop.h ForLoop_mask.h Frame.h FramePtrArray.h InputTrajCommon.h MaskToken.h Matrix_3x3.h MetaData.h Molecule.h NameType.h Parallel.h ParameterHolders.h ParameterSet.h ParameterTypes.h Range.h ReferenceFrame.h ReplicaDimArray.h ReplicaInfo.h Residue.h StringRoutines.h SymbolExporting.h TextFormat.h Timer.h Topology.h TrajFrameCounter.h Trajin.h TrajinList.h TrajoutList.h TypeNameHolder.h VariableArray.h Vec3.h +ForLoop_list.o : ForLoop_list.cpp ArgList.h AssociatedData.h Atom.h AtomExtra.h AtomMask.h AtomType.h Box.h Constants.h CoordinateInfo.h CpptrajFile.h CpptrajStdio.h DataSet.h DataSetList.h DataSet_Coords.h DataSet_Coords_REF.h Dimension.h FileIO.h FileName.h ForLoop.h ForLoop_list.h Frame.h MaskToken.h Matrix_3x3.h MetaData.h Molecule.h NameType.h Parallel.h ParameterHolders.h ParameterSet.h ParameterTypes.h Range.h ReferenceFrame.h ReplicaDimArray.h Residue.h SymbolExporting.h TextFormat.h Timer.h Topology.h TypeNameHolder.h Vec3.h +ForLoop_mask.o : ForLoop_mask.cpp Action.h ActionList.h ActionState.h Analysis.h AnalysisList.h AnalysisState.h ArgList.h AssociatedData.h Atom.h AtomExtra.h AtomMask.h AtomType.h BaseIOtype.h Box.h Constants.h CoordinateInfo.h CpptrajFile.h CpptrajState.h CpptrajStdio.h DataFile.h DataFileList.h DataIO.h DataSet.h DataSetList.h DataSet_Coords.h DataSet_Coords_REF.h Dimension.h DispatchObject.h EnsembleIn.h EnsembleOutList.h FileIO.h FileName.h FileTypes.h ForLoop.h ForLoop_mask.h Frame.h FramePtrArray.h InputTrajCommon.h MaskToken.h Matrix_3x3.h MetaData.h Molecule.h NameType.h Parallel.h ParameterHolders.h ParameterSet.h ParameterTypes.h Range.h ReferenceFrame.h ReplicaDimArray.h ReplicaInfo.h Residue.h StringRoutines.h SymbolExporting.h TextFormat.h Timer.h Topology.h TrajFrameCounter.h Trajin.h TrajinList.h TrajoutList.h TypeNameHolder.h Vec3.h Frame.o : Frame.cpp Atom.h AtomMask.h Box.h Constants.h CoordinateInfo.h CpptrajStdio.h Frame.h MaskToken.h Matrix_3x3.h Molecule.h NameType.h Parallel.h ReplicaDimArray.h Residue.h SymbolExporting.h Vec3.h GridAction.o : GridAction.cpp ArgList.h ArrayIterator.h AssociatedData.h Atom.h AtomExtra.h AtomMask.h AtomType.h Box.h Constants.h CoordinateInfo.h CpptrajFile.h CpptrajStdio.h DataSet.h DataSetList.h DataSet_3D.h DataSet_Coords.h DataSet_Coords_REF.h DataSet_GridFlt.h Dimension.h FileIO.h FileName.h Frame.h Grid.h GridAction.h GridBin.h MaskToken.h Matrix_3x3.h MetaData.h Molecule.h NameType.h Parallel.h ParameterHolders.h ParameterSet.h ParameterTypes.h Range.h ReferenceFrame.h ReplicaDimArray.h Residue.h SymbolExporting.h TextFormat.h Timer.h Topology.h TypeNameHolder.h Vec3.h HistBin.o : HistBin.cpp Constants.h CpptrajStdio.h Dimension.h HistBin.h From 1c4e96a9754e82e2b9f1a2dde597d0d0bb5e4aeb Mon Sep 17 00:00:00 2001 From: "Daniel R. Roe" Date: Fri, 20 Dec 2019 09:18:53 -0500 Subject: [PATCH 032/162] DRR - DSL can be const& for CheckDone --- src/ControlBlock.h | 2 +- src/ControlBlock_For.cpp | 4 ++-- src/ControlBlock_For.h | 2 +- 3 files changed, 4 insertions(+), 4 deletions(-) diff --git a/src/ControlBlock.h b/src/ControlBlock.h index abce639dc8..cc7d60cabe 100644 --- a/src/ControlBlock.h +++ b/src/ControlBlock.h @@ -31,7 +31,7 @@ class ControlBlock : public DispatchObject { /// Start control block. Init internal variables if necessary. virtual int Start(DataSetList const&) = 0; /// Add/update variables and increment, check block state. - virtual DoneType CheckDone(DataSetList&) = 0; + virtual DoneType CheckDone(DataSetList const&) = 0; protected: std::string description_; ///< Describe control TODO private? }; diff --git a/src/ControlBlock_For.cpp b/src/ControlBlock_For.cpp index 9aa1c296b4..80fc32b1f8 100644 --- a/src/ControlBlock_For.cpp +++ b/src/ControlBlock_For.cpp @@ -127,8 +127,8 @@ int ControlBlock_For::Start(DataSetList const& DSL) { return 0; } -/** For each mask check if done, then update variables, then increment. */ // TODO const DSL? -ControlBlock::DoneType ControlBlock_For::CheckDone(DataSetList& DSL) { +/** For each mask check if done, then update variables, then increment. */ +ControlBlock::DoneType ControlBlock_For::CheckDone(DataSetList const& DSL) { for (Marray::iterator MH = Vars_.begin(); MH != Vars_.end(); ++MH) { // Exit as soon as one is done TODO check all? if ( (*MH)->EndFor(DSL) ) return DONE; diff --git a/src/ControlBlock_For.h b/src/ControlBlock_For.h index 1b9943d6f9..7ad94b3e18 100644 --- a/src/ControlBlock_For.h +++ b/src/ControlBlock_For.h @@ -16,7 +16,7 @@ class ControlBlock_For : public ControlBlock { const_iterator begin() const { return commands_.begin(); } const_iterator end() const { return commands_.end(); } int Start(DataSetList const&); - DoneType CheckDone(DataSetList&); + DoneType CheckDone(DataSetList const&); private: typedef std::vector Marray; Marray Vars_; ///< Hold all for loops for this block From 972045c7014043f60076afe02c4c5207c5826362 Mon Sep 17 00:00:00 2001 From: "Daniel R. Roe" Date: Fri, 20 Dec 2019 09:24:01 -0500 Subject: [PATCH 033/162] DRR - Add list string variables function --- src/DataSetList.cpp | 11 +++++++++++ src/DataSetList.h | 2 ++ 2 files changed, 13 insertions(+) diff --git a/src/DataSetList.cpp b/src/DataSetList.cpp index 40c70277f4..4d4dbee994 100644 --- a/src/DataSetList.cpp +++ b/src/DataSetList.cpp @@ -715,6 +715,17 @@ void DataSetList::ListDataOnly() const { mprintf("\nDATASETS (%zu total):\n", temp.size()); PrintList( temp ); } + +void DataSetList::ListStringVar() const { + for (DataListType::const_iterator ds = DataList_.begin(); ds != DataList_.end(); ++ds) + { + if ( (*ds)->Type() == DataSet::STRINGVAR) { + DataSet_StringVar const& var = static_cast( *(*ds) ); + mprintf("\t%s = %s\n", var.legend(), var.Value().c_str()); + } + } +} + #ifdef MPI // DataSetList::SynchronizeData() /** Synchronize timeseries data from child ranks to master. */ diff --git a/src/DataSetList.h b/src/DataSetList.h index 01900e79d6..c23918ebd4 100644 --- a/src/DataSetList.h +++ b/src/DataSetList.h @@ -116,6 +116,8 @@ class DataSetList { void List() const; /// List all non-Topology/Reference data sets. void ListDataOnly() const; + /// List all string variables + void ListStringVar() const; # ifdef MPI /// Indicate whether sets added to the list need to be synced void SetNewSetsNeedSync(bool b) { newSetsNeedSync_ = b; } From 9d5197b6707aba000f8004cbe379f85e4b18e267 Mon Sep 17 00:00:00 2001 From: "Daniel R. Roe" Date: Fri, 20 Dec 2019 09:47:00 -0500 Subject: [PATCH 034/162] DRR - Finish up show exec. Still not quite working. --- src/Cmd.h | 4 ++-- src/Command.cpp | 24 +++++++++++++----------- src/DataSetList.cpp | 2 +- src/Exec_Set.cpp | 7 +++++-- src/Exec_Show.cpp | 12 +++++------- src/ForLoop_integer.cpp | 7 ++++--- src/cpptrajdepend | 1 + src/cpptrajfiles | 1 + 8 files changed, 32 insertions(+), 26 deletions(-) diff --git a/src/Cmd.h b/src/Cmd.h index 7cd6ad32b9..10b30180c4 100644 --- a/src/Cmd.h +++ b/src/Cmd.h @@ -11,8 +11,8 @@ class Cmd { public: typedef std::vector< std::string > Sarray; // TODO put in common header? - /// Command destinations. EXEcute, ACTion, ANAlysis, ConTroL, BLocK, DEPrecated. - enum DestType { EXE = 0, ACT, ANA, CTL, BLK, DEP }; + /// Command destinations. EXEcute, ACTion, ANAlysis, BLocK, DEPrecated. + enum DestType { EXE = 0, ACT, ANA, BLK, DEP }; /// CONSTRUCTOR Cmd() : object_(0), dest_(EXE) {} /// CONSTRUCTOR - takes destination, DispatchObject pointer, and keywords. diff --git a/src/Command.cpp b/src/Command.cpp index d6c810026c..1fe0a7b462 100644 --- a/src/Command.cpp +++ b/src/Command.cpp @@ -196,8 +196,6 @@ Command::CtlArray Command::control_ = Command::CtlArray(); int Command::ctlidx_ = -1; -VariableArray Command::CurrentVars_ = VariableArray(); - /** Initialize all commands. Should only be called once as program starts. */ void Command::Init() { // GENERAL @@ -582,11 +580,11 @@ int Command::AddControlBlock(ControlBlock* ctl, CpptrajState& State, ArgList& cm /** Execute the specified control block. */ int Command::ExecuteControlBlock(int block, CpptrajState& State) { - if (control_[block]->Start(CurrentVars_)) return 1; - ControlBlock::DoneType ret = control_[block]->CheckDone(CurrentVars_); + if (control_[block]->Start(State.DSL())) return 1; + ControlBlock::DoneType ret = control_[block]->CheckDone(State.DSL()); if (State.Debug() > 0) { mprintf("DEBUG: Start: CurrentVars:"); - CurrentVars_.PrintVariables(); + State.DSL().ListStringVar(); } while (ret == ControlBlock::NOT_DONE) { for (ControlBlock::const_iterator it = control_[block]->begin(); @@ -601,7 +599,7 @@ int Command::ExecuteControlBlock(int block, CpptrajState& State) if ( ExecuteCommand(State, *it) != CpptrajState::OK ) return 1; } } - ret = control_[block]->CheckDone(CurrentVars_); + ret = control_[block]->CheckDone(State.DSL()); } if (ret == ControlBlock::ERROR) return 1; return 0; @@ -675,7 +673,11 @@ CpptrajState::RetType Command::Dispatch(CpptrajState& State, std::string const& */ CpptrajState::RetType Command::ExecuteCommand( CpptrajState& State, ArgList const& cmdArgIn ) { // Replace variable names in command with entries from CurrentVars - ArgList cmdArg = CurrentVars_.ReplaceVariables( cmdArgIn, State.DSL(), State.Debug() ); + ArgList cmdArg = cmdArgIn; + for (int narg = 0; narg != cmdArg.Nargs(); narg++) + { + cmdArg.ChangeArg(narg, State.DSL().ReplaceVariables( cmdArgIn[narg] )); + } if (cmdArg.empty()) return CpptrajState::ERR; // Print modified command mprintf(" [%s]\n", cmdArg.ArgLine()); @@ -697,10 +699,10 @@ CpptrajState::RetType Command::ExecuteCommand( CpptrajState& State, ArgList cons } else { DispatchObject* obj = cmd.Alloc(); switch (cmd.Destination()) { - case Cmd::CTL: - ret_val = ((Control*)obj)->SetupControl(State, cmdArg, CurrentVars_); - delete obj; - break; + //case Cmd::CTL: + // ret_val = ((Control*)obj)->SetupControl(State, cmdArg, CurrentVars_); + // delete obj; + // break; case Cmd::BLK: if (AddControlBlock( (ControlBlock*)obj, State, cmdArg )) { delete obj; diff --git a/src/DataSetList.cpp b/src/DataSetList.cpp index 4d4dbee994..8b50f1f1fd 100644 --- a/src/DataSetList.cpp +++ b/src/DataSetList.cpp @@ -880,7 +880,7 @@ std::string DataSetList::ReplaceVariables(std::string const& varnameIn) const { value = (*((DataSet_string*)ds))[0]; else value = doubleToString(((DataSet_1D*)ds)->Dval(0)); - if (debug_ > 0) + if (debug_ >= 0) mprintf("DEBUG: Replaced variable '$%s' with value '%s' from DataSet '%s'\n", var_in_arg.c_str(), value.c_str(), ds->legend()); varname.replace(pos, var_in_arg.size()+1, value); diff --git a/src/Exec_Set.cpp b/src/Exec_Set.cpp index bc382ac2fb..9ae8ed07d2 100644 --- a/src/Exec_Set.cpp +++ b/src/Exec_Set.cpp @@ -94,6 +94,9 @@ int Exec_Set::AddVariable(CpptrajState& State, std::string const& varname, { DataSet* ds = State.DSL().AddSet( DataSet::STRINGVAR, MetaData(varname) ); if (ds == 0) return 1; + DataSet_StringVar& var = static_cast( *ds ); + var.assign( value ); + return 0; } @@ -101,7 +104,7 @@ int Exec_Set::AddVariable(CpptrajState& State, std::string const& varname, int Exec_Set::AppendVariable(CpptrajState& State, std::string const& varname, std::string const& value) { - DataSet* ds = State.DSL().GetDataSet( varname ); + DataSet* ds = State.DSL().CheckForSet( varname ); if (ds == 0) { // Create new return AddVariable(State, varname, value); @@ -120,7 +123,7 @@ int Exec_Set::AppendVariable(CpptrajState& State, std::string const& varname, int Exec_Set::UpdateVariable(CpptrajState& State, std::string const& varname, std::string const& value) { - DataSet* ds = State.DSL().GetDataSet( varname ); + DataSet* ds = State.DSL().CheckForSet( varname ); if (ds == 0) { // Create new return AddVariable(State, varname, value); diff --git a/src/Exec_Show.cpp b/src/Exec_Show.cpp index 36f6bf04a1..91b2df9333 100644 --- a/src/Exec_Show.cpp +++ b/src/Exec_Show.cpp @@ -1,14 +1,12 @@ #include "Exec_Show.h" #include "CpptrajStdio.h" -#include "DataSet_StringVar.h" + +void Exec_Show::Help() const { + mprintf(" Show all current script variables and their values.\n"); +} Exec::RetType Exec_Show::Execute(CpptrajState& State, ArgList& argIn) { - DataSetList vars = State.DSL().GetSetsOfType("*", DataSet::STRINGVAR); - for (DataSetList::const_iterator it = vars.begin(); it != vars.end(); ++it) - { - DataSet_StringVar const& var = static_cast( *(*it) ); - mprintf("\t%s = %s\n", var.legend(), var.Value().c_str()); - } + State.DSL().ListStringVar(); return CpptrajState::OK; } diff --git a/src/ForLoop_integer.cpp b/src/ForLoop_integer.cpp index b8d1a4eaae..ec031eed4e 100644 --- a/src/ForLoop_integer.cpp +++ b/src/ForLoop_integer.cpp @@ -21,7 +21,7 @@ int ForLoop_integer::SetupFor(CpptrajState& State, std::string const& expr, ArgL // [=;[;][]] //SetType( INTEGER ); ArgList varArg( expr, ";" ); - //varArg.PrintDebug(); // DEBUG + varArg.PrintDebug(); // DEBUG if (varArg.Nargs() < 2 || varArg.Nargs() > 3) { mprinterr("Error: Malformed 'for' loop variable.\n" "Error: Expected '[=;[;][]]'\n" @@ -36,7 +36,7 @@ int ForLoop_integer::SetupFor(CpptrajState& State, std::string const& expr, ArgL return 1; } SetVarName( startArg[0] ); - //mprintf("DEBUG: Start argument: '%s' = '%s'\n", VarName().c_str(), startArg[1].c_str()); + mprintf("DEBUG: Start argument: '%s' = '%s'\n", VarName().c_str(), startArg[1].c_str()); if ( startArg[1][0] == '$' ) { // Variable name startVarName_ = startArg[1]; @@ -47,7 +47,7 @@ int ForLoop_integer::SetupFor(CpptrajState& State, std::string const& expr, ArgL } else start_ = convertToInteger(startArg[1]); // Second argument: - size_t pos0 = VarName().size() - 1; // Minus 1 to account for prepended '$' + size_t pos0 = VarName().size(); // Minus 1 to account for prepended '$' size_t pos1 = pos0 + 1; endOp_ = NO_OP; int iargIdx = 1; @@ -63,6 +63,7 @@ int ForLoop_integer::SetupFor(CpptrajState& State, std::string const& expr, ArgL return 1; } std::string endStr = varArg[1].substr(pos1); + mprintf("DEBUG: endStr= '%s'\n", endStr.c_str()); if ( endStr[0] == '$' ) { // Variable name endVarName_ = endStr; diff --git a/src/cpptrajdepend b/src/cpptrajdepend index ebdf1cdc07..2d82a908d0 100644 --- a/src/cpptrajdepend +++ b/src/cpptrajdepend @@ -273,6 +273,7 @@ Exec_RunAnalysis.o : Exec_RunAnalysis.cpp Action.h ActionList.h ActionState.h An Exec_ScaleDihedralK.o : Exec_ScaleDihedralK.cpp Action.h ActionList.h ActionState.h Analysis.h AnalysisList.h AnalysisState.h ArgList.h AssociatedData.h Atom.h AtomExtra.h AtomMask.h AtomType.h BaseIOtype.h Box.h Constants.h CoordinateInfo.h CpptrajFile.h CpptrajState.h CpptrajStdio.h DataFile.h DataFileList.h DataIO.h DataSet.h DataSetList.h DataSet_Coords.h DataSet_Coords_REF.h Dimension.h DispatchObject.h EnsembleIn.h EnsembleOutList.h Exec.h Exec_ScaleDihedralK.h FileIO.h FileName.h FileTypes.h Frame.h FramePtrArray.h InputTrajCommon.h MaskToken.h Matrix_3x3.h MetaData.h Molecule.h NameType.h Parallel.h ParameterHolders.h ParameterSet.h ParameterTypes.h Range.h ReferenceFrame.h ReplicaDimArray.h ReplicaInfo.h Residue.h SymbolExporting.h TextFormat.h Timer.h Topology.h TrajFrameCounter.h Trajin.h TrajinList.h TrajoutList.h TypeNameHolder.h Vec3.h Exec_SequenceAlign.o : Exec_SequenceAlign.cpp Action.h ActionFrameCounter.h ActionList.h ActionState.h Analysis.h AnalysisList.h AnalysisState.h ArgList.h AssociatedData.h Atom.h AtomExtra.h AtomMask.h AtomType.h BaseIOtype.h Box.h BufferedLine.h Constants.h CoordinateInfo.h CpptrajFile.h CpptrajState.h CpptrajStdio.h DataFile.h DataFileList.h DataIO.h DataSet.h DataSetList.h DataSet_Coords.h DataSet_Coords_REF.h Dimension.h DispatchObject.h EnsembleIn.h EnsembleOutList.h Exec.h Exec_SequenceAlign.h FileIO.h FileName.h FileTypes.h Frame.h FramePtrArray.h InputTrajCommon.h MaskToken.h Matrix_3x3.h MetaData.h Molecule.h NameType.h OutputTrajCommon.h Parallel.h ParameterHolders.h ParameterSet.h ParameterTypes.h Range.h ReferenceFrame.h ReplicaDimArray.h ReplicaInfo.h Residue.h StringRoutines.h SymbolExporting.h TextFormat.h Timer.h Topology.h TrajFrameCounter.h TrajectoryFile.h Trajin.h TrajinList.h TrajoutList.h Trajout_Single.h TypeNameHolder.h Vec3.h Exec_Set.o : Exec_Set.cpp Action.h ActionList.h ActionState.h Analysis.h AnalysisList.h AnalysisState.h ArgList.h AssociatedData.h Atom.h AtomExtra.h AtomMask.h AtomType.h BaseIOtype.h Box.h Constants.h CoordinateInfo.h CpptrajFile.h CpptrajState.h CpptrajStdio.h DataFile.h DataFileList.h DataIO.h DataSet.h DataSetList.h DataSet_Coords.h DataSet_Coords_REF.h DataSet_StringVar.h Dimension.h DispatchObject.h EnsembleIn.h EnsembleOutList.h Exec.h Exec_Set.h FileIO.h FileName.h FileTypes.h Frame.h FramePtrArray.h InputTrajCommon.h MaskToken.h Matrix_3x3.h MetaData.h Molecule.h NameType.h Parallel.h ParameterHolders.h ParameterSet.h ParameterTypes.h Range.h ReferenceFrame.h ReplicaDimArray.h ReplicaInfo.h Residue.h StringRoutines.h SymbolExporting.h TextFormat.h Timer.h Topology.h TrajFrameCounter.h Trajin.h TrajinList.h TrajoutList.h TypeNameHolder.h Vec3.h +Exec_Show.o : Exec_Show.cpp Action.h ActionList.h ActionState.h Analysis.h AnalysisList.h AnalysisState.h ArgList.h AssociatedData.h Atom.h AtomExtra.h AtomMask.h AtomType.h BaseIOtype.h Box.h Constants.h CoordinateInfo.h CpptrajFile.h CpptrajState.h CpptrajStdio.h DataFile.h DataFileList.h DataIO.h DataSet.h DataSetList.h DataSet_Coords.h DataSet_Coords_REF.h DataSet_StringVar.h Dimension.h DispatchObject.h EnsembleIn.h EnsembleOutList.h Exec.h Exec_Show.h FileIO.h FileName.h FileTypes.h Frame.h FramePtrArray.h InputTrajCommon.h MaskToken.h Matrix_3x3.h MetaData.h Molecule.h NameType.h Parallel.h ParameterHolders.h ParameterSet.h ParameterTypes.h Range.h ReferenceFrame.h ReplicaDimArray.h ReplicaInfo.h Residue.h SymbolExporting.h TextFormat.h Timer.h Topology.h TrajFrameCounter.h Trajin.h TrajinList.h TrajoutList.h TypeNameHolder.h Vec3.h Exec_SortEnsembleData.o : Exec_SortEnsembleData.cpp Action.h ActionList.h ActionState.h Analysis.h AnalysisList.h AnalysisState.h ArgList.h AssociatedData.h Atom.h AtomExtra.h AtomMask.h AtomType.h BaseIOtype.h Box.h Constants.h CoordinateInfo.h Cph.h CpptrajFile.h CpptrajState.h CpptrajStdio.h DataFile.h DataFileList.h DataIO.h DataSet.h DataSetList.h DataSet_1D.h DataSet_Coords.h DataSet_Coords_REF.h DataSet_PHREMD.h DataSet_PHREMD_Explicit.h DataSet_PHREMD_Implicit.h DataSet_pH.h Dimension.h DispatchObject.h EnsembleIn.h EnsembleOutList.h Exec.h Exec_SortEnsembleData.h FileIO.h FileName.h FileTypes.h Frame.h FramePtrArray.h InputTrajCommon.h MaskToken.h Matrix_3x3.h MetaData.h Molecule.h NameType.h Parallel.h ParameterHolders.h ParameterSet.h ParameterTypes.h Range.h ReferenceFrame.h ReplicaDimArray.h ReplicaInfo.h Residue.h StringRoutines.h SymbolExporting.h TextFormat.h Timer.h Topology.h TrajFrameCounter.h Trajin.h TrajinList.h TrajoutList.h TypeNameHolder.h Vec3.h Exec_SplitCoords.o : Exec_SplitCoords.cpp Action.h ActionList.h ActionState.h Analysis.h AnalysisList.h AnalysisState.h ArgList.h AssociatedData.h Atom.h AtomExtra.h AtomMask.h AtomType.h BaseIOtype.h Box.h Constants.h CoordinateInfo.h CpptrajFile.h CpptrajState.h CpptrajStdio.h DataFile.h DataFileList.h DataIO.h DataSet.h DataSetList.h DataSet_Coords.h DataSet_Coords_CRD.h DataSet_Coords_REF.h Dimension.h DispatchObject.h EnsembleIn.h EnsembleOutList.h Exec.h Exec_SplitCoords.h FileIO.h FileName.h FileTypes.h Frame.h FramePtrArray.h InputTrajCommon.h MaskToken.h Matrix_3x3.h MetaData.h Molecule.h NameType.h Parallel.h ParameterHolders.h ParameterSet.h ParameterTypes.h ProgressBar.h Range.h ReferenceFrame.h ReplicaDimArray.h ReplicaInfo.h Residue.h SymbolExporting.h TextFormat.h Timer.h Topology.h TrajFrameCounter.h Trajin.h TrajinList.h TrajoutList.h TypeNameHolder.h Vec3.h Exec_System.o : Exec_System.cpp Action.h ActionList.h ActionState.h Analysis.h AnalysisList.h AnalysisState.h ArgList.h AssociatedData.h Atom.h AtomExtra.h AtomMask.h AtomType.h BaseIOtype.h Box.h Constants.h CoordinateInfo.h CpptrajFile.h CpptrajState.h CpptrajStdio.h DataFile.h DataFileList.h DataIO.h DataSet.h DataSetList.h DataSet_Coords.h DataSet_Coords_REF.h Dimension.h DispatchObject.h EnsembleIn.h EnsembleOutList.h Exec.h Exec_System.h FileIO.h FileName.h FileTypes.h Frame.h FramePtrArray.h InputTrajCommon.h MaskToken.h Matrix_3x3.h MetaData.h Molecule.h NameType.h Parallel.h ParameterHolders.h ParameterSet.h ParameterTypes.h Range.h ReferenceFrame.h ReplicaDimArray.h ReplicaInfo.h Residue.h SymbolExporting.h TextFormat.h Timer.h Topology.h TrajFrameCounter.h Trajin.h TrajinList.h TrajoutList.h TypeNameHolder.h Vec3.h diff --git a/src/cpptrajfiles b/src/cpptrajfiles index 23bb8fb9ab..abbbac388c 100644 --- a/src/cpptrajfiles +++ b/src/cpptrajfiles @@ -273,6 +273,7 @@ COMMON_SOURCES= \ Exec_ScaleDihedralK.cpp \ Exec_Set.cpp \ Exec_SequenceAlign.cpp \ + Exec_Show.cpp \ Exec_SortEnsembleData.cpp \ Exec_SplitCoords.cpp \ Exec_System.cpp \ From 6645d7930452be93f08b88cfb480000ac75f62c6 Mon Sep 17 00:00:00 2001 From: "Daniel R. Roe" Date: Fri, 20 Dec 2019 10:15:28 -0500 Subject: [PATCH 035/162] DRR - Add comment --- src/ForLoop_integer.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/ForLoop_integer.cpp b/src/ForLoop_integer.cpp index ec031eed4e..42a589b16f 100644 --- a/src/ForLoop_integer.cpp +++ b/src/ForLoop_integer.cpp @@ -38,7 +38,7 @@ int ForLoop_integer::SetupFor(CpptrajState& State, std::string const& expr, ArgL SetVarName( startArg[0] ); mprintf("DEBUG: Start argument: '%s' = '%s'\n", VarName().c_str(), startArg[1].c_str()); if ( startArg[1][0] == '$' ) { - // Variable name + // Variable name // TODO need substring to remove $ startVarName_ = startArg[1]; } else if (!validInteger(startArg[1])) { // Not Integer or variable From dc3c64dfa2c1b0552832a68612ade2b340515564 Mon Sep 17 00:00:00 2001 From: "Daniel R. Roe" Date: Sat, 21 Dec 2019 15:28:38 -0500 Subject: [PATCH 036/162] DRR - Ensure loop variable is set up as a dataset --- src/ForLoop.h | 10 +++++++--- src/ForLoop_integer.cpp | 11 ++++++----- src/ForLoop_list.cpp | 3 ++- src/ForLoop_mask.cpp | 2 +- src/StringRoutines.cpp | 8 ++++++++ src/StringRoutines.h | 2 ++ src/cpptrajdepend | 7 ++++--- src/cpptrajfiles | 1 + 8 files changed, 31 insertions(+), 13 deletions(-) diff --git a/src/ForLoop.h b/src/ForLoop.h index 94d5fa3a25..46db91b61e 100644 --- a/src/ForLoop.h +++ b/src/ForLoop.h @@ -4,6 +4,7 @@ class CpptrajState; class ArgList; class DataSetList; +class DataSet; /// Abstract base class for all for loops class ForLoop { public: @@ -23,16 +24,19 @@ class ForLoop { static const int LOOP_ERROR = -2; std::string const& Description() const { return description_; } - std::string const& VarName() const { return varname_; } + //std::string const& VarName() const { return varname_; } + std::string const& VarName() const; protected: void SetDescription(std::string const& descIn) { description_ = descIn; } //void SetType(ForType f) { varType_ = f; } - void SetVarName(std::string const& v) { varname_ = v; } + /// Set up the loop variable with given name. + int SetupLoopVar(DataSetList&, std::string const&); //ForType VarType() const { return varType_; } private: std::string description_; ///< For loop long description - std::string varname_; ///< Variable over which for loop is iterating + DataSet* loopvar_; ///< Variable over which loop is iterating. + //std::string varname_; ///< Variable over which for loop is iterating //ForType varType_; ///< For loop type }; #endif diff --git a/src/ForLoop_integer.cpp b/src/ForLoop_integer.cpp index 42a589b16f..436658a6a7 100644 --- a/src/ForLoop_integer.cpp +++ b/src/ForLoop_integer.cpp @@ -2,6 +2,7 @@ #include "CpptrajStdio.h" #include "ArgList.h" #include "StringRoutines.h" +#include "CpptrajState.h" #include "DataSetList.h" const char* ForLoop_integer::OpStr_[] = {"+=", "-=", "<", ">"}; @@ -35,11 +36,11 @@ int ForLoop_integer::SetupFor(CpptrajState& State, std::string const& expr, ArgL "Error: Expected =, got '%s'\n", varArg[0].c_str()); return 1; } - SetVarName( startArg[0] ); + if (SetupLoopVar( State.DSL(),startArg[0] )) return 1; mprintf("DEBUG: Start argument: '%s' = '%s'\n", VarName().c_str(), startArg[1].c_str()); if ( startArg[1][0] == '$' ) { - // Variable name // TODO need substring to remove $ - startVarName_ = startArg[1]; + // Variable name + startVarName_ = RemoveLeadingChars(startArg[1], 1); } else if (!validInteger(startArg[1])) { // Not Integer or variable mprinterr("Error: Start argument must be an integer or variable name.\n"); @@ -47,7 +48,7 @@ int ForLoop_integer::SetupFor(CpptrajState& State, std::string const& expr, ArgL } else start_ = convertToInteger(startArg[1]); // Second argument: - size_t pos0 = VarName().size(); // Minus 1 to account for prepended '$' + size_t pos0 = VarName().size(); size_t pos1 = pos0 + 1; endOp_ = NO_OP; int iargIdx = 1; @@ -66,7 +67,7 @@ int ForLoop_integer::SetupFor(CpptrajState& State, std::string const& expr, ArgL mprintf("DEBUG: endStr= '%s'\n", endStr.c_str()); if ( endStr[0] == '$' ) { // Variable name - endVarName_ = endStr; + endVarName_ = RemoveLeadingChars(endStr, 1); } else if (!validInteger(endStr)) { // Not Integer of variable mprinterr("Error: End argument must be an integer or variable name.\n"); diff --git a/src/ForLoop_list.cpp b/src/ForLoop_list.cpp index 45247863d6..7d7e110d99 100644 --- a/src/ForLoop_list.cpp +++ b/src/ForLoop_list.cpp @@ -3,13 +3,14 @@ #include "ArgList.h" #include "FileName.h" #include "DataSetList.h" +#include "CpptrajState.h" int ForLoop_list::SetupFor(CpptrajState& State, std::string const& expr, ArgList& argIn) { // in [,...] //MH.varType_ = ftype; argIn.PrintDebug(); // Variable name. Should be expr. - SetVarName( expr ); + SetupLoopVar( State.DSL(), expr ); // Comma-separated list of strings. std::string listArg = argIn.GetStringKey("in"); if (listArg.empty()) { diff --git a/src/ForLoop_mask.cpp b/src/ForLoop_mask.cpp index 125b5e60c7..ef5cae69ca 100644 --- a/src/ForLoop_mask.cpp +++ b/src/ForLoop_mask.cpp @@ -33,7 +33,7 @@ int ForLoop_mask::SetupFor(CpptrajState& State, std::string const& expr, ArgList Topology* top = State.DSL().GetTopByIndex( argIn ); if (top != 0) currentTop = top; if (currentTop == 0) return 1; - SetVarName( argIn.GetStringNext() ); + SetupLoopVar( State.DSL(), argIn.GetStringNext() ); // Set up mask if (currentTop->SetupIntegerMask( currentMask )) return 1; currentMask.MaskInfo(); diff --git a/src/StringRoutines.cpp b/src/StringRoutines.cpp index 6c759ae5f1..bf1955f90e 100644 --- a/src/StringRoutines.cpp +++ b/src/StringRoutines.cpp @@ -178,6 +178,14 @@ std::string NoWhitespace(std::string const& line) { return out; } +/// \return Given string with N leading characters removed. +std::string RemoveLeadingChars(std::string const& strIn, int NtoRemove) +{ + if (strIn.empty()) return std::string(); + std::string out = strIn.substr(NtoRemove, std::string::npos); + return out; +} + // integerToString() std::string integerToString(int i) { std::ostringstream oss; diff --git a/src/StringRoutines.h b/src/StringRoutines.h index c58e4337f0..f6aad4449f 100644 --- a/src/StringRoutines.h +++ b/src/StringRoutines.h @@ -28,6 +28,8 @@ std::string NoLeadingWhitespace(std::string const&); void RemoveAllWhitespace(std::string&); /// \return string with all whitespace removed. std::string NoWhitespace(std::string const&); +/// \return String with the specified number of leading characters removed. +std::string RemoveLeadingChars(std::string const&, int); /// Convert string to integer. int convertToInteger(std::string const &); /// Convert string to double. diff --git a/src/cpptrajdepend b/src/cpptrajdepend index 2d82a908d0..4134a9cf82 100644 --- a/src/cpptrajdepend +++ b/src/cpptrajdepend @@ -273,7 +273,7 @@ Exec_RunAnalysis.o : Exec_RunAnalysis.cpp Action.h ActionList.h ActionState.h An Exec_ScaleDihedralK.o : Exec_ScaleDihedralK.cpp Action.h ActionList.h ActionState.h Analysis.h AnalysisList.h AnalysisState.h ArgList.h AssociatedData.h Atom.h AtomExtra.h AtomMask.h AtomType.h BaseIOtype.h Box.h Constants.h CoordinateInfo.h CpptrajFile.h CpptrajState.h CpptrajStdio.h DataFile.h DataFileList.h DataIO.h DataSet.h DataSetList.h DataSet_Coords.h DataSet_Coords_REF.h Dimension.h DispatchObject.h EnsembleIn.h EnsembleOutList.h Exec.h Exec_ScaleDihedralK.h FileIO.h FileName.h FileTypes.h Frame.h FramePtrArray.h InputTrajCommon.h MaskToken.h Matrix_3x3.h MetaData.h Molecule.h NameType.h Parallel.h ParameterHolders.h ParameterSet.h ParameterTypes.h Range.h ReferenceFrame.h ReplicaDimArray.h ReplicaInfo.h Residue.h SymbolExporting.h TextFormat.h Timer.h Topology.h TrajFrameCounter.h Trajin.h TrajinList.h TrajoutList.h TypeNameHolder.h Vec3.h Exec_SequenceAlign.o : Exec_SequenceAlign.cpp Action.h ActionFrameCounter.h ActionList.h ActionState.h Analysis.h AnalysisList.h AnalysisState.h ArgList.h AssociatedData.h Atom.h AtomExtra.h AtomMask.h AtomType.h BaseIOtype.h Box.h BufferedLine.h Constants.h CoordinateInfo.h CpptrajFile.h CpptrajState.h CpptrajStdio.h DataFile.h DataFileList.h DataIO.h DataSet.h DataSetList.h DataSet_Coords.h DataSet_Coords_REF.h Dimension.h DispatchObject.h EnsembleIn.h EnsembleOutList.h Exec.h Exec_SequenceAlign.h FileIO.h FileName.h FileTypes.h Frame.h FramePtrArray.h InputTrajCommon.h MaskToken.h Matrix_3x3.h MetaData.h Molecule.h NameType.h OutputTrajCommon.h Parallel.h ParameterHolders.h ParameterSet.h ParameterTypes.h Range.h ReferenceFrame.h ReplicaDimArray.h ReplicaInfo.h Residue.h StringRoutines.h SymbolExporting.h TextFormat.h Timer.h Topology.h TrajFrameCounter.h TrajectoryFile.h Trajin.h TrajinList.h TrajoutList.h Trajout_Single.h TypeNameHolder.h Vec3.h Exec_Set.o : Exec_Set.cpp Action.h ActionList.h ActionState.h Analysis.h AnalysisList.h AnalysisState.h ArgList.h AssociatedData.h Atom.h AtomExtra.h AtomMask.h AtomType.h BaseIOtype.h Box.h Constants.h CoordinateInfo.h CpptrajFile.h CpptrajState.h CpptrajStdio.h DataFile.h DataFileList.h DataIO.h DataSet.h DataSetList.h DataSet_Coords.h DataSet_Coords_REF.h DataSet_StringVar.h Dimension.h DispatchObject.h EnsembleIn.h EnsembleOutList.h Exec.h Exec_Set.h FileIO.h FileName.h FileTypes.h Frame.h FramePtrArray.h InputTrajCommon.h MaskToken.h Matrix_3x3.h MetaData.h Molecule.h NameType.h Parallel.h ParameterHolders.h ParameterSet.h ParameterTypes.h Range.h ReferenceFrame.h ReplicaDimArray.h ReplicaInfo.h Residue.h StringRoutines.h SymbolExporting.h TextFormat.h Timer.h Topology.h TrajFrameCounter.h Trajin.h TrajinList.h TrajoutList.h TypeNameHolder.h Vec3.h -Exec_Show.o : Exec_Show.cpp Action.h ActionList.h ActionState.h Analysis.h AnalysisList.h AnalysisState.h ArgList.h AssociatedData.h Atom.h AtomExtra.h AtomMask.h AtomType.h BaseIOtype.h Box.h Constants.h CoordinateInfo.h CpptrajFile.h CpptrajState.h CpptrajStdio.h DataFile.h DataFileList.h DataIO.h DataSet.h DataSetList.h DataSet_Coords.h DataSet_Coords_REF.h DataSet_StringVar.h Dimension.h DispatchObject.h EnsembleIn.h EnsembleOutList.h Exec.h Exec_Show.h FileIO.h FileName.h FileTypes.h Frame.h FramePtrArray.h InputTrajCommon.h MaskToken.h Matrix_3x3.h MetaData.h Molecule.h NameType.h Parallel.h ParameterHolders.h ParameterSet.h ParameterTypes.h Range.h ReferenceFrame.h ReplicaDimArray.h ReplicaInfo.h Residue.h SymbolExporting.h TextFormat.h Timer.h Topology.h TrajFrameCounter.h Trajin.h TrajinList.h TrajoutList.h TypeNameHolder.h Vec3.h +Exec_Show.o : Exec_Show.cpp Action.h ActionList.h ActionState.h Analysis.h AnalysisList.h AnalysisState.h ArgList.h AssociatedData.h Atom.h AtomExtra.h AtomMask.h AtomType.h BaseIOtype.h Box.h Constants.h CoordinateInfo.h CpptrajFile.h CpptrajState.h CpptrajStdio.h DataFile.h DataFileList.h DataIO.h DataSet.h DataSetList.h DataSet_Coords.h DataSet_Coords_REF.h Dimension.h DispatchObject.h EnsembleIn.h EnsembleOutList.h Exec.h Exec_Show.h FileIO.h FileName.h FileTypes.h Frame.h FramePtrArray.h InputTrajCommon.h MaskToken.h Matrix_3x3.h MetaData.h Molecule.h NameType.h Parallel.h ParameterHolders.h ParameterSet.h ParameterTypes.h Range.h ReferenceFrame.h ReplicaDimArray.h ReplicaInfo.h Residue.h SymbolExporting.h TextFormat.h Timer.h Topology.h TrajFrameCounter.h Trajin.h TrajinList.h TrajoutList.h TypeNameHolder.h Vec3.h Exec_SortEnsembleData.o : Exec_SortEnsembleData.cpp Action.h ActionList.h ActionState.h Analysis.h AnalysisList.h AnalysisState.h ArgList.h AssociatedData.h Atom.h AtomExtra.h AtomMask.h AtomType.h BaseIOtype.h Box.h Constants.h CoordinateInfo.h Cph.h CpptrajFile.h CpptrajState.h CpptrajStdio.h DataFile.h DataFileList.h DataIO.h DataSet.h DataSetList.h DataSet_1D.h DataSet_Coords.h DataSet_Coords_REF.h DataSet_PHREMD.h DataSet_PHREMD_Explicit.h DataSet_PHREMD_Implicit.h DataSet_pH.h Dimension.h DispatchObject.h EnsembleIn.h EnsembleOutList.h Exec.h Exec_SortEnsembleData.h FileIO.h FileName.h FileTypes.h Frame.h FramePtrArray.h InputTrajCommon.h MaskToken.h Matrix_3x3.h MetaData.h Molecule.h NameType.h Parallel.h ParameterHolders.h ParameterSet.h ParameterTypes.h Range.h ReferenceFrame.h ReplicaDimArray.h ReplicaInfo.h Residue.h StringRoutines.h SymbolExporting.h TextFormat.h Timer.h Topology.h TrajFrameCounter.h Trajin.h TrajinList.h TrajoutList.h TypeNameHolder.h Vec3.h Exec_SplitCoords.o : Exec_SplitCoords.cpp Action.h ActionList.h ActionState.h Analysis.h AnalysisList.h AnalysisState.h ArgList.h AssociatedData.h Atom.h AtomExtra.h AtomMask.h AtomType.h BaseIOtype.h Box.h Constants.h CoordinateInfo.h CpptrajFile.h CpptrajState.h CpptrajStdio.h DataFile.h DataFileList.h DataIO.h DataSet.h DataSetList.h DataSet_Coords.h DataSet_Coords_CRD.h DataSet_Coords_REF.h Dimension.h DispatchObject.h EnsembleIn.h EnsembleOutList.h Exec.h Exec_SplitCoords.h FileIO.h FileName.h FileTypes.h Frame.h FramePtrArray.h InputTrajCommon.h MaskToken.h Matrix_3x3.h MetaData.h Molecule.h NameType.h Parallel.h ParameterHolders.h ParameterSet.h ParameterTypes.h ProgressBar.h Range.h ReferenceFrame.h ReplicaDimArray.h ReplicaInfo.h Residue.h SymbolExporting.h TextFormat.h Timer.h Topology.h TrajFrameCounter.h Trajin.h TrajinList.h TrajoutList.h TypeNameHolder.h Vec3.h Exec_System.o : Exec_System.cpp Action.h ActionList.h ActionState.h Analysis.h AnalysisList.h AnalysisState.h ArgList.h AssociatedData.h Atom.h AtomExtra.h AtomMask.h AtomType.h BaseIOtype.h Box.h Constants.h CoordinateInfo.h CpptrajFile.h CpptrajState.h CpptrajStdio.h DataFile.h DataFileList.h DataIO.h DataSet.h DataSetList.h DataSet_Coords.h DataSet_Coords_REF.h Dimension.h DispatchObject.h EnsembleIn.h EnsembleOutList.h Exec.h Exec_System.h FileIO.h FileName.h FileTypes.h Frame.h FramePtrArray.h InputTrajCommon.h MaskToken.h Matrix_3x3.h MetaData.h Molecule.h NameType.h Parallel.h ParameterHolders.h ParameterSet.h ParameterTypes.h Range.h ReferenceFrame.h ReplicaDimArray.h ReplicaInfo.h Residue.h SymbolExporting.h TextFormat.h Timer.h Topology.h TrajFrameCounter.h Trajin.h TrajinList.h TrajoutList.h TypeNameHolder.h Vec3.h @@ -289,8 +289,9 @@ FileIO_Std.o : FileIO_Std.cpp FileIO.h FileIO_Std.h FileName.o : FileName.cpp CpptrajStdio.h FileName.h StringRoutines.h FileTypes.o : FileTypes.cpp ArgList.h BaseIOtype.h CpptrajStdio.h FileTypes.h File_TempName.o : File_TempName.cpp CpptrajStdio.h FileName.h File_TempName.h StringRoutines.h -ForLoop_integer.o : ForLoop_integer.cpp ArgList.h AssociatedData.h Atom.h AtomExtra.h AtomMask.h AtomType.h Box.h Constants.h CoordinateInfo.h CpptrajFile.h CpptrajStdio.h DataSet.h DataSetList.h DataSet_Coords.h DataSet_Coords_REF.h Dimension.h FileIO.h FileName.h ForLoop.h ForLoop_integer.h Frame.h MaskToken.h Matrix_3x3.h MetaData.h Molecule.h NameType.h Parallel.h ParameterHolders.h ParameterSet.h ParameterTypes.h Range.h ReferenceFrame.h ReplicaDimArray.h Residue.h StringRoutines.h SymbolExporting.h TextFormat.h Timer.h Topology.h TypeNameHolder.h Vec3.h -ForLoop_list.o : ForLoop_list.cpp ArgList.h AssociatedData.h Atom.h AtomExtra.h AtomMask.h AtomType.h Box.h Constants.h CoordinateInfo.h CpptrajFile.h CpptrajStdio.h DataSet.h DataSetList.h DataSet_Coords.h DataSet_Coords_REF.h Dimension.h FileIO.h FileName.h ForLoop.h ForLoop_list.h Frame.h MaskToken.h Matrix_3x3.h MetaData.h Molecule.h NameType.h Parallel.h ParameterHolders.h ParameterSet.h ParameterTypes.h Range.h ReferenceFrame.h ReplicaDimArray.h Residue.h SymbolExporting.h TextFormat.h Timer.h Topology.h TypeNameHolder.h Vec3.h +ForLoop.o : ForLoop.cpp ArgList.h AssociatedData.h Atom.h AtomExtra.h AtomMask.h AtomType.h Box.h Constants.h CoordinateInfo.h CpptrajFile.h CpptrajStdio.h DataSet.h DataSetList.h DataSet_Coords.h DataSet_Coords_REF.h Dimension.h FileIO.h FileName.h ForLoop.h Frame.h MaskToken.h Matrix_3x3.h MetaData.h Molecule.h NameType.h Parallel.h ParameterHolders.h ParameterSet.h ParameterTypes.h Range.h ReferenceFrame.h ReplicaDimArray.h Residue.h SymbolExporting.h TextFormat.h Timer.h Topology.h TypeNameHolder.h Vec3.h +ForLoop_integer.o : ForLoop_integer.cpp Action.h ActionList.h ActionState.h Analysis.h AnalysisList.h AnalysisState.h ArgList.h AssociatedData.h Atom.h AtomExtra.h AtomMask.h AtomType.h BaseIOtype.h Box.h Constants.h CoordinateInfo.h CpptrajFile.h CpptrajState.h CpptrajStdio.h DataFile.h DataFileList.h DataIO.h DataSet.h DataSetList.h DataSet_Coords.h DataSet_Coords_REF.h Dimension.h DispatchObject.h EnsembleIn.h EnsembleOutList.h FileIO.h FileName.h FileTypes.h ForLoop.h ForLoop_integer.h Frame.h FramePtrArray.h InputTrajCommon.h MaskToken.h Matrix_3x3.h MetaData.h Molecule.h NameType.h Parallel.h ParameterHolders.h ParameterSet.h ParameterTypes.h Range.h ReferenceFrame.h ReplicaDimArray.h ReplicaInfo.h Residue.h StringRoutines.h SymbolExporting.h TextFormat.h Timer.h Topology.h TrajFrameCounter.h Trajin.h TrajinList.h TrajoutList.h TypeNameHolder.h Vec3.h +ForLoop_list.o : ForLoop_list.cpp Action.h ActionList.h ActionState.h Analysis.h AnalysisList.h AnalysisState.h ArgList.h AssociatedData.h Atom.h AtomExtra.h AtomMask.h AtomType.h BaseIOtype.h Box.h Constants.h CoordinateInfo.h CpptrajFile.h CpptrajState.h CpptrajStdio.h DataFile.h DataFileList.h DataIO.h DataSet.h DataSetList.h DataSet_Coords.h DataSet_Coords_REF.h Dimension.h DispatchObject.h EnsembleIn.h EnsembleOutList.h FileIO.h FileName.h FileTypes.h ForLoop.h ForLoop_list.h Frame.h FramePtrArray.h InputTrajCommon.h MaskToken.h Matrix_3x3.h MetaData.h Molecule.h NameType.h Parallel.h ParameterHolders.h ParameterSet.h ParameterTypes.h Range.h ReferenceFrame.h ReplicaDimArray.h ReplicaInfo.h Residue.h SymbolExporting.h TextFormat.h Timer.h Topology.h TrajFrameCounter.h Trajin.h TrajinList.h TrajoutList.h TypeNameHolder.h Vec3.h ForLoop_mask.o : ForLoop_mask.cpp Action.h ActionList.h ActionState.h Analysis.h AnalysisList.h AnalysisState.h ArgList.h AssociatedData.h Atom.h AtomExtra.h AtomMask.h AtomType.h BaseIOtype.h Box.h Constants.h CoordinateInfo.h CpptrajFile.h CpptrajState.h CpptrajStdio.h DataFile.h DataFileList.h DataIO.h DataSet.h DataSetList.h DataSet_Coords.h DataSet_Coords_REF.h Dimension.h DispatchObject.h EnsembleIn.h EnsembleOutList.h FileIO.h FileName.h FileTypes.h ForLoop.h ForLoop_mask.h Frame.h FramePtrArray.h InputTrajCommon.h MaskToken.h Matrix_3x3.h MetaData.h Molecule.h NameType.h Parallel.h ParameterHolders.h ParameterSet.h ParameterTypes.h Range.h ReferenceFrame.h ReplicaDimArray.h ReplicaInfo.h Residue.h StringRoutines.h SymbolExporting.h TextFormat.h Timer.h Topology.h TrajFrameCounter.h Trajin.h TrajinList.h TrajoutList.h TypeNameHolder.h Vec3.h Frame.o : Frame.cpp Atom.h AtomMask.h Box.h Constants.h CoordinateInfo.h CpptrajStdio.h Frame.h MaskToken.h Matrix_3x3.h Molecule.h NameType.h Parallel.h ReplicaDimArray.h Residue.h SymbolExporting.h Vec3.h GridAction.o : GridAction.cpp ArgList.h ArrayIterator.h AssociatedData.h Atom.h AtomExtra.h AtomMask.h AtomType.h Box.h Constants.h CoordinateInfo.h CpptrajFile.h CpptrajStdio.h DataSet.h DataSetList.h DataSet_3D.h DataSet_Coords.h DataSet_Coords_REF.h DataSet_GridFlt.h Dimension.h FileIO.h FileName.h Frame.h Grid.h GridAction.h GridBin.h MaskToken.h Matrix_3x3.h MetaData.h Molecule.h NameType.h Parallel.h ParameterHolders.h ParameterSet.h ParameterTypes.h Range.h ReferenceFrame.h ReplicaDimArray.h Residue.h SymbolExporting.h TextFormat.h Timer.h Topology.h TypeNameHolder.h Vec3.h diff --git a/src/cpptrajfiles b/src/cpptrajfiles index abbbac388c..81d3179756 100644 --- a/src/cpptrajfiles +++ b/src/cpptrajfiles @@ -289,6 +289,7 @@ COMMON_SOURCES= \ FileIO_Std.cpp \ FileName.cpp \ FileTypes.cpp \ + ForLoop.cpp \ ForLoop_integer.cpp \ ForLoop_list.cpp \ ForLoop_mask.cpp \ From 5dd44e8f3b651c2ce52137ec6b409838bfa8efea Mon Sep 17 00:00:00 2001 From: "Daniel R. Roe" Date: Sat, 21 Dec 2019 15:35:23 -0500 Subject: [PATCH 037/162] DRR - Loop variable cannot be the same as DataSet name anymore --- test/Test_Control/RunTest.sh | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/test/Test_Control/RunTest.sh b/test/Test_Control/RunTest.sh index 86b2a61c16..b0654685f8 100755 --- a/test/Test_Control/RunTest.sh +++ b/test/Test_Control/RunTest.sh @@ -27,8 +27,8 @@ for atoms A0 inmask :2-4@N atoms A1 inmask :2-4@H done rms :1-12&!@H= -for residues R1 inmask :1-12 r=1;r++ - rms R\$r \$R1&!@H= nofit out rms.nofit.dat +for residues MyRes inmask :1-12 r=1;r++ + rms R\$r \$MyRes&!@H= nofit out rms.nofit.dat done show From 5db7fc66747cc87383562540eb9969ad2654a2fa Mon Sep 17 00:00:00 2001 From: "Daniel R. Roe" Date: Sat, 21 Dec 2019 15:37:17 -0500 Subject: [PATCH 038/162] DRR - Give vectors a name --- test/Test_Control/RunTest.sh | 4 ++-- test/Test_Control/TRP.vec.dat.save | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/test/Test_Control/RunTest.sh b/test/Test_Control/RunTest.sh index b0654685f8..92b5eb58e2 100755 --- a/test/Test_Control/RunTest.sh +++ b/test/Test_Control/RunTest.sh @@ -13,8 +13,8 @@ cat > for.in < Date: Sat, 21 Dec 2019 15:38:23 -0500 Subject: [PATCH 039/162] DRR - Give RMS sets a name --- test/Test_Control/RunTest.sh | 2 +- test/Test_Control/TRP.rms.dat.save | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/test/Test_Control/RunTest.sh b/test/Test_Control/RunTest.sh index 92b5eb58e2..2ac45cceb5 100755 --- a/test/Test_Control/RunTest.sh +++ b/test/Test_Control/RunTest.sh @@ -15,7 +15,7 @@ parm ../tz2.parm7 trajin \$FNAME 1 10 for residues T inmask :TRP nvec=1;nvec++ vector v\$nvec \$T center out TRP.vec.dat - rms first \$T out TRP.rms.dat + rms RMS\$T first \$T out TRP.rms.dat for atoms A0 inmask @CA distance \$T \$A0 out TRP.CA.dist.dat done diff --git a/test/Test_Control/TRP.rms.dat.save b/test/Test_Control/TRP.rms.dat.save index 80e3590b40..db2147d4c3 100644 --- a/test/Test_Control/TRP.rms.dat.save +++ b/test/Test_Control/TRP.rms.dat.save @@ -1,4 +1,4 @@ -#Frame RMSD_00002 RMSD_00017 RMSD_00032 RMSD_00047 +#Frame RMS:2 RMS:4 RMS:9 RMS:11 1 0.0000 0.0000 0.0000 0.0000 2 0.4543 0.7856 0.5907 0.8269 3 0.4360 0.4415 0.5069 0.5077 From 06e144021ad30f0148aa6946beda74831404417e Mon Sep 17 00:00:00 2001 From: "Daniel R. Roe" Date: Sat, 21 Dec 2019 15:39:57 -0500 Subject: [PATCH 040/162] DRR - Give distance sets a name --- test/Test_Control/RunTest.sh | 2 +- test/Test_Control/TRP.CA.dist.dat.save | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/test/Test_Control/RunTest.sh b/test/Test_Control/RunTest.sh index 2ac45cceb5..1307345311 100755 --- a/test/Test_Control/RunTest.sh +++ b/test/Test_Control/RunTest.sh @@ -17,7 +17,7 @@ for residues T inmask :TRP nvec=1;nvec++ vector v\$nvec \$T center out TRP.vec.dat rms RMS\$T first \$T out TRP.rms.dat for atoms A0 inmask @CA - distance \$T \$A0 out TRP.CA.dist.dat + distance d\$T\$A0 \$T \$A0 out TRP.CA.dist.dat done distance \$T :1-12 out TRP.tocenter.dat done diff --git a/test/Test_Control/TRP.CA.dist.dat.save b/test/Test_Control/TRP.CA.dist.dat.save index a01dfb9215..80e705ed07 100644 --- a/test/Test_Control/TRP.CA.dist.dat.save +++ b/test/Test_Control/TRP.CA.dist.dat.save @@ -1,4 +1,4 @@ -#Frame Dis_00003 Dis_00004 Dis_00005 Dis_00006 Dis_00007 Dis_00008 Dis_00009 Dis_00010 Dis_00011 Dis_00012 Dis_00013 Dis_00014 Dis_00018 Dis_00019 Dis_00020 Dis_00021 Dis_00022 Dis_00023 Dis_00024 Dis_00025 Dis_00026 Dis_00027 Dis_00028 Dis_00029 Dis_00033 Dis_00034 Dis_00035 Dis_00036 Dis_00037 Dis_00038 Dis_00039 Dis_00040 Dis_00041 Dis_00042 Dis_00043 Dis_00044 Dis_00048 Dis_00049 Dis_00050 Dis_00051 Dis_00052 Dis_00053 Dis_00054 Dis_00055 Dis_00056 Dis_00057 Dis_00058 Dis_00059 +#Frame d:2@5 d:2@16 d:2@40 d:2@54 d:2@78 d:2@93 d:2@107 d:2@114 d:2@136 d:2@160 d:2@174 d:2@198 d:4@5 d:4@16 d:4@40 d:4@54 d:4@78 d:4@93 d:4@107 d:4@114 d:4@136 d:4@160 d:4@174 d:4@198 d:9@5 d:9@16 d:9@40 d:9@54 d:9@78 d:9@93 d:9@107 d:9@114 d:9@136 d:9@160 d:9@174 d:9@198 d:11@5 d:11@16 d:11@40 d:11@54 d:11@78 d:11@93 d:11@107 d:11@114 d:11@136 d:11@160 d:11@174 d:11@198 1 6.7443 2.8352 4.5946 7.4907 9.2455 9.9894 13.4395 16.4273 15.1781 17.5350 19.9707 21.3728 7.2153 6.4149 4.9995 2.6011 6.0222 9.3504 12.7357 15.9296 15.3399 17.0610 18.2553 18.5355 15.8182 14.2323 11.0719 11.8949 9.6380 6.3658 6.6084 5.7932 2.3643 4.7669 7.8160 10.5976 23.4702 22.7840 19.0791 18.1056 15.3842 13.4254 11.6459 8.6478 8.5210 6.3707 2.7811 3.9029 2 6.4868 2.8755 4.4092 7.8393 9.9504 11.5650 12.1810 13.3248 14.5561 18.0553 20.7480 22.5921 6.9221 6.2039 4.3803 2.3162 5.9695 8.8578 11.2656 14.1667 15.3382 18.8862 20.3734 21.4913 9.9631 12.7271 12.3231 12.6981 11.1107 7.6845 7.6492 6.0090 2.6349 4.4150 6.8584 8.6031 19.1326 21.8961 20.6061 20.1528 17.3704 13.7086 12.7877 11.0618 8.9671 6.5987 2.8937 4.3860 3 6.3323 2.6960 4.1419 6.8452 9.7148 11.2381 11.0427 13.4736 16.3162 17.3658 21.1737 23.7666 7.7327 6.2901 5.0341 2.5197 6.1027 7.7065 9.7340 13.0271 15.5857 17.8280 21.3183 24.4891 12.0185 15.7894 15.6899 15.7782 14.9369 11.4024 9.4023 6.1441 2.4551 3.9119 4.8583 8.5013 17.5845 21.3395 21.3787 21.9455 20.8560 17.5043 15.0200 11.2888 8.0499 6.5029 2.8242 4.1358 From ea42c98103e5f6c84ba637773e32cb83a7bdb296 Mon Sep 17 00:00:00 2001 From: "Daniel R. Roe" Date: Sat, 21 Dec 2019 19:18:03 -0500 Subject: [PATCH 041/162] DRR - Name sets --- test/Test_Control/RunTest.sh | 2 +- test/Test_Control/TRP.tocenter.dat.save | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/test/Test_Control/RunTest.sh b/test/Test_Control/RunTest.sh index 1307345311..dd8d295f51 100755 --- a/test/Test_Control/RunTest.sh +++ b/test/Test_Control/RunTest.sh @@ -19,7 +19,7 @@ for residues T inmask :TRP nvec=1;nvec++ for atoms A0 inmask @CA distance d\$T\$A0 \$T \$A0 out TRP.CA.dist.dat done - distance \$T :1-12 out TRP.tocenter.dat + distance dcenter\$T \$T :1-12 out TRP.tocenter.dat done for atoms A0 inmask :2-4@N atoms A1 inmask :2-4@H diff --git a/test/Test_Control/TRP.tocenter.dat.save b/test/Test_Control/TRP.tocenter.dat.save index 2068843465..5917065cf1 100644 --- a/test/Test_Control/TRP.tocenter.dat.save +++ b/test/Test_Control/TRP.tocenter.dat.save @@ -1,4 +1,4 @@ -#Frame Dis_00015 Dis_00030 Dis_00045 Dis_00060 +#Frame dcenter:2 dcenter:4 dcenter:9 dcenter:11 1 10.6343 9.5164 5.2418 12.0643 2 10.8304 10.2452 4.7972 12.6801 3 11.1117 10.6737 7.2812 13.0838 From b15eddb4b208f6764ada719ce4cfae234218f5a8 Mon Sep 17 00:00:00 2001 From: "Daniel R. Roe" Date: Sat, 21 Dec 2019 19:19:10 -0500 Subject: [PATCH 042/162] DRR - Name sets --- test/Test_Control/RunTest.sh | 2 +- test/Test_Control/nh.dat.save | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/test/Test_Control/RunTest.sh b/test/Test_Control/RunTest.sh index dd8d295f51..ce4a9421e7 100755 --- a/test/Test_Control/RunTest.sh +++ b/test/Test_Control/RunTest.sh @@ -23,7 +23,7 @@ for residues T inmask :TRP nvec=1;nvec++ done for atoms A0 inmask :2-4@N atoms A1 inmask :2-4@H - distance \$A0 \$A1 out nh.dat + distance d\$A0\$A1 \$A0 \$A1 out nh.dat done rms :1-12&!@H= diff --git a/test/Test_Control/nh.dat.save b/test/Test_Control/nh.dat.save index 98d9b56ad2..f5eb79da3e 100644 --- a/test/Test_Control/nh.dat.save +++ b/test/Test_Control/nh.dat.save @@ -1,4 +1,4 @@ -#Frame Dis_00061 Dis_00062 Dis_00063 +#Frame d@14@15 d@38@39 d@52@53 1 1.0106 1.0100 1.0095 2 1.0102 1.0104 1.0099 3 1.0096 1.0101 1.0105 From 4d64fef5516afef729c7055ad4276b80e86a42ab Mon Sep 17 00:00:00 2001 From: "Daniel R. Roe" Date: Mon, 23 Dec 2019 10:01:00 -0500 Subject: [PATCH 043/162] DRR - Ensure final value of integer loops is updated to make behavior consistent with all common integer for loops --- src/ForLoop_integer.cpp | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/src/ForLoop_integer.cpp b/src/ForLoop_integer.cpp index 436658a6a7..f8d1015db4 100644 --- a/src/ForLoop_integer.cpp +++ b/src/ForLoop_integer.cpp @@ -210,14 +210,15 @@ int ForLoop_integer::BeginFor(DataSetList const& DSL) { /** Check if integer for loop is done, increment if not. */ bool ForLoop_integer::EndFor(DataSetList const& DSL) { + bool retval = false; if (endOp_ == LESS_THAN) { - if (currentVal_ >= end_) return true; + if (currentVal_ >= end_) retval = true; } else if (endOp_ == GREATER_THAN) { - if (currentVal_ <= end_) return true; + if (currentVal_ <= end_) retval = true; } // Get variable value and update CurrentVars DSL.UpdateStringVar( VarName(), integerToString( currentVal_ ) ); // Increment currentVal_ += inc_; - return false; + return retval; } From a7168c16a23d40dd2ce2870819ee055885299965 Mon Sep 17 00:00:00 2001 From: "Daniel R. Roe" Date: Mon, 23 Dec 2019 11:32:23 -0500 Subject: [PATCH 044/162] DRR - Make 0 iteration loops a warning instead of an error. Ensure all integer for loops are properly integrated on loop end. Add >= and <= end ops. --- src/ControlBlock_For.cpp | 12 +++++---- src/ForLoop_integer.cpp | 56 ++++++++++++++++++++++++++++++++-------- src/ForLoop_integer.h | 2 +- 3 files changed, 53 insertions(+), 17 deletions(-) diff --git a/src/ControlBlock_For.cpp b/src/ControlBlock_For.cpp index 80fc32b1f8..26a8d2bce8 100644 --- a/src/ControlBlock_For.cpp +++ b/src/ControlBlock_For.cpp @@ -120,8 +120,8 @@ int ControlBlock_For::Start(DataSetList const& DSL) { if (Vars_.size() > 1) mprintf("\tLoop will execute for %i iterations.\n", MaxIterations); if (MaxIterations < 1) { - mprinterr("Error: Loop has less than 1 iteration.\n"); - return 1; + mprintf("Warning: Loop has less than 1 iteration.\n"); + return 0; } return 0; @@ -129,10 +129,12 @@ int ControlBlock_For::Start(DataSetList const& DSL) { /** For each mask check if done, then update variables, then increment. */ ControlBlock::DoneType ControlBlock_For::CheckDone(DataSetList const& DSL) { + DoneType retval = NOT_DONE; for (Marray::iterator MH = Vars_.begin(); MH != Vars_.end(); ++MH) { - // Exit as soon as one is done TODO check all? - if ( (*MH)->EndFor(DSL) ) return DONE; + // Exit as soon as one is done, but check all so that + // all loops are properly incremented if necessary. + if ( (*MH)->EndFor(DSL) ) retval = DONE; } - return NOT_DONE; + return retval; } diff --git a/src/ForLoop_integer.cpp b/src/ForLoop_integer.cpp index f8d1015db4..c5bbe6e490 100644 --- a/src/ForLoop_integer.cpp +++ b/src/ForLoop_integer.cpp @@ -5,7 +5,7 @@ #include "CpptrajState.h" #include "DataSetList.h" -const char* ForLoop_integer::OpStr_[] = {"+=", "-=", "<", ">"}; +const char* ForLoop_integer::OpStr_[NO_OP] = {"+=", "-=", "<", ">", "<=", ">=" }; ForLoop_integer::ForLoop_integer() : endOp_(NO_OP), @@ -54,10 +54,19 @@ int ForLoop_integer::SetupFor(CpptrajState& State, std::string const& expr, ArgL int iargIdx = 1; if (varArg.Nargs() == 3) { iargIdx = 2; - if ( varArg[1][pos0] == '<' ) - endOp_ = LESS_THAN; - else if (varArg[1][pos0] == '>') - endOp_ = GREATER_THAN; + if ( varArg[1][pos0] == '<' ) { + if ( varArg[1][pos0+1] == '=' ) { + endOp_ = LT_EQUALS; + pos1 = pos0 + 2; + } else + endOp_ = LESS_THAN; + } else if ( varArg[1][pos0] == '>' ) { + if ( varArg[1][pos0+1] == '=' ) { + endOp_ = GT_EQUALS; + pos1 = pos0 + 2; + } else + endOp_ = GREATER_THAN; + } if (endOp_ == NO_OP) { mprinterr("Error: Unrecognized end op: '%s'\n", varArg[1].substr(pos0, pos1-pos0).c_str()); @@ -153,18 +162,39 @@ int ForLoop_integer::calcNumIterations() const { // Check end > start for increment, start > end for decrement int maxval, minval; if (incOp_ == INCREMENT) { - if (start_ >= end_) { - mprinterr("Error: start must be less than end for increment.\n"); + // When incrementing, start must be less than end, so only valid end + // ops are < and <=. + if (endOp_ != LESS_THAN && endOp_ != LT_EQUALS) { + mprinterr("Error: For increment, only valid end ops are < and <=.\n"); + return LOOP_ERROR; + } + int offset = 0; + if (endOp_ == LT_EQUALS) offset = inc_; + if ( start_ >= end_ + offset ) + { + mprinterr("Error: start (%i) must be less than end (%i) for increment.\n", + start_, end_ + offset); return LOOP_ERROR; } minval = start_; - maxval = end_; + maxval = end_ + offset; } else { - if (end_ >= start_) { - mprinterr("Error: end must be less than start for decrement.\n"); + // When decrementing, end must be less than start, so only valid end + // ops are > and >=. + if (endOp_ != GREATER_THAN && endOp_ != GT_EQUALS) { + mprinterr("Error: For decrement, only valid end ops are > and >=.\n"); + return LOOP_ERROR; + } + int offset = 0; + if (endOp_ == GT_EQUALS) offset = inc_; + if ( (endOp_ == GREATER_THAN && end_ >= start_) || + (endOp_ == GT_EQUALS && end_ > start_) ) + { + mprinterr("Error: end (%i) must be less than start (%i) for decrement.\n", + end_, start_); return LOOP_ERROR; } - minval = end_; + minval = end_ + offset; maxval = start_; } // Figure out number of iterations @@ -215,6 +245,10 @@ bool ForLoop_integer::EndFor(DataSetList const& DSL) { if (currentVal_ >= end_) retval = true; } else if (endOp_ == GREATER_THAN) { if (currentVal_ <= end_) retval = true; + } else if (endOp_ == LT_EQUALS) { + if ( currentVal_ > end_ ) retval = true; + } else if (endOp_ == GT_EQUALS) { + if ( currentVal_ < end_ ) retval = true; } // Get variable value and update CurrentVars DSL.UpdateStringVar( VarName(), integerToString( currentVal_ ) ); diff --git a/src/ForLoop_integer.h b/src/ForLoop_integer.h index d056885973..64e130e3c8 100644 --- a/src/ForLoop_integer.h +++ b/src/ForLoop_integer.h @@ -10,7 +10,7 @@ class ForLoop_integer : public ForLoop { int BeginFor(DataSetList const&); bool EndFor(DataSetList const&); - enum OpType { INCREMENT=0, DECREMENT, LESS_THAN, GREATER_THAN, NO_OP }; + enum OpType { INCREMENT=0, DECREMENT, LESS_THAN, GREATER_THAN, LT_EQUALS, GT_EQUALS, NO_OP }; private: static const char* OpStr_[NO_OP]; From ad291f5623c5fea3460479db867f4cdefecb2bc8 Mon Sep 17 00:00:00 2001 From: "Daniel R. Roe" Date: Mon, 23 Dec 2019 14:55:56 -0500 Subject: [PATCH 045/162] DRR - Make start and end values that will result in no iterations a warning, not an error --- src/ForLoop_integer.cpp | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/src/ForLoop_integer.cpp b/src/ForLoop_integer.cpp index c5bbe6e490..2381e70c4a 100644 --- a/src/ForLoop_integer.cpp +++ b/src/ForLoop_integer.cpp @@ -172,9 +172,9 @@ int ForLoop_integer::calcNumIterations() const { if (endOp_ == LT_EQUALS) offset = inc_; if ( start_ >= end_ + offset ) { - mprinterr("Error: start (%i) must be less than end (%i) for increment.\n", + mprintf("Warning: start (%i) and end (%i) values result in no iterations.\n", start_, end_ + offset); - return LOOP_ERROR; + return 0; } minval = start_; maxval = end_ + offset; @@ -190,9 +190,9 @@ int ForLoop_integer::calcNumIterations() const { if ( (endOp_ == GREATER_THAN && end_ >= start_) || (endOp_ == GT_EQUALS && end_ > start_) ) { - mprinterr("Error: end (%i) must be less than start (%i) for decrement.\n", + mprintf("Warning: end (%i) and start (%i) values result in no iterations.\n", end_, start_); - return LOOP_ERROR; + return 0; } minval = end_ + offset; maxval = start_; From c6cc89d39fd099edef32ae2202feafa9447f724d Mon Sep 17 00:00:00 2001 From: "Daniel R. Roe" Date: Mon, 23 Dec 2019 15:43:20 -0500 Subject: [PATCH 046/162] DRR - No such thing as CTL objects anymore --- src/Command.cpp | 6 +----- 1 file changed, 1 insertion(+), 5 deletions(-) diff --git a/src/Command.cpp b/src/Command.cpp index 1fe0a7b462..500b02b81c 100644 --- a/src/Command.cpp +++ b/src/Command.cpp @@ -666,7 +666,7 @@ CpptrajState::RetType Command::Dispatch(CpptrajState& State, std::string const& #undef NEW_BLOCK /** Search for the given command and execute it. Replace any variables in - * command with their values. EXE and CTL commands are executed immediately + * command with their values. EXE commands are executed immediately * and then freed. ACT and ANA commands are sent to the CpptrajState for later * execution. BLK commands set up control blocks which will be executed when * the outer control block is completed. @@ -699,10 +699,6 @@ CpptrajState::RetType Command::ExecuteCommand( CpptrajState& State, ArgList cons } else { DispatchObject* obj = cmd.Alloc(); switch (cmd.Destination()) { - //case Cmd::CTL: - // ret_val = ((Control*)obj)->SetupControl(State, cmdArg, CurrentVars_); - // delete obj; - // break; case Cmd::BLK: if (AddControlBlock( (ControlBlock*)obj, State, cmdArg )) { delete obj; From 7c97a5bb40abf8731459d3911331b519a706963f Mon Sep 17 00:00:00 2001 From: "Daniel R. Roe" Date: Mon, 23 Dec 2019 15:47:33 -0500 Subject: [PATCH 047/162] DRR - Fix help. --- src/ControlBlock_For.cpp | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/src/ControlBlock_For.cpp b/src/ControlBlock_For.cpp index 26a8d2bce8..64cf06e448 100644 --- a/src/ControlBlock_For.cpp +++ b/src/ControlBlock_For.cpp @@ -30,8 +30,9 @@ void ControlBlock_For::Help() const { " the name with a '$' character.\n" " Available 'end OP' : '<' '>'\n" " Available 'increment OP' : '++', '--', '+=', '-='\n" - " Note that variables are NOT incremented after the final loop iteration,\n" - " i.e. loop variables always retain their final value.\n" + " Note that non-integer variables (e.g. for mask loops) are NOT incremented\n" + " after the final loop iteration, i.e. these loop variables always retain\n" + " their final value.\n" " Examples:\n" "\tfor atoms A0 inmask :1-27&!@H= i=1;i++\n" "\t distance d$i :TCS $A0 out $i.dat\n" From fab0b11c4c02eb17872746de517cddd3e4682330 Mon Sep 17 00:00:00 2001 From: "Daniel R. Roe" Date: Mon, 23 Dec 2019 15:48:45 -0500 Subject: [PATCH 048/162] DRR - More fixing up of help --- src/ControlBlock_For.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/ControlBlock_For.cpp b/src/ControlBlock_For.cpp index 64cf06e448..8da36f532a 100644 --- a/src/ControlBlock_For.cpp +++ b/src/ControlBlock_For.cpp @@ -28,7 +28,7 @@ void ControlBlock_For::Help() const { " names containing wildcard characters ('*' or '?').\n" " Variables created in the for loop can be referenced by prefacing\n" " the name with a '$' character.\n" - " Available 'end OP' : '<' '>'\n" + " Available 'end OP' : '<' '>' '<=' '>='\n" " Available 'increment OP' : '++', '--', '+=', '-='\n" " Note that non-integer variables (e.g. for mask loops) are NOT incremented\n" " after the final loop iteration, i.e. these loop variables always retain\n" From 285a14afb0bd02588301c3649a8f1086465b4b20 Mon Sep 17 00:00:00 2001 From: "Daniel R. Roe" Date: Mon, 23 Dec 2019 15:55:51 -0500 Subject: [PATCH 049/162] DRR - Add a check that for loop variable was properly set up. Hide some debug info --- src/ControlBlock_For.cpp | 4 ++++ src/DataSetList.cpp | 2 +- src/ForLoop.h | 16 +++++++++------- 3 files changed, 14 insertions(+), 8 deletions(-) diff --git a/src/ControlBlock_For.cpp b/src/ControlBlock_For.cpp index 8da36f532a..ee06d0017e 100644 --- a/src/ControlBlock_For.cpp +++ b/src/ControlBlock_For.cpp @@ -78,6 +78,10 @@ int ControlBlock_For::SetupBlock(CpptrajState& State, ArgList& argIn) { mprinterr("Error: For loop setup failed.\n"); return 1; } + if ( !forloop.IsSetup() ) { + mprinterr("Internal Error: For loop variable was not properly set up.\n"); + return 1; + } // Append description description_.append( forloop.Description() ); diff --git a/src/DataSetList.cpp b/src/DataSetList.cpp index 8b50f1f1fd..4d4dbee994 100644 --- a/src/DataSetList.cpp +++ b/src/DataSetList.cpp @@ -880,7 +880,7 @@ std::string DataSetList::ReplaceVariables(std::string const& varnameIn) const { value = (*((DataSet_string*)ds))[0]; else value = doubleToString(((DataSet_1D*)ds)->Dval(0)); - if (debug_ >= 0) + if (debug_ > 0) mprintf("DEBUG: Replaced variable '$%s' with value '%s' from DataSet '%s'\n", var_in_arg.c_str(), value.c_str(), ds->legend()); varname.replace(pos, var_in_arg.size()+1, value); diff --git a/src/ForLoop.h b/src/ForLoop.h index 46db91b61e..6dffcb1d3e 100644 --- a/src/ForLoop.h +++ b/src/ForLoop.h @@ -8,9 +8,9 @@ class DataSet; /// Abstract base class for all for loops class ForLoop { public: - //ForLoop() : varType_(UNKNOWN), Niterations_(-1) {} - ForLoop() {} + ForLoop() : loopvar_(0) {} virtual ~ForLoop() {} + /// Set up the loop, ensure syntax is correct virtual int SetupFor(CpptrajState&, std::string const&, ArgList&) = 0; /// Start the loop @@ -18,25 +18,27 @@ class ForLoop { virtual int BeginFor(DataSetList const&) = 0; /// \return True if loop is done, otherwise increment the loop virtual bool EndFor(DataSetList const&) = 0; + /// Return value when number of iterations is not known static const int NITERATIONS_UNKNOWN = -1; /// Return value when an error has occurred static const int LOOP_ERROR = -2; + /// \return For loop description TODO make virtual fn? std::string const& Description() const { return description_; } - //std::string const& VarName() const { return varname_; } + /// \return For loop variable name std::string const& VarName() const; + /// \return true if For loop is set up and has a variable + bool IsSetup() const { return (loopvar_ != 0); } protected: + /// Set loop description. Should be called inside SetupFor. void SetDescription(std::string const& descIn) { description_ = descIn; } - //void SetType(ForType f) { varType_ = f; } - /// Set up the loop variable with given name. + /// Set up the loop variable with given name. Should be called inside SetupFor int SetupLoopVar(DataSetList&, std::string const&); //ForType VarType() const { return varType_; } private: std::string description_; ///< For loop long description DataSet* loopvar_; ///< Variable over which loop is iterating. - //std::string varname_; ///< Variable over which for loop is iterating - //ForType varType_; ///< For loop type }; #endif From 7893e56b0f9f820f1e629bb37eca0bb59652a803 Mon Sep 17 00:00:00 2001 From: "Daniel R. Roe" Date: Mon, 23 Dec 2019 15:58:42 -0500 Subject: [PATCH 050/162] DRR - Hide some more debug info --- src/Command.cpp | 2 +- src/ForLoop_integer.cpp | 6 +++--- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/src/Command.cpp b/src/Command.cpp index 500b02b81c..99e5885ba0 100644 --- a/src/Command.cpp +++ b/src/Command.cpp @@ -565,7 +565,7 @@ bool Command::UnterminatedControl() { int Command::AddControlBlock(ControlBlock* ctl, CpptrajState& State, ArgList& cmdArg) { if ( ctl->SetupBlock( State, cmdArg ) ) return 1; - if (ctlidx_ == -1) mprintf("CONTROL: Starting control block.\n"); + if (ctlidx_ == -1) mprintf("CONTROL: Parsing control block.\n"); control_.push_back( ctl ); ctlidx_++; mprintf(" BLOCK %2i: ", ctlidx_); diff --git a/src/ForLoop_integer.cpp b/src/ForLoop_integer.cpp index 2381e70c4a..3a723ac8d9 100644 --- a/src/ForLoop_integer.cpp +++ b/src/ForLoop_integer.cpp @@ -22,7 +22,7 @@ int ForLoop_integer::SetupFor(CpptrajState& State, std::string const& expr, ArgL // [=;[;][]] //SetType( INTEGER ); ArgList varArg( expr, ";" ); - varArg.PrintDebug(); // DEBUG + //varArg.PrintDebug(); // DEBUG if (varArg.Nargs() < 2 || varArg.Nargs() > 3) { mprinterr("Error: Malformed 'for' loop variable.\n" "Error: Expected '[=;[;][]]'\n" @@ -37,7 +37,7 @@ int ForLoop_integer::SetupFor(CpptrajState& State, std::string const& expr, ArgL return 1; } if (SetupLoopVar( State.DSL(),startArg[0] )) return 1; - mprintf("DEBUG: Start argument: '%s' = '%s'\n", VarName().c_str(), startArg[1].c_str()); + //mprintf("DEBUG: Start argument: '%s' = '%s'\n", VarName().c_str(), startArg[1].c_str()); if ( startArg[1][0] == '$' ) { // Variable name startVarName_ = RemoveLeadingChars(startArg[1], 1); @@ -73,7 +73,7 @@ int ForLoop_integer::SetupFor(CpptrajState& State, std::string const& expr, ArgL return 1; } std::string endStr = varArg[1].substr(pos1); - mprintf("DEBUG: endStr= '%s'\n", endStr.c_str()); + //mprintf("DEBUG: endStr= '%s'\n", endStr.c_str()); if ( endStr[0] == '$' ) { // Variable name endVarName_ = RemoveLeadingChars(endStr, 1); From ade4bebb72e8ce46afe40fc2780f0a018356e7d1 Mon Sep 17 00:00:00 2001 From: "Daniel R. Roe" Date: Mon, 30 Dec 2019 15:51:21 -0500 Subject: [PATCH 051/162] DRR - Start adding data set blocks loop --- src/ControlBlock_For.cpp | 2 +- src/ForLoop_dataSetBlocks.cpp | 41 +++++++++++++++++++++++++++++++++++ 2 files changed, 42 insertions(+), 1 deletion(-) create mode 100644 src/ForLoop_dataSetBlocks.cpp diff --git a/src/ControlBlock_For.cpp b/src/ControlBlock_For.cpp index ee06d0017e..f8f5d74a39 100644 --- a/src/ControlBlock_For.cpp +++ b/src/ControlBlock_For.cpp @@ -18,7 +18,7 @@ ControlBlock_For::~ControlBlock_For() { void ControlBlock_For::Help() const { mprintf("\t{ {atoms|residues|molecules|molfirstres|mollastres}\n" "\t inmask [%s] ... |\n" - "\t in \n" + "\t in |\n" "\t =;[;][] ... }\n", DataSetList::TopIdxArgs); mprintf("\tEND KEYWORD: 'done'\n"); diff --git a/src/ForLoop_dataSetBlocks.cpp b/src/ForLoop_dataSetBlocks.cpp new file mode 100644 index 0000000000..1782d4149b --- /dev/null +++ b/src/ForLoop_dataSetBlocks.cpp @@ -0,0 +1,41 @@ +#include "ForLoop_dataSetBlocks.h" +#include "CpptrajStdio.h" + +int ForLoop_dataSetBlocks::SetupFor(CpptrajState& State, std::string const& expr, ArgList& argIn) +{ + // datasetblocks blocksize <#> [blockoffset <#>] + std::string dsname = argIn.GetStringKey("datasetblocks"); + if (dsname.empty()) { + mprinterr("Error: No data set name given.\n"); + return 1; + } + sourceSet_ = State.DSL().GetDataSet( dsname ); + if (sourceSet_ == 0) { + mprinterr("Error: No data set found with name '%s'\n", dsname.c_str()); + return 1; + } + if (sourceSet_->Size() < 1) { + mprinterr("Error: Data set is empty.\n"); + return 1; + } + if (sourceSet_->Group() != DataSet::SCALAR_1D && + sourceSet_->Type() != DataSet::VECTOR) + { + mprinterr("Error: Set '%s' is not 1D scalar or vector.\n"); + return 1; + } + blocksize_ = argIn.getKeyInteger("blocksize", 0); + if (blocksize_ < 1) { + mprinterr("Error: No blocksize or invalid blocksize: %i\n", blocksize_); + return 1; + } + if ((unsigned int)blocksize_ >= sourceSet_->Size()) { + // TODO make sure we are doing at least 2 iterations? + mprinterr("Error: block size %i is greater than data set size %zu\n", + blocksize_, sourceSet_=>Size()); + return 1; + } + // TODO figure out a clever way to make sure we're not accessing another 'for' block + blockoffset_ = argIn.getKeyInteger("blockoffset", -1); + if (blockoffset < 1) + block From ee6802d5f320c693370941d7b5de1f07b2d64bac Mon Sep 17 00:00:00 2001 From: "Daniel R. Roe" Date: Tue, 31 Dec 2019 09:00:24 -0500 Subject: [PATCH 052/162] DRR - Exit if error occurrs setting up loop var --- src/ForLoop_list.cpp | 2 +- src/ForLoop_mask.cpp | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/src/ForLoop_list.cpp b/src/ForLoop_list.cpp index 7d7e110d99..961bf86510 100644 --- a/src/ForLoop_list.cpp +++ b/src/ForLoop_list.cpp @@ -10,7 +10,7 @@ int ForLoop_list::SetupFor(CpptrajState& State, std::string const& expr, ArgList //MH.varType_ = ftype; argIn.PrintDebug(); // Variable name. Should be expr. - SetupLoopVar( State.DSL(), expr ); + if (SetupLoopVar( State.DSL(), expr )) return 1; // Comma-separated list of strings. std::string listArg = argIn.GetStringKey("in"); if (listArg.empty()) { diff --git a/src/ForLoop_mask.cpp b/src/ForLoop_mask.cpp index ef5cae69ca..b9b0ffafbf 100644 --- a/src/ForLoop_mask.cpp +++ b/src/ForLoop_mask.cpp @@ -33,7 +33,7 @@ int ForLoop_mask::SetupFor(CpptrajState& State, std::string const& expr, ArgList Topology* top = State.DSL().GetTopByIndex( argIn ); if (top != 0) currentTop = top; if (currentTop == 0) return 1; - SetupLoopVar( State.DSL(), argIn.GetStringNext() ); + if (SetupLoopVar( State.DSL(), argIn.GetStringNext() )) return 1; // Set up mask if (currentTop->SetupIntegerMask( currentMask )) return 1; currentMask.MaskInfo(); From 5795aaae8afdc2632bf6ecebfc18d7f79f3abed0 Mon Sep 17 00:00:00 2001 From: "Daniel R. Roe" Date: Tue, 31 Dec 2019 09:06:28 -0500 Subject: [PATCH 053/162] DRR - More loop setup --- src/ForLoop_dataSetBlocks.cpp | 33 ++++++++++++++++++++++++++++----- src/ForLoop_dataSetBlocks.h | 18 ++++++++++++++++++ 2 files changed, 46 insertions(+), 5 deletions(-) create mode 100644 src/ForLoop_dataSetBlocks.h diff --git a/src/ForLoop_dataSetBlocks.cpp b/src/ForLoop_dataSetBlocks.cpp index 1782d4149b..7d57248303 100644 --- a/src/ForLoop_dataSetBlocks.cpp +++ b/src/ForLoop_dataSetBlocks.cpp @@ -1,5 +1,15 @@ #include "ForLoop_dataSetBlocks.h" #include "CpptrajStdio.h" +#include "ArgList.h" +#include "CpptrajState.h" +#include "DataSet.h" + +/// CONSTRUCTOR +ForLoop_dataSetBlocks::ForLoop_dataSetBlocks() : + sourceSet_(0), + blocksize_(0), + blockoffset_(0) +{} int ForLoop_dataSetBlocks::SetupFor(CpptrajState& State, std::string const& expr, ArgList& argIn) { @@ -24,7 +34,7 @@ int ForLoop_dataSetBlocks::SetupFor(CpptrajState& State, std::string const& expr mprinterr("Error: Set '%s' is not 1D scalar or vector.\n"); return 1; } - blocksize_ = argIn.getKeyInteger("blocksize", 0); + blocksize_ = argIn.getKeyInt("blocksize", 0); if (blocksize_ < 1) { mprinterr("Error: No blocksize or invalid blocksize: %i\n", blocksize_); return 1; @@ -32,10 +42,23 @@ int ForLoop_dataSetBlocks::SetupFor(CpptrajState& State, std::string const& expr if ((unsigned int)blocksize_ >= sourceSet_->Size()) { // TODO make sure we are doing at least 2 iterations? mprinterr("Error: block size %i is greater than data set size %zu\n", - blocksize_, sourceSet_=>Size()); + blocksize_, sourceSet_->Size()); return 1; } // TODO figure out a clever way to make sure we're not accessing another 'for' block - blockoffset_ = argIn.getKeyInteger("blockoffset", -1); - if (blockoffset < 1) - block + blockoffset_ = argIn.getKeyInt("blockoffset", -1); + if (blockoffset_ < 1) { + mprintf("Warning: 'blockoffset' not specified, using 'blocksize'.\n"); + blockoffset_ = blocksize_; + } + if (blockoffset_ > blocksize_) { + mprinterr("Error: Block offset is greater than block size.\n"); + return 1; + } + // Set up loop variable + if (SetupLoopVar( State.DSL(), argIn.GetStringNext() )) return 1; + // Description + std::string description(VarName() + " datasetblocks " + sourceSet_->Meta().Name()); + SetDescription( description ); + return 0; +} diff --git a/src/ForLoop_dataSetBlocks.h b/src/ForLoop_dataSetBlocks.h new file mode 100644 index 0000000000..41329454d1 --- /dev/null +++ b/src/ForLoop_dataSetBlocks.h @@ -0,0 +1,18 @@ +#ifndef INC_FORLOOP_DATASETBLOCKS_H +#define INC_FORLOOP_DATASETBLOCKS_H +#include "ForLoop.h" +/// For loop, data set blocks +class ForLoop_dataSetBlocks : public ForLoop { + public: + ForLoop_dataSetBlocks(); + + int SetupFor(CpptrajState&, std::string const&, ArgList&); + int BeginFor(DataSetList const&); + bool EndFor(DataSetList const&); + + private: + DataSet* sourceSet_; ///< Set to loop over + int blocksize_; ///< Size of blocks + int blockoffset_; ///< Block offset +}; +#endif From a054866d3eceebf41522e94b661b78e498cc3c44 Mon Sep 17 00:00:00 2001 From: "Daniel R. Roe" Date: Tue, 31 Dec 2019 09:14:57 -0500 Subject: [PATCH 054/162] DRR - Make blocksize an unsigned int --- src/ForLoop_dataSetBlocks.cpp | 23 +++++++++++++---------- src/ForLoop_dataSetBlocks.h | 7 ++++--- 2 files changed, 17 insertions(+), 13 deletions(-) diff --git a/src/ForLoop_dataSetBlocks.cpp b/src/ForLoop_dataSetBlocks.cpp index 7d57248303..8537441a69 100644 --- a/src/ForLoop_dataSetBlocks.cpp +++ b/src/ForLoop_dataSetBlocks.cpp @@ -1,3 +1,4 @@ +#include // abs #include "ForLoop_dataSetBlocks.h" #include "CpptrajStdio.h" #include "ArgList.h" @@ -8,7 +9,8 @@ ForLoop_dataSetBlocks::ForLoop_dataSetBlocks() : sourceSet_(0), blocksize_(0), - blockoffset_(0) + blockoffset_(0), + idx_(0) {} int ForLoop_dataSetBlocks::SetupFor(CpptrajState& State, std::string const& expr, ArgList& argIn) @@ -34,24 +36,25 @@ int ForLoop_dataSetBlocks::SetupFor(CpptrajState& State, std::string const& expr mprinterr("Error: Set '%s' is not 1D scalar or vector.\n"); return 1; } - blocksize_ = argIn.getKeyInt("blocksize", 0); - if (blocksize_ < 1) { - mprinterr("Error: No blocksize or invalid blocksize: %i\n", blocksize_); + int bs = argIn.getKeyInt("blocksize", 0); + if (bs < 1) { + mprinterr("Error: No blocksize or invalid blocksize: %i\n", bs); return 1; } - if ((unsigned int)blocksize_ >= sourceSet_->Size()) { + blocksize_ = (unsigned int)bs; + if (blocksize_ >= sourceSet_->Size()) { // TODO make sure we are doing at least 2 iterations? - mprinterr("Error: block size %i is greater than data set size %zu\n", + mprinterr("Error: block size %u is greater than data set size %zu\n", blocksize_, sourceSet_->Size()); return 1; } // TODO figure out a clever way to make sure we're not accessing another 'for' block - blockoffset_ = argIn.getKeyInt("blockoffset", -1); - if (blockoffset_ < 1) { + blockoffset_ = argIn.getKeyInt("blockoffset", 0); + if (blockoffset_ == 0) { mprintf("Warning: 'blockoffset' not specified, using 'blocksize'.\n"); - blockoffset_ = blocksize_; + blockoffset_ = (int)blocksize_; } - if (blockoffset_ > blocksize_) { + if (abs(blockoffset_) > (int)blocksize_) { mprinterr("Error: Block offset is greater than block size.\n"); return 1; } diff --git a/src/ForLoop_dataSetBlocks.h b/src/ForLoop_dataSetBlocks.h index 41329454d1..357319c52b 100644 --- a/src/ForLoop_dataSetBlocks.h +++ b/src/ForLoop_dataSetBlocks.h @@ -11,8 +11,9 @@ class ForLoop_dataSetBlocks : public ForLoop { bool EndFor(DataSetList const&); private: - DataSet* sourceSet_; ///< Set to loop over - int blocksize_; ///< Size of blocks - int blockoffset_; ///< Block offset + DataSet* sourceSet_; ///< Set to loop over + unsigned int blocksize_; ///< Size of blocks + int blockoffset_; ///< Block offset + unsigned int idx_; ///< Current index into sourceSet_ }; #endif From 4533f48d2e5f027a717072ded608fdf001cbc656 Mon Sep 17 00:00:00 2001 From: "Daniel R. Roe" Date: Wed, 1 Jan 2020 13:57:44 -0500 Subject: [PATCH 055/162] DRR - Start splitting for loop components into separate argument lists --- src/ControlBlock_For.cpp | 50 ++++++++++++++++++++++++++++++++++++++++ 1 file changed, 50 insertions(+) diff --git a/src/ControlBlock_For.cpp b/src/ControlBlock_For.cpp index f8f5d74a39..50359e6ae2 100644 --- a/src/ControlBlock_For.cpp +++ b/src/ControlBlock_For.cpp @@ -49,8 +49,58 @@ int ControlBlock_For::SetupBlock(CpptrajState& State, ArgList& argIn) { Vars_.clear(); description_.assign("for ("); int iarg = 0; + // Parse out each component of this for block. E.g. + // . . . + // for atoms X inmask :30 name in var1,var2,var3 i=0;i++ + // 0 1 2 3 4 5 6 7 8 + // * * * + // component 1: 1,2,3,4 + // component 2: 5,6,7 + // component 3: 8 + std::vector forLoopIdxs; + for (int iarg = 1; iarg < argIn.Nargs(); iarg++) { + if (argIn[iarg] == "inmask") { + int idx = iarg - 2; + if (idx < 1) { + mprinterr("Error: Malformed 'inmask' for loop.\n"); + return 1; + } + forLoopIdxs.push_back( idx ); + } else if (argIn[iarg] == "in") { + int idx = iarg - 1; + if (idx < 1) { + mprinterr("Error: Malformed 'in' for loop.\n"); + return 1; + } + forLoopIdxs.push_back( idx ); + } else if ( argIn[iarg].find(";") != std::string::npos ) { + forLoopIdxs.push_back( iarg ); + } + } + forLoopIdxs.push_back( argIn.Nargs() ); + mprintf("DEBUG: For loop indices:"); + for (std::vector::const_iterator it = forLoopIdxs.begin(); + it != forLoopIdxs.end(); ++it) + mprintf(" %i", *it); + mprintf("\n"); + if (forLoopIdxs.size() < 2) { + mprinterr("Error: No recognized for loop arguments.\n"); + return 1; + } + // Set up each individual for loop. + for (unsigned int idx = 1; idx < forLoopIdxs.size(); ++idx) + { + ArgList forLoopArgs; + for (int jdx = forLoopIdxs[idx-1]; jdx < forLoopIdxs[idx]; ++jdx) + forLoopArgs.AddArg( argIn[jdx] ); + forLoopArgs.PrintDebug(); + } + while (iarg < argIn.Nargs()) { + // inmask ... + // in ... + // ;... // Advance to next unmarked argument. while (iarg < argIn.Nargs() && argIn.Marked(iarg)) iarg++; if (iarg == argIn.Nargs()) break; From f6032e075ba6a656f7a27fbedc1837012b4a6b1a Mon Sep 17 00:00:00 2001 From: "Daniel R. Roe" Date: Wed, 1 Jan 2020 14:15:45 -0500 Subject: [PATCH 056/162] DRR - Better way of handling individual for loop components; should be no cross-contamination between multiple for loop components of the same type --- src/ControlBlock_For.cpp | 50 +++++++++++------------------------ src/ForLoop.h | 2 +- src/ForLoop_dataSetBlocks.cpp | 2 +- src/ForLoop_dataSetBlocks.h | 2 +- src/ForLoop_integer.cpp | 11 +++++--- src/ForLoop_integer.h | 2 +- src/ForLoop_list.cpp | 8 +++--- src/ForLoop_list.h | 2 +- src/ForLoop_mask.cpp | 17 ++++++------ src/ForLoop_mask.h | 2 +- src/cpptrajdepend | 2 +- 11 files changed, 44 insertions(+), 56 deletions(-) diff --git a/src/ControlBlock_For.cpp b/src/ControlBlock_For.cpp index 50359e6ae2..9515c11073 100644 --- a/src/ControlBlock_For.cpp +++ b/src/ControlBlock_For.cpp @@ -1,7 +1,7 @@ #include "ControlBlock_For.h" #include "CpptrajStdio.h" #include "ArgList.h" -#include "DataSetList.h" // TODO move into ForLoop help? +#include "CpptrajState.h" // TODO move into ForLoop help? // For loop types #include "ForLoop.h" #include "ForLoop_integer.h" @@ -48,7 +48,6 @@ int ControlBlock_For::SetupBlock(CpptrajState& State, ArgList& argIn) { mprintf(" Setting up 'for' loop.\n"); Vars_.clear(); description_.assign("for ("); - int iarg = 0; // Parse out each component of this for block. E.g. // . . . // for atoms X inmask :30 name in var1,var2,var3 i=0;i++ @@ -57,6 +56,7 @@ int ControlBlock_For::SetupBlock(CpptrajState& State, ArgList& argIn) { // component 1: 1,2,3,4 // component 2: 5,6,7 // component 3: 8 + argIn.MarkArg(0); std::vector forLoopIdxs; for (int iarg = 1; iarg < argIn.Nargs(); iarg++) { if (argIn[iarg] == "inmask") { @@ -66,6 +66,7 @@ int ControlBlock_For::SetupBlock(CpptrajState& State, ArgList& argIn) { return 1; } forLoopIdxs.push_back( idx ); + Vars_.push_back( static_cast( new ForLoop_mask() ) ); } else if (argIn[iarg] == "in") { int idx = iarg - 1; if (idx < 1) { @@ -73,9 +74,12 @@ int ControlBlock_For::SetupBlock(CpptrajState& State, ArgList& argIn) { return 1; } forLoopIdxs.push_back( idx ); + Vars_.push_back( static_cast( new ForLoop_list() ) ); } else if ( argIn[iarg].find(";") != std::string::npos ) { forLoopIdxs.push_back( iarg ); + Vars_.push_back( static_cast( new ForLoop_integer() ) ); } + argIn.MarkArg(iarg); } forLoopIdxs.push_back( argIn.Nargs() ); mprintf("DEBUG: For loop indices:"); @@ -94,37 +98,8 @@ int ControlBlock_For::SetupBlock(CpptrajState& State, ArgList& argIn) { for (int jdx = forLoopIdxs[idx-1]; jdx < forLoopIdxs[idx]; ++jdx) forLoopArgs.AddArg( argIn[jdx] ); forLoopArgs.PrintDebug(); - } - - while (iarg < argIn.Nargs()) - { - // inmask ... - // in ... - // ;... - // Advance to next unmarked argument. - while (iarg < argIn.Nargs() && argIn.Marked(iarg)) iarg++; - if (iarg == argIn.Nargs()) break; - // Determine 'for' type - int argToMark = iarg; - if ( argIn[iarg] == "atoms" || - argIn[iarg] == "residues" || - argIn[iarg] == "molecules" || - argIn[iarg] == "molfirstres" || - argIn[iarg] == "mollastres" ) - { - Vars_.push_back( static_cast( new ForLoop_mask() ) ); - } else if ( argIn[iarg].find(";") != std::string::npos ) { - Vars_.push_back( static_cast( new ForLoop_integer() ) ); - } else if (iarg+1 < argIn.Nargs() && argIn[iarg+1] == "in") { - Vars_.push_back( static_cast( new ForLoop_list() ) ); - } else { - // Exit if type could not be determined. - mprinterr("Error: for loop type not specfied.\n"); - return 1; - } - argIn.MarkArg(argToMark); - ForLoop& forloop = static_cast( *(Vars_.back()) ); - if ( forloop.SetupFor( State, argIn[iarg], argIn ) ) { + ForLoop& forloop = static_cast( *(Vars_[idx-1]) ); + if ( forloop.SetupFor( State, forLoopArgs ) ) { mprinterr("Error: For loop setup failed.\n"); return 1; } @@ -132,11 +107,18 @@ int ControlBlock_For::SetupBlock(CpptrajState& State, ArgList& argIn) { mprinterr("Internal Error: For loop variable was not properly set up.\n"); return 1; } - + if (forLoopArgs.CheckForMoreArgs()) { + if (State.ExitOnError()) { + mprinterr("Error: Not all for loop arguments handled.\n"); + return 1; + } else + mprintf("Warning: Not all for loop arguments handled.\n"); + } // Append description description_.append( forloop.Description() ); // TODO check variable name } + description_.append(") do"); return 0; diff --git a/src/ForLoop.h b/src/ForLoop.h index 6dffcb1d3e..cb7f22ef99 100644 --- a/src/ForLoop.h +++ b/src/ForLoop.h @@ -12,7 +12,7 @@ class ForLoop { virtual ~ForLoop() {} /// Set up the loop, ensure syntax is correct - virtual int SetupFor(CpptrajState&, std::string const&, ArgList&) = 0; + virtual int SetupFor(CpptrajState&, ArgList&) = 0; /// Start the loop /** \return Number of iterations in loop, or NITERATIONS_UNKNOWN. */ virtual int BeginFor(DataSetList const&) = 0; diff --git a/src/ForLoop_dataSetBlocks.cpp b/src/ForLoop_dataSetBlocks.cpp index 8537441a69..b8a0728692 100644 --- a/src/ForLoop_dataSetBlocks.cpp +++ b/src/ForLoop_dataSetBlocks.cpp @@ -13,7 +13,7 @@ ForLoop_dataSetBlocks::ForLoop_dataSetBlocks() : idx_(0) {} -int ForLoop_dataSetBlocks::SetupFor(CpptrajState& State, std::string const& expr, ArgList& argIn) +int ForLoop_dataSetBlocks::SetupFor(CpptrajState& State, ArgList& argIn) { // datasetblocks blocksize <#> [blockoffset <#>] std::string dsname = argIn.GetStringKey("datasetblocks"); diff --git a/src/ForLoop_dataSetBlocks.h b/src/ForLoop_dataSetBlocks.h index 357319c52b..3edd984fe8 100644 --- a/src/ForLoop_dataSetBlocks.h +++ b/src/ForLoop_dataSetBlocks.h @@ -6,7 +6,7 @@ class ForLoop_dataSetBlocks : public ForLoop { public: ForLoop_dataSetBlocks(); - int SetupFor(CpptrajState&, std::string const&, ArgList&); + int SetupFor(CpptrajState&, ArgList&); int BeginFor(DataSetList const&); bool EndFor(DataSetList const&); diff --git a/src/ForLoop_integer.cpp b/src/ForLoop_integer.cpp index 3a723ac8d9..17d18919c2 100644 --- a/src/ForLoop_integer.cpp +++ b/src/ForLoop_integer.cpp @@ -18,15 +18,20 @@ ForLoop_integer::ForLoop_integer() : {} /** Setup integer for loop. */ -int ForLoop_integer::SetupFor(CpptrajState& State, std::string const& expr, ArgList& argIn) { +int ForLoop_integer::SetupFor(CpptrajState& State, ArgList& argIn) { // [=;[;][]] //SetType( INTEGER ); - ArgList varArg( expr, ";" ); + // Sanity check + if (argIn.Nargs() != 1) { + mprinterr("Internal Error: Too many arguments for integer for loop.\n"); + return 1; + } + ArgList varArg( argIn.GetStringNext(), ";" ); //varArg.PrintDebug(); // DEBUG if (varArg.Nargs() < 2 || varArg.Nargs() > 3) { mprinterr("Error: Malformed 'for' loop variable.\n" "Error: Expected '[=;[;][]]'\n" - "Error: Got '%s'\n", expr.c_str()); + "Error: Got '%s'\n", argIn[0].c_str()); return 1; } // First argument: = diff --git a/src/ForLoop_integer.h b/src/ForLoop_integer.h index 64e130e3c8..1ff092181d 100644 --- a/src/ForLoop_integer.h +++ b/src/ForLoop_integer.h @@ -6,7 +6,7 @@ class ForLoop_integer : public ForLoop { public: ForLoop_integer(); - int SetupFor(CpptrajState&, std::string const&, ArgList&); + int SetupFor(CpptrajState&, ArgList&); int BeginFor(DataSetList const&); bool EndFor(DataSetList const&); diff --git a/src/ForLoop_list.cpp b/src/ForLoop_list.cpp index 961bf86510..f372327cbc 100644 --- a/src/ForLoop_list.cpp +++ b/src/ForLoop_list.cpp @@ -5,12 +5,9 @@ #include "DataSetList.h" #include "CpptrajState.h" -int ForLoop_list::SetupFor(CpptrajState& State, std::string const& expr, ArgList& argIn) { +int ForLoop_list::SetupFor(CpptrajState& State, ArgList& argIn) { // in [,...] //MH.varType_ = ftype; - argIn.PrintDebug(); - // Variable name. Should be expr. - if (SetupLoopVar( State.DSL(), expr )) return 1; // Comma-separated list of strings. std::string listArg = argIn.GetStringKey("in"); if (listArg.empty()) { @@ -22,6 +19,9 @@ int ForLoop_list::SetupFor(CpptrajState& State, std::string const& expr, ArgList mprinterr("Error: Could not parse '%s' for 'for in'\n", listArg.c_str()); return 1; } + // Variable name. + if (SetupLoopVar( State.DSL(), argIn.GetStringNext() )) return 1; + // Go through list of strings for (int il = 0; il != list.Nargs(); il++) { // Check if file name expansion should occur if (list[il].find_first_of("*?") != std::string::npos) { diff --git a/src/ForLoop_list.h b/src/ForLoop_list.h index 5468d1e661..f9b3cadb01 100644 --- a/src/ForLoop_list.h +++ b/src/ForLoop_list.h @@ -7,7 +7,7 @@ class ForLoop_list : public ForLoop { public: ForLoop_list() {} - int SetupFor(CpptrajState&, std::string const&, ArgList&); + int SetupFor(CpptrajState&, ArgList&); int BeginFor(DataSetList const&); bool EndFor(DataSetList const&); private: diff --git a/src/ForLoop_mask.cpp b/src/ForLoop_mask.cpp index b9b0ffafbf..8d68fed017 100644 --- a/src/ForLoop_mask.cpp +++ b/src/ForLoop_mask.cpp @@ -5,19 +5,19 @@ #include "StringRoutines.h" #include "DataSetList.h" -int ForLoop_mask::SetupFor(CpptrajState& State, std::string const& expr, ArgList& argIn) { +int ForLoop_mask::SetupFor(CpptrajState& State, ArgList& argIn) { static const char* TypeStr[NTYPES] = { "ATOMS ", "RESIDUES ", "MOLECULES ", "MOL_FIRST_RES ", "MOL_LAST_RES " }; // {atoms|residues|molecules} inmask [TOP KEYWORDS] Topology* currentTop = 0; mtype_ = NTYPES; - if ( expr == "atoms" ) mtype_ = ATOMS; - else if ( expr == "residues" ) mtype_ = RESIDUES; - else if ( expr == "molecules" ) mtype_ = MOLECULES; - else if ( expr == "molfirstres" ) mtype_ = MOLFIRSTRES; - else if ( expr == "mollastres" ) mtype_ = MOLLASTRES; - else { - mprinterr("Error: Unrecognized mask for loop type: %s\n", expr.c_str()); + if (argIn.hasKey("atoms")) mtype_ = ATOMS; + else if (argIn.hasKey("residues")) mtype_ = RESIDUES; + else if (argIn.hasKey("molecules")) mtype_ = MOLECULES; + else if (argIn.hasKey("molfirstres")) mtype_ = MOLFIRSTRES; + else if (argIn.hasKey("mollastres")) mtype_ = MOLLASTRES; + if (mtype_ == NTYPES) { + mprinterr("Error: No recognized type for mask 'for' loop.\n"); return 1; } //if (argIn[iarg+2] != "inmask") { @@ -33,6 +33,7 @@ int ForLoop_mask::SetupFor(CpptrajState& State, std::string const& expr, ArgList Topology* top = State.DSL().GetTopByIndex( argIn ); if (top != 0) currentTop = top; if (currentTop == 0) return 1; + // Get the variable name if (SetupLoopVar( State.DSL(), argIn.GetStringNext() )) return 1; // Set up mask if (currentTop->SetupIntegerMask( currentMask )) return 1; diff --git a/src/ForLoop_mask.h b/src/ForLoop_mask.h index c6c5e945cc..6ffa54c023 100644 --- a/src/ForLoop_mask.h +++ b/src/ForLoop_mask.h @@ -8,7 +8,7 @@ class ForLoop_mask : public ForLoop { public: ForLoop_mask() : mtype_(NTYPES) {} - int SetupFor(CpptrajState&, std::string const&, ArgList&); + int SetupFor(CpptrajState&, ArgList&); int BeginFor(DataSetList const&); bool EndFor(DataSetList const&); private: diff --git a/src/cpptrajdepend b/src/cpptrajdepend index 4134a9cf82..04ed5bc7e5 100644 --- a/src/cpptrajdepend +++ b/src/cpptrajdepend @@ -160,7 +160,7 @@ CmdList.o : CmdList.cpp Cmd.h CmdList.h DispatchObject.h Command.o : Command.cpp Action.h ActionFrameCounter.h ActionList.h ActionState.h Action_Align.h Action_Angle.h Action_AreaPerMol.h Action_AtomMap.h Action_AtomicCorr.h Action_AtomicFluct.h Action_AutoImage.h Action_Average.h Action_Bounds.h Action_Box.h Action_Center.h Action_Channel.h Action_CheckChirality.h Action_CheckStructure.h Action_Closest.h Action_ClusterDihedral.h Action_Contacts.h Action_CreateCrd.h Action_CreateReservoir.h Action_DNAionTracker.h Action_DSSP.h Action_Density.h Action_Diffusion.h Action_Dihedral.h Action_DihedralRMS.h Action_Dipole.h Action_DistRmsd.h Action_Distance.h Action_Energy.h Action_Esander.h Action_FilterByData.h Action_FixAtomOrder.h Action_FixImagedBonds.h Action_GIST.h Action_Grid.h Action_GridFreeEnergy.h Action_HydrogenBond.h Action_Image.h Action_InfraredSpectrum.h Action_Jcoupling.h Action_LESsplit.h Action_LIE.h Action_LipidOrder.h Action_MakeStructure.h Action_Mask.h Action_Matrix.h Action_MinImage.h Action_Molsurf.h Action_MultiDihedral.h Action_MultiVector.h Action_NAstruct.h Action_NMRrst.h Action_NativeContacts.h Action_OrderParameter.h Action_Outtraj.h Action_PairDist.h Action_Pairwise.h Action_Principal.h Action_Projection.h Action_Pucker.h Action_Radgyr.h Action_Radial.h Action_RandomizeIons.h Action_Remap.h Action_ReplicateCell.h Action_Rmsd.h Action_Rotate.h Action_RunningAvg.h Action_STFC_Diffusion.h Action_Scale.h Action_SetVelocity.h Action_Spam.h Action_Strip.h Action_Surf.h Action_SymmetricRmsd.h Action_Temperature.h Action_Time.h Action_Translate.h Action_Unstrip.h Action_Unwrap.h Action_Vector.h Action_VelocityAutoCorr.h Action_Volmap.h Action_Volume.h Action_Watershell.h Action_XtalSymm.h Analysis.h AnalysisList.h AnalysisState.h Analysis_AmdBias.h Analysis_AutoCorr.h Analysis_Average.h Analysis_Clustering.h Analysis_ConstantPHStats.h Analysis_Corr.h Analysis_CrankShaft.h Analysis_CrdFluct.h Analysis_CrossCorr.h Analysis_CurveFit.h Analysis_Divergence.h Analysis_FFT.h Analysis_HausdorffDistance.h Analysis_Hist.h Analysis_IRED.h Analysis_Integrate.h Analysis_KDE.h Analysis_Lifetime.h Analysis_LowestCurve.h Analysis_Matrix.h Analysis_MeltCurve.h Analysis_Modes.h Analysis_MultiHist.h Analysis_Multicurve.h Analysis_Overlap.h Analysis_PhiPsi.h Analysis_Regression.h Analysis_RemLog.h Analysis_Rms2d.h Analysis_RmsAvgCorr.h Analysis_Rotdif.h Analysis_RunningAvg.h Analysis_Slope.h Analysis_Spline.h Analysis_State.h Analysis_Statistics.h Analysis_TI.h Analysis_Timecorr.h Analysis_VectorMath.h Analysis_Wavelet.h ArgList.h Array1D.h ArrayIterator.h AssociatedData.h Atom.h AtomExtra.h AtomMap.h AtomMask.h AtomType.h AxisType.h BaseIOtype.h Box.h BufferedLine.h CharMask.h ClusterDist.h ClusterList.h ClusterMap.h ClusterNode.h ClusterSieve.h Cmd.h CmdInput.h CmdList.h Command.h ComplexArray.h Constants.h Constraints.h ControlBlock.h ControlBlock_For.h CoordinateInfo.h Corr.h Cph.h CpptrajFile.h CpptrajState.h CpptrajStdio.h DataFile.h DataFileList.h DataIO.h DataSet.h DataSetList.h DataSet_1D.h DataSet_2D.h DataSet_3D.h DataSet_Cmatrix.h DataSet_Coords.h DataSet_Coords_CRD.h DataSet_Coords_REF.h DataSet_GridFlt.h DataSet_Mat3x3.h DataSet_MatrixDbl.h DataSet_MatrixFlt.h DataSet_Mesh.h DataSet_Modes.h DataSet_RemLog.h DataSet_Vector.h DataSet_double.h DataSet_float.h DataSet_integer.h DataSet_integer_mem.h DataSet_pH.h DataSet_string.h Deprecated.h DihedralSearch.h Dimension.h DispatchObject.h DistRoutines.h Energy.h Energy_Sander.h EnsembleIn.h EnsembleOutList.h Exec.h Exec_Analyze.h Exec_Calc.h Exec_CatCrd.h Exec_Change.h Exec_ClusterMap.h Exec_CombineCoords.h Exec_Commands.h Exec_CompareTop.h Exec_CrdAction.h Exec_CrdOut.h Exec_CreateSet.h Exec_DataFile.h Exec_DataFilter.h Exec_DataSetCmd.h Exec_GenerateAmberRst.h Exec_Help.h Exec_LoadCrd.h Exec_LoadTraj.h Exec_ParallelAnalysis.h Exec_ParmBox.h Exec_ParmSolvent.h Exec_ParmStrip.h Exec_ParmWrite.h Exec_PermuteDihedrals.h Exec_Precision.h Exec_PrintData.h Exec_ReadData.h Exec_ReadEnsembleData.h Exec_ReadInput.h Exec_RotateDihedral.h Exec_RunAnalysis.h Exec_ScaleDihedralK.h Exec_SequenceAlign.h Exec_Set.h Exec_Show.h Exec_SortEnsembleData.h Exec_SplitCoords.h Exec_System.h Exec_Top.h Exec_Traj.h Exec_UpdateParameters.h Exec_ViewRst.h FileIO.h FileName.h FileTypes.h Frame.h FramePtrArray.h Grid.h GridAction.h GridBin.h HistBin.h Hungarian.h ImageTypes.h ImagedAction.h InputTrajCommon.h MapAtom.h MaskArray.h MaskToken.h Matrix.h Matrix_3x3.h MetaData.h Molecule.h NameType.h NetcdfFile.h OnlineVarT.h OutputTrajCommon.h PDBfile.h PairList.h Parallel.h ParameterHolders.h ParameterSet.h ParameterTypes.h PubFFT.h RPNcalc.h Random.h Range.h ReferenceAction.h ReferenceFrame.h RemdReservoirNC.h ReplicaDimArray.h ReplicaInfo.h Residue.h Spline.h StructureCheck.h SymbolExporting.h SymmetricRmsdCalc.h TextFormat.h Timer.h Topology.h TrajFrameCounter.h TrajectoryFile.h Trajin.h TrajinList.h TrajoutList.h Trajout_Single.h TypeNameHolder.h Vec3.h molsurf.h ComplexArray.o : ComplexArray.cpp ArrayIterator.h ComplexArray.h Constraints.o : Constraints.cpp ArgList.h Atom.h AtomExtra.h AtomMask.h AtomType.h Box.h CharMask.h Constants.h Constraints.h CoordinateInfo.h CpptrajStdio.h FileName.h Frame.h MaskToken.h Matrix_3x3.h Molecule.h NameType.h Parallel.h ParameterHolders.h ParameterSet.h ParameterTypes.h Range.h ReplicaDimArray.h Residue.h SymbolExporting.h Topology.h TypeNameHolder.h Vec3.h -ControlBlock_For.o : ControlBlock_For.cpp ArgList.h AssociatedData.h Atom.h AtomExtra.h AtomMask.h AtomType.h Box.h Constants.h ControlBlock.h ControlBlock_For.h CoordinateInfo.h CpptrajFile.h CpptrajStdio.h DataSet.h DataSetList.h DataSet_Coords.h DataSet_Coords_REF.h Dimension.h DispatchObject.h FileIO.h FileName.h ForLoop.h ForLoop_integer.h ForLoop_list.h ForLoop_mask.h Frame.h MaskToken.h Matrix_3x3.h MetaData.h Molecule.h NameType.h Parallel.h ParameterHolders.h ParameterSet.h ParameterTypes.h Range.h ReferenceFrame.h ReplicaDimArray.h Residue.h SymbolExporting.h TextFormat.h Timer.h Topology.h TypeNameHolder.h Vec3.h +ControlBlock_For.o : ControlBlock_For.cpp Action.h ActionList.h ActionState.h Analysis.h AnalysisList.h AnalysisState.h ArgList.h AssociatedData.h Atom.h AtomExtra.h AtomMask.h AtomType.h BaseIOtype.h Box.h Constants.h ControlBlock.h ControlBlock_For.h CoordinateInfo.h CpptrajFile.h CpptrajState.h CpptrajStdio.h DataFile.h DataFileList.h DataIO.h DataSet.h DataSetList.h DataSet_Coords.h DataSet_Coords_REF.h Dimension.h DispatchObject.h EnsembleIn.h EnsembleOutList.h FileIO.h FileName.h FileTypes.h ForLoop.h ForLoop_integer.h ForLoop_list.h ForLoop_mask.h Frame.h FramePtrArray.h InputTrajCommon.h MaskToken.h Matrix_3x3.h MetaData.h Molecule.h NameType.h Parallel.h ParameterHolders.h ParameterSet.h ParameterTypes.h Range.h ReferenceFrame.h ReplicaDimArray.h ReplicaInfo.h Residue.h SymbolExporting.h TextFormat.h Timer.h Topology.h TrajFrameCounter.h Trajin.h TrajinList.h TrajoutList.h TypeNameHolder.h Vec3.h CoordinateInfo.o : CoordinateInfo.cpp Box.h CoordinateInfo.h CpptrajStdio.h Matrix_3x3.h Parallel.h ReplicaDimArray.h Vec3.h Corr.o : Corr.cpp ArrayIterator.h ComplexArray.h Corr.h PubFFT.h Cph.o : Cph.cpp Cph.h NameType.h From 582a54d9f4546d44f1fb8cd4cf1d321523872278 Mon Sep 17 00:00:00 2001 From: "Daniel R. Roe" Date: Wed, 1 Jan 2020 18:16:49 -0500 Subject: [PATCH 057/162] DRR - Change index vars to long int; refactor so that data set does not need to exist until loop is actually executed. --- src/ForLoop_dataSetBlocks.cpp | 75 +++++++++++++++++++---------------- src/ForLoop_dataSetBlocks.h | 10 +++-- 2 files changed, 46 insertions(+), 39 deletions(-) diff --git a/src/ForLoop_dataSetBlocks.cpp b/src/ForLoop_dataSetBlocks.cpp index b8a0728692..5fc952fc9e 100644 --- a/src/ForLoop_dataSetBlocks.cpp +++ b/src/ForLoop_dataSetBlocks.cpp @@ -1,4 +1,3 @@ -#include // abs #include "ForLoop_dataSetBlocks.h" #include "CpptrajStdio.h" #include "ArgList.h" @@ -8,60 +7,66 @@ /// CONSTRUCTOR ForLoop_dataSetBlocks::ForLoop_dataSetBlocks() : sourceSet_(0), + currentSet_(0), blocksize_(0), blockoffset_(0), idx_(0) {} +/// DESTRUCTOR +ForLoop_dataSetBlocks::~ForLoop_dataSetBlocks() { + if (currentSet_ != 0) delete currentSet_; +} + int ForLoop_dataSetBlocks::SetupFor(CpptrajState& State, ArgList& argIn) { // datasetblocks blocksize <#> [blockoffset <#>] - std::string dsname = argIn.GetStringKey("datasetblocks"); - if (dsname.empty()) { + sourceSetName_ = argIn.GetStringKey("datasetblocks"); + if (sourceSetName_.empty()) { mprinterr("Error: No data set name given.\n"); return 1; } - sourceSet_ = State.DSL().GetDataSet( dsname ); - if (sourceSet_ == 0) { - mprinterr("Error: No data set found with name '%s'\n", dsname.c_str()); - return 1; - } - if (sourceSet_->Size() < 1) { - mprinterr("Error: Data set is empty.\n"); - return 1; - } - if (sourceSet_->Group() != DataSet::SCALAR_1D && - sourceSet_->Type() != DataSet::VECTOR) - { - mprinterr("Error: Set '%s' is not 1D scalar or vector.\n"); - return 1; - } - int bs = argIn.getKeyInt("blocksize", 0); - if (bs < 1) { - mprinterr("Error: No blocksize or invalid blocksize: %i\n", bs); - return 1; - } - blocksize_ = (unsigned int)bs; - if (blocksize_ >= sourceSet_->Size()) { - // TODO make sure we are doing at least 2 iterations? - mprinterr("Error: block size %u is greater than data set size %zu\n", - blocksize_, sourceSet_->Size()); + blocksize_ = argIn.getKeyInt("blocksize", 0); + if (blocksize_ < 1) { + mprinterr("Error: No blocksize or invalid blocksize: %li\n", blocksize_); return 1; } - // TODO figure out a clever way to make sure we're not accessing another 'for' block blockoffset_ = argIn.getKeyInt("blockoffset", 0); if (blockoffset_ == 0) { mprintf("Warning: 'blockoffset' not specified, using 'blocksize'.\n"); - blockoffset_ = (int)blocksize_; - } - if (abs(blockoffset_) > (int)blocksize_) { - mprinterr("Error: Block offset is greater than block size.\n"); - return 1; + blockoffset_ = blocksize_; } + idx_ = argIn.getKeyInt("blockstart", 0); // Set up loop variable if (SetupLoopVar( State.DSL(), argIn.GetStringNext() )) return 1; // Description - std::string description(VarName() + " datasetblocks " + sourceSet_->Meta().Name()); + std::string description(VarName() + " datasetblocks " + sourceSetName_); SetDescription( description ); return 0; } + +int ForLoop_dataSetBlocks::BeginFor(DataSetList const& DSL) { + sourceSet_ = DSL.GetDataSet( sourceSetName_ ); + if (sourceSet_ == 0) { + mprinterr("Error: No data set found with name '%s'\n", sourceSetName_.c_str()); + return 1; + } + if (sourceSet_->Group() != DataSet::SCALAR_1D && + sourceSet_->Type() != DataSet::VECTOR) + { + mprinterr("Error: Set '%s' is not 1D scalar or vector.\n", sourceSet_->legend()); + return 1; + } + if (sourceSet_->Size() < 1) { + mprinterr("Error: Set '%s' is empty.\n", sourceSet_->legend()); + return 1; + } + // Determine # iterations + long int niterations = (long int)sourceSet_->Size() / blockoffset_; + if ( ((long int)sourceSet_->Size() % blockoffset) > 0 ) + ++niterations; + return niterations; +} + +int ForLoop_dataSetBlocks::EndFor(DataSetList const& DSL) { + // Check if done diff --git a/src/ForLoop_dataSetBlocks.h b/src/ForLoop_dataSetBlocks.h index 3edd984fe8..5dd7932c46 100644 --- a/src/ForLoop_dataSetBlocks.h +++ b/src/ForLoop_dataSetBlocks.h @@ -11,9 +11,11 @@ class ForLoop_dataSetBlocks : public ForLoop { bool EndFor(DataSetList const&); private: - DataSet* sourceSet_; ///< Set to loop over - unsigned int blocksize_; ///< Size of blocks - int blockoffset_; ///< Block offset - unsigned int idx_; ///< Current index into sourceSet_ + DataSet* sourceSet_; ///< Set to loop over + DataSet* currentSet_; ///< Current subset + std::string sourceSetName_; + long int blocksize_; ///< Size of blocks + long int blockoffset_; ///< Block offset + long int idx_; ///< Current index into sourceSet_ }; #endif From 2b39856c02712aff5fd75701a63657a32ccf831d Mon Sep 17 00:00:00 2001 From: "Daniel R. Roe" Date: Thu, 2 Jan 2020 12:47:17 -0500 Subject: [PATCH 058/162] DRR - Add missing file --- src/ForLoop.cpp | 25 +++++++++++++++++++++++++ 1 file changed, 25 insertions(+) create mode 100644 src/ForLoop.cpp diff --git a/src/ForLoop.cpp b/src/ForLoop.cpp new file mode 100644 index 0000000000..c74223c464 --- /dev/null +++ b/src/ForLoop.cpp @@ -0,0 +1,25 @@ +#include "ForLoop.h" +#include "DataSetList.h" +#include "CpptrajStdio.h" +#include "DataSet.h" + +int ForLoop::SetupLoopVar(DataSetList& DSL, std::string const& varname) +{ + loopvar_ = DSL.CheckForSet( varname ); + if (loopvar_ != 0) { + if (loopvar_->Type() != DataSet::STRINGVAR) { + mprinterr("Error: Set '%s' exists but is not a string variable, cannot be used for loop.\n", + varname.c_str()); + return 1; + } + } else { + loopvar_ = DSL.AddSet( DataSet::STRINGVAR, varname ); + if (loopvar_ == 0) return 1; + } + //mprintf("DEBUG: Loop variable: '%s'\n", loopvar_->legend()); + return 0; +} + +std::string const& ForLoop::VarName() const { + return loopvar_->Meta().Name(); +} From f8c4d29092c5cbf95a6832defda144adbed5fa36 Mon Sep 17 00:00:00 2001 From: "Daniel R. Roe" Date: Thu, 2 Jan 2020 12:53:51 -0500 Subject: [PATCH 059/162] DRR - Finish initial loop - still need to actually create the sets --- src/ForLoop_dataSetBlocks.cpp | 17 +++++++++++++---- src/ForLoop_dataSetBlocks.h | 1 + 2 files changed, 14 insertions(+), 4 deletions(-) diff --git a/src/ForLoop_dataSetBlocks.cpp b/src/ForLoop_dataSetBlocks.cpp index 5fc952fc9e..2f7974be56 100644 --- a/src/ForLoop_dataSetBlocks.cpp +++ b/src/ForLoop_dataSetBlocks.cpp @@ -62,11 +62,20 @@ int ForLoop_dataSetBlocks::BeginFor(DataSetList const& DSL) { return 1; } // Determine # iterations - long int niterations = (long int)sourceSet_->Size() / blockoffset_; - if ( ((long int)sourceSet_->Size() % blockoffset) > 0 ) + long int niterations = (long int)sourceSet_->Size() / labs(blockoffset_); + if ( ((long int)sourceSet_->Size() % labs(blockoffset_)) > 0 ) ++niterations; return niterations; } -int ForLoop_dataSetBlocks::EndFor(DataSetList const& DSL) { - // Check if done +bool ForLoop_dataSetBlocks::EndFor(DataSetList const& DSL) { + // Check if done by seeing if the current start value is outside the data set. + if (idx_ < 0 || idx_ >= (long int)sourceSet_->Size()) return true; + // Determine stop of the current block. + long int block_end = idx_ + blockoffset_; + mprintf("DEBUG: Block %li to %li\n", idx_, block_end); + + // Increment the start + idx_ += blockoffset_; + return false; +} diff --git a/src/ForLoop_dataSetBlocks.h b/src/ForLoop_dataSetBlocks.h index 5dd7932c46..d8d0441525 100644 --- a/src/ForLoop_dataSetBlocks.h +++ b/src/ForLoop_dataSetBlocks.h @@ -5,6 +5,7 @@ class ForLoop_dataSetBlocks : public ForLoop { public: ForLoop_dataSetBlocks(); + ~ForLoop_dataSetBlocks(); int SetupFor(CpptrajState&, ArgList&); int BeginFor(DataSetList const&); From 3f09998b9a324e241c1bace092a5479d5a140978 Mon Sep 17 00:00:00 2001 From: "Daniel R. Roe" Date: Thu, 2 Jan 2020 12:58:25 -0500 Subject: [PATCH 060/162] DRR - Add test of nested loop vars and <= loop operator --- test/Test_Control/RunTest.sh | 23 ++- test/Test_Control/nested.agr.save | 317 ++++++++++++++++++++++++++++++ 2 files changed, 339 insertions(+), 1 deletion(-) create mode 100644 test/Test_Control/nested.agr.save diff --git a/test/Test_Control/RunTest.sh b/test/Test_Control/RunTest.sh index ce4a9421e7..a6aeebc936 100755 --- a/test/Test_Control/RunTest.sh +++ b/test/Test_Control/RunTest.sh @@ -3,7 +3,7 @@ . ../MasterTest.sh CleanFiles for.in TRP.vec.dat TRP.rms.dat TRP.CA.dist.dat TRP.tocenter.dat \ - nh.dat rms.nofit.dat last10.dat distance.dat + nh.dat rms.nofit.dat last10.dat distance.dat nested.agr TESTNAME='Loop tests' Requires netcdf maxthreads 10 @@ -68,5 +68,26 @@ EOF DoTest distance.dat.save distance.dat fi +UNITNAME='Test nested loops and variables in loops' +cat > for.in < Date: Thu, 2 Jan 2020 13:07:23 -0500 Subject: [PATCH 061/162] DRR - Enabled dataSetBlocks for loop --- src/ControlBlock_For.cpp | 17 +++++++++++++---- src/cpptrajdepend | 3 ++- src/cpptrajfiles | 1 + 3 files changed, 16 insertions(+), 5 deletions(-) diff --git a/src/ControlBlock_For.cpp b/src/ControlBlock_For.cpp index 9515c11073..44c794a2ab 100644 --- a/src/ControlBlock_For.cpp +++ b/src/ControlBlock_For.cpp @@ -7,6 +7,7 @@ #include "ForLoop_integer.h" #include "ForLoop_mask.h" #include "ForLoop_list.h" +#include "ForLoop_dataSetBlocks.h" /// DESTRUCTOR ControlBlock_For::~ControlBlock_For() { @@ -49,10 +50,10 @@ int ControlBlock_For::SetupBlock(CpptrajState& State, ArgList& argIn) { Vars_.clear(); description_.assign("for ("); // Parse out each component of this for block. E.g. - // . . . - // for atoms X inmask :30 name in var1,var2,var3 i=0;i++ - // 0 1 2 3 4 5 6 7 8 - // * * * + // . . . . + // for atoms X inmask :30 name in var1,var2,var3 i=0;i++ DS datasetblocks blocksize 10 + // 0 1 2 3 4 5 6 7 8 9 10 11 12 + // * * * * // component 1: 1,2,3,4 // component 2: 5,6,7 // component 3: 8 @@ -75,6 +76,14 @@ int ControlBlock_For::SetupBlock(CpptrajState& State, ArgList& argIn) { } forLoopIdxs.push_back( idx ); Vars_.push_back( static_cast( new ForLoop_list() ) ); + } else if (argIn[iarg] == "datasetblocks") { + int idx = iarg - 1; + if (idx < 1) { + mprinterr("Error: Malformed 'datasetblocks' for loop.\n"); + return 1; + } + forLoopIdxs.push_back( idx ); + Vars_.push_back( static_cast( new ForLoop_dataSetBlocks() ) ); } else if ( argIn[iarg].find(";") != std::string::npos ) { forLoopIdxs.push_back( iarg ); Vars_.push_back( static_cast( new ForLoop_integer() ) ); diff --git a/src/cpptrajdepend b/src/cpptrajdepend index 04ed5bc7e5..2a8a2d092c 100644 --- a/src/cpptrajdepend +++ b/src/cpptrajdepend @@ -160,7 +160,7 @@ CmdList.o : CmdList.cpp Cmd.h CmdList.h DispatchObject.h Command.o : Command.cpp Action.h ActionFrameCounter.h ActionList.h ActionState.h Action_Align.h Action_Angle.h Action_AreaPerMol.h Action_AtomMap.h Action_AtomicCorr.h Action_AtomicFluct.h Action_AutoImage.h Action_Average.h Action_Bounds.h Action_Box.h Action_Center.h Action_Channel.h Action_CheckChirality.h Action_CheckStructure.h Action_Closest.h Action_ClusterDihedral.h Action_Contacts.h Action_CreateCrd.h Action_CreateReservoir.h Action_DNAionTracker.h Action_DSSP.h Action_Density.h Action_Diffusion.h Action_Dihedral.h Action_DihedralRMS.h Action_Dipole.h Action_DistRmsd.h Action_Distance.h Action_Energy.h Action_Esander.h Action_FilterByData.h Action_FixAtomOrder.h Action_FixImagedBonds.h Action_GIST.h Action_Grid.h Action_GridFreeEnergy.h Action_HydrogenBond.h Action_Image.h Action_InfraredSpectrum.h Action_Jcoupling.h Action_LESsplit.h Action_LIE.h Action_LipidOrder.h Action_MakeStructure.h Action_Mask.h Action_Matrix.h Action_MinImage.h Action_Molsurf.h Action_MultiDihedral.h Action_MultiVector.h Action_NAstruct.h Action_NMRrst.h Action_NativeContacts.h Action_OrderParameter.h Action_Outtraj.h Action_PairDist.h Action_Pairwise.h Action_Principal.h Action_Projection.h Action_Pucker.h Action_Radgyr.h Action_Radial.h Action_RandomizeIons.h Action_Remap.h Action_ReplicateCell.h Action_Rmsd.h Action_Rotate.h Action_RunningAvg.h Action_STFC_Diffusion.h Action_Scale.h Action_SetVelocity.h Action_Spam.h Action_Strip.h Action_Surf.h Action_SymmetricRmsd.h Action_Temperature.h Action_Time.h Action_Translate.h Action_Unstrip.h Action_Unwrap.h Action_Vector.h Action_VelocityAutoCorr.h Action_Volmap.h Action_Volume.h Action_Watershell.h Action_XtalSymm.h Analysis.h AnalysisList.h AnalysisState.h Analysis_AmdBias.h Analysis_AutoCorr.h Analysis_Average.h Analysis_Clustering.h Analysis_ConstantPHStats.h Analysis_Corr.h Analysis_CrankShaft.h Analysis_CrdFluct.h Analysis_CrossCorr.h Analysis_CurveFit.h Analysis_Divergence.h Analysis_FFT.h Analysis_HausdorffDistance.h Analysis_Hist.h Analysis_IRED.h Analysis_Integrate.h Analysis_KDE.h Analysis_Lifetime.h Analysis_LowestCurve.h Analysis_Matrix.h Analysis_MeltCurve.h Analysis_Modes.h Analysis_MultiHist.h Analysis_Multicurve.h Analysis_Overlap.h Analysis_PhiPsi.h Analysis_Regression.h Analysis_RemLog.h Analysis_Rms2d.h Analysis_RmsAvgCorr.h Analysis_Rotdif.h Analysis_RunningAvg.h Analysis_Slope.h Analysis_Spline.h Analysis_State.h Analysis_Statistics.h Analysis_TI.h Analysis_Timecorr.h Analysis_VectorMath.h Analysis_Wavelet.h ArgList.h Array1D.h ArrayIterator.h AssociatedData.h Atom.h AtomExtra.h AtomMap.h AtomMask.h AtomType.h AxisType.h BaseIOtype.h Box.h BufferedLine.h CharMask.h ClusterDist.h ClusterList.h ClusterMap.h ClusterNode.h ClusterSieve.h Cmd.h CmdInput.h CmdList.h Command.h ComplexArray.h Constants.h Constraints.h ControlBlock.h ControlBlock_For.h CoordinateInfo.h Corr.h Cph.h CpptrajFile.h CpptrajState.h CpptrajStdio.h DataFile.h DataFileList.h DataIO.h DataSet.h DataSetList.h DataSet_1D.h DataSet_2D.h DataSet_3D.h DataSet_Cmatrix.h DataSet_Coords.h DataSet_Coords_CRD.h DataSet_Coords_REF.h DataSet_GridFlt.h DataSet_Mat3x3.h DataSet_MatrixDbl.h DataSet_MatrixFlt.h DataSet_Mesh.h DataSet_Modes.h DataSet_RemLog.h DataSet_Vector.h DataSet_double.h DataSet_float.h DataSet_integer.h DataSet_integer_mem.h DataSet_pH.h DataSet_string.h Deprecated.h DihedralSearch.h Dimension.h DispatchObject.h DistRoutines.h Energy.h Energy_Sander.h EnsembleIn.h EnsembleOutList.h Exec.h Exec_Analyze.h Exec_Calc.h Exec_CatCrd.h Exec_Change.h Exec_ClusterMap.h Exec_CombineCoords.h Exec_Commands.h Exec_CompareTop.h Exec_CrdAction.h Exec_CrdOut.h Exec_CreateSet.h Exec_DataFile.h Exec_DataFilter.h Exec_DataSetCmd.h Exec_GenerateAmberRst.h Exec_Help.h Exec_LoadCrd.h Exec_LoadTraj.h Exec_ParallelAnalysis.h Exec_ParmBox.h Exec_ParmSolvent.h Exec_ParmStrip.h Exec_ParmWrite.h Exec_PermuteDihedrals.h Exec_Precision.h Exec_PrintData.h Exec_ReadData.h Exec_ReadEnsembleData.h Exec_ReadInput.h Exec_RotateDihedral.h Exec_RunAnalysis.h Exec_ScaleDihedralK.h Exec_SequenceAlign.h Exec_Set.h Exec_Show.h Exec_SortEnsembleData.h Exec_SplitCoords.h Exec_System.h Exec_Top.h Exec_Traj.h Exec_UpdateParameters.h Exec_ViewRst.h FileIO.h FileName.h FileTypes.h Frame.h FramePtrArray.h Grid.h GridAction.h GridBin.h HistBin.h Hungarian.h ImageTypes.h ImagedAction.h InputTrajCommon.h MapAtom.h MaskArray.h MaskToken.h Matrix.h Matrix_3x3.h MetaData.h Molecule.h NameType.h NetcdfFile.h OnlineVarT.h OutputTrajCommon.h PDBfile.h PairList.h Parallel.h ParameterHolders.h ParameterSet.h ParameterTypes.h PubFFT.h RPNcalc.h Random.h Range.h ReferenceAction.h ReferenceFrame.h RemdReservoirNC.h ReplicaDimArray.h ReplicaInfo.h Residue.h Spline.h StructureCheck.h SymbolExporting.h SymmetricRmsdCalc.h TextFormat.h Timer.h Topology.h TrajFrameCounter.h TrajectoryFile.h Trajin.h TrajinList.h TrajoutList.h Trajout_Single.h TypeNameHolder.h Vec3.h molsurf.h ComplexArray.o : ComplexArray.cpp ArrayIterator.h ComplexArray.h Constraints.o : Constraints.cpp ArgList.h Atom.h AtomExtra.h AtomMask.h AtomType.h Box.h CharMask.h Constants.h Constraints.h CoordinateInfo.h CpptrajStdio.h FileName.h Frame.h MaskToken.h Matrix_3x3.h Molecule.h NameType.h Parallel.h ParameterHolders.h ParameterSet.h ParameterTypes.h Range.h ReplicaDimArray.h Residue.h SymbolExporting.h Topology.h TypeNameHolder.h Vec3.h -ControlBlock_For.o : ControlBlock_For.cpp Action.h ActionList.h ActionState.h Analysis.h AnalysisList.h AnalysisState.h ArgList.h AssociatedData.h Atom.h AtomExtra.h AtomMask.h AtomType.h BaseIOtype.h Box.h Constants.h ControlBlock.h ControlBlock_For.h CoordinateInfo.h CpptrajFile.h CpptrajState.h CpptrajStdio.h DataFile.h DataFileList.h DataIO.h DataSet.h DataSetList.h DataSet_Coords.h DataSet_Coords_REF.h Dimension.h DispatchObject.h EnsembleIn.h EnsembleOutList.h FileIO.h FileName.h FileTypes.h ForLoop.h ForLoop_integer.h ForLoop_list.h ForLoop_mask.h Frame.h FramePtrArray.h InputTrajCommon.h MaskToken.h Matrix_3x3.h MetaData.h Molecule.h NameType.h Parallel.h ParameterHolders.h ParameterSet.h ParameterTypes.h Range.h ReferenceFrame.h ReplicaDimArray.h ReplicaInfo.h Residue.h SymbolExporting.h TextFormat.h Timer.h Topology.h TrajFrameCounter.h Trajin.h TrajinList.h TrajoutList.h TypeNameHolder.h Vec3.h +ControlBlock_For.o : ControlBlock_For.cpp Action.h ActionList.h ActionState.h Analysis.h AnalysisList.h AnalysisState.h ArgList.h AssociatedData.h Atom.h AtomExtra.h AtomMask.h AtomType.h BaseIOtype.h Box.h Constants.h ControlBlock.h ControlBlock_For.h CoordinateInfo.h CpptrajFile.h CpptrajState.h CpptrajStdio.h DataFile.h DataFileList.h DataIO.h DataSet.h DataSetList.h DataSet_Coords.h DataSet_Coords_REF.h Dimension.h DispatchObject.h EnsembleIn.h EnsembleOutList.h FileIO.h FileName.h FileTypes.h ForLoop.h ForLoop_dataSetBlocks.h ForLoop_integer.h ForLoop_list.h ForLoop_mask.h Frame.h FramePtrArray.h InputTrajCommon.h MaskToken.h Matrix_3x3.h MetaData.h Molecule.h NameType.h Parallel.h ParameterHolders.h ParameterSet.h ParameterTypes.h Range.h ReferenceFrame.h ReplicaDimArray.h ReplicaInfo.h Residue.h SymbolExporting.h TextFormat.h Timer.h Topology.h TrajFrameCounter.h Trajin.h TrajinList.h TrajoutList.h TypeNameHolder.h Vec3.h CoordinateInfo.o : CoordinateInfo.cpp Box.h CoordinateInfo.h CpptrajStdio.h Matrix_3x3.h Parallel.h ReplicaDimArray.h Vec3.h Corr.o : Corr.cpp ArrayIterator.h ComplexArray.h Corr.h PubFFT.h Cph.o : Cph.cpp Cph.h NameType.h @@ -290,6 +290,7 @@ FileName.o : FileName.cpp CpptrajStdio.h FileName.h StringRoutines.h FileTypes.o : FileTypes.cpp ArgList.h BaseIOtype.h CpptrajStdio.h FileTypes.h File_TempName.o : File_TempName.cpp CpptrajStdio.h FileName.h File_TempName.h StringRoutines.h ForLoop.o : ForLoop.cpp ArgList.h AssociatedData.h Atom.h AtomExtra.h AtomMask.h AtomType.h Box.h Constants.h CoordinateInfo.h CpptrajFile.h CpptrajStdio.h DataSet.h DataSetList.h DataSet_Coords.h DataSet_Coords_REF.h Dimension.h FileIO.h FileName.h ForLoop.h Frame.h MaskToken.h Matrix_3x3.h MetaData.h Molecule.h NameType.h Parallel.h ParameterHolders.h ParameterSet.h ParameterTypes.h Range.h ReferenceFrame.h ReplicaDimArray.h Residue.h SymbolExporting.h TextFormat.h Timer.h Topology.h TypeNameHolder.h Vec3.h +ForLoop_dataSetBlocks.o : ForLoop_dataSetBlocks.cpp Action.h ActionList.h ActionState.h Analysis.h AnalysisList.h AnalysisState.h ArgList.h AssociatedData.h Atom.h AtomExtra.h AtomMask.h AtomType.h BaseIOtype.h Box.h Constants.h CoordinateInfo.h CpptrajFile.h CpptrajState.h CpptrajStdio.h DataFile.h DataFileList.h DataIO.h DataSet.h DataSetList.h DataSet_Coords.h DataSet_Coords_REF.h Dimension.h DispatchObject.h EnsembleIn.h EnsembleOutList.h FileIO.h FileName.h FileTypes.h ForLoop.h ForLoop_dataSetBlocks.h Frame.h FramePtrArray.h InputTrajCommon.h MaskToken.h Matrix_3x3.h MetaData.h Molecule.h NameType.h Parallel.h ParameterHolders.h ParameterSet.h ParameterTypes.h Range.h ReferenceFrame.h ReplicaDimArray.h ReplicaInfo.h Residue.h SymbolExporting.h TextFormat.h Timer.h Topology.h TrajFrameCounter.h Trajin.h TrajinList.h TrajoutList.h TypeNameHolder.h Vec3.h ForLoop_integer.o : ForLoop_integer.cpp Action.h ActionList.h ActionState.h Analysis.h AnalysisList.h AnalysisState.h ArgList.h AssociatedData.h Atom.h AtomExtra.h AtomMask.h AtomType.h BaseIOtype.h Box.h Constants.h CoordinateInfo.h CpptrajFile.h CpptrajState.h CpptrajStdio.h DataFile.h DataFileList.h DataIO.h DataSet.h DataSetList.h DataSet_Coords.h DataSet_Coords_REF.h Dimension.h DispatchObject.h EnsembleIn.h EnsembleOutList.h FileIO.h FileName.h FileTypes.h ForLoop.h ForLoop_integer.h Frame.h FramePtrArray.h InputTrajCommon.h MaskToken.h Matrix_3x3.h MetaData.h Molecule.h NameType.h Parallel.h ParameterHolders.h ParameterSet.h ParameterTypes.h Range.h ReferenceFrame.h ReplicaDimArray.h ReplicaInfo.h Residue.h StringRoutines.h SymbolExporting.h TextFormat.h Timer.h Topology.h TrajFrameCounter.h Trajin.h TrajinList.h TrajoutList.h TypeNameHolder.h Vec3.h ForLoop_list.o : ForLoop_list.cpp Action.h ActionList.h ActionState.h Analysis.h AnalysisList.h AnalysisState.h ArgList.h AssociatedData.h Atom.h AtomExtra.h AtomMask.h AtomType.h BaseIOtype.h Box.h Constants.h CoordinateInfo.h CpptrajFile.h CpptrajState.h CpptrajStdio.h DataFile.h DataFileList.h DataIO.h DataSet.h DataSetList.h DataSet_Coords.h DataSet_Coords_REF.h Dimension.h DispatchObject.h EnsembleIn.h EnsembleOutList.h FileIO.h FileName.h FileTypes.h ForLoop.h ForLoop_list.h Frame.h FramePtrArray.h InputTrajCommon.h MaskToken.h Matrix_3x3.h MetaData.h Molecule.h NameType.h Parallel.h ParameterHolders.h ParameterSet.h ParameterTypes.h Range.h ReferenceFrame.h ReplicaDimArray.h ReplicaInfo.h Residue.h SymbolExporting.h TextFormat.h Timer.h Topology.h TrajFrameCounter.h Trajin.h TrajinList.h TrajoutList.h TypeNameHolder.h Vec3.h ForLoop_mask.o : ForLoop_mask.cpp Action.h ActionList.h ActionState.h Analysis.h AnalysisList.h AnalysisState.h ArgList.h AssociatedData.h Atom.h AtomExtra.h AtomMask.h AtomType.h BaseIOtype.h Box.h Constants.h CoordinateInfo.h CpptrajFile.h CpptrajState.h CpptrajStdio.h DataFile.h DataFileList.h DataIO.h DataSet.h DataSetList.h DataSet_Coords.h DataSet_Coords_REF.h Dimension.h DispatchObject.h EnsembleIn.h EnsembleOutList.h FileIO.h FileName.h FileTypes.h ForLoop.h ForLoop_mask.h Frame.h FramePtrArray.h InputTrajCommon.h MaskToken.h Matrix_3x3.h MetaData.h Molecule.h NameType.h Parallel.h ParameterHolders.h ParameterSet.h ParameterTypes.h Range.h ReferenceFrame.h ReplicaDimArray.h ReplicaInfo.h Residue.h StringRoutines.h SymbolExporting.h TextFormat.h Timer.h Topology.h TrajFrameCounter.h Trajin.h TrajinList.h TrajoutList.h TypeNameHolder.h Vec3.h diff --git a/src/cpptrajfiles b/src/cpptrajfiles index 81d3179756..be4d5f768a 100644 --- a/src/cpptrajfiles +++ b/src/cpptrajfiles @@ -290,6 +290,7 @@ COMMON_SOURCES= \ FileName.cpp \ FileTypes.cpp \ ForLoop.cpp \ + ForLoop_dataSetBlocks.cpp \ ForLoop_integer.cpp \ ForLoop_list.cpp \ ForLoop_mask.cpp \ From 29c8684e3ca10a2ba596d44ac6a0242dff88e8ca Mon Sep 17 00:00:00 2001 From: "Daniel R. Roe" Date: Thu, 2 Jan 2020 15:27:41 -0500 Subject: [PATCH 062/162] DRR - DataSetList needs to be passed in non-const so that data sets can be created each iteration --- src/ControlBlock.h | 4 ++-- src/ControlBlock_For.cpp | 3 ++- src/ControlBlock_For.h | 2 +- src/ForLoop.h | 2 +- src/ForLoop_dataSetBlocks.cpp | 15 +++++++++------ src/ForLoop_dataSetBlocks.h | 4 ++-- src/ForLoop_integer.cpp | 2 +- src/ForLoop_integer.h | 2 +- src/ForLoop_list.cpp | 2 +- src/ForLoop_list.h | 2 +- src/ForLoop_mask.cpp | 2 +- src/ForLoop_mask.h | 2 +- 12 files changed, 23 insertions(+), 19 deletions(-) diff --git a/src/ControlBlock.h b/src/ControlBlock.h index cc7d60cabe..160705b387 100644 --- a/src/ControlBlock.h +++ b/src/ControlBlock.h @@ -30,8 +30,8 @@ class ControlBlock : public DispatchObject { virtual const_iterator end() const = 0; /// Start control block. Init internal variables if necessary. virtual int Start(DataSetList const&) = 0; - /// Add/update variables and increment, check block state. - virtual DoneType CheckDone(DataSetList const&) = 0; + /// Add/update variables and increment, check block state, create sets if needed + virtual DoneType CheckDone(DataSetList&) = 0; protected: std::string description_; ///< Describe control TODO private? }; diff --git a/src/ControlBlock_For.cpp b/src/ControlBlock_For.cpp index 44c794a2ab..251e5dc67a 100644 --- a/src/ControlBlock_For.cpp +++ b/src/ControlBlock_For.cpp @@ -174,7 +174,8 @@ int ControlBlock_For::Start(DataSetList const& DSL) { } /** For each mask check if done, then update variables, then increment. */ -ControlBlock::DoneType ControlBlock_For::CheckDone(DataSetList const& DSL) { +ControlBlock::DoneType ControlBlock_For::CheckDone(DataSetList& DSL) { + // NOTE: DataSetList is not const ref so dataSetBlocks loop can create sets DoneType retval = NOT_DONE; for (Marray::iterator MH = Vars_.begin(); MH != Vars_.end(); ++MH) { // Exit as soon as one is done, but check all so that diff --git a/src/ControlBlock_For.h b/src/ControlBlock_For.h index 7ad94b3e18..1b9943d6f9 100644 --- a/src/ControlBlock_For.h +++ b/src/ControlBlock_For.h @@ -16,7 +16,7 @@ class ControlBlock_For : public ControlBlock { const_iterator begin() const { return commands_.begin(); } const_iterator end() const { return commands_.end(); } int Start(DataSetList const&); - DoneType CheckDone(DataSetList const&); + DoneType CheckDone(DataSetList&); private: typedef std::vector Marray; Marray Vars_; ///< Hold all for loops for this block diff --git a/src/ForLoop.h b/src/ForLoop.h index cb7f22ef99..b9d747b3f4 100644 --- a/src/ForLoop.h +++ b/src/ForLoop.h @@ -17,7 +17,7 @@ class ForLoop { /** \return Number of iterations in loop, or NITERATIONS_UNKNOWN. */ virtual int BeginFor(DataSetList const&) = 0; /// \return True if loop is done, otherwise increment the loop - virtual bool EndFor(DataSetList const&) = 0; + virtual bool EndFor(DataSetList&) = 0; /// Return value when number of iterations is not known static const int NITERATIONS_UNKNOWN = -1; diff --git a/src/ForLoop_dataSetBlocks.cpp b/src/ForLoop_dataSetBlocks.cpp index 2f7974be56..4235d16650 100644 --- a/src/ForLoop_dataSetBlocks.cpp +++ b/src/ForLoop_dataSetBlocks.cpp @@ -13,11 +13,6 @@ ForLoop_dataSetBlocks::ForLoop_dataSetBlocks() : idx_(0) {} -/// DESTRUCTOR -ForLoop_dataSetBlocks::~ForLoop_dataSetBlocks() { - if (currentSet_ != 0) delete currentSet_; -} - int ForLoop_dataSetBlocks::SetupFor(CpptrajState& State, ArgList& argIn) { // datasetblocks blocksize <#> [blockoffset <#>] @@ -68,12 +63,20 @@ int ForLoop_dataSetBlocks::BeginFor(DataSetList const& DSL) { return niterations; } -bool ForLoop_dataSetBlocks::EndFor(DataSetList const& DSL) { +bool ForLoop_dataSetBlocks::EndFor(DataSetList& DSL) { // Check if done by seeing if the current start value is outside the data set. if (idx_ < 0 || idx_ >= (long int)sourceSet_->Size()) return true; // Determine stop of the current block. long int block_end = idx_ + blockoffset_; mprintf("DEBUG: Block %li to %li\n", idx_, block_end); + // Create the subset + currentSet_ = DSL.AddSet(sourceSet_->Type(), MetaData(VarName(), idx_)); + if (currentSet_ == 0) { + mprinterr("Error: Could not create dataSetBlocks subset.\n"); + return true; + } + // Update the set name + DSL.UpdateStringVar( VarName(), currentSet_->Meta().PrintName() ); // Increment the start idx_ += blockoffset_; diff --git a/src/ForLoop_dataSetBlocks.h b/src/ForLoop_dataSetBlocks.h index d8d0441525..192e4f143e 100644 --- a/src/ForLoop_dataSetBlocks.h +++ b/src/ForLoop_dataSetBlocks.h @@ -5,11 +5,11 @@ class ForLoop_dataSetBlocks : public ForLoop { public: ForLoop_dataSetBlocks(); - ~ForLoop_dataSetBlocks(); int SetupFor(CpptrajState&, ArgList&); int BeginFor(DataSetList const&); - bool EndFor(DataSetList const&); + // NOTE: Not a const ref so dataSetBlocks loop can create sets + bool EndFor(DataSetList&); private: DataSet* sourceSet_; ///< Set to loop over diff --git a/src/ForLoop_integer.cpp b/src/ForLoop_integer.cpp index 17d18919c2..3cbe83ecff 100644 --- a/src/ForLoop_integer.cpp +++ b/src/ForLoop_integer.cpp @@ -244,7 +244,7 @@ int ForLoop_integer::BeginFor(DataSetList const& DSL) { } /** Check if integer for loop is done, increment if not. */ -bool ForLoop_integer::EndFor(DataSetList const& DSL) { +bool ForLoop_integer::EndFor(DataSetList& DSL) { bool retval = false; if (endOp_ == LESS_THAN) { if (currentVal_ >= end_) retval = true; diff --git a/src/ForLoop_integer.h b/src/ForLoop_integer.h index 1ff092181d..4aa69ef2ff 100644 --- a/src/ForLoop_integer.h +++ b/src/ForLoop_integer.h @@ -8,7 +8,7 @@ class ForLoop_integer : public ForLoop { int SetupFor(CpptrajState&, ArgList&); int BeginFor(DataSetList const&); - bool EndFor(DataSetList const&); + bool EndFor(DataSetList&); enum OpType { INCREMENT=0, DECREMENT, LESS_THAN, GREATER_THAN, LT_EQUALS, GT_EQUALS, NO_OP }; private: diff --git a/src/ForLoop_list.cpp b/src/ForLoop_list.cpp index f372327cbc..1d4535fb7f 100644 --- a/src/ForLoop_list.cpp +++ b/src/ForLoop_list.cpp @@ -42,7 +42,7 @@ int ForLoop_list::BeginFor(DataSetList const& CurrentVars) { return (int)List_.size(); } -bool ForLoop_list::EndFor(DataSetList const& DSL) { +bool ForLoop_list::EndFor(DataSetList& DSL) { if (sdx_ == List_.end()) return true; // Get variable value DSL.UpdateStringVar( VarName(), *(sdx_) ); diff --git a/src/ForLoop_list.h b/src/ForLoop_list.h index f9b3cadb01..111b2dec4d 100644 --- a/src/ForLoop_list.h +++ b/src/ForLoop_list.h @@ -9,7 +9,7 @@ class ForLoop_list : public ForLoop { int SetupFor(CpptrajState&, ArgList&); int BeginFor(DataSetList const&); - bool EndFor(DataSetList const&); + bool EndFor(DataSetList&); private: typedef std::vector Sarray; Sarray List_; ///< (LIST only) List of strings to iterate over. diff --git a/src/ForLoop_mask.cpp b/src/ForLoop_mask.cpp index 8d68fed017..a3b2dd7b62 100644 --- a/src/ForLoop_mask.cpp +++ b/src/ForLoop_mask.cpp @@ -84,7 +84,7 @@ int ForLoop_mask::BeginFor(DataSetList const& DSL) { return (int)Idxs_.size(); } -bool ForLoop_mask::EndFor(DataSetList const& DSL) { +bool ForLoop_mask::EndFor(DataSetList& DSL) { static const char* prefix[NTYPES] = {"@", ":", "^", ":", ":"}; if (idx_ == Idxs_.end()) return true; // Get variable value diff --git a/src/ForLoop_mask.h b/src/ForLoop_mask.h index 6ffa54c023..eca48c10b2 100644 --- a/src/ForLoop_mask.h +++ b/src/ForLoop_mask.h @@ -10,7 +10,7 @@ class ForLoop_mask : public ForLoop { int SetupFor(CpptrajState&, ArgList&); int BeginFor(DataSetList const&); - bool EndFor(DataSetList const&); + bool EndFor(DataSetList&); private: typedef std::vector Iarray; From 4f71093687d9b1ee8b594b2cec14c0108b399a21 Mon Sep 17 00:00:00 2001 From: "Daniel R. Roe" Date: Fri, 3 Jan 2020 08:55:29 -0500 Subject: [PATCH 063/162] DRR - New class for abstracting data set copies --- src/DataBlock.h | 14 ++++++++++++++ 1 file changed, 14 insertions(+) create mode 100644 src/DataBlock.h diff --git a/src/DataBlock.h b/src/DataBlock.h new file mode 100644 index 0000000000..de776abd3e --- /dev/null +++ b/src/DataBlock.h @@ -0,0 +1,14 @@ +#ifndef INC_DATABLOCK_H +/// An abstraction used for copying one or more elements of a DataSet +class DataBlock { + public: + DataBlock() : nelts_(0) {} + DataBlock(void* pin, unsigned int n) : ptr0_(pin), nelts_(n) {} + + const void* Ptr0() const { return ptr0_; } + unsigned int Nelts() const { return nelts_; } + private: + void* ptr0_; ///< Pointer to memory address to copy + unsigned int nelts_; ///< Number of elements to copy +}; +#endif From 814daa21e244799b7f2a93b278a2ee3cec4c8d71 Mon Sep 17 00:00:00 2001 From: "Daniel R. Roe" Date: Fri, 3 Jan 2020 08:55:46 -0500 Subject: [PATCH 064/162] DRR - Improve error message when no valid file type can be found for a given data set --- src/DataFile.cpp | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/src/DataFile.cpp b/src/DataFile.cpp index 8a729f30c3..fad77aceb7 100644 --- a/src/DataFile.cpp +++ b/src/DataFile.cpp @@ -302,7 +302,12 @@ int DataFile::AddDataSet(DataSet* dataIn) { delete dataio_; dataio_ = 0; } - if (dataio_ == 0) return Error("Error: Data file allocation failed.\n"); + if (dataio_ == 0) { + mprinterr("Error: Set '%s' is not valid for '%s' file type.\n", + dataIn->legend(), DataFilename().full()); + mprinterr("Error: No valid file type could be found.\n"); + return Error("Error: Data file allocation failed.\n"); + } mprintf("\tChanged DataFile '%s' type to %s for set %s\n", filename_.base(), FileTypes::FormatDescription(DF_AllocArray, dfType_), dataIn->legend()); From a421217b42b046bb1b1fa9387d6989d6079e00a1 Mon Sep 17 00:00:00 2001 From: "Daniel R. Roe" Date: Fri, 3 Jan 2020 09:47:54 -0500 Subject: [PATCH 065/162] DRR - Use DataSetBlock --- src/DataSet.cpp | 5 +++++ src/DataSet.h | 9 ++++++++- src/DataSet_double.cpp | 20 ++++++++++++++++++++ src/DataSet_double.h | 3 +++ src/ForLoop_dataSetBlocks.cpp | 12 ++++++++++-- src/cpptrajdepend | 6 +++--- 6 files changed, 49 insertions(+), 6 deletions(-) diff --git a/src/DataSet.cpp b/src/DataSet.cpp index c462a52007..b965c06cba 100644 --- a/src/DataSet.cpp +++ b/src/DataSet.cpp @@ -1,5 +1,6 @@ #include "DataSet.h" #include "CpptrajStdio.h" +#include "DataBlock.h" // NOTE: IT IS IMPORTANT THAT THIS ARRAY CORRESPOND TO DataSet::DataType /** Description of each DataType. */ @@ -126,3 +127,7 @@ AssociatedData* DataSet::GetAssociatedData(AssociatedData::AssociatedType typeIn if ((*ad)->Type() == typeIn) return *ad; return 0; } + +DataBlock DataSet::Block(size_t, unsigned int) const { return DataBlock(); } + +void DataSet::AddBlock(size_t, DataBlock const&) {} diff --git a/src/DataSet.h b/src/DataSet.h index 198ce737f4..24572ef3fe 100644 --- a/src/DataSet.h +++ b/src/DataSet.h @@ -10,6 +10,7 @@ #ifdef MPI # include "Parallel.h" #endif +class DataBlock; /// Base class that all DataSet types will inherit. /** The DataSet base class holds common information, like MetaData for * selection, TextFormat for text output, etc. @@ -52,8 +53,10 @@ class DataSet { /// \return value of coordinate for specified dimension d and position p. /** NOTE: It is assumed this can ALWAYS be represented as double precision. */ virtual double Coord(unsigned int d, size_t p) const { return dim_[d].Coord(p); } - /// Allocate data given numbers of elements. + /// Reserve memory for given number(s) of elements. TODO rename? virtual int Allocate(SizeArray const&) = 0; + /// Actually allocate memory for given number(s) of elements TODO pure virtual? + virtual int MemAlloc(SizeArray const&) { return 1; } /// Add element to data set. /** A pointer to the data is passed in as void - it is up to the * inheriting class to cast it. The X value for the data is passed @@ -66,6 +69,10 @@ class DataSet { virtual int Append(DataSet*) = 0; /// \return Size of data set in memory (in bytes). virtual size_t MemUsageInBytes() const = 0; + /// \return DataBlock at specified position of requested size TODO pure virtual + virtual DataBlock Block(size_t, unsigned int) const; + /// Add given DataBlock to set at specified position TODO pure virtual + virtual void AddBlock(size_t, DataBlock const&); # ifdef MPI /// Piece this DataSet together from multiple threads. virtual int Sync(size_t, std::vector const&, Parallel::Comm const&) = 0; diff --git a/src/DataSet_double.cpp b/src/DataSet_double.cpp index cd74114eec..625ee7a6f7 100644 --- a/src/DataSet_double.cpp +++ b/src/DataSet_double.cpp @@ -1,4 +1,6 @@ +#include // copy #include "DataSet_double.h" +#include "DataBlock.h" // DataSet_double::Allocate() /** Reserve space in the Data and Frames arrays. */ @@ -8,6 +10,13 @@ int DataSet_double::Allocate( SizeArray const& sizeIn ) { return 0; } +/** Allocate space in Data_ array. */ +int DataSet_double::MemAlloc( SizeArray const& sizeIn ) { + if (!sizeIn.empty()) + Data_.resize( sizeIn[0] ); + return 0; +} + // DataSet_double::Add() /** Insert data vIn at frame. */ void DataSet_double::Add(size_t frame, const void* vIn) { @@ -18,6 +27,17 @@ void DataSet_double::Add(size_t frame, const void* vIn) { Data_.push_back( *((double*)vIn) ); } +// DataSet_double::Block() +DataBlock DataSet_double::Block(size_t startIdx, unsigned int nelts) const { + return DataBlock( (void*)(&(Data_[0])+startIdx), nelts ); +} + +// DataSet_double::AddBlock() +void DataSet_double::AddBlock(size_t startIdx, DataBlock const& block) { + const double* ptr = (const double*)block.Ptr0(); + std::copy( ptr, ptr+block.Nelts(), &(Data_[0]) + startIdx ); +} + // DataSet_double::WriteBuffer() /** Write data at frame to CharBuffer. If no data for frame write 0.0. */ diff --git a/src/DataSet_double.h b/src/DataSet_double.h index 4f29c47d56..5d40cfad8d 100644 --- a/src/DataSet_double.h +++ b/src/DataSet_double.h @@ -27,10 +27,13 @@ class DataSet_double : public DataSet_1D { # endif void Info() const { return; } int Allocate(SizeArray const&); + int MemAlloc(SizeArray const&); void Add( size_t, const void* ); void WriteBuffer(CpptrajFile&, SizeArray const&) const; int Append(DataSet*); size_t MemUsageInBytes() const { return Data_.size() * sizeof(double); } + DataBlock Block(size_t, unsigned int) const; + void AddBlock(size_t, DataBlock const&); // ----- DataSet_1D functions ---------------- double Dval(size_t idx) const { return Data_[idx]; } double Xcrd(size_t idx) const { return Dim(0).Coord(idx); } diff --git a/src/ForLoop_dataSetBlocks.cpp b/src/ForLoop_dataSetBlocks.cpp index 4235d16650..1413f360f2 100644 --- a/src/ForLoop_dataSetBlocks.cpp +++ b/src/ForLoop_dataSetBlocks.cpp @@ -3,6 +3,7 @@ #include "ArgList.h" #include "CpptrajState.h" #include "DataSet.h" +#include "DataBlock.h" /// CONSTRUCTOR ForLoop_dataSetBlocks::ForLoop_dataSetBlocks() : @@ -67,7 +68,7 @@ bool ForLoop_dataSetBlocks::EndFor(DataSetList& DSL) { // Check if done by seeing if the current start value is outside the data set. if (idx_ < 0 || idx_ >= (long int)sourceSet_->Size()) return true; // Determine stop of the current block. - long int block_end = idx_ + blockoffset_; + long int block_end = idx_ + blocksize_; mprintf("DEBUG: Block %li to %li\n", idx_, block_end); // Create the subset currentSet_ = DSL.AddSet(sourceSet_->Type(), MetaData(VarName(), idx_)); @@ -77,7 +78,14 @@ bool ForLoop_dataSetBlocks::EndFor(DataSetList& DSL) { } // Update the set name DSL.UpdateStringVar( VarName(), currentSet_->Meta().PrintName() ); - + // Allocate memory + DataSet::SizeArray dsSize(1, blocksize_); + if ( currentSet_->MemAlloc( dsSize ) ) { + mprinterr("Error: Could not allocate dataSetBlocks subset.\n"); + return true; + } + // Copy block + currentSet_->AddBlock(0, sourceSet_->Block(idx_, blocksize_)); // Increment the start idx_ += blockoffset_; return false; diff --git a/src/cpptrajdepend b/src/cpptrajdepend index 2a8a2d092c..397b78b21d 100644 --- a/src/cpptrajdepend +++ b/src/cpptrajdepend @@ -190,7 +190,7 @@ DataIO_Std.o : DataIO_Std.cpp ArgList.h ArrayIterator.h AssociatedData.h Atom.h DataIO_VecTraj.o : DataIO_VecTraj.cpp ActionFrameCounter.h ArgList.h ArrayIterator.h AssociatedData.h Atom.h AtomExtra.h AtomMask.h AtomType.h BaseIOtype.h BondSearch.h Box.h ComplexArray.h Constants.h CoordinateInfo.h CpptrajFile.h CpptrajStdio.h DataIO.h DataIO_VecTraj.h DataSet.h DataSetList.h DataSet_1D.h DataSet_Coords.h DataSet_Coords_REF.h DataSet_Vector.h Dimension.h FileIO.h FileName.h FileTypes.h Frame.h MaskToken.h Matrix_3x3.h MetaData.h Molecule.h NameType.h OutputTrajCommon.h Parallel.h ParameterHolders.h ParameterSet.h ParameterTypes.h ParmFile.h ParmIO.h Range.h ReferenceFrame.h ReplicaDimArray.h Residue.h SymbolExporting.h TextFormat.h Timer.h Topology.h TrajectoryFile.h Trajout_Single.h TypeNameHolder.h Vec3.h DataIO_XVG.o : DataIO_XVG.cpp ArgList.h AssociatedData.h Atom.h AtomExtra.h AtomMask.h AtomType.h BaseIOtype.h Box.h BufferedLine.h Constants.h CoordinateInfo.h CpptrajFile.h CpptrajStdio.h DataIO.h DataIO_XVG.h DataSet.h DataSetList.h DataSet_1D.h DataSet_Coords.h DataSet_Coords_REF.h DataSet_double.h Dimension.h FileIO.h FileName.h Frame.h MaskToken.h Matrix_3x3.h MetaData.h Molecule.h NameType.h Parallel.h ParameterHolders.h ParameterSet.h ParameterTypes.h Range.h ReferenceFrame.h ReplicaDimArray.h Residue.h SymbolExporting.h TextFormat.h Timer.h Topology.h TypeNameHolder.h Vec3.h DataIO_Xplor.o : DataIO_Xplor.cpp ArgList.h ArrayIterator.h AssociatedData.h Atom.h AtomExtra.h AtomMask.h AtomType.h BaseIOtype.h Box.h BufferedLine.h Constants.h CoordinateInfo.h CpptrajFile.h CpptrajStdio.h DataIO.h DataIO_Xplor.h DataSet.h DataSetList.h DataSet_3D.h DataSet_Coords.h DataSet_Coords_REF.h DataSet_GridFlt.h Dimension.h FileIO.h FileName.h Frame.h Grid.h GridBin.h MaskToken.h Matrix_3x3.h MetaData.h Molecule.h NameType.h Parallel.h ParameterHolders.h ParameterSet.h ParameterTypes.h ProgressBar.h Range.h ReferenceFrame.h ReplicaDimArray.h Residue.h SymbolExporting.h TextFormat.h Timer.h Topology.h TypeNameHolder.h Vec3.h -DataSet.o : DataSet.cpp ArgList.h AssociatedData.h CpptrajFile.h CpptrajStdio.h DataSet.h Dimension.h FileIO.h FileName.h MetaData.h Parallel.h Range.h TextFormat.h +DataSet.o : DataSet.cpp ArgList.h AssociatedData.h CpptrajFile.h CpptrajStdio.h DataBlock.h DataSet.h Dimension.h FileIO.h FileName.h MetaData.h Parallel.h Range.h TextFormat.h DataSetList.o : DataSetList.cpp ArgList.h ArrayIterator.h AssociatedData.h Atom.h AtomExtra.h AtomMap.h AtomMask.h AtomType.h Box.h ClusterDist.h ClusterSieve.h ComplexArray.h Constants.h CoordinateInfo.h Cph.h CpptrajFile.h CpptrajStdio.h DataSet.h DataSetList.h DataSet_1D.h DataSet_2D.h DataSet_3D.h DataSet_Cmatrix.h DataSet_Cmatrix_DISK.h DataSet_Cmatrix_MEM.h DataSet_Cmatrix_NOMEM.h DataSet_Coords.h DataSet_Coords_CRD.h DataSet_Coords_REF.h DataSet_Coords_TRJ.h DataSet_GridDbl.h DataSet_GridFlt.h DataSet_Mat3x3.h DataSet_MatrixDbl.h DataSet_MatrixFlt.h DataSet_Mesh.h DataSet_Modes.h DataSet_PHREMD.h DataSet_PHREMD_Explicit.h DataSet_PHREMD_Implicit.h DataSet_Parameters.h DataSet_RemLog.h DataSet_StringVar.h DataSet_Tensor.h DataSet_Topology.h DataSet_Vector.h DataSet_double.h DataSet_float.h DataSet_integer.h DataSet_integer_disk.h DataSet_integer_mem.h DataSet_pH.h DataSet_string.h Dimension.h FileIO.h FileName.h Frame.h Grid.h GridBin.h Hungarian.h InputTrajCommon.h MapAtom.h MaskToken.h Matrix.h Matrix_3x3.h MetaData.h Molecule.h NC_Cmatrix.h NameType.h Parallel.h ParameterHolders.h ParameterSet.h ParameterTypes.h Range.h ReferenceFrame.h ReplicaDimArray.h Residue.h Spline.h StringRoutines.h SymbolExporting.h SymmetricRmsdCalc.h SymmetricTensor.h TextFormat.h Timer.h Topology.h TrajFrameCounter.h TrajFrameIndex.h Trajin.h TypeNameHolder.h Vec3.h DataSet_1D.o : DataSet_1D.cpp ArgList.h ArrayIterator.h AssociatedData.h ComplexArray.h Constants.h Corr.h CpptrajFile.h CpptrajStdio.h DataSet.h DataSet_1D.h Dimension.h FileIO.h FileName.h MetaData.h Parallel.h PubFFT.h Range.h TextFormat.h DataSet_3D.o : DataSet_3D.cpp ArgList.h AssociatedData.h Box.h CpptrajFile.h CpptrajStdio.h DataSet.h DataSet_3D.h Dimension.h FileIO.h FileName.h GridBin.h Matrix_3x3.h MetaData.h Parallel.h Range.h TextFormat.h Vec3.h @@ -217,7 +217,7 @@ DataSet_StringVar.o : DataSet_StringVar.cpp ArgList.h AssociatedData.h CpptrajFi DataSet_Tensor.o : DataSet_Tensor.cpp ArgList.h AssociatedData.h CpptrajFile.h DataSet.h DataSet_Tensor.h Dimension.h FileIO.h FileName.h MetaData.h Parallel.h Range.h SymmetricTensor.h TextFormat.h DataSet_Topology.o : DataSet_Topology.cpp ArgList.h AssociatedData.h Atom.h AtomExtra.h AtomMask.h AtomType.h BaseIOtype.h BondSearch.h Box.h Constants.h CoordinateInfo.h CpptrajFile.h CpptrajStdio.h DataSet.h DataSet_Topology.h Dimension.h FileIO.h FileName.h FileTypes.h Frame.h MaskToken.h Matrix_3x3.h MetaData.h Molecule.h NameType.h Parallel.h ParameterHolders.h ParameterSet.h ParameterTypes.h ParmFile.h ParmIO.h Range.h ReplicaDimArray.h Residue.h SymbolExporting.h TextFormat.h Topology.h TypeNameHolder.h Vec3.h DataSet_Vector.o : DataSet_Vector.cpp ArgList.h ArrayIterator.h AssociatedData.h ComplexArray.h Constants.h Corr.h CpptrajFile.h DataSet.h DataSet_1D.h DataSet_Vector.h Dimension.h FileIO.h FileName.h MetaData.h Parallel.h PubFFT.h Range.h SymbolExporting.h TextFormat.h Vec3.h -DataSet_double.o : DataSet_double.cpp ArgList.h AssociatedData.h CpptrajFile.h DataSet.h DataSet_1D.h DataSet_double.h Dimension.h FileIO.h FileName.h MetaData.h Parallel.h Range.h TextFormat.h +DataSet_double.o : DataSet_double.cpp ArgList.h AssociatedData.h CpptrajFile.h DataBlock.h DataSet.h DataSet_1D.h DataSet_double.h Dimension.h FileIO.h FileName.h MetaData.h Parallel.h Range.h TextFormat.h DataSet_float.o : DataSet_float.cpp ArgList.h AssociatedData.h CpptrajFile.h DataSet.h DataSet_1D.h DataSet_float.h Dimension.h FileIO.h FileName.h MetaData.h Parallel.h Range.h TextFormat.h DataSet_integer_disk.o : DataSet_integer_disk.cpp ArgList.h AssociatedData.h CpptrajFile.h CpptrajStdio.h DataSet.h DataSet_1D.h DataSet_integer.h DataSet_integer_disk.h Dimension.h FileIO.h FileName.h File_TempName.h MetaData.h NC_Routines.h Parallel.h Range.h TextFormat.h DataSet_integer_mem.o : DataSet_integer_mem.cpp ArgList.h AssociatedData.h CpptrajFile.h DataSet.h DataSet_1D.h DataSet_integer.h DataSet_integer_mem.h Dimension.h FileIO.h FileName.h MetaData.h Parallel.h Range.h TextFormat.h @@ -290,7 +290,7 @@ FileName.o : FileName.cpp CpptrajStdio.h FileName.h StringRoutines.h FileTypes.o : FileTypes.cpp ArgList.h BaseIOtype.h CpptrajStdio.h FileTypes.h File_TempName.o : File_TempName.cpp CpptrajStdio.h FileName.h File_TempName.h StringRoutines.h ForLoop.o : ForLoop.cpp ArgList.h AssociatedData.h Atom.h AtomExtra.h AtomMask.h AtomType.h Box.h Constants.h CoordinateInfo.h CpptrajFile.h CpptrajStdio.h DataSet.h DataSetList.h DataSet_Coords.h DataSet_Coords_REF.h Dimension.h FileIO.h FileName.h ForLoop.h Frame.h MaskToken.h Matrix_3x3.h MetaData.h Molecule.h NameType.h Parallel.h ParameterHolders.h ParameterSet.h ParameterTypes.h Range.h ReferenceFrame.h ReplicaDimArray.h Residue.h SymbolExporting.h TextFormat.h Timer.h Topology.h TypeNameHolder.h Vec3.h -ForLoop_dataSetBlocks.o : ForLoop_dataSetBlocks.cpp Action.h ActionList.h ActionState.h Analysis.h AnalysisList.h AnalysisState.h ArgList.h AssociatedData.h Atom.h AtomExtra.h AtomMask.h AtomType.h BaseIOtype.h Box.h Constants.h CoordinateInfo.h CpptrajFile.h CpptrajState.h CpptrajStdio.h DataFile.h DataFileList.h DataIO.h DataSet.h DataSetList.h DataSet_Coords.h DataSet_Coords_REF.h Dimension.h DispatchObject.h EnsembleIn.h EnsembleOutList.h FileIO.h FileName.h FileTypes.h ForLoop.h ForLoop_dataSetBlocks.h Frame.h FramePtrArray.h InputTrajCommon.h MaskToken.h Matrix_3x3.h MetaData.h Molecule.h NameType.h Parallel.h ParameterHolders.h ParameterSet.h ParameterTypes.h Range.h ReferenceFrame.h ReplicaDimArray.h ReplicaInfo.h Residue.h SymbolExporting.h TextFormat.h Timer.h Topology.h TrajFrameCounter.h Trajin.h TrajinList.h TrajoutList.h TypeNameHolder.h Vec3.h +ForLoop_dataSetBlocks.o : ForLoop_dataSetBlocks.cpp Action.h ActionList.h ActionState.h Analysis.h AnalysisList.h AnalysisState.h ArgList.h AssociatedData.h Atom.h AtomExtra.h AtomMask.h AtomType.h BaseIOtype.h Box.h Constants.h CoordinateInfo.h CpptrajFile.h CpptrajState.h CpptrajStdio.h DataBlock.h DataFile.h DataFileList.h DataIO.h DataSet.h DataSetList.h DataSet_Coords.h DataSet_Coords_REF.h Dimension.h DispatchObject.h EnsembleIn.h EnsembleOutList.h FileIO.h FileName.h FileTypes.h ForLoop.h ForLoop_dataSetBlocks.h Frame.h FramePtrArray.h InputTrajCommon.h MaskToken.h Matrix_3x3.h MetaData.h Molecule.h NameType.h Parallel.h ParameterHolders.h ParameterSet.h ParameterTypes.h Range.h ReferenceFrame.h ReplicaDimArray.h ReplicaInfo.h Residue.h SymbolExporting.h TextFormat.h Timer.h Topology.h TrajFrameCounter.h Trajin.h TrajinList.h TrajoutList.h TypeNameHolder.h Vec3.h ForLoop_integer.o : ForLoop_integer.cpp Action.h ActionList.h ActionState.h Analysis.h AnalysisList.h AnalysisState.h ArgList.h AssociatedData.h Atom.h AtomExtra.h AtomMask.h AtomType.h BaseIOtype.h Box.h Constants.h CoordinateInfo.h CpptrajFile.h CpptrajState.h CpptrajStdio.h DataFile.h DataFileList.h DataIO.h DataSet.h DataSetList.h DataSet_Coords.h DataSet_Coords_REF.h Dimension.h DispatchObject.h EnsembleIn.h EnsembleOutList.h FileIO.h FileName.h FileTypes.h ForLoop.h ForLoop_integer.h Frame.h FramePtrArray.h InputTrajCommon.h MaskToken.h Matrix_3x3.h MetaData.h Molecule.h NameType.h Parallel.h ParameterHolders.h ParameterSet.h ParameterTypes.h Range.h ReferenceFrame.h ReplicaDimArray.h ReplicaInfo.h Residue.h StringRoutines.h SymbolExporting.h TextFormat.h Timer.h Topology.h TrajFrameCounter.h Trajin.h TrajinList.h TrajoutList.h TypeNameHolder.h Vec3.h ForLoop_list.o : ForLoop_list.cpp Action.h ActionList.h ActionState.h Analysis.h AnalysisList.h AnalysisState.h ArgList.h AssociatedData.h Atom.h AtomExtra.h AtomMask.h AtomType.h BaseIOtype.h Box.h Constants.h CoordinateInfo.h CpptrajFile.h CpptrajState.h CpptrajStdio.h DataFile.h DataFileList.h DataIO.h DataSet.h DataSetList.h DataSet_Coords.h DataSet_Coords_REF.h Dimension.h DispatchObject.h EnsembleIn.h EnsembleOutList.h FileIO.h FileName.h FileTypes.h ForLoop.h ForLoop_list.h Frame.h FramePtrArray.h InputTrajCommon.h MaskToken.h Matrix_3x3.h MetaData.h Molecule.h NameType.h Parallel.h ParameterHolders.h ParameterSet.h ParameterTypes.h Range.h ReferenceFrame.h ReplicaDimArray.h ReplicaInfo.h Residue.h SymbolExporting.h TextFormat.h Timer.h Topology.h TrajFrameCounter.h Trajin.h TrajinList.h TrajoutList.h TypeNameHolder.h Vec3.h ForLoop_mask.o : ForLoop_mask.cpp Action.h ActionList.h ActionState.h Analysis.h AnalysisList.h AnalysisState.h ArgList.h AssociatedData.h Atom.h AtomExtra.h AtomMask.h AtomType.h BaseIOtype.h Box.h Constants.h CoordinateInfo.h CpptrajFile.h CpptrajState.h CpptrajStdio.h DataFile.h DataFileList.h DataIO.h DataSet.h DataSetList.h DataSet_Coords.h DataSet_Coords_REF.h Dimension.h DispatchObject.h EnsembleIn.h EnsembleOutList.h FileIO.h FileName.h FileTypes.h ForLoop.h ForLoop_mask.h Frame.h FramePtrArray.h InputTrajCommon.h MaskToken.h Matrix_3x3.h MetaData.h Molecule.h NameType.h Parallel.h ParameterHolders.h ParameterSet.h ParameterTypes.h Range.h ReferenceFrame.h ReplicaDimArray.h ReplicaInfo.h Residue.h StringRoutines.h SymbolExporting.h TextFormat.h Timer.h Topology.h TrajFrameCounter.h Trajin.h TrajinList.h TrajoutList.h TypeNameHolder.h Vec3.h From d7830995ec82172e9fb615da4594cae6c2b7e08d Mon Sep 17 00:00:00 2001 From: "Daniel R. Roe" Date: Fri, 3 Jan 2020 10:07:51 -0500 Subject: [PATCH 066/162] DRR - No need to abstract to DataBlock, just require that DataSet of same type be used in function (now called CopyBlock); this will make it easier to make universal. --- src/DataBlock.h | 14 -------------- src/DataSet.cpp | 5 ----- src/DataSet.h | 7 ++----- src/DataSet_double.cpp | 26 +++++++++++--------------- src/DataSet_double.h | 3 +-- src/ForLoop_dataSetBlocks.cpp | 2 +- src/cpptrajdepend | 4 ++-- 7 files changed, 17 insertions(+), 44 deletions(-) delete mode 100644 src/DataBlock.h diff --git a/src/DataBlock.h b/src/DataBlock.h deleted file mode 100644 index de776abd3e..0000000000 --- a/src/DataBlock.h +++ /dev/null @@ -1,14 +0,0 @@ -#ifndef INC_DATABLOCK_H -/// An abstraction used for copying one or more elements of a DataSet -class DataBlock { - public: - DataBlock() : nelts_(0) {} - DataBlock(void* pin, unsigned int n) : ptr0_(pin), nelts_(n) {} - - const void* Ptr0() const { return ptr0_; } - unsigned int Nelts() const { return nelts_; } - private: - void* ptr0_; ///< Pointer to memory address to copy - unsigned int nelts_; ///< Number of elements to copy -}; -#endif diff --git a/src/DataSet.cpp b/src/DataSet.cpp index b965c06cba..c462a52007 100644 --- a/src/DataSet.cpp +++ b/src/DataSet.cpp @@ -1,6 +1,5 @@ #include "DataSet.h" #include "CpptrajStdio.h" -#include "DataBlock.h" // NOTE: IT IS IMPORTANT THAT THIS ARRAY CORRESPOND TO DataSet::DataType /** Description of each DataType. */ @@ -127,7 +126,3 @@ AssociatedData* DataSet::GetAssociatedData(AssociatedData::AssociatedType typeIn if ((*ad)->Type() == typeIn) return *ad; return 0; } - -DataBlock DataSet::Block(size_t, unsigned int) const { return DataBlock(); } - -void DataSet::AddBlock(size_t, DataBlock const&) {} diff --git a/src/DataSet.h b/src/DataSet.h index 24572ef3fe..2836ab90e5 100644 --- a/src/DataSet.h +++ b/src/DataSet.h @@ -10,7 +10,6 @@ #ifdef MPI # include "Parallel.h" #endif -class DataBlock; /// Base class that all DataSet types will inherit. /** The DataSet base class holds common information, like MetaData for * selection, TextFormat for text output, etc. @@ -69,10 +68,8 @@ class DataSet { virtual int Append(DataSet*) = 0; /// \return Size of data set in memory (in bytes). virtual size_t MemUsageInBytes() const = 0; - /// \return DataBlock at specified position of requested size TODO pure virtual - virtual DataBlock Block(size_t, unsigned int) const; - /// Add given DataBlock to set at specified position TODO pure virtual - virtual void AddBlock(size_t, DataBlock const&); + /// Copy a block to position in this set from given set OF SAME TYPE using specified position and size TODO pure virtual + virtual void CopyBlock(size_t, const DataSet*, size_t, size_t) {} # ifdef MPI /// Piece this DataSet together from multiple threads. virtual int Sync(size_t, std::vector const&, Parallel::Comm const&) = 0; diff --git a/src/DataSet_double.cpp b/src/DataSet_double.cpp index 625ee7a6f7..7f0d65173b 100644 --- a/src/DataSet_double.cpp +++ b/src/DataSet_double.cpp @@ -1,6 +1,5 @@ #include // copy #include "DataSet_double.h" -#include "DataBlock.h" // DataSet_double::Allocate() /** Reserve space in the Data and Frames arrays. */ @@ -10,13 +9,6 @@ int DataSet_double::Allocate( SizeArray const& sizeIn ) { return 0; } -/** Allocate space in Data_ array. */ -int DataSet_double::MemAlloc( SizeArray const& sizeIn ) { - if (!sizeIn.empty()) - Data_.resize( sizeIn[0] ); - return 0; -} - // DataSet_double::Add() /** Insert data vIn at frame. */ void DataSet_double::Add(size_t frame, const void* vIn) { @@ -27,15 +19,19 @@ void DataSet_double::Add(size_t frame, const void* vIn) { Data_.push_back( *((double*)vIn) ); } -// DataSet_double::Block() -DataBlock DataSet_double::Block(size_t startIdx, unsigned int nelts) const { - return DataBlock( (void*)(&(Data_[0])+startIdx), nelts ); +/** Allocate space in Data_ array. */ +int DataSet_double::MemAlloc( SizeArray const& sizeIn ) { + if (!sizeIn.empty()) + Data_.resize( sizeIn[0] ); + return 0; } -// DataSet_double::AddBlock() -void DataSet_double::AddBlock(size_t startIdx, DataBlock const& block) { - const double* ptr = (const double*)block.Ptr0(); - std::copy( ptr, ptr+block.Nelts(), &(Data_[0]) + startIdx ); +// DataSet_double::CopyBlock() +void DataSet_double::CopyBlock(size_t startIdx, DataSet const* dptrIn, size_t pos, size_t nelts) +{ + DataSet_double const& setIn = static_cast( *dptrIn ); + const double* ptr = (&(setIn.Data_[0])+pos); + std::copy( ptr, ptr + nelts, &(Data_[0]) + startIdx ); } // DataSet_double::WriteBuffer() diff --git a/src/DataSet_double.h b/src/DataSet_double.h index 5d40cfad8d..dc71fdd649 100644 --- a/src/DataSet_double.h +++ b/src/DataSet_double.h @@ -32,8 +32,7 @@ class DataSet_double : public DataSet_1D { void WriteBuffer(CpptrajFile&, SizeArray const&) const; int Append(DataSet*); size_t MemUsageInBytes() const { return Data_.size() * sizeof(double); } - DataBlock Block(size_t, unsigned int) const; - void AddBlock(size_t, DataBlock const&); + void CopyBlock(size_t, const DataSet*, size_t, size_t); // ----- DataSet_1D functions ---------------- double Dval(size_t idx) const { return Data_[idx]; } double Xcrd(size_t idx) const { return Dim(0).Coord(idx); } diff --git a/src/ForLoop_dataSetBlocks.cpp b/src/ForLoop_dataSetBlocks.cpp index 1413f360f2..729467c000 100644 --- a/src/ForLoop_dataSetBlocks.cpp +++ b/src/ForLoop_dataSetBlocks.cpp @@ -85,7 +85,7 @@ bool ForLoop_dataSetBlocks::EndFor(DataSetList& DSL) { return true; } // Copy block - currentSet_->AddBlock(0, sourceSet_->Block(idx_, blocksize_)); + currentSet_->CopyBlock(0, sourceSet_, idx_, blocksize_); // Increment the start idx_ += blockoffset_; return false; diff --git a/src/cpptrajdepend b/src/cpptrajdepend index 397b78b21d..3ece6ea5a2 100644 --- a/src/cpptrajdepend +++ b/src/cpptrajdepend @@ -190,7 +190,7 @@ DataIO_Std.o : DataIO_Std.cpp ArgList.h ArrayIterator.h AssociatedData.h Atom.h DataIO_VecTraj.o : DataIO_VecTraj.cpp ActionFrameCounter.h ArgList.h ArrayIterator.h AssociatedData.h Atom.h AtomExtra.h AtomMask.h AtomType.h BaseIOtype.h BondSearch.h Box.h ComplexArray.h Constants.h CoordinateInfo.h CpptrajFile.h CpptrajStdio.h DataIO.h DataIO_VecTraj.h DataSet.h DataSetList.h DataSet_1D.h DataSet_Coords.h DataSet_Coords_REF.h DataSet_Vector.h Dimension.h FileIO.h FileName.h FileTypes.h Frame.h MaskToken.h Matrix_3x3.h MetaData.h Molecule.h NameType.h OutputTrajCommon.h Parallel.h ParameterHolders.h ParameterSet.h ParameterTypes.h ParmFile.h ParmIO.h Range.h ReferenceFrame.h ReplicaDimArray.h Residue.h SymbolExporting.h TextFormat.h Timer.h Topology.h TrajectoryFile.h Trajout_Single.h TypeNameHolder.h Vec3.h DataIO_XVG.o : DataIO_XVG.cpp ArgList.h AssociatedData.h Atom.h AtomExtra.h AtomMask.h AtomType.h BaseIOtype.h Box.h BufferedLine.h Constants.h CoordinateInfo.h CpptrajFile.h CpptrajStdio.h DataIO.h DataIO_XVG.h DataSet.h DataSetList.h DataSet_1D.h DataSet_Coords.h DataSet_Coords_REF.h DataSet_double.h Dimension.h FileIO.h FileName.h Frame.h MaskToken.h Matrix_3x3.h MetaData.h Molecule.h NameType.h Parallel.h ParameterHolders.h ParameterSet.h ParameterTypes.h Range.h ReferenceFrame.h ReplicaDimArray.h Residue.h SymbolExporting.h TextFormat.h Timer.h Topology.h TypeNameHolder.h Vec3.h DataIO_Xplor.o : DataIO_Xplor.cpp ArgList.h ArrayIterator.h AssociatedData.h Atom.h AtomExtra.h AtomMask.h AtomType.h BaseIOtype.h Box.h BufferedLine.h Constants.h CoordinateInfo.h CpptrajFile.h CpptrajStdio.h DataIO.h DataIO_Xplor.h DataSet.h DataSetList.h DataSet_3D.h DataSet_Coords.h DataSet_Coords_REF.h DataSet_GridFlt.h Dimension.h FileIO.h FileName.h Frame.h Grid.h GridBin.h MaskToken.h Matrix_3x3.h MetaData.h Molecule.h NameType.h Parallel.h ParameterHolders.h ParameterSet.h ParameterTypes.h ProgressBar.h Range.h ReferenceFrame.h ReplicaDimArray.h Residue.h SymbolExporting.h TextFormat.h Timer.h Topology.h TypeNameHolder.h Vec3.h -DataSet.o : DataSet.cpp ArgList.h AssociatedData.h CpptrajFile.h CpptrajStdio.h DataBlock.h DataSet.h Dimension.h FileIO.h FileName.h MetaData.h Parallel.h Range.h TextFormat.h +DataSet.o : DataSet.cpp ArgList.h AssociatedData.h CpptrajFile.h CpptrajStdio.h DataSet.h Dimension.h FileIO.h FileName.h MetaData.h Parallel.h Range.h TextFormat.h DataSetList.o : DataSetList.cpp ArgList.h ArrayIterator.h AssociatedData.h Atom.h AtomExtra.h AtomMap.h AtomMask.h AtomType.h Box.h ClusterDist.h ClusterSieve.h ComplexArray.h Constants.h CoordinateInfo.h Cph.h CpptrajFile.h CpptrajStdio.h DataSet.h DataSetList.h DataSet_1D.h DataSet_2D.h DataSet_3D.h DataSet_Cmatrix.h DataSet_Cmatrix_DISK.h DataSet_Cmatrix_MEM.h DataSet_Cmatrix_NOMEM.h DataSet_Coords.h DataSet_Coords_CRD.h DataSet_Coords_REF.h DataSet_Coords_TRJ.h DataSet_GridDbl.h DataSet_GridFlt.h DataSet_Mat3x3.h DataSet_MatrixDbl.h DataSet_MatrixFlt.h DataSet_Mesh.h DataSet_Modes.h DataSet_PHREMD.h DataSet_PHREMD_Explicit.h DataSet_PHREMD_Implicit.h DataSet_Parameters.h DataSet_RemLog.h DataSet_StringVar.h DataSet_Tensor.h DataSet_Topology.h DataSet_Vector.h DataSet_double.h DataSet_float.h DataSet_integer.h DataSet_integer_disk.h DataSet_integer_mem.h DataSet_pH.h DataSet_string.h Dimension.h FileIO.h FileName.h Frame.h Grid.h GridBin.h Hungarian.h InputTrajCommon.h MapAtom.h MaskToken.h Matrix.h Matrix_3x3.h MetaData.h Molecule.h NC_Cmatrix.h NameType.h Parallel.h ParameterHolders.h ParameterSet.h ParameterTypes.h Range.h ReferenceFrame.h ReplicaDimArray.h Residue.h Spline.h StringRoutines.h SymbolExporting.h SymmetricRmsdCalc.h SymmetricTensor.h TextFormat.h Timer.h Topology.h TrajFrameCounter.h TrajFrameIndex.h Trajin.h TypeNameHolder.h Vec3.h DataSet_1D.o : DataSet_1D.cpp ArgList.h ArrayIterator.h AssociatedData.h ComplexArray.h Constants.h Corr.h CpptrajFile.h CpptrajStdio.h DataSet.h DataSet_1D.h Dimension.h FileIO.h FileName.h MetaData.h Parallel.h PubFFT.h Range.h TextFormat.h DataSet_3D.o : DataSet_3D.cpp ArgList.h AssociatedData.h Box.h CpptrajFile.h CpptrajStdio.h DataSet.h DataSet_3D.h Dimension.h FileIO.h FileName.h GridBin.h Matrix_3x3.h MetaData.h Parallel.h Range.h TextFormat.h Vec3.h @@ -217,7 +217,7 @@ DataSet_StringVar.o : DataSet_StringVar.cpp ArgList.h AssociatedData.h CpptrajFi DataSet_Tensor.o : DataSet_Tensor.cpp ArgList.h AssociatedData.h CpptrajFile.h DataSet.h DataSet_Tensor.h Dimension.h FileIO.h FileName.h MetaData.h Parallel.h Range.h SymmetricTensor.h TextFormat.h DataSet_Topology.o : DataSet_Topology.cpp ArgList.h AssociatedData.h Atom.h AtomExtra.h AtomMask.h AtomType.h BaseIOtype.h BondSearch.h Box.h Constants.h CoordinateInfo.h CpptrajFile.h CpptrajStdio.h DataSet.h DataSet_Topology.h Dimension.h FileIO.h FileName.h FileTypes.h Frame.h MaskToken.h Matrix_3x3.h MetaData.h Molecule.h NameType.h Parallel.h ParameterHolders.h ParameterSet.h ParameterTypes.h ParmFile.h ParmIO.h Range.h ReplicaDimArray.h Residue.h SymbolExporting.h TextFormat.h Topology.h TypeNameHolder.h Vec3.h DataSet_Vector.o : DataSet_Vector.cpp ArgList.h ArrayIterator.h AssociatedData.h ComplexArray.h Constants.h Corr.h CpptrajFile.h DataSet.h DataSet_1D.h DataSet_Vector.h Dimension.h FileIO.h FileName.h MetaData.h Parallel.h PubFFT.h Range.h SymbolExporting.h TextFormat.h Vec3.h -DataSet_double.o : DataSet_double.cpp ArgList.h AssociatedData.h CpptrajFile.h DataBlock.h DataSet.h DataSet_1D.h DataSet_double.h Dimension.h FileIO.h FileName.h MetaData.h Parallel.h Range.h TextFormat.h +DataSet_double.o : DataSet_double.cpp ArgList.h AssociatedData.h CpptrajFile.h DataSet.h DataSet_1D.h DataSet_double.h Dimension.h FileIO.h FileName.h MetaData.h Parallel.h Range.h TextFormat.h DataSet_float.o : DataSet_float.cpp ArgList.h AssociatedData.h CpptrajFile.h DataSet.h DataSet_1D.h DataSet_float.h Dimension.h FileIO.h FileName.h MetaData.h Parallel.h Range.h TextFormat.h DataSet_integer_disk.o : DataSet_integer_disk.cpp ArgList.h AssociatedData.h CpptrajFile.h CpptrajStdio.h DataSet.h DataSet_1D.h DataSet_integer.h DataSet_integer_disk.h Dimension.h FileIO.h FileName.h File_TempName.h MetaData.h NC_Routines.h Parallel.h Range.h TextFormat.h DataSet_integer_mem.o : DataSet_integer_mem.cpp ArgList.h AssociatedData.h CpptrajFile.h DataSet.h DataSet_1D.h DataSet_integer.h DataSet_integer_mem.h Dimension.h FileIO.h FileName.h MetaData.h Parallel.h Range.h TextFormat.h From 85665be3360d150594b82e3a7ec2989eb839f856 Mon Sep 17 00:00:00 2001 From: "Daniel R. Roe" Date: Fri, 3 Jan 2020 10:37:03 -0500 Subject: [PATCH 067/162] DRR - Add MemAlloc and CopyBlock for mesh --- src/DataSet_Mesh.cpp | 20 ++++++++++++++++++++ src/DataSet_Mesh.h | 2 ++ 2 files changed, 22 insertions(+) diff --git a/src/DataSet_Mesh.cpp b/src/DataSet_Mesh.cpp index 28494a59f5..5acc58221f 100644 --- a/src/DataSet_Mesh.cpp +++ b/src/DataSet_Mesh.cpp @@ -1,4 +1,5 @@ #include // regression +#include // copy #include "DataSet_Mesh.h" #include "CpptrajStdio.h" #include "Constants.h" // regression @@ -28,6 +29,25 @@ int DataSet_Mesh::Allocate( SizeArray const& sizeIn ) { return 0; } +/** Allocate space in arrays. */ +int DataSet_Mesh::MemAlloc( SizeArray const& sizeIn ) { + if (!sizeIn.empty()) { + mesh_x_.resize( sizeIn[0] ); + mesh_y_.resize( sizeIn[0] ); + } + return 0; +} + +// DataSet_Mesh::CopyBlock() +void DataSet_Mesh::CopyBlock(size_t startIdx, DataSet const* dptrIn, size_t pos, size_t nelts) +{ + DataSet_Mesh const& setIn = static_cast( *dptrIn ); + const double* ptr = (&(setIn.mesh_x_[0])+pos); + std::copy( ptr, ptr + nelts, &(mesh_x_[0]) + startIdx ); + ptr = (&(setIn.mesh_y_[0])+pos); + std::copy( ptr, ptr + nelts, &(mesh_y_[0]) + startIdx ); +} + /** Insert data vIn at frame. */ void DataSet_Mesh::Add(size_t frame, const void* vIn) { if (frame > mesh_x_.size()) { diff --git a/src/DataSet_Mesh.h b/src/DataSet_Mesh.h index ce94ec4fef..6f3b8f9c76 100644 --- a/src/DataSet_Mesh.h +++ b/src/DataSet_Mesh.h @@ -25,6 +25,8 @@ class DataSet_Mesh : public DataSet_1D { int Append(DataSet*); double Coord(unsigned int d, size_t p) const { return mesh_x_[p]; } size_t MemUsageInBytes() const { return ((mesh_x_.size() + mesh_y_.size()) * sizeof(double)) + cspline_.DataSize(); } + int MemAlloc(SizeArray const&); + void CopyBlock(size_t, const DataSet*, size_t, size_t); // ----- DataSet_1D functions ---------------- double Dval(size_t idx) const { return mesh_y_[idx]; } double Xcrd(size_t idx) const { return mesh_x_[idx]; } From b046725dc32430ae4c02f9a432bcf952be173aef Mon Sep 17 00:00:00 2001 From: "Daniel R. Roe" Date: Fri, 3 Jan 2020 10:37:29 -0500 Subject: [PATCH 068/162] DRR - Fix up dependencies --- src/ForLoop_dataSetBlocks.cpp | 1 - src/cpptrajdepend | 2 +- 2 files changed, 1 insertion(+), 2 deletions(-) diff --git a/src/ForLoop_dataSetBlocks.cpp b/src/ForLoop_dataSetBlocks.cpp index 729467c000..98482eb93c 100644 --- a/src/ForLoop_dataSetBlocks.cpp +++ b/src/ForLoop_dataSetBlocks.cpp @@ -3,7 +3,6 @@ #include "ArgList.h" #include "CpptrajState.h" #include "DataSet.h" -#include "DataBlock.h" /// CONSTRUCTOR ForLoop_dataSetBlocks::ForLoop_dataSetBlocks() : diff --git a/src/cpptrajdepend b/src/cpptrajdepend index 3ece6ea5a2..2a8a2d092c 100644 --- a/src/cpptrajdepend +++ b/src/cpptrajdepend @@ -290,7 +290,7 @@ FileName.o : FileName.cpp CpptrajStdio.h FileName.h StringRoutines.h FileTypes.o : FileTypes.cpp ArgList.h BaseIOtype.h CpptrajStdio.h FileTypes.h File_TempName.o : File_TempName.cpp CpptrajStdio.h FileName.h File_TempName.h StringRoutines.h ForLoop.o : ForLoop.cpp ArgList.h AssociatedData.h Atom.h AtomExtra.h AtomMask.h AtomType.h Box.h Constants.h CoordinateInfo.h CpptrajFile.h CpptrajStdio.h DataSet.h DataSetList.h DataSet_Coords.h DataSet_Coords_REF.h Dimension.h FileIO.h FileName.h ForLoop.h Frame.h MaskToken.h Matrix_3x3.h MetaData.h Molecule.h NameType.h Parallel.h ParameterHolders.h ParameterSet.h ParameterTypes.h Range.h ReferenceFrame.h ReplicaDimArray.h Residue.h SymbolExporting.h TextFormat.h Timer.h Topology.h TypeNameHolder.h Vec3.h -ForLoop_dataSetBlocks.o : ForLoop_dataSetBlocks.cpp Action.h ActionList.h ActionState.h Analysis.h AnalysisList.h AnalysisState.h ArgList.h AssociatedData.h Atom.h AtomExtra.h AtomMask.h AtomType.h BaseIOtype.h Box.h Constants.h CoordinateInfo.h CpptrajFile.h CpptrajState.h CpptrajStdio.h DataBlock.h DataFile.h DataFileList.h DataIO.h DataSet.h DataSetList.h DataSet_Coords.h DataSet_Coords_REF.h Dimension.h DispatchObject.h EnsembleIn.h EnsembleOutList.h FileIO.h FileName.h FileTypes.h ForLoop.h ForLoop_dataSetBlocks.h Frame.h FramePtrArray.h InputTrajCommon.h MaskToken.h Matrix_3x3.h MetaData.h Molecule.h NameType.h Parallel.h ParameterHolders.h ParameterSet.h ParameterTypes.h Range.h ReferenceFrame.h ReplicaDimArray.h ReplicaInfo.h Residue.h SymbolExporting.h TextFormat.h Timer.h Topology.h TrajFrameCounter.h Trajin.h TrajinList.h TrajoutList.h TypeNameHolder.h Vec3.h +ForLoop_dataSetBlocks.o : ForLoop_dataSetBlocks.cpp Action.h ActionList.h ActionState.h Analysis.h AnalysisList.h AnalysisState.h ArgList.h AssociatedData.h Atom.h AtomExtra.h AtomMask.h AtomType.h BaseIOtype.h Box.h Constants.h CoordinateInfo.h CpptrajFile.h CpptrajState.h CpptrajStdio.h DataFile.h DataFileList.h DataIO.h DataSet.h DataSetList.h DataSet_Coords.h DataSet_Coords_REF.h Dimension.h DispatchObject.h EnsembleIn.h EnsembleOutList.h FileIO.h FileName.h FileTypes.h ForLoop.h ForLoop_dataSetBlocks.h Frame.h FramePtrArray.h InputTrajCommon.h MaskToken.h Matrix_3x3.h MetaData.h Molecule.h NameType.h Parallel.h ParameterHolders.h ParameterSet.h ParameterTypes.h Range.h ReferenceFrame.h ReplicaDimArray.h ReplicaInfo.h Residue.h SymbolExporting.h TextFormat.h Timer.h Topology.h TrajFrameCounter.h Trajin.h TrajinList.h TrajoutList.h TypeNameHolder.h Vec3.h ForLoop_integer.o : ForLoop_integer.cpp Action.h ActionList.h ActionState.h Analysis.h AnalysisList.h AnalysisState.h ArgList.h AssociatedData.h Atom.h AtomExtra.h AtomMask.h AtomType.h BaseIOtype.h Box.h Constants.h CoordinateInfo.h CpptrajFile.h CpptrajState.h CpptrajStdio.h DataFile.h DataFileList.h DataIO.h DataSet.h DataSetList.h DataSet_Coords.h DataSet_Coords_REF.h Dimension.h DispatchObject.h EnsembleIn.h EnsembleOutList.h FileIO.h FileName.h FileTypes.h ForLoop.h ForLoop_integer.h Frame.h FramePtrArray.h InputTrajCommon.h MaskToken.h Matrix_3x3.h MetaData.h Molecule.h NameType.h Parallel.h ParameterHolders.h ParameterSet.h ParameterTypes.h Range.h ReferenceFrame.h ReplicaDimArray.h ReplicaInfo.h Residue.h StringRoutines.h SymbolExporting.h TextFormat.h Timer.h Topology.h TrajFrameCounter.h Trajin.h TrajinList.h TrajoutList.h TypeNameHolder.h Vec3.h ForLoop_list.o : ForLoop_list.cpp Action.h ActionList.h ActionState.h Analysis.h AnalysisList.h AnalysisState.h ArgList.h AssociatedData.h Atom.h AtomExtra.h AtomMask.h AtomType.h BaseIOtype.h Box.h Constants.h CoordinateInfo.h CpptrajFile.h CpptrajState.h CpptrajStdio.h DataFile.h DataFileList.h DataIO.h DataSet.h DataSetList.h DataSet_Coords.h DataSet_Coords_REF.h Dimension.h DispatchObject.h EnsembleIn.h EnsembleOutList.h FileIO.h FileName.h FileTypes.h ForLoop.h ForLoop_list.h Frame.h FramePtrArray.h InputTrajCommon.h MaskToken.h Matrix_3x3.h MetaData.h Molecule.h NameType.h Parallel.h ParameterHolders.h ParameterSet.h ParameterTypes.h Range.h ReferenceFrame.h ReplicaDimArray.h ReplicaInfo.h Residue.h SymbolExporting.h TextFormat.h Timer.h Topology.h TrajFrameCounter.h Trajin.h TrajinList.h TrajoutList.h TypeNameHolder.h Vec3.h ForLoop_mask.o : ForLoop_mask.cpp Action.h ActionList.h ActionState.h Analysis.h AnalysisList.h AnalysisState.h ArgList.h AssociatedData.h Atom.h AtomExtra.h AtomMask.h AtomType.h BaseIOtype.h Box.h Constants.h CoordinateInfo.h CpptrajFile.h CpptrajState.h CpptrajStdio.h DataFile.h DataFileList.h DataIO.h DataSet.h DataSetList.h DataSet_Coords.h DataSet_Coords_REF.h Dimension.h DispatchObject.h EnsembleIn.h EnsembleOutList.h FileIO.h FileName.h FileTypes.h ForLoop.h ForLoop_mask.h Frame.h FramePtrArray.h InputTrajCommon.h MaskToken.h Matrix_3x3.h MetaData.h Molecule.h NameType.h Parallel.h ParameterHolders.h ParameterSet.h ParameterTypes.h Range.h ReferenceFrame.h ReplicaDimArray.h ReplicaInfo.h Residue.h StringRoutines.h SymbolExporting.h TextFormat.h Timer.h Topology.h TrajFrameCounter.h Trajin.h TrajinList.h TrajoutList.h TypeNameHolder.h Vec3.h From ef3fb4dd31924ba1c3a51a4d9c603a5f11828b0a Mon Sep 17 00:00:00 2001 From: "Daniel R. Roe" Date: Fri, 3 Jan 2020 11:42:36 -0500 Subject: [PATCH 069/162] DRR - Start attempt to split DataSet_Vector into two sets, 1 with origins and 1 without --- src/DataSet_Vector_OXYZ.cpp | 100 ++++++++++++++++++++++++++++++++++++ src/DataSet_Vector_OXYZ.h | 60 ++++++++++++++++++++++ src/DataSet_Vector_XYZ.cpp | 44 ++++++++++++++++ src/DataSet_Vector_XYZ.h | 27 ++++++++++ 4 files changed, 231 insertions(+) create mode 100644 src/DataSet_Vector_OXYZ.cpp create mode 100644 src/DataSet_Vector_OXYZ.h create mode 100644 src/DataSet_Vector_XYZ.cpp create mode 100644 src/DataSet_Vector_XYZ.h diff --git a/src/DataSet_Vector_OXYZ.cpp b/src/DataSet_Vector_OXYZ.cpp new file mode 100644 index 0000000000..1fda002740 --- /dev/null +++ b/src/DataSet_Vector_OXYZ.cpp @@ -0,0 +1,100 @@ +#include // copy +#include "DataSet_Vector_OXYZ.h" + +// CONSTRUCTOR +DataSet_Vector_OXYZ::DataSet_Vector_OXYZ() : + DataSet_Vector(VEC_OXYZ, TextFormat(TextFormat::DOUBLE, 8, 4, 6)) +{} + +// DataSet_Vector_OXYZ::MemUsageInBytes() +size_t DataSet_Vector_OXYZ::MemUsageInBytes() const { + return internalSize() + (origins_.size() * Vec3::DataSize()); +} + +// DataSet_Vector_OXYZ::Allocate() +int DataSet_Vector_OXYZ::Allocate(SizeArray const& Nin) { + if (!Nin.empty()) { + internalAlloc(Nin); + origins_.reserve( Nin[0] ); + } + return 0; +} + +// DataSet_Vector_OXYZ::WriteBuffer() +void DataSet_Vector_OXYZ::WriteBuffer(CpptrajFile &cbuffer, SizeArray const& pIn) const { + if (pIn[0] >= Size()) { + cbuffer.Printf(format_.fmt(), 0.0, 0.0, 0.0, 0.0, 0.0, 0.0); // VXYZ OXYZ + } else { + Vec3 const& Vxyz = vectors()[pIn[0]]; + Vec3 const& Oxyz = origins_[pIn[0]]; + cbuffer.Printf(format_.fmt(), Vxyz[0], Vxyz[1], Vxyz[2], + Oxyz[0], Oxyz[1], Oxyz[2]); + } +} + +// DataSet_Vector_OXYZ::Append() +int DataSet_Vector_OXYZ::Append(DataSet* dsIn) { + if (dsIn->Empty()) return 0; + if (dsIn->Group() != VECTOR_1D) return 1; + internalAppend( (DataSet_Vector*)dsIn ); + + if (dsIn->Type() == VEC_OXYZ) { + // incoming set has origins + Varray const& oIn = ((DataSet_Vector_OXYZ*)dsIn)->origins_; + size_t oldsize = origins_.size(); + origins_.resize( oldsize + oIn.size() ); + std::copy( oIn.begin(), oIn.end(), origins_.begin() + oldsize ); + } else { + // no origins in incoming set; use zero + origins_.resize( Size(), Vec3(0.0) ); + } + return 0; +} + +// DataSet_Vector_OXYZ::reset() +void DataSet_Vector_OXYZ::reset() { + internalReset(); + origins_.clear(); +} + +#ifdef MPI +int DataSet_Vector::Sync(size_t total, std::vector const& rank_frames, + Parallel::Comm const& commIn) +{ + if (commIn.Size()==1) return 0; + double buf[6]; + // TODO: Consolidate to 1 send/recv via arrays? + if (commIn.Master()) { + // Resize to accept data from other ranks. + vectors_.resize( total ); + if (!origins_.empty()) { + origins_.resize( total ); + int vidx = rank_frames[0]; // Index on master + for (int rank = 1; rank < commIn.Size(); rank++) { + for (int ridx = 0; ridx != rank_frames[rank]; ridx++, vidx++) { + commIn.SendMaster( buf, 6, rank, MPI_DOUBLE ); + std::copy( buf, buf+3, vectors_[vidx].Dptr() ); + std::copy( buf+3, buf+6, origins_[vidx].Dptr() ); + } + } + } else { + int vidx = rank_frames[0]; // Index on master + for (int rank = 1; rank < commIn.Size(); rank++) { + for (int ridx = 0; ridx != rank_frames[rank]; ridx++, vidx++) + commIn.SendMaster( vectors_[vidx].Dptr(), 3, rank, MPI_DOUBLE ); + } + } + } else { // Send data to master + if (!origins_.empty()) { + for (unsigned int ridx = 0; ridx != vectors_.size(); ++ridx) { + std::copy( vectors_[ridx].Dptr(), vectors_[ridx].Dptr()+3, buf ); + std::copy( origins_[ridx].Dptr(), origins_[ridx].Dptr()+3, buf+3 ); + commIn.SendMaster( buf, 6, commIn.Rank(), MPI_DOUBLE ); + } + } else + for (unsigned int ridx = 0; ridx != vectors_.size(); ++ridx) + commIn.SendMaster( vectors_[ridx].Dptr(), 3, commIn.Rank(), MPI_DOUBLE ); + } + return 0; +} +#endif diff --git a/src/DataSet_Vector_OXYZ.h b/src/DataSet_Vector_OXYZ.h new file mode 100644 index 0000000000..bcd7f7ec59 --- /dev/null +++ b/src/DataSet_Vector_OXYZ.h @@ -0,0 +1,60 @@ +#ifndef INC_DATASET_VECTOR_OXYZ_H +#define INC_DATASET_VECTOR_OXYZ_H +#include "DataSet_Vector.h" +class DataSet_Vector_OXYZ : public DataSet_Vector { + public: + DataSet_Vector_OXYZ(); + static DataSet* Alloc() { return (DataSet*)new DataSet_Vector_OXYZ();} + // ----- DataSet functions ------------------- + size_t MemUsageInBytes() const; + int Allocate(SizeArray const&); + void WriteBuffer(CpptrajFile&,SizeArray const&) const; + inline void Add(size_t, const void*); +# ifdef MPI + int Sync(size_t, std::vector const&, Parallel::Comm const&); +# endif + int Append( DataSet* ); + // ----- DataSet_Vector functions ------------ + void reset(); + void Resize(size_t s) { + internalResize( s, Vec3(0.0) ); + origins_.resize( s, Vec3(0.0) ); + } + void Resize(size_t s, Vec3 const& v) { + internalResize(s, v); + origins_.resize( s, Vec3(0.0) ); + } + // ------------------------------------------- + /// \return vector origin at specified position + const Vec3& OXYZ(int i) const { return origins_[i]; } + /// Add vector and origin + void AddVxyzo(Vec3 const& v, Vec3 const& c) { + vectors_.push_back( v ); + origins_.push_back( c ); + } + + /// Calculate auto/cross-correlation //TODO Move to Corr.cpp + int CalcVectorCorr(DataSet_Vector const&, DataSet_1D&, int) const; + /// Calculate spherical harmonics arrays for given Legendre order + int CalcSphericalHarmonics(int); + /// \return Spherical harmonics array for given m (-order_ <= m <= order_) + ComplexArray const& SphericalHarmonics(int) const; + /// \return Constant for normalization via spherical harmonics addition theorem. + static double SphericalHarmonicsNorm(int); + private: + int order_; ///< Order for spherical harmonics calculations + Varray vectors_; + Varray origins_; + /// Hold spherical harmonic values for m=-order to order + std::vector sphericalHarmonics_; // TODO Make AdditionalData +}; +// ---------- INLINE FUNCTIONS ------------------------------------------------- +void DataSet_Vector_OXYZ::Add(size_t frame, const void* vIn) { + if (frame > Size()) { + internalResize(frame, Vec3(0.0)); + origins_.resize(frame, Vec3(0.0)); + } + internalAdd(vIn); + origins_.push_back( Vec3( (const double*)vIn+3 ) ); +} +#endif diff --git a/src/DataSet_Vector_XYZ.cpp b/src/DataSet_Vector_XYZ.cpp new file mode 100644 index 0000000000..eaeb925fd3 --- /dev/null +++ b/src/DataSet_Vector_XYZ.cpp @@ -0,0 +1,44 @@ +#include "DataSet_Vector_XYZ.h" +#include "CpptrajStdio.h" + +DataSet_Vector_XYZ::DataSet_Vector_XYZ() : + DataSet_Vector(VEC_XYZ, TextFormat(TextFormat::DOUBLE, 8, 4, 3)) +{} + +// DataSet_Vector_XYZ::MemUsageInBytes() +size_t DataSet_Vector_XYZ::MemUsageInBytes() const { + return internalSize(); +} + +// DataSet_Vector_XYZ::Allocate +int DataSet_Vector_XYZ::Allocate(SizeArray const& Nin) { + if (!Nin.empty()) + internalAlloc(Nin); + return 0; +} + +// DataSet_Vector_XYZ::WriteBuffer +void DataSet_Vector_XYZ::WriteBuffer(CpptrajFile& cbuffer, SizeArray const& pIn) const { + if (pIn[0] >= Size()) { + cbuffer.Printf(format_.fmt(), 0.0, 0.0, 0.0); // VXYZ + } else { + Vec3 const& Vxyz = vectors()[pIn[0]]; + cbuffer.Printf(format_.fmt(), Vxyz[0], Vxyz[1], Vxyz[2]); + } +} + +// DataSet_Vector_XYZ::Append() +int DataSet_Vector_XYZ::Append(DataSet* dsIn) { + if (dsIn->Empty()) return 0; + if (dsIn->Group() != VECTOR_1D) return 1; + if (dsIn->Type() == VEC_OXYZ) + mprintf("Warning: Appending vector set with origins to set without origins; will lose origin info.\n"); + internalAppend( (DataSet_Vector*)dsIn ); + + return 0; +} + +// ----------------------------------------------------------------------------- +void DataSet_Vector_XYZ::reset() { + internalReset(); +} diff --git a/src/DataSet_Vector_XYZ.h b/src/DataSet_Vector_XYZ.h new file mode 100644 index 0000000000..6301ed4b16 --- /dev/null +++ b/src/DataSet_Vector_XYZ.h @@ -0,0 +1,27 @@ +#ifndef INC_DATASET_VECTOR_XYZ_H +#define INC_DATASET_VECTOR_XYZ_H +#include "DataSet_Vector.h" +/// Vector data set, no origins +class DataSet_Vector_XYZ : public DataSet_Vector { + public: + DataSet_Vector_XYZ(); + static DataSet* Alloc() { return (DataSet*)new DataSet_Vector_XYZ();} + // ----- DataSet functions ------------------- + size_t MemUsageInBytes() const; + int Allocate(SizeArray const&); + void WriteBuffer(CpptrajFile&,SizeArray const&) const; + int Append(DataSet*); + inline void Add(size_t, const void*); + // ----- DataSet_Vector functions ------------ + void reset(); + void Resize(size_t s) { internalResize(s, Vec3(0.0)); } + void Resize(size_t s, Vec3 const& v) { internalResize(s, v); } +}; + +// ---------- INLINE FUNCTIONS ------------------------------------------------- +void DataSet_Vector_XYZ::Add(size_t frame, const void* vIn) { + if (frame > Size()) + internalResize(frame, Vec3(0.0)); + internalAdd(vIn); +} +#endif From 925d85f53cec8771387bf06511d78d9309c4c6af Mon Sep 17 00:00:00 2001 From: "Daniel R. Roe" Date: Fri, 3 Jan 2020 11:52:00 -0500 Subject: [PATCH 070/162] DRR - Fix up Sync routines, update dependencies --- src/DataSet_Vector.cpp | 98 ++++++------------------------------- src/DataSet_Vector.h | 59 +++++++++------------- src/DataSet_Vector_OXYZ.cpp | 42 ++++++---------- src/DataSet_Vector_XYZ.cpp | 22 +++++++++ src/DataSet_Vector_XYZ.h | 3 ++ src/cpptrajdepend | 4 +- src/cpptrajfiles | 2 + 7 files changed, 82 insertions(+), 148 deletions(-) diff --git a/src/DataSet_Vector.cpp b/src/DataSet_Vector.cpp index 152c9abd00..a98abfcc9a 100644 --- a/src/DataSet_Vector.cpp +++ b/src/DataSet_Vector.cpp @@ -4,17 +4,19 @@ #include "Constants.h" // For spherical harmonics norm. #include "Corr.h" -const Vec3 DataSet_Vector::ZERO = Vec3(0,0,0); const ComplexArray DataSet_Vector::COMPLEXBLANK = ComplexArray(0); +/// CONSTRUCTOR +DataSet_Vector::DataSet_Vector() : order_(0) {} + // CONSTRUCTOR -DataSet_Vector::DataSet_Vector() : - DataSet(VECTOR, GENERIC, TextFormat(TextFormat::DOUBLE, 8, 4, 6), 1), +DataSet_Vector::DataSet_Vector(DataType tIn, TextFormat const& fIn) : + DataSet(tIn, VECTOR_1D, fIn, 1), order_(0) {} -size_t DataSet_Vector::MemUsageInBytes() const { +/** \return size of vectors plus spherical harmonics. */ +size_t DataSet_Vector::internalSize() const { size_t mySize = (vectors_.size() * Vec3::DataSize()) + - (origins_.size() * Vec3::DataSize()) + sizeof(int); for (std::vector::const_iterator SH = sphericalHarmonics_.begin(); SH != sphericalHarmonics_.end(); @@ -22,53 +24,23 @@ size_t DataSet_Vector::MemUsageInBytes() const { mySize += (SH->DataSize()); return mySize; } - -// DataSet_Vector::Allocate() -int DataSet_Vector::Allocate(SizeArray const& Nin) { - if (!Nin.empty()) { - vectors_.reserve( Nin[0] ); - origins_.reserve( Nin[0] ); // TODO: check if this needs allocation - } - return 0; +/** Allocate vector array. */ +void DataSet_Vector::internalAlloc(SizeArray const& Nin) { + vectors_.reserve( Nin[0] ); } -// DataSet_Vector::WriteBuffer() -void DataSet_Vector::WriteBuffer(CpptrajFile &cbuffer, SizeArray const& pIn) const { - if (pIn[0] >= vectors_.size()) { - cbuffer.Printf(format_.fmt(), 0.0, 0.0, 0.0, 0.0, 0.0, 0.0); // VXYZ OXYZ - } else { - Vec3 const& Vxyz = vectors_[pIn[0]]; - Vec3 const& Oxyz = OXYZ(pIn[0]); - cbuffer.Printf(format_.fmt(), Vxyz[0], Vxyz[1], Vxyz[2], - Oxyz[0], Oxyz[1], Oxyz[2]); - } -} - -int DataSet_Vector::Append(DataSet* dsIn) { - if (dsIn->Empty()) return 0; - if (dsIn->Type() != VECTOR) return 1; - Varray const& vIn = ((DataSet_Vector*)dsIn)->vectors_; - Varray const& oIn = ((DataSet_Vector*)dsIn)->origins_; +/** Append to vector array. */ +void DataSet_Vector::internalAppend(const DataSet_Vector* dsIn) { + Varray const& vIn = dsIn->vectors(); size_t oldsize = vectors_.size(); vectors_.resize( oldsize + vIn.size() ); std::copy( vIn.begin(), vIn.end(), vectors_.begin() + oldsize ); - if (oIn.empty() && !origins_.empty()) // Need vIn.size empty origin vectors - origins_.resize( oldsize + vIn.size(), ZERO ); - else if (!oIn.empty() && origins_.empty()) // Need vectors_.size empty origin vecs - origins_.resize( vectors_.size(), ZERO ); - if (!oIn.empty()) { - oldsize = origins_.size(); - origins_.resize( oldsize + oIn.size() ); - std::copy( oIn.begin(), oIn.end(), origins_.begin() + oldsize ); - } - return 0; } -// DataSet_Vector::reset() +/** Reset the vector array */ void DataSet_Vector::reset() { vectors_.clear(); - origins_.clear(); sphericalHarmonics_.clear(); order_ = 0; } @@ -201,45 +173,3 @@ double DataSet_Vector::SphericalHarmonicsNorm(int order) { else if (order == 0) return Constants::FOURPI; else return 1.0; } - -#ifdef MPI -int DataSet_Vector::Sync(size_t total, std::vector const& rank_frames, - Parallel::Comm const& commIn) -{ - if (commIn.Size()==1) return 0; - double buf[6]; - // TODO: Consolidate to 1 send/recv via arrays? - if (commIn.Master()) { - // Resize to accept data from other ranks. - vectors_.resize( total ); - if (!origins_.empty()) { - origins_.resize( total ); - int vidx = rank_frames[0]; // Index on master - for (int rank = 1; rank < commIn.Size(); rank++) { - for (int ridx = 0; ridx != rank_frames[rank]; ridx++, vidx++) { - commIn.SendMaster( buf, 6, rank, MPI_DOUBLE ); - std::copy( buf, buf+3, vectors_[vidx].Dptr() ); - std::copy( buf+3, buf+6, origins_[vidx].Dptr() ); - } - } - } else { - int vidx = rank_frames[0]; // Index on master - for (int rank = 1; rank < commIn.Size(); rank++) { - for (int ridx = 0; ridx != rank_frames[rank]; ridx++, vidx++) - commIn.SendMaster( vectors_[vidx].Dptr(), 3, rank, MPI_DOUBLE ); - } - } - } else { // Send data to master - if (!origins_.empty()) { - for (unsigned int ridx = 0; ridx != vectors_.size(); ++ridx) { - std::copy( vectors_[ridx].Dptr(), vectors_[ridx].Dptr()+3, buf ); - std::copy( origins_[ridx].Dptr(), origins_[ridx].Dptr()+3, buf+3 ); - commIn.SendMaster( buf, 6, commIn.Rank(), MPI_DOUBLE ); - } - } else - for (unsigned int ridx = 0; ridx != vectors_.size(); ++ridx) - commIn.SendMaster( vectors_[ridx].Dptr(), 3, commIn.Rank(), MPI_DOUBLE ); - } - return 0; -} -#endif diff --git a/src/DataSet_Vector.h b/src/DataSet_Vector.h index ae05b7ba15..d1aefe849b 100644 --- a/src/DataSet_Vector.h +++ b/src/DataSet_Vector.h @@ -4,51 +4,29 @@ #include "DataSet_1D.h" // FIXME remove after Correlation gone #include "Vec3.h" #include "ComplexArray.h" -#include "SymbolExporting.h" class DataSet_Vector : public DataSet { static const ComplexArray COMPLEXBLANK; public: - static CPPTRAJ_EXPORT const Vec3 ZERO; ///< Vector of {0,0,0} typedef std::vector Varray; DataSet_Vector(); - static DataSet* Alloc() { return (DataSet*)new DataSet_Vector();} + DataSet_Vector(DataType, TextFormat const&); // ----- DataSet functions ------------------- size_t Size() const { return vectors_.size(); } -# ifdef MPI - int Sync(size_t, std::vector const&, Parallel::Comm const&); -# endif void Info() const { return; } - int Allocate(SizeArray const&); - inline void Add(size_t, const void*); - void WriteBuffer(CpptrajFile&,SizeArray const&) const; - int Append( DataSet* ); - size_t MemUsageInBytes() const; // ------------------------------------------- - void reset(); - void Resize(size_t s) { vectors_.resize( s ); } - void Resize(size_t s, Vec3 const& v){ vectors_.resize(s, v); } - //typedef Varray::iterator iterator; - //iterator begin() { return vectors_.begin(); } - //iterator end() { return vectors_.end(); } + virtual void reset() = 0; + virtual void Resize(size_t) = 0; + virtual void Resize(size_t, Vec3 const&) = 0; + const Vec3& operator[](int i) const { return vectors_[i]; } Vec3& operator[](int i) { return vectors_[i]; } const Vec3& VXYZ(int i) const { return vectors_[i]; } - const Vec3& OXYZ(int i) const { - if (origins_.empty()) - return ZERO; - return origins_[i]; - } - bool HasOrigins() const { return !origins_.empty(); } - void ReserveVecs(size_t n) { vectors_.reserve( n ); } void AddVxyz(Vec3 const& v) { vectors_.push_back( v ); } - void AddVxyz(Vec3 const& v, Vec3 const& c) { - vectors_.push_back( v ); - origins_.push_back( c ); - } typedef Varray::const_iterator const_iterator; const_iterator begin() const { return vectors_.begin(); } const_iterator end() const { return vectors_.end(); } const Vec3& Back() const { return vectors_.back(); } + /// Calculate auto/cross-correlation //TODO Move to Corr.cpp int CalcVectorCorr(DataSet_Vector const&, DataSet_1D&, int) const; /// Calculate spherical harmonics arrays for given Legendre order @@ -56,21 +34,30 @@ class DataSet_Vector : public DataSet { /// \return Spherical harmonics array for given m (-order_ <= m <= order_) ComplexArray const& SphericalHarmonics(int) const; /// \return Constant for normalization via spherical harmonics addition theorem. - static double SphericalHarmonicsNorm(int); + static double SphericalHarmonicsNorm(int); + protected: + size_t internalSize() const; + void internalAlloc(SizeArray const&); + void internalAppend(DataSet_Vector const*); + void internalReset(); + inline void internalResize(size_t, Vec3 const&); + inline void internalAdd(const void*); + Varray const& vectors() const { return vectors_; } +# ifdef MPI + Varray& internalVecArray() { return vectors_; } +# endif private: int order_; ///< Order for spherical harmonics calculations Varray vectors_; - Varray origins_; /// Hold spherical harmonic values for m=-order to order std::vector sphericalHarmonics_; // TODO Make AdditionalData }; // ---------- INLINE FUNCTIONS ------------------------------------------------- -void DataSet_Vector::Add(size_t frame, const void* vIn) { - if (frame > vectors_.size()) { - vectors_.resize(frame, ZERO); - origins_.resize(frame, ZERO); - } +void DataSet_Vector::internalResize(size_t frame, Vec3 const& vIn) { + vectors_.resize(frame, vIn); +} + +void DataSet_Vector::internalAdd(const void* vIn) { vectors_.push_back( Vec3( (const double*)vIn ) ); - origins_.push_back( Vec3( (const double*)vIn+3 ) ); } #endif diff --git a/src/DataSet_Vector_OXYZ.cpp b/src/DataSet_Vector_OXYZ.cpp index 1fda002740..c68f484f66 100644 --- a/src/DataSet_Vector_OXYZ.cpp +++ b/src/DataSet_Vector_OXYZ.cpp @@ -58,42 +58,30 @@ void DataSet_Vector_OXYZ::reset() { } #ifdef MPI -int DataSet_Vector::Sync(size_t total, std::vector const& rank_frames, - Parallel::Comm const& commIn) +int DataSet_Vector_OXYZ::Sync(size_t total, std::vector const& rank_frames, + Parallel::Comm const& commIn) { if (commIn.Size()==1) return 0; double buf[6]; // TODO: Consolidate to 1 send/recv via arrays? if (commIn.Master()) { // Resize to accept data from other ranks. - vectors_.resize( total ); - if (!origins_.empty()) { - origins_.resize( total ); - int vidx = rank_frames[0]; // Index on master - for (int rank = 1; rank < commIn.Size(); rank++) { - for (int ridx = 0; ridx != rank_frames[rank]; ridx++, vidx++) { - commIn.SendMaster( buf, 6, rank, MPI_DOUBLE ); - std::copy( buf, buf+3, vectors_[vidx].Dptr() ); - std::copy( buf+3, buf+6, origins_[vidx].Dptr() ); - } + internalVecArray().resize( total ); + origins_.resize( total ); + int vidx = rank_frames[0]; // Index on master + for (int rank = 1; rank < commIn.Size(); rank++) { + for (int ridx = 0; ridx != rank_frames[rank]; ridx++, vidx++) { + commIn.SendMaster( buf, 6, rank, MPI_DOUBLE ); + std::copy( buf, buf+3, internalVecArray()[vidx].Dptr() ); + std::copy( buf+3, buf+6, origins_[vidx].Dptr() ); } - } else { - int vidx = rank_frames[0]; // Index on master - for (int rank = 1; rank < commIn.Size(); rank++) { - for (int ridx = 0; ridx != rank_frames[rank]; ridx++, vidx++) - commIn.SendMaster( vectors_[vidx].Dptr(), 3, rank, MPI_DOUBLE ); - } } } else { // Send data to master - if (!origins_.empty()) { - for (unsigned int ridx = 0; ridx != vectors_.size(); ++ridx) { - std::copy( vectors_[ridx].Dptr(), vectors_[ridx].Dptr()+3, buf ); - std::copy( origins_[ridx].Dptr(), origins_[ridx].Dptr()+3, buf+3 ); - commIn.SendMaster( buf, 6, commIn.Rank(), MPI_DOUBLE ); - } - } else - for (unsigned int ridx = 0; ridx != vectors_.size(); ++ridx) - commIn.SendMaster( vectors_[ridx].Dptr(), 3, commIn.Rank(), MPI_DOUBLE ); + for (unsigned int ridx = 0; ridx != internalVecArray().size(); ++ridx) { + std::copy( internalVecArray()[ridx].Dptr(), internalVecArray()[ridx].Dptr()+3, buf ); + std::copy( origins_[ridx].Dptr(), origins_[ridx].Dptr()+3, buf+3 ); + commIn.SendMaster( buf, 6, commIn.Rank(), MPI_DOUBLE ); + } } return 0; } diff --git a/src/DataSet_Vector_XYZ.cpp b/src/DataSet_Vector_XYZ.cpp index eaeb925fd3..06f354d9c2 100644 --- a/src/DataSet_Vector_XYZ.cpp +++ b/src/DataSet_Vector_XYZ.cpp @@ -38,6 +38,28 @@ int DataSet_Vector_XYZ::Append(DataSet* dsIn) { return 0; } +#ifdef MPI +int DataSet_Vector_XYZ::Sync(size_t total, std::vector const& rank_frames, + Parallel::Comm const& commIn) +{ + if (commIn.Size()==1) return 0; + // TODO: Consolidate to 1 send/recv via arrays? + if (commIn.Master()) { + // Resize to accept data from other ranks. + internalVecArray().resize( total ); + int vidx = rank_frames[0]; // Index on master + for (int rank = 1; rank < commIn.Size(); rank++) { + for (int ridx = 0; ridx != rank_frames[rank]; ridx++, vidx++) + commIn.SendMaster( internalVecArray()[vidx].Dptr(), 3, rank, MPI_DOUBLE ); + } + } else { // Send data to master + for (unsigned int ridx = 0; ridx != internalVecArray().size(); ++ridx) + commIn.SendMaster( internalVecArray()[ridx].Dptr(), 3, commIn.Rank(), MPI_DOUBLE ); + } + return 0; +} +#endif + // ----------------------------------------------------------------------------- void DataSet_Vector_XYZ::reset() { internalReset(); diff --git a/src/DataSet_Vector_XYZ.h b/src/DataSet_Vector_XYZ.h index 6301ed4b16..48e8287ef9 100644 --- a/src/DataSet_Vector_XYZ.h +++ b/src/DataSet_Vector_XYZ.h @@ -12,6 +12,9 @@ class DataSet_Vector_XYZ : public DataSet_Vector { void WriteBuffer(CpptrajFile&,SizeArray const&) const; int Append(DataSet*); inline void Add(size_t, const void*); +# ifdef MPI + int Sync(size_t, std::vector const&, Parallel::Comm const&); +# endif // ----- DataSet_Vector functions ------------ void reset(); void Resize(size_t s) { internalResize(s, Vec3(0.0)); } diff --git a/src/cpptrajdepend b/src/cpptrajdepend index 2a8a2d092c..8e9b7b7edb 100644 --- a/src/cpptrajdepend +++ b/src/cpptrajdepend @@ -216,7 +216,9 @@ DataSet_RemLog.o : DataSet_RemLog.cpp ArgList.h AssociatedData.h CpptrajFile.h C DataSet_StringVar.o : DataSet_StringVar.cpp ArgList.h AssociatedData.h CpptrajFile.h CpptrajStdio.h DataSet.h DataSet_StringVar.h Dimension.h FileIO.h FileName.h MetaData.h Parallel.h Range.h TextFormat.h DataSet_Tensor.o : DataSet_Tensor.cpp ArgList.h AssociatedData.h CpptrajFile.h DataSet.h DataSet_Tensor.h Dimension.h FileIO.h FileName.h MetaData.h Parallel.h Range.h SymmetricTensor.h TextFormat.h DataSet_Topology.o : DataSet_Topology.cpp ArgList.h AssociatedData.h Atom.h AtomExtra.h AtomMask.h AtomType.h BaseIOtype.h BondSearch.h Box.h Constants.h CoordinateInfo.h CpptrajFile.h CpptrajStdio.h DataSet.h DataSet_Topology.h Dimension.h FileIO.h FileName.h FileTypes.h Frame.h MaskToken.h Matrix_3x3.h MetaData.h Molecule.h NameType.h Parallel.h ParameterHolders.h ParameterSet.h ParameterTypes.h ParmFile.h ParmIO.h Range.h ReplicaDimArray.h Residue.h SymbolExporting.h TextFormat.h Topology.h TypeNameHolder.h Vec3.h -DataSet_Vector.o : DataSet_Vector.cpp ArgList.h ArrayIterator.h AssociatedData.h ComplexArray.h Constants.h Corr.h CpptrajFile.h DataSet.h DataSet_1D.h DataSet_Vector.h Dimension.h FileIO.h FileName.h MetaData.h Parallel.h PubFFT.h Range.h SymbolExporting.h TextFormat.h Vec3.h +DataSet_Vector.o : DataSet_Vector.cpp ArgList.h ArrayIterator.h AssociatedData.h ComplexArray.h Constants.h Corr.h CpptrajFile.h DataSet.h DataSet_1D.h DataSet_Vector.h Dimension.h FileIO.h FileName.h MetaData.h Parallel.h PubFFT.h Range.h TextFormat.h Vec3.h +DataSet_Vector_OXYZ.o : DataSet_Vector_OXYZ.cpp ArgList.h ArrayIterator.h AssociatedData.h ComplexArray.h CpptrajFile.h DataSet.h DataSet_1D.h DataSet_Vector.h DataSet_Vector_OXYZ.h Dimension.h FileIO.h FileName.h MetaData.h Parallel.h Range.h TextFormat.h Vec3.h +DataSet_Vector_XYZ.o : DataSet_Vector_XYZ.cpp ArgList.h ArrayIterator.h AssociatedData.h ComplexArray.h CpptrajFile.h CpptrajStdio.h DataSet.h DataSet_1D.h DataSet_Vector.h DataSet_Vector_XYZ.h Dimension.h FileIO.h FileName.h MetaData.h Parallel.h Range.h TextFormat.h Vec3.h DataSet_double.o : DataSet_double.cpp ArgList.h AssociatedData.h CpptrajFile.h DataSet.h DataSet_1D.h DataSet_double.h Dimension.h FileIO.h FileName.h MetaData.h Parallel.h Range.h TextFormat.h DataSet_float.o : DataSet_float.cpp ArgList.h AssociatedData.h CpptrajFile.h DataSet.h DataSet_1D.h DataSet_float.h Dimension.h FileIO.h FileName.h MetaData.h Parallel.h Range.h TextFormat.h DataSet_integer_disk.o : DataSet_integer_disk.cpp ArgList.h AssociatedData.h CpptrajFile.h CpptrajStdio.h DataSet.h DataSet_1D.h DataSet_integer.h DataSet_integer_disk.h Dimension.h FileIO.h FileName.h File_TempName.h MetaData.h NC_Routines.h Parallel.h Range.h TextFormat.h diff --git a/src/cpptrajfiles b/src/cpptrajfiles index be4d5f768a..d6ee2bfcc7 100644 --- a/src/cpptrajfiles +++ b/src/cpptrajfiles @@ -217,6 +217,8 @@ COMMON_SOURCES= \ DataSet_RemLog.cpp \ DataSet_Topology.cpp \ DataSet_Vector.cpp \ + DataSet_Vector_OXYZ.cpp \ + DataSet_Vector_XYZ.cpp \ DataSet_double.cpp \ DataSet_float.cpp \ DataSet_integer_disk.cpp \ From 5f4c8ef2117a0593a126ab9996bb452562bb803a Mon Sep 17 00:00:00 2001 From: "Daniel R. Roe" Date: Fri, 3 Jan 2020 11:55:46 -0500 Subject: [PATCH 071/162] DRR - Fix shadowed variables --- src/DataSet_Vector.h | 5 +++++ src/DataSet_Vector_OXYZ.h | 17 +++-------------- src/DataSet_Vector_XYZ.h | 1 + 3 files changed, 9 insertions(+), 14 deletions(-) diff --git a/src/DataSet_Vector.h b/src/DataSet_Vector.h index d1aefe849b..cf326f1ef2 100644 --- a/src/DataSet_Vector.h +++ b/src/DataSet_Vector.h @@ -42,6 +42,7 @@ class DataSet_Vector : public DataSet { void internalReset(); inline void internalResize(size_t, Vec3 const&); inline void internalAdd(const void*); + inline void internalAdd(Vec3 const&); Varray const& vectors() const { return vectors_; } # ifdef MPI Varray& internalVecArray() { return vectors_; } @@ -60,4 +61,8 @@ void DataSet_Vector::internalResize(size_t frame, Vec3 const& vIn) { void DataSet_Vector::internalAdd(const void* vIn) { vectors_.push_back( Vec3( (const double*)vIn ) ); } + +void DataSet_Vector::internalAdd(Vec3 const& vIn) { + vectors_.push_back( vIn ); +} #endif diff --git a/src/DataSet_Vector_OXYZ.h b/src/DataSet_Vector_OXYZ.h index bcd7f7ec59..adea36b856 100644 --- a/src/DataSet_Vector_OXYZ.h +++ b/src/DataSet_Vector_OXYZ.h @@ -1,6 +1,7 @@ #ifndef INC_DATASET_VECTOR_OXYZ_H #define INC_DATASET_VECTOR_OXYZ_H #include "DataSet_Vector.h" +/// Vector data set with origins class DataSet_Vector_OXYZ : public DataSet_Vector { public: DataSet_Vector_OXYZ(); @@ -25,28 +26,16 @@ class DataSet_Vector_OXYZ : public DataSet_Vector { origins_.resize( s, Vec3(0.0) ); } // ------------------------------------------- + /// \return vector origin at specified position const Vec3& OXYZ(int i) const { return origins_[i]; } /// Add vector and origin void AddVxyzo(Vec3 const& v, Vec3 const& c) { - vectors_.push_back( v ); + internalAdd( v ); origins_.push_back( c ); } - - /// Calculate auto/cross-correlation //TODO Move to Corr.cpp - int CalcVectorCorr(DataSet_Vector const&, DataSet_1D&, int) const; - /// Calculate spherical harmonics arrays for given Legendre order - int CalcSphericalHarmonics(int); - /// \return Spherical harmonics array for given m (-order_ <= m <= order_) - ComplexArray const& SphericalHarmonics(int) const; - /// \return Constant for normalization via spherical harmonics addition theorem. - static double SphericalHarmonicsNorm(int); private: - int order_; ///< Order for spherical harmonics calculations - Varray vectors_; Varray origins_; - /// Hold spherical harmonic values for m=-order to order - std::vector sphericalHarmonics_; // TODO Make AdditionalData }; // ---------- INLINE FUNCTIONS ------------------------------------------------- void DataSet_Vector_OXYZ::Add(size_t frame, const void* vIn) { diff --git a/src/DataSet_Vector_XYZ.h b/src/DataSet_Vector_XYZ.h index 48e8287ef9..6796ac34ba 100644 --- a/src/DataSet_Vector_XYZ.h +++ b/src/DataSet_Vector_XYZ.h @@ -19,6 +19,7 @@ class DataSet_Vector_XYZ : public DataSet_Vector { void reset(); void Resize(size_t s) { internalResize(s, Vec3(0.0)); } void Resize(size_t s, Vec3 const& v) { internalResize(s, v); } + // ------------------------------------------- }; // ---------- INLINE FUNCTIONS ------------------------------------------------- From f2a7047614e082d7b57780be2e1b9ca71460aa61 Mon Sep 17 00:00:00 2001 From: "Daniel R. Roe" Date: Fri, 3 Jan 2020 11:56:48 -0500 Subject: [PATCH 072/162] DRR - Accidentally duplicated a function --- src/DataSet_Vector.h | 5 ----- src/DataSet_Vector_OXYZ.h | 2 +- 2 files changed, 1 insertion(+), 6 deletions(-) diff --git a/src/DataSet_Vector.h b/src/DataSet_Vector.h index cf326f1ef2..d1aefe849b 100644 --- a/src/DataSet_Vector.h +++ b/src/DataSet_Vector.h @@ -42,7 +42,6 @@ class DataSet_Vector : public DataSet { void internalReset(); inline void internalResize(size_t, Vec3 const&); inline void internalAdd(const void*); - inline void internalAdd(Vec3 const&); Varray const& vectors() const { return vectors_; } # ifdef MPI Varray& internalVecArray() { return vectors_; } @@ -61,8 +60,4 @@ void DataSet_Vector::internalResize(size_t frame, Vec3 const& vIn) { void DataSet_Vector::internalAdd(const void* vIn) { vectors_.push_back( Vec3( (const double*)vIn ) ); } - -void DataSet_Vector::internalAdd(Vec3 const& vIn) { - vectors_.push_back( vIn ); -} #endif diff --git a/src/DataSet_Vector_OXYZ.h b/src/DataSet_Vector_OXYZ.h index adea36b856..137145c657 100644 --- a/src/DataSet_Vector_OXYZ.h +++ b/src/DataSet_Vector_OXYZ.h @@ -31,7 +31,7 @@ class DataSet_Vector_OXYZ : public DataSet_Vector { const Vec3& OXYZ(int i) const { return origins_[i]; } /// Add vector and origin void AddVxyzo(Vec3 const& v, Vec3 const& c) { - internalAdd( v ); + AddVxyz( v ); origins_.push_back( c ); } private: From 3ff9d858a0636d3b14f33867744887c6ef1b0685 Mon Sep 17 00:00:00 2001 From: "Daniel R. Roe" Date: Fri, 3 Jan 2020 11:57:23 -0500 Subject: [PATCH 073/162] DRR - Add new vector types and group --- src/DataSet.cpp | 3 ++- src/DataSet.h | 4 ++-- 2 files changed, 4 insertions(+), 3 deletions(-) diff --git a/src/DataSet.cpp b/src/DataSet.cpp index c462a52007..6e4a024a13 100644 --- a/src/DataSet.cpp +++ b/src/DataSet.cpp @@ -12,7 +12,8 @@ const char* DataSet::Descriptions_[] = { "double matrix", // MATRIX_DBL "float matrix", // MATRIX_FLT "coordinates", // COORDS - "vector", // VECTOR + "vector", // VEC_XYZ + "vector (origins)", /// VEC_OXYZ "eigenmodes", // MODES "float grid", // GRID_FLT "double grid", // GRID_DBL diff --git a/src/DataSet.h b/src/DataSet.h index 2836ab90e5..7e9bf0866c 100644 --- a/src/DataSet.h +++ b/src/DataSet.h @@ -26,13 +26,13 @@ class DataSet { /** When adding new entries make sure that Descriptions_ is updated. */ enum DataType { UNKNOWN_DATA=0, DOUBLE, FLOAT, INTEGER, STRING, MATRIX_DBL, MATRIX_FLT, - COORDS, VECTOR, MODES, GRID_FLT, GRID_DBL, REMLOG, XYMESH, TRAJ, REF_FRAME, + COORDS, VEC_XYZ, VEC_OXYZ, MODES, GRID_FLT, GRID_DBL, REMLOG, XYMESH, TRAJ, REF_FRAME, MAT3X3, TOPOLOGY, CMATRIX, CMATRIX_NOMEM, CMATRIX_DISK, PH, PH_EXPL, PH_IMPL, PARAMETERS, TENSOR, STRINGVAR }; /// Group DataSet belongs to. enum DataGroup { - GENERIC=0, SCALAR_1D, MATRIX_2D, GRID_3D, COORDINATES, CLUSTERMATRIX, PHREMD + GENERIC=0, SCALAR_1D, MATRIX_2D, GRID_3D, COORDINATES, CLUSTERMATRIX, PHREMD, VECTOR_1D }; DataSet(); From 963de3f0654a0b1d9b9b96f7ab12f900fe592720 Mon Sep 17 00:00:00 2001 From: "Daniel R. Roe" Date: Fri, 3 Jan 2020 11:58:21 -0500 Subject: [PATCH 074/162] DRR - Enable new types in the DataSetList --- src/DataSetList.cpp | 6 ++++-- src/cpptrajdepend | 2 +- 2 files changed, 5 insertions(+), 3 deletions(-) diff --git a/src/DataSetList.cpp b/src/DataSetList.cpp index 4d4dbee994..f9c857d99b 100644 --- a/src/DataSetList.cpp +++ b/src/DataSetList.cpp @@ -13,7 +13,8 @@ #include "DataSet_MatrixDbl.h" #include "DataSet_MatrixFlt.h" #include "DataSet_Coords_CRD.h" -#include "DataSet_Vector.h" +#include "DataSet_Vector_XYZ.h" +#include "DataSet_Vector_OXYZ.h" #include "DataSet_Modes.h" #include "DataSet_GridFlt.h" #include "DataSet_RemLog.h" @@ -61,7 +62,8 @@ DataSet* DataSetList::NewSet(DataSet::DataType typeIn) { case DataSet::MATRIX_DBL : ds = DataSet_MatrixDbl::Alloc(); break; case DataSet::MATRIX_FLT : ds = DataSet_MatrixFlt::Alloc(); break; case DataSet::COORDS : ds = DataSet_Coords_CRD::Alloc(); break; - case DataSet::VECTOR : ds = DataSet_Vector::Alloc() ; break; + case DataSet::VEC_XYZ : ds = DataSet_Vector_XYZ::Alloc() ; break; + case DataSet::VEC_OXYZ : ds = DataSet_Vector_OXYZ::Alloc() ; break; case DataSet::MODES : ds = DataSet_Modes::Alloc(); break; case DataSet::GRID_FLT : ds = DataSet_GridFlt::Alloc(); break; case DataSet::GRID_DBL : ds = DataSet_GridDbl::Alloc(); break; diff --git a/src/cpptrajdepend b/src/cpptrajdepend index 8e9b7b7edb..82b60e80c3 100644 --- a/src/cpptrajdepend +++ b/src/cpptrajdepend @@ -191,7 +191,7 @@ DataIO_VecTraj.o : DataIO_VecTraj.cpp ActionFrameCounter.h ArgList.h ArrayIterat DataIO_XVG.o : DataIO_XVG.cpp ArgList.h AssociatedData.h Atom.h AtomExtra.h AtomMask.h AtomType.h BaseIOtype.h Box.h BufferedLine.h Constants.h CoordinateInfo.h CpptrajFile.h CpptrajStdio.h DataIO.h DataIO_XVG.h DataSet.h DataSetList.h DataSet_1D.h DataSet_Coords.h DataSet_Coords_REF.h DataSet_double.h Dimension.h FileIO.h FileName.h Frame.h MaskToken.h Matrix_3x3.h MetaData.h Molecule.h NameType.h Parallel.h ParameterHolders.h ParameterSet.h ParameterTypes.h Range.h ReferenceFrame.h ReplicaDimArray.h Residue.h SymbolExporting.h TextFormat.h Timer.h Topology.h TypeNameHolder.h Vec3.h DataIO_Xplor.o : DataIO_Xplor.cpp ArgList.h ArrayIterator.h AssociatedData.h Atom.h AtomExtra.h AtomMask.h AtomType.h BaseIOtype.h Box.h BufferedLine.h Constants.h CoordinateInfo.h CpptrajFile.h CpptrajStdio.h DataIO.h DataIO_Xplor.h DataSet.h DataSetList.h DataSet_3D.h DataSet_Coords.h DataSet_Coords_REF.h DataSet_GridFlt.h Dimension.h FileIO.h FileName.h Frame.h Grid.h GridBin.h MaskToken.h Matrix_3x3.h MetaData.h Molecule.h NameType.h Parallel.h ParameterHolders.h ParameterSet.h ParameterTypes.h ProgressBar.h Range.h ReferenceFrame.h ReplicaDimArray.h Residue.h SymbolExporting.h TextFormat.h Timer.h Topology.h TypeNameHolder.h Vec3.h DataSet.o : DataSet.cpp ArgList.h AssociatedData.h CpptrajFile.h CpptrajStdio.h DataSet.h Dimension.h FileIO.h FileName.h MetaData.h Parallel.h Range.h TextFormat.h -DataSetList.o : DataSetList.cpp ArgList.h ArrayIterator.h AssociatedData.h Atom.h AtomExtra.h AtomMap.h AtomMask.h AtomType.h Box.h ClusterDist.h ClusterSieve.h ComplexArray.h Constants.h CoordinateInfo.h Cph.h CpptrajFile.h CpptrajStdio.h DataSet.h DataSetList.h DataSet_1D.h DataSet_2D.h DataSet_3D.h DataSet_Cmatrix.h DataSet_Cmatrix_DISK.h DataSet_Cmatrix_MEM.h DataSet_Cmatrix_NOMEM.h DataSet_Coords.h DataSet_Coords_CRD.h DataSet_Coords_REF.h DataSet_Coords_TRJ.h DataSet_GridDbl.h DataSet_GridFlt.h DataSet_Mat3x3.h DataSet_MatrixDbl.h DataSet_MatrixFlt.h DataSet_Mesh.h DataSet_Modes.h DataSet_PHREMD.h DataSet_PHREMD_Explicit.h DataSet_PHREMD_Implicit.h DataSet_Parameters.h DataSet_RemLog.h DataSet_StringVar.h DataSet_Tensor.h DataSet_Topology.h DataSet_Vector.h DataSet_double.h DataSet_float.h DataSet_integer.h DataSet_integer_disk.h DataSet_integer_mem.h DataSet_pH.h DataSet_string.h Dimension.h FileIO.h FileName.h Frame.h Grid.h GridBin.h Hungarian.h InputTrajCommon.h MapAtom.h MaskToken.h Matrix.h Matrix_3x3.h MetaData.h Molecule.h NC_Cmatrix.h NameType.h Parallel.h ParameterHolders.h ParameterSet.h ParameterTypes.h Range.h ReferenceFrame.h ReplicaDimArray.h Residue.h Spline.h StringRoutines.h SymbolExporting.h SymmetricRmsdCalc.h SymmetricTensor.h TextFormat.h Timer.h Topology.h TrajFrameCounter.h TrajFrameIndex.h Trajin.h TypeNameHolder.h Vec3.h +DataSetList.o : DataSetList.cpp ArgList.h ArrayIterator.h AssociatedData.h Atom.h AtomExtra.h AtomMap.h AtomMask.h AtomType.h Box.h ClusterDist.h ClusterSieve.h ComplexArray.h Constants.h CoordinateInfo.h Cph.h CpptrajFile.h CpptrajStdio.h DataSet.h DataSetList.h DataSet_1D.h DataSet_2D.h DataSet_3D.h DataSet_Cmatrix.h DataSet_Cmatrix_DISK.h DataSet_Cmatrix_MEM.h DataSet_Cmatrix_NOMEM.h DataSet_Coords.h DataSet_Coords_CRD.h DataSet_Coords_REF.h DataSet_Coords_TRJ.h DataSet_GridDbl.h DataSet_GridFlt.h DataSet_Mat3x3.h DataSet_MatrixDbl.h DataSet_MatrixFlt.h DataSet_Mesh.h DataSet_Modes.h DataSet_PHREMD.h DataSet_PHREMD_Explicit.h DataSet_PHREMD_Implicit.h DataSet_Parameters.h DataSet_RemLog.h DataSet_StringVar.h DataSet_Tensor.h DataSet_Topology.h DataSet_Vector.h DataSet_Vector_OXYZ.h DataSet_Vector_XYZ.h DataSet_double.h DataSet_float.h DataSet_integer.h DataSet_integer_disk.h DataSet_integer_mem.h DataSet_pH.h DataSet_string.h Dimension.h FileIO.h FileName.h Frame.h Grid.h GridBin.h Hungarian.h InputTrajCommon.h MapAtom.h MaskToken.h Matrix.h Matrix_3x3.h MetaData.h Molecule.h NC_Cmatrix.h NameType.h Parallel.h ParameterHolders.h ParameterSet.h ParameterTypes.h Range.h ReferenceFrame.h ReplicaDimArray.h Residue.h Spline.h StringRoutines.h SymbolExporting.h SymmetricRmsdCalc.h SymmetricTensor.h TextFormat.h Timer.h Topology.h TrajFrameCounter.h TrajFrameIndex.h Trajin.h TypeNameHolder.h Vec3.h DataSet_1D.o : DataSet_1D.cpp ArgList.h ArrayIterator.h AssociatedData.h ComplexArray.h Constants.h Corr.h CpptrajFile.h CpptrajStdio.h DataSet.h DataSet_1D.h Dimension.h FileIO.h FileName.h MetaData.h Parallel.h PubFFT.h Range.h TextFormat.h DataSet_3D.o : DataSet_3D.cpp ArgList.h AssociatedData.h Box.h CpptrajFile.h CpptrajStdio.h DataSet.h DataSet_3D.h Dimension.h FileIO.h FileName.h GridBin.h Matrix_3x3.h MetaData.h Parallel.h Range.h TextFormat.h Vec3.h DataSet_Cmatrix.o : DataSet_Cmatrix.cpp ArgList.h ArrayIterator.h AssociatedData.h Atom.h AtomExtra.h AtomMap.h AtomMask.h AtomType.h Box.h ClusterDist.h ClusterSieve.h Constants.h CoordinateInfo.h CpptrajFile.h CpptrajStdio.h DataSet.h DataSet_1D.h DataSet_Cmatrix.h DataSet_Coords.h Dimension.h FileIO.h FileName.h Frame.h Hungarian.h MapAtom.h MaskToken.h Matrix.h Matrix_3x3.h MetaData.h Molecule.h NameType.h Parallel.h ParameterHolders.h ParameterSet.h ParameterTypes.h Range.h ReplicaDimArray.h Residue.h SymbolExporting.h SymmetricRmsdCalc.h TextFormat.h Topology.h TypeNameHolder.h Vec3.h From c3cbfed764a79432040dace586320a14d3304298 Mon Sep 17 00:00:00 2001 From: "Daniel R. Roe" Date: Fri, 3 Jan 2020 11:59:35 -0500 Subject: [PATCH 075/162] DRR - Ensure MemAlloc routine is declared --- src/DataSet_double.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/DataSet_double.h b/src/DataSet_double.h index dc71fdd649..4232245fb5 100644 --- a/src/DataSet_double.h +++ b/src/DataSet_double.h @@ -27,11 +27,11 @@ class DataSet_double : public DataSet_1D { # endif void Info() const { return; } int Allocate(SizeArray const&); - int MemAlloc(SizeArray const&); void Add( size_t, const void* ); void WriteBuffer(CpptrajFile&, SizeArray const&) const; int Append(DataSet*); size_t MemUsageInBytes() const { return Data_.size() * sizeof(double); } + int MemAlloc(SizeArray const&); void CopyBlock(size_t, const DataSet*, size_t, size_t); // ----- DataSet_1D functions ---------------- double Dval(size_t idx) const { return Data_[idx]; } From 7f811482f664d73e238f2a4a69c1252a01806908 Mon Sep 17 00:00:00 2001 From: "Daniel R. Roe" Date: Fri, 3 Jan 2020 12:07:39 -0500 Subject: [PATCH 076/162] DRR - Start converting to use new types --- src/Action_InfraredSpectrum.cpp | 5 +++-- src/Action_InfraredSpectrum.h | 5 ++--- src/Action_Matrix.cpp | 2 +- src/Action_MultiVector.cpp | 9 +++++---- src/Action_MultiVector.h | 4 ++-- src/cpptrajdepend | 2 +- 6 files changed, 14 insertions(+), 13 deletions(-) diff --git a/src/Action_InfraredSpectrum.cpp b/src/Action_InfraredSpectrum.cpp index c62b114a45..2cd05ce966 100644 --- a/src/Action_InfraredSpectrum.cpp +++ b/src/Action_InfraredSpectrum.cpp @@ -3,6 +3,7 @@ #include "ProgressBar.h" #include "Constants.h" #include "DataSet_double.h" +#include "DataSet_Vector_XYZ.h" #include "Corr.h" #ifdef _OPENMP # include @@ -35,8 +36,8 @@ Action::RetType Action_InfraredSpectrum::Init(ArgList& actionArgs, ActionInit& i if (mask_.SetMaskString( actionArgs.GetMaskNext() )) return Action::ERR; previousNselected_ = -1; // DataSet - Vel_ = (DataSet_Vector*) - init.DSL().AddSet(DataSet::VECTOR, + Vel_ = (DataSet_Vector_XYZ*) + init.DSL().AddSet(DataSet::VEC_XYZ, MetaData(actionArgs.GetStringNext(), "raw"), "IR"); if (Vel_ == 0) return Action::ERR; Vel_->SetupFormat().SetFormatWidthPrecision(12, 4); diff --git a/src/Action_InfraredSpectrum.h b/src/Action_InfraredSpectrum.h index 218f1ac734..ddc9d6cb2c 100644 --- a/src/Action_InfraredSpectrum.h +++ b/src/Action_InfraredSpectrum.h @@ -1,7 +1,7 @@ #ifndef INC_ACTION_INFRAREDSPECTRUM_H #define INC_ACTION_INFRAREDSPECTRUM_H #include "Action.h" -#include "DataSet_Vector.h" +class DataSet_Vector_XYZ; /// class Action_InfraredSpectrum : public Action { public: @@ -14,8 +14,7 @@ class Action_InfraredSpectrum : public Action { Action::RetType DoAction(int, ActionFrame&); void Print(); - typedef DataSet_Vector VelArray; - VelArray* Vel_; ///< Hold velocity*charge for selected atoms at each frame. + DataSet_Vector_XYZ* Vel_; ///< Hold velocity*charge for selected atoms at each frame. DataSet* VAC_; AtomMask mask_; ///< Atoms to calculate VAC fn for. Topology* currentTop_; diff --git a/src/Action_Matrix.cpp b/src/Action_Matrix.cpp index 3ed531e5e7..99156812d8 100644 --- a/src/Action_Matrix.cpp +++ b/src/Action_Matrix.cpp @@ -95,7 +95,7 @@ Action::RetType Action_Matrix::Init(ArgList& actionArgs, ActionInit& init, int d return Action::ERR; } for ( DataSetList::const_iterator DS = init.DSL().begin(); DS != init.DSL().end(); ++DS) { - if ( (*DS)->Type() == DataSet::VECTOR && (*DS)->Meta().ScalarType() == MetaData::IREDVEC ) + if ( (*DS)->Group() == DataSet::VECTOR_1D && (*DS)->Meta().ScalarType() == MetaData::IREDVEC ) IredVectors_.push_back( (DataSet_Vector*)*DS ); } if (IredVectors_.empty()) { diff --git a/src/Action_MultiVector.cpp b/src/Action_MultiVector.cpp index c0db2a0186..a590c1bd98 100644 --- a/src/Action_MultiVector.cpp +++ b/src/Action_MultiVector.cpp @@ -1,5 +1,6 @@ #include "Action_MultiVector.h" #include "CpptrajStdio.h" +#include "DataSet_Vector_OXYZ.h" Action_MultiVector::Action_MultiVector() : debug_(0), @@ -85,10 +86,10 @@ Action::RetType Action_MultiVector::Setup(ActionSetup& setup) { MetaData md(dsetname_, atom1+1); md.SetScalarMode( MetaData::M_VECTOR ); if (ired_) md.SetScalarType( MetaData::IREDVEC ); - DataSet_Vector* ds = (DataSet_Vector*)masterDSL_->CheckForSet( md ); + DataSet_Vector_OXYZ* ds = (DataSet_Vector_OXYZ*)masterDSL_->CheckForSet( md ); if (ds == 0) { // Create DataSet - ds = (DataSet_Vector*)masterDSL_->AddSet( DataSet::VECTOR, md ); + ds = (DataSet_Vector_OXYZ*)masterDSL_->AddSet( DataSet::VEC_OXYZ, md ); if (ds == 0) return Action::ERR; ds->SetLegend( "v" + setup.Top().AtomMaskName(atom1) + "->" + setup.Top().AtomMaskName(atom2) ); @@ -107,7 +108,7 @@ Action::RetType Action_MultiVector::Setup(ActionSetup& setup) { } } mprintf("\tSelected %zu vectors.\n", CrdIdx1_.size()); - for (std::vector::const_iterator it = data_.begin(); + for (std::vector::const_iterator it = data_.begin(); it != data_.end(); ++it) mprintf("\t %s\n", (*it)->legend()); @@ -120,7 +121,7 @@ Action::RetType Action_MultiVector::DoAction(int frameNum, ActionFrame& frm) { Vec3 CXYZ( frm.Frm().CRD( CrdIdx1_[nv] ) ); Vec3 VXYZ( frm.Frm().CRD( CrdIdx2_[nv] ) ); VXYZ -= CXYZ; - data_[nv]->AddVxyz(VXYZ, CXYZ); + data_[nv]->AddVxyzo(VXYZ, CXYZ); } return Action::OK; diff --git a/src/Action_MultiVector.h b/src/Action_MultiVector.h index 4358c6bdad..d03cb65a36 100644 --- a/src/Action_MultiVector.h +++ b/src/Action_MultiVector.h @@ -1,8 +1,8 @@ #ifndef INC_MULTIVECTOR_H #define INC_MULTIVECTOR_H #include "Action.h" -#include "DataSet_Vector.h" #include "Range.h" +class DataSet_Vector_OXYZ; class Action_MultiVector : public Action { public: Action_MultiVector(); @@ -15,7 +15,7 @@ class Action_MultiVector : public Action { void Print() {} int debug_; - std::vector data_; ///< Output DataSets, 1 per vector. + std::vector data_; ///< Output DataSets, 1 per vector. Range resRange_; ///< Residues to search for vectors. std::string dsetname_; NameType name1_; diff --git a/src/cpptrajdepend b/src/cpptrajdepend index 82b60e80c3..346d652b07 100644 --- a/src/cpptrajdepend +++ b/src/cpptrajdepend @@ -39,7 +39,7 @@ Action_Grid.o : Action_Grid.cpp Action.h ActionState.h Action_Grid.h ArgList.h A Action_GridFreeEnergy.o : Action_GridFreeEnergy.cpp Action.h ActionState.h Action_GridFreeEnergy.h ArgList.h ArrayIterator.h AssociatedData.h Atom.h AtomExtra.h AtomMask.h AtomType.h BaseIOtype.h Box.h Constants.h CoordinateInfo.h CpptrajFile.h CpptrajStdio.h DataFile.h DataFileList.h DataIO.h DataSet.h DataSetList.h DataSet_3D.h DataSet_Coords.h DataSet_Coords_REF.h DataSet_GridFlt.h Dimension.h DispatchObject.h FileIO.h FileName.h FileTypes.h Frame.h Grid.h GridAction.h GridBin.h MaskToken.h Matrix_3x3.h MetaData.h Molecule.h NameType.h Parallel.h ParameterHolders.h ParameterSet.h ParameterTypes.h Range.h ReferenceFrame.h ReplicaDimArray.h Residue.h StringRoutines.h SymbolExporting.h TextFormat.h Timer.h Topology.h TypeNameHolder.h Vec3.h Action_HydrogenBond.o : Action_HydrogenBond.cpp Action.h ActionState.h Action_HydrogenBond.h ArgList.h AssociatedData.h Atom.h AtomExtra.h AtomMask.h AtomType.h BaseIOtype.h Box.h Constants.h CoordinateInfo.h CpptrajFile.h CpptrajStdio.h DataFile.h DataFileList.h DataIO.h DataSet.h DataSetList.h DataSet_1D.h DataSet_Coords.h DataSet_Coords_REF.h DataSet_integer.h Dimension.h DispatchObject.h DistRoutines.h FileIO.h FileName.h FileTypes.h Frame.h ImagedAction.h MaskToken.h Matrix_3x3.h MetaData.h Molecule.h NameType.h Parallel.h ParameterHolders.h ParameterSet.h ParameterTypes.h Range.h ReferenceFrame.h ReplicaDimArray.h Residue.h StringRoutines.h SymbolExporting.h TextFormat.h Timer.h Topology.h TorsionRoutines.h TypeNameHolder.h Vec3.h Action_Image.o : Action_Image.cpp Action.h ActionState.h Action_Image.h ArgList.h AssociatedData.h Atom.h AtomExtra.h AtomMask.h AtomType.h BaseIOtype.h Box.h Constants.h CoordinateInfo.h CpptrajFile.h CpptrajStdio.h DataFile.h DataFileList.h DataIO.h DataSet.h DataSetList.h DataSet_Coords.h DataSet_Coords_REF.h Dimension.h DispatchObject.h FileIO.h FileName.h FileTypes.h Frame.h ImageRoutines.h ImageTypes.h MaskToken.h Matrix_3x3.h MetaData.h Molecule.h NameType.h Parallel.h ParameterHolders.h ParameterSet.h ParameterTypes.h Range.h ReferenceFrame.h ReplicaDimArray.h Residue.h SymbolExporting.h TextFormat.h Timer.h Topology.h TypeNameHolder.h Vec3.h -Action_InfraredSpectrum.o : Action_InfraredSpectrum.cpp Action.h ActionState.h Action_InfraredSpectrum.h ArgList.h ArrayIterator.h AssociatedData.h Atom.h AtomExtra.h AtomMask.h AtomType.h BaseIOtype.h Box.h ComplexArray.h Constants.h CoordinateInfo.h Corr.h CpptrajFile.h CpptrajStdio.h DataFile.h DataFileList.h DataIO.h DataSet.h DataSetList.h DataSet_1D.h DataSet_Coords.h DataSet_Coords_REF.h DataSet_Vector.h DataSet_double.h Dimension.h DispatchObject.h FileIO.h FileName.h FileTypes.h Frame.h MaskToken.h Matrix_3x3.h MetaData.h Molecule.h NameType.h Parallel.h ParameterHolders.h ParameterSet.h ParameterTypes.h ProgressBar.h PubFFT.h Range.h ReferenceFrame.h ReplicaDimArray.h Residue.h SymbolExporting.h TextFormat.h Timer.h Topology.h TypeNameHolder.h Vec3.h +Action_InfraredSpectrum.o : Action_InfraredSpectrum.cpp Action.h ActionState.h Action_InfraredSpectrum.h ArgList.h ArrayIterator.h AssociatedData.h Atom.h AtomExtra.h AtomMask.h AtomType.h BaseIOtype.h Box.h ComplexArray.h Constants.h CoordinateInfo.h Corr.h CpptrajFile.h CpptrajStdio.h DataFile.h DataFileList.h DataIO.h DataSet.h DataSetList.h DataSet_1D.h DataSet_Coords.h DataSet_Coords_REF.h DataSet_Vector.h DataSet_Vector_XYZ.h DataSet_double.h Dimension.h DispatchObject.h FileIO.h FileName.h FileTypes.h Frame.h MaskToken.h Matrix_3x3.h MetaData.h Molecule.h NameType.h Parallel.h ParameterHolders.h ParameterSet.h ParameterTypes.h ProgressBar.h PubFFT.h Range.h ReferenceFrame.h ReplicaDimArray.h Residue.h SymbolExporting.h TextFormat.h Timer.h Topology.h TypeNameHolder.h Vec3.h Action_Jcoupling.o : Action_Jcoupling.cpp Action.h ActionState.h Action_Jcoupling.h ArgList.h AssociatedData.h Atom.h AtomExtra.h AtomMask.h AtomType.h BaseIOtype.h Box.h BufferedLine.h CharMask.h Constants.h CoordinateInfo.h CpptrajFile.h CpptrajStdio.h DataFile.h DataFileList.h DataIO.h DataSet.h DataSetList.h DataSet_Coords.h DataSet_Coords_REF.h Dimension.h DispatchObject.h FileIO.h FileName.h FileTypes.h Frame.h MaskToken.h Matrix_3x3.h MetaData.h Molecule.h NameType.h Parallel.h ParameterHolders.h ParameterSet.h ParameterTypes.h Range.h ReferenceFrame.h ReplicaDimArray.h Residue.h SymbolExporting.h TextFormat.h Timer.h Topology.h TorsionRoutines.h TypeNameHolder.h Vec3.h Action_LESsplit.o : Action_LESsplit.cpp Action.h ActionFrameCounter.h ActionState.h Action_LESsplit.h ArgList.h AssociatedData.h Atom.h AtomExtra.h AtomMask.h AtomType.h BaseIOtype.h Box.h Constants.h CoordinateInfo.h CpptrajFile.h CpptrajStdio.h DataFile.h DataFileList.h DataIO.h DataSet.h DataSetList.h DataSet_Coords.h DataSet_Coords_REF.h Dimension.h DispatchObject.h FileIO.h FileName.h FileTypes.h Frame.h MaskToken.h Matrix_3x3.h MetaData.h Molecule.h NameType.h OutputTrajCommon.h Parallel.h ParameterHolders.h ParameterSet.h ParameterTypes.h Range.h ReferenceFrame.h ReplicaDimArray.h Residue.h SymbolExporting.h TextFormat.h Timer.h Topology.h TrajectoryFile.h Trajout_Single.h TypeNameHolder.h Vec3.h Action_LIE.o : Action_LIE.cpp Action.h ActionState.h Action_LIE.h ArgList.h AssociatedData.h Atom.h AtomExtra.h AtomMask.h AtomType.h BaseIOtype.h Box.h Constants.h CoordinateInfo.h CpptrajFile.h CpptrajStdio.h DataFile.h DataFileList.h DataIO.h DataSet.h DataSetList.h DataSet_Coords.h DataSet_Coords_REF.h Dimension.h DispatchObject.h DistRoutines.h FileIO.h FileName.h FileTypes.h Frame.h ImagedAction.h MaskToken.h Matrix_3x3.h MetaData.h Molecule.h NameType.h Parallel.h ParameterHolders.h ParameterSet.h ParameterTypes.h Range.h ReferenceFrame.h ReplicaDimArray.h Residue.h SymbolExporting.h TextFormat.h Timer.h Topology.h TypeNameHolder.h Vec3.h From af97efaaa26e754d5aaa3b835d2981f5cc7de147 Mon Sep 17 00:00:00 2001 From: "Daniel R. Roe" Date: Fri, 3 Jan 2020 12:18:25 -0500 Subject: [PATCH 077/162] DRR - More updates for new vector types --- src/Action_Principal.cpp | 5 +++-- src/Action_Principal.h | 6 +++--- src/Action_Radgyr.cpp | 2 +- src/Action_Rmsd.cpp | 11 ++++++++--- src/Action_Rmsd.h | 4 ++-- src/cpptrajdepend | 6 +++--- 6 files changed, 20 insertions(+), 14 deletions(-) diff --git a/src/Action_Principal.cpp b/src/Action_Principal.cpp index d8b8222e34..fea2734edb 100644 --- a/src/Action_Principal.cpp +++ b/src/Action_Principal.cpp @@ -1,6 +1,7 @@ #include "Action_Principal.h" #include "CpptrajStdio.h" -#include "Matrix_3x3.h" +#include "DataSet_Mat3x3.h" +#include "DataSet_Vector_XYZ.h" // CONSTRUCTOR Action_Principal::Action_Principal() : @@ -37,7 +38,7 @@ Action::RetType Action_Principal::Init(ArgList& actionArgs, ActionInit& init, in // Set up data if (!dsname.empty()) { vecData_ = (DataSet_Mat3x3*)init.DSL().AddSet(DataSet::MAT3X3, MetaData(dsname, "evec")); - valData_ = (DataSet_Vector*)init.DSL().AddSet(DataSet::VECTOR, MetaData(dsname, "eval")); + valData_ = (DataSet_Vector_XYZ*)init.DSL().AddSet(DataSet::VEC_XYZ, MetaData(dsname, "eval")); if (vecData_ == 0 || valData_ == 0) return Action::ERR; } diff --git a/src/Action_Principal.h b/src/Action_Principal.h index ee0d6da535..eede6b6c1d 100644 --- a/src/Action_Principal.h +++ b/src/Action_Principal.h @@ -1,8 +1,8 @@ #ifndef INC_ACTION_PRINCIPAL_H #define INC_ACTION_PRINCIPAL_H #include "Action.h" -#include "DataSet_Mat3x3.h" -#include "DataSet_Vector.h" +class DataSet_Mat3x3; +class DataSet_Vector_XYZ; class Action_Principal : public Action { public: Action_Principal(); @@ -15,7 +15,7 @@ class Action_Principal : public Action { AtomMask mask_; CpptrajFile* outfile_; DataSet_Mat3x3* vecData_; - DataSet_Vector* valData_; + DataSet_Vector_XYZ* valData_; Action::RetType Init(ArgList&, ActionInit&, int); Action::RetType Setup(ActionSetup&); diff --git a/src/Action_Radgyr.cpp b/src/Action_Radgyr.cpp index 3c448ae16c..3edb2ee4ef 100644 --- a/src/Action_Radgyr.cpp +++ b/src/Action_Radgyr.cpp @@ -41,7 +41,7 @@ Action::RetType Action_Radgyr::Init(ArgList& actionArgs, ActionInit& init, int d if (outfile != 0) outfile->AddDataSet( rogmax_ ); } if (calcTensor_) { - rogtensor_ = init.DSL().AddSet(DataSet::VECTOR, MetaData(rog_->Meta().Name(), "Tensor")); + rogtensor_ = init.DSL().AddSet(DataSet::VEC_OXYZ, MetaData(rog_->Meta().Name(), "Tensor")); if (rogtensor_ == 0) return Action::ERR; if (outfile != 0) outfile->AddDataSet( rogtensor_ ); } diff --git a/src/Action_Rmsd.cpp b/src/Action_Rmsd.cpp index 5a665e4a29..d7c53c03de 100644 --- a/src/Action_Rmsd.cpp +++ b/src/Action_Rmsd.cpp @@ -2,6 +2,8 @@ #include "CpptrajStdio.h" #include "StringRoutines.h" // integerToString #include "DataSet_Mesh.h" +#include "DataSet_Vector_XYZ.h" +#include "DataSet_Vector_OXYZ.h" // CONSTRUCTOR Action_Rmsd::Action_Rmsd() : @@ -122,7 +124,10 @@ Action::RetType Action_Rmsd::Init(ArgList& actionArgs, ActionInit& init, int deb mprinterr("Error: Must be fitting in order to save translation vectors.\n"); return Action::ERR; } - tvecs_ = (DataSet_Vector*)init.DSL().AddSet(DataSet::VECTOR, md); + if (tvecType_ == COMBINED) + tvecs_ = (DataSet_Vector*)init.DSL().AddSet(DataSet::VEC_XYZ, md); + else // SEPARATE + tvecs_ = (DataSet_Vector*)init.DSL().AddSet(DataSet::VEC_OXYZ, md); if (tvecs_ == 0) return Action::ERR; if (vecsOut != 0) vecsOut->AddDataSet( tvecs_ ); } @@ -371,9 +376,9 @@ Action::RetType Action_Rmsd::DoAction(int frameNum, ActionFrame& frm) { rmsdval = tgtFrame_.RMSD_CenteredRef(REF_.SelectedRef(), rot_, tgtTrans_, useMass_); if (rmatrices_ != 0) rmatrices_->Add(frameNum, rot_.Dptr()); if (tvecType_ == COMBINED) - tvecs_->AddVxyz( tgtTrans_ + REF_.RefTrans() ); + ((DataSet_Vector_XYZ*)tvecs_)->AddVxyz( tgtTrans_ + REF_.RefTrans() ); else if (tvecType_ == SEPARATE) - tvecs_->AddVxyz( tgtTrans_, REF_.RefTrans() ); + ((DataSet_Vector_OXYZ*)tvecs_)->AddVxyzo( tgtTrans_, REF_.RefTrans() ); switch (mode_) { case ROT_AND_TRANS: frm.ModifyFrm().Trans_Rot_Trans(tgtTrans_, rot_, REF_.RefTrans()); diff --git a/src/Action_Rmsd.h b/src/Action_Rmsd.h index 3b16ae58e5..85dbf62349 100644 --- a/src/Action_Rmsd.h +++ b/src/Action_Rmsd.h @@ -3,8 +3,8 @@ #include "Action.h" #include "Range.h" #include "ReferenceAction.h" -#include "DataSet_1D.h" -#include "DataSet_Vector.h" +class DataSet_1D; +class DataSet_Vector; /// Action to calculate the RMSD between frame and a reference frame. class Action_Rmsd: public Action { public: diff --git a/src/cpptrajdepend b/src/cpptrajdepend index 346d652b07..9587743743 100644 --- a/src/cpptrajdepend +++ b/src/cpptrajdepend @@ -50,7 +50,7 @@ Action_Matrix.o : Action_Matrix.cpp Action.h ActionFrameCounter.h ActionState.h Action_MinImage.o : Action_MinImage.cpp Action.h ActionState.h Action_MinImage.h ArgList.h AssociatedData.h Atom.h AtomExtra.h AtomMask.h AtomType.h BaseIOtype.h Box.h Constants.h CoordinateInfo.h CpptrajFile.h CpptrajStdio.h DataFile.h DataFileList.h DataIO.h DataSet.h DataSetList.h DataSet_Coords.h DataSet_Coords_REF.h Dimension.h DispatchObject.h DistRoutines.h FileIO.h FileName.h FileTypes.h Frame.h ImagedAction.h MaskToken.h Matrix_3x3.h MetaData.h Molecule.h NameType.h Parallel.h ParameterHolders.h ParameterSet.h ParameterTypes.h Range.h ReferenceFrame.h ReplicaDimArray.h Residue.h SymbolExporting.h TextFormat.h Timer.h Topology.h TypeNameHolder.h Vec3.h Action_Molsurf.o : Action_Molsurf.cpp Action.h ActionState.h Action_Molsurf.h ArgList.h AssociatedData.h Atom.h AtomExtra.h AtomMask.h AtomType.h BaseIOtype.h Box.h Constants.h CoordinateInfo.h CpptrajFile.h CpptrajStdio.h DataFile.h DataFileList.h DataIO.h DataSet.h DataSetList.h DataSet_Coords.h DataSet_Coords_REF.h Dimension.h DispatchObject.h FileIO.h FileName.h FileTypes.h Frame.h MaskToken.h Matrix_3x3.h MetaData.h Molecule.h NameType.h Parallel.h ParameterHolders.h ParameterSet.h ParameterTypes.h Range.h ReferenceFrame.h ReplicaDimArray.h Residue.h SymbolExporting.h TextFormat.h Timer.h Topology.h TypeNameHolder.h Vec3.h molsurf.h Action_MultiDihedral.o : Action_MultiDihedral.cpp Action.h ActionState.h Action_MultiDihedral.h ArgList.h AssociatedData.h Atom.h AtomExtra.h AtomMask.h AtomType.h BaseIOtype.h Box.h Constants.h CoordinateInfo.h CpptrajFile.h CpptrajStdio.h DataFile.h DataFileList.h DataIO.h DataSet.h DataSetList.h DataSet_1D.h DataSet_Coords.h DataSet_Coords_REF.h DataSet_double.h DihedralSearch.h Dimension.h DispatchObject.h FileIO.h FileName.h FileTypes.h Frame.h MaskToken.h Matrix_3x3.h MetaData.h Molecule.h NameType.h Parallel.h ParameterHolders.h ParameterSet.h ParameterTypes.h Range.h ReferenceFrame.h ReplicaDimArray.h Residue.h StringRoutines.h SymbolExporting.h TextFormat.h Timer.h Topology.h TorsionRoutines.h TypeNameHolder.h Vec3.h -Action_MultiVector.o : Action_MultiVector.cpp Action.h ActionState.h Action_MultiVector.h ArgList.h ArrayIterator.h AssociatedData.h Atom.h AtomExtra.h AtomMask.h AtomType.h BaseIOtype.h Box.h ComplexArray.h Constants.h CoordinateInfo.h CpptrajFile.h CpptrajStdio.h DataFile.h DataFileList.h DataIO.h DataSet.h DataSetList.h DataSet_1D.h DataSet_Coords.h DataSet_Coords_REF.h DataSet_Vector.h Dimension.h DispatchObject.h FileIO.h FileName.h FileTypes.h Frame.h MaskToken.h Matrix_3x3.h MetaData.h Molecule.h NameType.h Parallel.h ParameterHolders.h ParameterSet.h ParameterTypes.h Range.h ReferenceFrame.h ReplicaDimArray.h Residue.h SymbolExporting.h TextFormat.h Timer.h Topology.h TypeNameHolder.h Vec3.h +Action_MultiVector.o : Action_MultiVector.cpp Action.h ActionState.h Action_MultiVector.h ArgList.h ArrayIterator.h AssociatedData.h Atom.h AtomExtra.h AtomMask.h AtomType.h BaseIOtype.h Box.h ComplexArray.h Constants.h CoordinateInfo.h CpptrajFile.h CpptrajStdio.h DataFile.h DataFileList.h DataIO.h DataSet.h DataSetList.h DataSet_1D.h DataSet_Coords.h DataSet_Coords_REF.h DataSet_Vector.h DataSet_Vector_OXYZ.h Dimension.h DispatchObject.h FileIO.h FileName.h FileTypes.h Frame.h MaskToken.h Matrix_3x3.h MetaData.h Molecule.h NameType.h Parallel.h ParameterHolders.h ParameterSet.h ParameterTypes.h Range.h ReferenceFrame.h ReplicaDimArray.h Residue.h SymbolExporting.h TextFormat.h Timer.h Topology.h TypeNameHolder.h Vec3.h Action_NAstruct.o : Action_NAstruct.cpp Action.h ActionState.h Action_NAstruct.h ArgList.h AssociatedData.h Atom.h AtomExtra.h AtomMask.h AtomType.h AxisType.h BaseIOtype.h Box.h Constants.h CoordinateInfo.h CpptrajFile.h CpptrajStdio.h DataFile.h DataFileList.h DataIO.h DataSet.h DataSetList.h DataSet_1D.h DataSet_Coords.h DataSet_Coords_REF.h DataSet_float.h Dimension.h DispatchObject.h DistRoutines.h FileIO.h FileName.h FileTypes.h Frame.h MaskToken.h Matrix_3x3.h MetaData.h Molecule.h NameType.h PDBfile.h Parallel.h ParameterHolders.h ParameterSet.h ParameterTypes.h Range.h ReferenceFrame.h ReplicaDimArray.h Residue.h StringRoutines.h SymbolExporting.h TextFormat.h Timer.h Topology.h TypeNameHolder.h Vec3.h Action_NMRrst.o : Action_NMRrst.cpp Action.h ActionState.h Action_NMRrst.h ArgList.h AssociatedData.h Atom.h AtomExtra.h AtomMap.h AtomMask.h AtomType.h BaseIOtype.h Box.h BufferedLine.h CharMask.h Constants.h CoordinateInfo.h CpptrajFile.h CpptrajStdio.h DataFile.h DataFileList.h DataIO.h DataSet.h DataSetList.h DataSet_1D.h DataSet_Coords.h DataSet_Coords_REF.h DataSet_double.h DataSet_float.h Dimension.h DispatchObject.h DistRoutines.h FileIO.h FileName.h FileTypes.h Frame.h ImagedAction.h MapAtom.h MaskToken.h Matrix_3x3.h MetaData.h Molecule.h NameType.h Parallel.h ParameterHolders.h ParameterSet.h ParameterTypes.h Range.h ReferenceFrame.h ReplicaDimArray.h Residue.h StringRoutines.h SymbolExporting.h TextFormat.h Timer.h Topology.h TypeNameHolder.h Vec3.h ViewRst.h Action_NativeContacts.o : Action_NativeContacts.cpp Action.h ActionState.h Action_NativeContacts.h ArgList.h ArrayIterator.h AssociatedData.h Atom.h AtomExtra.h AtomMask.h AtomType.h BaseIOtype.h Box.h Constants.h CoordinateInfo.h CpptrajFile.h CpptrajStdio.h DataFile.h DataFileList.h DataIO.h DataSet.h DataSetList.h DataSet_1D.h DataSet_2D.h DataSet_Coords.h DataSet_Coords_REF.h DataSet_MatrixDbl.h DataSet_integer.h Dimension.h DispatchObject.h DistRoutines.h FileIO.h FileName.h FileTypes.h Frame.h ImagedAction.h MaskToken.h Matrix.h Matrix_3x3.h MetaData.h Molecule.h NameType.h PDBfile.h Parallel.h ParameterHolders.h ParameterSet.h ParameterTypes.h Range.h ReferenceFrame.h ReplicaDimArray.h Residue.h SymbolExporting.h TextFormat.h Timer.h Topology.h TypeNameHolder.h Vec3.h @@ -58,7 +58,7 @@ Action_OrderParameter.o : Action_OrderParameter.cpp Action.h ActionState.h Actio Action_Outtraj.o : Action_Outtraj.cpp Action.h ActionFrameCounter.h ActionState.h Action_Outtraj.h ArgList.h AssociatedData.h Atom.h AtomExtra.h AtomMask.h AtomType.h BaseIOtype.h Box.h Constants.h CoordinateInfo.h CpptrajFile.h CpptrajStdio.h DataFile.h DataFileList.h DataIO.h DataSet.h DataSetList.h DataSet_1D.h DataSet_Coords.h DataSet_Coords_REF.h Dimension.h DispatchObject.h FileIO.h FileName.h FileTypes.h Frame.h MaskToken.h Matrix_3x3.h MetaData.h Molecule.h NameType.h OutputTrajCommon.h Parallel.h ParameterHolders.h ParameterSet.h ParameterTypes.h Range.h ReferenceFrame.h ReplicaDimArray.h Residue.h SymbolExporting.h TextFormat.h Timer.h Topology.h TrajectoryFile.h Trajout_Single.h TypeNameHolder.h Vec3.h Action_PairDist.o : Action_PairDist.cpp Action.h ActionState.h Action_PairDist.h ArgList.h AssociatedData.h Atom.h AtomExtra.h AtomMask.h AtomType.h BaseIOtype.h Box.h Constants.h CoordinateInfo.h CpptrajFile.h CpptrajStdio.h DataFile.h DataFileList.h DataIO.h DataSet.h DataSetList.h DataSet_1D.h DataSet_Coords.h DataSet_Coords_REF.h DataSet_Mesh.h Dimension.h DispatchObject.h DistRoutines.h FileIO.h FileName.h FileTypes.h Frame.h ImagedAction.h MaskToken.h Matrix_3x3.h MetaData.h Molecule.h NameType.h OnlineVarT.h Parallel.h ParameterHolders.h ParameterSet.h ParameterTypes.h Range.h ReferenceFrame.h ReplicaDimArray.h Residue.h Spline.h StringRoutines.h SymbolExporting.h TextFormat.h Timer.h Topology.h TypeNameHolder.h Vec3.h Action_Pairwise.o : Action_Pairwise.cpp Action.h ActionFrameCounter.h ActionState.h Action_Pairwise.h ArgList.h ArrayIterator.h AssociatedData.h Atom.h AtomExtra.h AtomMask.h AtomType.h BaseIOtype.h Box.h Constants.h CoordinateInfo.h CpptrajFile.h CpptrajStdio.h DataFile.h DataFileList.h DataIO.h DataSet.h DataSetList.h DataSet_2D.h DataSet_Coords.h DataSet_Coords_REF.h DataSet_MatrixDbl.h Dimension.h DispatchObject.h FileIO.h FileName.h FileTypes.h Frame.h MaskToken.h Matrix.h Matrix_3x3.h MetaData.h Molecule.h NameType.h OutputTrajCommon.h PDBfile.h Parallel.h ParameterHolders.h ParameterSet.h ParameterTypes.h Range.h ReferenceFrame.h ReplicaDimArray.h Residue.h StringRoutines.h SymbolExporting.h TextFormat.h Timer.h Topology.h TrajectoryFile.h Trajout_Single.h TypeNameHolder.h Vec3.h -Action_Principal.o : Action_Principal.cpp Action.h ActionState.h Action_Principal.h ArgList.h ArrayIterator.h AssociatedData.h Atom.h AtomExtra.h AtomMask.h AtomType.h BaseIOtype.h Box.h ComplexArray.h Constants.h CoordinateInfo.h CpptrajFile.h CpptrajStdio.h DataFile.h DataFileList.h DataIO.h DataSet.h DataSetList.h DataSet_1D.h DataSet_Coords.h DataSet_Coords_REF.h DataSet_Mat3x3.h DataSet_Vector.h Dimension.h DispatchObject.h FileIO.h FileName.h FileTypes.h Frame.h MaskToken.h Matrix_3x3.h MetaData.h Molecule.h NameType.h Parallel.h ParameterHolders.h ParameterSet.h ParameterTypes.h Range.h ReferenceFrame.h ReplicaDimArray.h Residue.h SymbolExporting.h TextFormat.h Timer.h Topology.h TypeNameHolder.h Vec3.h +Action_Principal.o : Action_Principal.cpp Action.h ActionState.h Action_Principal.h ArgList.h ArrayIterator.h AssociatedData.h Atom.h AtomExtra.h AtomMask.h AtomType.h BaseIOtype.h Box.h ComplexArray.h Constants.h CoordinateInfo.h CpptrajFile.h CpptrajStdio.h DataFile.h DataFileList.h DataIO.h DataSet.h DataSetList.h DataSet_1D.h DataSet_Coords.h DataSet_Coords_REF.h DataSet_Mat3x3.h DataSet_Vector.h DataSet_Vector_XYZ.h Dimension.h DispatchObject.h FileIO.h FileName.h FileTypes.h Frame.h MaskToken.h Matrix_3x3.h MetaData.h Molecule.h NameType.h Parallel.h ParameterHolders.h ParameterSet.h ParameterTypes.h Range.h ReferenceFrame.h ReplicaDimArray.h Residue.h SymbolExporting.h TextFormat.h Timer.h Topology.h TypeNameHolder.h Vec3.h Action_Projection.o : Action_Projection.cpp Action.h ActionFrameCounter.h ActionState.h Action_Projection.h ArgList.h Array1D.h ArrayIterator.h AssociatedData.h Atom.h AtomExtra.h AtomMask.h AtomType.h BaseIOtype.h Box.h Constants.h CoordinateInfo.h CpptrajFile.h CpptrajStdio.h DataFile.h DataFileList.h DataIO.h DataSet.h DataSetList.h DataSet_1D.h DataSet_2D.h DataSet_Coords.h DataSet_Coords_REF.h DataSet_MatrixDbl.h DataSet_Modes.h Dimension.h DispatchObject.h FileIO.h FileName.h FileTypes.h Frame.h MaskToken.h Matrix.h Matrix_3x3.h MetaData.h Molecule.h NameType.h Parallel.h ParameterHolders.h ParameterSet.h ParameterTypes.h Range.h ReferenceFrame.h ReplicaDimArray.h Residue.h StringRoutines.h SymbolExporting.h TextFormat.h Timer.h Topology.h TypeNameHolder.h Vec3.h Action_Pucker.o : Action_Pucker.cpp Action.h ActionState.h Action_Pucker.h ArgList.h AssociatedData.h Atom.h AtomExtra.h AtomMask.h AtomType.h BaseIOtype.h Box.h Constants.h CoordinateInfo.h CpptrajFile.h CpptrajStdio.h DataFile.h DataFileList.h DataIO.h DataSet.h DataSetList.h DataSet_Coords.h DataSet_Coords_REF.h Dimension.h DispatchObject.h FileIO.h FileName.h FileTypes.h Frame.h MaskToken.h Matrix_3x3.h MetaData.h Molecule.h NameType.h Parallel.h ParameterHolders.h ParameterSet.h ParameterTypes.h Range.h ReferenceFrame.h ReplicaDimArray.h Residue.h SymbolExporting.h TextFormat.h Timer.h Topology.h TorsionRoutines.h TypeNameHolder.h Vec3.h Action_Radgyr.o : Action_Radgyr.cpp Action.h ActionState.h Action_Radgyr.h ArgList.h AssociatedData.h Atom.h AtomExtra.h AtomMask.h AtomType.h BaseIOtype.h Box.h Constants.h CoordinateInfo.h CpptrajFile.h CpptrajStdio.h DataFile.h DataFileList.h DataIO.h DataSet.h DataSetList.h DataSet_Coords.h DataSet_Coords_REF.h Dimension.h DispatchObject.h FileIO.h FileName.h FileTypes.h Frame.h MaskToken.h Matrix_3x3.h MetaData.h Molecule.h NameType.h Parallel.h ParameterHolders.h ParameterSet.h ParameterTypes.h Range.h ReferenceFrame.h ReplicaDimArray.h Residue.h SymbolExporting.h TextFormat.h Timer.h Topology.h TypeNameHolder.h Vec3.h @@ -66,7 +66,7 @@ Action_Radial.o : Action_Radial.cpp Action.h ActionState.h Action_Radial.h ArgLi Action_RandomizeIons.o : Action_RandomizeIons.cpp Action.h ActionState.h Action_RandomizeIons.h ArgList.h AssociatedData.h Atom.h AtomExtra.h AtomMask.h AtomType.h BaseIOtype.h Box.h Constants.h CoordinateInfo.h CpptrajFile.h CpptrajStdio.h DataFile.h DataFileList.h DataIO.h DataSet.h DataSetList.h DataSet_Coords.h DataSet_Coords_REF.h Dimension.h DispatchObject.h DistRoutines.h FileIO.h FileName.h FileTypes.h Frame.h ImagedAction.h MaskToken.h Matrix_3x3.h MetaData.h Molecule.h NameType.h Parallel.h ParameterHolders.h ParameterSet.h ParameterTypes.h Random.h Range.h ReferenceFrame.h ReplicaDimArray.h Residue.h SymbolExporting.h TextFormat.h Timer.h Topology.h TypeNameHolder.h Vec3.h Action_Remap.o : Action_Remap.cpp Action.h ActionState.h Action_Remap.h ArgList.h AssociatedData.h Atom.h AtomExtra.h AtomMask.h AtomType.h BaseIOtype.h BondSearch.h Box.h Constants.h CoordinateInfo.h CpptrajFile.h CpptrajStdio.h DataFile.h DataFileList.h DataIO.h DataSet.h DataSetList.h DataSet_1D.h DataSet_Coords.h DataSet_Coords_REF.h Dimension.h DispatchObject.h FileIO.h FileName.h FileTypes.h Frame.h MaskToken.h Matrix_3x3.h MetaData.h Molecule.h NameType.h Parallel.h ParameterHolders.h ParameterSet.h ParameterTypes.h ParmFile.h ParmIO.h Range.h ReferenceFrame.h ReplicaDimArray.h Residue.h SymbolExporting.h TextFormat.h Timer.h Topology.h TypeNameHolder.h Vec3.h Action_ReplicateCell.o : Action_ReplicateCell.cpp Action.h ActionFrameCounter.h ActionState.h Action_ReplicateCell.h ArgList.h AssociatedData.h Atom.h AtomExtra.h AtomMask.h AtomType.h BaseIOtype.h BondSearch.h Box.h Constants.h CoordinateInfo.h CpptrajFile.h CpptrajStdio.h DataFile.h DataFileList.h DataIO.h DataSet.h DataSetList.h DataSet_Coords.h DataSet_Coords_REF.h Dimension.h DispatchObject.h DistRoutines.h FileIO.h FileName.h FileTypes.h Frame.h ImagedAction.h MaskToken.h Matrix_3x3.h MetaData.h Molecule.h NameType.h OutputTrajCommon.h Parallel.h ParameterHolders.h ParameterSet.h ParameterTypes.h ParmFile.h ParmIO.h Range.h ReferenceFrame.h ReplicaDimArray.h Residue.h SymbolExporting.h TextFormat.h Timer.h Topology.h TrajectoryFile.h Trajout_Single.h TypeNameHolder.h Vec3.h -Action_Rmsd.o : Action_Rmsd.cpp Action.h ActionState.h Action_Rmsd.h ArgList.h ArrayIterator.h AssociatedData.h Atom.h AtomExtra.h AtomMask.h AtomType.h BaseIOtype.h Box.h ComplexArray.h Constants.h CoordinateInfo.h CpptrajFile.h CpptrajStdio.h DataFile.h DataFileList.h DataIO.h DataSet.h DataSetList.h DataSet_1D.h DataSet_Coords.h DataSet_Coords_REF.h DataSet_Mesh.h DataSet_Vector.h Dimension.h DispatchObject.h FileIO.h FileName.h FileTypes.h Frame.h MaskToken.h Matrix_3x3.h MetaData.h Molecule.h NameType.h Parallel.h ParameterHolders.h ParameterSet.h ParameterTypes.h Range.h ReferenceAction.h ReferenceFrame.h ReplicaDimArray.h Residue.h Spline.h StringRoutines.h SymbolExporting.h TextFormat.h Timer.h Topology.h TypeNameHolder.h Vec3.h +Action_Rmsd.o : Action_Rmsd.cpp Action.h ActionState.h Action_Rmsd.h ArgList.h ArrayIterator.h AssociatedData.h Atom.h AtomExtra.h AtomMask.h AtomType.h BaseIOtype.h Box.h ComplexArray.h Constants.h CoordinateInfo.h CpptrajFile.h CpptrajStdio.h DataFile.h DataFileList.h DataIO.h DataSet.h DataSetList.h DataSet_1D.h DataSet_Coords.h DataSet_Coords_REF.h DataSet_Mesh.h DataSet_Vector.h DataSet_Vector_OXYZ.h DataSet_Vector_XYZ.h Dimension.h DispatchObject.h FileIO.h FileName.h FileTypes.h Frame.h MaskToken.h Matrix_3x3.h MetaData.h Molecule.h NameType.h Parallel.h ParameterHolders.h ParameterSet.h ParameterTypes.h Range.h ReferenceAction.h ReferenceFrame.h ReplicaDimArray.h Residue.h Spline.h StringRoutines.h SymbolExporting.h TextFormat.h Timer.h Topology.h TypeNameHolder.h Vec3.h Action_Rotate.o : Action_Rotate.cpp Action.h ActionState.h Action_Rotate.h ArgList.h AssociatedData.h Atom.h AtomExtra.h AtomMask.h AtomType.h BaseIOtype.h Box.h Constants.h CoordinateInfo.h CpptrajFile.h CpptrajStdio.h DataFile.h DataFileList.h DataIO.h DataSet.h DataSetList.h DataSet_Coords.h DataSet_Coords_REF.h DataSet_Mat3x3.h Dimension.h DispatchObject.h FileIO.h FileName.h FileTypes.h Frame.h MaskToken.h Matrix_3x3.h MetaData.h Molecule.h NameType.h Parallel.h ParameterHolders.h ParameterSet.h ParameterTypes.h Range.h ReferenceFrame.h ReplicaDimArray.h Residue.h SymbolExporting.h TextFormat.h Timer.h Topology.h TypeNameHolder.h Vec3.h Action_RunningAvg.o : Action_RunningAvg.cpp Action.h ActionState.h Action_RunningAvg.h ArgList.h AssociatedData.h Atom.h AtomExtra.h AtomMask.h AtomType.h BaseIOtype.h Box.h Constants.h CoordinateInfo.h CpptrajFile.h CpptrajStdio.h DataFile.h DataFileList.h DataIO.h DataSet.h DataSetList.h DataSet_Coords.h DataSet_Coords_REF.h Dimension.h DispatchObject.h FileIO.h FileName.h FileTypes.h Frame.h MaskToken.h Matrix_3x3.h MetaData.h Molecule.h NameType.h Parallel.h ParameterHolders.h ParameterSet.h ParameterTypes.h Range.h ReferenceFrame.h ReplicaDimArray.h Residue.h SymbolExporting.h TextFormat.h Timer.h Topology.h TypeNameHolder.h Vec3.h Action_STFC_Diffusion.o : Action_STFC_Diffusion.cpp Action.h ActionState.h Action_STFC_Diffusion.h ArgList.h AssociatedData.h Atom.h AtomExtra.h AtomMask.h AtomType.h BaseIOtype.h Box.h Constants.h CoordinateInfo.h CpptrajFile.h CpptrajStdio.h DataFile.h DataFileList.h DataIO.h DataSet.h DataSetList.h DataSet_Coords.h DataSet_Coords_REF.h Dimension.h DispatchObject.h DistRoutines.h FileIO.h FileName.h FileTypes.h Frame.h ImagedAction.h MaskToken.h Matrix_3x3.h MetaData.h Molecule.h NameType.h Parallel.h ParameterHolders.h ParameterSet.h ParameterTypes.h Range.h ReferenceFrame.h ReplicaDimArray.h Residue.h SymbolExporting.h TextFormat.h Timer.h Topology.h TypeNameHolder.h Vec3.h From 9313c4c62d9bb1ffc41b4b1dc09e6bf422225b8d Mon Sep 17 00:00:00 2001 From: "Daniel R. Roe" Date: Fri, 3 Jan 2020 12:20:24 -0500 Subject: [PATCH 078/162] DRR - prototype test for loop over datasetblocks --- test/Test_Control/EndToEnd1.dat.save | 11 ++++++++++ test/Test_Control/RunTest.sh | 31 ++++++++++++++++++++++++++++ 2 files changed, 42 insertions(+) create mode 100644 test/Test_Control/EndToEnd1.dat.save diff --git a/test/Test_Control/EndToEnd1.dat.save b/test/Test_Control/EndToEnd1.dat.save new file mode 100644 index 0000000000..26a964e7a0 --- /dev/null +++ b/test/Test_Control/EndToEnd1.dat.save @@ -0,0 +1,11 @@ +#Frame DS:0 DS:10 DS:20 DS:30 DS:40 DS:50 DS:60 DS:70 DS:80 DS:90 + 1 19.5966 15.7380 24.1724 26.5708 25.4524 27.2384 24.8268 23.5536 13.9835 16.2193 + 2 17.3480 16.1633 26.6273 24.8831 24.3159 26.9608 23.8860 22.1018 16.3418 14.9303 + 3 17.8450 20.5872 28.6254 26.6288 23.6855 24.3911 24.7488 23.8363 16.3319 12.2398 + 4 15.6454 25.1923 27.0966 25.2180 27.2770 22.0174 27.7153 25.4201 19.1379 13.2966 + 5 14.3931 26.6599 26.6521 28.1164 27.6559 25.8095 26.6599 23.2907 18.0394 17.2469 + 6 18.5833 29.1215 24.6119 28.1434 25.2341 27.6918 21.8790 19.5656 14.0243 17.0445 + 7 18.6442 30.8099 25.5315 27.5044 23.4983 28.7332 21.3410 19.7663 15.5260 15.3262 + 8 10.4004 29.4083 28.3073 28.3307 24.5663 25.4913 24.2118 19.3969 13.9823 13.5809 + 9 12.8161 24.8295 28.1660 29.3041 25.6547 25.5589 21.0304 17.1379 17.9049 14.7931 + 10 13.8327 22.8733 28.4593 27.2524 26.9956 27.9087 24.6680 15.2635 18.6844 16.1738 diff --git a/test/Test_Control/RunTest.sh b/test/Test_Control/RunTest.sh index a6aeebc936..cf552d4f0d 100755 --- a/test/Test_Control/RunTest.sh +++ b/test/Test_Control/RunTest.sh @@ -89,5 +89,36 @@ EOF RunCpptraj "$UNITNAME" DoTest nested.agr nested.agr.save +UNITNAME='Test loop over data set blocks' +cat > for.in < Date: Fri, 3 Jan 2020 16:02:16 -0500 Subject: [PATCH 079/162] DRR - More changes for new set types --- src/Action_Vector.cpp | 48 ++++++++++++++++++++++------------- src/Action_Vector.h | 7 ++--- src/Action_VelocityAutoCorr.h | 4 +-- src/cpptrajdepend | 6 ++--- 4 files changed, 40 insertions(+), 25 deletions(-) diff --git a/src/Action_Vector.cpp b/src/Action_Vector.cpp index ce75a689ce..706f2caf73 100644 --- a/src/Action_Vector.cpp +++ b/src/Action_Vector.cpp @@ -4,6 +4,7 @@ #include "Action_Vector.h" #include "CpptrajStdio.h" #include "DistRoutines.h" // MinImagedVec, includes Matrix_3x3 for principal +#include "DataSet_Vector_OXYZ.h" // CONSTRUCTOR Action_Vector::Action_Vector() : @@ -43,13 +44,20 @@ Action_Vector::~Action_Vector() { if (vcorr_!=0) delete[] vcorr_; } -const char* Action_Vector::ModeString[] = { +const char* Action_Vector::ModeString_[] = { "NO_OP", "Principal X", "Principal Y", "Principal Z", - "Dipole", "Box", "Mask", "Ired", + "Dipole", "Box", "Mask", "CorrPlane", "Center", "Unit cell X", "Unit cell Y", "Unit cell Z", "Box Center", "MinImage", "Momentum", "Velocity", "Force" }; +const bool Action_Vector::NeedsOrigin_[] = { + false, true, true, true, + true, false, true, + true, false, true, true, true, + false, true, false, false, false +}; + static Action::RetType WarnDeprecated() { mprinterr("Error: Vector: 'corrired' and 'corr' are deprecated.\n" "Error: 'corrired' functionality is now part of the\n" @@ -140,7 +148,7 @@ Action::RetType Action_Vector::Init(ArgList& actionArgs, ActionInit& init, int d std::string maskexpr = actionArgs.GetMaskNext(); if (maskexpr.empty()) { mprinterr("Error: Specified vector mode (%s) requires a second mask.\n", - ModeString[ mode_ ]); + ModeString_[ mode_ ]); return Action::ERR; } if (mask2_.SetMaskString( maskexpr )) return Action::ERR; @@ -148,7 +156,12 @@ Action::RetType Action_Vector::Init(ArgList& actionArgs, ActionInit& init, int d // Set up vector dataset and IRED status MetaData md(actionArgs.GetStringNext(), MetaData::M_VECTOR); if (isIred) md.SetScalarType( MetaData::IREDVEC ); - Vec_ = (DataSet_Vector*)init.DSL().AddSet(DataSet::VECTOR, md, "Vec"); + DataSet::DataType vtype; + if (NeedsOrigin_[mode_]) + vtype = DataSet::VEC_OXYZ; + else + vtype = DataSet::VEC_XYZ; + Vec_ = (DataSet_Vector*)init.DSL().AddSet(vtype, md, "Vec"); if (Vec_ == 0) return Action::ERR; // Add set to output file if not doing ptraj-compatible output if (!ptrajoutput_ && df != 0) @@ -160,7 +173,7 @@ Action::RetType Action_Vector::Init(ArgList& actionArgs, ActionInit& init, int d if (df != 0) df->AddDataSet( Magnitude_ ); } - mprintf(" VECTOR: Type %s", ModeString[ mode_ ]); + mprintf(" VECTOR: Type %s", ModeString_[ mode_ ]); if (calc_magnitude) mprintf(" (with magnitude)"); if (isIred) @@ -193,11 +206,11 @@ Action::RetType Action_Vector::Setup(ActionSetup& setup) { } // Check for velocity/force if ((mode_ == MOMENTUM || mode_ == VELOCITY) && !setup.CoordInfo().HasVel()) { - mprintf("Warning: vector %s requires velocity information. Skipping.\n", ModeString[mode_]); + mprintf("Warning: vector %s requires velocity information. Skipping.\n", ModeString_[mode_]); return Action::SKIP; } if (mode_ == FORCE && !setup.CoordInfo().HasForce()) { - mprintf("Warning: vector %s requires force information. Skipping.\n", ModeString[mode_]); + mprintf("Warning: vector %s requires force information. Skipping.\n", ModeString_[mode_]); return Action::SKIP; } if (mask_.MaskStringSet()) { @@ -344,7 +357,7 @@ void Action_Vector::Mask(Frame const& currentFrame) { Vec3 CXYZ = currentFrame.VCenterOfMass(mask_); Vec3 VXYZ = currentFrame.VCenterOfMass(mask2_); VXYZ -= CXYZ; - Vec_->AddVxyz(VXYZ, CXYZ); + ((DataSet_Vector_OXYZ*)Vec_)->AddVxyzo(VXYZ, CXYZ); } // Action_Vector::Dipole() @@ -364,7 +377,7 @@ void Action_Vector::Dipole(Frame const& currentFrame) { VXYZ += ( XYZ ); } CXYZ /= total_mass; - Vec_->AddVxyz( VXYZ, CXYZ ); + ((DataSet_Vector_OXYZ*)Vec_)->AddVxyzo( VXYZ, CXYZ ); } // Action_Vector::Principal() @@ -378,12 +391,13 @@ void Action_Vector::Principal(Frame const& currentFrame) { Inertia.Diagonalize_Sort_Chirality( Eval, 0 ); // Eval.Print("PRINCIPAL EIGENVALUES"); // Inertia.Print("PRINCIPAL EIGENVECTORS (Rows)"); + DataSet_Vector_OXYZ& vec = static_cast( *Vec_ ); if ( mode_ == PRINCIPAL_X ) - Vec_->AddVxyz( Inertia.Row1(), OXYZ ); // First row = first eigenvector + vec.AddVxyzo( Inertia.Row1(), OXYZ ); // First row = first eigenvector else if ( mode_ == PRINCIPAL_Y ) - Vec_->AddVxyz( Inertia.Row2(), OXYZ ); // Second row = second eigenvector + vec.AddVxyzo( Inertia.Row2(), OXYZ ); // Second row = second eigenvector else // PRINCIPAL_Z - Vec_->AddVxyz( Inertia.Row3(), OXYZ ); // Third row = third eigenvector + vec.AddVxyzo( Inertia.Row3(), OXYZ ); // Third row = third eigenvector } // Action_Vector::CorrPlane() @@ -400,7 +414,7 @@ void Action_Vector::CorrPlane(Frame const& currentFrame) { vcorr_[idx++] = XYZ[2]; } Vec3 VXYZ = leastSquaresPlane(idx, vcorr_); - Vec_->AddVxyz(VXYZ, CXYZ); + ((DataSet_Vector_OXYZ*)Vec_)->AddVxyzo(VXYZ, CXYZ); } // Action_Vector::UnitCell() @@ -408,9 +422,9 @@ void Action_Vector::UnitCell(Box const& box) { Matrix_3x3 ucell, recip; box.ToRecip( ucell, recip ); switch ( mode_ ) { - case BOX_X: Vec_->AddVxyz( ucell.Row1(), DataSet_Vector::ZERO ); break; - case BOX_Y: Vec_->AddVxyz( ucell.Row2(), DataSet_Vector::ZERO ); break; - case BOX_Z: Vec_->AddVxyz( ucell.Row3(), DataSet_Vector::ZERO ); break; + case BOX_X: ((DataSet_Vector_OXYZ*)Vec_)->AddVxyzo( ucell.Row1(), Vec3(0.0) ); break; + case BOX_Y: ((DataSet_Vector_OXYZ*)Vec_)->AddVxyzo( ucell.Row2(), Vec3(0.0) ); break; + case BOX_Z: ((DataSet_Vector_OXYZ*)Vec_)->AddVxyzo( ucell.Row3(), Vec3(0.0) ); break; case BOX_CTR: Vec_->AddVxyz( ucell.TransposeMult(Vec3(0.5)) ); break; default: return; } @@ -421,7 +435,7 @@ void Action_Vector::MinImage(Frame const& frm) { Matrix_3x3 ucell, recip; frm.BoxCrd().ToRecip( ucell, recip ); Vec3 com1 = frm.VCenterOfMass(mask_); - Vec_->AddVxyz( MinImagedVec(com1, frm.VCenterOfMass(mask2_), ucell, recip), com1 ); + ((DataSet_Vector_OXYZ*)Vec_)->AddVxyzo( MinImagedVec(com1, frm.VCenterOfMass(mask2_), ucell, recip), com1 ); } /// \return The center of selected elements in given array. diff --git a/src/Action_Vector.h b/src/Action_Vector.h index a30dccf262..efbf91d1e3 100644 --- a/src/Action_Vector.h +++ b/src/Action_Vector.h @@ -1,7 +1,7 @@ #ifndef INC_ACTION_VECTOR_H #define INC_ACTION_VECTOR_H #include "Action.h" -#include "DataSet_Vector.h" +class DataSet_Vector; class Action_Vector : public Action { public: Action_Vector(); @@ -11,11 +11,12 @@ class Action_Vector : public Action { private: enum vectorMode { NO_OP=0, PRINCIPAL_X, PRINCIPAL_Y, PRINCIPAL_Z, - DIPOLE, BOX, MASK, IRED, + DIPOLE, BOX, MASK, CORRPLANE, CENTER, BOX_X, BOX_Y, BOX_Z, BOX_CTR, MINIMAGE, MOMENTUM, VELOCITY, FORCE }; - static const char* ModeString[]; + static const char* ModeString_[]; + static const bool NeedsOrigin_[]; Action::RetType Init(ArgList&, ActionInit&, int); Action::RetType Setup(ActionSetup&); diff --git a/src/Action_VelocityAutoCorr.h b/src/Action_VelocityAutoCorr.h index 5007df2aa0..83b7c86ed0 100644 --- a/src/Action_VelocityAutoCorr.h +++ b/src/Action_VelocityAutoCorr.h @@ -1,7 +1,7 @@ #ifndef INC_ACTION_VELOCITYAUTOCORR_H #define INC_ACTION_VELOCITYAUTOCORR_H #include "Action.h" -#include "DataSet_Vector.h" +#include "DataSet_Vector_XYZ.h" class Action_VelocityAutoCorr : public Action { public: Action_VelocityAutoCorr(); @@ -19,7 +19,7 @@ class Action_VelocityAutoCorr : public Action { # endif void Print(); - typedef DataSet_Vector Varray; + typedef DataSet_Vector_XYZ Varray; typedef std::vector VelArray; VelArray Vel_; ///< Hold velocity info for each selected atom at each frame. AtomMask mask_; ///< Atoms to calculate VAC fn for. diff --git a/src/cpptrajdepend b/src/cpptrajdepend index 9587743743..041e2d48f5 100644 --- a/src/cpptrajdepend +++ b/src/cpptrajdepend @@ -81,8 +81,8 @@ Action_Time.o : Action_Time.cpp Action.h ActionState.h Action_Time.h ArgList.h A Action_Translate.o : Action_Translate.cpp Action.h ActionState.h Action_Translate.h ArgList.h AssociatedData.h Atom.h AtomExtra.h AtomMask.h AtomType.h BaseIOtype.h Box.h Constants.h CoordinateInfo.h CpptrajFile.h CpptrajStdio.h DataFile.h DataFileList.h DataIO.h DataSet.h DataSetList.h DataSet_Coords.h DataSet_Coords_REF.h Dimension.h DispatchObject.h FileIO.h FileName.h FileTypes.h Frame.h MaskToken.h Matrix_3x3.h MetaData.h Molecule.h NameType.h Parallel.h ParameterHolders.h ParameterSet.h ParameterTypes.h Range.h ReferenceFrame.h ReplicaDimArray.h Residue.h SymbolExporting.h TextFormat.h Timer.h Topology.h TypeNameHolder.h Vec3.h Action_Unstrip.o : Action_Unstrip.cpp Action.h ActionState.h Action_Unstrip.h ArgList.h AssociatedData.h Atom.h AtomExtra.h AtomMask.h AtomType.h BaseIOtype.h Box.h Constants.h CoordinateInfo.h CpptrajFile.h CpptrajStdio.h DataFile.h DataFileList.h DataIO.h DataSet.h DataSetList.h DataSet_Coords.h DataSet_Coords_REF.h Dimension.h DispatchObject.h FileIO.h FileName.h FileTypes.h Frame.h MaskToken.h Matrix_3x3.h MetaData.h Molecule.h NameType.h Parallel.h ParameterHolders.h ParameterSet.h ParameterTypes.h Range.h ReferenceFrame.h ReplicaDimArray.h Residue.h SymbolExporting.h TextFormat.h Timer.h Topology.h TypeNameHolder.h Vec3.h Action_Unwrap.o : Action_Unwrap.cpp Action.h ActionState.h Action_Unwrap.h ArgList.h AssociatedData.h Atom.h AtomExtra.h AtomMask.h AtomType.h BaseIOtype.h Box.h Constants.h CoordinateInfo.h CpptrajFile.h CpptrajStdio.h DataFile.h DataFileList.h DataIO.h DataSet.h DataSetList.h DataSet_Coords.h DataSet_Coords_REF.h Dimension.h DispatchObject.h FileIO.h FileName.h FileTypes.h Frame.h ImageRoutines.h ImageTypes.h MaskToken.h Matrix_3x3.h MetaData.h Molecule.h NameType.h Parallel.h ParameterHolders.h ParameterSet.h ParameterTypes.h Range.h ReferenceFrame.h ReplicaDimArray.h Residue.h SymbolExporting.h TextFormat.h Timer.h Topology.h TypeNameHolder.h Vec3.h -Action_Vector.o : Action_Vector.cpp Action.h ActionState.h Action_Vector.h ArgList.h ArrayIterator.h AssociatedData.h Atom.h AtomExtra.h AtomMask.h AtomType.h BaseIOtype.h Box.h ComplexArray.h Constants.h CoordinateInfo.h CpptrajFile.h CpptrajStdio.h DataFile.h DataFileList.h DataIO.h DataSet.h DataSetList.h DataSet_1D.h DataSet_Coords.h DataSet_Coords_REF.h DataSet_Vector.h Dimension.h DispatchObject.h DistRoutines.h FileIO.h FileName.h FileTypes.h Frame.h MaskToken.h Matrix_3x3.h MetaData.h Molecule.h NameType.h Parallel.h ParameterHolders.h ParameterSet.h ParameterTypes.h Range.h ReferenceFrame.h ReplicaDimArray.h Residue.h SymbolExporting.h TextFormat.h Timer.h Topology.h TypeNameHolder.h Vec3.h -Action_VelocityAutoCorr.o : Action_VelocityAutoCorr.cpp Action.h ActionState.h Action_VelocityAutoCorr.h ArgList.h ArrayIterator.h AssociatedData.h Atom.h AtomExtra.h AtomMask.h AtomType.h BaseIOtype.h Box.h ComplexArray.h Constants.h CoordinateInfo.h Corr.h CpptrajFile.h CpptrajStdio.h DataFile.h DataFileList.h DataIO.h DataSet.h DataSetList.h DataSet_1D.h DataSet_Coords.h DataSet_Coords_REF.h DataSet_Vector.h DataSet_double.h Dimension.h DispatchObject.h FileIO.h FileName.h FileTypes.h Frame.h MaskToken.h Matrix_3x3.h MetaData.h Molecule.h NameType.h Parallel.h ParameterHolders.h ParameterSet.h ParameterTypes.h ProgressBar.h PubFFT.h Range.h ReferenceFrame.h ReplicaDimArray.h Residue.h SymbolExporting.h TextFormat.h Timer.h Topology.h TypeNameHolder.h Vec3.h +Action_Vector.o : Action_Vector.cpp Action.h ActionState.h Action_Vector.h ArgList.h ArrayIterator.h AssociatedData.h Atom.h AtomExtra.h AtomMask.h AtomType.h BaseIOtype.h Box.h ComplexArray.h Constants.h CoordinateInfo.h CpptrajFile.h CpptrajStdio.h DataFile.h DataFileList.h DataIO.h DataSet.h DataSetList.h DataSet_1D.h DataSet_Coords.h DataSet_Coords_REF.h DataSet_Vector.h DataSet_Vector_OXYZ.h Dimension.h DispatchObject.h DistRoutines.h FileIO.h FileName.h FileTypes.h Frame.h MaskToken.h Matrix_3x3.h MetaData.h Molecule.h NameType.h Parallel.h ParameterHolders.h ParameterSet.h ParameterTypes.h Range.h ReferenceFrame.h ReplicaDimArray.h Residue.h SymbolExporting.h TextFormat.h Timer.h Topology.h TypeNameHolder.h Vec3.h +Action_VelocityAutoCorr.o : Action_VelocityAutoCorr.cpp Action.h ActionState.h Action_VelocityAutoCorr.h ArgList.h ArrayIterator.h AssociatedData.h Atom.h AtomExtra.h AtomMask.h AtomType.h BaseIOtype.h Box.h ComplexArray.h Constants.h CoordinateInfo.h Corr.h CpptrajFile.h CpptrajStdio.h DataFile.h DataFileList.h DataIO.h DataSet.h DataSetList.h DataSet_1D.h DataSet_Coords.h DataSet_Coords_REF.h DataSet_Vector.h DataSet_Vector_XYZ.h DataSet_double.h Dimension.h DispatchObject.h FileIO.h FileName.h FileTypes.h Frame.h MaskToken.h Matrix_3x3.h MetaData.h Molecule.h NameType.h Parallel.h ParameterHolders.h ParameterSet.h ParameterTypes.h ProgressBar.h PubFFT.h Range.h ReferenceFrame.h ReplicaDimArray.h Residue.h SymbolExporting.h TextFormat.h Timer.h Topology.h TypeNameHolder.h Vec3.h Action_Volmap.o : Action_Volmap.cpp Action.h ActionState.h Action_Volmap.h ArgList.h ArrayIterator.h AssociatedData.h Atom.h AtomExtra.h AtomMask.h AtomType.h BaseIOtype.h Box.h Constants.h CoordinateInfo.h CpptrajFile.h CpptrajStdio.h DataFile.h DataFileList.h DataIO.h DataSet.h DataSetList.h DataSet_3D.h DataSet_Coords.h DataSet_Coords_REF.h DataSet_GridFlt.h Dimension.h DispatchObject.h FileIO.h FileName.h FileTypes.h Frame.h Grid.h GridBin.h MaskToken.h Matrix_3x3.h MetaData.h Molecule.h NameType.h Parallel.h ParameterHolders.h ParameterSet.h ParameterTypes.h Range.h ReferenceFrame.h ReplicaDimArray.h Residue.h SymbolExporting.h TextFormat.h Timer.h Topology.h TypeNameHolder.h Vec3.h Action_Volume.o : Action_Volume.cpp Action.h ActionState.h Action_Volume.h ArgList.h AssociatedData.h Atom.h AtomExtra.h AtomMask.h AtomType.h BaseIOtype.h Box.h Constants.h CoordinateInfo.h CpptrajFile.h CpptrajStdio.h DataFile.h DataFileList.h DataIO.h DataSet.h DataSetList.h DataSet_1D.h DataSet_Coords.h DataSet_Coords_REF.h Dimension.h DispatchObject.h DistRoutines.h FileIO.h FileName.h FileTypes.h Frame.h ImagedAction.h MaskToken.h Matrix_3x3.h MetaData.h Molecule.h NameType.h Parallel.h ParameterHolders.h ParameterSet.h ParameterTypes.h Range.h ReferenceFrame.h ReplicaDimArray.h Residue.h SymbolExporting.h TextFormat.h Timer.h Topology.h TypeNameHolder.h Vec3.h Action_Watershell.o : Action_Watershell.cpp Action.h ActionState.h Action_Watershell.h ArgList.h AssociatedData.h Atom.h AtomExtra.h AtomMask.h AtomType.h BaseIOtype.h Box.h CharMask.h Constants.h CoordinateInfo.h CpptrajFile.h CpptrajStdio.h DataFile.h DataFileList.h DataIO.h DataSet.h DataSetList.h DataSet_Coords.h DataSet_Coords_REF.h Dimension.h DispatchObject.h DistRoutines.h FileIO.h FileName.h FileTypes.h Frame.h ImageRoutines.h ImageTypes.h ImagedAction.h MaskToken.h Matrix_3x3.h MetaData.h Molecule.h NameType.h Parallel.h ParameterHolders.h ParameterSet.h ParameterTypes.h Range.h ReferenceFrame.h ReplicaDimArray.h Residue.h SymbolExporting.h TextFormat.h Timer.h Topology.h TypeNameHolder.h Vec3.h @@ -157,7 +157,7 @@ Cluster_ReadInfo.o : Cluster_ReadInfo.cpp ArgList.h ArrayIterator.h AssociatedDa Cmd.o : Cmd.cpp Cmd.h DispatchObject.h CmdInput.o : CmdInput.cpp CmdInput.h StringRoutines.h CmdList.o : CmdList.cpp Cmd.h CmdList.h DispatchObject.h -Command.o : Command.cpp Action.h ActionFrameCounter.h ActionList.h ActionState.h Action_Align.h Action_Angle.h Action_AreaPerMol.h Action_AtomMap.h Action_AtomicCorr.h Action_AtomicFluct.h Action_AutoImage.h Action_Average.h Action_Bounds.h Action_Box.h Action_Center.h Action_Channel.h Action_CheckChirality.h Action_CheckStructure.h Action_Closest.h Action_ClusterDihedral.h Action_Contacts.h Action_CreateCrd.h Action_CreateReservoir.h Action_DNAionTracker.h Action_DSSP.h Action_Density.h Action_Diffusion.h Action_Dihedral.h Action_DihedralRMS.h Action_Dipole.h Action_DistRmsd.h Action_Distance.h Action_Energy.h Action_Esander.h Action_FilterByData.h Action_FixAtomOrder.h Action_FixImagedBonds.h Action_GIST.h Action_Grid.h Action_GridFreeEnergy.h Action_HydrogenBond.h Action_Image.h Action_InfraredSpectrum.h Action_Jcoupling.h Action_LESsplit.h Action_LIE.h Action_LipidOrder.h Action_MakeStructure.h Action_Mask.h Action_Matrix.h Action_MinImage.h Action_Molsurf.h Action_MultiDihedral.h Action_MultiVector.h Action_NAstruct.h Action_NMRrst.h Action_NativeContacts.h Action_OrderParameter.h Action_Outtraj.h Action_PairDist.h Action_Pairwise.h Action_Principal.h Action_Projection.h Action_Pucker.h Action_Radgyr.h Action_Radial.h Action_RandomizeIons.h Action_Remap.h Action_ReplicateCell.h Action_Rmsd.h Action_Rotate.h Action_RunningAvg.h Action_STFC_Diffusion.h Action_Scale.h Action_SetVelocity.h Action_Spam.h Action_Strip.h Action_Surf.h Action_SymmetricRmsd.h Action_Temperature.h Action_Time.h Action_Translate.h Action_Unstrip.h Action_Unwrap.h Action_Vector.h Action_VelocityAutoCorr.h Action_Volmap.h Action_Volume.h Action_Watershell.h Action_XtalSymm.h Analysis.h AnalysisList.h AnalysisState.h Analysis_AmdBias.h Analysis_AutoCorr.h Analysis_Average.h Analysis_Clustering.h Analysis_ConstantPHStats.h Analysis_Corr.h Analysis_CrankShaft.h Analysis_CrdFluct.h Analysis_CrossCorr.h Analysis_CurveFit.h Analysis_Divergence.h Analysis_FFT.h Analysis_HausdorffDistance.h Analysis_Hist.h Analysis_IRED.h Analysis_Integrate.h Analysis_KDE.h Analysis_Lifetime.h Analysis_LowestCurve.h Analysis_Matrix.h Analysis_MeltCurve.h Analysis_Modes.h Analysis_MultiHist.h Analysis_Multicurve.h Analysis_Overlap.h Analysis_PhiPsi.h Analysis_Regression.h Analysis_RemLog.h Analysis_Rms2d.h Analysis_RmsAvgCorr.h Analysis_Rotdif.h Analysis_RunningAvg.h Analysis_Slope.h Analysis_Spline.h Analysis_State.h Analysis_Statistics.h Analysis_TI.h Analysis_Timecorr.h Analysis_VectorMath.h Analysis_Wavelet.h ArgList.h Array1D.h ArrayIterator.h AssociatedData.h Atom.h AtomExtra.h AtomMap.h AtomMask.h AtomType.h AxisType.h BaseIOtype.h Box.h BufferedLine.h CharMask.h ClusterDist.h ClusterList.h ClusterMap.h ClusterNode.h ClusterSieve.h Cmd.h CmdInput.h CmdList.h Command.h ComplexArray.h Constants.h Constraints.h ControlBlock.h ControlBlock_For.h CoordinateInfo.h Corr.h Cph.h CpptrajFile.h CpptrajState.h CpptrajStdio.h DataFile.h DataFileList.h DataIO.h DataSet.h DataSetList.h DataSet_1D.h DataSet_2D.h DataSet_3D.h DataSet_Cmatrix.h DataSet_Coords.h DataSet_Coords_CRD.h DataSet_Coords_REF.h DataSet_GridFlt.h DataSet_Mat3x3.h DataSet_MatrixDbl.h DataSet_MatrixFlt.h DataSet_Mesh.h DataSet_Modes.h DataSet_RemLog.h DataSet_Vector.h DataSet_double.h DataSet_float.h DataSet_integer.h DataSet_integer_mem.h DataSet_pH.h DataSet_string.h Deprecated.h DihedralSearch.h Dimension.h DispatchObject.h DistRoutines.h Energy.h Energy_Sander.h EnsembleIn.h EnsembleOutList.h Exec.h Exec_Analyze.h Exec_Calc.h Exec_CatCrd.h Exec_Change.h Exec_ClusterMap.h Exec_CombineCoords.h Exec_Commands.h Exec_CompareTop.h Exec_CrdAction.h Exec_CrdOut.h Exec_CreateSet.h Exec_DataFile.h Exec_DataFilter.h Exec_DataSetCmd.h Exec_GenerateAmberRst.h Exec_Help.h Exec_LoadCrd.h Exec_LoadTraj.h Exec_ParallelAnalysis.h Exec_ParmBox.h Exec_ParmSolvent.h Exec_ParmStrip.h Exec_ParmWrite.h Exec_PermuteDihedrals.h Exec_Precision.h Exec_PrintData.h Exec_ReadData.h Exec_ReadEnsembleData.h Exec_ReadInput.h Exec_RotateDihedral.h Exec_RunAnalysis.h Exec_ScaleDihedralK.h Exec_SequenceAlign.h Exec_Set.h Exec_Show.h Exec_SortEnsembleData.h Exec_SplitCoords.h Exec_System.h Exec_Top.h Exec_Traj.h Exec_UpdateParameters.h Exec_ViewRst.h FileIO.h FileName.h FileTypes.h Frame.h FramePtrArray.h Grid.h GridAction.h GridBin.h HistBin.h Hungarian.h ImageTypes.h ImagedAction.h InputTrajCommon.h MapAtom.h MaskArray.h MaskToken.h Matrix.h Matrix_3x3.h MetaData.h Molecule.h NameType.h NetcdfFile.h OnlineVarT.h OutputTrajCommon.h PDBfile.h PairList.h Parallel.h ParameterHolders.h ParameterSet.h ParameterTypes.h PubFFT.h RPNcalc.h Random.h Range.h ReferenceAction.h ReferenceFrame.h RemdReservoirNC.h ReplicaDimArray.h ReplicaInfo.h Residue.h Spline.h StructureCheck.h SymbolExporting.h SymmetricRmsdCalc.h TextFormat.h Timer.h Topology.h TrajFrameCounter.h TrajectoryFile.h Trajin.h TrajinList.h TrajoutList.h Trajout_Single.h TypeNameHolder.h Vec3.h molsurf.h +Command.o : Command.cpp Action.h ActionFrameCounter.h ActionList.h ActionState.h Action_Align.h Action_Angle.h Action_AreaPerMol.h Action_AtomMap.h Action_AtomicCorr.h Action_AtomicFluct.h Action_AutoImage.h Action_Average.h Action_Bounds.h Action_Box.h Action_Center.h Action_Channel.h Action_CheckChirality.h Action_CheckStructure.h Action_Closest.h Action_ClusterDihedral.h Action_Contacts.h Action_CreateCrd.h Action_CreateReservoir.h Action_DNAionTracker.h Action_DSSP.h Action_Density.h Action_Diffusion.h Action_Dihedral.h Action_DihedralRMS.h Action_Dipole.h Action_DistRmsd.h Action_Distance.h Action_Energy.h Action_Esander.h Action_FilterByData.h Action_FixAtomOrder.h Action_FixImagedBonds.h Action_GIST.h Action_Grid.h Action_GridFreeEnergy.h Action_HydrogenBond.h Action_Image.h Action_InfraredSpectrum.h Action_Jcoupling.h Action_LESsplit.h Action_LIE.h Action_LipidOrder.h Action_MakeStructure.h Action_Mask.h Action_Matrix.h Action_MinImage.h Action_Molsurf.h Action_MultiDihedral.h Action_MultiVector.h Action_NAstruct.h Action_NMRrst.h Action_NativeContacts.h Action_OrderParameter.h Action_Outtraj.h Action_PairDist.h Action_Pairwise.h Action_Principal.h Action_Projection.h Action_Pucker.h Action_Radgyr.h Action_Radial.h Action_RandomizeIons.h Action_Remap.h Action_ReplicateCell.h Action_Rmsd.h Action_Rotate.h Action_RunningAvg.h Action_STFC_Diffusion.h Action_Scale.h Action_SetVelocity.h Action_Spam.h Action_Strip.h Action_Surf.h Action_SymmetricRmsd.h Action_Temperature.h Action_Time.h Action_Translate.h Action_Unstrip.h Action_Unwrap.h Action_Vector.h Action_VelocityAutoCorr.h Action_Volmap.h Action_Volume.h Action_Watershell.h Action_XtalSymm.h Analysis.h AnalysisList.h AnalysisState.h Analysis_AmdBias.h Analysis_AutoCorr.h Analysis_Average.h Analysis_Clustering.h Analysis_ConstantPHStats.h Analysis_Corr.h Analysis_CrankShaft.h Analysis_CrdFluct.h Analysis_CrossCorr.h Analysis_CurveFit.h Analysis_Divergence.h Analysis_FFT.h Analysis_HausdorffDistance.h Analysis_Hist.h Analysis_IRED.h Analysis_Integrate.h Analysis_KDE.h Analysis_Lifetime.h Analysis_LowestCurve.h Analysis_Matrix.h Analysis_MeltCurve.h Analysis_Modes.h Analysis_MultiHist.h Analysis_Multicurve.h Analysis_Overlap.h Analysis_PhiPsi.h Analysis_Regression.h Analysis_RemLog.h Analysis_Rms2d.h Analysis_RmsAvgCorr.h Analysis_Rotdif.h Analysis_RunningAvg.h Analysis_Slope.h Analysis_Spline.h Analysis_State.h Analysis_Statistics.h Analysis_TI.h Analysis_Timecorr.h Analysis_VectorMath.h Analysis_Wavelet.h ArgList.h Array1D.h ArrayIterator.h AssociatedData.h Atom.h AtomExtra.h AtomMap.h AtomMask.h AtomType.h AxisType.h BaseIOtype.h Box.h BufferedLine.h CharMask.h ClusterDist.h ClusterList.h ClusterMap.h ClusterNode.h ClusterSieve.h Cmd.h CmdInput.h CmdList.h Command.h ComplexArray.h Constants.h Constraints.h ControlBlock.h ControlBlock_For.h CoordinateInfo.h Corr.h Cph.h CpptrajFile.h CpptrajState.h CpptrajStdio.h DataFile.h DataFileList.h DataIO.h DataSet.h DataSetList.h DataSet_1D.h DataSet_2D.h DataSet_3D.h DataSet_Cmatrix.h DataSet_Coords.h DataSet_Coords_CRD.h DataSet_Coords_REF.h DataSet_GridFlt.h DataSet_Mat3x3.h DataSet_MatrixDbl.h DataSet_MatrixFlt.h DataSet_Mesh.h DataSet_Modes.h DataSet_RemLog.h DataSet_Vector.h DataSet_Vector_XYZ.h DataSet_double.h DataSet_float.h DataSet_integer.h DataSet_integer_mem.h DataSet_pH.h DataSet_string.h Deprecated.h DihedralSearch.h Dimension.h DispatchObject.h DistRoutines.h Energy.h Energy_Sander.h EnsembleIn.h EnsembleOutList.h Exec.h Exec_Analyze.h Exec_Calc.h Exec_CatCrd.h Exec_Change.h Exec_ClusterMap.h Exec_CombineCoords.h Exec_Commands.h Exec_CompareTop.h Exec_CrdAction.h Exec_CrdOut.h Exec_CreateSet.h Exec_DataFile.h Exec_DataFilter.h Exec_DataSetCmd.h Exec_GenerateAmberRst.h Exec_Help.h Exec_LoadCrd.h Exec_LoadTraj.h Exec_ParallelAnalysis.h Exec_ParmBox.h Exec_ParmSolvent.h Exec_ParmStrip.h Exec_ParmWrite.h Exec_PermuteDihedrals.h Exec_Precision.h Exec_PrintData.h Exec_ReadData.h Exec_ReadEnsembleData.h Exec_ReadInput.h Exec_RotateDihedral.h Exec_RunAnalysis.h Exec_ScaleDihedralK.h Exec_SequenceAlign.h Exec_Set.h Exec_Show.h Exec_SortEnsembleData.h Exec_SplitCoords.h Exec_System.h Exec_Top.h Exec_Traj.h Exec_UpdateParameters.h Exec_ViewRst.h FileIO.h FileName.h FileTypes.h Frame.h FramePtrArray.h Grid.h GridAction.h GridBin.h HistBin.h Hungarian.h ImageTypes.h ImagedAction.h InputTrajCommon.h MapAtom.h MaskArray.h MaskToken.h Matrix.h Matrix_3x3.h MetaData.h Molecule.h NameType.h NetcdfFile.h OnlineVarT.h OutputTrajCommon.h PDBfile.h PairList.h Parallel.h ParameterHolders.h ParameterSet.h ParameterTypes.h PubFFT.h RPNcalc.h Random.h Range.h ReferenceAction.h ReferenceFrame.h RemdReservoirNC.h ReplicaDimArray.h ReplicaInfo.h Residue.h Spline.h StructureCheck.h SymbolExporting.h SymmetricRmsdCalc.h TextFormat.h Timer.h Topology.h TrajFrameCounter.h TrajectoryFile.h Trajin.h TrajinList.h TrajoutList.h Trajout_Single.h TypeNameHolder.h Vec3.h molsurf.h ComplexArray.o : ComplexArray.cpp ArrayIterator.h ComplexArray.h Constraints.o : Constraints.cpp ArgList.h Atom.h AtomExtra.h AtomMask.h AtomType.h Box.h CharMask.h Constants.h Constraints.h CoordinateInfo.h CpptrajStdio.h FileName.h Frame.h MaskToken.h Matrix_3x3.h Molecule.h NameType.h Parallel.h ParameterHolders.h ParameterSet.h ParameterTypes.h Range.h ReplicaDimArray.h Residue.h SymbolExporting.h Topology.h TypeNameHolder.h Vec3.h ControlBlock_For.o : ControlBlock_For.cpp Action.h ActionList.h ActionState.h Analysis.h AnalysisList.h AnalysisState.h ArgList.h AssociatedData.h Atom.h AtomExtra.h AtomMask.h AtomType.h BaseIOtype.h Box.h Constants.h ControlBlock.h ControlBlock_For.h CoordinateInfo.h CpptrajFile.h CpptrajState.h CpptrajStdio.h DataFile.h DataFileList.h DataIO.h DataSet.h DataSetList.h DataSet_Coords.h DataSet_Coords_REF.h Dimension.h DispatchObject.h EnsembleIn.h EnsembleOutList.h FileIO.h FileName.h FileTypes.h ForLoop.h ForLoop_dataSetBlocks.h ForLoop_integer.h ForLoop_list.h ForLoop_mask.h Frame.h FramePtrArray.h InputTrajCommon.h MaskToken.h Matrix_3x3.h MetaData.h Molecule.h NameType.h Parallel.h ParameterHolders.h ParameterSet.h ParameterTypes.h Range.h ReferenceFrame.h ReplicaDimArray.h ReplicaInfo.h Residue.h SymbolExporting.h TextFormat.h Timer.h Topology.h TrajFrameCounter.h Trajin.h TrajinList.h TrajoutList.h TypeNameHolder.h Vec3.h From 4406947ce2d03a589ca226dd92379e1ab86cc278 Mon Sep 17 00:00:00 2001 From: "Daniel R. Roe" Date: Fri, 3 Jan 2020 19:18:33 -0500 Subject: [PATCH 080/162] DRR - Finish fixing up vector action --- src/Action_Vector.cpp | 28 +++++++++++++++++++++------- 1 file changed, 21 insertions(+), 7 deletions(-) diff --git a/src/Action_Vector.cpp b/src/Action_Vector.cpp index 706f2caf73..058956d82e 100644 --- a/src/Action_Vector.cpp +++ b/src/Action_Vector.cpp @@ -487,13 +487,27 @@ void Action_Vector::Print() { outfile_->Printf("# FORMAT: frame vx vy vz cx cy cz cx+vx cy+vy cz+vz\n" "# FORMAT where v? is vector, c? is center of mass...\n"); int totalFrames = Vec_->Size(); - for (int i=0; i < totalFrames; ++i) { - Vec3 const& vxyz = (*Vec_)[i]; - Vec3 const& cxyz = Vec_->OXYZ(i); - Vec3 txyz = cxyz + vxyz; - outfile_->Printf("%i %8.4f %8.4f %8.4f %8.4f %8.4f %8.4f %8.4f %8.4f %8.4f\n", - i+1, vxyz[0], vxyz[1], vxyz[2], cxyz[0], cxyz[1], cxyz[2], - txyz[0], txyz[1], txyz[2]); + if (Vec_->Type() == DataSet::VEC_OXYZ) { + DataSet_Vector_OXYZ const& vec = + static_cast( *Vec_ ); + for (int i=0; i < totalFrames; ++i) { + Vec3 const& vxyz = vec[i]; + Vec3 const& cxyz = vec.OXYZ(i); + Vec3 txyz = cxyz + vxyz; + outfile_->Printf("%i %8.4f %8.4f %8.4f %8.4f %8.4f %8.4f %8.4f %8.4f %8.4f\n", + i+1, vxyz[0], vxyz[1], vxyz[2], cxyz[0], cxyz[1], cxyz[2], + txyz[0], txyz[1], txyz[2]); + } + } else { + // No origin + for (int i=0; i < totalFrames; ++i) { + Vec3 const& vxyz = (*Vec_)[i]; + const Vec3 cxyz(0.0); + Vec3 txyz = cxyz + vxyz; + outfile_->Printf("%i %8.4f %8.4f %8.4f %8.4f %8.4f %8.4f %8.4f %8.4f %8.4f\n", + i+1, vxyz[0], vxyz[1], vxyz[2], cxyz[0], cxyz[1], cxyz[2], + txyz[0], txyz[1], txyz[2]); + } } } } From ca899886ccb3673ab7f3678fe2ccf50d5193fdb4 Mon Sep 17 00:00:00 2001 From: "Daniel R. Roe" Date: Fri, 3 Jan 2020 23:10:52 -0500 Subject: [PATCH 081/162] DRR - More VECTOR_1D changes --- src/Analysis_AutoCorr.cpp | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/Analysis_AutoCorr.cpp b/src/Analysis_AutoCorr.cpp index 5ea5fff5ce..59cb3484a2 100644 --- a/src/Analysis_AutoCorr.cpp +++ b/src/Analysis_AutoCorr.cpp @@ -30,7 +30,7 @@ Analysis::RetType Analysis_AutoCorr::Setup(ArgList& analyzeArgs, AnalysisSetup& for (ArgList::const_iterator dsa = dsetArgs.begin(); dsa != dsetArgs.end(); ++dsa) { DataSetList setsIn = setup.DSL().GetMultipleSets( *dsa ); for (DataSetList::const_iterator ds = setsIn.begin(); ds != setsIn.end(); ++ds) { - if ( (*ds)->Group() != DataSet::SCALAR_1D && (*ds)->Type() != DataSet::VECTOR ) + if ( (*ds)->Group() != DataSet::SCALAR_1D && (*ds)->Group() != DataSet::VECTOR_1D ) mprintf("Warning: Set '%s' type not supported in AUTOCORR - skipping.\n", (*ds)->legend()); else @@ -83,7 +83,7 @@ Analysis::RetType Analysis_AutoCorr::Analyze() { for (unsigned int ids = 0; ids != dsets_.size(); ids++) { mprintf("\t\tCalculating AutoCorrelation for set %s\n", dsets_[ids]->legend()); DataSet_1D& Ct = static_cast( *outputData_[ids] ); - if (dsets_[ids]->Type() == DataSet::VECTOR) { + if (dsets_[ids]->Group() == DataSet::VECTOR_1D) { DataSet_Vector const& set = static_cast( *dsets_[ids] ); set.CalcVectorCorr( set, Ct, lagmax_ ); } else { From 6ec12e476cc4d33a903a925e0243d855e3a31a6f Mon Sep 17 00:00:00 2001 From: "Daniel R. Roe" Date: Sun, 5 Jan 2020 14:57:59 -0500 Subject: [PATCH 082/162] DRR - More updates for new vector types --- src/Analysis_Corr.cpp | 6 +++--- src/Analysis_IRED.cpp | 4 +++- src/Analysis_IRED.h | 4 ++-- src/Analysis_Rotdif.cpp | 38 +++++++++++++++++++------------------ src/Analysis_Rotdif.h | 12 ++++++------ src/Analysis_Timecorr.cpp | 5 +++-- src/Analysis_Timecorr.h | 2 +- src/Analysis_VectorMath.cpp | 16 ++++++++-------- src/cpptrajdepend | 4 ++-- 9 files changed, 48 insertions(+), 43 deletions(-) diff --git a/src/Analysis_Corr.cpp b/src/Analysis_Corr.cpp index 7099cb4f0a..e8e1fd6050 100644 --- a/src/Analysis_Corr.cpp +++ b/src/Analysis_Corr.cpp @@ -59,7 +59,7 @@ Analysis::RetType Analysis_Corr::Setup(ArgList& analyzeArgs, AnalysisSetup& setu mprinterr("Error: Corr: Could not get dataset named %s\n",D2name.c_str()); return Analysis::ERR; } - if (D1_->Type() == DataSet::VECTOR && D2_->Type() != DataSet::VECTOR) + if (D1_->Group() == DataSet::VECTOR_1D && D2_->Group() != DataSet::VECTOR_1D) { mprinterr("Error: Vector cross correlation requires 2 vector data sets.\n"); return Analysis::ERR; @@ -76,7 +76,7 @@ Analysis::RetType Analysis_Corr::Setup(ArgList& analyzeArgs, AnalysisSetup& setu } outfile->AddDataSet( Ct_ ); Coeff_ = 0; - if (D1_->Type() != DataSet::VECTOR) { + if (D1_->Group() != DataSet::VECTOR_1D) { Coeff_ = setup.DSL().AddSet( DataSet::DOUBLE, MetaData(Ct_->Meta().Name(), "coeff") ); if (Coeff_ == 0) return Analysis::ERR; Coeff_->Allocate( DataSet::SizeArray(1, 1) ); @@ -121,7 +121,7 @@ Analysis::RetType Analysis_Corr::Analyze() { mprintf(" CORR: %zu elements, max lag %i\n",Nelements,lagmax_); Analysis::RetType err = Analysis::OK; - if (D1_->Type() == DataSet::VECTOR) { + if (D1_->Group() == DataSet::VECTOR_1D) { DataSet_Vector const& set1 = static_cast( *D1_ ); DataSet_Vector const& set2 = static_cast( *D2_ ); set1.CalcVectorCorr(set2, *((DataSet_1D*)Ct_), lagmax_); diff --git a/src/Analysis_IRED.cpp b/src/Analysis_IRED.cpp index 53b556daeb..ae0b4a523f 100644 --- a/src/Analysis_IRED.cpp +++ b/src/Analysis_IRED.cpp @@ -4,6 +4,8 @@ #include "Corr.h" #include "DataSet_double.h" // Access to Resize and [] op #include "DataSet_MatrixDbl.h" // Access to AddElement +#include "DataSet_Vector.h" +#include "DataSet_Modes.h" #ifdef TIMER # include "Timer.h" #endif @@ -45,7 +47,7 @@ Analysis::RetType Analysis_IRED::Setup(ArgList& analyzeArgs, AnalysisSetup& setu debug_ = debugIn; // Count and store the number of previously defined IRED vectors. for ( DataSetList::const_iterator DS = setup.DSL().begin(); DS != setup.DSL().end(); ++DS) { - if ( (*DS)->Type() == DataSet::VECTOR && (*DS)->Meta().ScalarType() == MetaData::IREDVEC) + if ( (*DS)->Group() == DataSet::VECTOR_1D && (*DS)->Meta().ScalarType() == MetaData::IREDVEC) IredVectors_.push_back( (DataSet_Vector*)*DS ); } if (IredVectors_.empty()) { diff --git a/src/Analysis_IRED.h b/src/Analysis_IRED.h index 86e197b718..293193b5c2 100644 --- a/src/Analysis_IRED.h +++ b/src/Analysis_IRED.h @@ -1,8 +1,8 @@ #ifndef INC_ANALYSIS_IRED_H #define INC_ANALYSIS_IRED_H #include "Analysis.h" -#include "DataSet_Vector.h" -#include "DataSet_Modes.h" +class DataSet_Vector; +class DataSet_Modes; /** \author Original Code by Alrun N. Koller & H. Gohlke * \author Adapted by DRR */ diff --git a/src/Analysis_Rotdif.cpp b/src/Analysis_Rotdif.cpp index 1513fb4baa..08d56534a3 100644 --- a/src/Analysis_Rotdif.cpp +++ b/src/Analysis_Rotdif.cpp @@ -11,6 +11,7 @@ #include "Corr.h" #include "CurveFit.h" #include "SimplexMin.h" +#include "DataSet_Mat3x3.h" #ifndef NO_MATHLIB // Definition of Fortran subroutines called from this class @@ -356,9 +357,10 @@ static void Diagonalize(Matrix_3x3& Mat, Vec3& Vec) { */ // NOTE: Theta could also be generated in the same way as phi. Currently done // to be consistent with the original implementation in randvec.F90 -DataSet_Vector Analysis_Rotdif::RandomVectors() { - DataSet_Vector XYZ; - XYZ.ReserveVecs( nvecs_ ); +// NOTE: This function cannot be const since the RNG is modified when called. +DataSet_Vector_XYZ Analysis_Rotdif::RandomVectors() { + DataSet_Vector_XYZ XYZ; + XYZ.Allocate( DataSet::SizeArray(1, nvecs_) ); // ----- Read nvecs vectors from a file if (!randvecIn_.empty()) { CpptrajFile vecIn; @@ -397,7 +399,7 @@ DataSet_Vector Analysis_Rotdif::RandomVectors() { mprinterr("Error: Could not set up %s for writing vectors.\n",randvecOut_.c_str()); } else { int idx = 1; - for (DataSet_Vector::const_iterator vec = XYZ.begin(); vec != XYZ.end(); ++vec) + for (DataSet_Vector_XYZ::const_iterator vec = XYZ.begin(); vec != XYZ.end(); ++vec) rvout.Printf("%6i %15.8f %15.8f %15.8f\n", idx++, (*vec)[0], (*vec)[1], (*vec)[2]); rvout.CloseFile(); @@ -518,8 +520,8 @@ int AsymmetricFxn_L2(DataSet* Xvals, SimplexMin::Darray const& Qin, SimplexMin:: // Loop over all random vectors int nvec = 0; // index into Yvals, sumc2 - DataSet_Vector const& random_vectors = static_cast( *Xvals ); - for (DataSet_Vector::const_iterator randvec = random_vectors.begin(); + DataSet_Vector_XYZ const& random_vectors = static_cast( *Xvals ); + for (DataSet_Vector_XYZ::const_iterator randvec = random_vectors.begin(); randvec != random_vectors.end(); ++randvec, ++nvec) { @@ -644,8 +646,8 @@ int AsymmetricFxn_L1(DataSet* Xvals, SimplexMin::Darray const& Qin, SimplexMin:: // Loop over all random vectors int nvec = 0; // index into Yvals - DataSet_Vector const& random_vectors = static_cast( *Xvals ); - for (DataSet_Vector::const_iterator randvec = random_vectors.begin(); + DataSet_Vector_XYZ const& random_vectors = static_cast( *Xvals ); + for (DataSet_Vector_XYZ::const_iterator randvec = random_vectors.begin(); randvec != random_vectors.end(); ++randvec, ++nvec) { @@ -722,7 +724,7 @@ int Analysis_Rotdif::Tensor_Fit(SimplexMin::Darray& vector_q) { int A5 = m_rows * 5; double* At = matrix_At; int nvec = 0; - for (DataSet_Vector::const_iterator randvec = random_vectors_.begin(); + for (DataSet_Vector_XYZ::const_iterator randvec = random_vectors_.begin(); randvec != random_vectors_.end(); ++randvec) { // Transpose of matrix A @@ -992,7 +994,7 @@ int Analysis_Rotdif::Tensor_Fit(SimplexMin::Darray& vector_q) { // ============================================================================= // Analysis_Rotdif::fft_compute_corr() -int Analysis_Rotdif::fft_compute_corr(DataSet_Vector const& rotated_vectors, int nsteps, +int Analysis_Rotdif::fft_compute_corr(DataSet_Vector_XYZ const& rotated_vectors, int nsteps, std::vector& pY) { int n_of_vecs = rotated_vectors.Size(); @@ -1016,7 +1018,7 @@ int Analysis_Rotdif::fft_compute_corr(DataSet_Vector const& rotated_vectors, int } // Normalize correlation fn // 4/3*PI and 4/5*PI due to spherical harmonics addition theorem - double norm = DataSet_Vector::SphericalHarmonicsNorm( olegendre_ ); + double norm = DataSet_Vector_XYZ::SphericalHarmonicsNorm( olegendre_ ); for (int i = 0; i < nsteps; ++i) pY[i] *= (norm / (n_of_vecs - i)); @@ -1246,15 +1248,15 @@ int Analysis_Rotdif::DetermineDeffsAlt() { // Reserve space for holding effective D values D_eff_.reserve( random_vectors_.Size() ); // Hold vectors after rotation with Rmatrices - DataSet_Vector rotated_vectors; - rotated_vectors.ReserveVecs( vLength ); + DataSet_Vector_XYZ rotated_vectors; + rotated_vectors.Allocate( DataSet::SizeArray(1, vLength) ); // Hold single vector autocorrelation CurveFit::Darray Ct; Ct.reserve( ctMax ); // Hold averaged vector autocorrelations CurveFit::Darray CtTotal( ctMax, 0.0 ); // LOOP OVER RANDOM VECTORS - for (DataSet_Vector::const_iterator rndvec = random_vectors_.begin(); + for (DataSet_Vector_XYZ::const_iterator rndvec = random_vectors_.begin(); rndvec != random_vectors_.end(); ++rndvec) { // Reset rotated_vectors to the beginning and clear spherical harmonics @@ -1423,7 +1425,7 @@ int Analysis_Rotdif::DetermineDeffsAlt() { * \param pY Will be set with values for correlation function, l=olegendre_ */ // TODO: Make rotated_vectors const& -int Analysis_Rotdif::direct_compute_corr(DataSet_Vector const& rotated_vectors, int maxdat, +int Analysis_Rotdif::direct_compute_corr(DataSet_Vector_XYZ const& rotated_vectors, int maxdat, std::vector& pY) { // Initialize output array @@ -1525,7 +1527,7 @@ double Analysis_Rotdif::calcEffectiveDiffusionConst(double f ) { // TODO: OpenMP Parallelize int Analysis_Rotdif::DetermineDeffs() { int itotframes; // Total number of frames (rotation matrices) - DataSet_Vector rotated_vectors; // Hold vectors after rotation with Rmatrices + DataSet_Vector_XYZ rotated_vectors; // Hold vectors after rotation with Rmatrices int maxdat; // Length of C(t) std::vector pX; // Hold X values of C(t) std::vector pY; // Hold Y values of C(t) for p(olegendre_) @@ -1541,7 +1543,7 @@ int Analysis_Rotdif::DetermineDeffs() { D_eff_.reserve( nvecs_ ); // Allocate memory to hold rotated vectors. Need +1 since the original // vector is stored at position 0. - rotated_vectors.ReserveVecs( itotframes + 1 ); + rotated_vectors.Allocate( DataSet::SizeArray(1, itotframes + 1) ); // Allocate memory for C(t) pY.reserve( maxdat ); pX.reserve( maxdat ); @@ -1557,7 +1559,7 @@ int Analysis_Rotdif::DetermineDeffs() { DataSet_Mesh spline( meshSize, ti_, tf_ ); // LOOP OVER RANDOM VECTORS int nvec = 0; - for (DataSet_Vector::const_iterator rndvec = random_vectors_.begin(); + for (DataSet_Vector_XYZ::const_iterator rndvec = random_vectors_.begin(); rndvec != random_vectors_.end(); ++rndvec, ++nvec) { diff --git a/src/Analysis_Rotdif.h b/src/Analysis_Rotdif.h index a2397dc190..57855ea37f 100644 --- a/src/Analysis_Rotdif.h +++ b/src/Analysis_Rotdif.h @@ -2,8 +2,8 @@ #define INC_ANALYSIS_ROTDIF_H #include "Analysis.h" #include "Random.h" -#include "DataSet_Vector.h" -#include "DataSet_Mat3x3.h" +#include "DataSet_Vector_XYZ.h" +class DataSet_Mat3x3; /// Estimate rotational diffusion tensors from MD simulations /** To estimate rotational diffusion tensors from MD simulations along the * lines described by Wong & Case, (Evaluating rotational diffusion from @@ -63,13 +63,13 @@ class Analysis_Rotdif: public Analysis { Random_Number RNgen_; DataSet_Mat3x3* Rmatrices_; ///< Store rotation matrices - DataSet_Vector random_vectors_; ///< Hold nvecs random vectors + DataSet_Vector_XYZ random_vectors_; ///< Hold nvecs random vectors std::vector D_eff_; ///< Hold calculated effective D values for each vector // std::vector sumc2_; - DataSet_Vector RandomVectors(); - int direct_compute_corr(DataSet_Vector const&, int, std::vector&); - int fft_compute_corr(DataSet_Vector const&, int, std::vector&); + DataSet_Vector_XYZ RandomVectors(); + int direct_compute_corr(DataSet_Vector_XYZ const&, int, std::vector&); + int fft_compute_corr(DataSet_Vector_XYZ const&, int, std::vector&); double calcEffectiveDiffusionConst(double ); static void PrintMatrix(CpptrajFile&, const char*, Matrix_3x3 const&); diff --git a/src/Analysis_Timecorr.cpp b/src/Analysis_Timecorr.cpp index 5d380d266d..d580e07a7b 100644 --- a/src/Analysis_Timecorr.cpp +++ b/src/Analysis_Timecorr.cpp @@ -2,6 +2,7 @@ #include "Analysis_Timecorr.h" #include "CpptrajStdio.h" #include "DataSet_double.h" +#include "DataSet_Vector.h" /// Strings corresponding to modes, used in output. const char* Analysis_Timecorr::ModeString[] = { @@ -97,7 +98,7 @@ Analysis::RetType Analysis_Timecorr::Setup(ArgList& analyzeArgs, AnalysisSetup& mprinterr("Error: no vec1 given, ignoring command\n"); return Analysis::ERR; } - vinfo1_ = (DataSet_Vector*)setup.DSL().FindSetOfType( vec1name, DataSet::VECTOR ); + vinfo1_ = (DataSet_Vector*)setup.DSL().FindSetOfGroup( vec1name, DataSet::VECTOR_1D ); if (vinfo1_==0) { mprinterr("Error: vec1: no vector with name %s found.\n", vec1name.c_str()); @@ -105,7 +106,7 @@ Analysis::RetType Analysis_Timecorr::Setup(ArgList& analyzeArgs, AnalysisSetup& } std::string vec2name = analyzeArgs.GetStringKey("vec2"); if (!vec2name.empty()) { - vinfo2_ = (DataSet_Vector*)setup.DSL().FindSetOfType( vec2name, DataSet::VECTOR ); + vinfo2_ = (DataSet_Vector*)setup.DSL().FindSetOfGroup( vec2name, DataSet::VECTOR_1D ); if (vinfo2_==0) { mprinterr("Error: vec2: no vector with name %s found.\n", vec2name.c_str()); diff --git a/src/Analysis_Timecorr.h b/src/Analysis_Timecorr.h index 4440ace1e2..6775ba4b41 100644 --- a/src/Analysis_Timecorr.h +++ b/src/Analysis_Timecorr.h @@ -1,8 +1,8 @@ #ifndef INC_ANALYSIS_TIMECORR_H #define INC_ANALYSIS_TIMECORR_H #include "Analysis.h" -#include "DataSet_Vector.h" #include "Corr.h" +class DataSet_Vector; /** \author Original Code by Alrun N. Koller & H. Gohlke * \author Adapted by DRR */ diff --git a/src/Analysis_VectorMath.cpp b/src/Analysis_VectorMath.cpp index 3740c235bc..50ba60b89f 100644 --- a/src/Analysis_VectorMath.cpp +++ b/src/Analysis_VectorMath.cpp @@ -2,7 +2,7 @@ #include "Analysis_VectorMath.h" #include "CpptrajStdio.h" #include "Constants.h" -#include "DataSet_Vector.h" +#include "DataSet_Vector_XYZ.h" #include "DataSet_double.h" /// Strings corresponding to modes, used in output. @@ -27,14 +27,14 @@ void Analysis_VectorMath::Help() const { Analysis::RetType Analysis_VectorMath::Setup(ArgList& analyzeArgs, AnalysisSetup& setup, int debugIn) { // Get Vectors - DataSetList vsets1 = setup.DSL().GetSetsOfType( analyzeArgs.GetStringKey("vec1"), - DataSet::VECTOR ); + DataSetList vsets1 = setup.DSL().SelectGroupSets( analyzeArgs.GetStringKey("vec1"), + DataSet::VECTOR_1D ); if (vsets1.empty()) { mprinterr("Error: 'vec1' not found.\n"); return Analysis::ERR; } - DataSetList vsets2 = setup.DSL().GetSetsOfType( analyzeArgs.GetStringKey("vec2"), - DataSet::VECTOR ); + DataSetList vsets2 = setup.DSL().SelectGroupSets( analyzeArgs.GetStringKey("vec2"), + DataSet::VECTOR_1D ); if (vsets2.empty()) { mprinterr("Error: 'vec2' not found.\n"); return Analysis::ERR; @@ -65,7 +65,7 @@ Analysis::RetType Analysis_VectorMath::Setup(ArgList& analyzeArgs, AnalysisSetup dname = "Angle"; } else if (analyzeArgs.hasKey("crossproduct")) { mode_ = CROSSPRODUCT; - dtype = DataSet::VECTOR; + dtype = DataSet::VEC_XYZ; dname = "Cross"; } // Set up output file in DataFileList if necessary @@ -130,8 +130,8 @@ int Analysis_VectorMath::CrossProduct(DataSet* Dout, DataSet_Vector& V1, DataSet unsigned int vmax, unsigned int v1inc, unsigned int v2inc) const { - DataSet_Vector& Out = static_cast( *Dout ); - Out.ReserveVecs( V1.Size() ); + DataSet_Vector_XYZ& Out = static_cast( *Dout ); + Out.Allocate( DataSet::SizeArray(1, V1.Size()) ); unsigned int v1 = 0; unsigned int v2 = 0; for (unsigned int v = 0; v < vmax; ++v, v1 += v1inc, v2 += v2inc) { diff --git a/src/cpptrajdepend b/src/cpptrajdepend index 041e2d48f5..3773cdc2ae 100644 --- a/src/cpptrajdepend +++ b/src/cpptrajdepend @@ -118,7 +118,7 @@ Analysis_Regression.o : Analysis_Regression.cpp ActionState.h Analysis.h Analysi Analysis_RemLog.o : Analysis_RemLog.cpp ActionState.h Analysis.h AnalysisState.h Analysis_Lifetime.h Analysis_RemLog.h ArgList.h Array1D.h AssociatedData.h Atom.h AtomExtra.h AtomMask.h AtomType.h BaseIOtype.h Box.h Constants.h CoordinateInfo.h CpptrajFile.h CpptrajStdio.h DataFile.h DataFileList.h DataIO.h DataSet.h DataSetList.h DataSet_1D.h DataSet_Coords.h DataSet_Coords_REF.h DataSet_Mesh.h DataSet_RemLog.h DataSet_integer.h DataSet_integer_mem.h Dimension.h DispatchObject.h FileIO.h FileName.h FileTypes.h Frame.h MaskToken.h Matrix_3x3.h MetaData.h Molecule.h NameType.h Parallel.h ParameterHolders.h ParameterSet.h ParameterTypes.h ProgressBar.h Range.h ReferenceFrame.h ReplicaDimArray.h Residue.h Spline.h StringRoutines.h SymbolExporting.h TextFormat.h Timer.h Topology.h TypeNameHolder.h Vec3.h Analysis_Rms2d.o : Analysis_Rms2d.cpp ActionState.h Analysis.h AnalysisState.h Analysis_Rms2d.h ArgList.h ArrayIterator.h AssociatedData.h Atom.h AtomExtra.h AtomMap.h AtomMask.h AtomType.h BaseIOtype.h Box.h Constants.h CoordinateInfo.h CpptrajFile.h CpptrajStdio.h DataFile.h DataFileList.h DataIO.h DataSet.h DataSetList.h DataSet_2D.h DataSet_Coords.h DataSet_Coords_REF.h DataSet_Coords_TRJ.h DataSet_MatrixFlt.h Dimension.h DispatchObject.h FileIO.h FileName.h FileTypes.h Frame.h Hungarian.h InputTrajCommon.h MapAtom.h MaskToken.h Matrix.h Matrix_3x3.h MetaData.h Molecule.h NameType.h Parallel.h ParameterHolders.h ParameterSet.h ParameterTypes.h ProgressBar.h Range.h ReferenceFrame.h ReplicaDimArray.h Residue.h SymbolExporting.h SymmetricRmsdCalc.h TextFormat.h Timer.h Topology.h TrajFrameCounter.h TrajFrameIndex.h Trajin.h TypeNameHolder.h Vec3.h Analysis_RmsAvgCorr.o : Analysis_RmsAvgCorr.cpp ActionState.h Analysis.h AnalysisState.h Analysis_RmsAvgCorr.h ArgList.h AssociatedData.h Atom.h AtomExtra.h AtomMask.h AtomType.h BaseIOtype.h Box.h Constants.h CoordinateInfo.h CpptrajFile.h CpptrajStdio.h DataFile.h DataFileList.h DataIO.h DataSet.h DataSetList.h DataSet_Coords.h DataSet_Coords_REF.h Dimension.h DispatchObject.h FileIO.h FileName.h FileTypes.h Frame.h MaskToken.h Matrix_3x3.h MetaData.h Molecule.h NameType.h Parallel.h ParameterHolders.h ParameterSet.h ParameterTypes.h ProgressBar.h Range.h ReferenceFrame.h ReplicaDimArray.h Residue.h SymbolExporting.h TextFormat.h Timer.h Topology.h TypeNameHolder.h Vec3.h -Analysis_Rotdif.o : Analysis_Rotdif.cpp ActionState.h Analysis.h AnalysisState.h Analysis_Rotdif.h ArgList.h ArrayIterator.h AssociatedData.h Atom.h AtomExtra.h AtomMask.h AtomType.h BaseIOtype.h Box.h ComplexArray.h Constants.h CoordinateInfo.h Corr.h CpptrajFile.h CpptrajStdio.h CurveFit.h DataFile.h DataFileList.h DataIO.h DataSet.h DataSetList.h DataSet_1D.h DataSet_Coords.h DataSet_Coords_REF.h DataSet_Mat3x3.h DataSet_Mesh.h DataSet_Vector.h Dimension.h DispatchObject.h FileIO.h FileName.h FileTypes.h Frame.h MaskToken.h Matrix_3x3.h MetaData.h Molecule.h NameType.h Parallel.h ParameterHolders.h ParameterSet.h ParameterTypes.h ProgressBar.h PubFFT.h Random.h Range.h ReferenceFrame.h ReplicaDimArray.h Residue.h SimplexMin.h Spline.h StringRoutines.h SymbolExporting.h TextFormat.h Timer.h Topology.h TypeNameHolder.h Vec3.h +Analysis_Rotdif.o : Analysis_Rotdif.cpp ActionState.h Analysis.h AnalysisState.h Analysis_Rotdif.h ArgList.h ArrayIterator.h AssociatedData.h Atom.h AtomExtra.h AtomMask.h AtomType.h BaseIOtype.h Box.h ComplexArray.h Constants.h CoordinateInfo.h Corr.h CpptrajFile.h CpptrajStdio.h CurveFit.h DataFile.h DataFileList.h DataIO.h DataSet.h DataSetList.h DataSet_1D.h DataSet_Coords.h DataSet_Coords_REF.h DataSet_Mat3x3.h DataSet_Mesh.h DataSet_Vector.h DataSet_Vector_XYZ.h Dimension.h DispatchObject.h FileIO.h FileName.h FileTypes.h Frame.h MaskToken.h Matrix_3x3.h MetaData.h Molecule.h NameType.h Parallel.h ParameterHolders.h ParameterSet.h ParameterTypes.h ProgressBar.h PubFFT.h Random.h Range.h ReferenceFrame.h ReplicaDimArray.h Residue.h SimplexMin.h Spline.h StringRoutines.h SymbolExporting.h TextFormat.h Timer.h Topology.h TypeNameHolder.h Vec3.h Analysis_RunningAvg.o : Analysis_RunningAvg.cpp ActionState.h Analysis.h AnalysisState.h Analysis_RunningAvg.h ArgList.h Array1D.h AssociatedData.h Atom.h AtomExtra.h AtomMask.h AtomType.h BaseIOtype.h Box.h Constants.h CoordinateInfo.h CpptrajFile.h CpptrajStdio.h DataFile.h DataFileList.h DataIO.h DataSet.h DataSetList.h DataSet_1D.h DataSet_Coords.h DataSet_Coords_REF.h DataSet_Mesh.h Dimension.h DispatchObject.h FileIO.h FileName.h FileTypes.h Frame.h MaskToken.h Matrix_3x3.h MetaData.h Molecule.h NameType.h Parallel.h ParameterHolders.h ParameterSet.h ParameterTypes.h Range.h ReferenceFrame.h ReplicaDimArray.h Residue.h Spline.h SymbolExporting.h TextFormat.h Timer.h Topology.h TypeNameHolder.h Vec3.h Analysis_Slope.o : Analysis_Slope.cpp ActionState.h Analysis.h AnalysisState.h Analysis_Slope.h ArgList.h Array1D.h AssociatedData.h Atom.h AtomExtra.h AtomMask.h AtomType.h BaseIOtype.h Box.h Constants.h CoordinateInfo.h CpptrajFile.h CpptrajStdio.h DataFile.h DataFileList.h DataIO.h DataSet.h DataSetList.h DataSet_1D.h DataSet_Coords.h DataSet_Coords_REF.h DataSet_Mesh.h Dimension.h DispatchObject.h FileIO.h FileName.h FileTypes.h Frame.h MaskToken.h Matrix_3x3.h MetaData.h Molecule.h NameType.h Parallel.h ParameterHolders.h ParameterSet.h ParameterTypes.h Range.h ReferenceFrame.h ReplicaDimArray.h Residue.h Spline.h SymbolExporting.h TextFormat.h Timer.h Topology.h TypeNameHolder.h Vec3.h Analysis_Spline.o : Analysis_Spline.cpp ActionState.h Analysis.h AnalysisState.h Analysis_Spline.h ArgList.h Array1D.h AssociatedData.h Atom.h AtomExtra.h AtomMask.h AtomType.h BaseIOtype.h Box.h Constants.h CoordinateInfo.h CpptrajFile.h CpptrajStdio.h DataFile.h DataFileList.h DataIO.h DataSet.h DataSetList.h DataSet_1D.h DataSet_Coords.h DataSet_Coords_REF.h DataSet_Mesh.h Dimension.h DispatchObject.h FileIO.h FileName.h FileTypes.h Frame.h MaskToken.h Matrix_3x3.h MetaData.h Molecule.h NameType.h Parallel.h ParameterHolders.h ParameterSet.h ParameterTypes.h Range.h ReferenceFrame.h ReplicaDimArray.h Residue.h Spline.h SymbolExporting.h TextFormat.h Timer.h Topology.h TypeNameHolder.h Vec3.h @@ -126,7 +126,7 @@ Analysis_State.o : Analysis_State.cpp ActionState.h Analysis.h AnalysisState.h A Analysis_Statistics.o : Analysis_Statistics.cpp ActionState.h Analysis.h AnalysisState.h Analysis_Statistics.h ArgList.h Array1D.h AssociatedData.h Atom.h AtomExtra.h AtomMask.h AtomType.h BaseIOtype.h Box.h Constants.h CoordinateInfo.h CpptrajFile.h CpptrajStdio.h DataFile.h DataFileList.h DataIO.h DataSet.h DataSetList.h DataSet_1D.h DataSet_Coords.h DataSet_Coords_REF.h DataSet_float.h DataSet_integer.h DataSet_string.h Dimension.h DispatchObject.h FileIO.h FileName.h FileTypes.h Frame.h MaskToken.h Matrix_3x3.h MetaData.h Molecule.h NameType.h Parallel.h ParameterHolders.h ParameterSet.h ParameterTypes.h Range.h ReferenceFrame.h ReplicaDimArray.h Residue.h SymbolExporting.h TextFormat.h Timer.h Topology.h TypeNameHolder.h Vec3.h Analysis_TI.o : Analysis_TI.cpp ActionState.h Analysis.h AnalysisState.h Analysis_TI.h ArgList.h Array1D.h AssociatedData.h Atom.h AtomExtra.h AtomMask.h AtomType.h BaseIOtype.h Box.h Constants.h CoordinateInfo.h CpptrajFile.h CpptrajStdio.h DataFile.h DataFileList.h DataIO.h DataSet.h DataSetList.h DataSet_1D.h DataSet_Coords.h DataSet_Coords_REF.h DataSet_Mesh.h Dimension.h DispatchObject.h FileIO.h FileName.h FileTypes.h Frame.h MaskToken.h Matrix_3x3.h MetaData.h Molecule.h NameType.h Parallel.h ParameterHolders.h ParameterSet.h ParameterTypes.h Random.h Range.h ReferenceFrame.h ReplicaDimArray.h Residue.h Spline.h StringRoutines.h SymbolExporting.h TextFormat.h Timer.h Topology.h TypeNameHolder.h Vec3.h Analysis_Timecorr.o : Analysis_Timecorr.cpp ActionState.h Analysis.h AnalysisState.h Analysis_Timecorr.h ArgList.h ArrayIterator.h AssociatedData.h Atom.h AtomExtra.h AtomMask.h AtomType.h BaseIOtype.h Box.h ComplexArray.h Constants.h CoordinateInfo.h Corr.h CpptrajFile.h CpptrajStdio.h DataFile.h DataFileList.h DataIO.h DataSet.h DataSetList.h DataSet_1D.h DataSet_Coords.h DataSet_Coords_REF.h DataSet_Vector.h DataSet_double.h Dimension.h DispatchObject.h FileIO.h FileName.h FileTypes.h Frame.h MaskToken.h Matrix_3x3.h MetaData.h Molecule.h NameType.h Parallel.h ParameterHolders.h ParameterSet.h ParameterTypes.h PubFFT.h Range.h ReferenceFrame.h ReplicaDimArray.h Residue.h SymbolExporting.h TextFormat.h Timer.h Topology.h TypeNameHolder.h Vec3.h -Analysis_VectorMath.o : Analysis_VectorMath.cpp ActionState.h Analysis.h AnalysisState.h Analysis_VectorMath.h ArgList.h ArrayIterator.h AssociatedData.h Atom.h AtomExtra.h AtomMask.h AtomType.h BaseIOtype.h Box.h ComplexArray.h Constants.h CoordinateInfo.h CpptrajFile.h CpptrajStdio.h DataFile.h DataFileList.h DataIO.h DataSet.h DataSetList.h DataSet_1D.h DataSet_Coords.h DataSet_Coords_REF.h DataSet_Vector.h DataSet_double.h Dimension.h DispatchObject.h FileIO.h FileName.h FileTypes.h Frame.h MaskToken.h Matrix_3x3.h MetaData.h Molecule.h NameType.h Parallel.h ParameterHolders.h ParameterSet.h ParameterTypes.h Range.h ReferenceFrame.h ReplicaDimArray.h Residue.h SymbolExporting.h TextFormat.h Timer.h Topology.h TypeNameHolder.h Vec3.h +Analysis_VectorMath.o : Analysis_VectorMath.cpp ActionState.h Analysis.h AnalysisState.h Analysis_VectorMath.h ArgList.h ArrayIterator.h AssociatedData.h Atom.h AtomExtra.h AtomMask.h AtomType.h BaseIOtype.h Box.h ComplexArray.h Constants.h CoordinateInfo.h CpptrajFile.h CpptrajStdio.h DataFile.h DataFileList.h DataIO.h DataSet.h DataSetList.h DataSet_1D.h DataSet_Coords.h DataSet_Coords_REF.h DataSet_Vector.h DataSet_Vector_XYZ.h DataSet_double.h Dimension.h DispatchObject.h FileIO.h FileName.h FileTypes.h Frame.h MaskToken.h Matrix_3x3.h MetaData.h Molecule.h NameType.h Parallel.h ParameterHolders.h ParameterSet.h ParameterTypes.h Range.h ReferenceFrame.h ReplicaDimArray.h Residue.h SymbolExporting.h TextFormat.h Timer.h Topology.h TypeNameHolder.h Vec3.h Analysis_Wavelet.o : Analysis_Wavelet.cpp ActionFrameCounter.h ActionState.h Analysis.h AnalysisState.h Analysis_Wavelet.h ArgList.h ArrayIterator.h AssociatedData.h Atom.h AtomExtra.h AtomMask.h AtomType.h BaseIOtype.h BondSearch.h Box.h ClusterMap.h ComplexArray.h Constants.h CoordinateInfo.h CpptrajFile.h CpptrajStdio.h DataFile.h DataFileList.h DataIO.h DataSet.h DataSetList.h DataSet_2D.h DataSet_Coords.h DataSet_Coords_REF.h DataSet_MatrixFlt.h Dimension.h DispatchObject.h DistRoutines.h FileIO.h FileName.h FileTypes.h Frame.h MaskToken.h Matrix.h Matrix_3x3.h MetaData.h Molecule.h NameType.h OutputTrajCommon.h Parallel.h ParameterHolders.h ParameterSet.h ParameterTypes.h ParmFile.h ParmIO.h ProgressBar.h ProgressTimer.h PubFFT.h Range.h ReferenceFrame.h ReplicaDimArray.h Residue.h StringRoutines.h SymbolExporting.h TextFormat.h Timer.h Topology.h TrajectoryFile.h Trajout_Single.h TypeNameHolder.h Vec3.h ArgList.o : ArgList.cpp ArgList.h CpptrajStdio.h StringRoutines.h Array1D.o : Array1D.cpp ArgList.h Array1D.h AssociatedData.h Atom.h AtomExtra.h AtomMask.h AtomType.h Box.h Constants.h CoordinateInfo.h CpptrajFile.h CpptrajStdio.h DataSet.h DataSetList.h DataSet_1D.h DataSet_Coords.h DataSet_Coords_REF.h Dimension.h FileIO.h FileName.h Frame.h MaskToken.h Matrix_3x3.h MetaData.h Molecule.h NameType.h Parallel.h ParameterHolders.h ParameterSet.h ParameterTypes.h Range.h ReferenceFrame.h ReplicaDimArray.h Residue.h SymbolExporting.h TextFormat.h Timer.h Topology.h TypeNameHolder.h Vec3.h From ebf004020846d1c0b571bf55a88f02861db687cb Mon Sep 17 00:00:00 2001 From: "Daniel R. Roe" Date: Sun, 5 Jan 2020 15:41:50 -0500 Subject: [PATCH 083/162] DRR - Finish up vector changes. Still needs testing. --- src/DataIO_Std.cpp | 11 +++++++-- src/DataIO_VecTraj.cpp | 42 ++++++++++++++++++++++------------- src/DataSet_Vector.cpp | 2 +- src/Exec_DataSetCmd.cpp | 4 ++-- src/ForLoop_dataSetBlocks.cpp | 2 +- src/RPNcalc.cpp | 17 ++++++++++---- src/cpptrajdepend | 4 ++-- 7 files changed, 55 insertions(+), 27 deletions(-) diff --git a/src/DataIO_Std.cpp b/src/DataIO_Std.cpp index 33afa87838..3f22549b45 100644 --- a/src/DataIO_Std.cpp +++ b/src/DataIO_Std.cpp @@ -13,7 +13,8 @@ #include "DataSet_double.h" // For reading TODO remove dependency? #include "DataSet_float.h" // For reading TODO remove dependency? #include "DataSet_string.h" // For reading TODO remove dependency? -#include "DataSet_Vector.h" // For reading TODO remove dependency? +#include "DataSet_Vector_OXYZ.h" // For reading TODO remove dependency? +#include "DataSet_Vector_XYZ.h" // For reading TODO remove dependency? #include "DataSet_Mat3x3.h" // For reading TODO remove dependency? #include "DataSet_2D.h" #include "DataSet_3D.h" @@ -710,15 +711,21 @@ int DataIO_Std::Read_Vector(std::string const& fname, mprinterr("Error: Expected 3, 6, or 9 columns of vector data, got %i.\n", ncols); return 1; } + bool hasOrigins = false; if (ncols >= 6) { nv = 6; mprintf("\tReading vector X Y Z and origin X Y Z values.\n"); + hasOrigins = true; } else { nv = 3; mprintf("\tReading vector X Y Z values.\n"); } // Create set - DataSet_Vector* ds = new DataSet_Vector(); + DataSet_Vector* ds; + if (hasOrigins) + ds = new DataSet_Vector_OXYZ(); + else + ds = new DataSet_Vector_XYZ(); if (ds == 0) return 1; ds->SetMeta( dsname ); // Read vector data diff --git a/src/DataIO_VecTraj.cpp b/src/DataIO_VecTraj.cpp index a18899cdfe..13f3a55228 100644 --- a/src/DataIO_VecTraj.cpp +++ b/src/DataIO_VecTraj.cpp @@ -1,6 +1,6 @@ #include "DataIO_VecTraj.h" #include "CpptrajStdio.h" -#include "DataSet_Vector.h" +#include "DataSet_Vector_OXYZ.h" #include "ParmFile.h" #include "Trajout_Single.h" @@ -9,7 +9,8 @@ DataIO_VecTraj::DataIO_VecTraj() : trajoutFmt_(TrajectoryFile::UNKNOWN_TRAJ), includeOrigin_(true) { - SetValid( DataSet::VECTOR ); + SetValid( DataSet::VEC_XYZ ); + SetValid( DataSet::VEC_OXYZ ); } void DataIO_VecTraj::WriteHelp() { @@ -30,12 +31,14 @@ int DataIO_VecTraj::WriteData(FileName const& fname, DataSetList const& SetList) if (SetList.empty()) return 1; // Check input data sets int vec_size = -1; - unsigned int num_no_origins = 0; typedef std::vector Varray; Varray VecSets; VecSets.reserve( SetList.size() ); + typedef std::vector Barray; + Barray VecNeedsBond; + VecNeedsBond.reserve( SetList.size() ); for (DataSetList::const_iterator set = SetList.begin(); set != SetList.end(); ++set) { - if ((*set)->Type() != DataSet::VECTOR) + if ((*set)->Group() != DataSet::VECTOR_1D) mprintf("Warning: Set '%s' is not a vector, skipping.\n", (*set)->legend()); else { DataSet_Vector const& Vec = static_cast( *(*set) ); @@ -47,16 +50,17 @@ int DataIO_VecTraj::WriteData(FileName const& fname, DataSetList const& SetList) Vec.legend(), Vec.Size(), vec_size); return 1; } - if (!Vec.HasOrigins()) num_no_origins++; VecSets.push_back( (DataSet_Vector*)*set ); + if (Vec.Type() == DataSet::VEC_OXYZ && includeOrigin_) + VecNeedsBond.push_back( true ); + else + VecNeedsBond.push_back( false ); } } if (VecSets.empty()) { mprinterr("Error: No vector data sets.\n"); return 1; } - if (num_no_origins == VecSets.size()) - includeOrigin_ = false; // Set up pseudo topology for all vectors Topology pseudo; BondArray bonds; @@ -65,14 +69,15 @@ int DataIO_VecTraj::WriteData(FileName const& fname, DataSetList const& SetList) int natom = 0; for (unsigned int nres = 1; nres <= VecSets.size(); nres++) { Residue vec_res("VEC", nres, ' ', ' '); - if (includeOrigin_) + if (VecNeedsBond[nres-1]) { pseudo.AddTopAtom(Atom("OXYZ", 0), vec_res); - pseudo.AddTopAtom(Atom("VXYZ", 0), vec_res); - if (includeOrigin_) { + pseudo.AddTopAtom(Atom("VXYZ", 0), vec_res); pseudo.AddBond(natom, natom+1, 0); // Bond parm index 0 natom += 2; - } else + } else { + pseudo.AddTopAtom(Atom("VXYZ", 0), vec_res); natom++; + } } pseudo.CommonSetup(); if (!parmoutName_.empty()) { @@ -90,14 +95,21 @@ int DataIO_VecTraj::WriteData(FileName const& fname, DataSetList const& SetList) Frame outFrame(pseudo.Natom()); for (int i = 0; i != vec_size; ++i) { outFrame.ClearAtoms(); - for (Varray::const_iterator set = VecSets.begin(); set != VecSets.end(); ++set) { - DataSet_Vector const& Vec = static_cast( *(*set) ); - if (includeOrigin_) { + Barray::const_iterator needsBond = VecNeedsBond.begin(); + for (Varray::const_iterator set = VecSets.begin(); + set != VecSets.end(); + ++set, ++needsBond) + { + if ( *needsBond ) { + DataSet_Vector_OXYZ const& Vec = + static_cast( *(*set) ); Vec3 const& ovec = Vec.OXYZ(i); outFrame.AddVec3( ovec ); outFrame.AddVec3( Vec[i] + ovec ); - } else + } else { + DataSet_Vector const& Vec = static_cast( *(*set) ); outFrame.AddVec3( Vec[i] ); + } } if (out.WriteSingle(i, outFrame)) return 1; } diff --git a/src/DataSet_Vector.cpp b/src/DataSet_Vector.cpp index a98abfcc9a..aa73aa8560 100644 --- a/src/DataSet_Vector.cpp +++ b/src/DataSet_Vector.cpp @@ -39,7 +39,7 @@ void DataSet_Vector::internalAppend(const DataSet_Vector* dsIn) { } /** Reset the vector array */ -void DataSet_Vector::reset() { +void DataSet_Vector::internalReset() { vectors_.clear(); sphericalHarmonics_.clear(); order_ = 0; diff --git a/src/Exec_DataSetCmd.cpp b/src/Exec_DataSetCmd.cpp index c0564c1679..9c5f9fbae5 100644 --- a/src/Exec_DataSetCmd.cpp +++ b/src/Exec_DataSetCmd.cpp @@ -285,7 +285,7 @@ Exec::RetType Exec_DataSetCmd::VectorCoord(CpptrajState& State, ArgList& argIn) while (!dsl1.empty()) { for (DataSetList::const_iterator it = dsl1.begin(); it != dsl1.end(); ++it) { - if ( (*it)->Type() != DataSet::VECTOR) { + if ( (*it)->Group() != DataSet::VECTOR_1D) { mprintf("Warning: '%s' 'vectorcoord' only works with vector data sets.\n", (*it)->legend()); } else if ( (*it)->Size() < 1) { mprintf("Warning: '%s' is empty.\n", (*it)->legend()); @@ -820,7 +820,7 @@ Exec::RetType Exec_DataSetCmd::ChangeModeType(CpptrajState const& State, ArgList mprintf("Warning: '%s': Expected scalar 1D data set type for mode '%s'\n", (*ds)->legend(), MetaData::ModeString(dmode)); else if ( dmode == MetaData::M_VECTOR && - (*ds)->Type() != DataSet::VECTOR ) + (*ds)->Group() != DataSet::VECTOR_1D ) mprintf("Warning: '%s': Expected vector data set type for mode '%s'\n", (*ds)->legend(), MetaData::ModeString(dmode)); else if ( dmode == MetaData::M_MATRIX && diff --git a/src/ForLoop_dataSetBlocks.cpp b/src/ForLoop_dataSetBlocks.cpp index 98482eb93c..d0100084ef 100644 --- a/src/ForLoop_dataSetBlocks.cpp +++ b/src/ForLoop_dataSetBlocks.cpp @@ -47,7 +47,7 @@ int ForLoop_dataSetBlocks::BeginFor(DataSetList const& DSL) { return 1; } if (sourceSet_->Group() != DataSet::SCALAR_1D && - sourceSet_->Type() != DataSet::VECTOR) + sourceSet_->Group() != DataSet::VECTOR_1D) { mprinterr("Error: Set '%s' is not 1D scalar or vector.\n", sourceSet_->legend()); return 1; diff --git a/src/RPNcalc.cpp b/src/RPNcalc.cpp index 4243070f9e..eb7782d4ba 100644 --- a/src/RPNcalc.cpp +++ b/src/RPNcalc.cpp @@ -683,7 +683,7 @@ int RPNcalc::TokenLoop(DataSetList& DSL) const { for (unsigned int n = 0; n != D1.Size(); n++) D0.AddElement( DoOperation(D1.Dval(n), D2.Dval(n), T->Type()) ); } - else if (ds1->Type() == DataSet::VECTOR && ds2->Type() == DataSet::VECTOR) + else if (ds1->Group() == DataSet::VECTOR_1D && ds2->Group() == DataSet::VECTOR_1D) { // Both DataSets are vector time series. If ds1 size != ds2 size, ds1 or ds2 // may be of size 1. @@ -700,7 +700,13 @@ int RPNcalc::TokenLoop(DataSetList& DSL) const { return 1; } } - tempDS = LocalList.AddSet(DataSet::VECTOR, MetaData("TEMP", T-tokens_.begin())); + if (ds1->Type() == DataSet::VEC_OXYZ) + mprintf("Warning: '%s' contains vector origins; not used in math ops.\n", + ds1->legend()); + if (ds2->Type() == DataSet::VEC_OXYZ) + mprintf("Warning: '%s' contains vector origins; not used in math ops.\n", + ds2->legend()); + tempDS = LocalList.AddSet(DataSet::VEC_XYZ, MetaData("TEMP", T-tokens_.begin())); DataSet_Vector& V0 = static_cast(*tempDS); V0.Allocate( DataSet::SizeArray(1, Max) ); DataSet_Vector const& V1 = static_cast(*ds1); @@ -819,9 +825,12 @@ int RPNcalc::TokenLoop(DataSetList& DSL) const { for (unsigned int n = 0; n != D1.Size(); n++) D0.AddElement( DoOperation(d2, D1.Dval(n), T->Type()) ); } - else if ( ds1->Type() == DataSet::VECTOR ) + else if ( ds1->Group() == DataSet::VECTOR_1D ) { - tempDS = LocalList.AddSet(DataSet::VECTOR, MetaData("TEMP", T-tokens_.begin())); + if (ds1->Type() == DataSet::VEC_OXYZ) + mprintf("Warning: '%s' contains vector origins; not used in math ops.\n", + ds1->legend()); + tempDS = LocalList.AddSet(DataSet::VEC_XYZ, MetaData("TEMP", T-tokens_.begin())); DataSet_Vector& V0 = static_cast(*tempDS); V0.Allocate( DataSet::SizeArray(1, ds1->Size()) ); DataSet_Vector const& V1 = static_cast(*ds1); diff --git a/src/cpptrajdepend b/src/cpptrajdepend index 3773cdc2ae..9edd28720c 100644 --- a/src/cpptrajdepend +++ b/src/cpptrajdepend @@ -186,8 +186,8 @@ DataIO_Mdout.o : DataIO_Mdout.cpp ArgList.h AssociatedData.h Atom.h AtomExtra.h DataIO_NC_Cmatrix.o : DataIO_NC_Cmatrix.cpp ArgList.h ArrayIterator.h AssociatedData.h Atom.h AtomExtra.h AtomMap.h AtomMask.h AtomType.h BaseIOtype.h Box.h ClusterDist.h ClusterSieve.h Constants.h CoordinateInfo.h CpptrajFile.h CpptrajStdio.h DataIO.h DataIO_NC_Cmatrix.h DataSet.h DataSetList.h DataSet_1D.h DataSet_Cmatrix.h DataSet_Cmatrix_MEM.h DataSet_Coords.h DataSet_Coords_REF.h Dimension.h FileIO.h FileName.h Frame.h Hungarian.h MapAtom.h MaskToken.h Matrix.h Matrix_3x3.h MetaData.h Molecule.h NC_Cmatrix.h NameType.h Parallel.h ParameterHolders.h ParameterSet.h ParameterTypes.h Range.h ReferenceFrame.h ReplicaDimArray.h Residue.h SymbolExporting.h SymmetricRmsdCalc.h TextFormat.h Timer.h Topology.h TypeNameHolder.h Vec3.h DataIO_OpenDx.o : DataIO_OpenDx.cpp ArgList.h ArrayIterator.h AssociatedData.h Atom.h AtomExtra.h AtomMask.h AtomType.h BaseIOtype.h Box.h BufferedLine.h Constants.h CoordinateInfo.h CpptrajFile.h CpptrajStdio.h DataIO.h DataIO_OpenDx.h DataSet.h DataSetList.h DataSet_3D.h DataSet_Coords.h DataSet_Coords_REF.h DataSet_GridFlt.h Dimension.h FileIO.h FileName.h Frame.h Grid.h GridBin.h MaskToken.h Matrix_3x3.h MetaData.h Molecule.h NameType.h Parallel.h ParameterHolders.h ParameterSet.h ParameterTypes.h ProgressBar.h Range.h ReferenceFrame.h ReplicaDimArray.h Residue.h SymbolExporting.h TextFormat.h Timer.h Topology.h TypeNameHolder.h Vec3.h DataIO_RemLog.o : DataIO_RemLog.cpp ArgList.h AssociatedData.h Atom.h AtomExtra.h AtomMask.h AtomType.h BaseIOtype.h Box.h BufferedLine.h Constants.h CoordinateInfo.h CpptrajFile.h CpptrajStdio.h DataIO.h DataIO_RemLog.h DataSet.h DataSetList.h DataSet_Coords.h DataSet_Coords_REF.h DataSet_RemLog.h Dimension.h FileIO.h FileName.h Frame.h MaskToken.h Matrix_3x3.h MetaData.h Molecule.h NameType.h Parallel.h ParameterHolders.h ParameterSet.h ParameterTypes.h ProgressBar.h Range.h ReferenceFrame.h ReplicaDimArray.h Residue.h StringRoutines.h SymbolExporting.h TextFormat.h Timer.h Topology.h TypeNameHolder.h Vec3.h -DataIO_Std.o : DataIO_Std.cpp ArgList.h ArrayIterator.h AssociatedData.h Atom.h AtomExtra.h AtomMap.h AtomMask.h AtomType.h BaseIOtype.h Box.h BufferedLine.h ClusterDist.h ClusterSieve.h ComplexArray.h Constants.h CoordinateInfo.h CpptrajFile.h CpptrajStdio.h DataIO.h DataIO_Std.h DataSet.h DataSetList.h DataSet_1D.h DataSet_2D.h DataSet_3D.h DataSet_Cmatrix.h DataSet_Cmatrix_MEM.h DataSet_Coords.h DataSet_Coords_REF.h DataSet_Mat3x3.h DataSet_Vector.h DataSet_double.h DataSet_float.h DataSet_integer.h DataSet_string.h Dimension.h FileIO.h FileName.h Frame.h GridBin.h Hungarian.h MapAtom.h MaskToken.h Matrix.h Matrix_3x3.h MetaData.h Molecule.h NameType.h Parallel.h ParameterHolders.h ParameterSet.h ParameterTypes.h Range.h ReferenceFrame.h ReplicaDimArray.h Residue.h StringRoutines.h SymbolExporting.h SymmetricRmsdCalc.h TextFormat.h Timer.h Topology.h TypeNameHolder.h Vec3.h -DataIO_VecTraj.o : DataIO_VecTraj.cpp ActionFrameCounter.h ArgList.h ArrayIterator.h AssociatedData.h Atom.h AtomExtra.h AtomMask.h AtomType.h BaseIOtype.h BondSearch.h Box.h ComplexArray.h Constants.h CoordinateInfo.h CpptrajFile.h CpptrajStdio.h DataIO.h DataIO_VecTraj.h DataSet.h DataSetList.h DataSet_1D.h DataSet_Coords.h DataSet_Coords_REF.h DataSet_Vector.h Dimension.h FileIO.h FileName.h FileTypes.h Frame.h MaskToken.h Matrix_3x3.h MetaData.h Molecule.h NameType.h OutputTrajCommon.h Parallel.h ParameterHolders.h ParameterSet.h ParameterTypes.h ParmFile.h ParmIO.h Range.h ReferenceFrame.h ReplicaDimArray.h Residue.h SymbolExporting.h TextFormat.h Timer.h Topology.h TrajectoryFile.h Trajout_Single.h TypeNameHolder.h Vec3.h +DataIO_Std.o : DataIO_Std.cpp ArgList.h ArrayIterator.h AssociatedData.h Atom.h AtomExtra.h AtomMap.h AtomMask.h AtomType.h BaseIOtype.h Box.h BufferedLine.h ClusterDist.h ClusterSieve.h ComplexArray.h Constants.h CoordinateInfo.h CpptrajFile.h CpptrajStdio.h DataIO.h DataIO_Std.h DataSet.h DataSetList.h DataSet_1D.h DataSet_2D.h DataSet_3D.h DataSet_Cmatrix.h DataSet_Cmatrix_MEM.h DataSet_Coords.h DataSet_Coords_REF.h DataSet_Mat3x3.h DataSet_Vector.h DataSet_Vector_OXYZ.h DataSet_Vector_XYZ.h DataSet_double.h DataSet_float.h DataSet_integer.h DataSet_string.h Dimension.h FileIO.h FileName.h Frame.h GridBin.h Hungarian.h MapAtom.h MaskToken.h Matrix.h Matrix_3x3.h MetaData.h Molecule.h NameType.h Parallel.h ParameterHolders.h ParameterSet.h ParameterTypes.h Range.h ReferenceFrame.h ReplicaDimArray.h Residue.h StringRoutines.h SymbolExporting.h SymmetricRmsdCalc.h TextFormat.h Timer.h Topology.h TypeNameHolder.h Vec3.h +DataIO_VecTraj.o : DataIO_VecTraj.cpp ActionFrameCounter.h ArgList.h ArrayIterator.h AssociatedData.h Atom.h AtomExtra.h AtomMask.h AtomType.h BaseIOtype.h BondSearch.h Box.h ComplexArray.h Constants.h CoordinateInfo.h CpptrajFile.h CpptrajStdio.h DataIO.h DataIO_VecTraj.h DataSet.h DataSetList.h DataSet_1D.h DataSet_Coords.h DataSet_Coords_REF.h DataSet_Vector.h DataSet_Vector_OXYZ.h Dimension.h FileIO.h FileName.h FileTypes.h Frame.h MaskToken.h Matrix_3x3.h MetaData.h Molecule.h NameType.h OutputTrajCommon.h Parallel.h ParameterHolders.h ParameterSet.h ParameterTypes.h ParmFile.h ParmIO.h Range.h ReferenceFrame.h ReplicaDimArray.h Residue.h SymbolExporting.h TextFormat.h Timer.h Topology.h TrajectoryFile.h Trajout_Single.h TypeNameHolder.h Vec3.h DataIO_XVG.o : DataIO_XVG.cpp ArgList.h AssociatedData.h Atom.h AtomExtra.h AtomMask.h AtomType.h BaseIOtype.h Box.h BufferedLine.h Constants.h CoordinateInfo.h CpptrajFile.h CpptrajStdio.h DataIO.h DataIO_XVG.h DataSet.h DataSetList.h DataSet_1D.h DataSet_Coords.h DataSet_Coords_REF.h DataSet_double.h Dimension.h FileIO.h FileName.h Frame.h MaskToken.h Matrix_3x3.h MetaData.h Molecule.h NameType.h Parallel.h ParameterHolders.h ParameterSet.h ParameterTypes.h Range.h ReferenceFrame.h ReplicaDimArray.h Residue.h SymbolExporting.h TextFormat.h Timer.h Topology.h TypeNameHolder.h Vec3.h DataIO_Xplor.o : DataIO_Xplor.cpp ArgList.h ArrayIterator.h AssociatedData.h Atom.h AtomExtra.h AtomMask.h AtomType.h BaseIOtype.h Box.h BufferedLine.h Constants.h CoordinateInfo.h CpptrajFile.h CpptrajStdio.h DataIO.h DataIO_Xplor.h DataSet.h DataSetList.h DataSet_3D.h DataSet_Coords.h DataSet_Coords_REF.h DataSet_GridFlt.h Dimension.h FileIO.h FileName.h Frame.h Grid.h GridBin.h MaskToken.h Matrix_3x3.h MetaData.h Molecule.h NameType.h Parallel.h ParameterHolders.h ParameterSet.h ParameterTypes.h ProgressBar.h Range.h ReferenceFrame.h ReplicaDimArray.h Residue.h SymbolExporting.h TextFormat.h Timer.h Topology.h TypeNameHolder.h Vec3.h DataSet.o : DataSet.cpp ArgList.h AssociatedData.h CpptrajFile.h CpptrajStdio.h DataSet.h Dimension.h FileIO.h FileName.h MetaData.h Parallel.h Range.h TextFormat.h From f5f57154c73f9e387fe8a2993c1eccf975fc7db3 Mon Sep 17 00:00:00 2001 From: "Daniel R. Roe" Date: Mon, 6 Jan 2020 08:23:53 -0500 Subject: [PATCH 084/162] DRR - Origin is no longer stored when not needed --- test/Test_Vector/avgcoord.out.save | 22 +++++++++++----------- test/Test_Vector/res5.out.save | 22 +++++++++++----------- test/Test_Vector/vtest.dat.10.save | 4 ++-- test/Test_Vector/vtest.dat.11.save | 4 ++-- test/Test_Vector/vtest.dat.6.save | 22 +++++++++++----------- test/Test_Vector/vtest.dat.9.save | 4 ++-- 6 files changed, 39 insertions(+), 39 deletions(-) diff --git a/test/Test_Vector/avgcoord.out.save b/test/Test_Vector/avgcoord.out.save index 67f94d38dc..814f5e5227 100644 --- a/test/Test_Vector/avgcoord.out.save +++ b/test/Test_Vector/avgcoord.out.save @@ -1,11 +1,11 @@ -#Frame VC_A1 VC_A1[Mag] - 1 -1.8890 9.1590 7.5690 0.0000 0.0000 0.0000 12.031 - 2 0.3010 5.0950 3.4810 0.0000 0.0000 0.0000 6.178 - 3 2.2080 4.5820 0.7570 0.0000 0.0000 0.0000 5.142 - 4 -0.0270 5.8200 3.7400 0.0000 0.0000 0.0000 6.918 - 5 -1.3210 6.2900 6.3850 0.0000 0.0000 0.0000 9.060 - 6 -3.4040 9.1810 2.9570 0.0000 0.0000 0.0000 10.228 - 7 -4.5930 5.4710 0.3250 0.0000 0.0000 0.0000 7.151 - 8 -1.6970 0.2750 3.4100 0.0000 0.0000 0.0000 3.819 - 9 -2.1720 2.6570 2.7930 0.0000 0.0000 0.0000 4.425 - 10 -3.5310 2.5650 1.7360 0.0000 0.0000 0.0000 4.697 +#Frame VC_A1 VC_A1[Mag] + 1 -1.8890 9.1590 7.5690 12.031 + 2 0.3010 5.0950 3.4810 6.178 + 3 2.2080 4.5820 0.7570 5.142 + 4 -0.0270 5.8200 3.7400 6.918 + 5 -1.3210 6.2900 6.3850 9.060 + 6 -3.4040 9.1810 2.9570 10.228 + 7 -4.5930 5.4710 0.3250 7.151 + 8 -1.6970 0.2750 3.4100 3.819 + 9 -2.1720 2.6570 2.7930 4.425 + 10 -3.5310 2.5650 1.7360 4.697 diff --git a/test/Test_Vector/res5.out.save b/test/Test_Vector/res5.out.save index fe6f44c54d..f91395b259 100644 --- a/test/Test_Vector/res5.out.save +++ b/test/Test_Vector/res5.out.save @@ -1,11 +1,11 @@ -#Frame VC_R5 VC_R5[Mag] - 1 -3.0022 2.7312 -2.5133 0.0000 0.0000 0.0000 4.774 - 2 -4.0385 4.2171 -3.6917 0.0000 0.0000 0.0000 6.908 - 3 -3.4637 7.0988 -5.6387 0.0000 0.0000 0.0000 9.705 - 4 -2.7438 4.6695 -3.8355 0.0000 0.0000 0.0000 6.637 - 5 -1.7790 5.4096 -4.8037 0.0000 0.0000 0.0000 7.450 - 6 -3.3646 7.4890 -5.4244 0.0000 0.0000 0.0000 9.840 - 7 -2.5007 7.2956 -5.2597 0.0000 0.0000 0.0000 9.335 - 8 -0.9298 6.3956 -4.8244 0.0000 0.0000 0.0000 8.065 - 9 -2.2433 7.3980 -4.8686 0.0000 0.0000 0.0000 9.136 - 10 -5.6095 8.0480 -3.4317 0.0000 0.0000 0.0000 10.393 +#Frame VC_R5 VC_R5[Mag] + 1 -3.0022 2.7312 -2.5133 4.774 + 2 -4.0385 4.2171 -3.6917 6.908 + 3 -3.4637 7.0988 -5.6387 9.705 + 4 -2.7438 4.6695 -3.8355 6.637 + 5 -1.7790 5.4096 -4.8037 7.450 + 6 -3.3646 7.4890 -5.4244 9.840 + 7 -2.5007 7.2956 -5.2597 9.335 + 8 -0.9298 6.3956 -4.8244 8.065 + 9 -2.2433 7.3980 -4.8686 9.136 + 10 -5.6095 8.0480 -3.4317 10.393 diff --git a/test/Test_Vector/vtest.dat.10.save b/test/Test_Vector/vtest.dat.10.save index 8bf7a5ec34..93857ac4a2 100644 --- a/test/Test_Vector/vtest.dat.10.save +++ b/test/Test_Vector/vtest.dat.10.save @@ -1,2 +1,2 @@ -#Frame v10 - 1 0.8980 -0.1969 0.1939 0.0000 0.0000 0.0000 +#Frame v10 + 1 0.8980 -0.1969 0.1939 diff --git a/test/Test_Vector/vtest.dat.11.save b/test/Test_Vector/vtest.dat.11.save index 3b64f24427..9e83a27988 100644 --- a/test/Test_Vector/vtest.dat.11.save +++ b/test/Test_Vector/vtest.dat.11.save @@ -1,2 +1,2 @@ -#Frame v11 - 1 1.4218 1.0555 -1.3660 0.0000 0.0000 0.0000 +#Frame v11 + 1 1.4218 1.0555 -1.3660 diff --git a/test/Test_Vector/vtest.dat.6.save b/test/Test_Vector/vtest.dat.6.save index c9d31748fa..99ec04180d 100644 --- a/test/Test_Vector/vtest.dat.6.save +++ b/test/Test_Vector/vtest.dat.6.save @@ -1,11 +1,11 @@ -#Frame v6 - 1 0.6960 3.3509 -10.5253 0.0000 0.0000 0.0000 - 2 0.2322 3.3274 -10.4556 0.0000 0.0000 0.0000 - 3 0.6774 3.4414 -10.4385 0.0000 0.0000 0.0000 - 4 0.8361 3.8291 -10.8334 0.0000 0.0000 0.0000 - 5 0.6335 3.8861 -11.2222 0.0000 0.0000 0.0000 - 6 0.6094 3.9142 -10.8067 0.0000 0.0000 0.0000 - 7 0.6716 4.1697 -10.6828 0.0000 0.0000 0.0000 - 8 0.6235 4.0479 -11.5095 0.0000 0.0000 0.0000 - 9 1.0135 3.9018 -10.9440 0.0000 0.0000 0.0000 - 10 0.8498 3.8457 -11.3054 0.0000 0.0000 0.0000 +#Frame v6 + 1 0.6960 3.3509 -10.5253 + 2 0.2322 3.3274 -10.4556 + 3 0.6774 3.4414 -10.4385 + 4 0.8361 3.8291 -10.8334 + 5 0.6335 3.8861 -11.2222 + 6 0.6094 3.9142 -10.8067 + 7 0.6716 4.1697 -10.6828 + 8 0.6235 4.0479 -11.5095 + 9 1.0135 3.9018 -10.9440 + 10 0.8498 3.8457 -11.3054 diff --git a/test/Test_Vector/vtest.dat.9.save b/test/Test_Vector/vtest.dat.9.save index 703cecf7fb..93058b4e1e 100644 --- a/test/Test_Vector/vtest.dat.9.save +++ b/test/Test_Vector/vtest.dat.9.save @@ -1,2 +1,2 @@ -#Frame v9 - 1 30.6898 -24.2348 -8.2849 0.0000 0.0000 0.0000 +#Frame v9 + 1 30.6898 -24.2348 -8.2849 From 62069c65ecf6d068b3526f28592cdd6fd3a0b133 Mon Sep 17 00:00:00 2001 From: "Daniel R. Roe" Date: Mon, 6 Jan 2020 08:32:11 -0500 Subject: [PATCH 085/162] DRR - Vector origin no longer included when not needed --- test/Test_Control/TRP.vec.dat.save | 22 +-- test/Test_InfraredSpec/raw.dat.save | 22 +-- test/Test_Principal/eigen.dat.save | 22 +-- test/Test_RMSD/vecs.dat.save | 22 +-- test/Test_SetVelocity/V1.dat.save | 4 +- test/Test_VectorMath/dotproduct.dat.save | 204 +++++++++++------------ 6 files changed, 148 insertions(+), 148 deletions(-) diff --git a/test/Test_Control/TRP.vec.dat.save b/test/Test_Control/TRP.vec.dat.save index b41443ce33..1f266ccb5e 100644 --- a/test/Test_Control/TRP.vec.dat.save +++ b/test/Test_Control/TRP.vec.dat.save @@ -1,11 +1,11 @@ -#Frame v1 v2 v3 v4 - 1 2.2688 10.6610 1.8271 0.0000 0.0000 0.0000 -5.0140 8.5220 0.7127 0.0000 0.0000 0.0000 4.1747 -2.6373 0.7737 0.0000 0.0000 0.0000 -1.0550 -11.5578 -0.9597 0.0000 0.0000 0.0000 - 2 3.5228 10.6182 1.1629 0.0000 0.0000 0.0000 -5.1336 9.4783 0.6271 0.0000 0.0000 0.0000 -3.1029 -4.7145 6.8363 0.0000 0.0000 0.0000 -1.0554 -9.6015 4.9042 0.0000 0.0000 0.0000 - 3 3.6077 10.8602 1.4127 0.0000 0.0000 0.0000 -2.8415 8.5871 -1.5978 0.0000 0.0000 0.0000 0.0604 -2.0471 13.4624 0.0000 0.0000 0.0000 4.2305 -4.8478 6.8845 0.0000 0.0000 0.0000 - 4 3.3016 11.9616 2.9045 0.0000 0.0000 0.0000 -3.0291 8.8164 -0.1442 0.0000 0.0000 0.0000 -1.7821 -8.8241 0.9857 0.0000 0.0000 0.0000 -0.1121 -8.8625 4.8930 0.0000 0.0000 0.0000 - 5 3.1598 8.6397 2.0728 0.0000 0.0000 0.0000 -0.6843 8.4368 -1.6189 0.0000 0.0000 0.0000 9.3455 -0.4866 2.6283 0.0000 0.0000 0.0000 3.8290 -4.9090 8.0189 0.0000 0.0000 0.0000 - 6 2.2578 4.5217 3.6068 0.0000 0.0000 0.0000 -4.4850 7.9385 2.0723 0.0000 0.0000 0.0000 7.5360 4.2621 8.8743 0.0000 0.0000 0.0000 2.2193 -6.9951 7.1338 0.0000 0.0000 0.0000 - 7 0.4011 2.9931 4.2816 0.0000 0.0000 0.0000 -4.9392 7.3741 -0.3209 0.0000 0.0000 0.0000 7.5237 4.9681 5.7955 0.0000 0.0000 0.0000 3.1852 -4.9727 7.3811 0.0000 0.0000 0.0000 - 8 2.8025 4.9600 4.3073 0.0000 0.0000 0.0000 -2.4216 10.6614 -1.3444 0.0000 0.0000 0.0000 3.5996 4.8571 7.7392 0.0000 0.0000 0.0000 7.6744 -4.6997 6.5265 0.0000 0.0000 0.0000 - 9 4.1662 4.7032 4.1605 0.0000 0.0000 0.0000 -4.5619 9.1180 2.0713 0.0000 0.0000 0.0000 0.5534 4.8642 10.0517 0.0000 0.0000 0.0000 4.6915 -4.9514 7.5220 0.0000 0.0000 0.0000 - 10 3.3624 4.2964 2.5648 0.0000 0.0000 0.0000 -3.5212 7.2876 -1.4418 0.0000 0.0000 0.0000 6.2241 5.2952 7.5662 0.0000 0.0000 0.0000 3.6131 -7.1105 7.1869 0.0000 0.0000 0.0000 +#Frame v1 v2 v3 v4 + 1 2.2688 10.6610 1.8271 -5.0140 8.5220 0.7127 4.1747 -2.6373 0.7737 -1.0550 -11.5578 -0.9597 + 2 3.5228 10.6182 1.1629 -5.1336 9.4783 0.6271 -3.1029 -4.7145 6.8363 -1.0554 -9.6015 4.9042 + 3 3.6077 10.8602 1.4127 -2.8415 8.5871 -1.5978 0.0604 -2.0471 13.4624 4.2305 -4.8478 6.8845 + 4 3.3016 11.9616 2.9045 -3.0291 8.8164 -0.1442 -1.7821 -8.8241 0.9857 -0.1121 -8.8625 4.8930 + 5 3.1598 8.6397 2.0728 -0.6843 8.4368 -1.6189 9.3455 -0.4866 2.6283 3.8290 -4.9090 8.0189 + 6 2.2578 4.5217 3.6068 -4.4850 7.9385 2.0723 7.5360 4.2621 8.8743 2.2193 -6.9951 7.1338 + 7 0.4011 2.9931 4.2816 -4.9392 7.3741 -0.3209 7.5237 4.9681 5.7955 3.1852 -4.9727 7.3811 + 8 2.8025 4.9600 4.3073 -2.4216 10.6614 -1.3444 3.5996 4.8571 7.7392 7.6744 -4.6997 6.5265 + 9 4.1662 4.7032 4.1605 -4.5619 9.1180 2.0713 0.5534 4.8642 10.0517 4.6915 -4.9514 7.5220 + 10 3.3624 4.2964 2.5648 -3.5212 7.2876 -1.4418 6.2241 5.2952 7.5662 3.6131 -7.1105 7.1869 diff --git a/test/Test_InfraredSpec/raw.dat.save b/test/Test_InfraredSpec/raw.dat.save index 817df552f3..d7dabf20ec 100644 --- a/test/Test_InfraredSpec/raw.dat.save +++ b/test/Test_InfraredSpec/raw.dat.save @@ -1,11 +1,11 @@ -#Time_(ps) IR[raw] - 0.0000 -194.8363 386.2881 -123.5987 0.0000 0.0000 0.0000 - 0.1000 267.6044 -557.6835 116.4676 0.0000 0.0000 0.0000 - 0.2000 234.0533 -128.3173 201.1010 0.0000 0.0000 0.0000 - 0.3000 473.9245 -400.7017 139.9855 0.0000 0.0000 0.0000 - 0.4000 -92.1304 135.2512 148.4071 0.0000 0.0000 0.0000 - 0.5000 615.1802 -137.3620 -566.5021 0.0000 0.0000 0.0000 - 0.6000 9.2755 -452.7190 243.1656 0.0000 0.0000 0.0000 - 0.7000 254.6856 50.3042 25.0261 0.0000 0.0000 0.0000 - 0.8000 -365.2691 -191.7742 -391.2432 0.0000 0.0000 0.0000 - 0.9000 -450.9593 -236.0570 31.5395 0.0000 0.0000 0.0000 +#Time_(ps) IR[raw] + 0.0000 -194.8363 386.2881 -123.5987 + 0.1000 267.6044 -557.6835 116.4676 + 0.2000 234.0533 -128.3173 201.1010 + 0.3000 473.9245 -400.7017 139.9855 + 0.4000 -92.1304 135.2512 148.4071 + 0.5000 615.1802 -137.3620 -566.5021 + 0.6000 9.2755 -452.7190 243.1656 + 0.7000 254.6856 50.3042 25.0261 + 0.8000 -365.2691 -191.7742 -391.2432 + 0.9000 -450.9593 -236.0570 31.5395 diff --git a/test/Test_Principal/eigen.dat.save b/test/Test_Principal/eigen.dat.save index f4e28b8d65..a5b015cba2 100644 --- a/test/Test_Principal/eigen.dat.save +++ b/test/Test_Principal/eigen.dat.save @@ -1,11 +1,11 @@ -#Frame All[eval] All[evec] - 1 2318410.3118 2185068.8604 1239559.5386 0.0000 0.0000 0.0000 0.596268354 -0.470765758 0.650264293 0.494415690 -0.422813730 -0.759461438 0.632469110 0.774343691 -0.019356470 - 2 2352414.8287 2218888.8433 1233692.0199 0.0000 0.0000 0.0000 0.675073677 -0.567243090 0.471710513 0.374452082 -0.287459781 -0.881562540 0.635658060 0.771752649 0.018348825 - 3 2372741.8540 2268747.6985 1223425.5544 0.0000 0.0000 0.0000 0.705654448 -0.600274419 0.376460386 0.296586589 -0.232288884 -0.926325143 0.643496850 0.765318558 0.014117658 - 4 2365943.4865 2219431.7507 1252161.3588 0.0000 0.0000 0.0000 0.728482258 -0.518316322 0.447952889 0.361169631 -0.265052701 -0.894037786 0.582125500 0.813077645 -0.005886075 - 5 2442287.4782 2315917.6397 1239991.8812 0.0000 0.0000 0.0000 0.743258304 -0.297832955 0.599051437 0.570694610 -0.184998839 -0.800051931 0.349105651 0.936520667 0.032469739 - 6 2417880.2458 2295485.9876 1245982.2396 0.0000 0.0000 0.0000 0.877042185 -0.287504447 0.384887254 0.355663960 -0.149999662 -0.922498374 0.322955342 0.945960514 -0.029301061 - 7 2380135.8497 2292332.0617 1242058.3080 0.0000 0.0000 0.0000 0.889864061 -0.324200588 0.320992106 0.270500058 -0.191647524 -0.943451612 0.367384910 0.926372066 -0.082843966 - 8 2335828.2983 2185097.0739 1258194.0518 0.0000 0.0000 0.0000 0.924488489 -0.332199098 0.186988750 0.163351611 -0.097978637 -0.981690602 0.344437636 0.938106575 -0.036314864 - 9 2365655.9712 2236258.9654 1224253.9468 0.0000 0.0000 0.0000 0.879070850 -0.402511407 0.255380126 0.221709697 -0.129030151 -0.966538168 0.421994374 0.906275779 -0.024185963 - 10 2391125.8784 2263035.9287 1223902.1302 0.0000 0.0000 0.0000 0.855504165 -0.485995387 -0.178664792 -0.136731290 0.120767494 -0.983219084 0.499416838 0.865577089 0.036866318 +#Frame All[eval] All[evec] + 1 2318410.3118 2185068.8604 1239559.5386 0.596268354 -0.470765758 0.650264293 0.494415690 -0.422813730 -0.759461438 0.632469110 0.774343691 -0.019356470 + 2 2352414.8287 2218888.8433 1233692.0199 0.675073677 -0.567243090 0.471710513 0.374452082 -0.287459781 -0.881562540 0.635658060 0.771752649 0.018348825 + 3 2372741.8540 2268747.6985 1223425.5544 0.705654448 -0.600274419 0.376460386 0.296586589 -0.232288884 -0.926325143 0.643496850 0.765318558 0.014117658 + 4 2365943.4865 2219431.7507 1252161.3588 0.728482258 -0.518316322 0.447952889 0.361169631 -0.265052701 -0.894037786 0.582125500 0.813077645 -0.005886075 + 5 2442287.4782 2315917.6397 1239991.8812 0.743258304 -0.297832955 0.599051437 0.570694610 -0.184998839 -0.800051931 0.349105651 0.936520667 0.032469739 + 6 2417880.2458 2295485.9876 1245982.2396 0.877042185 -0.287504447 0.384887254 0.355663960 -0.149999662 -0.922498374 0.322955342 0.945960514 -0.029301061 + 7 2380135.8497 2292332.0617 1242058.3080 0.889864061 -0.324200588 0.320992106 0.270500058 -0.191647524 -0.943451612 0.367384910 0.926372066 -0.082843966 + 8 2335828.2983 2185097.0739 1258194.0518 0.924488489 -0.332199098 0.186988750 0.163351611 -0.097978637 -0.981690602 0.344437636 0.938106575 -0.036314864 + 9 2365655.9712 2236258.9654 1224253.9468 0.879070850 -0.402511407 0.255380126 0.221709697 -0.129030151 -0.966538168 0.421994374 0.906275779 -0.024185963 + 10 2391125.8784 2263035.9287 1223902.1302 0.855504165 -0.485995387 -0.178664792 -0.136731290 0.120767494 -0.983219084 0.499416838 0.865577089 0.036866318 diff --git a/test/Test_RMSD/vecs.dat.save b/test/Test_RMSD/vecs.dat.save index 4d42a48795..1fb308c0f4 100644 --- a/test/Test_RMSD/vecs.dat.save +++ b/test/Test_RMSD/vecs.dat.save @@ -1,11 +1,11 @@ -#Frame Res2-11_mass[TV] - 1 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 - 2 0.0299 0.0282 -0.0078 0.0000 0.0000 0.0000 - 3 0.0167 0.0322 0.0095 0.0000 0.0000 0.0000 - 4 -0.0204 -0.0090 -0.0056 0.0000 0.0000 0.0000 - 5 -0.0024 0.0073 0.0167 0.0000 0.0000 0.0000 - 6 0.0233 -0.0094 0.0067 0.0000 0.0000 0.0000 - 7 -0.0098 0.0051 0.0063 0.0000 0.0000 0.0000 - 8 -0.0104 0.0297 0.0392 0.0000 0.0000 0.0000 - 9 -0.0188 0.0393 0.0100 0.0000 0.0000 0.0000 - 10 -0.0356 0.0373 0.0167 0.0000 0.0000 0.0000 +#Frame Res2-11_mass[TV] + 1 0.0000 0.0000 0.0000 + 2 0.0299 0.0282 -0.0078 + 3 0.0167 0.0322 0.0095 + 4 -0.0204 -0.0090 -0.0056 + 5 -0.0024 0.0073 0.0167 + 6 0.0233 -0.0094 0.0067 + 7 -0.0098 0.0051 0.0063 + 8 -0.0104 0.0297 0.0392 + 9 -0.0188 0.0393 0.0100 + 10 -0.0356 0.0373 0.0167 diff --git a/test/Test_SetVelocity/V1.dat.save b/test/Test_SetVelocity/V1.dat.save index fb61e419a4..51163f5487 100644 --- a/test/Test_SetVelocity/V1.dat.save +++ b/test/Test_SetVelocity/V1.dat.save @@ -1,2 +1,2 @@ -#Frame V1 - 1 0.0000 -0.0000 -0.0000 0.0000 0.0000 0.0000 +#Frame V1 + 1 0.0000 -0.0000 -0.0000 diff --git a/test/Test_VectorMath/dotproduct.dat.save b/test/Test_VectorMath/dotproduct.dat.save index dede8ab195..6a9399bb70 100644 --- a/test/Test_VectorMath/dotproduct.dat.save +++ b/test/Test_VectorMath/dotproduct.dat.save @@ -1,102 +1,102 @@ -#Frame V1*V2 |V1|*|V2| acos(|V1|*|V2|) |V1|x|V2| - 1 -46.6178 -0.9872 170.8236 0.0440 -0.1531 0.0061 0.0000 0.0000 0.0000 - 2 -50.2176 -0.8771 151.2906 0.0580 -0.3500 -0.3239 0.0000 0.0000 0.0000 - 3 7.5778 0.1663 80.4245 0.1184 -0.4321 -0.8784 0.0000 0.0000 0.0000 - 4 35.0581 0.8288 34.0239 0.2826 0.1045 -0.4715 0.0000 0.0000 0.0000 - 5 16.2047 0.5503 56.6126 -0.4344 -0.7129 -0.0164 0.0000 0.0000 0.0000 - 6 34.9848 0.7969 37.1604 -0.0557 0.2726 0.5362 0.0000 0.0000 0.0000 - 7 37.9493 0.6365 50.4664 0.0009 0.3758 0.6735 0.0000 0.0000 0.0000 - 8 22.6751 0.5721 55.1055 -0.4280 0.0010 0.6997 0.0000 0.0000 0.0000 - 9 37.7760 0.8134 35.5745 -0.3147 -0.3826 0.3050 0.0000 0.0000 0.0000 - 10 39.0505 0.7929 37.5459 -0.5282 -0.2409 0.1852 0.0000 0.0000 0.0000 - 11 39.0002 0.8938 26.6484 0.0888 -0.0563 -0.4360 0.0000 0.0000 0.0000 - 12 31.4171 0.7322 42.9310 -0.3307 -0.5723 -0.1645 0.0000 0.0000 0.0000 - 13 36.0580 0.8849 27.7643 0.2546 0.0606 -0.3854 0.0000 0.0000 0.0000 - 14 17.8638 0.3557 69.1626 0.5889 0.0899 -0.7201 0.0000 0.0000 0.0000 - 15 41.3075 0.7977 37.0917 0.4111 0.3297 -0.2933 0.0000 0.0000 0.0000 - 16 43.2131 0.8038 36.5083 0.5600 0.1869 -0.0738 0.0000 0.0000 0.0000 - 17 35.5507 0.5940 53.5611 0.7390 0.3104 0.0685 0.0000 0.0000 0.0000 - 18 8.0075 0.1643 80.5433 0.7455 0.6012 0.2363 0.0000 0.0000 0.0000 - 19 4.2338 0.0833 85.2194 0.8302 0.5502 0.0334 0.0000 0.0000 0.0000 - 20 -9.6988 -0.2812 106.3315 0.9546 -0.0798 -0.0573 0.0000 0.0000 0.0000 - 21 -0.0944 -0.0023 90.1312 0.9992 0.0227 0.0332 0.0000 0.0000 0.0000 - 22 -0.7209 -0.0178 91.0176 0.7681 0.6385 -0.0451 0.0000 0.0000 0.0000 - 23 -11.4754 -0.2967 107.2565 0.8256 0.4767 0.0558 0.0000 0.0000 0.0000 - 24 0.3351 0.0077 89.5572 0.9647 -0.0796 -0.2510 0.0000 0.0000 0.0000 - 25 19.4134 0.3575 69.0508 0.8649 0.3278 -0.1291 0.0000 0.0000 0.0000 - 26 24.8251 0.5119 59.2116 0.4570 0.6549 0.3166 0.0000 0.0000 0.0000 - 27 2.5324 0.0544 86.8821 0.7218 0.6900 -0.0056 0.0000 0.0000 0.0000 - 28 7.1682 0.1933 78.8564 0.5097 0.7590 -0.3561 0.0000 0.0000 0.0000 - 29 5.3009 0.1114 83.6043 0.6722 0.3808 -0.6250 0.0000 0.0000 0.0000 - 30 4.8723 0.0997 84.2761 0.6507 0.3228 -0.6800 0.0000 0.0000 0.0000 - 31 -4.5548 -0.1415 98.1339 0.8798 0.3193 -0.3224 0.0000 0.0000 0.0000 - 32 7.4765 0.1914 78.9669 0.8175 0.4568 -0.2940 0.0000 0.0000 0.0000 - 33 5.3285 0.1368 82.1360 0.8938 0.4250 0.0425 0.0000 0.0000 0.0000 - 34 -11.5700 -0.2852 106.5684 0.7822 0.5323 0.1533 0.0000 0.0000 0.0000 - 35 0.9179 0.0199 88.8574 0.8380 0.5441 -0.0351 0.0000 0.0000 0.0000 - 36 -4.3621 -0.1001 95.7458 0.9453 0.1095 -0.2904 0.0000 0.0000 0.0000 - 37 -4.3202 -0.0840 94.8168 0.9416 -0.1275 -0.3003 0.0000 0.0000 0.0000 - 38 13.8043 0.3170 71.5200 0.6815 0.6548 -0.0793 0.0000 0.0000 0.0000 - 39 23.9997 0.6180 51.8266 0.6272 0.4734 -0.0212 0.0000 0.0000 0.0000 - 40 21.4647 0.4546 62.9632 0.7928 0.4009 0.0645 0.0000 0.0000 0.0000 - 41 24.9984 0.5365 57.5567 0.6592 0.5147 0.1130 0.0000 0.0000 0.0000 - 42 26.1534 0.6232 51.4499 0.6820 0.3805 -0.0413 0.0000 0.0000 0.0000 - 43 13.1743 0.3119 71.8270 0.7908 0.4845 -0.2065 0.0000 0.0000 0.0000 - 44 13.4017 0.3715 68.1896 0.6308 0.5149 -0.4461 0.0000 0.0000 0.0000 - 45 3.1767 0.1016 84.1668 0.7822 0.4858 -0.3766 0.0000 0.0000 0.0000 - 46 -15.2924 -0.4252 115.1661 0.7958 0.4298 0.0339 0.0000 0.0000 0.0000 - 47 -16.5711 -0.5623 124.2163 0.8217 0.0473 0.0797 0.0000 0.0000 0.0000 - 48 -25.7264 -0.7902 142.2018 0.5940 0.1334 0.0707 0.0000 0.0000 0.0000 - 49 -13.1113 -0.3317 109.3695 0.8478 0.1696 0.3774 0.0000 0.0000 0.0000 - 50 3.0719 0.1000 84.2583 0.8044 0.4708 0.3484 0.0000 0.0000 0.0000 - 51 16.3162 0.4308 64.4796 0.6042 0.6642 0.0901 0.0000 0.0000 0.0000 - 52 28.5805 0.7569 40.8100 0.5690 0.2915 -0.1359 0.0000 0.0000 0.0000 - 53 25.4156 0.8732 29.1664 0.3927 0.2590 -0.1272 0.0000 0.0000 0.0000 - 54 35.6566 0.8513 31.6414 0.4132 0.3143 -0.0757 0.0000 0.0000 0.0000 - 55 31.3243 0.7951 37.3392 0.5038 0.3152 -0.1212 0.0000 0.0000 0.0000 - 56 38.1130 0.7680 39.8239 0.5229 0.3455 -0.1319 0.0000 0.0000 0.0000 - 57 4.5901 0.1235 82.9083 0.8125 0.5482 -0.1555 0.0000 0.0000 0.0000 - 58 -12.3998 -0.3112 108.1295 0.6979 0.5796 0.2832 0.0000 0.0000 0.0000 - 59 -8.5828 -0.1774 100.2212 0.7317 0.3741 0.5414 0.0000 0.0000 0.0000 - 60 -6.9732 -0.1546 98.8908 0.9101 -0.2510 0.2913 0.0000 0.0000 0.0000 - 61 12.0788 0.3499 69.5215 0.7663 -0.5328 0.0810 0.0000 0.0000 0.0000 - 62 5.5910 0.1100 83.6831 0.9857 -0.1229 -0.0345 0.0000 0.0000 0.0000 - 63 -8.9131 -0.2316 103.3887 0.8855 0.3824 0.1264 0.0000 0.0000 0.0000 - 64 27.2502 0.4407 63.8504 0.7030 0.5534 -0.0724 0.0000 0.0000 0.0000 - 65 24.5618 0.3987 66.5053 0.6176 0.6777 0.0189 0.0000 0.0000 0.0000 - 66 -16.0215 -0.3877 112.8139 0.6116 0.5578 0.4054 0.0000 0.0000 0.0000 - 67 -9.6445 -0.2704 105.6868 0.7732 0.3625 0.4446 0.0000 0.0000 0.0000 - 68 -46.9067 -0.8900 152.8777 0.2057 0.3265 0.2427 0.0000 0.0000 0.0000 - 69 -62.0030 -0.8286 145.9570 0.2944 0.3980 -0.2613 0.0000 0.0000 0.0000 - 70 -54.0288 -0.7390 137.6422 0.5586 0.3222 0.1951 0.0000 0.0000 0.0000 - 71 -54.4169 -0.7468 138.3137 0.4295 0.3476 0.3702 0.0000 0.0000 0.0000 - 72 -43.6585 -0.6866 133.3580 0.4718 0.5230 0.1805 0.0000 0.0000 0.0000 - 73 -16.2242 -0.3499 110.4819 0.4364 0.8195 0.1248 0.0000 0.0000 0.0000 - 74 -33.0572 -0.4517 116.8505 0.6039 0.6378 -0.1567 0.0000 0.0000 0.0000 - 75 -42.1284 -0.5999 126.8610 0.5629 0.5679 -0.0278 0.0000 0.0000 0.0000 - 76 -46.4756 -0.6416 129.9113 0.2243 0.7025 -0.2112 0.0000 0.0000 0.0000 - 77 -61.8066 -0.8811 151.7698 0.2815 0.3653 0.1053 0.0000 0.0000 0.0000 - 78 -6.0186 -0.1015 95.8244 0.7042 0.6385 0.2936 0.0000 0.0000 0.0000 - 79 34.7534 0.5041 59.7251 0.2386 0.7780 0.2892 0.0000 0.0000 0.0000 - 80 -0.8181 -0.0133 90.7593 0.2263 0.9706 0.0805 0.0000 0.0000 0.0000 - 81 -5.7486 -0.0743 94.2596 0.2095 0.9056 0.3613 0.0000 0.0000 0.0000 - 82 -15.3482 -0.2866 106.6531 0.4217 0.7695 0.3846 0.0000 0.0000 0.0000 - 83 -22.1905 -0.3547 110.7763 0.3594 0.8278 0.2445 0.0000 0.0000 0.0000 - 84 11.1413 0.2052 78.1608 0.5736 0.7597 0.2275 0.0000 0.0000 0.0000 - 85 42.6999 0.6515 49.3490 0.2085 0.7039 0.1913 0.0000 0.0000 0.0000 - 86 37.1155 0.8175 35.1602 -0.4979 0.0140 0.2890 0.0000 0.0000 0.0000 - 87 53.2485 0.8824 28.0656 -0.3765 0.0949 0.2657 0.0000 0.0000 0.0000 - 88 29.2945 0.5572 56.1353 -0.2229 0.7145 0.3596 0.0000 0.0000 0.0000 - 89 16.1678 0.3276 70.8796 0.3017 0.8606 0.2472 0.0000 0.0000 0.0000 - 90 -1.4978 -0.0234 91.3388 0.5927 0.7426 0.3110 0.0000 0.0000 0.0000 - 91 0.8042 0.0152 89.1307 0.4122 0.8301 0.3752 0.0000 0.0000 0.0000 - 92 4.5255 0.0810 85.3555 0.2214 0.9237 0.3019 0.0000 0.0000 0.0000 - 93 -11.8184 -0.1689 99.7220 0.0762 0.9655 0.1827 0.0000 0.0000 0.0000 - 94 -26.0353 -0.4276 115.3154 0.0472 0.9025 0.0195 0.0000 0.0000 0.0000 - 95 0.6205 0.0123 89.2980 0.4754 0.7913 0.3844 0.0000 0.0000 0.0000 - 96 -6.9795 -0.1198 96.8819 0.3176 0.8443 0.4147 0.0000 0.0000 0.0000 - 97 17.6235 0.2654 74.6075 0.1592 0.9260 0.2162 0.0000 0.0000 0.0000 - 98 -4.1889 -0.0611 93.5014 -0.0037 0.9735 0.2203 0.0000 0.0000 0.0000 - 99 -14.5747 -0.2522 104.6050 0.2462 0.9330 0.0725 0.0000 0.0000 0.0000 - 100 -21.4950 -0.4243 115.1064 0.2160 0.8236 0.3083 0.0000 0.0000 0.0000 - 101 2.3523 0.0490 87.1898 0.3347 0.8171 0.4669 0.0000 0.0000 0.0000 +#Frame V1*V2 |V1|*|V2| acos(|V1|*|V2|) |V1|x|V2| + 1 -46.6178 -0.9872 170.8236 0.0440 -0.1531 0.0061 + 2 -50.2176 -0.8771 151.2906 0.0580 -0.3500 -0.3239 + 3 7.5778 0.1663 80.4245 0.1184 -0.4321 -0.8784 + 4 35.0581 0.8288 34.0239 0.2826 0.1045 -0.4715 + 5 16.2047 0.5503 56.6126 -0.4344 -0.7129 -0.0164 + 6 34.9848 0.7969 37.1604 -0.0557 0.2726 0.5362 + 7 37.9493 0.6365 50.4664 0.0009 0.3758 0.6735 + 8 22.6751 0.5721 55.1055 -0.4280 0.0010 0.6997 + 9 37.7760 0.8134 35.5745 -0.3147 -0.3826 0.3050 + 10 39.0505 0.7929 37.5459 -0.5282 -0.2409 0.1852 + 11 39.0002 0.8938 26.6484 0.0888 -0.0563 -0.4360 + 12 31.4171 0.7322 42.9310 -0.3307 -0.5723 -0.1645 + 13 36.0580 0.8849 27.7643 0.2546 0.0606 -0.3854 + 14 17.8638 0.3557 69.1626 0.5889 0.0899 -0.7201 + 15 41.3075 0.7977 37.0917 0.4111 0.3297 -0.2933 + 16 43.2131 0.8038 36.5083 0.5600 0.1869 -0.0738 + 17 35.5507 0.5940 53.5611 0.7390 0.3104 0.0685 + 18 8.0075 0.1643 80.5433 0.7455 0.6012 0.2363 + 19 4.2338 0.0833 85.2194 0.8302 0.5502 0.0334 + 20 -9.6988 -0.2812 106.3315 0.9546 -0.0798 -0.0573 + 21 -0.0944 -0.0023 90.1312 0.9992 0.0227 0.0332 + 22 -0.7209 -0.0178 91.0176 0.7681 0.6385 -0.0451 + 23 -11.4754 -0.2967 107.2565 0.8256 0.4767 0.0558 + 24 0.3351 0.0077 89.5572 0.9647 -0.0796 -0.2510 + 25 19.4134 0.3575 69.0508 0.8649 0.3278 -0.1291 + 26 24.8251 0.5119 59.2116 0.4570 0.6549 0.3166 + 27 2.5324 0.0544 86.8821 0.7218 0.6900 -0.0056 + 28 7.1682 0.1933 78.8564 0.5097 0.7590 -0.3561 + 29 5.3009 0.1114 83.6043 0.6722 0.3808 -0.6250 + 30 4.8723 0.0997 84.2761 0.6507 0.3228 -0.6800 + 31 -4.5548 -0.1415 98.1339 0.8798 0.3193 -0.3224 + 32 7.4765 0.1914 78.9669 0.8175 0.4568 -0.2940 + 33 5.3285 0.1368 82.1360 0.8938 0.4250 0.0425 + 34 -11.5700 -0.2852 106.5684 0.7822 0.5323 0.1533 + 35 0.9179 0.0199 88.8574 0.8380 0.5441 -0.0351 + 36 -4.3621 -0.1001 95.7458 0.9453 0.1095 -0.2904 + 37 -4.3202 -0.0840 94.8168 0.9416 -0.1275 -0.3003 + 38 13.8043 0.3170 71.5200 0.6815 0.6548 -0.0793 + 39 23.9997 0.6180 51.8266 0.6272 0.4734 -0.0212 + 40 21.4647 0.4546 62.9632 0.7928 0.4009 0.0645 + 41 24.9984 0.5365 57.5567 0.6592 0.5147 0.1130 + 42 26.1534 0.6232 51.4499 0.6820 0.3805 -0.0413 + 43 13.1743 0.3119 71.8270 0.7908 0.4845 -0.2065 + 44 13.4017 0.3715 68.1896 0.6308 0.5149 -0.4461 + 45 3.1767 0.1016 84.1668 0.7822 0.4858 -0.3766 + 46 -15.2924 -0.4252 115.1661 0.7958 0.4298 0.0339 + 47 -16.5711 -0.5623 124.2163 0.8217 0.0473 0.0797 + 48 -25.7264 -0.7902 142.2018 0.5940 0.1334 0.0707 + 49 -13.1113 -0.3317 109.3695 0.8478 0.1696 0.3774 + 50 3.0719 0.1000 84.2583 0.8044 0.4708 0.3484 + 51 16.3162 0.4308 64.4796 0.6042 0.6642 0.0901 + 52 28.5805 0.7569 40.8100 0.5690 0.2915 -0.1359 + 53 25.4156 0.8732 29.1664 0.3927 0.2590 -0.1272 + 54 35.6566 0.8513 31.6414 0.4132 0.3143 -0.0757 + 55 31.3243 0.7951 37.3392 0.5038 0.3152 -0.1212 + 56 38.1130 0.7680 39.8239 0.5229 0.3455 -0.1319 + 57 4.5901 0.1235 82.9083 0.8125 0.5482 -0.1555 + 58 -12.3998 -0.3112 108.1295 0.6979 0.5796 0.2832 + 59 -8.5828 -0.1774 100.2212 0.7317 0.3741 0.5414 + 60 -6.9732 -0.1546 98.8908 0.9101 -0.2510 0.2913 + 61 12.0788 0.3499 69.5215 0.7663 -0.5328 0.0810 + 62 5.5910 0.1100 83.6831 0.9857 -0.1229 -0.0345 + 63 -8.9131 -0.2316 103.3887 0.8855 0.3824 0.1264 + 64 27.2502 0.4407 63.8504 0.7030 0.5534 -0.0724 + 65 24.5618 0.3987 66.5053 0.6176 0.6777 0.0189 + 66 -16.0215 -0.3877 112.8139 0.6116 0.5578 0.4054 + 67 -9.6445 -0.2704 105.6868 0.7732 0.3625 0.4446 + 68 -46.9067 -0.8900 152.8777 0.2057 0.3265 0.2427 + 69 -62.0030 -0.8286 145.9570 0.2944 0.3980 -0.2613 + 70 -54.0288 -0.7390 137.6422 0.5586 0.3222 0.1951 + 71 -54.4169 -0.7468 138.3137 0.4295 0.3476 0.3702 + 72 -43.6585 -0.6866 133.3580 0.4718 0.5230 0.1805 + 73 -16.2242 -0.3499 110.4819 0.4364 0.8195 0.1248 + 74 -33.0572 -0.4517 116.8505 0.6039 0.6378 -0.1567 + 75 -42.1284 -0.5999 126.8610 0.5629 0.5679 -0.0278 + 76 -46.4756 -0.6416 129.9113 0.2243 0.7025 -0.2112 + 77 -61.8066 -0.8811 151.7698 0.2815 0.3653 0.1053 + 78 -6.0186 -0.1015 95.8244 0.7042 0.6385 0.2936 + 79 34.7534 0.5041 59.7251 0.2386 0.7780 0.2892 + 80 -0.8181 -0.0133 90.7593 0.2263 0.9706 0.0805 + 81 -5.7486 -0.0743 94.2596 0.2095 0.9056 0.3613 + 82 -15.3482 -0.2866 106.6531 0.4217 0.7695 0.3846 + 83 -22.1905 -0.3547 110.7763 0.3594 0.8278 0.2445 + 84 11.1413 0.2052 78.1608 0.5736 0.7597 0.2275 + 85 42.6999 0.6515 49.3490 0.2085 0.7039 0.1913 + 86 37.1155 0.8175 35.1602 -0.4979 0.0140 0.2890 + 87 53.2485 0.8824 28.0656 -0.3765 0.0949 0.2657 + 88 29.2945 0.5572 56.1353 -0.2229 0.7145 0.3596 + 89 16.1678 0.3276 70.8796 0.3017 0.8606 0.2472 + 90 -1.4978 -0.0234 91.3388 0.5927 0.7426 0.3110 + 91 0.8042 0.0152 89.1307 0.4122 0.8301 0.3752 + 92 4.5255 0.0810 85.3555 0.2214 0.9237 0.3019 + 93 -11.8184 -0.1689 99.7220 0.0762 0.9655 0.1827 + 94 -26.0353 -0.4276 115.3154 0.0472 0.9025 0.0195 + 95 0.6205 0.0123 89.2980 0.4754 0.7913 0.3844 + 96 -6.9795 -0.1198 96.8819 0.3176 0.8443 0.4147 + 97 17.6235 0.2654 74.6075 0.1592 0.9260 0.2162 + 98 -4.1889 -0.0611 93.5014 -0.0037 0.9735 0.2203 + 99 -14.5747 -0.2522 104.6050 0.2462 0.9330 0.0725 + 100 -21.4950 -0.4243 115.1064 0.2160 0.8236 0.3083 + 101 2.3523 0.0490 87.1898 0.3347 0.8171 0.4669 From d8b04a2e4b713d76bd83735a055b4fcc03ecc153 Mon Sep 17 00:00:00 2001 From: "Daniel R. Roe" Date: Mon, 6 Jan 2020 09:43:35 -0500 Subject: [PATCH 086/162] DRR - Handle append of vector data sets inside DataIO_Std to handle case where data being read in type does not match existing set type --- src/DataIO_Std.cpp | 55 ++++++++++++++++++++++++++++++++++++--------- src/DataSetList.cpp | 4 ++++ 2 files changed, 48 insertions(+), 11 deletions(-) diff --git a/src/DataIO_Std.cpp b/src/DataIO_Std.cpp index 3f22549b45..12181a45a6 100644 --- a/src/DataIO_Std.cpp +++ b/src/DataIO_Std.cpp @@ -684,6 +684,16 @@ int DataIO_Std::Read_3D(std::string const& fname, int DataIO_Std::Read_Vector(std::string const& fname, DataSetList& datasetlist, std::string const& dsname) { + // See if set exists + DataSet* ds = datasetlist.CheckForSet( dsname ); + if (ds != 0) { + mprintf("\tAppending vector data to set '%s'\n", ds->legend()); + // Set exists. + if (ds->Group() != DataSet::VECTOR_1D) { + mprinterr("Error: Cannot append vector data to non-vector set '%s'\n", ds->legend()); + return 1; + } + } // Buffer file BufferedLine buffer; if (buffer.OpenFileRead( fname )) return 1; @@ -711,27 +721,50 @@ int DataIO_Std::Read_Vector(std::string const& fname, mprinterr("Error: Expected 3, 6, or 9 columns of vector data, got %i.\n", ncols); return 1; } - bool hasOrigins = false; + bool hasOrigins; if (ncols >= 6) { nv = 6; mprintf("\tReading vector X Y Z and origin X Y Z values.\n"); hasOrigins = true; + // If set already exists, see if it doesnt have origins. + if (ds != 0 && ds->Type() == DataSet::VEC_XYZ) { + mprintf("Warning: Existing set '%s' does not have origin data.\n", ds->legend()); + mprintf("Warning: Existing set will be filled with zeroed origin data.\n"); + DataSet* oldSet = datasetlist.PopSet( ds ); + DataSet_Vector_OXYZ* voxyz = + (DataSet_Vector_OXYZ*)datasetlist.AddSet(DataSet::VEC_OXYZ, oldSet->Meta()); + if (voxyz == 0) return 1; + // Make sure dimension info matches + voxyz->SetDim(Dimension::X, oldSet->Dim(Dimension::X)); + // Add existing vector values to set with origin at 0.0. + for (unsigned int idx = 0; idx < oldSet->Size(); idx++) + voxyz->AddVxyzo( ((DataSet_Vector*)oldSet)->VXYZ(idx), Vec3(0.0) ); + ds = (DataSet*)voxyz; + } } else { nv = 3; mprintf("\tReading vector X Y Z values.\n"); + hasOrigins = false; + // If set already exists, see if it has origins. + if (ds != 0 && ds->Type() == DataSet::VEC_OXYZ) { + mprintf("Warning: Existing set '%s' has origin data.\n", ds->legend()); + mprintf("Warning: Existing set will be filled with zeroed origin data.\n"); + } + } + // Create set if it doesnt yet exist; + if (ds == 0) { + DataSet::DataType dtype; + if (hasOrigins) + dtype = DataSet::VEC_OXYZ; + else + dtype = DataSet::VEC_XYZ; + ds = datasetlist.AddSet(dtype, dsname); + if (ds == 0) return 1; } - // Create set - DataSet_Vector* ds; - if (hasOrigins) - ds = new DataSet_Vector_OXYZ(); - else - ds = new DataSet_Vector_XYZ(); - if (ds == 0) return 1; - ds->SetMeta( dsname ); // Read vector data double vec[6]; std::fill(vec, vec+6, 0.0); - size_t ndata = 0; + size_t ndata = ds->Size(); while (linebuffer != 0) { if (hasIndex) ntokens = sscanf(linebuffer, "%*f %lf %lf %lf %lf %lf %lf", @@ -747,7 +780,7 @@ int DataIO_Std::Read_Vector(std::string const& fname, ds->Add( ndata++, vec ); linebuffer = buffer.Line(); } - return (datasetlist.AddOrAppendSets("", DataSetList::Darray(), DataSetList::DataListType(1, ds))); + return 0; } // DataIO_Std::Read_Mat3x3() diff --git a/src/DataSetList.cpp b/src/DataSetList.cpp index f9c857d99b..5b688bcfa0 100644 --- a/src/DataSetList.cpp +++ b/src/DataSetList.cpp @@ -458,6 +458,10 @@ DataSet* DataSetList::AddSet(DataSet::DataType inType, MetaData const& metaIn) # ifdef TIMER time_setup_.Start(); # endif + //mprintf("DEBUG: Adding and setting up data set '%s'\n", meta.PrintName().c_str()); + //if (meta.TimeSeries() == MetaData::UNKNOWN_TS) + // mprintf("DEBUG: UNKNOWN_TS\n"); + //mprintf("DEBUG: ndim= %i\n", DS->Ndim()); // If 1 dim set and time series status not set, set to true. if (meta.TimeSeries() == MetaData::UNKNOWN_TS && DS->Ndim() == 1) { meta.SetTimeSeries( MetaData::IS_TS ); From 14b1cd0b02eb1d573da6b5cb41fae4585eb100ef Mon Sep 17 00:00:00 2001 From: "Daniel R. Roe" Date: Mon, 6 Jan 2020 10:24:06 -0500 Subject: [PATCH 087/162] DRR - Add reverse append test --- test/Test_ReadData/RunTest.sh | 13 +++++++++++-- test/Test_ReadData/v7and6.dat.save | 21 +++++++++++++++++++++ 2 files changed, 32 insertions(+), 2 deletions(-) create mode 100644 test/Test_ReadData/v7and6.dat.save diff --git a/test/Test_ReadData/RunTest.sh b/test/Test_ReadData/RunTest.sh index 3cda24d154..a69409d36d 100755 --- a/test/Test_ReadData/RunTest.sh +++ b/test/Test_ReadData/RunTest.sh @@ -5,13 +5,13 @@ CleanFiles vector.in v6and7.dat rex-d.dat MD.ene.dat out.dx out.dat \ truncoct.dat out?.dx append.dx append.dat temp.dat \ truncsparse.dat temp2.dat truncoct.dat.save sparse.dat \ - xyz.dat + xyz.dat v7and6.dat TESTNAME='Read data tests' INPUT="-i vector.in" # Test read/append of vector dataset -UNITNAME='Read vector data test' +UNITNAME='Read vector data test (no origins, origins)' cat > vector.in < vector.in < vector.in < Date: Mon, 6 Jan 2020 10:24:20 -0500 Subject: [PATCH 088/162] DRR - Ensure old memory is freed --- src/DataIO_Std.cpp | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/src/DataIO_Std.cpp b/src/DataIO_Std.cpp index 12181a45a6..d8895ab5ee 100644 --- a/src/DataIO_Std.cpp +++ b/src/DataIO_Std.cpp @@ -729,7 +729,7 @@ int DataIO_Std::Read_Vector(std::string const& fname, // If set already exists, see if it doesnt have origins. if (ds != 0 && ds->Type() == DataSet::VEC_XYZ) { mprintf("Warning: Existing set '%s' does not have origin data.\n", ds->legend()); - mprintf("Warning: Existing set will be filled with zeroed origin data.\n"); + mprintf("Warning: Existing set will be filled with zeroed origin data where none exists.\n"); DataSet* oldSet = datasetlist.PopSet( ds ); DataSet_Vector_OXYZ* voxyz = (DataSet_Vector_OXYZ*)datasetlist.AddSet(DataSet::VEC_OXYZ, oldSet->Meta()); @@ -740,6 +740,8 @@ int DataIO_Std::Read_Vector(std::string const& fname, for (unsigned int idx = 0; idx < oldSet->Size(); idx++) voxyz->AddVxyzo( ((DataSet_Vector*)oldSet)->VXYZ(idx), Vec3(0.0) ); ds = (DataSet*)voxyz; + // Free old set memory + delete oldSet; } } else { nv = 3; @@ -748,7 +750,7 @@ int DataIO_Std::Read_Vector(std::string const& fname, // If set already exists, see if it has origins. if (ds != 0 && ds->Type() == DataSet::VEC_OXYZ) { mprintf("Warning: Existing set '%s' has origin data.\n", ds->legend()); - mprintf("Warning: Existing set will be filled with zeroed origin data.\n"); + mprintf("Warning: Existing set will be filled with zeroed origin data where none exists.\n"); } } // Create set if it doesnt yet exist; From 6ab9273a9cce4e682dbecd4044612de70cba45f9 Mon Sep 17 00:00:00 2001 From: "Daniel R. Roe" Date: Mon, 6 Jan 2020 10:51:05 -0500 Subject: [PATCH 089/162] DRR - Add MemAlloc and CopyBlock for vector sets --- src/DataSet_Vector.cpp | 16 +++++++++++++++- src/DataSet_Vector.h | 2 ++ src/DataSet_Vector_OXYZ.cpp | 16 ++++++++++++++++ src/DataSet_Vector_OXYZ.h | 2 ++ src/DataSet_Vector_XYZ.cpp | 12 ++++++++++++ src/DataSet_Vector_XYZ.h | 2 ++ 6 files changed, 49 insertions(+), 1 deletion(-) diff --git a/src/DataSet_Vector.cpp b/src/DataSet_Vector.cpp index aa73aa8560..4d711e9873 100644 --- a/src/DataSet_Vector.cpp +++ b/src/DataSet_Vector.cpp @@ -1,5 +1,6 @@ #include // abs, intel 11 compilers choke on std::abs #include // sqrt +#include // copy #include "DataSet_Vector.h" #include "Constants.h" // For spherical harmonics norm. #include "Corr.h" @@ -25,11 +26,24 @@ size_t DataSet_Vector::internalSize() const { return mySize; } -/** Allocate vector array. */ +/** Reserve vector array. */ void DataSet_Vector::internalAlloc(SizeArray const& Nin) { vectors_.reserve( Nin[0] ); } +/** Allocate vector array. */ +void DataSet_Vector::internalMemalloc(SizeArray const& Nin) { + vectors_.resize( Nin[0] ); +} + +/** Copy from given vector set to this set. */ +void DataSet_Vector::internalCopyBlock(size_t startIdx, DataSet_Vector const& setIn, + size_t pos, size_t nelts) +{ + Varray::const_iterator ptr = setIn.begin() + pos; + std::copy(ptr, ptr + nelts, vectors_.begin() + startIdx); +} + /** Append to vector array. */ void DataSet_Vector::internalAppend(const DataSet_Vector* dsIn) { Varray const& vIn = dsIn->vectors(); diff --git a/src/DataSet_Vector.h b/src/DataSet_Vector.h index d1aefe849b..181429429c 100644 --- a/src/DataSet_Vector.h +++ b/src/DataSet_Vector.h @@ -38,6 +38,8 @@ class DataSet_Vector : public DataSet { protected: size_t internalSize() const; void internalAlloc(SizeArray const&); + void internalMemalloc(SizeArray const&); + void internalCopyBlock(size_t, DataSet_Vector const&, size_t, size_t); void internalAppend(DataSet_Vector const*); void internalReset(); inline void internalResize(size_t, Vec3 const&); diff --git a/src/DataSet_Vector_OXYZ.cpp b/src/DataSet_Vector_OXYZ.cpp index c68f484f66..095ad11143 100644 --- a/src/DataSet_Vector_OXYZ.cpp +++ b/src/DataSet_Vector_OXYZ.cpp @@ -20,6 +20,22 @@ int DataSet_Vector_OXYZ::Allocate(SizeArray const& Nin) { return 0; } +int DataSet_Vector_OXYZ::MemAlloc(SizeArray const& Nin) { + if (!Nin.empty()) { + internalMemalloc(Nin); + origins_.resize( Nin[0] ); + } + return 0; +} + +void DataSet_Vector_OXYZ::CopyBlock(size_t startIdx, DataSet const* dptrIn, size_t pos, size_t nelts) +{ + DataSet_Vector_OXYZ const& setIn = static_cast( *dptrIn ); + internalCopyBlock(startIdx, setIn, pos, nelts); + Varray::const_iterator ptr = setIn.origins_.begin() + pos; + std::copy( ptr, ptr + nelts, origins_.begin() + startIdx ); +} + // DataSet_Vector_OXYZ::WriteBuffer() void DataSet_Vector_OXYZ::WriteBuffer(CpptrajFile &cbuffer, SizeArray const& pIn) const { if (pIn[0] >= Size()) { diff --git a/src/DataSet_Vector_OXYZ.h b/src/DataSet_Vector_OXYZ.h index 137145c657..975e910ae8 100644 --- a/src/DataSet_Vector_OXYZ.h +++ b/src/DataSet_Vector_OXYZ.h @@ -9,6 +9,8 @@ class DataSet_Vector_OXYZ : public DataSet_Vector { // ----- DataSet functions ------------------- size_t MemUsageInBytes() const; int Allocate(SizeArray const&); + int MemAlloc(SizeArray const&); + void CopyBlock(size_t, DataSet const*, size_t, size_t); void WriteBuffer(CpptrajFile&,SizeArray const&) const; inline void Add(size_t, const void*); # ifdef MPI diff --git a/src/DataSet_Vector_XYZ.cpp b/src/DataSet_Vector_XYZ.cpp index 06f354d9c2..a0b0c1f2dc 100644 --- a/src/DataSet_Vector_XYZ.cpp +++ b/src/DataSet_Vector_XYZ.cpp @@ -17,6 +17,18 @@ int DataSet_Vector_XYZ::Allocate(SizeArray const& Nin) { return 0; } +int DataSet_Vector_XYZ::MemAlloc(SizeArray const& Nin) { + if (!Nin.empty()) + internalMemalloc(Nin); + return 0; +} + +void DataSet_Vector_XYZ::CopyBlock(size_t startIdx, DataSet const* dptrIn, size_t pos, size_t nelts) +{ + DataSet_Vector const& setIn = static_cast( *dptrIn ); + internalCopyBlock(startIdx, setIn, pos, nelts); +} + // DataSet_Vector_XYZ::WriteBuffer void DataSet_Vector_XYZ::WriteBuffer(CpptrajFile& cbuffer, SizeArray const& pIn) const { if (pIn[0] >= Size()) { diff --git a/src/DataSet_Vector_XYZ.h b/src/DataSet_Vector_XYZ.h index 6796ac34ba..7e164eea39 100644 --- a/src/DataSet_Vector_XYZ.h +++ b/src/DataSet_Vector_XYZ.h @@ -9,6 +9,8 @@ class DataSet_Vector_XYZ : public DataSet_Vector { // ----- DataSet functions ------------------- size_t MemUsageInBytes() const; int Allocate(SizeArray const&); + int MemAlloc(SizeArray const&); + void CopyBlock(size_t, DataSet const*, size_t, size_t); void WriteBuffer(CpptrajFile&,SizeArray const&) const; int Append(DataSet*); inline void Add(size_t, const void*); From 7c9f10b96cdfcb3489f999e314be696d69e81d2b Mon Sep 17 00:00:00 2001 From: "Daniel R. Roe" Date: Mon, 6 Jan 2020 10:56:49 -0500 Subject: [PATCH 090/162] DRR - Add CopyBlock and MemAlloc routines to float and integer data sets --- src/DataSet_float.cpp | 15 +++++++++++++++ src/DataSet_float.h | 2 ++ src/DataSet_integer_mem.cpp | 15 +++++++++++++++ src/DataSet_integer_mem.h | 2 ++ 4 files changed, 34 insertions(+) diff --git a/src/DataSet_float.cpp b/src/DataSet_float.cpp index 69acfb8ecb..4ff1ee7ba4 100644 --- a/src/DataSet_float.cpp +++ b/src/DataSet_float.cpp @@ -8,6 +8,21 @@ int DataSet_float::Allocate( SizeArray const& sizeIn ) { return 0; } +/** Allocate space in Data_ array. */ +int DataSet_float::MemAlloc( SizeArray const& sizeIn ) { + if (!sizeIn.empty()) + Data_.resize( sizeIn[0] ); + return 0; +} + +// DataSet_float::CopyBlock() +void DataSet_float::CopyBlock(size_t startIdx, DataSet const* dptrIn, size_t pos, size_t nelts) +{ + DataSet_float const& setIn = static_cast( *dptrIn ); + const float* ptr = (&(setIn.Data_[0])+pos); + std::copy( ptr, ptr + nelts, &(Data_[0]) + startIdx ); +} + // DataSet_float::Add() /** Insert data vIn at frame. */ void DataSet_float::Add(size_t frame, const void* vIn) { diff --git a/src/DataSet_float.h b/src/DataSet_float.h index 3c56d407bd..7bed6b349d 100644 --- a/src/DataSet_float.h +++ b/src/DataSet_float.h @@ -25,6 +25,8 @@ class DataSet_float : public DataSet_1D { void WriteBuffer(CpptrajFile&, SizeArray const&) const; int Append(DataSet*); size_t MemUsageInBytes() const { return Data_.size() * sizeof(float); } + int MemAlloc(SizeArray const&); + void CopyBlock(size_t, const DataSet*, size_t, size_t); // ----- DataSet_1D functions ---------------- double Dval(size_t idx) const { return (double)Data_[idx]; } double Xcrd(size_t idx) const { return Dim(0).Coord(idx); } diff --git a/src/DataSet_integer_mem.cpp b/src/DataSet_integer_mem.cpp index 81f93aebe5..bac4eeca8e 100644 --- a/src/DataSet_integer_mem.cpp +++ b/src/DataSet_integer_mem.cpp @@ -9,6 +9,21 @@ int DataSet_integer_mem::Allocate( SizeArray const& sizeIn ) { return 0; } +/** Allocate space in Data_ array. */ +int DataSet_integer_mem::MemAlloc( SizeArray const& sizeIn ) { + if (!sizeIn.empty()) + Data_.resize( sizeIn[0] ); + return 0; +} + +// DataSet_integer_mem::CopyBlock() +void DataSet_integer_mem::CopyBlock(size_t startIdx, DataSet const* dptrIn, size_t pos, size_t nelts) +{ + DataSet_integer_mem const& setIn = static_cast( *dptrIn ); + const int* ptr = (&(setIn.Data_[0])+pos); + std::copy( ptr, ptr + nelts, &(Data_[0]) + startIdx ); +} + // DataSet_integer_mem::Add() /** Insert data vIn at frame. */ void DataSet_integer_mem::Add(size_t frame, const void* vIn) { diff --git a/src/DataSet_integer_mem.h b/src/DataSet_integer_mem.h index 58ad304086..24412971a2 100644 --- a/src/DataSet_integer_mem.h +++ b/src/DataSet_integer_mem.h @@ -32,6 +32,8 @@ class DataSet_integer_mem : public DataSet_integer { void WriteBuffer(CpptrajFile&, SizeArray const&) const; int Append(DataSet*); size_t MemUsageInBytes() const { return Data_.size() * sizeof(int); } + int MemAlloc(SizeArray const&); + void CopyBlock(size_t, const DataSet*, size_t, size_t); // ------------------------------------------- //typedef std::vector::iterator iterator; //iterator begin() { return Data_.begin(); } From 3bd2b7e1a271c5c15622f8071cfb9c5906f1c86e Mon Sep 17 00:00:00 2001 From: "Daniel R. Roe" Date: Mon, 6 Jan 2020 11:00:59 -0500 Subject: [PATCH 091/162] DRR - Add initial test for data set blocks loop --- test/Test_Control/RunTest.sh | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/test/Test_Control/RunTest.sh b/test/Test_Control/RunTest.sh index cf552d4f0d..fe8820cf20 100755 --- a/test/Test_Control/RunTest.sh +++ b/test/Test_Control/RunTest.sh @@ -3,7 +3,8 @@ . ../MasterTest.sh CleanFiles for.in TRP.vec.dat TRP.rms.dat TRP.CA.dist.dat TRP.tocenter.dat \ - nh.dat rms.nofit.dat last10.dat distance.dat nested.agr + nh.dat rms.nofit.dat last10.dat distance.dat nested.agr \ + EndToEnd0.dat EndToEnd1.dat temp.*.dat TESTNAME='Loop tests' Requires netcdf maxthreads 10 @@ -118,6 +119,7 @@ writedata EndToEnd1.dat DS:0 DS:10 DS:20 DS:30 DS:40 DS:50 DS:60 DS:70 DS:80 DS: list EOF RunCpptraj "$UNITNAME" +DoTest EndToEnd1.dat.save EndToEnd1.dat EndTest From 7f786ca9a64ed71e20bf54fddef973d278187145 Mon Sep 17 00:00:00 2001 From: "Daniel R. Roe" Date: Mon, 6 Jan 2020 11:01:15 -0500 Subject: [PATCH 092/162] DRR - Improve error message --- src/ForLoop_dataSetBlocks.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/ForLoop_dataSetBlocks.cpp b/src/ForLoop_dataSetBlocks.cpp index d0100084ef..161131eb59 100644 --- a/src/ForLoop_dataSetBlocks.cpp +++ b/src/ForLoop_dataSetBlocks.cpp @@ -80,7 +80,7 @@ bool ForLoop_dataSetBlocks::EndFor(DataSetList& DSL) { // Allocate memory DataSet::SizeArray dsSize(1, blocksize_); if ( currentSet_->MemAlloc( dsSize ) ) { - mprinterr("Error: Could not allocate dataSetBlocks subset.\n"); + mprinterr("Internal Error: Could not allocate dataSetBlocks subset; not yet supported.\n"); return true; } // Copy block From 06d089af3701895dee4fa97c8dcbec01dc43df69 Mon Sep 17 00:00:00 2001 From: "Daniel R. Roe" Date: Mon, 6 Jan 2020 11:01:40 -0500 Subject: [PATCH 093/162] DRR - Minor version bump; vector output for vectors with no origin data is different. --- src/Version.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/Version.h b/src/Version.h index b254030f4a..288607a342 100644 --- a/src/Version.h +++ b/src/Version.h @@ -12,7 +12,7 @@ * Whenever a number that precedes is incremented, all subsequent * numbers should be reset to 0. */ -#define CPPTRAJ_INTERNAL_VERSION "V4.24.0" +#define CPPTRAJ_INTERNAL_VERSION "V4.25.0" /// PYTRAJ relies on this #define CPPTRAJ_VERSION_STRING CPPTRAJ_INTERNAL_VERSION #endif From c7d7d9c4efd1760b0cf921db106588926a6ea76a Mon Sep 17 00:00:00 2001 From: "Daniel R. Roe" Date: Mon, 6 Jan 2020 11:22:56 -0500 Subject: [PATCH 094/162] DRR - Add a cumulative mode for datasetblocks --- src/ForLoop_dataSetBlocks.cpp | 58 +++++++++++++++++++++++++++++------ src/ForLoop_dataSetBlocks.h | 3 ++ test/Test_Control/RunTest.sh | 5 +++ 3 files changed, 57 insertions(+), 9 deletions(-) diff --git a/src/ForLoop_dataSetBlocks.cpp b/src/ForLoop_dataSetBlocks.cpp index 161131eb59..c11e9c2801 100644 --- a/src/ForLoop_dataSetBlocks.cpp +++ b/src/ForLoop_dataSetBlocks.cpp @@ -10,12 +10,17 @@ ForLoop_dataSetBlocks::ForLoop_dataSetBlocks() : currentSet_(0), blocksize_(0), blockoffset_(0), - idx_(0) + idx_(0), + mode_(BLOCKS) {} int ForLoop_dataSetBlocks::SetupFor(CpptrajState& State, ArgList& argIn) { - // datasetblocks blocksize <#> [blockoffset <#>] + // datasetblocks blocksize <#> [blockoffset <#>] [cumulative] + if (argIn.hasKey("cumulative")) + mode_ = CUMULATIVE; + else + mode_ = BLOCKS; sourceSetName_ = argIn.GetStringKey("datasetblocks"); if (sourceSetName_.empty()) { mprinterr("Error: No data set name given.\n"); @@ -27,8 +32,16 @@ int ForLoop_dataSetBlocks::SetupFor(CpptrajState& State, ArgList& argIn) return 1; } blockoffset_ = argIn.getKeyInt("blockoffset", 0); - if (blockoffset_ == 0) { - mprintf("Warning: 'blockoffset' not specified, using 'blocksize'.\n"); + if (mode_ == BLOCKS) { + if (blockoffset_ == 0) { + mprintf("Warning: 'blockoffset' not specified, using 'blocksize'.\n"); + blockoffset_ = blocksize_; + } + } else if (mode_ == CUMULATIVE) { + if (blockoffset_ != 0) { + mprinterr("Error: 'blockoffset' cannot be specified with 'cumulative'\n"); + return 1; + } blockoffset_ = blocksize_; } idx_ = argIn.getKeyInt("blockstart", 0); @@ -64,13 +77,32 @@ int ForLoop_dataSetBlocks::BeginFor(DataSetList const& DSL) { } bool ForLoop_dataSetBlocks::EndFor(DataSetList& DSL) { - // Check if done by seeing if the current start value is outside the data set. - if (idx_ < 0 || idx_ >= (long int)sourceSet_->Size()) return true; // Determine stop of the current block. long int block_end = idx_ + blocksize_; + long int dsidx; + // Check if done. + switch (mode_) { + case BLOCKS: + // Check if done by seeing if the current start value is outside the data set. + if (idx_ < 0 || idx_ >= (long int)sourceSet_->Size()) return true; + dsidx = idx_; + break; + case CUMULATIVE: + // Check if done by seeing if current end value is outside the data set. + //if (block_end < 0) { + // if ( block_end < blockoffset_ ) return true; + //} else if (block_end > (long int)sourceSet_->size()) { + //mprintf("DEBUG: Block end %li set size %zu\n", block_end, sourceSet_->Size()); + if ( block_end >= (long int)sourceSet_->Size() + blockoffset_ ) return true; + // Ensure block end is not too high + if (block_end > (long int)sourceSet_->Size()) + block_end = (long int)sourceSet_->Size(); + dsidx = block_end; + break; + } mprintf("DEBUG: Block %li to %li\n", idx_, block_end); // Create the subset - currentSet_ = DSL.AddSet(sourceSet_->Type(), MetaData(VarName(), idx_)); + currentSet_ = DSL.AddSet(sourceSet_->Type(), MetaData(VarName(), dsidx)); if (currentSet_ == 0) { mprinterr("Error: Could not create dataSetBlocks subset.\n"); return true; @@ -85,7 +117,15 @@ bool ForLoop_dataSetBlocks::EndFor(DataSetList& DSL) { } // Copy block currentSet_->CopyBlock(0, sourceSet_, idx_, blocksize_); - // Increment the start - idx_ += blockoffset_; + switch (mode_) { + case BLOCKS: + // Increment the start + idx_ += blockoffset_; + break; + case CUMULATIVE: + // Increment the size + blocksize_ += blockoffset_; + break; + } return false; } diff --git a/src/ForLoop_dataSetBlocks.h b/src/ForLoop_dataSetBlocks.h index 192e4f143e..6360ea3060 100644 --- a/src/ForLoop_dataSetBlocks.h +++ b/src/ForLoop_dataSetBlocks.h @@ -12,11 +12,14 @@ class ForLoop_dataSetBlocks : public ForLoop { bool EndFor(DataSetList&); private: + enum ModeType { BLOCKS=0, CUMULATIVE }; + DataSet* sourceSet_; ///< Set to loop over DataSet* currentSet_; ///< Current subset std::string sourceSetName_; long int blocksize_; ///< Size of blocks long int blockoffset_; ///< Block offset long int idx_; ///< Current index into sourceSet_ + ModeType mode_; ///< Current mode }; #endif diff --git a/test/Test_Control/RunTest.sh b/test/Test_Control/RunTest.sh index fe8820cf20..f92e885879 100755 --- a/test/Test_Control/RunTest.sh +++ b/test/Test_Control/RunTest.sh @@ -116,6 +116,11 @@ for DS datasetblocks EndToEndAll blocksize 10 i=1;i++ writedata temp.\$i.dat \$DS done writedata EndToEnd1.dat DS:0 DS:10 DS:20 DS:30 DS:40 DS:50 DS:60 DS:70 DS:80 DS:90 + +for ES datasetblocks EndToEndAll blocksize 10 cumulative j=\$i;j++ + writedata temp.\$j.dat \$ES +done +writedata EndToEnd2.agr ES:10 ES:20 ES:30 ES:40 ES:50 ES:60 ES:70 ES:80 ES:90 ES:100 list EOF RunCpptraj "$UNITNAME" From c99f03c47cdcf7678b006e92b094ec03db136c44 Mon Sep 17 00:00:00 2001 From: "Daniel R. Roe" Date: Mon, 6 Jan 2020 11:32:31 -0500 Subject: [PATCH 095/162] DRR - Hide some debug info. Use CheckForSet to avoid spurious warnings. --- src/ControlBlock_For.cpp | 13 +++++++------ src/DataSetList.cpp | 4 ++-- 2 files changed, 9 insertions(+), 8 deletions(-) diff --git a/src/ControlBlock_For.cpp b/src/ControlBlock_For.cpp index 251e5dc67a..734aafabd0 100644 --- a/src/ControlBlock_For.cpp +++ b/src/ControlBlock_For.cpp @@ -91,11 +91,11 @@ int ControlBlock_For::SetupBlock(CpptrajState& State, ArgList& argIn) { argIn.MarkArg(iarg); } forLoopIdxs.push_back( argIn.Nargs() ); - mprintf("DEBUG: For loop indices:"); - for (std::vector::const_iterator it = forLoopIdxs.begin(); - it != forLoopIdxs.end(); ++it) - mprintf(" %i", *it); - mprintf("\n"); + //mprintf("DEBUG: For loop indices:"); + //for (std::vector::const_iterator it = forLoopIdxs.begin(); + // it != forLoopIdxs.end(); ++it) + // mprintf(" %i", *it); + //mprintf("\n"); if (forLoopIdxs.size() < 2) { mprinterr("Error: No recognized for loop arguments.\n"); return 1; @@ -106,7 +106,8 @@ int ControlBlock_For::SetupBlock(CpptrajState& State, ArgList& argIn) { ArgList forLoopArgs; for (int jdx = forLoopIdxs[idx-1]; jdx < forLoopIdxs[idx]; ++jdx) forLoopArgs.AddArg( argIn[jdx] ); - forLoopArgs.PrintDebug(); + if (State.Debug() > 0) + forLoopArgs.PrintDebug(); ForLoop& forloop = static_cast( *(Vars_[idx-1]) ); if ( forloop.SetupFor( State, forLoopArgs ) ) { mprinterr("Error: For loop setup failed.\n"); diff --git a/src/DataSetList.cpp b/src/DataSetList.cpp index 5b688bcfa0..2467306b52 100644 --- a/src/DataSetList.cpp +++ b/src/DataSetList.cpp @@ -818,7 +818,7 @@ const /** Get a value from specified DataSet as a string. */ std::string DataSetList::GetVariable(std::string const& varnameIn) const { - DataSet* ds = GetDataSet( varnameIn ); + DataSet* ds = CheckForSet( varnameIn ); if (ds == 0) return std::string(); std::string val; if (ds->Size() > 0) { @@ -861,7 +861,7 @@ std::string DataSetList::ReplaceVariables(std::string const& varnameIn) const { break; } var_in_arg = varname.substr(pos+1, len-1); - DataSet* ds = GetDataSet( var_in_arg ); + DataSet* ds = CheckForSet( var_in_arg ); if (ds == 0) { mprinterr("Error: Unrecognized variable in command: %s\n", var_in_arg.c_str()); return std::string(); From c174ff0a9ba81126f39dfd8bb3d162d979d27c84 Mon Sep 17 00:00:00 2001 From: "Daniel R. Roe" Date: Tue, 7 Jan 2020 08:14:13 -0500 Subject: [PATCH 096/162] DRR - Add 'firstblock' keyword to cumulative datasetblocks to set size of first block --- src/ForLoop_dataSetBlocks.cpp | 5 +++-- test/Test_Control/RunTest.sh | 4 ++-- 2 files changed, 5 insertions(+), 4 deletions(-) diff --git a/src/ForLoop_dataSetBlocks.cpp b/src/ForLoop_dataSetBlocks.cpp index c11e9c2801..e86e81c1e5 100644 --- a/src/ForLoop_dataSetBlocks.cpp +++ b/src/ForLoop_dataSetBlocks.cpp @@ -16,7 +16,7 @@ ForLoop_dataSetBlocks::ForLoop_dataSetBlocks() : int ForLoop_dataSetBlocks::SetupFor(CpptrajState& State, ArgList& argIn) { - // datasetblocks blocksize <#> [blockoffset <#>] [cumulative] + // datasetblocks blocksize <#> [blockoffset <#>] [cumulative [firstblock <#>]] if (argIn.hasKey("cumulative")) mode_ = CUMULATIVE; else @@ -43,12 +43,13 @@ int ForLoop_dataSetBlocks::SetupFor(CpptrajState& State, ArgList& argIn) return 1; } blockoffset_ = blocksize_; + blocksize_ = argIn.getKeyInt("firstblock", blocksize_); } idx_ = argIn.getKeyInt("blockstart", 0); // Set up loop variable if (SetupLoopVar( State.DSL(), argIn.GetStringNext() )) return 1; // Description - std::string description(VarName() + " datasetblocks " + sourceSetName_); + std::string description("(" + VarName() + " datasetblocks " + sourceSetName_ + ")"); SetDescription( description ); return 0; } diff --git a/test/Test_Control/RunTest.sh b/test/Test_Control/RunTest.sh index f92e885879..98366d72b3 100755 --- a/test/Test_Control/RunTest.sh +++ b/test/Test_Control/RunTest.sh @@ -117,10 +117,10 @@ for DS datasetblocks EndToEndAll blocksize 10 i=1;i++ done writedata EndToEnd1.dat DS:0 DS:10 DS:20 DS:30 DS:40 DS:50 DS:60 DS:70 DS:80 DS:90 -for ES datasetblocks EndToEndAll blocksize 10 cumulative j=\$i;j++ +for ES datasetblocks EndToEndAll blocksize 10 firstblock 50 cumulative j=\$i;j++ writedata temp.\$j.dat \$ES done -writedata EndToEnd2.agr ES:10 ES:20 ES:30 ES:40 ES:50 ES:60 ES:70 ES:80 ES:90 ES:100 +writedata EndToEnd2.agr ES:50 ES:60 ES:70 ES:80 ES:90 ES:100 list EOF RunCpptraj "$UNITNAME" From f28333ad1d95331eb607976f7a3386e7b4ce3c32 Mon Sep 17 00:00:00 2001 From: "Daniel R. Roe" Date: Tue, 7 Jan 2020 08:21:36 -0500 Subject: [PATCH 097/162] DRR - Fix calculation of number of iterations. --- src/ForLoop_dataSetBlocks.cpp | 11 +++++++++-- 1 file changed, 9 insertions(+), 2 deletions(-) diff --git a/src/ForLoop_dataSetBlocks.cpp b/src/ForLoop_dataSetBlocks.cpp index e86e81c1e5..054cdd49f4 100644 --- a/src/ForLoop_dataSetBlocks.cpp +++ b/src/ForLoop_dataSetBlocks.cpp @@ -71,8 +71,15 @@ int ForLoop_dataSetBlocks::BeginFor(DataSetList const& DSL) { return 1; } // Determine # iterations - long int niterations = (long int)sourceSet_->Size() / labs(blockoffset_); - if ( ((long int)sourceSet_->Size() % labs(blockoffset_)) > 0 ) + long int total_size = (long int)sourceSet_->Size() - idx_; + long int niterations = 0; + if (mode_ == CUMULATIVE) { + niterations = 1; + total_size -= blocksize_; + if (total_size < 0) total_size = 0; + } + niterations += ( total_size / labs(blockoffset_) ); + if ( (total_size % labs(blockoffset_)) > 0 ) ++niterations; return niterations; } From 7cba78d0aa265d1803916aac91878c5aee259b14 Mon Sep 17 00:00:00 2001 From: "Daniel R. Roe" Date: Tue, 7 Jan 2020 08:32:42 -0500 Subject: [PATCH 098/162] DRR - Allow 'show' to only show specified string vars --- src/Exec_Show.cpp | 17 ++++++++++++++++- 1 file changed, 16 insertions(+), 1 deletion(-) diff --git a/src/Exec_Show.cpp b/src/Exec_Show.cpp index 91b2df9333..a374b2aebb 100644 --- a/src/Exec_Show.cpp +++ b/src/Exec_Show.cpp @@ -1,5 +1,6 @@ #include "Exec_Show.h" #include "CpptrajStdio.h" +#include "DataSet_StringVar.h" void Exec_Show::Help() const { mprintf(" Show all current script variables and their values.\n"); @@ -7,6 +8,20 @@ void Exec_Show::Help() const { Exec::RetType Exec_Show::Execute(CpptrajState& State, ArgList& argIn) { - State.DSL().ListStringVar(); + std::string varname = argIn.GetStringNext(); + if (varname.empty()) { + State.DSL().ListStringVar(); + } else { + DataSetList Svars = State.DSL().GetMultipleSets( varname ); + if (Svars.empty()) { + return CpptrajState::ERR; + } + for (DataSetList::const_iterator ds = Svars.begin(); ds != Svars.end(); ++ds) { + if ( (*ds)->Type() == DataSet::STRINGVAR ) { + DataSet_StringVar const& var = static_cast( *(*ds) ); + mprintf("\t%s = '%s'\n", var.legend(), var.Value().c_str()); + } + } + } return CpptrajState::OK; } From e48559ddf2f29976ee1e4ceb166e29ce7db23b62 Mon Sep 17 00:00:00 2001 From: "Daniel R. Roe" Date: Tue, 7 Jan 2020 09:43:06 -0500 Subject: [PATCH 099/162] DRR - If variables are replaced in a command, re-parse the Argument list in case new spaces have been introduced etc. May want to eventually have the ExecuteCommand function just take a string. --- src/ArgList.cpp | 7 ------- src/ArgList.h | 2 -- src/Command.cpp | 16 +++++++++++----- src/DataSetList.cpp | 21 ++++++++++++++------- src/DataSetList.h | 4 ++-- 5 files changed, 27 insertions(+), 23 deletions(-) diff --git a/src/ArgList.cpp b/src/ArgList.cpp index 35fe7584b3..3185e6cc7c 100644 --- a/src/ArgList.cpp +++ b/src/ArgList.cpp @@ -224,13 +224,6 @@ void ArgList::RemoveFirstArg() { marked_.erase( marked_.begin() ); } -/** Replace argument at position with given argument. Update ArgLine. */ -void ArgList::ChangeArg(unsigned int idx, std::string const& arg) { - size_t pos = argline_.find( arglist_[idx], 0 ); - argline_.replace(pos, arglist_[idx].size(), arg); - arglist_[idx] = arg; -} - // ArgList::Command() /* \return pointer to the first argument */ diff --git a/src/ArgList.h b/src/ArgList.h index 48729b3509..d53be09988 100644 --- a/src/ArgList.h +++ b/src/ArgList.h @@ -65,8 +65,6 @@ class ArgList { void PrintDebug() const; /// Remove the first argument void RemoveFirstArg(); - /// Change argument at position to new argument - void ChangeArg(unsigned int, std::string const&); /// \return the first argument const char *Command() const; /// \return true if the first argument matches key diff --git a/src/Command.cpp b/src/Command.cpp index 99e5885ba0..253f7f17e4 100644 --- a/src/Command.cpp +++ b/src/Command.cpp @@ -670,14 +670,20 @@ CpptrajState::RetType Command::Dispatch(CpptrajState& State, std::string const& * and then freed. ACT and ANA commands are sent to the CpptrajState for later * execution. BLK commands set up control blocks which will be executed when * the outer control block is completed. + * TODO just take a string and do all tokenizing here? */ CpptrajState::RetType Command::ExecuteCommand( CpptrajState& State, ArgList const& cmdArgIn ) { // Replace variable names in command with entries from CurrentVars - ArgList cmdArg = cmdArgIn; - for (int narg = 0; narg != cmdArg.Nargs(); narg++) - { - cmdArg.ChangeArg(narg, State.DSL().ReplaceVariables( cmdArgIn[narg] )); - } + ArgList cmdArg; + std::string argline2; + int nReplaced = State.DSL().ReplaceVariables( argline2, cmdArgIn.ArgLineStr() ); + // TODO trap replace errors? + if (nReplaced > 0) { + mprintf("DEBUG: %i variables replaced with values in: '%s'\n", nReplaced, cmdArgIn.ArgLine()); + cmdArg = ArgList(argline2); + cmdArg.MarkArg(0); + } else + cmdArg = cmdArgIn; if (cmdArg.empty()) return CpptrajState::ERR; // Print modified command mprintf(" [%s]\n", cmdArg.ArgLine()); diff --git a/src/DataSetList.cpp b/src/DataSetList.cpp index 2467306b52..ef5c26c5ec 100644 --- a/src/DataSetList.cpp +++ b/src/DataSetList.cpp @@ -838,9 +838,15 @@ std::string DataSetList::GetVariable(std::string const& varnameIn) const { return val; } -/** Replace all variables (beginning with $) in string with their values. */ -std::string DataSetList::ReplaceVariables(std::string const& varnameIn) const { - std::string varname = varnameIn; +/** Replace all variables (beginning with $) in string with their values. + * \param varname Final string containing values. + * \param varnameIn Initial string containing variables to replace. + */ +int DataSetList::ReplaceVariables(std::string& varname, std::string const& varnameIn) +const +{ + int nReplaced = 0; + varname = varnameIn; size_t pos = varname.find("$"); while (pos != std::string::npos) { // Argument is/contains a variable. Find first non-alphanumeric char @@ -864,18 +870,18 @@ std::string DataSetList::ReplaceVariables(std::string const& varnameIn) const { DataSet* ds = CheckForSet( var_in_arg ); if (ds == 0) { mprinterr("Error: Unrecognized variable in command: %s\n", var_in_arg.c_str()); - return std::string(); + return -1; } else { if (ds->Type() != DataSet::STRINGVAR && ds->Type() != DataSet::STRING && ds->Group() != DataSet::SCALAR_1D) { mprinterr("Error: Only strings and 1D data sets supported for variable replacement.\n"); - return std::string(); + return -1; } if (ds->Size() < 1) { mprinterr("Error: Set is empty.\n"); - return std::string(); + return -1; } if (ds->Size() > 1) mprintf("Warning: Only using first value.\n"); @@ -890,10 +896,11 @@ std::string DataSetList::ReplaceVariables(std::string const& varnameIn) const { mprintf("DEBUG: Replaced variable '$%s' with value '%s' from DataSet '%s'\n", var_in_arg.c_str(), value.c_str(), ds->legend()); varname.replace(pos, var_in_arg.size()+1, value); + nReplaced++; } pos = varname.find("$"); } // END loop over this argument - return varname; + return nReplaced; } // ----------------------------------------------------------------------------- diff --git a/src/DataSetList.h b/src/DataSetList.h index c23918ebd4..c04d096194 100644 --- a/src/DataSetList.h +++ b/src/DataSetList.h @@ -129,8 +129,8 @@ class DataSetList { int UpdateStringVar(std::string const&, std::string const&) const; /// \return Value corresponding to given data set as a string std::string GetVariable(std::string const&) const; - /// \return String with all variables replaced with their values. - std::string ReplaceVariables(std::string const&) const; + /// \return number of variables replaced with their values in given string. + int ReplaceVariables(std::string&, std::string const&) const; // REF_COORDS functions ---------------------- /// reference arg help text From fe64b7160544ec793632d8673820e8ba7ac1361b Mon Sep 17 00:00:00 2001 From: "Daniel R. Roe" Date: Tue, 7 Jan 2020 09:45:04 -0500 Subject: [PATCH 100/162] DRR - Add test for cumulative blocks --- test/Test_Control/EndToEnd2.agr.save | 473 +++++++++++++++++++++++++++ test/Test_Control/RunTest.sh | 10 +- 2 files changed, 479 insertions(+), 4 deletions(-) create mode 100644 test/Test_Control/EndToEnd2.agr.save diff --git a/test/Test_Control/EndToEnd2.agr.save b/test/Test_Control/EndToEnd2.agr.save new file mode 100644 index 0000000000..e29935c2d4 --- /dev/null +++ b/test/Test_Control/EndToEnd2.agr.save @@ -0,0 +1,473 @@ +@with g0 +@ xaxis label "Frame" +@ yaxis label "" +@ legend 0.2, 0.995 +@ legend char size 0.60 +@ s0 legend "ES:50" +@target G0.S0 +@type xy + 1.000 19.5966 + 2.000 17.3480 + 3.000 17.8450 + 4.000 15.6454 + 5.000 14.3931 + 6.000 18.5833 + 7.000 18.6442 + 8.000 10.4004 + 9.000 12.8161 + 10.000 13.8327 + 11.000 15.7380 + 12.000 16.1633 + 13.000 20.5872 + 14.000 25.1923 + 15.000 26.6599 + 16.000 29.1215 + 17.000 30.8099 + 18.000 29.4083 + 19.000 24.8295 + 20.000 22.8733 + 21.000 24.1724 + 22.000 26.6273 + 23.000 28.6254 + 24.000 27.0966 + 25.000 26.6521 + 26.000 24.6119 + 27.000 25.5315 + 28.000 28.3073 + 29.000 28.1660 + 30.000 28.4593 + 31.000 26.5708 + 32.000 24.8831 + 33.000 26.6288 + 34.000 25.2180 + 35.000 28.1164 + 36.000 28.1434 + 37.000 27.5044 + 38.000 28.3307 + 39.000 29.3041 + 40.000 27.2524 + 41.000 25.4524 + 42.000 24.3159 + 43.000 23.6855 + 44.000 27.2770 + 45.000 27.6559 + 46.000 25.2341 + 47.000 23.4983 + 48.000 24.5663 + 49.000 25.6547 + 50.000 26.9956 +@ s1 legend "ES:60" +@target G0.S1 +@type xy + 1.000 19.5966 + 2.000 17.3480 + 3.000 17.8450 + 4.000 15.6454 + 5.000 14.3931 + 6.000 18.5833 + 7.000 18.6442 + 8.000 10.4004 + 9.000 12.8161 + 10.000 13.8327 + 11.000 15.7380 + 12.000 16.1633 + 13.000 20.5872 + 14.000 25.1923 + 15.000 26.6599 + 16.000 29.1215 + 17.000 30.8099 + 18.000 29.4083 + 19.000 24.8295 + 20.000 22.8733 + 21.000 24.1724 + 22.000 26.6273 + 23.000 28.6254 + 24.000 27.0966 + 25.000 26.6521 + 26.000 24.6119 + 27.000 25.5315 + 28.000 28.3073 + 29.000 28.1660 + 30.000 28.4593 + 31.000 26.5708 + 32.000 24.8831 + 33.000 26.6288 + 34.000 25.2180 + 35.000 28.1164 + 36.000 28.1434 + 37.000 27.5044 + 38.000 28.3307 + 39.000 29.3041 + 40.000 27.2524 + 41.000 25.4524 + 42.000 24.3159 + 43.000 23.6855 + 44.000 27.2770 + 45.000 27.6559 + 46.000 25.2341 + 47.000 23.4983 + 48.000 24.5663 + 49.000 25.6547 + 50.000 26.9956 + 51.000 27.2384 + 52.000 26.9608 + 53.000 24.3911 + 54.000 22.0174 + 55.000 25.8095 + 56.000 27.6918 + 57.000 28.7332 + 58.000 25.4913 + 59.000 25.5589 + 60.000 27.9087 +@ s2 legend "ES:70" +@target G0.S2 +@type xy + 1.000 19.5966 + 2.000 17.3480 + 3.000 17.8450 + 4.000 15.6454 + 5.000 14.3931 + 6.000 18.5833 + 7.000 18.6442 + 8.000 10.4004 + 9.000 12.8161 + 10.000 13.8327 + 11.000 15.7380 + 12.000 16.1633 + 13.000 20.5872 + 14.000 25.1923 + 15.000 26.6599 + 16.000 29.1215 + 17.000 30.8099 + 18.000 29.4083 + 19.000 24.8295 + 20.000 22.8733 + 21.000 24.1724 + 22.000 26.6273 + 23.000 28.6254 + 24.000 27.0966 + 25.000 26.6521 + 26.000 24.6119 + 27.000 25.5315 + 28.000 28.3073 + 29.000 28.1660 + 30.000 28.4593 + 31.000 26.5708 + 32.000 24.8831 + 33.000 26.6288 + 34.000 25.2180 + 35.000 28.1164 + 36.000 28.1434 + 37.000 27.5044 + 38.000 28.3307 + 39.000 29.3041 + 40.000 27.2524 + 41.000 25.4524 + 42.000 24.3159 + 43.000 23.6855 + 44.000 27.2770 + 45.000 27.6559 + 46.000 25.2341 + 47.000 23.4983 + 48.000 24.5663 + 49.000 25.6547 + 50.000 26.9956 + 51.000 27.2384 + 52.000 26.9608 + 53.000 24.3911 + 54.000 22.0174 + 55.000 25.8095 + 56.000 27.6918 + 57.000 28.7332 + 58.000 25.4913 + 59.000 25.5589 + 60.000 27.9087 + 61.000 24.8268 + 62.000 23.8860 + 63.000 24.7488 + 64.000 27.7153 + 65.000 26.6599 + 66.000 21.8790 + 67.000 21.3410 + 68.000 24.2118 + 69.000 21.0304 + 70.000 24.6680 +@ s3 legend "ES:80" +@target G0.S3 +@type xy + 1.000 19.5966 + 2.000 17.3480 + 3.000 17.8450 + 4.000 15.6454 + 5.000 14.3931 + 6.000 18.5833 + 7.000 18.6442 + 8.000 10.4004 + 9.000 12.8161 + 10.000 13.8327 + 11.000 15.7380 + 12.000 16.1633 + 13.000 20.5872 + 14.000 25.1923 + 15.000 26.6599 + 16.000 29.1215 + 17.000 30.8099 + 18.000 29.4083 + 19.000 24.8295 + 20.000 22.8733 + 21.000 24.1724 + 22.000 26.6273 + 23.000 28.6254 + 24.000 27.0966 + 25.000 26.6521 + 26.000 24.6119 + 27.000 25.5315 + 28.000 28.3073 + 29.000 28.1660 + 30.000 28.4593 + 31.000 26.5708 + 32.000 24.8831 + 33.000 26.6288 + 34.000 25.2180 + 35.000 28.1164 + 36.000 28.1434 + 37.000 27.5044 + 38.000 28.3307 + 39.000 29.3041 + 40.000 27.2524 + 41.000 25.4524 + 42.000 24.3159 + 43.000 23.6855 + 44.000 27.2770 + 45.000 27.6559 + 46.000 25.2341 + 47.000 23.4983 + 48.000 24.5663 + 49.000 25.6547 + 50.000 26.9956 + 51.000 27.2384 + 52.000 26.9608 + 53.000 24.3911 + 54.000 22.0174 + 55.000 25.8095 + 56.000 27.6918 + 57.000 28.7332 + 58.000 25.4913 + 59.000 25.5589 + 60.000 27.9087 + 61.000 24.8268 + 62.000 23.8860 + 63.000 24.7488 + 64.000 27.7153 + 65.000 26.6599 + 66.000 21.8790 + 67.000 21.3410 + 68.000 24.2118 + 69.000 21.0304 + 70.000 24.6680 + 71.000 23.5536 + 72.000 22.1018 + 73.000 23.8363 + 74.000 25.4201 + 75.000 23.2907 + 76.000 19.5656 + 77.000 19.7663 + 78.000 19.3969 + 79.000 17.1379 + 80.000 15.2635 +@ s4 legend "ES:90" +@target G0.S4 +@type xy + 1.000 19.5966 + 2.000 17.3480 + 3.000 17.8450 + 4.000 15.6454 + 5.000 14.3931 + 6.000 18.5833 + 7.000 18.6442 + 8.000 10.4004 + 9.000 12.8161 + 10.000 13.8327 + 11.000 15.7380 + 12.000 16.1633 + 13.000 20.5872 + 14.000 25.1923 + 15.000 26.6599 + 16.000 29.1215 + 17.000 30.8099 + 18.000 29.4083 + 19.000 24.8295 + 20.000 22.8733 + 21.000 24.1724 + 22.000 26.6273 + 23.000 28.6254 + 24.000 27.0966 + 25.000 26.6521 + 26.000 24.6119 + 27.000 25.5315 + 28.000 28.3073 + 29.000 28.1660 + 30.000 28.4593 + 31.000 26.5708 + 32.000 24.8831 + 33.000 26.6288 + 34.000 25.2180 + 35.000 28.1164 + 36.000 28.1434 + 37.000 27.5044 + 38.000 28.3307 + 39.000 29.3041 + 40.000 27.2524 + 41.000 25.4524 + 42.000 24.3159 + 43.000 23.6855 + 44.000 27.2770 + 45.000 27.6559 + 46.000 25.2341 + 47.000 23.4983 + 48.000 24.5663 + 49.000 25.6547 + 50.000 26.9956 + 51.000 27.2384 + 52.000 26.9608 + 53.000 24.3911 + 54.000 22.0174 + 55.000 25.8095 + 56.000 27.6918 + 57.000 28.7332 + 58.000 25.4913 + 59.000 25.5589 + 60.000 27.9087 + 61.000 24.8268 + 62.000 23.8860 + 63.000 24.7488 + 64.000 27.7153 + 65.000 26.6599 + 66.000 21.8790 + 67.000 21.3410 + 68.000 24.2118 + 69.000 21.0304 + 70.000 24.6680 + 71.000 23.5536 + 72.000 22.1018 + 73.000 23.8363 + 74.000 25.4201 + 75.000 23.2907 + 76.000 19.5656 + 77.000 19.7663 + 78.000 19.3969 + 79.000 17.1379 + 80.000 15.2635 + 81.000 13.9835 + 82.000 16.3418 + 83.000 16.3319 + 84.000 19.1379 + 85.000 18.0394 + 86.000 14.0243 + 87.000 15.5260 + 88.000 13.9823 + 89.000 17.9049 + 90.000 18.6844 +@ s5 legend "ES:100" +@target G0.S5 +@type xy + 1.000 19.5966 + 2.000 17.3480 + 3.000 17.8450 + 4.000 15.6454 + 5.000 14.3931 + 6.000 18.5833 + 7.000 18.6442 + 8.000 10.4004 + 9.000 12.8161 + 10.000 13.8327 + 11.000 15.7380 + 12.000 16.1633 + 13.000 20.5872 + 14.000 25.1923 + 15.000 26.6599 + 16.000 29.1215 + 17.000 30.8099 + 18.000 29.4083 + 19.000 24.8295 + 20.000 22.8733 + 21.000 24.1724 + 22.000 26.6273 + 23.000 28.6254 + 24.000 27.0966 + 25.000 26.6521 + 26.000 24.6119 + 27.000 25.5315 + 28.000 28.3073 + 29.000 28.1660 + 30.000 28.4593 + 31.000 26.5708 + 32.000 24.8831 + 33.000 26.6288 + 34.000 25.2180 + 35.000 28.1164 + 36.000 28.1434 + 37.000 27.5044 + 38.000 28.3307 + 39.000 29.3041 + 40.000 27.2524 + 41.000 25.4524 + 42.000 24.3159 + 43.000 23.6855 + 44.000 27.2770 + 45.000 27.6559 + 46.000 25.2341 + 47.000 23.4983 + 48.000 24.5663 + 49.000 25.6547 + 50.000 26.9956 + 51.000 27.2384 + 52.000 26.9608 + 53.000 24.3911 + 54.000 22.0174 + 55.000 25.8095 + 56.000 27.6918 + 57.000 28.7332 + 58.000 25.4913 + 59.000 25.5589 + 60.000 27.9087 + 61.000 24.8268 + 62.000 23.8860 + 63.000 24.7488 + 64.000 27.7153 + 65.000 26.6599 + 66.000 21.8790 + 67.000 21.3410 + 68.000 24.2118 + 69.000 21.0304 + 70.000 24.6680 + 71.000 23.5536 + 72.000 22.1018 + 73.000 23.8363 + 74.000 25.4201 + 75.000 23.2907 + 76.000 19.5656 + 77.000 19.7663 + 78.000 19.3969 + 79.000 17.1379 + 80.000 15.2635 + 81.000 13.9835 + 82.000 16.3418 + 83.000 16.3319 + 84.000 19.1379 + 85.000 18.0394 + 86.000 14.0243 + 87.000 15.5260 + 88.000 13.9823 + 89.000 17.9049 + 90.000 18.6844 + 91.000 16.2193 + 92.000 14.9303 + 93.000 12.2398 + 94.000 13.2966 + 95.000 17.2469 + 96.000 17.0445 + 97.000 15.3262 + 98.000 13.5809 + 99.000 14.7931 + 100.000 16.1738 diff --git a/test/Test_Control/RunTest.sh b/test/Test_Control/RunTest.sh index 98366d72b3..a8fb96b531 100755 --- a/test/Test_Control/RunTest.sh +++ b/test/Test_Control/RunTest.sh @@ -4,7 +4,7 @@ CleanFiles for.in TRP.vec.dat TRP.rms.dat TRP.CA.dist.dat TRP.tocenter.dat \ nh.dat rms.nofit.dat last10.dat distance.dat nested.agr \ - EndToEnd0.dat EndToEnd1.dat temp.*.dat + EndToEnd0.dat EndToEnd1.dat EndToEnd2.agr temp.*.dat TESTNAME='Loop tests' Requires netcdf maxthreads 10 @@ -118,14 +118,16 @@ done writedata EndToEnd1.dat DS:0 DS:10 DS:20 DS:30 DS:40 DS:50 DS:60 DS:70 DS:80 DS:90 for ES datasetblocks EndToEndAll blocksize 10 firstblock 50 cumulative j=\$i;j++ - writedata temp.\$j.dat \$ES + set WriteVars2 += " \$ES " + show ES + show WriteVars2 done -writedata EndToEnd2.agr ES:50 ES:60 ES:70 ES:80 ES:90 ES:100 +writedata EndToEnd2.agr \$WriteVars2 list EOF RunCpptraj "$UNITNAME" DoTest EndToEnd1.dat.save EndToEnd1.dat - +DoTest EndToEnd2.agr.save EndToEnd2.agr EndTest exit 0 From eb17cc3409e4d83729aa683a418923667c6f645b Mon Sep 17 00:00:00 2001 From: "Daniel R. Roe" Date: Tue, 7 Jan 2020 10:06:55 -0500 Subject: [PATCH 101/162] DRR - Hide some debug info --- src/Command.cpp | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/src/Command.cpp b/src/Command.cpp index 253f7f17e4..92eccfac76 100644 --- a/src/Command.cpp +++ b/src/Command.cpp @@ -679,7 +679,9 @@ CpptrajState::RetType Command::ExecuteCommand( CpptrajState& State, ArgList cons int nReplaced = State.DSL().ReplaceVariables( argline2, cmdArgIn.ArgLineStr() ); // TODO trap replace errors? if (nReplaced > 0) { - mprintf("DEBUG: %i variables replaced with values in: '%s'\n", nReplaced, cmdArgIn.ArgLine()); + if (State.Debug() > 0) + mprintf("DEBUG: %i variables replaced with values in: '%s'\n", + nReplaced, cmdArgIn.ArgLine()); cmdArg = ArgList(argline2); cmdArg.MarkArg(0); } else From b8a9901cb8641b86861ba6484aee55f1589d6acd Mon Sep 17 00:00:00 2001 From: "Daniel R. Roe" Date: Tue, 7 Jan 2020 10:07:12 -0500 Subject: [PATCH 102/162] DRR - Improve output message --- src/Exec_Set.cpp | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/src/Exec_Set.cpp b/src/Exec_Set.cpp index 9ae8ed07d2..ab33068c55 100644 --- a/src/Exec_Set.cpp +++ b/src/Exec_Set.cpp @@ -78,11 +78,13 @@ Exec::RetType Exec_Set::Execute(CpptrajState& State, ArgList& argIn) value = integerToString(State.InputTrajList().MaxFrames()); } else value = equals.ArgLineStr(); - if (append) + if (append) { AppendVariable( State, variable, value ); - else + mprintf("\tVariable '%s' appended with '%s'\n", variable.c_str(), value.c_str()); + } else { UpdateVariable( State, variable, value ); - mprintf("\tVariable '%s' set to '%s'\n", variable.c_str(), value.c_str()); + mprintf("\tVariable '%s' set to '%s'\n", variable.c_str(), value.c_str()); + } for (int iarg = 0; iarg < argIn.Nargs(); iarg++) argIn.MarkArg( iarg ); return CpptrajState::OK; From bf7140a88ce67a284ebd9f51a15efa4721e3c761 Mon Sep 17 00:00:00 2001 From: "Daniel R. Roe" Date: Tue, 7 Jan 2020 10:33:50 -0500 Subject: [PATCH 103/162] DRR - Allow multiple variables to be passed to show --- src/Exec_Show.cpp | 24 +++++++++++++++--------- 1 file changed, 15 insertions(+), 9 deletions(-) diff --git a/src/Exec_Show.cpp b/src/Exec_Show.cpp index a374b2aebb..88133dfc30 100644 --- a/src/Exec_Show.cpp +++ b/src/Exec_Show.cpp @@ -3,7 +3,10 @@ #include "DataSet_StringVar.h" void Exec_Show::Help() const { - mprintf(" Show all current script variables and their values.\n"); + mprintf("\t[ ...]\n" + " If no variable names specified, show all current script variables and\n" + " their values. Otherwise, show the values of the specified script\n" + " variables.\n"); } Exec::RetType Exec_Show::Execute(CpptrajState& State, ArgList& argIn) @@ -12,15 +15,18 @@ Exec::RetType Exec_Show::Execute(CpptrajState& State, ArgList& argIn) if (varname.empty()) { State.DSL().ListStringVar(); } else { - DataSetList Svars = State.DSL().GetMultipleSets( varname ); - if (Svars.empty()) { - return CpptrajState::ERR; - } - for (DataSetList::const_iterator ds = Svars.begin(); ds != Svars.end(); ++ds) { - if ( (*ds)->Type() == DataSet::STRINGVAR ) { - DataSet_StringVar const& var = static_cast( *(*ds) ); - mprintf("\t%s = '%s'\n", var.legend(), var.Value().c_str()); + while (!varname.empty()) { + DataSetList Svars = State.DSL().GetMultipleSets( varname ); + if (Svars.empty()) { + return CpptrajState::ERR; + } + for (DataSetList::const_iterator ds = Svars.begin(); ds != Svars.end(); ++ds) { + if ( (*ds)->Type() == DataSet::STRINGVAR ) { + DataSet_StringVar const& var = static_cast( *(*ds) ); + mprintf("\t%s = '%s'\n", var.legend(), var.Value().c_str()); + } } + varname = argIn.GetStringNext(); } } return CpptrajState::OK; From 60c8ea446e05a33fb90486e5498b2764bf1db69a Mon Sep 17 00:00:00 2001 From: "Daniel R. Roe" Date: Tue, 7 Jan 2020 10:34:11 -0500 Subject: [PATCH 104/162] DRR - Fix loop descriptions --- src/ForLoop_list.cpp | 2 +- src/ForLoop_mask.cpp | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/src/ForLoop_list.cpp b/src/ForLoop_list.cpp index 1d4535fb7f..88cbbd4f4d 100644 --- a/src/ForLoop_list.cpp +++ b/src/ForLoop_list.cpp @@ -32,7 +32,7 @@ int ForLoop_list::SetupFor(CpptrajState& State, ArgList& argIn) { List_.push_back( list[il] ); } // Description - std::string description( VarName() + " in " + listArg ); + std::string description( "(" + VarName() + " in " + listArg + ")" ); SetDescription( description ); return 0; } diff --git a/src/ForLoop_mask.cpp b/src/ForLoop_mask.cpp index a3b2dd7b62..b38b2602dc 100644 --- a/src/ForLoop_mask.cpp +++ b/src/ForLoop_mask.cpp @@ -73,8 +73,8 @@ int ForLoop_mask::SetupFor(CpptrajState& State, ArgList& argIn) { } } } - std::string description(std::string(TypeStr[mtype_]) + - VarName() + " inmask " + currentMask.MaskExpression()); + std::string description("(" + std::string(TypeStr[mtype_]) + + VarName() + " inmask " + currentMask.MaskExpression() + ")"); SetDescription( description ); return 0; } From 52d890d4eb0c4dd0cf884e01bab83d5580795338 Mon Sep 17 00:00:00 2001 From: "Daniel R. Roe" Date: Tue, 7 Jan 2020 10:34:27 -0500 Subject: [PATCH 105/162] DRR - Dont write unneeded temp files during test --- test/Test_Control/RunTest.sh | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/test/Test_Control/RunTest.sh b/test/Test_Control/RunTest.sh index a8fb96b531..aa69a74057 100755 --- a/test/Test_Control/RunTest.sh +++ b/test/Test_Control/RunTest.sh @@ -113,14 +113,14 @@ run noexitonerror for DS datasetblocks EndToEndAll blocksize 10 i=1;i++ - writedata temp.\$i.dat \$DS + set WriteVars1 += " \$DS " + show DS WriteVars1 done -writedata EndToEnd1.dat DS:0 DS:10 DS:20 DS:30 DS:40 DS:50 DS:60 DS:70 DS:80 DS:90 +writedata EndToEnd1.dat \$WriteVars1 for ES datasetblocks EndToEndAll blocksize 10 firstblock 50 cumulative j=\$i;j++ set WriteVars2 += " \$ES " - show ES - show WriteVars2 + show ES WriteVars2 done writedata EndToEnd2.agr \$WriteVars2 list From 16000e4ed9c578716cb88b0a7a9a85aabe7c5e08 Mon Sep 17 00:00:00 2001 From: "Daniel R. Roe" Date: Tue, 7 Jan 2020 10:34:58 -0500 Subject: [PATCH 106/162] DRR - Fix manual entries --- doc/cpptraj.lyx | 32 +++++++++++++++++++++----------- 1 file changed, 21 insertions(+), 11 deletions(-) diff --git a/doc/cpptraj.lyx b/doc/cpptraj.lyx index 7936bc00ff..a9d1a08816 100644 --- a/doc/cpptraj.lyx +++ b/doc/cpptraj.lyx @@ -1920,11 +1920,14 @@ script variables and 'for' loops. Script variables are referred to by a dollar sign ('$') prefix and are replaced when they are processed. - Note that to use script variables in CPPTRAJ input that is also inside - e.g. + +\series bold +Note that to use script variables in CPPTRAJ input that is also inside e.g. a BASH script, they can be escaped with the ' \backslash -' character, e.g. +' character, +\series default + e.g. \end_layout \begin_layout LyX-Code @@ -2186,9 +2189,8 @@ OP>[] Loop over integer script variable \end_deeper \begin_layout Standard -Create a for loop using one or more mask expressions or integers. - Loops can be nested, but currently inner loops cannot refer to output loop - variables. +Create a for loop using one or more mask expressions, integers etc. + Loops can be nested. Integer loops may be used without an end condition, but in that case at least one descriptor in the loop should have an end condition or refer to a mask. @@ -2197,8 +2199,14 @@ Create a for loop using one or more mask expressions or integers. done \series default keyword. - Note that unlike C-style for loops the variable is not incremented on the - final execution, so the final value of + +\end_layout + +\begin_layout Standard +Note that non-integer variables (e.g. + for mask loops) are NOT incremented after the final loop iteration, i.e. + these loop variables always retain their final value, so for these loop + types \series bold \series default @@ -2206,7 +2214,7 @@ done \series bold \series default - (or the last selection in the mask). +. \end_layout \begin_layout Standard @@ -2409,11 +2417,13 @@ show \end_layout \begin_layout LyX-Code -show +show [ ...] \end_layout \begin_layout Standard -Show all current script variables and their values. +If no variable names specified, show all current script variables and their + values. + Otherwise, show the values of the specified script variables. \end_layout \begin_layout Section From 2e8022199055a4f35f8738851516c951264300dc Mon Sep 17 00:00:00 2001 From: "Daniel R. Roe" Date: Tue, 7 Jan 2020 10:35:10 -0500 Subject: [PATCH 107/162] DRR - Start adding advanced help for for loops --- src/ControlBlock_For.cpp | 6 ++++++ src/ControlBlock_For.h | 1 + src/ForLoop_dataSetBlocks.cpp | 6 +++++- src/ForLoop_dataSetBlocks.h | 2 ++ 4 files changed, 14 insertions(+), 1 deletion(-) diff --git a/src/ControlBlock_For.cpp b/src/ControlBlock_For.cpp index 734aafabd0..a8ff54af6b 100644 --- a/src/ControlBlock_For.cpp +++ b/src/ControlBlock_For.cpp @@ -44,6 +44,12 @@ void ControlBlock_For::Help() const { ); } +void ControlBlock_For::Help(ArgList& argIn) const { + if (argIn.hasKey("datasetblocks")) + mprintf("\t%s\n", ForLoop_dataSetBlocks::helpText()); +} + + /** Set up each mask/integer loop. */ int ControlBlock_For::SetupBlock(CpptrajState& State, ArgList& argIn) { mprintf(" Setting up 'for' loop.\n"); diff --git a/src/ControlBlock_For.h b/src/ControlBlock_For.h index 1b9943d6f9..44527caedf 100644 --- a/src/ControlBlock_For.h +++ b/src/ControlBlock_For.h @@ -8,6 +8,7 @@ class ControlBlock_For : public ControlBlock { ControlBlock_For() {} ~ControlBlock_For(); void Help() const; + void Help(ArgList&) const; DispatchObject* Alloc() const { return (DispatchObject*)new ControlBlock_For(); } int SetupBlock(CpptrajState&, ArgList&); diff --git a/src/ForLoop_dataSetBlocks.cpp b/src/ForLoop_dataSetBlocks.cpp index 054cdd49f4..dada6e187d 100644 --- a/src/ForLoop_dataSetBlocks.cpp +++ b/src/ForLoop_dataSetBlocks.cpp @@ -14,6 +14,10 @@ ForLoop_dataSetBlocks::ForLoop_dataSetBlocks() : mode_(BLOCKS) {} +const char* ForLoop_dataSetBlocks::helpText() { + return " datasetblocks blocksize <#> [blockoffset <#>] [cumulative [firstblock <#>]"; +} + int ForLoop_dataSetBlocks::SetupFor(CpptrajState& State, ArgList& argIn) { // datasetblocks blocksize <#> [blockoffset <#>] [cumulative [firstblock <#>]] @@ -87,7 +91,7 @@ int ForLoop_dataSetBlocks::BeginFor(DataSetList const& DSL) { bool ForLoop_dataSetBlocks::EndFor(DataSetList& DSL) { // Determine stop of the current block. long int block_end = idx_ + blocksize_; - long int dsidx; + long int dsidx = 0; // Check if done. switch (mode_) { case BLOCKS: diff --git a/src/ForLoop_dataSetBlocks.h b/src/ForLoop_dataSetBlocks.h index 6360ea3060..e641d04fc5 100644 --- a/src/ForLoop_dataSetBlocks.h +++ b/src/ForLoop_dataSetBlocks.h @@ -6,6 +6,8 @@ class ForLoop_dataSetBlocks : public ForLoop { public: ForLoop_dataSetBlocks(); + static const char* helpText(); + int SetupFor(CpptrajState&, ArgList&); int BeginFor(DataSetList const&); // NOTE: Not a const ref so dataSetBlocks loop can create sets From b9d3f00bb83bb58b1179628888f5a0b8c7ffe6b0 Mon Sep 17 00:00:00 2001 From: "Daniel R. Roe" Date: Tue, 7 Jan 2020 14:11:52 -0500 Subject: [PATCH 108/162] DRR - Fix up for loop help --- src/ControlBlock_For.cpp | 30 ++++++++++++++---------------- src/ForLoop_dataSetBlocks.cpp | 7 +++++-- src/ForLoop_dataSetBlocks.h | 2 +- src/ForLoop_integer.cpp | 7 +++++++ src/ForLoop_integer.h | 2 ++ src/ForLoop_list.cpp | 6 ++++++ src/ForLoop_list.h | 2 ++ src/ForLoop_mask.cpp | 6 ++++++ src/ForLoop_mask.h | 2 ++ 9 files changed, 45 insertions(+), 19 deletions(-) diff --git a/src/ControlBlock_For.cpp b/src/ControlBlock_For.cpp index a8ff54af6b..a7a1a922b4 100644 --- a/src/ControlBlock_For.cpp +++ b/src/ControlBlock_For.cpp @@ -1,7 +1,7 @@ #include "ControlBlock_For.h" #include "CpptrajStdio.h" #include "ArgList.h" -#include "CpptrajState.h" // TODO move into ForLoop help? +#include "CpptrajState.h" // For loop types #include "ForLoop.h" #include "ForLoop_integer.h" @@ -17,20 +17,10 @@ ControlBlock_For::~ControlBlock_For() { } void ControlBlock_For::Help() const { - mprintf("\t{ {atoms|residues|molecules|molfirstres|mollastres}\n" - "\t inmask [%s] ... |\n" - "\t in |\n" - "\t =;[;][] ... }\n", - DataSetList::TopIdxArgs); - mprintf("\tEND KEYWORD: 'done'\n"); - mprintf(" Create a 'for' loop around specified mask(s), comma-separated list of\n" - " strings and/or integer value(s). Any number and combination of masks,\n" - " lists, and integers can be specified. Strings in lists can be file\n" - " names containing wildcard characters ('*' or '?').\n" - " Variables created in the for loop can be referenced by prefacing\n" - " the name with a '$' character.\n" - " Available 'end OP' : '<' '>' '<=' '>='\n" - " Available 'increment OP' : '++', '--', '+=', '-='\n" + mprintf("\t ...\n" + " Create a 'for' loop of one or more types:\n" + " = mask, list, integer, datasetblocks\n" + " Type help 'for ' for more info on each type.\n" " Note that non-integer variables (e.g. for mask loops) are NOT incremented\n" " after the final loop iteration, i.e. these loop variables always retain\n" " their final value.\n" @@ -46,7 +36,15 @@ void ControlBlock_For::Help() const { void ControlBlock_For::Help(ArgList& argIn) const { if (argIn.hasKey("datasetblocks")) - mprintf("\t%s\n", ForLoop_dataSetBlocks::helpText()); + ForLoop_dataSetBlocks::helpText(); + else if (argIn.hasKey("integer")) + ForLoop_integer::helpText(); + else if (argIn.hasKey("list")) + ForLoop_list::helpText(); + else if (argIn.hasKey("mask")) + ForLoop_mask::helpText(); + else + Help(); } diff --git a/src/ForLoop_dataSetBlocks.cpp b/src/ForLoop_dataSetBlocks.cpp index dada6e187d..917acc34e3 100644 --- a/src/ForLoop_dataSetBlocks.cpp +++ b/src/ForLoop_dataSetBlocks.cpp @@ -14,8 +14,11 @@ ForLoop_dataSetBlocks::ForLoop_dataSetBlocks() : mode_(BLOCKS) {} -const char* ForLoop_dataSetBlocks::helpText() { - return " datasetblocks blocksize <#> [blockoffset <#>] [cumulative [firstblock <#>]"; +void ForLoop_dataSetBlocks::helpText() { + mprintf("\t datasetblocks blocksize <#> [blockoffset <#>]\n" + "\t[cumulative [firstblock <#>]]\n" + " Loop over blocks of a dataset. The blocks can be either\n" + " fixed or cumulative.\n"); } int ForLoop_dataSetBlocks::SetupFor(CpptrajState& State, ArgList& argIn) diff --git a/src/ForLoop_dataSetBlocks.h b/src/ForLoop_dataSetBlocks.h index e641d04fc5..4770e6e3a3 100644 --- a/src/ForLoop_dataSetBlocks.h +++ b/src/ForLoop_dataSetBlocks.h @@ -6,7 +6,7 @@ class ForLoop_dataSetBlocks : public ForLoop { public: ForLoop_dataSetBlocks(); - static const char* helpText(); + static void helpText(); int SetupFor(CpptrajState&, ArgList&); int BeginFor(DataSetList const&); diff --git a/src/ForLoop_integer.cpp b/src/ForLoop_integer.cpp index 3cbe83ecff..e42bd5b527 100644 --- a/src/ForLoop_integer.cpp +++ b/src/ForLoop_integer.cpp @@ -17,6 +17,13 @@ ForLoop_integer::ForLoop_integer() : endArgPresent_(false) {} +void ForLoop_integer::helpText() { + mprintf("\t=;[;][]\n" + " Available 'end OP' : '<' '>' '<=' '>='\n" + " Available 'increment OP' : '++', '--', '+=', '-='\n" + " Loop over an integer value.\n"); +} + /** Setup integer for loop. */ int ForLoop_integer::SetupFor(CpptrajState& State, ArgList& argIn) { // [=;[;][]] diff --git a/src/ForLoop_integer.h b/src/ForLoop_integer.h index 4aa69ef2ff..981bf2caf9 100644 --- a/src/ForLoop_integer.h +++ b/src/ForLoop_integer.h @@ -6,6 +6,8 @@ class ForLoop_integer : public ForLoop { public: ForLoop_integer(); + static void helpText(); + int SetupFor(CpptrajState&, ArgList&); int BeginFor(DataSetList const&); bool EndFor(DataSetList&); diff --git a/src/ForLoop_list.cpp b/src/ForLoop_list.cpp index 88cbbd4f4d..43b55a8c17 100644 --- a/src/ForLoop_list.cpp +++ b/src/ForLoop_list.cpp @@ -5,6 +5,12 @@ #include "DataSetList.h" #include "CpptrajState.h" +void ForLoop_list::helpText() { + mprintf("\t in \n" + " Loop over values in comma-separated list. Values can be file names\n" + " containing wildcard characters ('*' or '?').\n"); +} + int ForLoop_list::SetupFor(CpptrajState& State, ArgList& argIn) { // in [,...] //MH.varType_ = ftype; diff --git a/src/ForLoop_list.h b/src/ForLoop_list.h index 111b2dec4d..dcb054e55d 100644 --- a/src/ForLoop_list.h +++ b/src/ForLoop_list.h @@ -7,6 +7,8 @@ class ForLoop_list : public ForLoop { public: ForLoop_list() {} + static void helpText(); + int SetupFor(CpptrajState&, ArgList&); int BeginFor(DataSetList const&); bool EndFor(DataSetList&); diff --git a/src/ForLoop_mask.cpp b/src/ForLoop_mask.cpp index b38b2602dc..b7e2756a5f 100644 --- a/src/ForLoop_mask.cpp +++ b/src/ForLoop_mask.cpp @@ -5,6 +5,12 @@ #include "StringRoutines.h" #include "DataSetList.h" +void ForLoop_mask::helpText() { + mprintf("\t{atoms|residues|molecules|molfirstres|mollastres}\n" + "\t inmask [%s]\n", DataSetList::TopIdxArgs); + mprintf(" Loop over elements selected by specified mask expression.\n"); +} + int ForLoop_mask::SetupFor(CpptrajState& State, ArgList& argIn) { static const char* TypeStr[NTYPES] = { "ATOMS ", "RESIDUES ", "MOLECULES ", "MOL_FIRST_RES ", "MOL_LAST_RES " }; diff --git a/src/ForLoop_mask.h b/src/ForLoop_mask.h index eca48c10b2..3cc8c6221d 100644 --- a/src/ForLoop_mask.h +++ b/src/ForLoop_mask.h @@ -8,6 +8,8 @@ class ForLoop_mask : public ForLoop { public: ForLoop_mask() : mtype_(NTYPES) {} + static void helpText(); + int SetupFor(CpptrajState&, ArgList&); int BeginFor(DataSetList const&); bool EndFor(DataSetList&); From 8f278afd165480277187271d9d89266889e2e81f Mon Sep 17 00:00:00 2001 From: "Daniel R. Roe" Date: Tue, 7 Jan 2020 14:17:14 -0500 Subject: [PATCH 109/162] DRR - Fix up for loop help in manual. --- doc/cpptraj.lyx | 58 ++++++++++++++++++++++++++++++++++++++++++++++--- 1 file changed, 55 insertions(+), 3 deletions(-) diff --git a/doc/cpptraj.lyx b/doc/cpptraj.lyx index a9d1a08816..4f9d6babec 100644 --- a/doc/cpptraj.lyx +++ b/doc/cpptraj.lyx @@ -2068,14 +2068,21 @@ for { {atoms|residues|molecules|molfirstres|mollastres} \end_layout \begin_layout LyX-Code - inmask [parm | parmindex <#> | <#>] ... - | + inmask [parm | parmindex <#> | <#>] | \end_layout \begin_layout LyX-Code in | \end_layout +\begin_layout LyX-Code + datasetblocks blocksize <#> [blockoffset <#>] +\end_layout + +\begin_layout LyX-Code + [cumulative [firstblock <#>]] | +\end_layout + \begin_layout LyX-Code =;[;][] ... } @@ -2159,6 +2166,51 @@ in File name wildcards can be used. \end_layout +\begin_layout Description + +\begin_inset space ~ +\end_inset + +datasetblocks +\begin_inset space ~ +\end_inset + + Loop over blocks in specified DataSet. +\end_layout + +\begin_deeper +\begin_layout Description +blocksize +\begin_inset space ~ +\end_inset + +<#> Size of blocks to use. +\end_layout + +\begin_layout Description +[blockoffset +\begin_inset space ~ +\end_inset + +<#>] Offset between blocks. +\end_layout + +\begin_layout Description +[cumulative] Instead of blocks of fixed size, use blocks of increasing size + incremented by blocksize. +\end_layout + +\begin_deeper +\begin_layout Description +[firstblock +\begin_inset space ~ +\end_inset + +<#>] When cumulative, the size of the first block. +\end_layout + +\end_deeper +\end_deeper \begin_layout Description =;[[] Loop over integer script variable \end_deeper \begin_layout Standard Create a for loop using one or more mask expressions, integers etc. - Loops can be nested. + Loops can be nested inside each other. Integer loops may be used without an end condition, but in that case at least one descriptor in the loop should have an end condition or refer to a mask. From 5894ed80c26a0bb57e1bb6f63373717f5d84c480 Mon Sep 17 00:00:00 2001 From: "Daniel R. Roe" Date: Tue, 7 Jan 2020 15:42:48 -0500 Subject: [PATCH 110/162] DRR - Remove extra whitespace --- src/ControlBlock_For.cpp | 1 - 1 file changed, 1 deletion(-) diff --git a/src/ControlBlock_For.cpp b/src/ControlBlock_For.cpp index a7a1a922b4..9d665d348a 100644 --- a/src/ControlBlock_For.cpp +++ b/src/ControlBlock_For.cpp @@ -46,7 +46,6 @@ void ControlBlock_For::Help(ArgList& argIn) const { else Help(); } - /** Set up each mask/integer loop. */ int ControlBlock_For::SetupBlock(CpptrajState& State, ArgList& argIn) { From c89fcd0d084085400bdf941eb260a9b40524875c Mon Sep 17 00:00:00 2001 From: "Daniel R. Roe" Date: Wed, 8 Jan 2020 10:22:45 -0500 Subject: [PATCH 111/162] DRR - Give created datasetblocks sets an aspect to reduce the chances of collision. Set legend to be more descriptive. --- src/ForLoop_dataSetBlocks.cpp | 14 +++++++++++--- src/cpptrajdepend | 4 ++-- 2 files changed, 13 insertions(+), 5 deletions(-) diff --git a/src/ForLoop_dataSetBlocks.cpp b/src/ForLoop_dataSetBlocks.cpp index 917acc34e3..9d1b9ac50d 100644 --- a/src/ForLoop_dataSetBlocks.cpp +++ b/src/ForLoop_dataSetBlocks.cpp @@ -3,6 +3,7 @@ #include "ArgList.h" #include "CpptrajState.h" #include "DataSet.h" +#include "StringRoutines.h" /// CONSTRUCTOR ForLoop_dataSetBlocks::ForLoop_dataSetBlocks() : @@ -95,12 +96,14 @@ bool ForLoop_dataSetBlocks::EndFor(DataSetList& DSL) { // Determine stop of the current block. long int block_end = idx_ + blocksize_; long int dsidx = 0; + std::string aspect = ""; // Check if done. switch (mode_) { case BLOCKS: // Check if done by seeing if the current start value is outside the data set. if (idx_ < 0 || idx_ >= (long int)sourceSet_->Size()) return true; dsidx = idx_; + aspect = "block"; break; case CUMULATIVE: // Check if done by seeing if current end value is outside the data set. @@ -113,16 +116,21 @@ bool ForLoop_dataSetBlocks::EndFor(DataSetList& DSL) { if (block_end > (long int)sourceSet_->Size()) block_end = (long int)sourceSet_->Size(); dsidx = block_end; + aspect = "cumul"; break; } - mprintf("DEBUG: Block %li to %li\n", idx_, block_end); + //mprintf("DEBUG: Block %li to %li\n", idx_, block_end); // Create the subset - currentSet_ = DSL.AddSet(sourceSet_->Type(), MetaData(VarName(), dsidx)); + currentSet_ = DSL.AddSet(sourceSet_->Type(), MetaData(VarName(), aspect, dsidx)); if (currentSet_ == 0) { mprinterr("Error: Could not create dataSetBlocks subset.\n"); return true; } - // Update the set name + // Update the set legend + currentSet_->SetLegend(sourceSet_->Meta().Name() + "_" + + integerToString(idx_+1) + "-" + + integerToString(block_end)); + // Update the set name in loop variable DSL.UpdateStringVar( VarName(), currentSet_->Meta().PrintName() ); // Allocate memory DataSet::SizeArray dsSize(1, blocksize_); diff --git a/src/cpptrajdepend b/src/cpptrajdepend index 9edd28720c..236f7ffdce 100644 --- a/src/cpptrajdepend +++ b/src/cpptrajdepend @@ -275,7 +275,7 @@ Exec_RunAnalysis.o : Exec_RunAnalysis.cpp Action.h ActionList.h ActionState.h An Exec_ScaleDihedralK.o : Exec_ScaleDihedralK.cpp Action.h ActionList.h ActionState.h Analysis.h AnalysisList.h AnalysisState.h ArgList.h AssociatedData.h Atom.h AtomExtra.h AtomMask.h AtomType.h BaseIOtype.h Box.h Constants.h CoordinateInfo.h CpptrajFile.h CpptrajState.h CpptrajStdio.h DataFile.h DataFileList.h DataIO.h DataSet.h DataSetList.h DataSet_Coords.h DataSet_Coords_REF.h Dimension.h DispatchObject.h EnsembleIn.h EnsembleOutList.h Exec.h Exec_ScaleDihedralK.h FileIO.h FileName.h FileTypes.h Frame.h FramePtrArray.h InputTrajCommon.h MaskToken.h Matrix_3x3.h MetaData.h Molecule.h NameType.h Parallel.h ParameterHolders.h ParameterSet.h ParameterTypes.h Range.h ReferenceFrame.h ReplicaDimArray.h ReplicaInfo.h Residue.h SymbolExporting.h TextFormat.h Timer.h Topology.h TrajFrameCounter.h Trajin.h TrajinList.h TrajoutList.h TypeNameHolder.h Vec3.h Exec_SequenceAlign.o : Exec_SequenceAlign.cpp Action.h ActionFrameCounter.h ActionList.h ActionState.h Analysis.h AnalysisList.h AnalysisState.h ArgList.h AssociatedData.h Atom.h AtomExtra.h AtomMask.h AtomType.h BaseIOtype.h Box.h BufferedLine.h Constants.h CoordinateInfo.h CpptrajFile.h CpptrajState.h CpptrajStdio.h DataFile.h DataFileList.h DataIO.h DataSet.h DataSetList.h DataSet_Coords.h DataSet_Coords_REF.h Dimension.h DispatchObject.h EnsembleIn.h EnsembleOutList.h Exec.h Exec_SequenceAlign.h FileIO.h FileName.h FileTypes.h Frame.h FramePtrArray.h InputTrajCommon.h MaskToken.h Matrix_3x3.h MetaData.h Molecule.h NameType.h OutputTrajCommon.h Parallel.h ParameterHolders.h ParameterSet.h ParameterTypes.h Range.h ReferenceFrame.h ReplicaDimArray.h ReplicaInfo.h Residue.h StringRoutines.h SymbolExporting.h TextFormat.h Timer.h Topology.h TrajFrameCounter.h TrajectoryFile.h Trajin.h TrajinList.h TrajoutList.h Trajout_Single.h TypeNameHolder.h Vec3.h Exec_Set.o : Exec_Set.cpp Action.h ActionList.h ActionState.h Analysis.h AnalysisList.h AnalysisState.h ArgList.h AssociatedData.h Atom.h AtomExtra.h AtomMask.h AtomType.h BaseIOtype.h Box.h Constants.h CoordinateInfo.h CpptrajFile.h CpptrajState.h CpptrajStdio.h DataFile.h DataFileList.h DataIO.h DataSet.h DataSetList.h DataSet_Coords.h DataSet_Coords_REF.h DataSet_StringVar.h Dimension.h DispatchObject.h EnsembleIn.h EnsembleOutList.h Exec.h Exec_Set.h FileIO.h FileName.h FileTypes.h Frame.h FramePtrArray.h InputTrajCommon.h MaskToken.h Matrix_3x3.h MetaData.h Molecule.h NameType.h Parallel.h ParameterHolders.h ParameterSet.h ParameterTypes.h Range.h ReferenceFrame.h ReplicaDimArray.h ReplicaInfo.h Residue.h StringRoutines.h SymbolExporting.h TextFormat.h Timer.h Topology.h TrajFrameCounter.h Trajin.h TrajinList.h TrajoutList.h TypeNameHolder.h Vec3.h -Exec_Show.o : Exec_Show.cpp Action.h ActionList.h ActionState.h Analysis.h AnalysisList.h AnalysisState.h ArgList.h AssociatedData.h Atom.h AtomExtra.h AtomMask.h AtomType.h BaseIOtype.h Box.h Constants.h CoordinateInfo.h CpptrajFile.h CpptrajState.h CpptrajStdio.h DataFile.h DataFileList.h DataIO.h DataSet.h DataSetList.h DataSet_Coords.h DataSet_Coords_REF.h Dimension.h DispatchObject.h EnsembleIn.h EnsembleOutList.h Exec.h Exec_Show.h FileIO.h FileName.h FileTypes.h Frame.h FramePtrArray.h InputTrajCommon.h MaskToken.h Matrix_3x3.h MetaData.h Molecule.h NameType.h Parallel.h ParameterHolders.h ParameterSet.h ParameterTypes.h Range.h ReferenceFrame.h ReplicaDimArray.h ReplicaInfo.h Residue.h SymbolExporting.h TextFormat.h Timer.h Topology.h TrajFrameCounter.h Trajin.h TrajinList.h TrajoutList.h TypeNameHolder.h Vec3.h +Exec_Show.o : Exec_Show.cpp Action.h ActionList.h ActionState.h Analysis.h AnalysisList.h AnalysisState.h ArgList.h AssociatedData.h Atom.h AtomExtra.h AtomMask.h AtomType.h BaseIOtype.h Box.h Constants.h CoordinateInfo.h CpptrajFile.h CpptrajState.h CpptrajStdio.h DataFile.h DataFileList.h DataIO.h DataSet.h DataSetList.h DataSet_Coords.h DataSet_Coords_REF.h DataSet_StringVar.h Dimension.h DispatchObject.h EnsembleIn.h EnsembleOutList.h Exec.h Exec_Show.h FileIO.h FileName.h FileTypes.h Frame.h FramePtrArray.h InputTrajCommon.h MaskToken.h Matrix_3x3.h MetaData.h Molecule.h NameType.h Parallel.h ParameterHolders.h ParameterSet.h ParameterTypes.h Range.h ReferenceFrame.h ReplicaDimArray.h ReplicaInfo.h Residue.h SymbolExporting.h TextFormat.h Timer.h Topology.h TrajFrameCounter.h Trajin.h TrajinList.h TrajoutList.h TypeNameHolder.h Vec3.h Exec_SortEnsembleData.o : Exec_SortEnsembleData.cpp Action.h ActionList.h ActionState.h Analysis.h AnalysisList.h AnalysisState.h ArgList.h AssociatedData.h Atom.h AtomExtra.h AtomMask.h AtomType.h BaseIOtype.h Box.h Constants.h CoordinateInfo.h Cph.h CpptrajFile.h CpptrajState.h CpptrajStdio.h DataFile.h DataFileList.h DataIO.h DataSet.h DataSetList.h DataSet_1D.h DataSet_Coords.h DataSet_Coords_REF.h DataSet_PHREMD.h DataSet_PHREMD_Explicit.h DataSet_PHREMD_Implicit.h DataSet_pH.h Dimension.h DispatchObject.h EnsembleIn.h EnsembleOutList.h Exec.h Exec_SortEnsembleData.h FileIO.h FileName.h FileTypes.h Frame.h FramePtrArray.h InputTrajCommon.h MaskToken.h Matrix_3x3.h MetaData.h Molecule.h NameType.h Parallel.h ParameterHolders.h ParameterSet.h ParameterTypes.h Range.h ReferenceFrame.h ReplicaDimArray.h ReplicaInfo.h Residue.h StringRoutines.h SymbolExporting.h TextFormat.h Timer.h Topology.h TrajFrameCounter.h Trajin.h TrajinList.h TrajoutList.h TypeNameHolder.h Vec3.h Exec_SplitCoords.o : Exec_SplitCoords.cpp Action.h ActionList.h ActionState.h Analysis.h AnalysisList.h AnalysisState.h ArgList.h AssociatedData.h Atom.h AtomExtra.h AtomMask.h AtomType.h BaseIOtype.h Box.h Constants.h CoordinateInfo.h CpptrajFile.h CpptrajState.h CpptrajStdio.h DataFile.h DataFileList.h DataIO.h DataSet.h DataSetList.h DataSet_Coords.h DataSet_Coords_CRD.h DataSet_Coords_REF.h Dimension.h DispatchObject.h EnsembleIn.h EnsembleOutList.h Exec.h Exec_SplitCoords.h FileIO.h FileName.h FileTypes.h Frame.h FramePtrArray.h InputTrajCommon.h MaskToken.h Matrix_3x3.h MetaData.h Molecule.h NameType.h Parallel.h ParameterHolders.h ParameterSet.h ParameterTypes.h ProgressBar.h Range.h ReferenceFrame.h ReplicaDimArray.h ReplicaInfo.h Residue.h SymbolExporting.h TextFormat.h Timer.h Topology.h TrajFrameCounter.h Trajin.h TrajinList.h TrajoutList.h TypeNameHolder.h Vec3.h Exec_System.o : Exec_System.cpp Action.h ActionList.h ActionState.h Analysis.h AnalysisList.h AnalysisState.h ArgList.h AssociatedData.h Atom.h AtomExtra.h AtomMask.h AtomType.h BaseIOtype.h Box.h Constants.h CoordinateInfo.h CpptrajFile.h CpptrajState.h CpptrajStdio.h DataFile.h DataFileList.h DataIO.h DataSet.h DataSetList.h DataSet_Coords.h DataSet_Coords_REF.h Dimension.h DispatchObject.h EnsembleIn.h EnsembleOutList.h Exec.h Exec_System.h FileIO.h FileName.h FileTypes.h Frame.h FramePtrArray.h InputTrajCommon.h MaskToken.h Matrix_3x3.h MetaData.h Molecule.h NameType.h Parallel.h ParameterHolders.h ParameterSet.h ParameterTypes.h Range.h ReferenceFrame.h ReplicaDimArray.h ReplicaInfo.h Residue.h SymbolExporting.h TextFormat.h Timer.h Topology.h TrajFrameCounter.h Trajin.h TrajinList.h TrajoutList.h TypeNameHolder.h Vec3.h @@ -292,7 +292,7 @@ FileName.o : FileName.cpp CpptrajStdio.h FileName.h StringRoutines.h FileTypes.o : FileTypes.cpp ArgList.h BaseIOtype.h CpptrajStdio.h FileTypes.h File_TempName.o : File_TempName.cpp CpptrajStdio.h FileName.h File_TempName.h StringRoutines.h ForLoop.o : ForLoop.cpp ArgList.h AssociatedData.h Atom.h AtomExtra.h AtomMask.h AtomType.h Box.h Constants.h CoordinateInfo.h CpptrajFile.h CpptrajStdio.h DataSet.h DataSetList.h DataSet_Coords.h DataSet_Coords_REF.h Dimension.h FileIO.h FileName.h ForLoop.h Frame.h MaskToken.h Matrix_3x3.h MetaData.h Molecule.h NameType.h Parallel.h ParameterHolders.h ParameterSet.h ParameterTypes.h Range.h ReferenceFrame.h ReplicaDimArray.h Residue.h SymbolExporting.h TextFormat.h Timer.h Topology.h TypeNameHolder.h Vec3.h -ForLoop_dataSetBlocks.o : ForLoop_dataSetBlocks.cpp Action.h ActionList.h ActionState.h Analysis.h AnalysisList.h AnalysisState.h ArgList.h AssociatedData.h Atom.h AtomExtra.h AtomMask.h AtomType.h BaseIOtype.h Box.h Constants.h CoordinateInfo.h CpptrajFile.h CpptrajState.h CpptrajStdio.h DataFile.h DataFileList.h DataIO.h DataSet.h DataSetList.h DataSet_Coords.h DataSet_Coords_REF.h Dimension.h DispatchObject.h EnsembleIn.h EnsembleOutList.h FileIO.h FileName.h FileTypes.h ForLoop.h ForLoop_dataSetBlocks.h Frame.h FramePtrArray.h InputTrajCommon.h MaskToken.h Matrix_3x3.h MetaData.h Molecule.h NameType.h Parallel.h ParameterHolders.h ParameterSet.h ParameterTypes.h Range.h ReferenceFrame.h ReplicaDimArray.h ReplicaInfo.h Residue.h SymbolExporting.h TextFormat.h Timer.h Topology.h TrajFrameCounter.h Trajin.h TrajinList.h TrajoutList.h TypeNameHolder.h Vec3.h +ForLoop_dataSetBlocks.o : ForLoop_dataSetBlocks.cpp Action.h ActionList.h ActionState.h Analysis.h AnalysisList.h AnalysisState.h ArgList.h AssociatedData.h Atom.h AtomExtra.h AtomMask.h AtomType.h BaseIOtype.h Box.h Constants.h CoordinateInfo.h CpptrajFile.h CpptrajState.h CpptrajStdio.h DataFile.h DataFileList.h DataIO.h DataSet.h DataSetList.h DataSet_Coords.h DataSet_Coords_REF.h Dimension.h DispatchObject.h EnsembleIn.h EnsembleOutList.h FileIO.h FileName.h FileTypes.h ForLoop.h ForLoop_dataSetBlocks.h Frame.h FramePtrArray.h InputTrajCommon.h MaskToken.h Matrix_3x3.h MetaData.h Molecule.h NameType.h Parallel.h ParameterHolders.h ParameterSet.h ParameterTypes.h Range.h ReferenceFrame.h ReplicaDimArray.h ReplicaInfo.h Residue.h StringRoutines.h SymbolExporting.h TextFormat.h Timer.h Topology.h TrajFrameCounter.h Trajin.h TrajinList.h TrajoutList.h TypeNameHolder.h Vec3.h ForLoop_integer.o : ForLoop_integer.cpp Action.h ActionList.h ActionState.h Analysis.h AnalysisList.h AnalysisState.h ArgList.h AssociatedData.h Atom.h AtomExtra.h AtomMask.h AtomType.h BaseIOtype.h Box.h Constants.h CoordinateInfo.h CpptrajFile.h CpptrajState.h CpptrajStdio.h DataFile.h DataFileList.h DataIO.h DataSet.h DataSetList.h DataSet_Coords.h DataSet_Coords_REF.h Dimension.h DispatchObject.h EnsembleIn.h EnsembleOutList.h FileIO.h FileName.h FileTypes.h ForLoop.h ForLoop_integer.h Frame.h FramePtrArray.h InputTrajCommon.h MaskToken.h Matrix_3x3.h MetaData.h Molecule.h NameType.h Parallel.h ParameterHolders.h ParameterSet.h ParameterTypes.h Range.h ReferenceFrame.h ReplicaDimArray.h ReplicaInfo.h Residue.h StringRoutines.h SymbolExporting.h TextFormat.h Timer.h Topology.h TrajFrameCounter.h Trajin.h TrajinList.h TrajoutList.h TypeNameHolder.h Vec3.h ForLoop_list.o : ForLoop_list.cpp Action.h ActionList.h ActionState.h Analysis.h AnalysisList.h AnalysisState.h ArgList.h AssociatedData.h Atom.h AtomExtra.h AtomMask.h AtomType.h BaseIOtype.h Box.h Constants.h CoordinateInfo.h CpptrajFile.h CpptrajState.h CpptrajStdio.h DataFile.h DataFileList.h DataIO.h DataSet.h DataSetList.h DataSet_Coords.h DataSet_Coords_REF.h Dimension.h DispatchObject.h EnsembleIn.h EnsembleOutList.h FileIO.h FileName.h FileTypes.h ForLoop.h ForLoop_list.h Frame.h FramePtrArray.h InputTrajCommon.h MaskToken.h Matrix_3x3.h MetaData.h Molecule.h NameType.h Parallel.h ParameterHolders.h ParameterSet.h ParameterTypes.h Range.h ReferenceFrame.h ReplicaDimArray.h ReplicaInfo.h Residue.h SymbolExporting.h TextFormat.h Timer.h Topology.h TrajFrameCounter.h Trajin.h TrajinList.h TrajoutList.h TypeNameHolder.h Vec3.h ForLoop_mask.o : ForLoop_mask.cpp Action.h ActionList.h ActionState.h Analysis.h AnalysisList.h AnalysisState.h ArgList.h AssociatedData.h Atom.h AtomExtra.h AtomMask.h AtomType.h BaseIOtype.h Box.h Constants.h CoordinateInfo.h CpptrajFile.h CpptrajState.h CpptrajStdio.h DataFile.h DataFileList.h DataIO.h DataSet.h DataSetList.h DataSet_Coords.h DataSet_Coords_REF.h Dimension.h DispatchObject.h EnsembleIn.h EnsembleOutList.h FileIO.h FileName.h FileTypes.h ForLoop.h ForLoop_mask.h Frame.h FramePtrArray.h InputTrajCommon.h MaskToken.h Matrix_3x3.h MetaData.h Molecule.h NameType.h Parallel.h ParameterHolders.h ParameterSet.h ParameterTypes.h Range.h ReferenceFrame.h ReplicaDimArray.h ReplicaInfo.h Residue.h StringRoutines.h SymbolExporting.h TextFormat.h Timer.h Topology.h TrajFrameCounter.h Trajin.h TrajinList.h TrajoutList.h TypeNameHolder.h Vec3.h From 108351a9b8cc9eaa0cae08aaa568c2460701d448 Mon Sep 17 00:00:00 2001 From: "Daniel R. Roe" Date: Wed, 8 Jan 2020 10:24:03 -0500 Subject: [PATCH 112/162] DRR - Updated set legends. --- test/Test_Control/EndToEnd1.dat.save | 22 +++++++++++----------- test/Test_Control/EndToEnd2.agr.save | 12 ++++++------ 2 files changed, 17 insertions(+), 17 deletions(-) diff --git a/test/Test_Control/EndToEnd1.dat.save b/test/Test_Control/EndToEnd1.dat.save index 26a964e7a0..df7bff3d0d 100644 --- a/test/Test_Control/EndToEnd1.dat.save +++ b/test/Test_Control/EndToEnd1.dat.save @@ -1,11 +1,11 @@ -#Frame DS:0 DS:10 DS:20 DS:30 DS:40 DS:50 DS:60 DS:70 DS:80 DS:90 - 1 19.5966 15.7380 24.1724 26.5708 25.4524 27.2384 24.8268 23.5536 13.9835 16.2193 - 2 17.3480 16.1633 26.6273 24.8831 24.3159 26.9608 23.8860 22.1018 16.3418 14.9303 - 3 17.8450 20.5872 28.6254 26.6288 23.6855 24.3911 24.7488 23.8363 16.3319 12.2398 - 4 15.6454 25.1923 27.0966 25.2180 27.2770 22.0174 27.7153 25.4201 19.1379 13.2966 - 5 14.3931 26.6599 26.6521 28.1164 27.6559 25.8095 26.6599 23.2907 18.0394 17.2469 - 6 18.5833 29.1215 24.6119 28.1434 25.2341 27.6918 21.8790 19.5656 14.0243 17.0445 - 7 18.6442 30.8099 25.5315 27.5044 23.4983 28.7332 21.3410 19.7663 15.5260 15.3262 - 8 10.4004 29.4083 28.3073 28.3307 24.5663 25.4913 24.2118 19.3969 13.9823 13.5809 - 9 12.8161 24.8295 28.1660 29.3041 25.6547 25.5589 21.0304 17.1379 17.9049 14.7931 - 10 13.8327 22.8733 28.4593 27.2524 26.9956 27.9087 24.6680 15.2635 18.6844 16.1738 +#Frame EndToEndAll_1-10 EndToEndAll_11-20 EndToEndAll_21-30 EndToEndAll_31-40 EndToEndAll_41-50 EndToEndAll_51-60 EndToEndAll_61-70 EndToEndAll_71-80 EndToEndAll_81-90 EndToEndAll_91-100 + 1 19.5966 15.7380 24.1724 26.5708 25.4524 27.2384 24.8268 23.5536 13.9835 16.2193 + 2 17.3480 16.1633 26.6273 24.8831 24.3159 26.9608 23.8860 22.1018 16.3418 14.9303 + 3 17.8450 20.5872 28.6254 26.6288 23.6855 24.3911 24.7488 23.8363 16.3319 12.2398 + 4 15.6454 25.1923 27.0966 25.2180 27.2770 22.0174 27.7153 25.4201 19.1379 13.2966 + 5 14.3931 26.6599 26.6521 28.1164 27.6559 25.8095 26.6599 23.2907 18.0394 17.2469 + 6 18.5833 29.1215 24.6119 28.1434 25.2341 27.6918 21.8790 19.5656 14.0243 17.0445 + 7 18.6442 30.8099 25.5315 27.5044 23.4983 28.7332 21.3410 19.7663 15.5260 15.3262 + 8 10.4004 29.4083 28.3073 28.3307 24.5663 25.4913 24.2118 19.3969 13.9823 13.5809 + 9 12.8161 24.8295 28.1660 29.3041 25.6547 25.5589 21.0304 17.1379 17.9049 14.7931 + 10 13.8327 22.8733 28.4593 27.2524 26.9956 27.9087 24.6680 15.2635 18.6844 16.1738 diff --git a/test/Test_Control/EndToEnd2.agr.save b/test/Test_Control/EndToEnd2.agr.save index e29935c2d4..d817f7b9bb 100644 --- a/test/Test_Control/EndToEnd2.agr.save +++ b/test/Test_Control/EndToEnd2.agr.save @@ -3,7 +3,7 @@ @ yaxis label "" @ legend 0.2, 0.995 @ legend char size 0.60 -@ s0 legend "ES:50" +@ s0 legend "EndToEndAll_1-50" @target G0.S0 @type xy 1.000 19.5966 @@ -56,7 +56,7 @@ 48.000 24.5663 49.000 25.6547 50.000 26.9956 -@ s1 legend "ES:60" +@ s1 legend "EndToEndAll_1-60" @target G0.S1 @type xy 1.000 19.5966 @@ -119,7 +119,7 @@ 58.000 25.4913 59.000 25.5589 60.000 27.9087 -@ s2 legend "ES:70" +@ s2 legend "EndToEndAll_1-70" @target G0.S2 @type xy 1.000 19.5966 @@ -192,7 +192,7 @@ 68.000 24.2118 69.000 21.0304 70.000 24.6680 -@ s3 legend "ES:80" +@ s3 legend "EndToEndAll_1-80" @target G0.S3 @type xy 1.000 19.5966 @@ -275,7 +275,7 @@ 78.000 19.3969 79.000 17.1379 80.000 15.2635 -@ s4 legend "ES:90" +@ s4 legend "EndToEndAll_1-90" @target G0.S4 @type xy 1.000 19.5966 @@ -368,7 +368,7 @@ 88.000 13.9823 89.000 17.9049 90.000 18.6844 -@ s5 legend "ES:100" +@ s5 legend "EndToEndAll_1-100" @target G0.S5 @type xy 1.000 19.5966 From ee79b0ce52f588f27eeaeb017833fef58c847ab7 Mon Sep 17 00:00:00 2001 From: "Daniel R. Roe" Date: Wed, 8 Jan 2020 10:34:23 -0500 Subject: [PATCH 113/162] DRR - Data set index +1 to be consistent with set legend --- src/ForLoop_dataSetBlocks.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/ForLoop_dataSetBlocks.cpp b/src/ForLoop_dataSetBlocks.cpp index 9d1b9ac50d..eafa0719bc 100644 --- a/src/ForLoop_dataSetBlocks.cpp +++ b/src/ForLoop_dataSetBlocks.cpp @@ -102,7 +102,7 @@ bool ForLoop_dataSetBlocks::EndFor(DataSetList& DSL) { case BLOCKS: // Check if done by seeing if the current start value is outside the data set. if (idx_ < 0 || idx_ >= (long int)sourceSet_->Size()) return true; - dsidx = idx_; + dsidx = idx_ + 1; aspect = "block"; break; case CUMULATIVE: From 01c1dc7e28fc847a9518bd6a76de0828c76bf7b0 Mon Sep 17 00:00:00 2001 From: "Daniel R. Roe" Date: Wed, 8 Jan 2020 10:34:45 -0500 Subject: [PATCH 114/162] DRR - Fix up for loop manual entry --- doc/cpptraj.lyx | 61 ++++++++++++++++++++++++++++++++++--------------- 1 file changed, 43 insertions(+), 18 deletions(-) diff --git a/doc/cpptraj.lyx b/doc/cpptraj.lyx index 4f9d6babec..79d574b1cf 100644 --- a/doc/cpptraj.lyx +++ b/doc/cpptraj.lyx @@ -1920,10 +1920,21 @@ script variables and 'for' loops. Script variables are referred to by a dollar sign ('$') prefix and are replaced when they are processed. + These are stored in the master data set list like other data and are assigned + the type +\begin_inset Quotes eld +\end_inset + +string variable +\begin_inset Quotes erd +\end_inset + +. \series bold -Note that to use script variables in CPPTRAJ input that is also inside e.g. - a BASH script, they can be escaped with the ' +Note that to use script variables in CPPTRAJ input that is inside another + script (e.g. + a BASH script), they must be escaped with the ' \backslash ' character, \series default @@ -1943,13 +1954,13 @@ cpptraj <' + Available 'end OP' : '<' '>' '<=' '>=' \end_layout \begin_layout LyX-Code @@ -2206,7 +2217,8 @@ blocksize \begin_inset space ~ \end_inset -<#>] When cumulative, the size of the first block. +<#>] When cumulative, the size of the first block (default is first data + set element). \end_layout \end_deeper @@ -2239,9 +2251,31 @@ OP>[] Loop over integer script variable . \end_layout +\begin_layout Standard +Data Sets Created (datasetblocks loops): +\end_layout + +\begin_layout Description +[block]: (Data set blocks only) Data set block of blocksize starting at . +\end_layout + +\begin_layout Description +[cumul]: (Cumulative data set blocks only) Data set block starting at firstblock + and ending at . +\end_layout + \end_deeper \begin_layout Standard -Create a for loop using one or more mask expressions, integers etc. +Create a for loop using one or more mask expressions, integers, etc. Loops can be nested inside each other. Integer loops may be used without an end condition, but in that case at least one descriptor in the loop should have an end condition or refer @@ -2256,17 +2290,8 @@ done \begin_layout Standard Note that non-integer variables (e.g. - for mask loops) are NOT incremented after the final loop iteration, i.e. - these loop variables always retain their final value, so for these loop - types -\series bold - -\series default - will be -\series bold - -\series default -. + 'inmask' loops) are NOT incremented after the final loop iteration, i.e. + these loop variables always retain their final value. \end_layout \begin_layout Standard From b81e10387ae5e1e4f7593e30f858767b7626985a Mon Sep 17 00:00:00 2001 From: "Daniel R. Roe" Date: Wed, 8 Jan 2020 12:57:35 -0500 Subject: [PATCH 115/162] DRR - First check if string variable with name exists. This allows string variables to be used in data set name expressions, e.g. $i[phi] --- src/DataSetList.cpp | 37 +++++++++++++++++++++++++------------ 1 file changed, 25 insertions(+), 12 deletions(-) diff --git a/src/DataSetList.cpp b/src/DataSetList.cpp index ef5c26c5ec..81c39af69f 100644 --- a/src/DataSetList.cpp +++ b/src/DataSetList.cpp @@ -853,21 +853,34 @@ const size_t len = 1; for (size_t pos1 = pos+1; pos1 < varname.size(); pos1++, len++) if (!isalnum(varname[pos1])) break; - std::string var_in_arg = varname.substr(pos, len); //TODO needed? - // Not found in CurrentVars_; see if this is a DataSet. - for (size_t pos1 = pos+len; pos1 < varname.size(); pos1++, len++) + std::string var_in_arg = varname.substr(pos+1, len-1); + // String variables will never have aspect/index etc. See if string + // variable with this name exists. + DataSet* ds = 0; + //mprintf("DEBUG: Check for string var: '%s'\n", var_in_arg.c_str()); + for (const_iterator it = begin(); it != end(); ++it) { - if (!isalnum(varname[pos1]) && - varname[pos1] != '[' && - varname[pos1] != ':' && - varname[pos1] != ']' && - varname[pos1] != '_' && - varname[pos1] != '-' && - varname[pos1] != '%') + if ( (*it)->Type() == DataSet::STRINGVAR && (*it)->Matches_Exact(MetaData(var_in_arg)) ) { + ds = *it; break; + } + } + if (ds == 0) { + // String variable not found; see if this is a DataSet. + for (size_t pos1 = pos+len; pos1 < varname.size(); pos1++, len++) + { + if (!isalnum(varname[pos1]) && + varname[pos1] != '[' && + varname[pos1] != ':' && + varname[pos1] != ']' && + varname[pos1] != '_' && + varname[pos1] != '-' && + varname[pos1] != '%') + break; + } + var_in_arg = varname.substr(pos+1, len-1); + ds = CheckForSet( var_in_arg ); } - var_in_arg = varname.substr(pos+1, len-1); - DataSet* ds = CheckForSet( var_in_arg ); if (ds == 0) { mprinterr("Error: Unrecognized variable in command: %s\n", var_in_arg.c_str()); return -1; From 4631361b2f8b9e4be2189ded6b1091dc5c0a462e Mon Sep 17 00:00:00 2001 From: "Daniel R. Roe" Date: Thu, 9 Jan 2020 10:28:26 -0500 Subject: [PATCH 116/162] DRR - Implement data set copying for sets that support CopyBlock - otherwise revert to old behavior of renaming. --- src/DataSet.h | 2 ++ src/DataSet_1D.h | 2 ++ src/DataSet_Vector.h | 1 + src/RPNcalc.cpp | 70 ++++++++++++++++++++++++++++++++++---------- 4 files changed, 60 insertions(+), 15 deletions(-) diff --git a/src/DataSet.h b/src/DataSet.h index 7e9bf0866c..25cfa9bb3c 100644 --- a/src/DataSet.h +++ b/src/DataSet.h @@ -45,6 +45,8 @@ class DataSet { // ----------===== Inheritable functions =====---------- /// \return the number of data elements stored in the DataSet. virtual size_t Size() const = 0; + /// \return SizeArray containing sizes in each dimension TODO pure virtual + virtual SizeArray DimSizes() const { return SizeArray(); } /// Print DataSet information //TODO return string instead? virtual void Info() const = 0; /// Write data to file given start indices. FIXME Buffer? Should this function take number of elements as well? diff --git a/src/DataSet_1D.h b/src/DataSet_1D.h index 4d9aaddf03..1e5c2a6447 100644 --- a/src/DataSet_1D.h +++ b/src/DataSet_1D.h @@ -11,6 +11,8 @@ class DataSet_1D : public DataSet { DataSet_1D() {} DataSet_1D(DataSet::DataType tIn, TextFormat const& fIn) : DataSet(tIn, SCALAR_1D, fIn, 1) {} virtual ~DataSet_1D() {} + // ----- DataSet functions ------------------- + SizeArray DimSizes() const { return SizeArray(1, Size()); } // ---- DataSet_1D functions ----------------- /// \return data from set at position as double precision. virtual double Dval(size_t) const = 0; diff --git a/src/DataSet_Vector.h b/src/DataSet_Vector.h index 181429429c..55a0804570 100644 --- a/src/DataSet_Vector.h +++ b/src/DataSet_Vector.h @@ -13,6 +13,7 @@ class DataSet_Vector : public DataSet { // ----- DataSet functions ------------------- size_t Size() const { return vectors_.size(); } void Info() const { return; } + SizeArray DimSizes() const { return SizeArray(1, Size()); } // ------------------------------------------- virtual void reset() = 0; virtual void Resize(size_t) = 0; diff --git a/src/RPNcalc.cpp b/src/RPNcalc.cpp index eb7782d4ba..7eacf179eb 100644 --- a/src/RPNcalc.cpp +++ b/src/RPNcalc.cpp @@ -506,29 +506,63 @@ int RPNcalc::TokenLoop(DataSetList& DSL) const { mprinterr("Internal Error: Assigning to wrong data set!\n"); return 1; } - // Check if set already exists. + //mprintf("DEBUG: DS= %x output= %x\n", Dval[1].DS(), output); + // Check if set already exists in master DataSetList. DataSet* mainDS = DSL.CheckForSet(tokens_.front().Name()); if (mainDS != 0) { // Overwriting. TODO Only allow if dimensions match? - mprintf("Warning: Overwriting existing set '%s'\n", mainDS->legend()); + // First check if the set we will be overwriting is itself! + if (Dval[0].IsDataSet()) { + if (Dval[0].DS()->Matches_Exact( mainDS->Meta() )) { + mprintf("Warning: Attempting to assign '%s' to itself.\n", + mainDS->Meta().PrintName().c_str()); + return 0; + } + } + mprintf("Warning: Overwriting existing set '%s'\n", mainDS->Meta().PrintName().c_str()); DSL.RemoveSet( mainDS ); } if (Dval[0].IsDataSet()) { output = Dval[0].DS(); - if (debug_>0) + if (debug_ > 0) mprintf("DEBUG: output set is '%s'\n", output->legend()); bool outputIsLocal = (LocalList.PopSet( output ) != 0); - if (!outputIsLocal) - mprintf("Warning: Data set copy not yet implemented. Renaming set '%s' to '%s'\n", - output->Meta().PrintName().c_str(), tokens_.front().Name().c_str()); - if (debug_>0) - mprintf("DEBUG: Assigning '%s' to '%s'\n", Dval[0].DS()->legend(), - tokens_.front().Name().c_str()); - // Reset DataSet info. - output->SetMeta( tokens_.front().Name() ); - if (outputIsLocal) { + if (!outputIsLocal) { + // The output set is in the master DataSetList. First see if we + // can create a copy of it. + MetaData md( output->Meta() ); + md.SetName( tokens_.front().Name() ); + DataSet* currentSet = DSL.AddSet( output->Type(), md ); + if (currentSet == 0) { + mprinterr("Error: Could not allocate set '%s'\n", md.PrintName().c_str()); + return 1; + } + if ( currentSet->MemAlloc(output->DimSizes()) ) { + mprintf("Warning: Copy of set '%s' not yet implemented. Renaming to '%s'\n", + output->Meta().PrintName().c_str(), tokens_.front().Name().c_str()); + DSL.RemoveSet( currentSet ); + // Reset existing DataSet info. + output->SetMeta( tokens_.front().Name() ); + } else { + mprintf("\tCopying set '%s' to '%s'\n", + output->Meta().PrintName().c_str(), + currentSet->Meta().PrintName().c_str()); + currentSet->CopyBlock(0, output, 0, output->Size()); + for (size_t dim = 0; dim != output->Ndim(); dim++) + currentSet->SetDim(dim, output->Dim(dim)); + output = currentSet; + } + //mprintf("Warning: Data set copy not yet implemented. Renaming set '%s' to '%s'\n", + // output->Meta().PrintName().c_str(), tokens_.front().Name().c_str()); + } else { + // Output set is only in LocalList; rename and add to master DataSetList + if (debug_ > 0) + mprintf("DEBUG: Assigning '%s' to '%s'\n", Dval[0].DS()->legend(), + tokens_.front().Name().c_str()); + // Reset DataSet info. + output->SetMeta( tokens_.front().Name() ); if (DSL.AddSet( output )) return 1; - } + } } else { output = DSL.AddSet(DataSet::DOUBLE, tokens_.front().Name(), "CALC"); if (output == 0) return 1; @@ -898,12 +932,18 @@ int RPNcalc::TokenLoop(DataSetList& DSL) const { return 1; } if (output == 0) { - mprintf("Result: "); + mprintf(" Result: "); mprintf(fmt_.fmt(), Stack.top().Value()); mprintf("\n"); } else { if (formatSet_) output->SetupFormat() = fmt_; - mprintf("Result stored in '%s'\n", output->legend()); + mprintf(" Result stored in '%s'", output->Meta().PrintName().c_str()); + if (output->Group() == DataSet::SCALAR_1D && output->Size() == 1) + { + mprintf(": "); + mprintf(fmt_.fmt(), ((DataSet_1D*)output)->Dval(0)); + } + mprintf("\n"); } return 0; } From 6ce88a3822ca50513063df8bc0c1fb4604f8d575 Mon Sep 17 00:00:00 2001 From: "Daniel R. Roe" Date: Thu, 9 Jan 2020 10:34:05 -0500 Subject: [PATCH 117/162] DRR - Add data set copy test --- test/Test_Calc/RunTest.sh | 8 +++++++- test/Test_Calc/mag2.dat.save | 11 +++++++++++ 2 files changed, 18 insertions(+), 1 deletion(-) create mode 100644 test/Test_Calc/mag2.dat.save diff --git a/test/Test_Calc/RunTest.sh b/test/Test_Calc/RunTest.sh index b8b0437e04..72ad208b6f 100755 --- a/test/Test_Calc/RunTest.sh +++ b/test/Test_Calc/RunTest.sh @@ -2,7 +2,7 @@ . ../MasterTest.sh -CleanFiles calc.in calc.dat mag.dat +CleanFiles calc.in calc.dat mag.dat mag2.dat INPUT='-i calc.in' cat > calc.in < Date: Thu, 9 Jan 2020 13:30:04 -0500 Subject: [PATCH 118/162] DRR - Minor version bump, vector output is different. --- src/Version.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/Version.h b/src/Version.h index 288607a342..1222020cf2 100644 --- a/src/Version.h +++ b/src/Version.h @@ -12,7 +12,7 @@ * Whenever a number that precedes is incremented, all subsequent * numbers should be reset to 0. */ -#define CPPTRAJ_INTERNAL_VERSION "V4.25.0" +#define CPPTRAJ_INTERNAL_VERSION "V4.26.0" /// PYTRAJ relies on this #define CPPTRAJ_VERSION_STRING CPPTRAJ_INTERNAL_VERSION #endif From c2017b346e9e567e7cdde07edd98d963bf5bda98 Mon Sep 17 00:00:00 2001 From: "Daniel R. Roe" Date: Fri, 10 Jan 2020 08:35:08 -0500 Subject: [PATCH 119/162] DRR - Improve math help and manual entry --- doc/cpptraj.lyx | 20 ++++++++++++++++++-- src/Exec_Help.cpp | 37 +++++++++++++++++++++++++++++++++++-- src/Exec_Help.h | 1 + 3 files changed, 54 insertions(+), 4 deletions(-) diff --git a/doc/cpptraj.lyx b/doc/cpptraj.lyx index f187b2c6fd..7d06af41bb 100644 --- a/doc/cpptraj.lyx +++ b/doc/cpptraj.lyx @@ -2468,8 +2468,24 @@ trajin \end_deeper \begin_layout Standard Set ( = '=') or append ( = '+=') a script variable. - Script variables are referred to in CPPTRAJ input by using a dollar sign - '$' prefix. + Script variables are character strings, and are referred to in CPPTRAJ + input by using a dollar sign '$' prefix. +\end_layout + +\begin_layout Standard +For example, the following input will load files my.parm7 and my.rst7: +\end_layout + +\begin_layout LyX-Code +set PREFIX = my +\end_layout + +\begin_layout LyX-Code +trajin $PREFIX.parm7 +\end_layout + +\begin_layout LyX-Code +trajin $PREFIX.rst7 \end_layout \begin_layout Standard diff --git a/src/Exec_Help.cpp b/src/Exec_Help.cpp index f44531a323..3c8befead8 100644 --- a/src/Exec_Help.cpp +++ b/src/Exec_Help.cpp @@ -10,7 +10,7 @@ void Exec_Help::Help() const { "\t |\n" "\t Form[ats] [{read|write}] |\n" "\t Form[ats] [{trajin|trajout|readdata|writedata|parm|parmwrite} []] |\n" - "\t Mask\n" + "\t Mask | Math\n" "\t } ]\n" "\tCommand Categories: Gen[eral] Sys[tem] Coor[ds] Traj[ectory] Top[ology]\n" "\t Act[ion] Ana[lysis] Con[trol]\n" @@ -18,7 +18,8 @@ void Exec_Help::Help() const { " : Print help for command .\n" " : Print all commands in specified category.\n" " Form[ats] : Help for file formats.\n" - " Mask : Help for mask syntax.\n"); + " Mask : Help for mask syntax.\n" + " Math : Help for math operations/functions.\n"); } /** Print help for file formats. */ @@ -128,6 +129,36 @@ int Exec_Help::Masks(ArgList& argIn) const { return 1; } +int Exec_Help::Math(ArgList& argIn) const { + mprintf(" Available Math Operations\n" + "\tSymbol Operation\n" + "\t - : Minus, negate\n" + "\t + : Plus\n" + "\t / : Divide\n" + "\t * : Multiply\n" + "\t ^ : Power\n" + "\t = : Assign\n" + " Available functions\n" + "\tForm Function\n" + "\tsqrt() : Square root\n" + "\texp() : Exponential\n" + "\tln() : Natural logarithm\n" + "\tabs() : Absolute value\n" + "\tsin() : Sine\n" + "\tcos() : Cosine\n" + "\ttan() : Tangent\n" + " Data set functions\n" + "\tsum() : Summation\n" + "\tavg() : Average\n" + "\tstdev() : Standard deviation\n" + "\tmin() : Minimum\n" + "\tmax() : Maximum\n" + " Constants\n" + "\tPI : Pi\n" + ); + return 1; +} + /** \return 1 if a help topic was found, 0 otherwise. */ int Exec_Help::Topics(ArgList& argIn) const { // By convention, Topics will start with uppercase letters and @@ -137,6 +168,8 @@ int Exec_Help::Topics(ArgList& argIn) const { return Formats(argIn); else if (argIn[0].compare(0,4,"Mask")==0) return Masks(argIn); + else if (argIn[0].compare(0,4,"Math")==0) + return Math(argIn); else if (argIn.CommandIs("All")) { Command::ListCommands( NONE ); return 1; diff --git a/src/Exec_Help.h b/src/Exec_Help.h index 66e7113313..b494b391d0 100644 --- a/src/Exec_Help.h +++ b/src/Exec_Help.h @@ -11,6 +11,7 @@ class Exec_Help : public Exec { private: int Formats(ArgList&) const; int Masks(ArgList&) const; + int Math(ArgList&) const; int Topics(ArgList&) const; }; #endif From 93608e73e987a78c47284e469ae8c8d37a6b8e31 Mon Sep 17 00:00:00 2001 From: "Daniel R. Roe" Date: Fri, 10 Jan 2020 08:49:54 -0500 Subject: [PATCH 120/162] DRR - Use forward declares. When processing expression, first remove all whitespace to make parsing easier. --- src/RPNcalc.cpp | 12 +++++++----- src/RPNcalc.h | 6 +++++- src/cpptrajdepend | 6 +++--- 3 files changed, 15 insertions(+), 9 deletions(-) diff --git a/src/RPNcalc.cpp b/src/RPNcalc.cpp index 7eacf179eb..2a4dd081ee 100644 --- a/src/RPNcalc.cpp +++ b/src/RPNcalc.cpp @@ -3,12 +3,14 @@ #include #include #include "RPNcalc.h" +#include "DataSetList.h" #include "DataSet_Vector.h" #include "DataSet_double.h" #include "DataSet_MatrixDbl.h" #include "DataSet_GridFlt.h" #include "CpptrajStdio.h" #include "Constants.h" // PI +#include "StringRoutines.h" // CONSTRUCTOR RPNcalc::RPNcalc() : fmt_(TextFormat::DOUBLE), formatSet_(false) {} @@ -54,10 +56,12 @@ int RPNcalc::ProcessOptions(ArgList& argIn) { * shunting-yard algorithm which has been slightly modified to * recognize unary right-associative operators. */ -int RPNcalc::ProcessExpression(std::string const& expression) { +int RPNcalc::ProcessExpression(std::string const& expressionIn) { std::locale loc; - if (expression.empty()) return 1; - if (debug_ > 0) mprintf("Parsing expression: '%s'\n", expression.c_str()); + if (expressionIn.empty()) return 1; + // Remove all whitespace + std::string expression = NoWhitespace(expressionIn); + if (debug_ >= 0) mprintf("DEBUG: Parsing expression: '%s'\n", expression.c_str()); tokens_.clear(); std::stack op_stack; std::string::const_iterator ptr = expression.begin(); @@ -65,8 +69,6 @@ int RPNcalc::ProcessExpression(std::string const& expression) { while ( ptr != expression.end() ) { //mprintf("DEBUG: Start of loop, char is '%c'\n", *ptr); - // Skip whitespace - if (isspace(*ptr, loc)) { ++ptr; continue; } // NUMBER ------------------------------------ if (*ptr == '.' || isdigit(*ptr, loc)) diff --git a/src/RPNcalc.h b/src/RPNcalc.h index a818c9c3c6..6a9bb4b51a 100644 --- a/src/RPNcalc.h +++ b/src/RPNcalc.h @@ -1,6 +1,10 @@ #ifndef INC_RPNCALC_H #define INC_RPNCALC_H -#include "DataSetList.h" +#include +#include "TextFormat.h" +class DataSetList; +class DataSet; +class ArgList; /// Reverse Polish notation calculator class RPNcalc { public: diff --git a/src/cpptrajdepend b/src/cpptrajdepend index 236f7ffdce..907d33e1c4 100644 --- a/src/cpptrajdepend +++ b/src/cpptrajdepend @@ -34,7 +34,7 @@ Action_Esander.o : Action_Esander.cpp Action.h ActionState.h Action_Esander.h Ar Action_FilterByData.o : Action_FilterByData.cpp Action.h ActionState.h Action_FilterByData.h ArgList.h Array1D.h AssociatedData.h Atom.h AtomExtra.h AtomMask.h AtomType.h BaseIOtype.h Box.h Constants.h CoordinateInfo.h CpptrajFile.h CpptrajStdio.h DataFile.h DataFileList.h DataIO.h DataSet.h DataSetList.h DataSet_1D.h DataSet_Coords.h DataSet_Coords_REF.h Dimension.h DispatchObject.h FileIO.h FileName.h FileTypes.h Frame.h MaskToken.h Matrix_3x3.h MetaData.h Molecule.h NameType.h Parallel.h ParameterHolders.h ParameterSet.h ParameterTypes.h Range.h ReferenceFrame.h ReplicaDimArray.h Residue.h SymbolExporting.h TextFormat.h Timer.h Topology.h TypeNameHolder.h Vec3.h Action_FixAtomOrder.o : Action_FixAtomOrder.cpp Action.h ActionState.h Action_FixAtomOrder.h ArgList.h AssociatedData.h Atom.h AtomExtra.h AtomMask.h AtomType.h BaseIOtype.h BondSearch.h Box.h Constants.h CoordinateInfo.h CpptrajFile.h CpptrajStdio.h DataFile.h DataFileList.h DataIO.h DataSet.h DataSetList.h DataSet_Coords.h DataSet_Coords_REF.h Dimension.h DispatchObject.h FileIO.h FileName.h FileTypes.h Frame.h MaskToken.h Matrix_3x3.h MetaData.h Molecule.h NameType.h Parallel.h ParameterHolders.h ParameterSet.h ParameterTypes.h ParmFile.h ParmIO.h Range.h ReferenceFrame.h ReplicaDimArray.h Residue.h SymbolExporting.h TextFormat.h Timer.h Topology.h TypeNameHolder.h Vec3.h Action_FixImagedBonds.o : Action_FixImagedBonds.cpp Action.h ActionState.h Action_FixImagedBonds.h ArgList.h AssociatedData.h Atom.h AtomExtra.h AtomMask.h AtomType.h BaseIOtype.h Box.h CharMask.h Constants.h CoordinateInfo.h CpptrajFile.h CpptrajStdio.h DataFile.h DataFileList.h DataIO.h DataSet.h DataSetList.h DataSet_Coords.h DataSet_Coords_REF.h Dimension.h DispatchObject.h DistRoutines.h FileIO.h FileName.h FileTypes.h Frame.h ImagedAction.h MaskToken.h Matrix_3x3.h MetaData.h Molecule.h NameType.h Parallel.h ParameterHolders.h ParameterSet.h ParameterTypes.h Range.h ReferenceFrame.h ReplicaDimArray.h Residue.h SymbolExporting.h TextFormat.h Timer.h Topology.h TypeNameHolder.h Vec3.h -Action_GIST.o : Action_GIST.cpp Action.h ActionState.h Action_GIST.h ArgList.h ArrayIterator.h AssociatedData.h Atom.h AtomExtra.h AtomMask.h AtomType.h BaseIOtype.h Box.h Constants.h CoordinateInfo.h CpptrajFile.h CpptrajStdio.h DataFile.h DataFileList.h DataIO.h DataSet.h DataSetList.h DataSet_2D.h DataSet_3D.h DataSet_Coords.h DataSet_Coords_REF.h DataSet_GridDbl.h DataSet_GridFlt.h DataSet_MatrixFlt.h Dimension.h DispatchObject.h DistRoutines.h FileIO.h FileName.h FileTypes.h Frame.h Grid.h GridBin.h ImagedAction.h MaskToken.h Matrix.h Matrix_3x3.h MetaData.h Molecule.h NameType.h Parallel.h ParameterHolders.h ParameterSet.h ParameterTypes.h ProgressBar.h Range.h ReferenceFrame.h ReplicaDimArray.h Residue.h StringRoutines.h SymbolExporting.h TextFormat.h Timer.h Topology.h TypeNameHolder.h Vec3.h +Action_GIST.o : Action_GIST.cpp Action.h ActionState.h Action_GIST.h ArgList.h ArrayIterator.h AssociatedData.h Atom.h AtomExtra.h AtomMask.h AtomType.h BaseIOtype.h Box.h Constants.h CoordinateInfo.h CpptrajFile.h CpptrajStdio.h DataFile.h DataFileList.h DataIO.h DataSet.h DataSetList.h DataSet_2D.h DataSet_3D.h DataSet_Coords.h DataSet_Coords_REF.h DataSet_GridDbl.h DataSet_GridFlt.h DataSet_MatrixFlt.h Dimension.h DispatchObject.h DistRoutines.h FileIO.h FileName.h FileTypes.h Frame.h Grid.h GridBin.h ImagedAction.h MaskToken.h Matrix.h Matrix_3x3.h MetaData.h Molecule.h NameType.h Parallel.h ParameterHolders.h ParameterSet.h ParameterTypes.h ProgressBar.h Range.h ReferenceFrame.h ReplicaDimArray.h Residue.h StringRoutines.h SymbolExporting.h TextFormat.h Timer.h Topology.h TypeNameHolder.h Vec3.h cuda_kernels/GistCudaSetup.cuh Action_Grid.o : Action_Grid.cpp Action.h ActionState.h Action_Grid.h ArgList.h ArrayIterator.h AssociatedData.h Atom.h AtomExtra.h AtomMask.h AtomType.h BaseIOtype.h Box.h Constants.h CoordinateInfo.h CpptrajFile.h CpptrajStdio.h DataFile.h DataFileList.h DataIO.h DataSet.h DataSetList.h DataSet_3D.h DataSet_Coords.h DataSet_Coords_REF.h DataSet_GridFlt.h Dimension.h DispatchObject.h FileIO.h FileName.h FileTypes.h Frame.h Grid.h GridAction.h GridBin.h MaskArray.h MaskToken.h Matrix_3x3.h MetaData.h Molecule.h NameType.h PDBfile.h Parallel.h ParameterHolders.h ParameterSet.h ParameterTypes.h Range.h ReferenceFrame.h ReplicaDimArray.h Residue.h SymbolExporting.h TextFormat.h Timer.h Topology.h TypeNameHolder.h Vec3.h Action_GridFreeEnergy.o : Action_GridFreeEnergy.cpp Action.h ActionState.h Action_GridFreeEnergy.h ArgList.h ArrayIterator.h AssociatedData.h Atom.h AtomExtra.h AtomMask.h AtomType.h BaseIOtype.h Box.h Constants.h CoordinateInfo.h CpptrajFile.h CpptrajStdio.h DataFile.h DataFileList.h DataIO.h DataSet.h DataSetList.h DataSet_3D.h DataSet_Coords.h DataSet_Coords_REF.h DataSet_GridFlt.h Dimension.h DispatchObject.h FileIO.h FileName.h FileTypes.h Frame.h Grid.h GridAction.h GridBin.h MaskToken.h Matrix_3x3.h MetaData.h Molecule.h NameType.h Parallel.h ParameterHolders.h ParameterSet.h ParameterTypes.h Range.h ReferenceFrame.h ReplicaDimArray.h Residue.h StringRoutines.h SymbolExporting.h TextFormat.h Timer.h Topology.h TypeNameHolder.h Vec3.h Action_HydrogenBond.o : Action_HydrogenBond.cpp Action.h ActionState.h Action_HydrogenBond.h ArgList.h AssociatedData.h Atom.h AtomExtra.h AtomMask.h AtomType.h BaseIOtype.h Box.h Constants.h CoordinateInfo.h CpptrajFile.h CpptrajStdio.h DataFile.h DataFileList.h DataIO.h DataSet.h DataSetList.h DataSet_1D.h DataSet_Coords.h DataSet_Coords_REF.h DataSet_integer.h Dimension.h DispatchObject.h DistRoutines.h FileIO.h FileName.h FileTypes.h Frame.h ImagedAction.h MaskToken.h Matrix_3x3.h MetaData.h Molecule.h NameType.h Parallel.h ParameterHolders.h ParameterSet.h ParameterTypes.h Range.h ReferenceFrame.h ReplicaDimArray.h Residue.h StringRoutines.h SymbolExporting.h TextFormat.h Timer.h Topology.h TorsionRoutines.h TypeNameHolder.h Vec3.h @@ -157,7 +157,7 @@ Cluster_ReadInfo.o : Cluster_ReadInfo.cpp ArgList.h ArrayIterator.h AssociatedDa Cmd.o : Cmd.cpp Cmd.h DispatchObject.h CmdInput.o : CmdInput.cpp CmdInput.h StringRoutines.h CmdList.o : CmdList.cpp Cmd.h CmdList.h DispatchObject.h -Command.o : Command.cpp Action.h ActionFrameCounter.h ActionList.h ActionState.h Action_Align.h Action_Angle.h Action_AreaPerMol.h Action_AtomMap.h Action_AtomicCorr.h Action_AtomicFluct.h Action_AutoImage.h Action_Average.h Action_Bounds.h Action_Box.h Action_Center.h Action_Channel.h Action_CheckChirality.h Action_CheckStructure.h Action_Closest.h Action_ClusterDihedral.h Action_Contacts.h Action_CreateCrd.h Action_CreateReservoir.h Action_DNAionTracker.h Action_DSSP.h Action_Density.h Action_Diffusion.h Action_Dihedral.h Action_DihedralRMS.h Action_Dipole.h Action_DistRmsd.h Action_Distance.h Action_Energy.h Action_Esander.h Action_FilterByData.h Action_FixAtomOrder.h Action_FixImagedBonds.h Action_GIST.h Action_Grid.h Action_GridFreeEnergy.h Action_HydrogenBond.h Action_Image.h Action_InfraredSpectrum.h Action_Jcoupling.h Action_LESsplit.h Action_LIE.h Action_LipidOrder.h Action_MakeStructure.h Action_Mask.h Action_Matrix.h Action_MinImage.h Action_Molsurf.h Action_MultiDihedral.h Action_MultiVector.h Action_NAstruct.h Action_NMRrst.h Action_NativeContacts.h Action_OrderParameter.h Action_Outtraj.h Action_PairDist.h Action_Pairwise.h Action_Principal.h Action_Projection.h Action_Pucker.h Action_Radgyr.h Action_Radial.h Action_RandomizeIons.h Action_Remap.h Action_ReplicateCell.h Action_Rmsd.h Action_Rotate.h Action_RunningAvg.h Action_STFC_Diffusion.h Action_Scale.h Action_SetVelocity.h Action_Spam.h Action_Strip.h Action_Surf.h Action_SymmetricRmsd.h Action_Temperature.h Action_Time.h Action_Translate.h Action_Unstrip.h Action_Unwrap.h Action_Vector.h Action_VelocityAutoCorr.h Action_Volmap.h Action_Volume.h Action_Watershell.h Action_XtalSymm.h Analysis.h AnalysisList.h AnalysisState.h Analysis_AmdBias.h Analysis_AutoCorr.h Analysis_Average.h Analysis_Clustering.h Analysis_ConstantPHStats.h Analysis_Corr.h Analysis_CrankShaft.h Analysis_CrdFluct.h Analysis_CrossCorr.h Analysis_CurveFit.h Analysis_Divergence.h Analysis_FFT.h Analysis_HausdorffDistance.h Analysis_Hist.h Analysis_IRED.h Analysis_Integrate.h Analysis_KDE.h Analysis_Lifetime.h Analysis_LowestCurve.h Analysis_Matrix.h Analysis_MeltCurve.h Analysis_Modes.h Analysis_MultiHist.h Analysis_Multicurve.h Analysis_Overlap.h Analysis_PhiPsi.h Analysis_Regression.h Analysis_RemLog.h Analysis_Rms2d.h Analysis_RmsAvgCorr.h Analysis_Rotdif.h Analysis_RunningAvg.h Analysis_Slope.h Analysis_Spline.h Analysis_State.h Analysis_Statistics.h Analysis_TI.h Analysis_Timecorr.h Analysis_VectorMath.h Analysis_Wavelet.h ArgList.h Array1D.h ArrayIterator.h AssociatedData.h Atom.h AtomExtra.h AtomMap.h AtomMask.h AtomType.h AxisType.h BaseIOtype.h Box.h BufferedLine.h CharMask.h ClusterDist.h ClusterList.h ClusterMap.h ClusterNode.h ClusterSieve.h Cmd.h CmdInput.h CmdList.h Command.h ComplexArray.h Constants.h Constraints.h ControlBlock.h ControlBlock_For.h CoordinateInfo.h Corr.h Cph.h CpptrajFile.h CpptrajState.h CpptrajStdio.h DataFile.h DataFileList.h DataIO.h DataSet.h DataSetList.h DataSet_1D.h DataSet_2D.h DataSet_3D.h DataSet_Cmatrix.h DataSet_Coords.h DataSet_Coords_CRD.h DataSet_Coords_REF.h DataSet_GridFlt.h DataSet_Mat3x3.h DataSet_MatrixDbl.h DataSet_MatrixFlt.h DataSet_Mesh.h DataSet_Modes.h DataSet_RemLog.h DataSet_Vector.h DataSet_Vector_XYZ.h DataSet_double.h DataSet_float.h DataSet_integer.h DataSet_integer_mem.h DataSet_pH.h DataSet_string.h Deprecated.h DihedralSearch.h Dimension.h DispatchObject.h DistRoutines.h Energy.h Energy_Sander.h EnsembleIn.h EnsembleOutList.h Exec.h Exec_Analyze.h Exec_Calc.h Exec_CatCrd.h Exec_Change.h Exec_ClusterMap.h Exec_CombineCoords.h Exec_Commands.h Exec_CompareTop.h Exec_CrdAction.h Exec_CrdOut.h Exec_CreateSet.h Exec_DataFile.h Exec_DataFilter.h Exec_DataSetCmd.h Exec_GenerateAmberRst.h Exec_Help.h Exec_LoadCrd.h Exec_LoadTraj.h Exec_ParallelAnalysis.h Exec_ParmBox.h Exec_ParmSolvent.h Exec_ParmStrip.h Exec_ParmWrite.h Exec_PermuteDihedrals.h Exec_Precision.h Exec_PrintData.h Exec_ReadData.h Exec_ReadEnsembleData.h Exec_ReadInput.h Exec_RotateDihedral.h Exec_RunAnalysis.h Exec_ScaleDihedralK.h Exec_SequenceAlign.h Exec_Set.h Exec_Show.h Exec_SortEnsembleData.h Exec_SplitCoords.h Exec_System.h Exec_Top.h Exec_Traj.h Exec_UpdateParameters.h Exec_ViewRst.h FileIO.h FileName.h FileTypes.h Frame.h FramePtrArray.h Grid.h GridAction.h GridBin.h HistBin.h Hungarian.h ImageTypes.h ImagedAction.h InputTrajCommon.h MapAtom.h MaskArray.h MaskToken.h Matrix.h Matrix_3x3.h MetaData.h Molecule.h NameType.h NetcdfFile.h OnlineVarT.h OutputTrajCommon.h PDBfile.h PairList.h Parallel.h ParameterHolders.h ParameterSet.h ParameterTypes.h PubFFT.h RPNcalc.h Random.h Range.h ReferenceAction.h ReferenceFrame.h RemdReservoirNC.h ReplicaDimArray.h ReplicaInfo.h Residue.h Spline.h StructureCheck.h SymbolExporting.h SymmetricRmsdCalc.h TextFormat.h Timer.h Topology.h TrajFrameCounter.h TrajectoryFile.h Trajin.h TrajinList.h TrajoutList.h Trajout_Single.h TypeNameHolder.h Vec3.h molsurf.h +Command.o : Command.cpp Action.h ActionFrameCounter.h ActionList.h ActionState.h Action_Align.h Action_Angle.h Action_AreaPerMol.h Action_AtomMap.h Action_AtomicCorr.h Action_AtomicFluct.h Action_AutoImage.h Action_Average.h Action_Bounds.h Action_Box.h Action_Center.h Action_Channel.h Action_CheckChirality.h Action_CheckStructure.h Action_Closest.h Action_ClusterDihedral.h Action_Contacts.h Action_CreateCrd.h Action_CreateReservoir.h Action_DNAionTracker.h Action_DSSP.h Action_Density.h Action_Diffusion.h Action_Dihedral.h Action_DihedralRMS.h Action_Dipole.h Action_DistRmsd.h Action_Distance.h Action_Energy.h Action_Esander.h Action_FilterByData.h Action_FixAtomOrder.h Action_FixImagedBonds.h Action_GIST.h Action_Grid.h Action_GridFreeEnergy.h Action_HydrogenBond.h Action_Image.h Action_InfraredSpectrum.h Action_Jcoupling.h Action_LESsplit.h Action_LIE.h Action_LipidOrder.h Action_MakeStructure.h Action_Mask.h Action_Matrix.h Action_MinImage.h Action_Molsurf.h Action_MultiDihedral.h Action_MultiVector.h Action_NAstruct.h Action_NMRrst.h Action_NativeContacts.h Action_OrderParameter.h Action_Outtraj.h Action_PairDist.h Action_Pairwise.h Action_Principal.h Action_Projection.h Action_Pucker.h Action_Radgyr.h Action_Radial.h Action_RandomizeIons.h Action_Remap.h Action_ReplicateCell.h Action_Rmsd.h Action_Rotate.h Action_RunningAvg.h Action_STFC_Diffusion.h Action_Scale.h Action_SetVelocity.h Action_Spam.h Action_Strip.h Action_Surf.h Action_SymmetricRmsd.h Action_Temperature.h Action_Time.h Action_Translate.h Action_Unstrip.h Action_Unwrap.h Action_Vector.h Action_VelocityAutoCorr.h Action_Volmap.h Action_Volume.h Action_Watershell.h Action_XtalSymm.h Analysis.h AnalysisList.h AnalysisState.h Analysis_AmdBias.h Analysis_AutoCorr.h Analysis_Average.h Analysis_Clustering.h Analysis_ConstantPHStats.h Analysis_Corr.h Analysis_CrankShaft.h Analysis_CrdFluct.h Analysis_CrossCorr.h Analysis_CurveFit.h Analysis_Divergence.h Analysis_FFT.h Analysis_HausdorffDistance.h Analysis_Hist.h Analysis_IRED.h Analysis_Integrate.h Analysis_KDE.h Analysis_Lifetime.h Analysis_LowestCurve.h Analysis_Matrix.h Analysis_MeltCurve.h Analysis_Modes.h Analysis_MultiHist.h Analysis_Multicurve.h Analysis_Overlap.h Analysis_PhiPsi.h Analysis_Regression.h Analysis_RemLog.h Analysis_Rms2d.h Analysis_RmsAvgCorr.h Analysis_Rotdif.h Analysis_RunningAvg.h Analysis_Slope.h Analysis_Spline.h Analysis_State.h Analysis_Statistics.h Analysis_TI.h Analysis_Timecorr.h Analysis_VectorMath.h Analysis_Wavelet.h ArgList.h Array1D.h ArrayIterator.h AssociatedData.h Atom.h AtomExtra.h AtomMap.h AtomMask.h AtomType.h AxisType.h BaseIOtype.h Box.h BufferedLine.h CharMask.h ClusterDist.h ClusterList.h ClusterMap.h ClusterNode.h ClusterSieve.h Cmd.h CmdInput.h CmdList.h Command.h ComplexArray.h Constants.h Constraints.h ControlBlock.h ControlBlock_For.h CoordinateInfo.h Corr.h Cph.h CpptrajFile.h CpptrajState.h CpptrajStdio.h DataFile.h DataFileList.h DataIO.h DataSet.h DataSetList.h DataSet_1D.h DataSet_2D.h DataSet_3D.h DataSet_Cmatrix.h DataSet_Coords.h DataSet_Coords_CRD.h DataSet_Coords_REF.h DataSet_GridFlt.h DataSet_Mat3x3.h DataSet_MatrixDbl.h DataSet_MatrixFlt.h DataSet_Mesh.h DataSet_Modes.h DataSet_RemLog.h DataSet_Vector.h DataSet_Vector_XYZ.h DataSet_double.h DataSet_float.h DataSet_integer.h DataSet_integer_mem.h DataSet_pH.h DataSet_string.h Deprecated.h DihedralSearch.h Dimension.h DispatchObject.h DistRoutines.h Energy.h Energy_Sander.h EnsembleIn.h EnsembleOutList.h Exec.h Exec_Analyze.h Exec_Calc.h Exec_CatCrd.h Exec_Change.h Exec_ClusterMap.h Exec_CombineCoords.h Exec_Commands.h Exec_CompareTop.h Exec_CrdAction.h Exec_CrdOut.h Exec_CreateSet.h Exec_DataFile.h Exec_DataFilter.h Exec_DataSetCmd.h Exec_GenerateAmberRst.h Exec_Help.h Exec_LoadCrd.h Exec_LoadTraj.h Exec_ParallelAnalysis.h Exec_ParmBox.h Exec_ParmSolvent.h Exec_ParmStrip.h Exec_ParmWrite.h Exec_PermuteDihedrals.h Exec_Precision.h Exec_PrintData.h Exec_ReadData.h Exec_ReadEnsembleData.h Exec_ReadInput.h Exec_RotateDihedral.h Exec_RunAnalysis.h Exec_ScaleDihedralK.h Exec_SequenceAlign.h Exec_Set.h Exec_Show.h Exec_SortEnsembleData.h Exec_SplitCoords.h Exec_System.h Exec_Top.h Exec_Traj.h Exec_UpdateParameters.h Exec_ViewRst.h FileIO.h FileName.h FileTypes.h Frame.h FramePtrArray.h Grid.h GridAction.h GridBin.h HistBin.h Hungarian.h ImageTypes.h ImagedAction.h InputTrajCommon.h MapAtom.h MaskArray.h MaskToken.h Matrix.h Matrix_3x3.h MetaData.h Molecule.h NameType.h NetcdfFile.h OnlineVarT.h OutputTrajCommon.h PDBfile.h PairList.h Parallel.h ParameterHolders.h ParameterSet.h ParameterTypes.h PubFFT.h RPNcalc.h Random.h Range.h ReferenceAction.h ReferenceFrame.h RemdReservoirNC.h ReplicaDimArray.h ReplicaInfo.h Residue.h Spline.h StructureCheck.h SymbolExporting.h SymmetricRmsdCalc.h TextFormat.h Timer.h Topology.h TrajFrameCounter.h TrajectoryFile.h Trajin.h TrajinList.h TrajoutList.h Trajout_Single.h TypeNameHolder.h Vec3.h cuda_kernels/GistCudaSetup.cuh molsurf.h ComplexArray.o : ComplexArray.cpp ArrayIterator.h ComplexArray.h Constraints.o : Constraints.cpp ArgList.h Atom.h AtomExtra.h AtomMask.h AtomType.h Box.h CharMask.h Constants.h Constraints.h CoordinateInfo.h CpptrajStdio.h FileName.h Frame.h MaskToken.h Matrix_3x3.h Molecule.h NameType.h Parallel.h ParameterHolders.h ParameterSet.h ParameterTypes.h Range.h ReplicaDimArray.h Residue.h SymbolExporting.h Topology.h TypeNameHolder.h Vec3.h ControlBlock_For.o : ControlBlock_For.cpp Action.h ActionList.h ActionState.h Analysis.h AnalysisList.h AnalysisState.h ArgList.h AssociatedData.h Atom.h AtomExtra.h AtomMask.h AtomType.h BaseIOtype.h Box.h Constants.h ControlBlock.h ControlBlock_For.h CoordinateInfo.h CpptrajFile.h CpptrajState.h CpptrajStdio.h DataFile.h DataFileList.h DataIO.h DataSet.h DataSetList.h DataSet_Coords.h DataSet_Coords_REF.h Dimension.h DispatchObject.h EnsembleIn.h EnsembleOutList.h FileIO.h FileName.h FileTypes.h ForLoop.h ForLoop_dataSetBlocks.h ForLoop_integer.h ForLoop_list.h ForLoop_mask.h Frame.h FramePtrArray.h InputTrajCommon.h MaskToken.h Matrix_3x3.h MetaData.h Molecule.h NameType.h Parallel.h ParameterHolders.h ParameterSet.h ParameterTypes.h Range.h ReferenceFrame.h ReplicaDimArray.h ReplicaInfo.h Residue.h SymbolExporting.h TextFormat.h Timer.h Topology.h TrajFrameCounter.h Trajin.h TrajinList.h TrajoutList.h TypeNameHolder.h Vec3.h @@ -332,7 +332,7 @@ Parm_Tinker.o : Parm_Tinker.cpp ArgList.h Atom.h AtomExtra.h AtomMask.h AtomType ProgressBar.o : ProgressBar.cpp CpptrajStdio.h ProgressBar.h ProgressTimer.o : ProgressTimer.cpp CpptrajStdio.h ProgressTimer.h Timer.h PubFFT.o : PubFFT.cpp ArrayIterator.h ComplexArray.h CpptrajStdio.h PubFFT.h -RPNcalc.o : RPNcalc.cpp ArgList.h ArrayIterator.h AssociatedData.h Atom.h AtomExtra.h AtomMask.h AtomType.h Box.h ComplexArray.h Constants.h CoordinateInfo.h CpptrajFile.h CpptrajStdio.h DataSet.h DataSetList.h DataSet_1D.h DataSet_2D.h DataSet_3D.h DataSet_Coords.h DataSet_Coords_REF.h DataSet_GridFlt.h DataSet_MatrixDbl.h DataSet_Vector.h DataSet_double.h Dimension.h FileIO.h FileName.h Frame.h Grid.h GridBin.h MaskToken.h Matrix.h Matrix_3x3.h MetaData.h Molecule.h NameType.h Parallel.h ParameterHolders.h ParameterSet.h ParameterTypes.h RPNcalc.h Range.h ReferenceFrame.h ReplicaDimArray.h Residue.h SymbolExporting.h TextFormat.h Timer.h Topology.h TypeNameHolder.h Vec3.h +RPNcalc.o : RPNcalc.cpp ArgList.h ArrayIterator.h AssociatedData.h Atom.h AtomExtra.h AtomMask.h AtomType.h Box.h ComplexArray.h Constants.h CoordinateInfo.h CpptrajFile.h CpptrajStdio.h DataSet.h DataSetList.h DataSet_1D.h DataSet_2D.h DataSet_3D.h DataSet_Coords.h DataSet_Coords_REF.h DataSet_GridFlt.h DataSet_MatrixDbl.h DataSet_Vector.h DataSet_double.h Dimension.h FileIO.h FileName.h Frame.h Grid.h GridBin.h MaskToken.h Matrix.h Matrix_3x3.h MetaData.h Molecule.h NameType.h Parallel.h ParameterHolders.h ParameterSet.h ParameterTypes.h RPNcalc.h Range.h ReferenceFrame.h ReplicaDimArray.h Residue.h StringRoutines.h SymbolExporting.h TextFormat.h Timer.h Topology.h TypeNameHolder.h Vec3.h Random.o : Random.cpp CpptrajStdio.h Random.h Range.o : Range.cpp ArgList.h CpptrajStdio.h Range.h ReadLine.o : ReadLine.cpp Action.h ActionList.h ActionState.h Analysis.h AnalysisList.h AnalysisState.h ArgList.h AssociatedData.h Atom.h AtomExtra.h AtomMask.h AtomType.h BaseIOtype.h Box.h Cmd.h CmdInput.h CmdList.h Command.h Constants.h CoordinateInfo.h CpptrajFile.h CpptrajState.h CpptrajStdio.h DataFile.h DataFileList.h DataIO.h DataSet.h DataSetList.h DataSet_Coords.h DataSet_Coords_REF.h Dimension.h DispatchObject.h EnsembleIn.h EnsembleOutList.h FileIO.h FileName.h FileTypes.h Frame.h FramePtrArray.h InputTrajCommon.h MaskToken.h Matrix_3x3.h MetaData.h Molecule.h NameType.h Parallel.h ParameterHolders.h ParameterSet.h ParameterTypes.h Range.h ReadLine.h ReferenceFrame.h ReplicaDimArray.h ReplicaInfo.h Residue.h SymbolExporting.h TextFormat.h Timer.h Topology.h TrajFrameCounter.h Trajin.h TrajinList.h TrajoutList.h TypeNameHolder.h Vec3.h From d83877b381b56cdccbc1fc957d424d736e09e047 Mon Sep 17 00:00:00 2001 From: "Daniel R. Roe" Date: Fri, 10 Jan 2020 08:53:50 -0500 Subject: [PATCH 121/162] DRR - expression has already had all whitespace removed --- src/RPNcalc.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/RPNcalc.cpp b/src/RPNcalc.cpp index 2a4dd081ee..fdf85a8799 100644 --- a/src/RPNcalc.cpp +++ b/src/RPNcalc.cpp @@ -237,7 +237,7 @@ int RPNcalc::ProcessExpression(std::string const& expressionIn) { bool has_colon = false; // For index enum BracketState { NONE, OPEN, CLOSED }; BracketState bracket = NONE; - while (ptr != expression.end() && !isspace(*ptr,loc)) + while (ptr != expression.end()) { if (bracket != OPEN && isOpChar(*ptr)) break; //mprintf("DEBUG: Var '%c'\n", *ptr); From ce43a3c3d61d19e02f706d2fb89c2075cbf41671 Mon Sep 17 00:00:00 2001 From: "Daniel R. Roe" Date: Fri, 10 Jan 2020 09:04:44 -0500 Subject: [PATCH 122/162] DRR - Add array that can be used to ID functions. --- src/RPNcalc.cpp | 16 ++++++++++++++++ src/RPNcalc.h | 8 ++++++++ 2 files changed, 24 insertions(+) diff --git a/src/RPNcalc.cpp b/src/RPNcalc.cpp index fdf85a8799..08034c5a36 100644 --- a/src/RPNcalc.cpp +++ b/src/RPNcalc.cpp @@ -52,6 +52,22 @@ int RPNcalc::ProcessOptions(ArgList& argIn) { return 0; } +const RPNcalc::FnIdType RPNcalc::FnIdArray_[] = { + { FN_SQRT, 5, "sqrt(" }, + { FN_EXP, 4, "exp(" }, + { FN_LN, 3, "ln(" }, + { FN_ABS, 4, "abs(" }, + { FN_SIN, 4, "sin(" }, + { FN_COS, 4, "cos(" }, + { FN_TAN, 4, "tan(" }, + { FN_SUM, 4, "sum(" }, + { FN_AVG, 4, "avg(" }, + { FN_STDEV, 6, "stdev(" }, + { FN_MIN, 4, "min(" }, + { FN_MAX, 4, "max(" }, + { NONE, 0, 0 } +}; + /** Convert infix expression to RPN in tokens_ array. This uses a * shunting-yard algorithm which has been slightly modified to * recognize unary right-associative operators. diff --git a/src/RPNcalc.h b/src/RPNcalc.h index 6a9bb4b51a..ba680bb340 100644 --- a/src/RPNcalc.h +++ b/src/RPNcalc.h @@ -53,6 +53,14 @@ class RPNcalc { int resultIsScalar_; const char* description_; }; + /// Hold info for recognizing functions + struct FnIdType { + TokenType fnType_; ///< Function token type + int nChar_; ///< Number of characters in function name including left parentheses + const char* fnName_; ///< Function name including left parentheses + }; + /// Array containing info for recognizing functions + static const FnIdType FnIdArray_[]; static inline double DoOperation(double, double, TokenType); int TokenLoop(DataSetList& DSL) const; From 45eaec8864a6e739c06c3a61f7912d2aff406c38 Mon Sep 17 00:00:00 2001 From: "Daniel R. Roe" Date: Fri, 10 Jan 2020 09:36:36 -0500 Subject: [PATCH 123/162] DRR - Add function to identify functions in expression --- src/RPNcalc.cpp | 14 ++++++++++++++ src/RPNcalc.h | 3 +++ 2 files changed, 17 insertions(+) diff --git a/src/RPNcalc.cpp b/src/RPNcalc.cpp index 08034c5a36..77a6c781b9 100644 --- a/src/RPNcalc.cpp +++ b/src/RPNcalc.cpp @@ -68,6 +68,20 @@ const RPNcalc::FnIdType RPNcalc::FnIdArray_[] = { { NONE, 0, 0 } }; +RPNcalc::FnIdPtr RPNcalc::IdFunction(std::string const& expression, size_t pos) +{ + FnIdPtr fnid = FnIdArray_; + for (; fnid->nChar_ != 0; ++fnid) + { + if (expression.compare(pos, fnid->nChar_, fnid->fnName_) == 0) + { + mprintf("DEBUG: Function found: '%s'\n", fnid->fnName_); + return fnid; + } + } + return fnid; +} + /** Convert infix expression to RPN in tokens_ array. This uses a * shunting-yard algorithm which has been slightly modified to * recognize unary right-associative operators. diff --git a/src/RPNcalc.h b/src/RPNcalc.h index ba680bb340..b57bd147ee 100644 --- a/src/RPNcalc.h +++ b/src/RPNcalc.h @@ -59,8 +59,11 @@ class RPNcalc { int nChar_; ///< Number of characters in function name including left parentheses const char* fnName_; ///< Function name including left parentheses }; + typedef const FnIdType* FnIdPtr; /// Array containing info for recognizing functions static const FnIdType FnIdArray_[]; + /// Identify function in given expression at given position + static FnIdPtr IdFunction(std::string const&, size_t); static inline double DoOperation(double, double, TokenType); int TokenLoop(DataSetList& DSL) const; From d222a55c9ce85a98a2c18e7c155e87a4a3e5cc60 Mon Sep 17 00:00:00 2001 From: "Daniel R. Roe" Date: Fri, 10 Jan 2020 09:46:24 -0500 Subject: [PATCH 124/162] DRR - Use new function to look for function names. Should address #744 --- src/RPNcalc.cpp | 81 ++++++------------------------------------------- 1 file changed, 9 insertions(+), 72 deletions(-) diff --git a/src/RPNcalc.cpp b/src/RPNcalc.cpp index 77a6c781b9..d9d07b79b3 100644 --- a/src/RPNcalc.cpp +++ b/src/RPNcalc.cpp @@ -75,7 +75,6 @@ RPNcalc::FnIdPtr RPNcalc::IdFunction(std::string const& expression, size_t pos) { if (expression.compare(pos, fnid->nChar_, fnid->fnName_) == 0) { - mprintf("DEBUG: Function found: '%s'\n", fnid->fnName_); return fnid; } } @@ -91,14 +90,14 @@ int RPNcalc::ProcessExpression(std::string const& expressionIn) { if (expressionIn.empty()) return 1; // Remove all whitespace std::string expression = NoWhitespace(expressionIn); - if (debug_ >= 0) mprintf("DEBUG: Parsing expression: '%s'\n", expression.c_str()); + if (debug_ > 0) mprintf("DEBUG: Parsing expression: '%s'\n", expression.c_str()); tokens_.clear(); std::stack op_stack; std::string::const_iterator ptr = expression.begin(); bool lastTokenWasOperator = true; while ( ptr != expression.end() ) { - //mprintf("DEBUG: Start of loop, char is '%c'\n", *ptr); + if (debug_ > 2) mprintf("DEBUG: Start of loop, char is '%c'\n", *ptr); // NUMBER ------------------------------------ if (*ptr == '.' || isdigit(*ptr, loc)) @@ -181,79 +180,17 @@ int RPNcalc::ProcessExpression(std::string const& expressionIn) { else if ( isalpha(*ptr, loc) ) { // Look for Function name size_t pos = ptr - expression.begin(); - if (expression.compare(pos, 4, "sqrt")==0) + FnIdPtr fnid = IdFunction(expression, pos); + if (fnid->fnType_ != NONE) { - op_stack.push( Token(FN_SQRT) ); - ptr += 4; + if (debug_ > 0) mprintf("DEBUG: Function found: '%s'\n", fnid->fnName_); + op_stack.push( Token(fnid->fnType_) ); + // Advance pointer to left parenthese + ptr = ptr + (fnid->nChar_) - 1; lastTokenWasOperator = true; } - else if (expression.compare(pos, 3, "exp")==0) - { - op_stack.push( Token(FN_EXP) ); - ptr += 3; - lastTokenWasOperator = true; - } - else if (expression.compare(pos, 2, "ln")==0) - { - op_stack.push( Token(FN_LN) ); - ptr += 2; - lastTokenWasOperator = true; - } - else if (expression.compare(pos, 3, "abs")==0) - { - op_stack.push( Token(FN_ABS) ); - ptr += 3; - lastTokenWasOperator = true; - } - else if (expression.compare(pos, 3, "sin")==0) - { - op_stack.push( Token(FN_SIN) ); - ptr += 3; - lastTokenWasOperator = true; - } - else if (expression.compare(pos, 3, "cos")==0) - { - op_stack.push( Token(FN_COS) ); - ptr += 3; - lastTokenWasOperator = true; - } - else if (expression.compare(pos, 3, "tan")==0) - { - op_stack.push( Token(FN_TAN) ); - ptr += 3; - lastTokenWasOperator = true; - } - else if (expression.compare(pos, 3, "sum")==0) - { - op_stack.push( Token(FN_SUM) ); - ptr += 3; - lastTokenWasOperator = true; - } - else if (expression.compare(pos, 3, "avg")==0) - { - op_stack.push( Token(FN_AVG) ); - ptr += 3; - lastTokenWasOperator = true; - } - else if (expression.compare(pos, 5, "stdev")==0) - { - op_stack.push( Token(FN_STDEV) ); - ptr += 5; - lastTokenWasOperator = true; - } - else if (expression.compare(pos, 3, "min")==0) - { - op_stack.push( Token(FN_MIN) ); - ptr += 3; - lastTokenWasOperator = true; - } - else if (expression.compare(pos, 3, "max")==0) - { - op_stack.push( Token(FN_MAX) ); - ptr += 3; - lastTokenWasOperator = true; - } // ----------------------------------------- + // Look for constants else if (expression.compare(pos, 2, "PI")==0) { tokens_.push_back( Token( Constants::PI ) ); From a869e5186e9cb08f90be5e07da8575523995df65 Mon Sep 17 00:00:00 2001 From: "Daniel R. Roe" Date: Fri, 10 Jan 2020 09:50:44 -0500 Subject: [PATCH 125/162] DRR - Add test with function names --- test/Test_Calc/RunTest.sh | 12 +++++++++++- test/Test_Calc/sumtotal.dat.save | 2 ++ 2 files changed, 13 insertions(+), 1 deletion(-) create mode 100644 test/Test_Calc/sumtotal.dat.save diff --git a/test/Test_Calc/RunTest.sh b/test/Test_Calc/RunTest.sh index 72ad208b6f..0c69578c50 100755 --- a/test/Test_Calc/RunTest.sh +++ b/test/Test_Calc/RunTest.sh @@ -2,7 +2,7 @@ . ../MasterTest.sh -CleanFiles calc.in calc.dat mag.dat mag2.dat +CleanFiles calc.in calc.dat mag.dat mag2.dat sumtotal.dat INPUT='-i calc.in' cat > calc.in < calc.in < Date: Fri, 10 Jan 2020 10:12:27 -0500 Subject: [PATCH 126/162] DRR - More forward declares. --- src/AssociatedData.cpp | 1 + src/AssociatedData.h | 2 +- src/AxisType.cpp | 4 ++ src/AxisType.h | 12 ++++-- src/DataSetList.cpp | 1 + src/DataSet_Coords_REF.cpp | 1 + src/GridAction.cpp | 1 + src/RPNcalc.cpp | 1 + src/ReferenceAction.cpp | 1 + src/cpptrajdepend | 78 +++++++++++++++++++------------------- 10 files changed, 59 insertions(+), 43 deletions(-) diff --git a/src/AssociatedData.cpp b/src/AssociatedData.cpp index f5eccea427..80f791d13d 100644 --- a/src/AssociatedData.cpp +++ b/src/AssociatedData.cpp @@ -1,5 +1,6 @@ #include "AssociatedData.h" #include "CpptrajStdio.h" +#include "ArgList.h" const char* AssociatedData_NOE::HelpText = "[bound bound ] [rexp ] [noe_strong] [noe_medium] [noe_weak]"; diff --git a/src/AssociatedData.h b/src/AssociatedData.h index 82b70415bc..615e9dcc96 100644 --- a/src/AssociatedData.h +++ b/src/AssociatedData.h @@ -1,6 +1,6 @@ #ifndef INC_ASSOCIATEDDATA_H #define INC_ASSOCIATEDDATA_H -#include "ArgList.h" +class ArgList; class AssociatedData { public: /// Destructor. Virtual since this class is inherited. diff --git a/src/AxisType.cpp b/src/AxisType.cpp index 54c10409ba..5cfacfaeac 100644 --- a/src/AxisType.cpp +++ b/src/AxisType.cpp @@ -5,6 +5,10 @@ #include "TorsionRoutines.h" // pucker calc #include "Constants.h" // pucker calc #include "PDBfile.h" // load base reference +#include "ArgList.h" +#include "Topology.h" +#include "DataSetList.h" +#include "DataSet_1D.h" // ---------- NA_Reference ----------------------------------------------------- /** Add all common variations of NA base name given single letter X: * DX/DX3/DX5 (not for U), RX/RX3/RX5 (not for T), X3/X5, X diff --git a/src/AxisType.h b/src/AxisType.h index ea307ecd22..980976a00a 100644 --- a/src/AxisType.h +++ b/src/AxisType.h @@ -1,8 +1,14 @@ #ifndef INC_AXISTYPE_H #define INC_AXISTYPE_H -#include "Topology.h" -#include "DataSetList.h" -#include "DataSet_1D.h" +#include "Matrix_3x3.h" +#include "Vec3.h" +#include "Frame.h" +#include "NameType.h" +#include "AtomMask.h" +class Topology; +class DataSetList; +class DataSet_1D; +class FileName; /*! \file AxisType.h \brief Hold classes and functions used for NA structure analysis. */ diff --git a/src/DataSetList.cpp b/src/DataSetList.cpp index 81c39af69f..7e9e897a3e 100644 --- a/src/DataSetList.cpp +++ b/src/DataSetList.cpp @@ -2,6 +2,7 @@ #include "CpptrajStdio.h" #include "StringRoutines.h" // DigitWidth #include "Constants.h" // For AddOrAppendSets +#include "ArgList.h" // Data types go here #include "DataSet_double.h" #include "DataSet_float.h" diff --git a/src/DataSet_Coords_REF.cpp b/src/DataSet_Coords_REF.cpp index 844c630d7e..4c1623ab81 100644 --- a/src/DataSet_Coords_REF.cpp +++ b/src/DataSet_Coords_REF.cpp @@ -1,6 +1,7 @@ #include "DataSet_Coords_REF.h" #include "CpptrajStdio.h" #include "Trajin_Single.h" +#include "ArgList.h" void DataSet_Coords_REF::Info() const { //if (!tag_.empty()) diff --git a/src/GridAction.cpp b/src/GridAction.cpp index 75b2e99909..670a4858ed 100644 --- a/src/GridAction.cpp +++ b/src/GridAction.cpp @@ -1,5 +1,6 @@ #include "GridAction.h" #include "CpptrajStdio.h" +#include "ArgList.h" // GridAction::HelpText const char* GridAction::HelpText = diff --git a/src/RPNcalc.cpp b/src/RPNcalc.cpp index d9d07b79b3..81cb5f14d6 100644 --- a/src/RPNcalc.cpp +++ b/src/RPNcalc.cpp @@ -11,6 +11,7 @@ #include "CpptrajStdio.h" #include "Constants.h" // PI #include "StringRoutines.h" +#include "ArgList.h" // CONSTRUCTOR RPNcalc::RPNcalc() : fmt_(TextFormat::DOUBLE), formatSet_(false) {} diff --git a/src/ReferenceAction.cpp b/src/ReferenceAction.cpp index 8c5b64295f..b997306613 100644 --- a/src/ReferenceAction.cpp +++ b/src/ReferenceAction.cpp @@ -3,6 +3,7 @@ #include "CpptrajStdio.h" #include "DataSet_Coords_TRJ.h" #include "ReferenceFrame.h" +#include "ArgList.h" ReferenceAction::ReferenceAction() : refMode_( FIRST ), diff --git a/src/cpptrajdepend b/src/cpptrajdepend index 907d33e1c4..bd93d38a58 100644 --- a/src/cpptrajdepend +++ b/src/cpptrajdepend @@ -143,11 +143,11 @@ ByteRoutines.o : ByteRoutines.cpp CIFfile.o : CIFfile.cpp Atom.h BufferedLine.h CIFfile.h CpptrajFile.h CpptrajStdio.h FileIO.h FileName.h NameType.h Parallel.h SymbolExporting.h CharMask.o : CharMask.cpp Atom.h CharMask.h CpptrajStdio.h MaskToken.h Molecule.h NameType.h Residue.h SymbolExporting.h CharmmParamFile.o : CharmmParamFile.cpp ArgList.h AtomType.h BufferedLine.h CharmmParamFile.h Constants.h CpptrajFile.h CpptrajStdio.h FileIO.h FileName.h NameType.h Parallel.h ParameterHolders.h ParameterSet.h ParameterTypes.h StringRoutines.h TypeNameHolder.h -ClusterDist.o : ClusterDist.cpp ArgList.h ArrayIterator.h AssociatedData.h Atom.h AtomExtra.h AtomMap.h AtomMask.h AtomType.h Box.h ClusterDist.h Constants.h CoordinateInfo.h CpptrajFile.h DataSet.h DataSet_1D.h DataSet_Coords.h Dimension.h FileIO.h FileName.h Frame.h Hungarian.h MapAtom.h MaskToken.h Matrix.h Matrix_3x3.h MetaData.h Molecule.h NameType.h Parallel.h ParameterHolders.h ParameterSet.h ParameterTypes.h Range.h ReplicaDimArray.h Residue.h SymbolExporting.h SymmetricRmsdCalc.h TextFormat.h Topology.h TypeNameHolder.h Vec3.h +ClusterDist.o : ClusterDist.cpp ArrayIterator.h AssociatedData.h Atom.h AtomExtra.h AtomMap.h AtomMask.h AtomType.h Box.h ClusterDist.h Constants.h CoordinateInfo.h CpptrajFile.h DataSet.h DataSet_1D.h DataSet_Coords.h Dimension.h FileIO.h FileName.h Frame.h Hungarian.h MapAtom.h MaskToken.h Matrix.h Matrix_3x3.h MetaData.h Molecule.h NameType.h Parallel.h ParameterHolders.h ParameterSet.h ParameterTypes.h Range.h ReplicaDimArray.h Residue.h SymbolExporting.h SymmetricRmsdCalc.h TextFormat.h Topology.h TypeNameHolder.h Vec3.h ClusterList.o : ClusterList.cpp ArgList.h ArrayIterator.h AssociatedData.h Atom.h AtomExtra.h AtomMap.h AtomMask.h AtomType.h Box.h ClusterDist.h ClusterList.h ClusterNode.h ClusterSieve.h Constants.h CoordinateInfo.h CpptrajFile.h CpptrajStdio.h DataSet.h DataSet_1D.h DataSet_Cmatrix.h DataSet_Coords.h Dimension.h FileIO.h FileName.h Frame.h Hungarian.h MapAtom.h MaskToken.h Matrix.h Matrix_3x3.h MetaData.h Molecule.h NameType.h PDBfile.h Parallel.h ParameterHolders.h ParameterSet.h ParameterTypes.h ProgressBar.h Range.h ReplicaDimArray.h Residue.h StringRoutines.h SymbolExporting.h SymmetricRmsdCalc.h TextFormat.h Topology.h TypeNameHolder.h Vec3.h -ClusterMap.o : ClusterMap.cpp ArgList.h AssociatedData.h ClusterMap.h Constants.h CpptrajFile.h CpptrajStdio.h DataSet.h DataSet_2D.h Dimension.h FileIO.h FileName.h MetaData.h Parallel.h ProgressBar.h ProgressTimer.h Range.h TextFormat.h Timer.h +ClusterMap.o : ClusterMap.cpp AssociatedData.h ClusterMap.h Constants.h CpptrajFile.h CpptrajStdio.h DataSet.h DataSet_2D.h Dimension.h FileIO.h FileName.h MetaData.h Parallel.h ProgressBar.h ProgressTimer.h Range.h TextFormat.h Timer.h ClusterMatrix.o : ClusterMatrix.cpp ArrayIterator.h ClusterMatrix.h CpptrajStdio.h Matrix.h -ClusterNode.o : ClusterNode.cpp ArgList.h ArrayIterator.h AssociatedData.h Atom.h AtomExtra.h AtomMap.h AtomMask.h AtomType.h Box.h ClusterDist.h ClusterNode.h ClusterSieve.h Constants.h CoordinateInfo.h CpptrajFile.h DataSet.h DataSet_1D.h DataSet_Cmatrix.h DataSet_Coords.h Dimension.h FileIO.h FileName.h Frame.h Hungarian.h MapAtom.h MaskToken.h Matrix.h Matrix_3x3.h MetaData.h Molecule.h NameType.h Parallel.h ParameterHolders.h ParameterSet.h ParameterTypes.h Range.h ReplicaDimArray.h Residue.h SymbolExporting.h SymmetricRmsdCalc.h TextFormat.h Topology.h TypeNameHolder.h Vec3.h +ClusterNode.o : ClusterNode.cpp ArrayIterator.h AssociatedData.h Atom.h AtomExtra.h AtomMap.h AtomMask.h AtomType.h Box.h ClusterDist.h ClusterNode.h ClusterSieve.h Constants.h CoordinateInfo.h CpptrajFile.h DataSet.h DataSet_1D.h DataSet_Cmatrix.h DataSet_Coords.h Dimension.h FileIO.h FileName.h Frame.h Hungarian.h MapAtom.h MaskToken.h Matrix.h Matrix_3x3.h MetaData.h Molecule.h NameType.h Parallel.h ParameterHolders.h ParameterSet.h ParameterTypes.h Range.h ReplicaDimArray.h Residue.h SymbolExporting.h SymmetricRmsdCalc.h TextFormat.h Topology.h TypeNameHolder.h Vec3.h ClusterSieve.o : ClusterSieve.cpp ClusterSieve.h Random.h Cluster_DBSCAN.o : Cluster_DBSCAN.cpp ArgList.h ArrayIterator.h AssociatedData.h Atom.h AtomExtra.h AtomMap.h AtomMask.h AtomType.h BaseIOtype.h Box.h ClusterDist.h ClusterList.h ClusterNode.h ClusterSieve.h Cluster_DBSCAN.h Constants.h CoordinateInfo.h CpptrajFile.h CpptrajStdio.h DataFile.h DataIO.h DataSet.h DataSetList.h DataSet_1D.h DataSet_2D.h DataSet_Cmatrix.h DataSet_Coords.h DataSet_Coords_REF.h DataSet_MatrixDbl.h Dimension.h FileIO.h FileName.h FileTypes.h Frame.h Hungarian.h MapAtom.h MaskToken.h Matrix.h Matrix_3x3.h MetaData.h Molecule.h NameType.h Parallel.h ParameterHolders.h ParameterSet.h ParameterTypes.h ProgressBar.h Range.h ReferenceFrame.h ReplicaDimArray.h Residue.h StringRoutines.h SymbolExporting.h SymmetricRmsdCalc.h TextFormat.h Timer.h Topology.h TypeNameHolder.h Vec3.h Cluster_DPeaks.o : Cluster_DPeaks.cpp ArgList.h ArrayIterator.h AssociatedData.h Atom.h AtomExtra.h AtomMap.h AtomMask.h AtomType.h Box.h ClusterDist.h ClusterList.h ClusterNode.h ClusterSieve.h Cluster_DPeaks.h Constants.h CoordinateInfo.h CpptrajFile.h CpptrajStdio.h DataSet.h DataSet_1D.h DataSet_Cmatrix.h DataSet_Coords.h DataSet_Mesh.h Dimension.h FileIO.h FileName.h Frame.h Hungarian.h MapAtom.h MaskToken.h Matrix.h Matrix_3x3.h MetaData.h Molecule.h NameType.h Parallel.h ParameterHolders.h ParameterSet.h ParameterTypes.h ProgressBar.h Range.h ReplicaDimArray.h Residue.h Spline.h SymbolExporting.h SymmetricRmsdCalc.h TextFormat.h Topology.h TypeNameHolder.h Vec3.h @@ -190,41 +190,41 @@ DataIO_Std.o : DataIO_Std.cpp ArgList.h ArrayIterator.h AssociatedData.h Atom.h DataIO_VecTraj.o : DataIO_VecTraj.cpp ActionFrameCounter.h ArgList.h ArrayIterator.h AssociatedData.h Atom.h AtomExtra.h AtomMask.h AtomType.h BaseIOtype.h BondSearch.h Box.h ComplexArray.h Constants.h CoordinateInfo.h CpptrajFile.h CpptrajStdio.h DataIO.h DataIO_VecTraj.h DataSet.h DataSetList.h DataSet_1D.h DataSet_Coords.h DataSet_Coords_REF.h DataSet_Vector.h DataSet_Vector_OXYZ.h Dimension.h FileIO.h FileName.h FileTypes.h Frame.h MaskToken.h Matrix_3x3.h MetaData.h Molecule.h NameType.h OutputTrajCommon.h Parallel.h ParameterHolders.h ParameterSet.h ParameterTypes.h ParmFile.h ParmIO.h Range.h ReferenceFrame.h ReplicaDimArray.h Residue.h SymbolExporting.h TextFormat.h Timer.h Topology.h TrajectoryFile.h Trajout_Single.h TypeNameHolder.h Vec3.h DataIO_XVG.o : DataIO_XVG.cpp ArgList.h AssociatedData.h Atom.h AtomExtra.h AtomMask.h AtomType.h BaseIOtype.h Box.h BufferedLine.h Constants.h CoordinateInfo.h CpptrajFile.h CpptrajStdio.h DataIO.h DataIO_XVG.h DataSet.h DataSetList.h DataSet_1D.h DataSet_Coords.h DataSet_Coords_REF.h DataSet_double.h Dimension.h FileIO.h FileName.h Frame.h MaskToken.h Matrix_3x3.h MetaData.h Molecule.h NameType.h Parallel.h ParameterHolders.h ParameterSet.h ParameterTypes.h Range.h ReferenceFrame.h ReplicaDimArray.h Residue.h SymbolExporting.h TextFormat.h Timer.h Topology.h TypeNameHolder.h Vec3.h DataIO_Xplor.o : DataIO_Xplor.cpp ArgList.h ArrayIterator.h AssociatedData.h Atom.h AtomExtra.h AtomMask.h AtomType.h BaseIOtype.h Box.h BufferedLine.h Constants.h CoordinateInfo.h CpptrajFile.h CpptrajStdio.h DataIO.h DataIO_Xplor.h DataSet.h DataSetList.h DataSet_3D.h DataSet_Coords.h DataSet_Coords_REF.h DataSet_GridFlt.h Dimension.h FileIO.h FileName.h Frame.h Grid.h GridBin.h MaskToken.h Matrix_3x3.h MetaData.h Molecule.h NameType.h Parallel.h ParameterHolders.h ParameterSet.h ParameterTypes.h ProgressBar.h Range.h ReferenceFrame.h ReplicaDimArray.h Residue.h SymbolExporting.h TextFormat.h Timer.h Topology.h TypeNameHolder.h Vec3.h -DataSet.o : DataSet.cpp ArgList.h AssociatedData.h CpptrajFile.h CpptrajStdio.h DataSet.h Dimension.h FileIO.h FileName.h MetaData.h Parallel.h Range.h TextFormat.h +DataSet.o : DataSet.cpp AssociatedData.h CpptrajFile.h CpptrajStdio.h DataSet.h Dimension.h FileIO.h FileName.h MetaData.h Parallel.h Range.h TextFormat.h DataSetList.o : DataSetList.cpp ArgList.h ArrayIterator.h AssociatedData.h Atom.h AtomExtra.h AtomMap.h AtomMask.h AtomType.h Box.h ClusterDist.h ClusterSieve.h ComplexArray.h Constants.h CoordinateInfo.h Cph.h CpptrajFile.h CpptrajStdio.h DataSet.h DataSetList.h DataSet_1D.h DataSet_2D.h DataSet_3D.h DataSet_Cmatrix.h DataSet_Cmatrix_DISK.h DataSet_Cmatrix_MEM.h DataSet_Cmatrix_NOMEM.h DataSet_Coords.h DataSet_Coords_CRD.h DataSet_Coords_REF.h DataSet_Coords_TRJ.h DataSet_GridDbl.h DataSet_GridFlt.h DataSet_Mat3x3.h DataSet_MatrixDbl.h DataSet_MatrixFlt.h DataSet_Mesh.h DataSet_Modes.h DataSet_PHREMD.h DataSet_PHREMD_Explicit.h DataSet_PHREMD_Implicit.h DataSet_Parameters.h DataSet_RemLog.h DataSet_StringVar.h DataSet_Tensor.h DataSet_Topology.h DataSet_Vector.h DataSet_Vector_OXYZ.h DataSet_Vector_XYZ.h DataSet_double.h DataSet_float.h DataSet_integer.h DataSet_integer_disk.h DataSet_integer_mem.h DataSet_pH.h DataSet_string.h Dimension.h FileIO.h FileName.h Frame.h Grid.h GridBin.h Hungarian.h InputTrajCommon.h MapAtom.h MaskToken.h Matrix.h Matrix_3x3.h MetaData.h Molecule.h NC_Cmatrix.h NameType.h Parallel.h ParameterHolders.h ParameterSet.h ParameterTypes.h Range.h ReferenceFrame.h ReplicaDimArray.h Residue.h Spline.h StringRoutines.h SymbolExporting.h SymmetricRmsdCalc.h SymmetricTensor.h TextFormat.h Timer.h Topology.h TrajFrameCounter.h TrajFrameIndex.h Trajin.h TypeNameHolder.h Vec3.h -DataSet_1D.o : DataSet_1D.cpp ArgList.h ArrayIterator.h AssociatedData.h ComplexArray.h Constants.h Corr.h CpptrajFile.h CpptrajStdio.h DataSet.h DataSet_1D.h Dimension.h FileIO.h FileName.h MetaData.h Parallel.h PubFFT.h Range.h TextFormat.h -DataSet_3D.o : DataSet_3D.cpp ArgList.h AssociatedData.h Box.h CpptrajFile.h CpptrajStdio.h DataSet.h DataSet_3D.h Dimension.h FileIO.h FileName.h GridBin.h Matrix_3x3.h MetaData.h Parallel.h Range.h TextFormat.h Vec3.h -DataSet_Cmatrix.o : DataSet_Cmatrix.cpp ArgList.h ArrayIterator.h AssociatedData.h Atom.h AtomExtra.h AtomMap.h AtomMask.h AtomType.h Box.h ClusterDist.h ClusterSieve.h Constants.h CoordinateInfo.h CpptrajFile.h CpptrajStdio.h DataSet.h DataSet_1D.h DataSet_Cmatrix.h DataSet_Coords.h Dimension.h FileIO.h FileName.h Frame.h Hungarian.h MapAtom.h MaskToken.h Matrix.h Matrix_3x3.h MetaData.h Molecule.h NameType.h Parallel.h ParameterHolders.h ParameterSet.h ParameterTypes.h Range.h ReplicaDimArray.h Residue.h SymbolExporting.h SymmetricRmsdCalc.h TextFormat.h Topology.h TypeNameHolder.h Vec3.h -DataSet_Cmatrix_DISK.o : DataSet_Cmatrix_DISK.cpp ArgList.h ArrayIterator.h AssociatedData.h Atom.h AtomExtra.h AtomMap.h AtomMask.h AtomType.h Box.h ClusterDist.h ClusterSieve.h Constants.h CoordinateInfo.h CpptrajFile.h CpptrajStdio.h DataSet.h DataSet_1D.h DataSet_Cmatrix.h DataSet_Cmatrix_DISK.h DataSet_Coords.h Dimension.h FileIO.h FileName.h Frame.h Hungarian.h MapAtom.h MaskToken.h Matrix.h Matrix_3x3.h MetaData.h Molecule.h NC_Cmatrix.h NameType.h Parallel.h ParameterHolders.h ParameterSet.h ParameterTypes.h Range.h ReplicaDimArray.h Residue.h StringRoutines.h SymbolExporting.h SymmetricRmsdCalc.h TextFormat.h Topology.h TypeNameHolder.h Vec3.h -DataSet_Cmatrix_MEM.o : DataSet_Cmatrix_MEM.cpp ArgList.h ArrayIterator.h AssociatedData.h Atom.h AtomExtra.h AtomMap.h AtomMask.h AtomType.h Box.h ClusterDist.h ClusterSieve.h Constants.h CoordinateInfo.h CpptrajFile.h CpptrajStdio.h DataSet.h DataSet_1D.h DataSet_Cmatrix.h DataSet_Cmatrix_MEM.h DataSet_Coords.h Dimension.h FileIO.h FileName.h Frame.h Hungarian.h MapAtom.h MaskToken.h Matrix.h Matrix_3x3.h MetaData.h Molecule.h NameType.h Parallel.h ParameterHolders.h ParameterSet.h ParameterTypes.h Range.h ReplicaDimArray.h Residue.h StringRoutines.h SymbolExporting.h SymmetricRmsdCalc.h TextFormat.h Topology.h TypeNameHolder.h Vec3.h -DataSet_Cmatrix_NOMEM.o : DataSet_Cmatrix_NOMEM.cpp ArgList.h ArrayIterator.h AssociatedData.h Atom.h AtomExtra.h AtomMap.h AtomMask.h AtomType.h Box.h ClusterDist.h ClusterSieve.h Constants.h CoordinateInfo.h CpptrajFile.h DataSet.h DataSet_1D.h DataSet_Cmatrix.h DataSet_Cmatrix_NOMEM.h DataSet_Coords.h Dimension.h FileIO.h FileName.h Frame.h Hungarian.h MapAtom.h MaskToken.h Matrix.h Matrix_3x3.h MetaData.h Molecule.h NameType.h Parallel.h ParameterHolders.h ParameterSet.h ParameterTypes.h Range.h ReplicaDimArray.h Residue.h SymbolExporting.h SymmetricRmsdCalc.h TextFormat.h Topology.h TypeNameHolder.h Vec3.h -DataSet_Coords.o : DataSet_Coords.cpp ArgList.h AssociatedData.h Atom.h AtomExtra.h AtomMask.h AtomType.h Box.h Constants.h CoordinateInfo.h CpptrajFile.h CpptrajStdio.h DataSet.h DataSet_Coords.h Dimension.h FileIO.h FileName.h Frame.h MaskToken.h Matrix_3x3.h MetaData.h Molecule.h NameType.h Parallel.h ParameterHolders.h ParameterSet.h ParameterTypes.h Range.h ReplicaDimArray.h Residue.h SymbolExporting.h TextFormat.h Topology.h TypeNameHolder.h Vec3.h -DataSet_Coords_CRD.o : DataSet_Coords_CRD.cpp ArgList.h AssociatedData.h Atom.h AtomExtra.h AtomMask.h AtomType.h Box.h Constants.h CoordinateInfo.h CpptrajFile.h CpptrajStdio.h DataSet.h DataSet_Coords.h DataSet_Coords_CRD.h Dimension.h FileIO.h FileName.h Frame.h MaskToken.h Matrix_3x3.h MetaData.h Molecule.h NameType.h Parallel.h ParameterHolders.h ParameterSet.h ParameterTypes.h Range.h ReplicaDimArray.h Residue.h StringRoutines.h SymbolExporting.h TextFormat.h Topology.h TypeNameHolder.h Vec3.h +DataSet_1D.o : DataSet_1D.cpp ArrayIterator.h AssociatedData.h ComplexArray.h Constants.h Corr.h CpptrajFile.h CpptrajStdio.h DataSet.h DataSet_1D.h Dimension.h FileIO.h FileName.h MetaData.h Parallel.h PubFFT.h Range.h TextFormat.h +DataSet_3D.o : DataSet_3D.cpp AssociatedData.h Box.h CpptrajFile.h CpptrajStdio.h DataSet.h DataSet_3D.h Dimension.h FileIO.h FileName.h GridBin.h Matrix_3x3.h MetaData.h Parallel.h Range.h TextFormat.h Vec3.h +DataSet_Cmatrix.o : DataSet_Cmatrix.cpp ArrayIterator.h AssociatedData.h Atom.h AtomExtra.h AtomMap.h AtomMask.h AtomType.h Box.h ClusterDist.h ClusterSieve.h Constants.h CoordinateInfo.h CpptrajFile.h CpptrajStdio.h DataSet.h DataSet_1D.h DataSet_Cmatrix.h DataSet_Coords.h Dimension.h FileIO.h FileName.h Frame.h Hungarian.h MapAtom.h MaskToken.h Matrix.h Matrix_3x3.h MetaData.h Molecule.h NameType.h Parallel.h ParameterHolders.h ParameterSet.h ParameterTypes.h Range.h ReplicaDimArray.h Residue.h SymbolExporting.h SymmetricRmsdCalc.h TextFormat.h Topology.h TypeNameHolder.h Vec3.h +DataSet_Cmatrix_DISK.o : DataSet_Cmatrix_DISK.cpp ArrayIterator.h AssociatedData.h Atom.h AtomExtra.h AtomMap.h AtomMask.h AtomType.h Box.h ClusterDist.h ClusterSieve.h Constants.h CoordinateInfo.h CpptrajFile.h CpptrajStdio.h DataSet.h DataSet_1D.h DataSet_Cmatrix.h DataSet_Cmatrix_DISK.h DataSet_Coords.h Dimension.h FileIO.h FileName.h Frame.h Hungarian.h MapAtom.h MaskToken.h Matrix.h Matrix_3x3.h MetaData.h Molecule.h NC_Cmatrix.h NameType.h Parallel.h ParameterHolders.h ParameterSet.h ParameterTypes.h Range.h ReplicaDimArray.h Residue.h StringRoutines.h SymbolExporting.h SymmetricRmsdCalc.h TextFormat.h Topology.h TypeNameHolder.h Vec3.h +DataSet_Cmatrix_MEM.o : DataSet_Cmatrix_MEM.cpp ArrayIterator.h AssociatedData.h Atom.h AtomExtra.h AtomMap.h AtomMask.h AtomType.h Box.h ClusterDist.h ClusterSieve.h Constants.h CoordinateInfo.h CpptrajFile.h CpptrajStdio.h DataSet.h DataSet_1D.h DataSet_Cmatrix.h DataSet_Cmatrix_MEM.h DataSet_Coords.h Dimension.h FileIO.h FileName.h Frame.h Hungarian.h MapAtom.h MaskToken.h Matrix.h Matrix_3x3.h MetaData.h Molecule.h NameType.h Parallel.h ParameterHolders.h ParameterSet.h ParameterTypes.h Range.h ReplicaDimArray.h Residue.h StringRoutines.h SymbolExporting.h SymmetricRmsdCalc.h TextFormat.h Topology.h TypeNameHolder.h Vec3.h +DataSet_Cmatrix_NOMEM.o : DataSet_Cmatrix_NOMEM.cpp ArrayIterator.h AssociatedData.h Atom.h AtomExtra.h AtomMap.h AtomMask.h AtomType.h Box.h ClusterDist.h ClusterSieve.h Constants.h CoordinateInfo.h CpptrajFile.h DataSet.h DataSet_1D.h DataSet_Cmatrix.h DataSet_Cmatrix_NOMEM.h DataSet_Coords.h Dimension.h FileIO.h FileName.h Frame.h Hungarian.h MapAtom.h MaskToken.h Matrix.h Matrix_3x3.h MetaData.h Molecule.h NameType.h Parallel.h ParameterHolders.h ParameterSet.h ParameterTypes.h Range.h ReplicaDimArray.h Residue.h SymbolExporting.h SymmetricRmsdCalc.h TextFormat.h Topology.h TypeNameHolder.h Vec3.h +DataSet_Coords.o : DataSet_Coords.cpp AssociatedData.h Atom.h AtomExtra.h AtomMask.h AtomType.h Box.h Constants.h CoordinateInfo.h CpptrajFile.h CpptrajStdio.h DataSet.h DataSet_Coords.h Dimension.h FileIO.h FileName.h Frame.h MaskToken.h Matrix_3x3.h MetaData.h Molecule.h NameType.h Parallel.h ParameterHolders.h ParameterSet.h ParameterTypes.h Range.h ReplicaDimArray.h Residue.h SymbolExporting.h TextFormat.h Topology.h TypeNameHolder.h Vec3.h +DataSet_Coords_CRD.o : DataSet_Coords_CRD.cpp AssociatedData.h Atom.h AtomExtra.h AtomMask.h AtomType.h Box.h Constants.h CoordinateInfo.h CpptrajFile.h CpptrajStdio.h DataSet.h DataSet_Coords.h DataSet_Coords_CRD.h Dimension.h FileIO.h FileName.h Frame.h MaskToken.h Matrix_3x3.h MetaData.h Molecule.h NameType.h Parallel.h ParameterHolders.h ParameterSet.h ParameterTypes.h Range.h ReplicaDimArray.h Residue.h StringRoutines.h SymbolExporting.h TextFormat.h Topology.h TypeNameHolder.h Vec3.h DataSet_Coords_REF.o : DataSet_Coords_REF.cpp ArgList.h AssociatedData.h Atom.h AtomExtra.h AtomMask.h AtomType.h Box.h Constants.h CoordinateInfo.h CpptrajFile.h CpptrajStdio.h DataSet.h DataSet_Coords.h DataSet_Coords_REF.h Dimension.h FileIO.h FileName.h Frame.h InputTrajCommon.h MaskToken.h Matrix_3x3.h MetaData.h Molecule.h NameType.h Parallel.h ParameterHolders.h ParameterSet.h ParameterTypes.h Range.h ReplicaDimArray.h Residue.h SymbolExporting.h TextFormat.h Topology.h TrajFrameCounter.h Trajin.h Trajin_Single.h TypeNameHolder.h Vec3.h -DataSet_Coords_TRJ.o : DataSet_Coords_TRJ.cpp ArgList.h AssociatedData.h Atom.h AtomExtra.h AtomMask.h AtomType.h Box.h Constants.h CoordinateInfo.h CpptrajFile.h CpptrajStdio.h DataSet.h DataSet_Coords.h DataSet_Coords_TRJ.h Dimension.h FileIO.h FileName.h Frame.h InputTrajCommon.h MaskToken.h Matrix_3x3.h MetaData.h Molecule.h NameType.h Parallel.h ParameterHolders.h ParameterSet.h ParameterTypes.h Range.h ReplicaDimArray.h Residue.h SymbolExporting.h TextFormat.h Topology.h TrajFrameCounter.h TrajFrameIndex.h Trajin.h Trajin_Single.h TypeNameHolder.h Vec3.h -DataSet_GridDbl.o : DataSet_GridDbl.cpp ArgList.h ArrayIterator.h AssociatedData.h Box.h CpptrajFile.h CpptrajStdio.h DataSet.h DataSet_3D.h DataSet_GridDbl.h Dimension.h FileIO.h FileName.h Grid.h GridBin.h Matrix_3x3.h MetaData.h Parallel.h Range.h StringRoutines.h TextFormat.h Vec3.h -DataSet_GridFlt.o : DataSet_GridFlt.cpp ArgList.h ArrayIterator.h AssociatedData.h Box.h CpptrajFile.h CpptrajStdio.h DataSet.h DataSet_3D.h DataSet_GridFlt.h Dimension.h FileIO.h FileName.h Grid.h GridBin.h Matrix_3x3.h MetaData.h Parallel.h Range.h StringRoutines.h TextFormat.h Vec3.h -DataSet_Mat3x3.o : DataSet_Mat3x3.cpp ArgList.h AssociatedData.h CpptrajFile.h DataSet.h DataSet_Mat3x3.h Dimension.h FileIO.h FileName.h Matrix_3x3.h MetaData.h Parallel.h Range.h TextFormat.h Vec3.h -DataSet_MatrixDbl.o : DataSet_MatrixDbl.cpp ArgList.h ArrayIterator.h AssociatedData.h CpptrajFile.h DataSet.h DataSet_2D.h DataSet_MatrixDbl.h Dimension.h FileIO.h FileName.h Matrix.h MetaData.h Parallel.h Range.h TextFormat.h -DataSet_MatrixFlt.o : DataSet_MatrixFlt.cpp ArgList.h ArrayIterator.h AssociatedData.h CpptrajFile.h DataSet.h DataSet_2D.h DataSet_MatrixFlt.h Dimension.h FileIO.h FileName.h Matrix.h MetaData.h Parallel.h Range.h TextFormat.h -DataSet_Mesh.o : DataSet_Mesh.cpp ArgList.h AssociatedData.h Constants.h CpptrajFile.h CpptrajStdio.h DataSet.h DataSet_1D.h DataSet_Mesh.h Dimension.h FileIO.h FileName.h MetaData.h Parallel.h Range.h Spline.h TextFormat.h +DataSet_Coords_TRJ.o : DataSet_Coords_TRJ.cpp AssociatedData.h Atom.h AtomExtra.h AtomMask.h AtomType.h Box.h Constants.h CoordinateInfo.h CpptrajFile.h CpptrajStdio.h DataSet.h DataSet_Coords.h DataSet_Coords_TRJ.h Dimension.h FileIO.h FileName.h Frame.h InputTrajCommon.h MaskToken.h Matrix_3x3.h MetaData.h Molecule.h NameType.h Parallel.h ParameterHolders.h ParameterSet.h ParameterTypes.h Range.h ReplicaDimArray.h Residue.h SymbolExporting.h TextFormat.h Topology.h TrajFrameCounter.h TrajFrameIndex.h Trajin.h Trajin_Single.h TypeNameHolder.h Vec3.h +DataSet_GridDbl.o : DataSet_GridDbl.cpp ArrayIterator.h AssociatedData.h Box.h CpptrajFile.h CpptrajStdio.h DataSet.h DataSet_3D.h DataSet_GridDbl.h Dimension.h FileIO.h FileName.h Grid.h GridBin.h Matrix_3x3.h MetaData.h Parallel.h Range.h StringRoutines.h TextFormat.h Vec3.h +DataSet_GridFlt.o : DataSet_GridFlt.cpp ArrayIterator.h AssociatedData.h Box.h CpptrajFile.h CpptrajStdio.h DataSet.h DataSet_3D.h DataSet_GridFlt.h Dimension.h FileIO.h FileName.h Grid.h GridBin.h Matrix_3x3.h MetaData.h Parallel.h Range.h StringRoutines.h TextFormat.h Vec3.h +DataSet_Mat3x3.o : DataSet_Mat3x3.cpp AssociatedData.h CpptrajFile.h DataSet.h DataSet_Mat3x3.h Dimension.h FileIO.h FileName.h Matrix_3x3.h MetaData.h Parallel.h Range.h TextFormat.h Vec3.h +DataSet_MatrixDbl.o : DataSet_MatrixDbl.cpp ArrayIterator.h AssociatedData.h CpptrajFile.h DataSet.h DataSet_2D.h DataSet_MatrixDbl.h Dimension.h FileIO.h FileName.h Matrix.h MetaData.h Parallel.h Range.h TextFormat.h +DataSet_MatrixFlt.o : DataSet_MatrixFlt.cpp ArrayIterator.h AssociatedData.h CpptrajFile.h DataSet.h DataSet_2D.h DataSet_MatrixFlt.h Dimension.h FileIO.h FileName.h Matrix.h MetaData.h Parallel.h Range.h TextFormat.h +DataSet_Mesh.o : DataSet_Mesh.cpp AssociatedData.h Constants.h CpptrajFile.h CpptrajStdio.h DataSet.h DataSet_1D.h DataSet_Mesh.h Dimension.h FileIO.h FileName.h MetaData.h Parallel.h Range.h Spline.h TextFormat.h DataSet_Modes.o : DataSet_Modes.cpp ArgList.h ArrayIterator.h AssociatedData.h Atom.h AtomMask.h Box.h Constants.h CoordinateInfo.h CpptrajFile.h CpptrajStdio.h DataSet.h DataSet_2D.h DataSet_MatrixDbl.h DataSet_Modes.h Dimension.h FileIO.h FileName.h Frame.h MaskToken.h Matrix.h Matrix_3x3.h MetaData.h Molecule.h NameType.h Parallel.h Range.h ReplicaDimArray.h Residue.h SymbolExporting.h TextFormat.h Vec3.h -DataSet_PHREMD_Explicit.o : DataSet_PHREMD_Explicit.cpp ArgList.h AssociatedData.h Cph.h CpptrajFile.h CpptrajStdio.h DataSet.h DataSet_PHREMD.h DataSet_PHREMD_Explicit.h Dimension.h FileIO.h FileName.h MetaData.h NameType.h Parallel.h Range.h TextFormat.h -DataSet_PHREMD_Implicit.o : DataSet_PHREMD_Implicit.cpp ArgList.h AssociatedData.h Cph.h CpptrajFile.h CpptrajStdio.h DataSet.h DataSet_PHREMD.h DataSet_PHREMD_Implicit.h Dimension.h FileIO.h FileName.h MetaData.h NameType.h Parallel.h Range.h TextFormat.h -DataSet_Parameters.o : DataSet_Parameters.cpp ArgList.h AssociatedData.h AtomType.h Constants.h CpptrajFile.h CpptrajStdio.h DataSet.h DataSet_Parameters.h Dimension.h FileIO.h FileName.h MetaData.h NameType.h Parallel.h ParameterHolders.h ParameterSet.h ParameterTypes.h Range.h TextFormat.h TypeNameHolder.h -DataSet_RemLog.o : DataSet_RemLog.cpp ArgList.h AssociatedData.h CpptrajFile.h CpptrajStdio.h DataSet.h DataSet_RemLog.h Dimension.h FileIO.h FileName.h MetaData.h Parallel.h Range.h ReplicaDimArray.h TextFormat.h -DataSet_StringVar.o : DataSet_StringVar.cpp ArgList.h AssociatedData.h CpptrajFile.h CpptrajStdio.h DataSet.h DataSet_StringVar.h Dimension.h FileIO.h FileName.h MetaData.h Parallel.h Range.h TextFormat.h -DataSet_Tensor.o : DataSet_Tensor.cpp ArgList.h AssociatedData.h CpptrajFile.h DataSet.h DataSet_Tensor.h Dimension.h FileIO.h FileName.h MetaData.h Parallel.h Range.h SymmetricTensor.h TextFormat.h +DataSet_PHREMD_Explicit.o : DataSet_PHREMD_Explicit.cpp AssociatedData.h Cph.h CpptrajFile.h CpptrajStdio.h DataSet.h DataSet_PHREMD.h DataSet_PHREMD_Explicit.h Dimension.h FileIO.h FileName.h MetaData.h NameType.h Parallel.h Range.h TextFormat.h +DataSet_PHREMD_Implicit.o : DataSet_PHREMD_Implicit.cpp AssociatedData.h Cph.h CpptrajFile.h CpptrajStdio.h DataSet.h DataSet_PHREMD.h DataSet_PHREMD_Implicit.h Dimension.h FileIO.h FileName.h MetaData.h NameType.h Parallel.h Range.h TextFormat.h +DataSet_Parameters.o : DataSet_Parameters.cpp AssociatedData.h AtomType.h Constants.h CpptrajFile.h CpptrajStdio.h DataSet.h DataSet_Parameters.h Dimension.h FileIO.h FileName.h MetaData.h NameType.h Parallel.h ParameterHolders.h ParameterSet.h ParameterTypes.h Range.h TextFormat.h TypeNameHolder.h +DataSet_RemLog.o : DataSet_RemLog.cpp AssociatedData.h CpptrajFile.h CpptrajStdio.h DataSet.h DataSet_RemLog.h Dimension.h FileIO.h FileName.h MetaData.h Parallel.h Range.h ReplicaDimArray.h TextFormat.h +DataSet_StringVar.o : DataSet_StringVar.cpp AssociatedData.h CpptrajFile.h CpptrajStdio.h DataSet.h DataSet_StringVar.h Dimension.h FileIO.h FileName.h MetaData.h Parallel.h Range.h TextFormat.h +DataSet_Tensor.o : DataSet_Tensor.cpp AssociatedData.h CpptrajFile.h DataSet.h DataSet_Tensor.h Dimension.h FileIO.h FileName.h MetaData.h Parallel.h Range.h SymmetricTensor.h TextFormat.h DataSet_Topology.o : DataSet_Topology.cpp ArgList.h AssociatedData.h Atom.h AtomExtra.h AtomMask.h AtomType.h BaseIOtype.h BondSearch.h Box.h Constants.h CoordinateInfo.h CpptrajFile.h CpptrajStdio.h DataSet.h DataSet_Topology.h Dimension.h FileIO.h FileName.h FileTypes.h Frame.h MaskToken.h Matrix_3x3.h MetaData.h Molecule.h NameType.h Parallel.h ParameterHolders.h ParameterSet.h ParameterTypes.h ParmFile.h ParmIO.h Range.h ReplicaDimArray.h Residue.h SymbolExporting.h TextFormat.h Topology.h TypeNameHolder.h Vec3.h -DataSet_Vector.o : DataSet_Vector.cpp ArgList.h ArrayIterator.h AssociatedData.h ComplexArray.h Constants.h Corr.h CpptrajFile.h DataSet.h DataSet_1D.h DataSet_Vector.h Dimension.h FileIO.h FileName.h MetaData.h Parallel.h PubFFT.h Range.h TextFormat.h Vec3.h -DataSet_Vector_OXYZ.o : DataSet_Vector_OXYZ.cpp ArgList.h ArrayIterator.h AssociatedData.h ComplexArray.h CpptrajFile.h DataSet.h DataSet_1D.h DataSet_Vector.h DataSet_Vector_OXYZ.h Dimension.h FileIO.h FileName.h MetaData.h Parallel.h Range.h TextFormat.h Vec3.h -DataSet_Vector_XYZ.o : DataSet_Vector_XYZ.cpp ArgList.h ArrayIterator.h AssociatedData.h ComplexArray.h CpptrajFile.h CpptrajStdio.h DataSet.h DataSet_1D.h DataSet_Vector.h DataSet_Vector_XYZ.h Dimension.h FileIO.h FileName.h MetaData.h Parallel.h Range.h TextFormat.h Vec3.h -DataSet_double.o : DataSet_double.cpp ArgList.h AssociatedData.h CpptrajFile.h DataSet.h DataSet_1D.h DataSet_double.h Dimension.h FileIO.h FileName.h MetaData.h Parallel.h Range.h TextFormat.h -DataSet_float.o : DataSet_float.cpp ArgList.h AssociatedData.h CpptrajFile.h DataSet.h DataSet_1D.h DataSet_float.h Dimension.h FileIO.h FileName.h MetaData.h Parallel.h Range.h TextFormat.h -DataSet_integer_disk.o : DataSet_integer_disk.cpp ArgList.h AssociatedData.h CpptrajFile.h CpptrajStdio.h DataSet.h DataSet_1D.h DataSet_integer.h DataSet_integer_disk.h Dimension.h FileIO.h FileName.h File_TempName.h MetaData.h NC_Routines.h Parallel.h Range.h TextFormat.h -DataSet_integer_mem.o : DataSet_integer_mem.cpp ArgList.h AssociatedData.h CpptrajFile.h DataSet.h DataSet_1D.h DataSet_integer.h DataSet_integer_mem.h Dimension.h FileIO.h FileName.h MetaData.h Parallel.h Range.h TextFormat.h -DataSet_pH.o : DataSet_pH.cpp ArgList.h AssociatedData.h Cph.h CpptrajFile.h CpptrajStdio.h DataSet.h DataSet_1D.h DataSet_pH.h Dimension.h FileIO.h FileName.h MetaData.h NameType.h Parallel.h Range.h TextFormat.h -DataSet_string.o : DataSet_string.cpp ArgList.h AssociatedData.h CpptrajFile.h DataSet.h DataSet_string.h Dimension.h FileIO.h FileName.h MetaData.h Parallel.h Range.h TextFormat.h +DataSet_Vector.o : DataSet_Vector.cpp ArrayIterator.h AssociatedData.h ComplexArray.h Constants.h Corr.h CpptrajFile.h DataSet.h DataSet_1D.h DataSet_Vector.h Dimension.h FileIO.h FileName.h MetaData.h Parallel.h PubFFT.h Range.h TextFormat.h Vec3.h +DataSet_Vector_OXYZ.o : DataSet_Vector_OXYZ.cpp ArrayIterator.h AssociatedData.h ComplexArray.h CpptrajFile.h DataSet.h DataSet_1D.h DataSet_Vector.h DataSet_Vector_OXYZ.h Dimension.h FileIO.h FileName.h MetaData.h Parallel.h Range.h TextFormat.h Vec3.h +DataSet_Vector_XYZ.o : DataSet_Vector_XYZ.cpp ArrayIterator.h AssociatedData.h ComplexArray.h CpptrajFile.h CpptrajStdio.h DataSet.h DataSet_1D.h DataSet_Vector.h DataSet_Vector_XYZ.h Dimension.h FileIO.h FileName.h MetaData.h Parallel.h Range.h TextFormat.h Vec3.h +DataSet_double.o : DataSet_double.cpp AssociatedData.h CpptrajFile.h DataSet.h DataSet_1D.h DataSet_double.h Dimension.h FileIO.h FileName.h MetaData.h Parallel.h Range.h TextFormat.h +DataSet_float.o : DataSet_float.cpp AssociatedData.h CpptrajFile.h DataSet.h DataSet_1D.h DataSet_float.h Dimension.h FileIO.h FileName.h MetaData.h Parallel.h Range.h TextFormat.h +DataSet_integer_disk.o : DataSet_integer_disk.cpp AssociatedData.h CpptrajFile.h CpptrajStdio.h DataSet.h DataSet_1D.h DataSet_integer.h DataSet_integer_disk.h Dimension.h FileIO.h FileName.h File_TempName.h MetaData.h NC_Routines.h Parallel.h Range.h TextFormat.h +DataSet_integer_mem.o : DataSet_integer_mem.cpp AssociatedData.h CpptrajFile.h DataSet.h DataSet_1D.h DataSet_integer.h DataSet_integer_mem.h Dimension.h FileIO.h FileName.h MetaData.h Parallel.h Range.h TextFormat.h +DataSet_pH.o : DataSet_pH.cpp AssociatedData.h Cph.h CpptrajFile.h CpptrajStdio.h DataSet.h DataSet_1D.h DataSet_pH.h Dimension.h FileIO.h FileName.h MetaData.h NameType.h Parallel.h Range.h TextFormat.h +DataSet_string.o : DataSet_string.cpp AssociatedData.h CpptrajFile.h DataSet.h DataSet_string.h Dimension.h FileIO.h FileName.h MetaData.h Parallel.h Range.h TextFormat.h Deprecated.o : Deprecated.cpp CpptrajStdio.h Deprecated.h DispatchObject.h DihedralSearch.o : DihedralSearch.cpp ArgList.h Atom.h AtomExtra.h AtomMask.h AtomType.h Box.h Constants.h CoordinateInfo.h CpptrajStdio.h DihedralSearch.h FileName.h Frame.h MaskToken.h Matrix_3x3.h MetaData.h Molecule.h NameType.h Parallel.h ParameterHolders.h ParameterSet.h ParameterTypes.h Range.h ReplicaDimArray.h Residue.h StringRoutines.h SymbolExporting.h Topology.h TypeNameHolder.h Vec3.h DistRoutines.o : DistRoutines.cpp Box.h DistRoutines.h Matrix_3x3.h Parallel.h Vec3.h @@ -291,7 +291,7 @@ FileIO_Std.o : FileIO_Std.cpp FileIO.h FileIO_Std.h FileName.o : FileName.cpp CpptrajStdio.h FileName.h StringRoutines.h FileTypes.o : FileTypes.cpp ArgList.h BaseIOtype.h CpptrajStdio.h FileTypes.h File_TempName.o : File_TempName.cpp CpptrajStdio.h FileName.h File_TempName.h StringRoutines.h -ForLoop.o : ForLoop.cpp ArgList.h AssociatedData.h Atom.h AtomExtra.h AtomMask.h AtomType.h Box.h Constants.h CoordinateInfo.h CpptrajFile.h CpptrajStdio.h DataSet.h DataSetList.h DataSet_Coords.h DataSet_Coords_REF.h Dimension.h FileIO.h FileName.h ForLoop.h Frame.h MaskToken.h Matrix_3x3.h MetaData.h Molecule.h NameType.h Parallel.h ParameterHolders.h ParameterSet.h ParameterTypes.h Range.h ReferenceFrame.h ReplicaDimArray.h Residue.h SymbolExporting.h TextFormat.h Timer.h Topology.h TypeNameHolder.h Vec3.h +ForLoop.o : ForLoop.cpp AssociatedData.h Atom.h AtomExtra.h AtomMask.h AtomType.h Box.h Constants.h CoordinateInfo.h CpptrajFile.h CpptrajStdio.h DataSet.h DataSetList.h DataSet_Coords.h DataSet_Coords_REF.h Dimension.h FileIO.h FileName.h ForLoop.h Frame.h MaskToken.h Matrix_3x3.h MetaData.h Molecule.h NameType.h Parallel.h ParameterHolders.h ParameterSet.h ParameterTypes.h Range.h ReferenceFrame.h ReplicaDimArray.h Residue.h SymbolExporting.h TextFormat.h Timer.h Topology.h TypeNameHolder.h Vec3.h ForLoop_dataSetBlocks.o : ForLoop_dataSetBlocks.cpp Action.h ActionList.h ActionState.h Analysis.h AnalysisList.h AnalysisState.h ArgList.h AssociatedData.h Atom.h AtomExtra.h AtomMask.h AtomType.h BaseIOtype.h Box.h Constants.h CoordinateInfo.h CpptrajFile.h CpptrajState.h CpptrajStdio.h DataFile.h DataFileList.h DataIO.h DataSet.h DataSetList.h DataSet_Coords.h DataSet_Coords_REF.h Dimension.h DispatchObject.h EnsembleIn.h EnsembleOutList.h FileIO.h FileName.h FileTypes.h ForLoop.h ForLoop_dataSetBlocks.h Frame.h FramePtrArray.h InputTrajCommon.h MaskToken.h Matrix_3x3.h MetaData.h Molecule.h NameType.h Parallel.h ParameterHolders.h ParameterSet.h ParameterTypes.h Range.h ReferenceFrame.h ReplicaDimArray.h ReplicaInfo.h Residue.h StringRoutines.h SymbolExporting.h TextFormat.h Timer.h Topology.h TrajFrameCounter.h Trajin.h TrajinList.h TrajoutList.h TypeNameHolder.h Vec3.h ForLoop_integer.o : ForLoop_integer.cpp Action.h ActionList.h ActionState.h Analysis.h AnalysisList.h AnalysisState.h ArgList.h AssociatedData.h Atom.h AtomExtra.h AtomMask.h AtomType.h BaseIOtype.h Box.h Constants.h CoordinateInfo.h CpptrajFile.h CpptrajState.h CpptrajStdio.h DataFile.h DataFileList.h DataIO.h DataSet.h DataSetList.h DataSet_Coords.h DataSet_Coords_REF.h Dimension.h DispatchObject.h EnsembleIn.h EnsembleOutList.h FileIO.h FileName.h FileTypes.h ForLoop.h ForLoop_integer.h Frame.h FramePtrArray.h InputTrajCommon.h MaskToken.h Matrix_3x3.h MetaData.h Molecule.h NameType.h Parallel.h ParameterHolders.h ParameterSet.h ParameterTypes.h Range.h ReferenceFrame.h ReplicaDimArray.h ReplicaInfo.h Residue.h StringRoutines.h SymbolExporting.h TextFormat.h Timer.h Topology.h TrajFrameCounter.h Trajin.h TrajinList.h TrajoutList.h TypeNameHolder.h Vec3.h ForLoop_list.o : ForLoop_list.cpp Action.h ActionList.h ActionState.h Analysis.h AnalysisList.h AnalysisState.h ArgList.h AssociatedData.h Atom.h AtomExtra.h AtomMask.h AtomType.h BaseIOtype.h Box.h Constants.h CoordinateInfo.h CpptrajFile.h CpptrajState.h CpptrajStdio.h DataFile.h DataFileList.h DataIO.h DataSet.h DataSetList.h DataSet_Coords.h DataSet_Coords_REF.h Dimension.h DispatchObject.h EnsembleIn.h EnsembleOutList.h FileIO.h FileName.h FileTypes.h ForLoop.h ForLoop_list.h Frame.h FramePtrArray.h InputTrajCommon.h MaskToken.h Matrix_3x3.h MetaData.h Molecule.h NameType.h Parallel.h ParameterHolders.h ParameterSet.h ParameterTypes.h Range.h ReferenceFrame.h ReplicaDimArray.h ReplicaInfo.h Residue.h SymbolExporting.h TextFormat.h Timer.h Topology.h TrajFrameCounter.h Trajin.h TrajinList.h TrajoutList.h TypeNameHolder.h Vec3.h @@ -302,7 +302,7 @@ HistBin.o : HistBin.cpp Constants.h CpptrajStdio.h Dimension.h HistBin.h Hungarian.o : Hungarian.cpp ArrayIterator.h Constants.h CpptrajStdio.h Hungarian.h Matrix.h ImageRoutines.o : ImageRoutines.cpp Atom.h AtomExtra.h AtomMask.h AtomType.h Box.h CharMask.h Constants.h CoordinateInfo.h DistRoutines.h FileName.h Frame.h ImageRoutines.h ImageTypes.h MaskToken.h Matrix_3x3.h Molecule.h NameType.h Parallel.h ParameterHolders.h ParameterSet.h ParameterTypes.h Range.h ReplicaDimArray.h Residue.h SymbolExporting.h Topology.h TypeNameHolder.h Vec3.h InputTrajCommon.o : InputTrajCommon.cpp CpptrajStdio.h FileName.h InputTrajCommon.h TrajFrameCounter.h -KDE.o : KDE.cpp ArgList.h AssociatedData.h Constants.h CpptrajFile.h CpptrajStdio.h DataSet.h DataSet_1D.h DataSet_double.h Dimension.h FileIO.h FileName.h HistBin.h KDE.h MetaData.h Parallel.h Range.h TextFormat.h +KDE.o : KDE.cpp AssociatedData.h Constants.h CpptrajFile.h CpptrajStdio.h DataSet.h DataSet_1D.h DataSet_double.h Dimension.h FileIO.h FileName.h HistBin.h KDE.h MetaData.h Parallel.h Range.h TextFormat.h MapAtom.o : MapAtom.cpp Atom.h MapAtom.h NameType.h SymbolExporting.h MaskArray.o : MaskArray.cpp Atom.h AtomExtra.h AtomMask.h AtomType.h Box.h Constants.h CoordinateInfo.h CpptrajStdio.h FileName.h Frame.h MaskArray.h MaskToken.h Matrix_3x3.h Molecule.h NameType.h Parallel.h ParameterHolders.h ParameterSet.h ParameterTypes.h Range.h ReplicaDimArray.h Residue.h SymbolExporting.h Topology.h TypeNameHolder.h Vec3.h MaskToken.o : MaskToken.cpp ArgList.h Atom.h Box.h CpptrajStdio.h DistRoutines.h MaskToken.h Matrix_3x3.h Molecule.h NameType.h Parallel.h Residue.h StringRoutines.h SymbolExporting.h Vec3.h @@ -340,17 +340,17 @@ ReferenceAction.o : ReferenceAction.cpp ArgList.h AssociatedData.h Atom.h AtomEx RemdReservoirNC.o : RemdReservoirNC.cpp Atom.h AtomMask.h Box.h CoordinateInfo.h CpptrajStdio.h FileName.h Frame.h MaskToken.h Matrix_3x3.h Molecule.h NC_Routines.h NameType.h NetcdfFile.h Parallel.h RemdReservoirNC.h ReplicaDimArray.h Residue.h SymbolExporting.h Vec3.h Residue.o : Residue.cpp NameType.h Residue.h SDFfile.o : SDFfile.cpp Atom.h CpptrajFile.h FileIO.h FileName.h NameType.h Parallel.h SDFfile.h StringRoutines.h SymbolExporting.h -SimplexMin.o : SimplexMin.cpp ArgList.h AssociatedData.h CpptrajFile.h CpptrajStdio.h DataSet.h Dimension.h FileIO.h FileName.h MetaData.h Parallel.h Random.h Range.h SimplexMin.h TextFormat.h +SimplexMin.o : SimplexMin.cpp AssociatedData.h CpptrajFile.h CpptrajStdio.h DataSet.h Dimension.h FileIO.h FileName.h MetaData.h Parallel.h Random.h Range.h SimplexMin.h TextFormat.h SpaceGroup.o : SpaceGroup.cpp Matrix_3x3.h SpaceGroup.h Vec3.h Spline.o : Spline.cpp CpptrajStdio.h Spline.h StringRoutines.o : StringRoutines.cpp CpptrajStdio.h StringRoutines.h StructureCheck.o : StructureCheck.cpp Atom.h AtomExtra.h AtomMask.h AtomType.h Box.h CharMask.h Constants.h CoordinateInfo.h CpptrajStdio.h DistRoutines.h FileName.h Frame.h ImagedAction.h MaskToken.h Matrix_3x3.h Molecule.h NameType.h PairList.h Parallel.h ParameterHolders.h ParameterSet.h ParameterTypes.h Range.h ReplicaDimArray.h Residue.h StructureCheck.h SymbolExporting.h Timer.h Topology.h TypeNameHolder.h Vec3.h -StructureMapper.o : StructureMapper.cpp ArgList.h AssociatedData.h Atom.h AtomExtra.h AtomMap.h AtomMask.h AtomType.h Box.h Constants.h CoordinateInfo.h CpptrajFile.h CpptrajStdio.h DataSet.h DataSet_Coords.h DataSet_Coords_REF.h Dimension.h FileIO.h FileName.h Frame.h MapAtom.h MaskToken.h Matrix_3x3.h MetaData.h Molecule.h NameType.h Parallel.h ParameterHolders.h ParameterSet.h ParameterTypes.h Range.h ReplicaDimArray.h Residue.h StructureMapper.h SymbolExporting.h TextFormat.h Topology.h TorsionRoutines.h TypeNameHolder.h Vec3.h +StructureMapper.o : StructureMapper.cpp AssociatedData.h Atom.h AtomExtra.h AtomMap.h AtomMask.h AtomType.h Box.h Constants.h CoordinateInfo.h CpptrajFile.h CpptrajStdio.h DataSet.h DataSet_Coords.h DataSet_Coords_REF.h Dimension.h FileIO.h FileName.h Frame.h MapAtom.h MaskToken.h Matrix_3x3.h MetaData.h Molecule.h NameType.h Parallel.h ParameterHolders.h ParameterSet.h ParameterTypes.h Range.h ReplicaDimArray.h Residue.h StructureMapper.h SymbolExporting.h TextFormat.h Topology.h TorsionRoutines.h TypeNameHolder.h Vec3.h SymmetricRmsdCalc.o : SymmetricRmsdCalc.cpp ArrayIterator.h Atom.h AtomExtra.h AtomMap.h AtomMask.h AtomType.h Box.h Constants.h CoordinateInfo.h CpptrajStdio.h DistRoutines.h FileName.h Frame.h Hungarian.h MapAtom.h MaskToken.h Matrix.h Matrix_3x3.h Molecule.h NameType.h Parallel.h ParameterHolders.h ParameterSet.h ParameterTypes.h Range.h ReplicaDimArray.h Residue.h SymbolExporting.h SymmetricRmsdCalc.h Topology.h TypeNameHolder.h Vec3.h TextFormat.o : TextFormat.cpp StringRoutines.h TextFormat.h Timer.o : Timer.cpp CpptrajStdio.h Timer.h TinkerFile.o : TinkerFile.cpp ArgList.h Atom.h AtomMask.h Box.h BufferedLine.h CoordinateInfo.h CpptrajFile.h CpptrajStdio.h FileIO.h FileName.h Frame.h MaskToken.h Matrix_3x3.h Molecule.h NameType.h Parallel.h ReplicaDimArray.h Residue.h StringRoutines.h SymbolExporting.h TinkerFile.h Vec3.h -TopInfo.o : TopInfo.cpp ArgList.h AssociatedData.h Atom.h AtomExtra.h AtomMask.h AtomType.h Box.h CharMask.h Constants.h CoordinateInfo.h CpptrajFile.h CpptrajStdio.h DataSet.h DataSet_Coords.h Dimension.h DistRoutines.h FileIO.h FileName.h Frame.h MaskToken.h Matrix_3x3.h MetaData.h Mol.h Molecule.h NameType.h Parallel.h ParameterHolders.h ParameterSet.h ParameterTypes.h Range.h ReplicaDimArray.h Residue.h StringRoutines.h SymbolExporting.h TextFormat.h TopInfo.h Topology.h TorsionRoutines.h TypeNameHolder.h Vec3.h +TopInfo.o : TopInfo.cpp AssociatedData.h Atom.h AtomExtra.h AtomMask.h AtomType.h Box.h CharMask.h Constants.h CoordinateInfo.h CpptrajFile.h CpptrajStdio.h DataSet.h DataSet_Coords.h Dimension.h DistRoutines.h FileIO.h FileName.h Frame.h MaskToken.h Matrix_3x3.h MetaData.h Mol.h Molecule.h NameType.h Parallel.h ParameterHolders.h ParameterSet.h ParameterTypes.h Range.h ReplicaDimArray.h Residue.h StringRoutines.h SymbolExporting.h TextFormat.h TopInfo.h Topology.h TorsionRoutines.h TypeNameHolder.h Vec3.h Topology.o : Topology.cpp Atom.h AtomExtra.h AtomMask.h AtomType.h Box.h CharMask.h Constants.h CoordinateInfo.h CpptrajStdio.h FileName.h Frame.h MaskToken.h Matrix_3x3.h Molecule.h NameType.h Parallel.h ParameterHolders.h ParameterSet.h ParameterTypes.h Range.h ReplicaDimArray.h Residue.h StringRoutines.h SymbolExporting.h Topology.h TypeNameHolder.h UpdateParameters.h Vec3.h TorsionRoutines.o : TorsionRoutines.cpp Constants.h TorsionRoutines.h Vec3.h TrajFrameCounter.o : TrajFrameCounter.cpp ArgList.h CpptrajStdio.h TrajFrameCounter.h From af009b31a0f6fb5185fb27a8a0c134215942b612 Mon Sep 17 00:00:00 2001 From: "Daniel R. Roe" Date: Fri, 10 Jan 2020 10:30:46 -0500 Subject: [PATCH 127/162] DRR - More forward declares --- src/DataFile.cpp | 12 ++ src/DataFile.h | 12 +- src/DataFileList.cpp | 1 + src/DataFileList.h | 6 +- src/EnsembleIn_Multi.cpp | 1 + src/EnsembleIn_Single.cpp | 1 + src/EnsembleOutList.cpp | 1 + src/EnsembleOut_Multi.cpp | 1 + src/EnsembleOut_Single.cpp | 1 + src/FileTypes.cpp | 2 + src/FileTypes.h | 3 +- src/OutputTrajCommon.cpp | 1 + src/TrajIOarray.cpp | 1 + src/TrajinList.cpp | 1 + src/Trajin_Single.cpp | 1 + src/TrajoutList.cpp | 1 + src/Trajout_Single.cpp | 1 + src/cpptrajdepend | 372 ++++++++++++++++++------------------- 18 files changed, 225 insertions(+), 194 deletions(-) diff --git a/src/DataFile.cpp b/src/DataFile.cpp index fad77aceb7..e832416ea6 100644 --- a/src/DataFile.cpp +++ b/src/DataFile.cpp @@ -2,6 +2,7 @@ #include "DataFile.h" #include "CpptrajStdio.h" #include "StringRoutines.h" // DigitWidth, integerToString +#include "ArgList.h" #ifdef TIMER # include "Timer.h" #endif @@ -239,6 +240,12 @@ int DataFile::ReadDataOfType(FileName const& fnameIn, DataFormatType typeIn, } // ----------------------------------------------------------------------------- + +int DataFile::SetupDatafile(FileName const& f, int d) { + ArgList a; + return SetupDatafile(f, a, d); +} + // DataFile::SetupDatafile() int DataFile::SetupDatafile(FileName const& fnameIn, ArgList& argIn, int debugIn) { return SetupDatafile(fnameIn, argIn, UNKNOWN_DATA, debugIn); @@ -281,6 +288,11 @@ int DataFile::SetupStdout(ArgList& argIn, int debugIn) { return 0; } +int DataFile::SetupStdout(int d) { + ArgList tmp; + return SetupStdout(tmp, d); +} + // DataFile::AddDataSet() int DataFile::AddDataSet(DataSet* dataIn) { if (dataIn == 0) return 1; diff --git a/src/DataFile.h b/src/DataFile.h index 368842a462..0615488d1d 100644 --- a/src/DataFile.h +++ b/src/DataFile.h @@ -1,7 +1,9 @@ #ifndef INC_DATAFILE_H #define INC_DATAFILE_H -#include "DataIO.h" #include "FileTypes.h" +#include "DataSetList.h" +class FileName; +class DataIO; /// Write DataSets to a file with specific format. class DataFile { /// Allocator and description for file types. @@ -46,16 +48,16 @@ class DataFile { int ReadDataIn(FileName const&, ArgList const&, DataSetList&, int, int); /// Read data from specific type of DataFile int ReadDataOfType(FileName const&, DataFormatType, DataSetList&); + /// Set up DataFile for writing, no args. + int SetupDatafile(FileName const&, int); /// Set up DataFile for writing with optional args. int SetupDatafile(FileName const&, ArgList&, int); /// Set up DataFile for writing with specific format. int SetupDatafile(FileName const&, ArgList&, DataFormatType, int); /// Set up DataFile for writing to STDOUT (DataIO_Std) with optional arguments int SetupStdout(ArgList&, int); - /// Set up DataFile for writing to STDOUT - int SetupStdout(int d) { ArgList tmp; return SetupStdout(tmp, d); } - /// Set up DataFile for writing, no args. - int SetupDatafile(FileName const& f, int d) { ArgList a; return SetupDatafile(f, a, d); } + /// Set up DataFile for writing to STDOUT with debug level + int SetupStdout(int); /// Add a previously set-up DataSet to DataFile. int AddDataSet(DataSet*); /// Remove a set from the DataFile. diff --git a/src/DataFileList.cpp b/src/DataFileList.cpp index 325235bcf5..a3b11ec7a5 100644 --- a/src/DataFileList.cpp +++ b/src/DataFileList.cpp @@ -3,6 +3,7 @@ #include "CpptrajStdio.h" #include "PDBfile.h" #include "StringRoutines.h" // integerToString +#include "ArgList.h" #ifdef TIMER # include "Timer.h" #endif diff --git a/src/DataFileList.h b/src/DataFileList.h index 84c2ce1e01..83b83302e0 100644 --- a/src/DataFileList.h +++ b/src/DataFileList.h @@ -1,8 +1,10 @@ #ifndef INC_DATAFILELIST_H #define INC_DATAFILELIST_H #include "DataFile.h" -#include "DataSet.h" -#include "ArgList.h" +class DataSet; +class ArgList; +class FileName; +class CpptrajFile; /// Holds a list of output DataFiles/CpptrajFiles. /** The DataFileList is meant to hold all output data files defined by any * Actions or Analysis. This allows multiple sets to be directed to the diff --git a/src/EnsembleIn_Multi.cpp b/src/EnsembleIn_Multi.cpp index e0e4c9c4f1..b5e7a30779 100644 --- a/src/EnsembleIn_Multi.cpp +++ b/src/EnsembleIn_Multi.cpp @@ -3,6 +3,7 @@ #include "CpptrajStdio.h" #include "DataFile.h" // TODO remove #include "StringRoutines.h" // integerToString TODO remove +#include "ArgList.h" // EnsembleIn_Multi::SetupEnsembleRead() int EnsembleIn_Multi::SetupEnsembleRead(FileName const& tnameIn, ArgList& argIn, Topology *tparmIn) diff --git a/src/EnsembleIn_Single.cpp b/src/EnsembleIn_Single.cpp index 08e3aa947d..363b500140 100644 --- a/src/EnsembleIn_Single.cpp +++ b/src/EnsembleIn_Single.cpp @@ -5,6 +5,7 @@ #include "FrameArray.h" #include "TrajectoryFile.h" #include "CpptrajStdio.h" +#include "ArgList.h" // CONSTRUCTOR EnsembleIn_Single::EnsembleIn_Single() : eio_(0), ensembleSize_(0) {} diff --git a/src/EnsembleOutList.cpp b/src/EnsembleOutList.cpp index d3699b2c1f..371c707ccd 100644 --- a/src/EnsembleOutList.cpp +++ b/src/EnsembleOutList.cpp @@ -3,6 +3,7 @@ #include "CpptrajStdio.h" #include "EnsembleOut_Single.h" #include "EnsembleOut_Multi.h" +#include "ArgList.h" /// CONSTRUCTOR EnsembleOutList::EnsembleOutList() : debug_(0) {} diff --git a/src/EnsembleOut_Multi.cpp b/src/EnsembleOut_Multi.cpp index 8411305285..2e1f2733a4 100644 --- a/src/EnsembleOut_Multi.cpp +++ b/src/EnsembleOut_Multi.cpp @@ -3,6 +3,7 @@ #include "Topology.h" #include "CpptrajStdio.h" #include "StringRoutines.h" // AppendNumber +#include "ArgList.h" #ifdef MPI # include "Parallel.h" #endif diff --git a/src/EnsembleOut_Single.cpp b/src/EnsembleOut_Single.cpp index f467fd97df..88f1e6d5b9 100644 --- a/src/EnsembleOut_Single.cpp +++ b/src/EnsembleOut_Single.cpp @@ -3,6 +3,7 @@ #include "TrajectoryIO.h" #include "Topology.h" #include "CpptrajStdio.h" +#include "ArgList.h" // CONSTRUCTOR EnsembleOut_Single::EnsembleOut_Single() : eio_(0), ensembleSize_(0) {} diff --git a/src/FileTypes.cpp b/src/FileTypes.cpp index 1c63573f93..f9e21fe1cd 100644 --- a/src/FileTypes.cpp +++ b/src/FileTypes.cpp @@ -3,6 +3,8 @@ #include // strlen #include "FileTypes.h" #include "CpptrajStdio.h" +#include "ArgList.h" + // FileTypes::GetFormatFromArg() FileTypes::FileFormatType FileTypes::GetFormatFromArg(KeyPtr begin, ArgList& argIn, FileFormatType def) diff --git a/src/FileTypes.h b/src/FileTypes.h index 4b38e2232a..8d0d8a21da 100644 --- a/src/FileTypes.h +++ b/src/FileTypes.h @@ -1,7 +1,8 @@ #ifndef INC_FILETYPES_H #define INC_FILETYPES_H +#include #include "BaseIOtype.h" -#include "ArgList.h" +class ArgList; /** This static class is used to create arrays for allocatable file classes * like DataFiles and Trajectories. */ diff --git a/src/OutputTrajCommon.cpp b/src/OutputTrajCommon.cpp index c43462dfd8..db1df14e56 100644 --- a/src/OutputTrajCommon.cpp +++ b/src/OutputTrajCommon.cpp @@ -3,6 +3,7 @@ #include "Topology.h" #include "CpptrajStdio.h" #include "StringRoutines.h" // fileExists +#include "ArgList.h" // CONSTRUCTOR OutputTrajCommon::OutputTrajCommon() : diff --git a/src/TrajIOarray.cpp b/src/TrajIOarray.cpp index ffb079d208..262405d5da 100644 --- a/src/TrajIOarray.cpp +++ b/src/TrajIOarray.cpp @@ -3,6 +3,7 @@ #include "StringRoutines.h" // integerToString, validInteger #include "CpptrajStdio.h" #include "TrajectoryFile.h" +#include "ArgList.h" TrajIOarray::~TrajIOarray() { ClearIOarray(); } diff --git a/src/TrajinList.cpp b/src/TrajinList.cpp index 999b89d71d..de242c87ab 100644 --- a/src/TrajinList.cpp +++ b/src/TrajinList.cpp @@ -7,6 +7,7 @@ #include "EnsembleIn_Single.h" #include "EnsembleIn_Multi.h" #include "StringRoutines.h" // ExpandToFilenames +#include "ArgList.h" TrajinList::TrajinList() : debug_(0), maxframes_(0), ensembleSize_(-1) {} diff --git a/src/Trajin_Single.cpp b/src/Trajin_Single.cpp index 39c4cc4df7..de6b1cbd3e 100644 --- a/src/Trajin_Single.cpp +++ b/src/Trajin_Single.cpp @@ -3,6 +3,7 @@ #include "TrajectoryIO.h" #include "TrajectoryFile.h" #include "CpptrajStdio.h" +#include "ArgList.h" // CONSTRUCTOR Trajin_Single::Trajin_Single() : trajio_(0), velio_(0), frcio_(0) {} diff --git a/src/TrajoutList.cpp b/src/TrajoutList.cpp index 2ec9e8e8b8..b003616f55 100644 --- a/src/TrajoutList.cpp +++ b/src/TrajoutList.cpp @@ -2,6 +2,7 @@ #include "Trajout_Single.h" #include "Topology.h" #include "CpptrajStdio.h" +#include "ArgList.h" // FIXME for pytraj compatibility #include "DataSetList.h" diff --git a/src/Trajout_Single.cpp b/src/Trajout_Single.cpp index b97658b8d4..d845a9ff9f 100644 --- a/src/Trajout_Single.cpp +++ b/src/Trajout_Single.cpp @@ -3,6 +3,7 @@ #include "Topology.h" #include "CpptrajStdio.h" #include "StringRoutines.h" // AppendNumber +#include "ArgList.h" // DESTRUCTOR Trajout_Single::~Trajout_Single() { diff --git a/src/cpptrajdepend b/src/cpptrajdepend index bd93d38a58..772c265b35 100644 --- a/src/cpptrajdepend +++ b/src/cpptrajdepend @@ -1,133 +1,133 @@ -Action.o : Action.cpp Action.h ActionState.h ArgList.h AssociatedData.h Atom.h AtomExtra.h AtomMask.h AtomType.h BaseIOtype.h Box.h Constants.h CoordinateInfo.h CpptrajFile.h CpptrajStdio.h DataFile.h DataFileList.h DataIO.h DataSet.h DataSetList.h DataSet_Coords.h DataSet_Coords_REF.h Dimension.h DispatchObject.h FileIO.h FileName.h FileTypes.h Frame.h MaskToken.h Matrix_3x3.h MetaData.h Molecule.h NameType.h Parallel.h ParameterHolders.h ParameterSet.h ParameterTypes.h Range.h ReferenceFrame.h ReplicaDimArray.h Residue.h SymbolExporting.h TextFormat.h Timer.h Topology.h TypeNameHolder.h Vec3.h +Action.o : Action.cpp Action.h ActionState.h ArgList.h AssociatedData.h Atom.h AtomExtra.h AtomMask.h AtomType.h BaseIOtype.h Box.h Constants.h CoordinateInfo.h CpptrajFile.h CpptrajStdio.h DataFile.h DataFileList.h DataSet.h DataSetList.h DataSet_Coords.h DataSet_Coords_REF.h Dimension.h DispatchObject.h FileIO.h FileName.h FileTypes.h Frame.h MaskToken.h Matrix_3x3.h MetaData.h Molecule.h NameType.h Parallel.h ParameterHolders.h ParameterSet.h ParameterTypes.h Range.h ReferenceFrame.h ReplicaDimArray.h Residue.h SymbolExporting.h TextFormat.h Timer.h Topology.h TypeNameHolder.h Vec3.h ActionFrameCounter.o : ActionFrameCounter.cpp ActionFrameCounter.h ArgList.h CpptrajStdio.h -ActionList.o : ActionList.cpp Action.h ActionList.h ActionState.h ArgList.h AssociatedData.h Atom.h AtomExtra.h AtomMask.h AtomType.h BaseIOtype.h Box.h Constants.h CoordinateInfo.h CpptrajFile.h CpptrajStdio.h DataFile.h DataFileList.h DataIO.h DataSet.h DataSetList.h DataSet_Coords.h DataSet_Coords_REF.h Dimension.h DispatchObject.h FileIO.h FileName.h FileTypes.h Frame.h MaskToken.h Matrix_3x3.h MetaData.h Molecule.h NameType.h Parallel.h ParameterHolders.h ParameterSet.h ParameterTypes.h Range.h ReferenceFrame.h ReplicaDimArray.h Residue.h SymbolExporting.h TextFormat.h Timer.h Topology.h TypeNameHolder.h Vec3.h -Action_Align.o : Action_Align.cpp Action.h ActionState.h Action_Align.h ArgList.h AssociatedData.h Atom.h AtomExtra.h AtomMask.h AtomType.h BaseIOtype.h Box.h Constants.h CoordinateInfo.h CpptrajFile.h CpptrajStdio.h DataFile.h DataFileList.h DataIO.h DataSet.h DataSetList.h DataSet_Coords.h DataSet_Coords_REF.h Dimension.h DispatchObject.h FileIO.h FileName.h FileTypes.h Frame.h MaskToken.h Matrix_3x3.h MetaData.h Molecule.h NameType.h Parallel.h ParameterHolders.h ParameterSet.h ParameterTypes.h Range.h ReferenceAction.h ReferenceFrame.h ReplicaDimArray.h Residue.h SymbolExporting.h TextFormat.h Timer.h Topology.h TypeNameHolder.h Vec3.h -Action_Angle.o : Action_Angle.cpp Action.h ActionState.h Action_Angle.h ArgList.h AssociatedData.h Atom.h AtomExtra.h AtomMask.h AtomType.h BaseIOtype.h Box.h Constants.h CoordinateInfo.h CpptrajFile.h CpptrajStdio.h DataFile.h DataFileList.h DataIO.h DataSet.h DataSetList.h DataSet_Coords.h DataSet_Coords_REF.h Dimension.h DispatchObject.h FileIO.h FileName.h FileTypes.h Frame.h MaskToken.h Matrix_3x3.h MetaData.h Molecule.h NameType.h Parallel.h ParameterHolders.h ParameterSet.h ParameterTypes.h Range.h ReferenceFrame.h ReplicaDimArray.h Residue.h SymbolExporting.h TextFormat.h Timer.h Topology.h TorsionRoutines.h TypeNameHolder.h Vec3.h -Action_AreaPerMol.o : Action_AreaPerMol.cpp Action.h ActionState.h Action_AreaPerMol.h ArgList.h AssociatedData.h Atom.h AtomExtra.h AtomMask.h AtomType.h BaseIOtype.h Box.h CharMask.h Constants.h CoordinateInfo.h CpptrajFile.h CpptrajStdio.h DataFile.h DataFileList.h DataIO.h DataSet.h DataSetList.h DataSet_Coords.h DataSet_Coords_REF.h Dimension.h DispatchObject.h FileIO.h FileName.h FileTypes.h Frame.h MaskToken.h Matrix_3x3.h MetaData.h Molecule.h NameType.h Parallel.h ParameterHolders.h ParameterSet.h ParameterTypes.h Range.h ReferenceFrame.h ReplicaDimArray.h Residue.h SymbolExporting.h TextFormat.h Timer.h Topology.h TypeNameHolder.h Vec3.h -Action_AtomMap.o : Action_AtomMap.cpp Action.h ActionState.h Action_AtomMap.h ArgList.h AssociatedData.h Atom.h AtomExtra.h AtomMap.h AtomMask.h AtomType.h BaseIOtype.h Box.h Constants.h CoordinateInfo.h CpptrajFile.h CpptrajStdio.h DataFile.h DataFileList.h DataIO.h DataSet.h DataSetList.h DataSet_Coords.h DataSet_Coords_REF.h Dimension.h DispatchObject.h FileIO.h FileName.h FileTypes.h Frame.h MapAtom.h MaskToken.h Matrix_3x3.h MetaData.h Molecule.h NameType.h Parallel.h ParameterHolders.h ParameterSet.h ParameterTypes.h Range.h ReferenceFrame.h ReplicaDimArray.h Residue.h StringRoutines.h StructureMapper.h SymbolExporting.h TextFormat.h Timer.h Topology.h TypeNameHolder.h Vec3.h -Action_AtomicCorr.o : Action_AtomicCorr.cpp Action.h ActionState.h Action_AtomicCorr.h ArgList.h ArrayIterator.h AssociatedData.h Atom.h AtomExtra.h AtomMask.h AtomType.h BaseIOtype.h Box.h Constants.h CoordinateInfo.h CpptrajFile.h CpptrajStdio.h DataFile.h DataFileList.h DataIO.h DataSet.h DataSetList.h DataSet_2D.h DataSet_Coords.h DataSet_Coords_REF.h DataSet_MatrixFlt.h Dimension.h DispatchObject.h FileIO.h FileName.h FileTypes.h Frame.h MaskToken.h Matrix.h Matrix_3x3.h MetaData.h Molecule.h NameType.h Parallel.h ParameterHolders.h ParameterSet.h ParameterTypes.h ProgressBar.h Range.h ReferenceFrame.h ReplicaDimArray.h Residue.h StringRoutines.h SymbolExporting.h TextFormat.h Timer.h Topology.h TypeNameHolder.h Vec3.h -Action_AtomicFluct.o : Action_AtomicFluct.cpp Action.h ActionFrameCounter.h ActionState.h Action_AtomicFluct.h ArgList.h AssociatedData.h Atom.h AtomExtra.h AtomMask.h AtomType.h BaseIOtype.h Box.h Constants.h CoordinateInfo.h CpptrajFile.h CpptrajStdio.h DataFile.h DataFileList.h DataIO.h DataSet.h DataSetList.h DataSet_1D.h DataSet_Coords.h DataSet_Coords_REF.h DataSet_Mesh.h Dimension.h DispatchObject.h FileIO.h FileName.h FileTypes.h Frame.h MaskToken.h Matrix_3x3.h MetaData.h Molecule.h NameType.h PDBfile.h Parallel.h ParameterHolders.h ParameterSet.h ParameterTypes.h Range.h ReferenceFrame.h ReplicaDimArray.h Residue.h Spline.h SymbolExporting.h TextFormat.h Timer.h Topology.h TypeNameHolder.h Vec3.h -Action_AutoImage.o : Action_AutoImage.cpp Action.h ActionState.h Action_AutoImage.h ArgList.h AssociatedData.h Atom.h AtomExtra.h AtomMask.h AtomType.h BaseIOtype.h Box.h CharMask.h Constants.h CoordinateInfo.h CpptrajFile.h CpptrajStdio.h DataFile.h DataFileList.h DataIO.h DataSet.h DataSetList.h DataSet_Coords.h DataSet_Coords_REF.h Dimension.h DispatchObject.h DistRoutines.h FileIO.h FileName.h FileTypes.h Frame.h ImageRoutines.h ImageTypes.h MaskToken.h Matrix_3x3.h MetaData.h Molecule.h NameType.h Parallel.h ParameterHolders.h ParameterSet.h ParameterTypes.h Range.h ReferenceFrame.h ReplicaDimArray.h Residue.h SymbolExporting.h TextFormat.h Timer.h Topology.h TypeNameHolder.h Vec3.h -Action_Average.o : Action_Average.cpp Action.h ActionFrameCounter.h ActionState.h Action_Average.h ArgList.h AssociatedData.h Atom.h AtomExtra.h AtomMask.h AtomType.h BaseIOtype.h Box.h Constants.h CoordinateInfo.h CpptrajFile.h CpptrajStdio.h DataFile.h DataFileList.h DataIO.h DataSet.h DataSetList.h DataSet_Coords.h DataSet_Coords_REF.h Dimension.h DispatchObject.h FileIO.h FileName.h FileTypes.h Frame.h MaskToken.h Matrix_3x3.h MetaData.h Molecule.h NameType.h OutputTrajCommon.h Parallel.h ParameterHolders.h ParameterSet.h ParameterTypes.h Range.h ReferenceFrame.h ReplicaDimArray.h Residue.h SymbolExporting.h TextFormat.h Timer.h Topology.h TrajectoryFile.h Trajout_Single.h TypeNameHolder.h Vec3.h -Action_Bounds.o : Action_Bounds.cpp Action.h ActionState.h Action_Bounds.h ArgList.h AssociatedData.h Atom.h AtomExtra.h AtomMask.h AtomType.h BaseIOtype.h Box.h Constants.h CoordinateInfo.h CpptrajFile.h CpptrajStdio.h DataFile.h DataFileList.h DataIO.h DataSet.h DataSetList.h DataSet_3D.h DataSet_Coords.h DataSet_Coords_REF.h Dimension.h DispatchObject.h FileIO.h FileName.h FileTypes.h Frame.h GridBin.h MaskToken.h Matrix_3x3.h MetaData.h Molecule.h NameType.h Parallel.h ParameterHolders.h ParameterSet.h ParameterTypes.h Range.h ReferenceFrame.h ReplicaDimArray.h Residue.h SymbolExporting.h TextFormat.h Timer.h Topology.h TypeNameHolder.h Vec3.h -Action_Box.o : Action_Box.cpp Action.h ActionState.h Action_Box.h ArgList.h AssociatedData.h Atom.h AtomExtra.h AtomMask.h AtomType.h BaseIOtype.h Box.h Constants.h CoordinateInfo.h CpptrajFile.h CpptrajStdio.h DataFile.h DataFileList.h DataIO.h DataSet.h DataSetList.h DataSet_Coords.h DataSet_Coords_REF.h Dimension.h DispatchObject.h FileIO.h FileName.h FileTypes.h Frame.h MaskToken.h Matrix_3x3.h MetaData.h Molecule.h NameType.h Parallel.h ParameterHolders.h ParameterSet.h ParameterTypes.h Range.h ReferenceFrame.h ReplicaDimArray.h Residue.h SymbolExporting.h TextFormat.h Timer.h Topology.h TypeNameHolder.h Vec3.h -Action_Center.o : Action_Center.cpp Action.h ActionState.h Action_Center.h ArgList.h AssociatedData.h Atom.h AtomExtra.h AtomMask.h AtomType.h BaseIOtype.h Box.h Constants.h CoordinateInfo.h CpptrajFile.h CpptrajStdio.h DataFile.h DataFileList.h DataIO.h DataSet.h DataSetList.h DataSet_Coords.h DataSet_Coords_REF.h Dimension.h DispatchObject.h FileIO.h FileName.h FileTypes.h Frame.h MaskToken.h Matrix_3x3.h MetaData.h Molecule.h NameType.h Parallel.h ParameterHolders.h ParameterSet.h ParameterTypes.h Range.h ReferenceFrame.h ReplicaDimArray.h Residue.h SymbolExporting.h TextFormat.h Timer.h Topology.h TypeNameHolder.h Vec3.h -Action_Channel.o : Action_Channel.cpp Action.h ActionState.h Action_Channel.h ArgList.h ArrayIterator.h AssociatedData.h Atom.h AtomExtra.h AtomMask.h AtomType.h BaseIOtype.h Box.h Constants.h CoordinateInfo.h CpptrajFile.h CpptrajStdio.h DataFile.h DataFileList.h DataIO.h DataSet.h DataSetList.h DataSet_3D.h DataSet_Coords.h DataSet_Coords_REF.h DataSet_GridFlt.h Dimension.h DispatchObject.h FileIO.h FileName.h FileTypes.h Frame.h Grid.h GridBin.h MaskToken.h Matrix_3x3.h MetaData.h Molecule.h NameType.h Parallel.h ParameterHolders.h ParameterSet.h ParameterTypes.h Range.h ReferenceFrame.h ReplicaDimArray.h Residue.h SymbolExporting.h TextFormat.h Timer.h Topology.h TypeNameHolder.h Vec3.h -Action_CheckChirality.o : Action_CheckChirality.cpp Action.h ActionState.h Action_CheckChirality.h ArgList.h AssociatedData.h Atom.h AtomExtra.h AtomMask.h AtomType.h BaseIOtype.h Box.h CharMask.h Constants.h CoordinateInfo.h CpptrajFile.h CpptrajStdio.h DataFile.h DataFileList.h DataIO.h DataSet.h DataSetList.h DataSet_1D.h DataSet_Coords.h DataSet_Coords_REF.h DataSet_Mesh.h Dimension.h DispatchObject.h FileIO.h FileName.h FileTypes.h Frame.h MaskToken.h Matrix_3x3.h MetaData.h Molecule.h NameType.h Parallel.h ParameterHolders.h ParameterSet.h ParameterTypes.h Range.h ReferenceFrame.h ReplicaDimArray.h Residue.h Spline.h SymbolExporting.h TextFormat.h Timer.h Topology.h TorsionRoutines.h TypeNameHolder.h Vec3.h -Action_CheckStructure.o : Action_CheckStructure.cpp Action.h ActionState.h Action_CheckStructure.h ArgList.h AssociatedData.h Atom.h AtomExtra.h AtomMask.h AtomType.h BaseIOtype.h Box.h Constants.h CoordinateInfo.h CpptrajFile.h CpptrajStdio.h DataFile.h DataFileList.h DataIO.h DataSet.h DataSetList.h DataSet_1D.h DataSet_Coords.h DataSet_Coords_REF.h DataSet_double.h DataSet_integer.h DataSet_string.h Dimension.h DispatchObject.h DistRoutines.h FileIO.h FileName.h FileTypes.h Frame.h ImagedAction.h MaskToken.h Matrix_3x3.h MetaData.h Molecule.h NameType.h PairList.h Parallel.h ParameterHolders.h ParameterSet.h ParameterTypes.h Range.h ReferenceFrame.h ReplicaDimArray.h Residue.h StructureCheck.h SymbolExporting.h TextFormat.h Timer.h Topology.h TypeNameHolder.h Vec3.h -Action_Closest.o : Action_Closest.cpp Action.h ActionState.h Action_Closest.h ArgList.h AssociatedData.h Atom.h AtomExtra.h AtomMask.h AtomType.h BaseIOtype.h BondSearch.h Box.h CharMask.h Constants.h CoordinateInfo.h CpptrajFile.h CpptrajStdio.h DataFile.h DataFileList.h DataIO.h DataSet.h DataSetList.h DataSet_Coords.h DataSet_Coords_REF.h Dimension.h DispatchObject.h DistRoutines.h FileIO.h FileName.h FileTypes.h Frame.h ImageRoutines.h ImageTypes.h ImagedAction.h MaskToken.h Matrix_3x3.h MetaData.h Molecule.h NameType.h Parallel.h ParameterHolders.h ParameterSet.h ParameterTypes.h ParmFile.h ParmIO.h Range.h ReferenceFrame.h ReplicaDimArray.h Residue.h SymbolExporting.h TextFormat.h Timer.h Topology.h TypeNameHolder.h Vec3.h -Action_ClusterDihedral.o : Action_ClusterDihedral.cpp Action.h ActionState.h Action_ClusterDihedral.h ArgList.h AssociatedData.h Atom.h AtomExtra.h AtomMask.h AtomType.h BaseIOtype.h Box.h Constants.h CoordinateInfo.h CpptrajFile.h CpptrajStdio.h DataFile.h DataFileList.h DataIO.h DataSet.h DataSetList.h DataSet_1D.h DataSet_Coords.h DataSet_Coords_REF.h DataSet_integer.h Dimension.h DispatchObject.h FileIO.h FileName.h FileTypes.h Frame.h MaskToken.h Matrix_3x3.h MetaData.h Molecule.h NameType.h Parallel.h ParameterHolders.h ParameterSet.h ParameterTypes.h Range.h ReferenceFrame.h ReplicaDimArray.h Residue.h SymbolExporting.h TextFormat.h Timer.h Topology.h TorsionRoutines.h TypeNameHolder.h Vec3.h -Action_Contacts.o : Action_Contacts.cpp Action.h ActionState.h Action_Contacts.h ArgList.h AssociatedData.h Atom.h AtomExtra.h AtomMask.h AtomType.h BaseIOtype.h Box.h Constants.h CoordinateInfo.h CpptrajFile.h CpptrajStdio.h DataFile.h DataFileList.h DataIO.h DataSet.h DataSetList.h DataSet_Coords.h DataSet_Coords_REF.h Dimension.h DispatchObject.h DistRoutines.h FileIO.h FileName.h FileTypes.h Frame.h MaskToken.h Matrix_3x3.h MetaData.h Molecule.h NameType.h Parallel.h ParameterHolders.h ParameterSet.h ParameterTypes.h Range.h ReferenceFrame.h ReplicaDimArray.h Residue.h SymbolExporting.h TextFormat.h Timer.h Topology.h TypeNameHolder.h Vec3.h -Action_CreateCrd.o : Action_CreateCrd.cpp Action.h ActionState.h Action_CreateCrd.h ArgList.h AssociatedData.h Atom.h AtomExtra.h AtomMask.h AtomType.h BaseIOtype.h Box.h Constants.h CoordinateInfo.h CpptrajFile.h CpptrajStdio.h DataFile.h DataFileList.h DataIO.h DataSet.h DataSetList.h DataSet_Coords.h DataSet_Coords_CRD.h DataSet_Coords_REF.h Dimension.h DispatchObject.h FileIO.h FileName.h FileTypes.h Frame.h MaskToken.h Matrix_3x3.h MetaData.h Molecule.h NameType.h Parallel.h ParameterHolders.h ParameterSet.h ParameterTypes.h Range.h ReferenceFrame.h ReplicaDimArray.h Residue.h StringRoutines.h SymbolExporting.h TextFormat.h Timer.h Topology.h TypeNameHolder.h Vec3.h -Action_CreateReservoir.o : Action_CreateReservoir.cpp Action.h ActionState.h Action_CreateReservoir.h ArgList.h AssociatedData.h Atom.h AtomExtra.h AtomMask.h AtomType.h BaseIOtype.h Box.h Constants.h CoordinateInfo.h CpptrajFile.h CpptrajStdio.h DataFile.h DataFileList.h DataIO.h DataSet.h DataSetList.h DataSet_1D.h DataSet_Coords.h DataSet_Coords_REF.h Dimension.h DispatchObject.h FileIO.h FileName.h FileTypes.h Frame.h MaskToken.h Matrix_3x3.h MetaData.h Molecule.h NameType.h NetcdfFile.h Parallel.h ParameterHolders.h ParameterSet.h ParameterTypes.h Range.h ReferenceFrame.h RemdReservoirNC.h ReplicaDimArray.h Residue.h SymbolExporting.h TextFormat.h Timer.h Topology.h TypeNameHolder.h Vec3.h -Action_DNAionTracker.o : Action_DNAionTracker.cpp Action.h ActionState.h Action_DNAionTracker.h ArgList.h AssociatedData.h Atom.h AtomExtra.h AtomMask.h AtomType.h BaseIOtype.h Box.h Constants.h CoordinateInfo.h CpptrajFile.h CpptrajStdio.h DataFile.h DataFileList.h DataIO.h DataSet.h DataSetList.h DataSet_Coords.h DataSet_Coords_REF.h Dimension.h DispatchObject.h DistRoutines.h FileIO.h FileName.h FileTypes.h Frame.h ImagedAction.h MaskToken.h Matrix_3x3.h MetaData.h Molecule.h NameType.h Parallel.h ParameterHolders.h ParameterSet.h ParameterTypes.h Range.h ReferenceFrame.h ReplicaDimArray.h Residue.h SymbolExporting.h TextFormat.h Timer.h Topology.h TypeNameHolder.h Vec3.h -Action_DSSP.o : Action_DSSP.cpp Action.h ActionState.h Action_DSSP.h ArgList.h AssociatedData.h Atom.h AtomExtra.h AtomMask.h AtomType.h BaseIOtype.h Box.h CharMask.h Constants.h CoordinateInfo.h CpptrajFile.h CpptrajStdio.h DataFile.h DataFileList.h DataIO.h DataSet.h DataSetList.h DataSet_Coords.h DataSet_Coords_REF.h Dimension.h DispatchObject.h DistRoutines.h FileIO.h FileName.h FileTypes.h Frame.h MaskToken.h Matrix_3x3.h MetaData.h Molecule.h NameType.h Parallel.h ParameterHolders.h ParameterSet.h ParameterTypes.h Range.h ReferenceFrame.h ReplicaDimArray.h Residue.h SymbolExporting.h TextFormat.h Timer.h Topology.h TypeNameHolder.h Vec3.h -Action_Density.o : Action_Density.cpp Action.h ActionState.h Action_Density.h ArgList.h AssociatedData.h Atom.h AtomExtra.h AtomMask.h AtomType.h BaseIOtype.h Box.h Constants.h CoordinateInfo.h CpptrajFile.h CpptrajStdio.h DataFile.h DataFileList.h DataIO.h DataSet.h DataSetList.h DataSet_1D.h DataSet_Coords.h DataSet_Coords_REF.h Dimension.h DispatchObject.h DistRoutines.h FileIO.h FileName.h FileTypes.h Frame.h ImagedAction.h MaskToken.h Matrix_3x3.h MetaData.h Molecule.h NameType.h OnlineVarT.h Parallel.h ParameterHolders.h ParameterSet.h ParameterTypes.h Range.h ReferenceFrame.h ReplicaDimArray.h Residue.h StringRoutines.h SymbolExporting.h TextFormat.h Timer.h Topology.h TypeNameHolder.h Vec3.h -Action_Diffusion.o : Action_Diffusion.cpp Action.h ActionState.h Action_Diffusion.h ArgList.h AssociatedData.h Atom.h AtomExtra.h AtomMask.h AtomType.h BaseIOtype.h Box.h Constants.h CoordinateInfo.h CpptrajFile.h CpptrajStdio.h DataFile.h DataFileList.h DataIO.h DataSet.h DataSetList.h DataSet_1D.h DataSet_Coords.h DataSet_Coords_REF.h Dimension.h DispatchObject.h DistRoutines.h FileIO.h FileName.h FileTypes.h Frame.h ImagedAction.h MaskToken.h Matrix_3x3.h MetaData.h Molecule.h NameType.h Parallel.h ParameterHolders.h ParameterSet.h ParameterTypes.h Range.h ReferenceFrame.h ReplicaDimArray.h Residue.h StringRoutines.h SymbolExporting.h TextFormat.h Timer.h Topology.h TypeNameHolder.h Vec3.h -Action_Dihedral.o : Action_Dihedral.cpp Action.h ActionState.h Action_Dihedral.h ArgList.h AssociatedData.h Atom.h AtomExtra.h AtomMask.h AtomType.h BaseIOtype.h Box.h Constants.h CoordinateInfo.h CpptrajFile.h CpptrajStdio.h DataFile.h DataFileList.h DataIO.h DataSet.h DataSetList.h DataSet_1D.h DataSet_Coords.h DataSet_Coords_REF.h DataSet_double.h Dimension.h DispatchObject.h FileIO.h FileName.h FileTypes.h Frame.h MaskToken.h Matrix_3x3.h MetaData.h Molecule.h NameType.h Parallel.h ParameterHolders.h ParameterSet.h ParameterTypes.h Range.h ReferenceFrame.h ReplicaDimArray.h Residue.h SymbolExporting.h TextFormat.h Timer.h Topology.h TorsionRoutines.h TypeNameHolder.h Vec3.h -Action_DihedralRMS.o : Action_DihedralRMS.cpp Action.h ActionState.h Action_DihedralRMS.h ArgList.h AssociatedData.h Atom.h AtomExtra.h AtomMask.h AtomType.h BaseIOtype.h Box.h Constants.h CoordinateInfo.h CpptrajFile.h CpptrajStdio.h DataFile.h DataFileList.h DataIO.h DataSet.h DataSetList.h DataSet_Coords.h DataSet_Coords_REF.h DihedralSearch.h Dimension.h DispatchObject.h FileIO.h FileName.h FileTypes.h Frame.h MaskToken.h Matrix_3x3.h MetaData.h Molecule.h NameType.h Parallel.h ParameterHolders.h ParameterSet.h ParameterTypes.h Range.h ReferenceAction.h ReferenceFrame.h ReplicaDimArray.h Residue.h SymbolExporting.h TextFormat.h Timer.h Topology.h TorsionRoutines.h TypeNameHolder.h Vec3.h -Action_Dipole.o : Action_Dipole.cpp Action.h ActionState.h Action_Dipole.h ArgList.h ArrayIterator.h AssociatedData.h Atom.h AtomExtra.h AtomMask.h AtomType.h BaseIOtype.h Box.h CharMask.h Constants.h CoordinateInfo.h CpptrajFile.h CpptrajStdio.h DataFile.h DataFileList.h DataIO.h DataSet.h DataSetList.h DataSet_3D.h DataSet_Coords.h DataSet_Coords_REF.h DataSet_GridFlt.h Dimension.h DispatchObject.h FileIO.h FileName.h FileTypes.h Frame.h Grid.h GridAction.h GridBin.h MaskToken.h Matrix_3x3.h MetaData.h Molecule.h NameType.h Parallel.h ParameterHolders.h ParameterSet.h ParameterTypes.h Range.h ReferenceFrame.h ReplicaDimArray.h Residue.h SymbolExporting.h TextFormat.h Timer.h Topology.h TypeNameHolder.h Vec3.h -Action_DistRmsd.o : Action_DistRmsd.cpp Action.h ActionState.h Action_DistRmsd.h ArgList.h AssociatedData.h Atom.h AtomExtra.h AtomMask.h AtomType.h BaseIOtype.h Box.h Constants.h CoordinateInfo.h CpptrajFile.h CpptrajStdio.h DataFile.h DataFileList.h DataIO.h DataSet.h DataSetList.h DataSet_Coords.h DataSet_Coords_REF.h Dimension.h DispatchObject.h FileIO.h FileName.h FileTypes.h Frame.h MaskToken.h Matrix_3x3.h MetaData.h Molecule.h NameType.h Parallel.h ParameterHolders.h ParameterSet.h ParameterTypes.h Range.h ReferenceAction.h ReferenceFrame.h ReplicaDimArray.h Residue.h SymbolExporting.h TextFormat.h Timer.h Topology.h TypeNameHolder.h Vec3.h -Action_Distance.o : Action_Distance.cpp Action.h ActionState.h Action_Distance.h ArgList.h AssociatedData.h Atom.h AtomExtra.h AtomMask.h AtomType.h BaseIOtype.h Box.h Constants.h CoordinateInfo.h CpptrajFile.h CpptrajStdio.h DataFile.h DataFileList.h DataIO.h DataSet.h DataSetList.h DataSet_Coords.h DataSet_Coords_REF.h Dimension.h DispatchObject.h DistRoutines.h FileIO.h FileName.h FileTypes.h Frame.h ImagedAction.h MaskToken.h Matrix_3x3.h MetaData.h Molecule.h NameType.h Parallel.h ParameterHolders.h ParameterSet.h ParameterTypes.h Range.h ReferenceFrame.h ReplicaDimArray.h Residue.h SymbolExporting.h TextFormat.h Timer.h Topology.h TypeNameHolder.h Vec3.h -Action_Energy.o : Action_Energy.cpp Action.h ActionState.h Action_Energy.h ArgList.h AssociatedData.h Atom.h AtomExtra.h AtomMask.h AtomType.h BaseIOtype.h Box.h CharMask.h Constants.h CoordinateInfo.h CpptrajFile.h CpptrajStdio.h DataFile.h DataFileList.h DataIO.h DataSet.h DataSetList.h DataSet_Coords.h DataSet_Coords_REF.h Dimension.h DispatchObject.h Energy.h Ewald.h Ewald_ParticleMesh.h Ewald_Regular.h FileIO.h FileName.h FileTypes.h Frame.h MaskToken.h Matrix_3x3.h MetaData.h Molecule.h NameType.h PairList.h Parallel.h ParameterHolders.h ParameterSet.h ParameterTypes.h Range.h ReferenceFrame.h ReplicaDimArray.h Residue.h SymbolExporting.h TextFormat.h Timer.h Topology.h TypeNameHolder.h Vec3.h helpme_standalone.h -Action_Esander.o : Action_Esander.cpp Action.h ActionState.h Action_Esander.h ArgList.h AssociatedData.h Atom.h AtomExtra.h AtomMask.h AtomType.h BaseIOtype.h Box.h Constants.h CoordinateInfo.h CpptrajFile.h CpptrajStdio.h DataFile.h DataFileList.h DataIO.h DataSet.h DataSetList.h DataSet_Coords.h DataSet_Coords_REF.h Dimension.h DispatchObject.h Energy_Sander.h FileIO.h FileName.h FileTypes.h Frame.h MaskToken.h Matrix_3x3.h MetaData.h Molecule.h NameType.h Parallel.h ParameterHolders.h ParameterSet.h ParameterTypes.h Range.h ReferenceFrame.h ReplicaDimArray.h Residue.h SymbolExporting.h TextFormat.h Timer.h Topology.h TypeNameHolder.h Vec3.h -Action_FilterByData.o : Action_FilterByData.cpp Action.h ActionState.h Action_FilterByData.h ArgList.h Array1D.h AssociatedData.h Atom.h AtomExtra.h AtomMask.h AtomType.h BaseIOtype.h Box.h Constants.h CoordinateInfo.h CpptrajFile.h CpptrajStdio.h DataFile.h DataFileList.h DataIO.h DataSet.h DataSetList.h DataSet_1D.h DataSet_Coords.h DataSet_Coords_REF.h Dimension.h DispatchObject.h FileIO.h FileName.h FileTypes.h Frame.h MaskToken.h Matrix_3x3.h MetaData.h Molecule.h NameType.h Parallel.h ParameterHolders.h ParameterSet.h ParameterTypes.h Range.h ReferenceFrame.h ReplicaDimArray.h Residue.h SymbolExporting.h TextFormat.h Timer.h Topology.h TypeNameHolder.h Vec3.h -Action_FixAtomOrder.o : Action_FixAtomOrder.cpp Action.h ActionState.h Action_FixAtomOrder.h ArgList.h AssociatedData.h Atom.h AtomExtra.h AtomMask.h AtomType.h BaseIOtype.h BondSearch.h Box.h Constants.h CoordinateInfo.h CpptrajFile.h CpptrajStdio.h DataFile.h DataFileList.h DataIO.h DataSet.h DataSetList.h DataSet_Coords.h DataSet_Coords_REF.h Dimension.h DispatchObject.h FileIO.h FileName.h FileTypes.h Frame.h MaskToken.h Matrix_3x3.h MetaData.h Molecule.h NameType.h Parallel.h ParameterHolders.h ParameterSet.h ParameterTypes.h ParmFile.h ParmIO.h Range.h ReferenceFrame.h ReplicaDimArray.h Residue.h SymbolExporting.h TextFormat.h Timer.h Topology.h TypeNameHolder.h Vec3.h -Action_FixImagedBonds.o : Action_FixImagedBonds.cpp Action.h ActionState.h Action_FixImagedBonds.h ArgList.h AssociatedData.h Atom.h AtomExtra.h AtomMask.h AtomType.h BaseIOtype.h Box.h CharMask.h Constants.h CoordinateInfo.h CpptrajFile.h CpptrajStdio.h DataFile.h DataFileList.h DataIO.h DataSet.h DataSetList.h DataSet_Coords.h DataSet_Coords_REF.h Dimension.h DispatchObject.h DistRoutines.h FileIO.h FileName.h FileTypes.h Frame.h ImagedAction.h MaskToken.h Matrix_3x3.h MetaData.h Molecule.h NameType.h Parallel.h ParameterHolders.h ParameterSet.h ParameterTypes.h Range.h ReferenceFrame.h ReplicaDimArray.h Residue.h SymbolExporting.h TextFormat.h Timer.h Topology.h TypeNameHolder.h Vec3.h -Action_GIST.o : Action_GIST.cpp Action.h ActionState.h Action_GIST.h ArgList.h ArrayIterator.h AssociatedData.h Atom.h AtomExtra.h AtomMask.h AtomType.h BaseIOtype.h Box.h Constants.h CoordinateInfo.h CpptrajFile.h CpptrajStdio.h DataFile.h DataFileList.h DataIO.h DataSet.h DataSetList.h DataSet_2D.h DataSet_3D.h DataSet_Coords.h DataSet_Coords_REF.h DataSet_GridDbl.h DataSet_GridFlt.h DataSet_MatrixFlt.h Dimension.h DispatchObject.h DistRoutines.h FileIO.h FileName.h FileTypes.h Frame.h Grid.h GridBin.h ImagedAction.h MaskToken.h Matrix.h Matrix_3x3.h MetaData.h Molecule.h NameType.h Parallel.h ParameterHolders.h ParameterSet.h ParameterTypes.h ProgressBar.h Range.h ReferenceFrame.h ReplicaDimArray.h Residue.h StringRoutines.h SymbolExporting.h TextFormat.h Timer.h Topology.h TypeNameHolder.h Vec3.h cuda_kernels/GistCudaSetup.cuh -Action_Grid.o : Action_Grid.cpp Action.h ActionState.h Action_Grid.h ArgList.h ArrayIterator.h AssociatedData.h Atom.h AtomExtra.h AtomMask.h AtomType.h BaseIOtype.h Box.h Constants.h CoordinateInfo.h CpptrajFile.h CpptrajStdio.h DataFile.h DataFileList.h DataIO.h DataSet.h DataSetList.h DataSet_3D.h DataSet_Coords.h DataSet_Coords_REF.h DataSet_GridFlt.h Dimension.h DispatchObject.h FileIO.h FileName.h FileTypes.h Frame.h Grid.h GridAction.h GridBin.h MaskArray.h MaskToken.h Matrix_3x3.h MetaData.h Molecule.h NameType.h PDBfile.h Parallel.h ParameterHolders.h ParameterSet.h ParameterTypes.h Range.h ReferenceFrame.h ReplicaDimArray.h Residue.h SymbolExporting.h TextFormat.h Timer.h Topology.h TypeNameHolder.h Vec3.h -Action_GridFreeEnergy.o : Action_GridFreeEnergy.cpp Action.h ActionState.h Action_GridFreeEnergy.h ArgList.h ArrayIterator.h AssociatedData.h Atom.h AtomExtra.h AtomMask.h AtomType.h BaseIOtype.h Box.h Constants.h CoordinateInfo.h CpptrajFile.h CpptrajStdio.h DataFile.h DataFileList.h DataIO.h DataSet.h DataSetList.h DataSet_3D.h DataSet_Coords.h DataSet_Coords_REF.h DataSet_GridFlt.h Dimension.h DispatchObject.h FileIO.h FileName.h FileTypes.h Frame.h Grid.h GridAction.h GridBin.h MaskToken.h Matrix_3x3.h MetaData.h Molecule.h NameType.h Parallel.h ParameterHolders.h ParameterSet.h ParameterTypes.h Range.h ReferenceFrame.h ReplicaDimArray.h Residue.h StringRoutines.h SymbolExporting.h TextFormat.h Timer.h Topology.h TypeNameHolder.h Vec3.h -Action_HydrogenBond.o : Action_HydrogenBond.cpp Action.h ActionState.h Action_HydrogenBond.h ArgList.h AssociatedData.h Atom.h AtomExtra.h AtomMask.h AtomType.h BaseIOtype.h Box.h Constants.h CoordinateInfo.h CpptrajFile.h CpptrajStdio.h DataFile.h DataFileList.h DataIO.h DataSet.h DataSetList.h DataSet_1D.h DataSet_Coords.h DataSet_Coords_REF.h DataSet_integer.h Dimension.h DispatchObject.h DistRoutines.h FileIO.h FileName.h FileTypes.h Frame.h ImagedAction.h MaskToken.h Matrix_3x3.h MetaData.h Molecule.h NameType.h Parallel.h ParameterHolders.h ParameterSet.h ParameterTypes.h Range.h ReferenceFrame.h ReplicaDimArray.h Residue.h StringRoutines.h SymbolExporting.h TextFormat.h Timer.h Topology.h TorsionRoutines.h TypeNameHolder.h Vec3.h -Action_Image.o : Action_Image.cpp Action.h ActionState.h Action_Image.h ArgList.h AssociatedData.h Atom.h AtomExtra.h AtomMask.h AtomType.h BaseIOtype.h Box.h Constants.h CoordinateInfo.h CpptrajFile.h CpptrajStdio.h DataFile.h DataFileList.h DataIO.h DataSet.h DataSetList.h DataSet_Coords.h DataSet_Coords_REF.h Dimension.h DispatchObject.h FileIO.h FileName.h FileTypes.h Frame.h ImageRoutines.h ImageTypes.h MaskToken.h Matrix_3x3.h MetaData.h Molecule.h NameType.h Parallel.h ParameterHolders.h ParameterSet.h ParameterTypes.h Range.h ReferenceFrame.h ReplicaDimArray.h Residue.h SymbolExporting.h TextFormat.h Timer.h Topology.h TypeNameHolder.h Vec3.h -Action_InfraredSpectrum.o : Action_InfraredSpectrum.cpp Action.h ActionState.h Action_InfraredSpectrum.h ArgList.h ArrayIterator.h AssociatedData.h Atom.h AtomExtra.h AtomMask.h AtomType.h BaseIOtype.h Box.h ComplexArray.h Constants.h CoordinateInfo.h Corr.h CpptrajFile.h CpptrajStdio.h DataFile.h DataFileList.h DataIO.h DataSet.h DataSetList.h DataSet_1D.h DataSet_Coords.h DataSet_Coords_REF.h DataSet_Vector.h DataSet_Vector_XYZ.h DataSet_double.h Dimension.h DispatchObject.h FileIO.h FileName.h FileTypes.h Frame.h MaskToken.h Matrix_3x3.h MetaData.h Molecule.h NameType.h Parallel.h ParameterHolders.h ParameterSet.h ParameterTypes.h ProgressBar.h PubFFT.h Range.h ReferenceFrame.h ReplicaDimArray.h Residue.h SymbolExporting.h TextFormat.h Timer.h Topology.h TypeNameHolder.h Vec3.h -Action_Jcoupling.o : Action_Jcoupling.cpp Action.h ActionState.h Action_Jcoupling.h ArgList.h AssociatedData.h Atom.h AtomExtra.h AtomMask.h AtomType.h BaseIOtype.h Box.h BufferedLine.h CharMask.h Constants.h CoordinateInfo.h CpptrajFile.h CpptrajStdio.h DataFile.h DataFileList.h DataIO.h DataSet.h DataSetList.h DataSet_Coords.h DataSet_Coords_REF.h Dimension.h DispatchObject.h FileIO.h FileName.h FileTypes.h Frame.h MaskToken.h Matrix_3x3.h MetaData.h Molecule.h NameType.h Parallel.h ParameterHolders.h ParameterSet.h ParameterTypes.h Range.h ReferenceFrame.h ReplicaDimArray.h Residue.h SymbolExporting.h TextFormat.h Timer.h Topology.h TorsionRoutines.h TypeNameHolder.h Vec3.h -Action_LESsplit.o : Action_LESsplit.cpp Action.h ActionFrameCounter.h ActionState.h Action_LESsplit.h ArgList.h AssociatedData.h Atom.h AtomExtra.h AtomMask.h AtomType.h BaseIOtype.h Box.h Constants.h CoordinateInfo.h CpptrajFile.h CpptrajStdio.h DataFile.h DataFileList.h DataIO.h DataSet.h DataSetList.h DataSet_Coords.h DataSet_Coords_REF.h Dimension.h DispatchObject.h FileIO.h FileName.h FileTypes.h Frame.h MaskToken.h Matrix_3x3.h MetaData.h Molecule.h NameType.h OutputTrajCommon.h Parallel.h ParameterHolders.h ParameterSet.h ParameterTypes.h Range.h ReferenceFrame.h ReplicaDimArray.h Residue.h SymbolExporting.h TextFormat.h Timer.h Topology.h TrajectoryFile.h Trajout_Single.h TypeNameHolder.h Vec3.h -Action_LIE.o : Action_LIE.cpp Action.h ActionState.h Action_LIE.h ArgList.h AssociatedData.h Atom.h AtomExtra.h AtomMask.h AtomType.h BaseIOtype.h Box.h Constants.h CoordinateInfo.h CpptrajFile.h CpptrajStdio.h DataFile.h DataFileList.h DataIO.h DataSet.h DataSetList.h DataSet_Coords.h DataSet_Coords_REF.h Dimension.h DispatchObject.h DistRoutines.h FileIO.h FileName.h FileTypes.h Frame.h ImagedAction.h MaskToken.h Matrix_3x3.h MetaData.h Molecule.h NameType.h Parallel.h ParameterHolders.h ParameterSet.h ParameterTypes.h Range.h ReferenceFrame.h ReplicaDimArray.h Residue.h SymbolExporting.h TextFormat.h Timer.h Topology.h TypeNameHolder.h Vec3.h -Action_LipidOrder.o : Action_LipidOrder.cpp Action.h ActionState.h Action_LipidOrder.h ArgList.h AssociatedData.h Atom.h AtomExtra.h AtomMask.h AtomType.h BaseIOtype.h Box.h CharMask.h Constants.h CoordinateInfo.h CpptrajFile.h CpptrajStdio.h DataFile.h DataFileList.h DataIO.h DataSet.h DataSetList.h DataSet_Coords.h DataSet_Coords_REF.h Dimension.h DispatchObject.h FileIO.h FileName.h FileTypes.h Frame.h MaskToken.h Matrix_3x3.h MetaData.h Molecule.h NameType.h Parallel.h ParameterHolders.h ParameterSet.h ParameterTypes.h Range.h ReferenceFrame.h ReplicaDimArray.h Residue.h SymbolExporting.h TextFormat.h Timer.h Topology.h TypeNameHolder.h Vec3.h -Action_MakeStructure.o : Action_MakeStructure.cpp Action.h ActionState.h Action_MakeStructure.h ArgList.h AssociatedData.h Atom.h AtomExtra.h AtomMask.h AtomType.h BaseIOtype.h Box.h Constants.h CoordinateInfo.h CpptrajFile.h CpptrajStdio.h DataFile.h DataFileList.h DataIO.h DataSet.h DataSetList.h DataSet_Coords.h DataSet_Coords_REF.h DihedralSearch.h Dimension.h DispatchObject.h FileIO.h FileName.h FileTypes.h Frame.h MaskToken.h Matrix_3x3.h MetaData.h Molecule.h NameType.h Parallel.h ParameterHolders.h ParameterSet.h ParameterTypes.h Range.h ReferenceFrame.h ReplicaDimArray.h Residue.h StringRoutines.h SymbolExporting.h TextFormat.h Timer.h Topology.h TorsionRoutines.h TypeNameHolder.h Vec3.h -Action_Mask.o : Action_Mask.cpp Action.h ActionFrameCounter.h ActionState.h Action_Mask.h ArgList.h AssociatedData.h Atom.h AtomExtra.h AtomMask.h AtomType.h BaseIOtype.h Box.h CharMask.h Constants.h CoordinateInfo.h CpptrajFile.h CpptrajStdio.h DataFile.h DataFileList.h DataIO.h DataSet.h DataSetList.h DataSet_Coords.h DataSet_Coords_REF.h Dimension.h DispatchObject.h FileIO.h FileName.h FileTypes.h Frame.h MaskToken.h Matrix_3x3.h MetaData.h Molecule.h NameType.h OutputTrajCommon.h Parallel.h ParameterHolders.h ParameterSet.h ParameterTypes.h Range.h ReferenceFrame.h ReplicaDimArray.h Residue.h SymbolExporting.h TextFormat.h Timer.h Topology.h TrajectoryFile.h Trajout_Single.h TypeNameHolder.h Vec3.h -Action_Matrix.o : Action_Matrix.cpp Action.h ActionFrameCounter.h ActionState.h Action_Matrix.h ArgList.h Array1D.h ArrayIterator.h AssociatedData.h Atom.h AtomExtra.h AtomMask.h AtomType.h BaseIOtype.h Box.h ComplexArray.h Constants.h CoordinateInfo.h CpptrajFile.h CpptrajStdio.h DataFile.h DataFileList.h DataIO.h DataSet.h DataSetList.h DataSet_1D.h DataSet_2D.h DataSet_Coords.h DataSet_Coords_REF.h DataSet_MatrixDbl.h DataSet_Vector.h Dimension.h DispatchObject.h DistRoutines.h FileIO.h FileName.h FileTypes.h Frame.h MaskToken.h Matrix.h Matrix_3x3.h MetaData.h Molecule.h NameType.h Parallel.h ParameterHolders.h ParameterSet.h ParameterTypes.h Range.h ReferenceFrame.h ReplicaDimArray.h Residue.h SymbolExporting.h TextFormat.h Timer.h Topology.h TypeNameHolder.h Vec3.h -Action_MinImage.o : Action_MinImage.cpp Action.h ActionState.h Action_MinImage.h ArgList.h AssociatedData.h Atom.h AtomExtra.h AtomMask.h AtomType.h BaseIOtype.h Box.h Constants.h CoordinateInfo.h CpptrajFile.h CpptrajStdio.h DataFile.h DataFileList.h DataIO.h DataSet.h DataSetList.h DataSet_Coords.h DataSet_Coords_REF.h Dimension.h DispatchObject.h DistRoutines.h FileIO.h FileName.h FileTypes.h Frame.h ImagedAction.h MaskToken.h Matrix_3x3.h MetaData.h Molecule.h NameType.h Parallel.h ParameterHolders.h ParameterSet.h ParameterTypes.h Range.h ReferenceFrame.h ReplicaDimArray.h Residue.h SymbolExporting.h TextFormat.h Timer.h Topology.h TypeNameHolder.h Vec3.h -Action_Molsurf.o : Action_Molsurf.cpp Action.h ActionState.h Action_Molsurf.h ArgList.h AssociatedData.h Atom.h AtomExtra.h AtomMask.h AtomType.h BaseIOtype.h Box.h Constants.h CoordinateInfo.h CpptrajFile.h CpptrajStdio.h DataFile.h DataFileList.h DataIO.h DataSet.h DataSetList.h DataSet_Coords.h DataSet_Coords_REF.h Dimension.h DispatchObject.h FileIO.h FileName.h FileTypes.h Frame.h MaskToken.h Matrix_3x3.h MetaData.h Molecule.h NameType.h Parallel.h ParameterHolders.h ParameterSet.h ParameterTypes.h Range.h ReferenceFrame.h ReplicaDimArray.h Residue.h SymbolExporting.h TextFormat.h Timer.h Topology.h TypeNameHolder.h Vec3.h molsurf.h -Action_MultiDihedral.o : Action_MultiDihedral.cpp Action.h ActionState.h Action_MultiDihedral.h ArgList.h AssociatedData.h Atom.h AtomExtra.h AtomMask.h AtomType.h BaseIOtype.h Box.h Constants.h CoordinateInfo.h CpptrajFile.h CpptrajStdio.h DataFile.h DataFileList.h DataIO.h DataSet.h DataSetList.h DataSet_1D.h DataSet_Coords.h DataSet_Coords_REF.h DataSet_double.h DihedralSearch.h Dimension.h DispatchObject.h FileIO.h FileName.h FileTypes.h Frame.h MaskToken.h Matrix_3x3.h MetaData.h Molecule.h NameType.h Parallel.h ParameterHolders.h ParameterSet.h ParameterTypes.h Range.h ReferenceFrame.h ReplicaDimArray.h Residue.h StringRoutines.h SymbolExporting.h TextFormat.h Timer.h Topology.h TorsionRoutines.h TypeNameHolder.h Vec3.h -Action_MultiVector.o : Action_MultiVector.cpp Action.h ActionState.h Action_MultiVector.h ArgList.h ArrayIterator.h AssociatedData.h Atom.h AtomExtra.h AtomMask.h AtomType.h BaseIOtype.h Box.h ComplexArray.h Constants.h CoordinateInfo.h CpptrajFile.h CpptrajStdio.h DataFile.h DataFileList.h DataIO.h DataSet.h DataSetList.h DataSet_1D.h DataSet_Coords.h DataSet_Coords_REF.h DataSet_Vector.h DataSet_Vector_OXYZ.h Dimension.h DispatchObject.h FileIO.h FileName.h FileTypes.h Frame.h MaskToken.h Matrix_3x3.h MetaData.h Molecule.h NameType.h Parallel.h ParameterHolders.h ParameterSet.h ParameterTypes.h Range.h ReferenceFrame.h ReplicaDimArray.h Residue.h SymbolExporting.h TextFormat.h Timer.h Topology.h TypeNameHolder.h Vec3.h -Action_NAstruct.o : Action_NAstruct.cpp Action.h ActionState.h Action_NAstruct.h ArgList.h AssociatedData.h Atom.h AtomExtra.h AtomMask.h AtomType.h AxisType.h BaseIOtype.h Box.h Constants.h CoordinateInfo.h CpptrajFile.h CpptrajStdio.h DataFile.h DataFileList.h DataIO.h DataSet.h DataSetList.h DataSet_1D.h DataSet_Coords.h DataSet_Coords_REF.h DataSet_float.h Dimension.h DispatchObject.h DistRoutines.h FileIO.h FileName.h FileTypes.h Frame.h MaskToken.h Matrix_3x3.h MetaData.h Molecule.h NameType.h PDBfile.h Parallel.h ParameterHolders.h ParameterSet.h ParameterTypes.h Range.h ReferenceFrame.h ReplicaDimArray.h Residue.h StringRoutines.h SymbolExporting.h TextFormat.h Timer.h Topology.h TypeNameHolder.h Vec3.h -Action_NMRrst.o : Action_NMRrst.cpp Action.h ActionState.h Action_NMRrst.h ArgList.h AssociatedData.h Atom.h AtomExtra.h AtomMap.h AtomMask.h AtomType.h BaseIOtype.h Box.h BufferedLine.h CharMask.h Constants.h CoordinateInfo.h CpptrajFile.h CpptrajStdio.h DataFile.h DataFileList.h DataIO.h DataSet.h DataSetList.h DataSet_1D.h DataSet_Coords.h DataSet_Coords_REF.h DataSet_double.h DataSet_float.h Dimension.h DispatchObject.h DistRoutines.h FileIO.h FileName.h FileTypes.h Frame.h ImagedAction.h MapAtom.h MaskToken.h Matrix_3x3.h MetaData.h Molecule.h NameType.h Parallel.h ParameterHolders.h ParameterSet.h ParameterTypes.h Range.h ReferenceFrame.h ReplicaDimArray.h Residue.h StringRoutines.h SymbolExporting.h TextFormat.h Timer.h Topology.h TypeNameHolder.h Vec3.h ViewRst.h -Action_NativeContacts.o : Action_NativeContacts.cpp Action.h ActionState.h Action_NativeContacts.h ArgList.h ArrayIterator.h AssociatedData.h Atom.h AtomExtra.h AtomMask.h AtomType.h BaseIOtype.h Box.h Constants.h CoordinateInfo.h CpptrajFile.h CpptrajStdio.h DataFile.h DataFileList.h DataIO.h DataSet.h DataSetList.h DataSet_1D.h DataSet_2D.h DataSet_Coords.h DataSet_Coords_REF.h DataSet_MatrixDbl.h DataSet_integer.h Dimension.h DispatchObject.h DistRoutines.h FileIO.h FileName.h FileTypes.h Frame.h ImagedAction.h MaskToken.h Matrix.h Matrix_3x3.h MetaData.h Molecule.h NameType.h PDBfile.h Parallel.h ParameterHolders.h ParameterSet.h ParameterTypes.h Range.h ReferenceFrame.h ReplicaDimArray.h Residue.h SymbolExporting.h TextFormat.h Timer.h Topology.h TypeNameHolder.h Vec3.h -Action_OrderParameter.o : Action_OrderParameter.cpp Action.h ActionState.h Action_OrderParameter.h ArgList.h AssociatedData.h Atom.h AtomExtra.h AtomMask.h AtomType.h BaseIOtype.h Box.h Constants.h CoordinateInfo.h CpptrajFile.h CpptrajStdio.h DataFile.h DataFileList.h DataIO.h DataSet.h DataSetList.h DataSet_Coords.h DataSet_Coords_REF.h Dimension.h DispatchObject.h DistRoutines.h FileIO.h FileName.h FileTypes.h Frame.h ImagedAction.h MaskToken.h Matrix_3x3.h MetaData.h Molecule.h NameType.h OnlineVarT.h Parallel.h ParameterHolders.h ParameterSet.h ParameterTypes.h Range.h ReferenceFrame.h ReplicaDimArray.h Residue.h StringRoutines.h SymbolExporting.h TextFormat.h Timer.h Topology.h TypeNameHolder.h Vec3.h -Action_Outtraj.o : Action_Outtraj.cpp Action.h ActionFrameCounter.h ActionState.h Action_Outtraj.h ArgList.h AssociatedData.h Atom.h AtomExtra.h AtomMask.h AtomType.h BaseIOtype.h Box.h Constants.h CoordinateInfo.h CpptrajFile.h CpptrajStdio.h DataFile.h DataFileList.h DataIO.h DataSet.h DataSetList.h DataSet_1D.h DataSet_Coords.h DataSet_Coords_REF.h Dimension.h DispatchObject.h FileIO.h FileName.h FileTypes.h Frame.h MaskToken.h Matrix_3x3.h MetaData.h Molecule.h NameType.h OutputTrajCommon.h Parallel.h ParameterHolders.h ParameterSet.h ParameterTypes.h Range.h ReferenceFrame.h ReplicaDimArray.h Residue.h SymbolExporting.h TextFormat.h Timer.h Topology.h TrajectoryFile.h Trajout_Single.h TypeNameHolder.h Vec3.h -Action_PairDist.o : Action_PairDist.cpp Action.h ActionState.h Action_PairDist.h ArgList.h AssociatedData.h Atom.h AtomExtra.h AtomMask.h AtomType.h BaseIOtype.h Box.h Constants.h CoordinateInfo.h CpptrajFile.h CpptrajStdio.h DataFile.h DataFileList.h DataIO.h DataSet.h DataSetList.h DataSet_1D.h DataSet_Coords.h DataSet_Coords_REF.h DataSet_Mesh.h Dimension.h DispatchObject.h DistRoutines.h FileIO.h FileName.h FileTypes.h Frame.h ImagedAction.h MaskToken.h Matrix_3x3.h MetaData.h Molecule.h NameType.h OnlineVarT.h Parallel.h ParameterHolders.h ParameterSet.h ParameterTypes.h Range.h ReferenceFrame.h ReplicaDimArray.h Residue.h Spline.h StringRoutines.h SymbolExporting.h TextFormat.h Timer.h Topology.h TypeNameHolder.h Vec3.h -Action_Pairwise.o : Action_Pairwise.cpp Action.h ActionFrameCounter.h ActionState.h Action_Pairwise.h ArgList.h ArrayIterator.h AssociatedData.h Atom.h AtomExtra.h AtomMask.h AtomType.h BaseIOtype.h Box.h Constants.h CoordinateInfo.h CpptrajFile.h CpptrajStdio.h DataFile.h DataFileList.h DataIO.h DataSet.h DataSetList.h DataSet_2D.h DataSet_Coords.h DataSet_Coords_REF.h DataSet_MatrixDbl.h Dimension.h DispatchObject.h FileIO.h FileName.h FileTypes.h Frame.h MaskToken.h Matrix.h Matrix_3x3.h MetaData.h Molecule.h NameType.h OutputTrajCommon.h PDBfile.h Parallel.h ParameterHolders.h ParameterSet.h ParameterTypes.h Range.h ReferenceFrame.h ReplicaDimArray.h Residue.h StringRoutines.h SymbolExporting.h TextFormat.h Timer.h Topology.h TrajectoryFile.h Trajout_Single.h TypeNameHolder.h Vec3.h -Action_Principal.o : Action_Principal.cpp Action.h ActionState.h Action_Principal.h ArgList.h ArrayIterator.h AssociatedData.h Atom.h AtomExtra.h AtomMask.h AtomType.h BaseIOtype.h Box.h ComplexArray.h Constants.h CoordinateInfo.h CpptrajFile.h CpptrajStdio.h DataFile.h DataFileList.h DataIO.h DataSet.h DataSetList.h DataSet_1D.h DataSet_Coords.h DataSet_Coords_REF.h DataSet_Mat3x3.h DataSet_Vector.h DataSet_Vector_XYZ.h Dimension.h DispatchObject.h FileIO.h FileName.h FileTypes.h Frame.h MaskToken.h Matrix_3x3.h MetaData.h Molecule.h NameType.h Parallel.h ParameterHolders.h ParameterSet.h ParameterTypes.h Range.h ReferenceFrame.h ReplicaDimArray.h Residue.h SymbolExporting.h TextFormat.h Timer.h Topology.h TypeNameHolder.h Vec3.h -Action_Projection.o : Action_Projection.cpp Action.h ActionFrameCounter.h ActionState.h Action_Projection.h ArgList.h Array1D.h ArrayIterator.h AssociatedData.h Atom.h AtomExtra.h AtomMask.h AtomType.h BaseIOtype.h Box.h Constants.h CoordinateInfo.h CpptrajFile.h CpptrajStdio.h DataFile.h DataFileList.h DataIO.h DataSet.h DataSetList.h DataSet_1D.h DataSet_2D.h DataSet_Coords.h DataSet_Coords_REF.h DataSet_MatrixDbl.h DataSet_Modes.h Dimension.h DispatchObject.h FileIO.h FileName.h FileTypes.h Frame.h MaskToken.h Matrix.h Matrix_3x3.h MetaData.h Molecule.h NameType.h Parallel.h ParameterHolders.h ParameterSet.h ParameterTypes.h Range.h ReferenceFrame.h ReplicaDimArray.h Residue.h StringRoutines.h SymbolExporting.h TextFormat.h Timer.h Topology.h TypeNameHolder.h Vec3.h -Action_Pucker.o : Action_Pucker.cpp Action.h ActionState.h Action_Pucker.h ArgList.h AssociatedData.h Atom.h AtomExtra.h AtomMask.h AtomType.h BaseIOtype.h Box.h Constants.h CoordinateInfo.h CpptrajFile.h CpptrajStdio.h DataFile.h DataFileList.h DataIO.h DataSet.h DataSetList.h DataSet_Coords.h DataSet_Coords_REF.h Dimension.h DispatchObject.h FileIO.h FileName.h FileTypes.h Frame.h MaskToken.h Matrix_3x3.h MetaData.h Molecule.h NameType.h Parallel.h ParameterHolders.h ParameterSet.h ParameterTypes.h Range.h ReferenceFrame.h ReplicaDimArray.h Residue.h SymbolExporting.h TextFormat.h Timer.h Topology.h TorsionRoutines.h TypeNameHolder.h Vec3.h -Action_Radgyr.o : Action_Radgyr.cpp Action.h ActionState.h Action_Radgyr.h ArgList.h AssociatedData.h Atom.h AtomExtra.h AtomMask.h AtomType.h BaseIOtype.h Box.h Constants.h CoordinateInfo.h CpptrajFile.h CpptrajStdio.h DataFile.h DataFileList.h DataIO.h DataSet.h DataSetList.h DataSet_Coords.h DataSet_Coords_REF.h Dimension.h DispatchObject.h FileIO.h FileName.h FileTypes.h Frame.h MaskToken.h Matrix_3x3.h MetaData.h Molecule.h NameType.h Parallel.h ParameterHolders.h ParameterSet.h ParameterTypes.h Range.h ReferenceFrame.h ReplicaDimArray.h Residue.h SymbolExporting.h TextFormat.h Timer.h Topology.h TypeNameHolder.h Vec3.h -Action_Radial.o : Action_Radial.cpp Action.h ActionState.h Action_Radial.h ArgList.h AssociatedData.h Atom.h AtomExtra.h AtomMask.h AtomType.h BaseIOtype.h Box.h Constants.h CoordinateInfo.h CpptrajFile.h CpptrajStdio.h DataFile.h DataFileList.h DataIO.h DataSet.h DataSetList.h DataSet_Coords.h DataSet_Coords_REF.h Dimension.h DispatchObject.h DistRoutines.h FileIO.h FileName.h FileTypes.h Frame.h ImagedAction.h MaskToken.h Matrix_3x3.h MetaData.h Molecule.h NameType.h Parallel.h ParameterHolders.h ParameterSet.h ParameterTypes.h Range.h ReferenceFrame.h ReplicaDimArray.h Residue.h SymbolExporting.h TextFormat.h Timer.h Topology.h TypeNameHolder.h Vec3.h -Action_RandomizeIons.o : Action_RandomizeIons.cpp Action.h ActionState.h Action_RandomizeIons.h ArgList.h AssociatedData.h Atom.h AtomExtra.h AtomMask.h AtomType.h BaseIOtype.h Box.h Constants.h CoordinateInfo.h CpptrajFile.h CpptrajStdio.h DataFile.h DataFileList.h DataIO.h DataSet.h DataSetList.h DataSet_Coords.h DataSet_Coords_REF.h Dimension.h DispatchObject.h DistRoutines.h FileIO.h FileName.h FileTypes.h Frame.h ImagedAction.h MaskToken.h Matrix_3x3.h MetaData.h Molecule.h NameType.h Parallel.h ParameterHolders.h ParameterSet.h ParameterTypes.h Random.h Range.h ReferenceFrame.h ReplicaDimArray.h Residue.h SymbolExporting.h TextFormat.h Timer.h Topology.h TypeNameHolder.h Vec3.h -Action_Remap.o : Action_Remap.cpp Action.h ActionState.h Action_Remap.h ArgList.h AssociatedData.h Atom.h AtomExtra.h AtomMask.h AtomType.h BaseIOtype.h BondSearch.h Box.h Constants.h CoordinateInfo.h CpptrajFile.h CpptrajStdio.h DataFile.h DataFileList.h DataIO.h DataSet.h DataSetList.h DataSet_1D.h DataSet_Coords.h DataSet_Coords_REF.h Dimension.h DispatchObject.h FileIO.h FileName.h FileTypes.h Frame.h MaskToken.h Matrix_3x3.h MetaData.h Molecule.h NameType.h Parallel.h ParameterHolders.h ParameterSet.h ParameterTypes.h ParmFile.h ParmIO.h Range.h ReferenceFrame.h ReplicaDimArray.h Residue.h SymbolExporting.h TextFormat.h Timer.h Topology.h TypeNameHolder.h Vec3.h -Action_ReplicateCell.o : Action_ReplicateCell.cpp Action.h ActionFrameCounter.h ActionState.h Action_ReplicateCell.h ArgList.h AssociatedData.h Atom.h AtomExtra.h AtomMask.h AtomType.h BaseIOtype.h BondSearch.h Box.h Constants.h CoordinateInfo.h CpptrajFile.h CpptrajStdio.h DataFile.h DataFileList.h DataIO.h DataSet.h DataSetList.h DataSet_Coords.h DataSet_Coords_REF.h Dimension.h DispatchObject.h DistRoutines.h FileIO.h FileName.h FileTypes.h Frame.h ImagedAction.h MaskToken.h Matrix_3x3.h MetaData.h Molecule.h NameType.h OutputTrajCommon.h Parallel.h ParameterHolders.h ParameterSet.h ParameterTypes.h ParmFile.h ParmIO.h Range.h ReferenceFrame.h ReplicaDimArray.h Residue.h SymbolExporting.h TextFormat.h Timer.h Topology.h TrajectoryFile.h Trajout_Single.h TypeNameHolder.h Vec3.h -Action_Rmsd.o : Action_Rmsd.cpp Action.h ActionState.h Action_Rmsd.h ArgList.h ArrayIterator.h AssociatedData.h Atom.h AtomExtra.h AtomMask.h AtomType.h BaseIOtype.h Box.h ComplexArray.h Constants.h CoordinateInfo.h CpptrajFile.h CpptrajStdio.h DataFile.h DataFileList.h DataIO.h DataSet.h DataSetList.h DataSet_1D.h DataSet_Coords.h DataSet_Coords_REF.h DataSet_Mesh.h DataSet_Vector.h DataSet_Vector_OXYZ.h DataSet_Vector_XYZ.h Dimension.h DispatchObject.h FileIO.h FileName.h FileTypes.h Frame.h MaskToken.h Matrix_3x3.h MetaData.h Molecule.h NameType.h Parallel.h ParameterHolders.h ParameterSet.h ParameterTypes.h Range.h ReferenceAction.h ReferenceFrame.h ReplicaDimArray.h Residue.h Spline.h StringRoutines.h SymbolExporting.h TextFormat.h Timer.h Topology.h TypeNameHolder.h Vec3.h -Action_Rotate.o : Action_Rotate.cpp Action.h ActionState.h Action_Rotate.h ArgList.h AssociatedData.h Atom.h AtomExtra.h AtomMask.h AtomType.h BaseIOtype.h Box.h Constants.h CoordinateInfo.h CpptrajFile.h CpptrajStdio.h DataFile.h DataFileList.h DataIO.h DataSet.h DataSetList.h DataSet_Coords.h DataSet_Coords_REF.h DataSet_Mat3x3.h Dimension.h DispatchObject.h FileIO.h FileName.h FileTypes.h Frame.h MaskToken.h Matrix_3x3.h MetaData.h Molecule.h NameType.h Parallel.h ParameterHolders.h ParameterSet.h ParameterTypes.h Range.h ReferenceFrame.h ReplicaDimArray.h Residue.h SymbolExporting.h TextFormat.h Timer.h Topology.h TypeNameHolder.h Vec3.h -Action_RunningAvg.o : Action_RunningAvg.cpp Action.h ActionState.h Action_RunningAvg.h ArgList.h AssociatedData.h Atom.h AtomExtra.h AtomMask.h AtomType.h BaseIOtype.h Box.h Constants.h CoordinateInfo.h CpptrajFile.h CpptrajStdio.h DataFile.h DataFileList.h DataIO.h DataSet.h DataSetList.h DataSet_Coords.h DataSet_Coords_REF.h Dimension.h DispatchObject.h FileIO.h FileName.h FileTypes.h Frame.h MaskToken.h Matrix_3x3.h MetaData.h Molecule.h NameType.h Parallel.h ParameterHolders.h ParameterSet.h ParameterTypes.h Range.h ReferenceFrame.h ReplicaDimArray.h Residue.h SymbolExporting.h TextFormat.h Timer.h Topology.h TypeNameHolder.h Vec3.h -Action_STFC_Diffusion.o : Action_STFC_Diffusion.cpp Action.h ActionState.h Action_STFC_Diffusion.h ArgList.h AssociatedData.h Atom.h AtomExtra.h AtomMask.h AtomType.h BaseIOtype.h Box.h Constants.h CoordinateInfo.h CpptrajFile.h CpptrajStdio.h DataFile.h DataFileList.h DataIO.h DataSet.h DataSetList.h DataSet_Coords.h DataSet_Coords_REF.h Dimension.h DispatchObject.h DistRoutines.h FileIO.h FileName.h FileTypes.h Frame.h ImagedAction.h MaskToken.h Matrix_3x3.h MetaData.h Molecule.h NameType.h Parallel.h ParameterHolders.h ParameterSet.h ParameterTypes.h Range.h ReferenceFrame.h ReplicaDimArray.h Residue.h SymbolExporting.h TextFormat.h Timer.h Topology.h TypeNameHolder.h Vec3.h -Action_Scale.o : Action_Scale.cpp Action.h ActionState.h Action_Scale.h ArgList.h AssociatedData.h Atom.h AtomExtra.h AtomMask.h AtomType.h BaseIOtype.h Box.h Constants.h CoordinateInfo.h CpptrajFile.h CpptrajStdio.h DataFile.h DataFileList.h DataIO.h DataSet.h DataSetList.h DataSet_Coords.h DataSet_Coords_REF.h Dimension.h DispatchObject.h FileIO.h FileName.h FileTypes.h Frame.h MaskToken.h Matrix_3x3.h MetaData.h Molecule.h NameType.h Parallel.h ParameterHolders.h ParameterSet.h ParameterTypes.h Range.h ReferenceFrame.h ReplicaDimArray.h Residue.h SymbolExporting.h TextFormat.h Timer.h Topology.h TypeNameHolder.h Vec3.h -Action_SetVelocity.o : Action_SetVelocity.cpp Action.h ActionState.h Action_SetVelocity.h ArgList.h AssociatedData.h Atom.h AtomExtra.h AtomMask.h AtomType.h BaseIOtype.h Box.h Constants.h Constraints.h CoordinateInfo.h CpptrajFile.h CpptrajStdio.h DataFile.h DataFileList.h DataIO.h DataSet.h DataSetList.h DataSet_Coords.h DataSet_Coords_REF.h Dimension.h DispatchObject.h FileIO.h FileName.h FileTypes.h Frame.h MaskToken.h Matrix_3x3.h MetaData.h Molecule.h NameType.h Parallel.h ParameterHolders.h ParameterSet.h ParameterTypes.h Random.h Range.h ReferenceFrame.h ReplicaDimArray.h Residue.h SymbolExporting.h TextFormat.h Timer.h Topology.h TypeNameHolder.h Vec3.h -Action_Spam.o : Action_Spam.cpp Action.h ActionState.h Action_Spam.h ArgList.h AssociatedData.h Atom.h AtomExtra.h AtomMask.h AtomType.h BaseIOtype.h Box.h Constants.h CoordinateInfo.h CpptrajFile.h CpptrajStdio.h DataFile.h DataFileList.h DataIO.h DataSet.h DataSetList.h DataSet_1D.h DataSet_Coords.h DataSet_Coords_REF.h DataSet_Mesh.h DataSet_double.h Dimension.h DispatchObject.h DistRoutines.h FileIO.h FileName.h FileTypes.h Frame.h HistBin.h ImagedAction.h KDE.h MaskToken.h Matrix_3x3.h MetaData.h Molecule.h NameType.h OnlineVarT.h PairList.h Parallel.h ParameterHolders.h ParameterSet.h ParameterTypes.h Range.h ReferenceFrame.h ReplicaDimArray.h Residue.h Spline.h StringRoutines.h SymbolExporting.h TextFormat.h Timer.h Topology.h TypeNameHolder.h Vec3.h -Action_Strip.o : Action_Strip.cpp Action.h ActionState.h Action_Strip.h ArgList.h AssociatedData.h Atom.h AtomExtra.h AtomMask.h AtomType.h BaseIOtype.h BondSearch.h Box.h Constants.h CoordinateInfo.h CpptrajFile.h CpptrajStdio.h DataFile.h DataFileList.h DataIO.h DataSet.h DataSetList.h DataSet_Coords.h DataSet_Coords_REF.h Dimension.h DispatchObject.h FileIO.h FileName.h FileTypes.h Frame.h MaskToken.h Matrix_3x3.h MetaData.h Molecule.h NameType.h Parallel.h ParameterHolders.h ParameterSet.h ParameterTypes.h ParmFile.h ParmIO.h Range.h ReferenceFrame.h ReplicaDimArray.h Residue.h SymbolExporting.h TextFormat.h Timer.h Topology.h TypeNameHolder.h Vec3.h -Action_Surf.o : Action_Surf.cpp Action.h ActionState.h Action_Surf.h ArgList.h AssociatedData.h Atom.h AtomExtra.h AtomMask.h AtomType.h BaseIOtype.h Box.h CharMask.h Constants.h CoordinateInfo.h CpptrajFile.h CpptrajStdio.h DataFile.h DataFileList.h DataIO.h DataSet.h DataSetList.h DataSet_Coords.h DataSet_Coords_REF.h Dimension.h DispatchObject.h DistRoutines.h FileIO.h FileName.h FileTypes.h Frame.h MaskToken.h Matrix_3x3.h MetaData.h Molecule.h NameType.h Parallel.h ParameterHolders.h ParameterSet.h ParameterTypes.h Range.h ReferenceFrame.h ReplicaDimArray.h Residue.h SymbolExporting.h TextFormat.h Timer.h Topology.h TypeNameHolder.h Vec3.h -Action_SymmetricRmsd.o : Action_SymmetricRmsd.cpp Action.h ActionState.h Action_SymmetricRmsd.h ArgList.h ArrayIterator.h AssociatedData.h Atom.h AtomExtra.h AtomMap.h AtomMask.h AtomType.h BaseIOtype.h Box.h Constants.h CoordinateInfo.h CpptrajFile.h CpptrajStdio.h DataFile.h DataFileList.h DataIO.h DataSet.h DataSetList.h DataSet_Coords.h DataSet_Coords_REF.h Dimension.h DispatchObject.h DistRoutines.h FileIO.h FileName.h FileTypes.h Frame.h Hungarian.h MapAtom.h MaskToken.h Matrix.h Matrix_3x3.h MetaData.h Molecule.h NameType.h Parallel.h ParameterHolders.h ParameterSet.h ParameterTypes.h Range.h ReferenceAction.h ReferenceFrame.h ReplicaDimArray.h Residue.h SymbolExporting.h SymmetricRmsdCalc.h TextFormat.h Timer.h Topology.h TypeNameHolder.h Vec3.h -Action_Temperature.o : Action_Temperature.cpp Action.h ActionState.h Action_Temperature.h ArgList.h AssociatedData.h Atom.h AtomExtra.h AtomMask.h AtomType.h BaseIOtype.h Box.h Constants.h Constraints.h CoordinateInfo.h CpptrajFile.h CpptrajStdio.h DataFile.h DataFileList.h DataIO.h DataSet.h DataSetList.h DataSet_Coords.h DataSet_Coords_REF.h Dimension.h DispatchObject.h FileIO.h FileName.h FileTypes.h Frame.h MaskToken.h Matrix_3x3.h MetaData.h Molecule.h NameType.h Parallel.h ParameterHolders.h ParameterSet.h ParameterTypes.h Range.h ReferenceFrame.h ReplicaDimArray.h Residue.h SymbolExporting.h TextFormat.h Timer.h Topology.h TypeNameHolder.h Vec3.h -Action_Time.o : Action_Time.cpp Action.h ActionState.h Action_Time.h ArgList.h AssociatedData.h Atom.h AtomExtra.h AtomMask.h AtomType.h BaseIOtype.h Box.h Constants.h CoordinateInfo.h CpptrajFile.h CpptrajStdio.h DataFile.h DataFileList.h DataIO.h DataSet.h DataSetList.h DataSet_Coords.h DataSet_Coords_REF.h Dimension.h DispatchObject.h FileIO.h FileName.h FileTypes.h Frame.h MaskToken.h Matrix_3x3.h MetaData.h Molecule.h NameType.h Parallel.h ParameterHolders.h ParameterSet.h ParameterTypes.h Range.h ReferenceFrame.h ReplicaDimArray.h Residue.h SymbolExporting.h TextFormat.h Timer.h Topology.h TypeNameHolder.h Vec3.h -Action_Translate.o : Action_Translate.cpp Action.h ActionState.h Action_Translate.h ArgList.h AssociatedData.h Atom.h AtomExtra.h AtomMask.h AtomType.h BaseIOtype.h Box.h Constants.h CoordinateInfo.h CpptrajFile.h CpptrajStdio.h DataFile.h DataFileList.h DataIO.h DataSet.h DataSetList.h DataSet_Coords.h DataSet_Coords_REF.h Dimension.h DispatchObject.h FileIO.h FileName.h FileTypes.h Frame.h MaskToken.h Matrix_3x3.h MetaData.h Molecule.h NameType.h Parallel.h ParameterHolders.h ParameterSet.h ParameterTypes.h Range.h ReferenceFrame.h ReplicaDimArray.h Residue.h SymbolExporting.h TextFormat.h Timer.h Topology.h TypeNameHolder.h Vec3.h -Action_Unstrip.o : Action_Unstrip.cpp Action.h ActionState.h Action_Unstrip.h ArgList.h AssociatedData.h Atom.h AtomExtra.h AtomMask.h AtomType.h BaseIOtype.h Box.h Constants.h CoordinateInfo.h CpptrajFile.h CpptrajStdio.h DataFile.h DataFileList.h DataIO.h DataSet.h DataSetList.h DataSet_Coords.h DataSet_Coords_REF.h Dimension.h DispatchObject.h FileIO.h FileName.h FileTypes.h Frame.h MaskToken.h Matrix_3x3.h MetaData.h Molecule.h NameType.h Parallel.h ParameterHolders.h ParameterSet.h ParameterTypes.h Range.h ReferenceFrame.h ReplicaDimArray.h Residue.h SymbolExporting.h TextFormat.h Timer.h Topology.h TypeNameHolder.h Vec3.h -Action_Unwrap.o : Action_Unwrap.cpp Action.h ActionState.h Action_Unwrap.h ArgList.h AssociatedData.h Atom.h AtomExtra.h AtomMask.h AtomType.h BaseIOtype.h Box.h Constants.h CoordinateInfo.h CpptrajFile.h CpptrajStdio.h DataFile.h DataFileList.h DataIO.h DataSet.h DataSetList.h DataSet_Coords.h DataSet_Coords_REF.h Dimension.h DispatchObject.h FileIO.h FileName.h FileTypes.h Frame.h ImageRoutines.h ImageTypes.h MaskToken.h Matrix_3x3.h MetaData.h Molecule.h NameType.h Parallel.h ParameterHolders.h ParameterSet.h ParameterTypes.h Range.h ReferenceFrame.h ReplicaDimArray.h Residue.h SymbolExporting.h TextFormat.h Timer.h Topology.h TypeNameHolder.h Vec3.h -Action_Vector.o : Action_Vector.cpp Action.h ActionState.h Action_Vector.h ArgList.h ArrayIterator.h AssociatedData.h Atom.h AtomExtra.h AtomMask.h AtomType.h BaseIOtype.h Box.h ComplexArray.h Constants.h CoordinateInfo.h CpptrajFile.h CpptrajStdio.h DataFile.h DataFileList.h DataIO.h DataSet.h DataSetList.h DataSet_1D.h DataSet_Coords.h DataSet_Coords_REF.h DataSet_Vector.h DataSet_Vector_OXYZ.h Dimension.h DispatchObject.h DistRoutines.h FileIO.h FileName.h FileTypes.h Frame.h MaskToken.h Matrix_3x3.h MetaData.h Molecule.h NameType.h Parallel.h ParameterHolders.h ParameterSet.h ParameterTypes.h Range.h ReferenceFrame.h ReplicaDimArray.h Residue.h SymbolExporting.h TextFormat.h Timer.h Topology.h TypeNameHolder.h Vec3.h -Action_VelocityAutoCorr.o : Action_VelocityAutoCorr.cpp Action.h ActionState.h Action_VelocityAutoCorr.h ArgList.h ArrayIterator.h AssociatedData.h Atom.h AtomExtra.h AtomMask.h AtomType.h BaseIOtype.h Box.h ComplexArray.h Constants.h CoordinateInfo.h Corr.h CpptrajFile.h CpptrajStdio.h DataFile.h DataFileList.h DataIO.h DataSet.h DataSetList.h DataSet_1D.h DataSet_Coords.h DataSet_Coords_REF.h DataSet_Vector.h DataSet_Vector_XYZ.h DataSet_double.h Dimension.h DispatchObject.h FileIO.h FileName.h FileTypes.h Frame.h MaskToken.h Matrix_3x3.h MetaData.h Molecule.h NameType.h Parallel.h ParameterHolders.h ParameterSet.h ParameterTypes.h ProgressBar.h PubFFT.h Range.h ReferenceFrame.h ReplicaDimArray.h Residue.h SymbolExporting.h TextFormat.h Timer.h Topology.h TypeNameHolder.h Vec3.h -Action_Volmap.o : Action_Volmap.cpp Action.h ActionState.h Action_Volmap.h ArgList.h ArrayIterator.h AssociatedData.h Atom.h AtomExtra.h AtomMask.h AtomType.h BaseIOtype.h Box.h Constants.h CoordinateInfo.h CpptrajFile.h CpptrajStdio.h DataFile.h DataFileList.h DataIO.h DataSet.h DataSetList.h DataSet_3D.h DataSet_Coords.h DataSet_Coords_REF.h DataSet_GridFlt.h Dimension.h DispatchObject.h FileIO.h FileName.h FileTypes.h Frame.h Grid.h GridBin.h MaskToken.h Matrix_3x3.h MetaData.h Molecule.h NameType.h Parallel.h ParameterHolders.h ParameterSet.h ParameterTypes.h Range.h ReferenceFrame.h ReplicaDimArray.h Residue.h SymbolExporting.h TextFormat.h Timer.h Topology.h TypeNameHolder.h Vec3.h -Action_Volume.o : Action_Volume.cpp Action.h ActionState.h Action_Volume.h ArgList.h AssociatedData.h Atom.h AtomExtra.h AtomMask.h AtomType.h BaseIOtype.h Box.h Constants.h CoordinateInfo.h CpptrajFile.h CpptrajStdio.h DataFile.h DataFileList.h DataIO.h DataSet.h DataSetList.h DataSet_1D.h DataSet_Coords.h DataSet_Coords_REF.h Dimension.h DispatchObject.h DistRoutines.h FileIO.h FileName.h FileTypes.h Frame.h ImagedAction.h MaskToken.h Matrix_3x3.h MetaData.h Molecule.h NameType.h Parallel.h ParameterHolders.h ParameterSet.h ParameterTypes.h Range.h ReferenceFrame.h ReplicaDimArray.h Residue.h SymbolExporting.h TextFormat.h Timer.h Topology.h TypeNameHolder.h Vec3.h -Action_Watershell.o : Action_Watershell.cpp Action.h ActionState.h Action_Watershell.h ArgList.h AssociatedData.h Atom.h AtomExtra.h AtomMask.h AtomType.h BaseIOtype.h Box.h CharMask.h Constants.h CoordinateInfo.h CpptrajFile.h CpptrajStdio.h DataFile.h DataFileList.h DataIO.h DataSet.h DataSetList.h DataSet_Coords.h DataSet_Coords_REF.h Dimension.h DispatchObject.h DistRoutines.h FileIO.h FileName.h FileTypes.h Frame.h ImageRoutines.h ImageTypes.h ImagedAction.h MaskToken.h Matrix_3x3.h MetaData.h Molecule.h NameType.h Parallel.h ParameterHolders.h ParameterSet.h ParameterTypes.h Range.h ReferenceFrame.h ReplicaDimArray.h Residue.h SymbolExporting.h TextFormat.h Timer.h Topology.h TypeNameHolder.h Vec3.h -Action_XtalSymm.o : Action_XtalSymm.cpp Action.h ActionState.h Action_XtalSymm.h ArgList.h ArrayIterator.h AssociatedData.h Atom.h AtomExtra.h AtomMask.h AtomType.h BaseIOtype.h Box.h Constants.h CoordinateInfo.h CpptrajFile.h CpptrajStdio.h DataFile.h DataFileList.h DataIO.h DataSet.h DataSetList.h DataSet_Coords.h DataSet_Coords_REF.h Dimension.h DispatchObject.h FileIO.h FileName.h FileTypes.h Frame.h MaskToken.h Matrix.h Matrix_3x3.h MetaData.h Molecule.h NameType.h Parallel.h ParameterHolders.h ParameterSet.h ParameterTypes.h Range.h ReferenceFrame.h ReplicaDimArray.h Residue.h SpaceGroup.h SymbolExporting.h TextFormat.h Timer.h Topology.h TypeNameHolder.h Vec3.h -AnalysisList.o : AnalysisList.cpp ActionState.h Analysis.h AnalysisList.h AnalysisState.h ArgList.h AssociatedData.h Atom.h AtomExtra.h AtomMask.h AtomType.h BaseIOtype.h Box.h Constants.h CoordinateInfo.h CpptrajFile.h CpptrajStdio.h DataFile.h DataFileList.h DataIO.h DataSet.h DataSetList.h DataSet_Coords.h DataSet_Coords_REF.h Dimension.h DispatchObject.h FileIO.h FileName.h FileTypes.h Frame.h MaskToken.h Matrix_3x3.h MetaData.h Molecule.h NameType.h Parallel.h ParameterHolders.h ParameterSet.h ParameterTypes.h Range.h ReferenceFrame.h ReplicaDimArray.h Residue.h SymbolExporting.h TextFormat.h Timer.h Topology.h TypeNameHolder.h Vec3.h -Analysis_AmdBias.o : Analysis_AmdBias.cpp ActionState.h Analysis.h AnalysisState.h Analysis_AmdBias.h ArgList.h AssociatedData.h Atom.h AtomExtra.h AtomMask.h AtomType.h BaseIOtype.h Box.h Constants.h CoordinateInfo.h CpptrajFile.h CpptrajStdio.h DataFile.h DataFileList.h DataIO.h DataSet.h DataSetList.h DataSet_1D.h DataSet_Coords.h DataSet_Coords_REF.h DataSet_double.h Dimension.h DispatchObject.h FileIO.h FileName.h FileTypes.h Frame.h MaskToken.h Matrix_3x3.h MetaData.h Molecule.h NameType.h Parallel.h ParameterHolders.h ParameterSet.h ParameterTypes.h Range.h ReferenceFrame.h ReplicaDimArray.h Residue.h SymbolExporting.h TextFormat.h Timer.h Topology.h TypeNameHolder.h Vec3.h -Analysis_AutoCorr.o : Analysis_AutoCorr.cpp ActionState.h Analysis.h AnalysisState.h Analysis_AutoCorr.h ArgList.h ArrayIterator.h AssociatedData.h Atom.h AtomExtra.h AtomMask.h AtomType.h BaseIOtype.h Box.h ComplexArray.h Constants.h CoordinateInfo.h CpptrajFile.h CpptrajStdio.h DataFile.h DataFileList.h DataIO.h DataSet.h DataSetList.h DataSet_1D.h DataSet_Coords.h DataSet_Coords_REF.h DataSet_Vector.h Dimension.h DispatchObject.h FileIO.h FileName.h FileTypes.h Frame.h MaskToken.h Matrix_3x3.h MetaData.h Molecule.h NameType.h Parallel.h ParameterHolders.h ParameterSet.h ParameterTypes.h Range.h ReferenceFrame.h ReplicaDimArray.h Residue.h SymbolExporting.h TextFormat.h Timer.h Topology.h TypeNameHolder.h Vec3.h -Analysis_Average.o : Analysis_Average.cpp ActionState.h Analysis.h AnalysisState.h Analysis_Average.h ArgList.h Array1D.h AssociatedData.h Atom.h AtomExtra.h AtomMask.h AtomType.h BaseIOtype.h Box.h Constants.h CoordinateInfo.h CpptrajFile.h CpptrajStdio.h DataFile.h DataFileList.h DataIO.h DataSet.h DataSetList.h DataSet_1D.h DataSet_Coords.h DataSet_Coords_REF.h Dimension.h DispatchObject.h FileIO.h FileName.h FileTypes.h Frame.h MaskToken.h Matrix_3x3.h MetaData.h Molecule.h NameType.h Parallel.h ParameterHolders.h ParameterSet.h ParameterTypes.h Range.h ReferenceFrame.h ReplicaDimArray.h Residue.h SymbolExporting.h TextFormat.h Timer.h Topology.h TypeNameHolder.h Vec3.h -Analysis_Clustering.o : Analysis_Clustering.cpp ActionFrameCounter.h ActionState.h Analysis.h AnalysisState.h Analysis_Clustering.h ArgList.h ArrayIterator.h AssociatedData.h Atom.h AtomExtra.h AtomMap.h AtomMask.h AtomType.h BaseIOtype.h Box.h ClusterDist.h ClusterList.h ClusterMatrix.h ClusterNode.h ClusterSieve.h Cluster_DBSCAN.h Cluster_DPeaks.h Cluster_HierAgglo.h Cluster_Kmeans.h Cluster_ReadInfo.h Constants.h CoordinateInfo.h CpptrajFile.h CpptrajStdio.h DataFile.h DataFileList.h DataIO.h DataSet.h DataSetList.h DataSet_1D.h DataSet_Cmatrix.h DataSet_Coords.h DataSet_Coords_REF.h DataSet_float.h DataSet_integer.h Dimension.h DispatchObject.h FileIO.h FileName.h FileTypes.h Frame.h Hungarian.h MapAtom.h MaskToken.h Matrix.h Matrix_3x3.h MetaData.h Molecule.h NameType.h OutputTrajCommon.h Parallel.h ParameterHolders.h ParameterSet.h ParameterTypes.h Random.h Range.h ReferenceFrame.h ReplicaDimArray.h Residue.h StringRoutines.h SymbolExporting.h SymmetricRmsdCalc.h TextFormat.h Timer.h Topology.h TrajectoryFile.h Trajout_Single.h TypeNameHolder.h Vec3.h -Analysis_ConstantPHStats.o : Analysis_ConstantPHStats.cpp ActionState.h Analysis.h AnalysisState.h Analysis_ConstantPHStats.h ArgList.h AssociatedData.h Atom.h AtomExtra.h AtomMask.h AtomType.h BaseIOtype.h Box.h Constants.h CoordinateInfo.h Cph.h CpptrajFile.h CpptrajStdio.h DataFile.h DataFileList.h DataIO.h DataSet.h DataSetList.h DataSet_1D.h DataSet_Coords.h DataSet_Coords_REF.h DataSet_Mesh.h DataSet_pH.h Dimension.h DispatchObject.h FileIO.h FileName.h FileTypes.h Frame.h MaskToken.h Matrix_3x3.h MetaData.h Molecule.h NameType.h Parallel.h ParameterHolders.h ParameterSet.h ParameterTypes.h Range.h ReferenceFrame.h ReplicaDimArray.h Residue.h Spline.h StringRoutines.h SymbolExporting.h TextFormat.h Timer.h Topology.h TypeNameHolder.h Vec3.h -Analysis_Corr.o : Analysis_Corr.cpp ActionState.h Analysis.h AnalysisState.h Analysis_Corr.h ArgList.h ArrayIterator.h AssociatedData.h Atom.h AtomExtra.h AtomMask.h AtomType.h BaseIOtype.h Box.h ComplexArray.h Constants.h CoordinateInfo.h CpptrajFile.h CpptrajStdio.h DataFile.h DataFileList.h DataIO.h DataSet.h DataSetList.h DataSet_1D.h DataSet_Coords.h DataSet_Coords_REF.h DataSet_Vector.h Dimension.h DispatchObject.h FileIO.h FileName.h FileTypes.h Frame.h MaskToken.h Matrix_3x3.h MetaData.h Molecule.h NameType.h Parallel.h ParameterHolders.h ParameterSet.h ParameterTypes.h Range.h ReferenceFrame.h ReplicaDimArray.h Residue.h SymbolExporting.h TextFormat.h Timer.h Topology.h TypeNameHolder.h Vec3.h -Analysis_CrankShaft.o : Analysis_CrankShaft.cpp ActionState.h Analysis.h AnalysisState.h Analysis_CrankShaft.h Analysis_Statistics.h ArgList.h Array1D.h AssociatedData.h Atom.h AtomExtra.h AtomMask.h AtomType.h BaseIOtype.h Box.h Constants.h CoordinateInfo.h CpptrajFile.h CpptrajStdio.h DataFile.h DataFileList.h DataIO.h DataSet.h DataSetList.h DataSet_1D.h DataSet_Coords.h DataSet_Coords_REF.h DataSet_float.h DataSet_integer.h DataSet_string.h Dimension.h DispatchObject.h FileIO.h FileName.h FileTypes.h Frame.h MaskToken.h Matrix_3x3.h MetaData.h Molecule.h NameType.h Parallel.h ParameterHolders.h ParameterSet.h ParameterTypes.h Range.h ReferenceFrame.h ReplicaDimArray.h Residue.h SymbolExporting.h TextFormat.h Timer.h Topology.h TypeNameHolder.h Vec3.h -Analysis_CrdFluct.o : Analysis_CrdFluct.cpp ActionState.h Analysis.h AnalysisState.h Analysis_CrdFluct.h ArgList.h AssociatedData.h Atom.h AtomExtra.h AtomMask.h AtomType.h BaseIOtype.h Box.h Constants.h CoordinateInfo.h CpptrajFile.h CpptrajStdio.h DataFile.h DataFileList.h DataIO.h DataSet.h DataSetList.h DataSet_Coords.h DataSet_Coords_REF.h Dimension.h DispatchObject.h FileIO.h FileName.h FileTypes.h Frame.h MaskToken.h Matrix_3x3.h MetaData.h Molecule.h NameType.h Parallel.h ParameterHolders.h ParameterSet.h ParameterTypes.h Range.h ReferenceFrame.h ReplicaDimArray.h Residue.h StringRoutines.h SymbolExporting.h TextFormat.h Timer.h Topology.h TypeNameHolder.h Vec3.h -Analysis_CrossCorr.o : Analysis_CrossCorr.cpp ActionState.h Analysis.h AnalysisState.h Analysis_CrossCorr.h ArgList.h Array1D.h ArrayIterator.h AssociatedData.h Atom.h AtomExtra.h AtomMask.h AtomType.h BaseIOtype.h Box.h Constants.h CoordinateInfo.h CpptrajFile.h CpptrajStdio.h DataFile.h DataFileList.h DataIO.h DataSet.h DataSetList.h DataSet_1D.h DataSet_2D.h DataSet_Coords.h DataSet_Coords_REF.h DataSet_MatrixFlt.h Dimension.h DispatchObject.h FileIO.h FileName.h FileTypes.h Frame.h MaskToken.h Matrix.h Matrix_3x3.h MetaData.h Molecule.h NameType.h Parallel.h ParameterHolders.h ParameterSet.h ParameterTypes.h Range.h ReferenceFrame.h ReplicaDimArray.h Residue.h StringRoutines.h SymbolExporting.h TextFormat.h Timer.h Topology.h TypeNameHolder.h Vec3.h -Analysis_CurveFit.o : Analysis_CurveFit.cpp ActionState.h Analysis.h AnalysisState.h Analysis_CurveFit.h ArgList.h AssociatedData.h Atom.h AtomExtra.h AtomMask.h AtomType.h BaseIOtype.h Box.h Constants.h CoordinateInfo.h CpptrajFile.h CpptrajStdio.h CurveFit.h DataFile.h DataFileList.h DataIO.h DataSet.h DataSetList.h DataSet_1D.h DataSet_Coords.h DataSet_Coords_REF.h DataSet_Mesh.h Dimension.h DispatchObject.h FileIO.h FileName.h FileTypes.h Frame.h MaskToken.h Matrix_3x3.h MetaData.h Molecule.h NameType.h Parallel.h ParameterHolders.h ParameterSet.h ParameterTypes.h RPNcalc.h Range.h ReferenceFrame.h ReplicaDimArray.h Residue.h Spline.h StringRoutines.h SymbolExporting.h TextFormat.h Timer.h Topology.h TypeNameHolder.h Vec3.h -Analysis_Divergence.o : Analysis_Divergence.cpp ActionState.h Analysis.h AnalysisState.h Analysis_Divergence.h ArgList.h AssociatedData.h Atom.h AtomExtra.h AtomMask.h AtomType.h BaseIOtype.h Box.h Constants.h CoordinateInfo.h CpptrajFile.h CpptrajStdio.h DataFile.h DataFileList.h DataIO.h DataSet.h DataSetList.h DataSet_1D.h DataSet_Coords.h DataSet_Coords_REF.h Dimension.h DispatchObject.h FileIO.h FileName.h FileTypes.h Frame.h MaskToken.h Matrix_3x3.h MetaData.h Molecule.h NameType.h Parallel.h ParameterHolders.h ParameterSet.h ParameterTypes.h Range.h ReferenceFrame.h ReplicaDimArray.h Residue.h SymbolExporting.h TextFormat.h Timer.h Topology.h TypeNameHolder.h Vec3.h -Analysis_FFT.o : Analysis_FFT.cpp ActionState.h Analysis.h AnalysisState.h Analysis_FFT.h ArgList.h Array1D.h ArrayIterator.h AssociatedData.h Atom.h AtomExtra.h AtomMask.h AtomType.h BaseIOtype.h Box.h ComplexArray.h Constants.h CoordinateInfo.h CpptrajFile.h CpptrajStdio.h DataFile.h DataFileList.h DataIO.h DataSet.h DataSetList.h DataSet_1D.h DataSet_Coords.h DataSet_Coords_REF.h Dimension.h DispatchObject.h FileIO.h FileName.h FileTypes.h Frame.h MaskToken.h Matrix_3x3.h MetaData.h Molecule.h NameType.h Parallel.h ParameterHolders.h ParameterSet.h ParameterTypes.h PubFFT.h Range.h ReferenceFrame.h ReplicaDimArray.h Residue.h SymbolExporting.h TextFormat.h Timer.h Topology.h TypeNameHolder.h Vec3.h -Analysis_HausdorffDistance.o : Analysis_HausdorffDistance.cpp ActionState.h Analysis.h AnalysisState.h Analysis_HausdorffDistance.h ArgList.h ArrayIterator.h AssociatedData.h Atom.h AtomExtra.h AtomMask.h AtomType.h BaseIOtype.h Box.h Constants.h CoordinateInfo.h CpptrajFile.h CpptrajStdio.h DataFile.h DataFileList.h DataIO.h DataSet.h DataSetList.h DataSet_2D.h DataSet_Coords.h DataSet_Coords_REF.h DataSet_MatrixFlt.h Dimension.h DispatchObject.h FileIO.h FileName.h FileTypes.h Frame.h MaskToken.h Matrix.h Matrix_3x3.h MetaData.h Molecule.h NameType.h Parallel.h ParameterHolders.h ParameterSet.h ParameterTypes.h Range.h ReferenceFrame.h ReplicaDimArray.h Residue.h SymbolExporting.h TextFormat.h Timer.h Topology.h TypeNameHolder.h Vec3.h -Analysis_Hist.o : Analysis_Hist.cpp ActionFrameCounter.h ActionState.h Analysis.h AnalysisState.h Analysis_Hist.h ArgList.h ArrayIterator.h AssociatedData.h Atom.h AtomExtra.h AtomMask.h AtomType.h BaseIOtype.h BondSearch.h Box.h Constants.h CoordinateInfo.h CpptrajFile.h CpptrajStdio.h DataFile.h DataFileList.h DataIO.h DataSet.h DataSetList.h DataSet_1D.h DataSet_2D.h DataSet_3D.h DataSet_Coords.h DataSet_Coords_REF.h DataSet_GridFlt.h DataSet_MatrixDbl.h DataSet_double.h Dimension.h DispatchObject.h FileIO.h FileName.h FileTypes.h Frame.h Grid.h GridBin.h HistBin.h MaskToken.h Matrix.h Matrix_3x3.h MetaData.h Molecule.h NameType.h OutputTrajCommon.h Parallel.h ParameterHolders.h ParameterSet.h ParameterTypes.h ParmFile.h ParmIO.h Range.h ReferenceFrame.h ReplicaDimArray.h Residue.h StringRoutines.h SymbolExporting.h TextFormat.h Timer.h Topology.h TrajectoryFile.h Trajout_Single.h TypeNameHolder.h Vec3.h -Analysis_IRED.o : Analysis_IRED.cpp ActionState.h Analysis.h AnalysisState.h Analysis_IRED.h ArgList.h ArrayIterator.h AssociatedData.h Atom.h AtomExtra.h AtomMask.h AtomType.h BaseIOtype.h Box.h ComplexArray.h Constants.h CoordinateInfo.h Corr.h CpptrajFile.h CpptrajStdio.h DataFile.h DataFileList.h DataIO.h DataSet.h DataSetList.h DataSet_1D.h DataSet_2D.h DataSet_Coords.h DataSet_Coords_REF.h DataSet_MatrixDbl.h DataSet_Modes.h DataSet_Vector.h DataSet_double.h Dimension.h DispatchObject.h FileIO.h FileName.h FileTypes.h Frame.h MaskToken.h Matrix.h Matrix_3x3.h MetaData.h Molecule.h NameType.h Parallel.h ParameterHolders.h ParameterSet.h ParameterTypes.h PubFFT.h Range.h ReferenceFrame.h ReplicaDimArray.h Residue.h SymbolExporting.h TextFormat.h Timer.h Topology.h TypeNameHolder.h Vec3.h -Analysis_Integrate.o : Analysis_Integrate.cpp ActionState.h Analysis.h AnalysisState.h Analysis_Integrate.h ArgList.h Array1D.h AssociatedData.h Atom.h AtomExtra.h AtomMask.h AtomType.h BaseIOtype.h Box.h Constants.h CoordinateInfo.h CpptrajFile.h CpptrajStdio.h DataFile.h DataFileList.h DataIO.h DataSet.h DataSetList.h DataSet_1D.h DataSet_Coords.h DataSet_Coords_REF.h DataSet_Mesh.h Dimension.h DispatchObject.h FileIO.h FileName.h FileTypes.h Frame.h MaskToken.h Matrix_3x3.h MetaData.h Molecule.h NameType.h Parallel.h ParameterHolders.h ParameterSet.h ParameterTypes.h Range.h ReferenceFrame.h ReplicaDimArray.h Residue.h Spline.h SymbolExporting.h TextFormat.h Timer.h Topology.h TypeNameHolder.h Vec3.h -Analysis_KDE.o : Analysis_KDE.cpp ActionState.h Analysis.h AnalysisState.h Analysis_KDE.h ArgList.h AssociatedData.h Atom.h AtomExtra.h AtomMask.h AtomType.h BaseIOtype.h Box.h Constants.h CoordinateInfo.h CpptrajFile.h CpptrajStdio.h DataFile.h DataFileList.h DataIO.h DataSet.h DataSetList.h DataSet_1D.h DataSet_Coords.h DataSet_Coords_REF.h DataSet_double.h Dimension.h DispatchObject.h FileIO.h FileName.h FileTypes.h Frame.h HistBin.h MaskToken.h Matrix_3x3.h MetaData.h Molecule.h NameType.h Parallel.h ParameterHolders.h ParameterSet.h ParameterTypes.h Range.h ReferenceFrame.h ReplicaDimArray.h Residue.h SymbolExporting.h TextFormat.h Timer.h Topology.h TypeNameHolder.h Vec3.h -Analysis_Lifetime.o : Analysis_Lifetime.cpp ActionState.h Analysis.h AnalysisState.h Analysis_Lifetime.h ArgList.h Array1D.h AssociatedData.h Atom.h AtomExtra.h AtomMask.h AtomType.h BaseIOtype.h Box.h Constants.h CoordinateInfo.h CpptrajFile.h CpptrajStdio.h DataFile.h DataFileList.h DataIO.h DataSet.h DataSetList.h DataSet_1D.h DataSet_Coords.h DataSet_Coords_REF.h Dimension.h DispatchObject.h FileIO.h FileName.h FileTypes.h Frame.h MaskToken.h Matrix_3x3.h MetaData.h Molecule.h NameType.h Parallel.h ParameterHolders.h ParameterSet.h ParameterTypes.h ProgressBar.h Range.h ReferenceFrame.h ReplicaDimArray.h Residue.h StringRoutines.h SymbolExporting.h TextFormat.h Timer.h Topology.h TypeNameHolder.h Vec3.h -Analysis_LowestCurve.o : Analysis_LowestCurve.cpp ActionState.h Analysis.h AnalysisState.h Analysis_LowestCurve.h ArgList.h Array1D.h AssociatedData.h Atom.h AtomExtra.h AtomMask.h AtomType.h BaseIOtype.h Box.h Constants.h CoordinateInfo.h CpptrajFile.h CpptrajStdio.h DataFile.h DataFileList.h DataIO.h DataSet.h DataSetList.h DataSet_1D.h DataSet_Coords.h DataSet_Coords_REF.h Dimension.h DispatchObject.h FileIO.h FileName.h FileTypes.h Frame.h HistBin.h MaskToken.h Matrix_3x3.h MetaData.h Molecule.h NameType.h Parallel.h ParameterHolders.h ParameterSet.h ParameterTypes.h Range.h ReferenceFrame.h ReplicaDimArray.h Residue.h SymbolExporting.h TextFormat.h Timer.h Topology.h TypeNameHolder.h Vec3.h -Analysis_Matrix.o : Analysis_Matrix.cpp ActionState.h Analysis.h AnalysisState.h Analysis_Matrix.h ArgList.h ArrayIterator.h AssociatedData.h Atom.h AtomExtra.h AtomMask.h AtomType.h BaseIOtype.h Box.h Constants.h CoordinateInfo.h CpptrajFile.h CpptrajStdio.h DataFile.h DataFileList.h DataIO.h DataSet.h DataSetList.h DataSet_2D.h DataSet_Coords.h DataSet_Coords_REF.h DataSet_MatrixDbl.h DataSet_Modes.h Dimension.h DispatchObject.h FileIO.h FileName.h FileTypes.h Frame.h MaskToken.h Matrix.h Matrix_3x3.h MetaData.h Molecule.h NameType.h Parallel.h ParameterHolders.h ParameterSet.h ParameterTypes.h Range.h ReferenceFrame.h ReplicaDimArray.h Residue.h SymbolExporting.h TextFormat.h Timer.h Topology.h TypeNameHolder.h Vec3.h -Analysis_MeltCurve.o : Analysis_MeltCurve.cpp ActionState.h Analysis.h AnalysisState.h Analysis_MeltCurve.h ArgList.h Array1D.h AssociatedData.h Atom.h AtomExtra.h AtomMask.h AtomType.h BaseIOtype.h Box.h Constants.h CoordinateInfo.h CpptrajFile.h CpptrajStdio.h DataFile.h DataFileList.h DataIO.h DataSet.h DataSetList.h DataSet_1D.h DataSet_Coords.h DataSet_Coords_REF.h Dimension.h DispatchObject.h FileIO.h FileName.h FileTypes.h Frame.h MaskToken.h Matrix_3x3.h MetaData.h Molecule.h NameType.h Parallel.h ParameterHolders.h ParameterSet.h ParameterTypes.h Range.h ReferenceFrame.h ReplicaDimArray.h Residue.h SymbolExporting.h TextFormat.h Timer.h Topology.h TypeNameHolder.h Vec3.h -Analysis_Modes.o : Analysis_Modes.cpp ActionFrameCounter.h ActionState.h Analysis.h AnalysisState.h Analysis_Modes.h ArgList.h ArrayIterator.h AssociatedData.h Atom.h AtomExtra.h AtomMask.h AtomType.h BaseIOtype.h Box.h Constants.h CoordinateInfo.h CpptrajFile.h CpptrajStdio.h DataFile.h DataFileList.h DataIO.h DataSet.h DataSetList.h DataSet_2D.h DataSet_Coords.h DataSet_Coords_REF.h DataSet_MatrixDbl.h DataSet_Modes.h Dimension.h DispatchObject.h FileIO.h FileName.h FileTypes.h Frame.h MaskToken.h Matrix.h Matrix_3x3.h MetaData.h Molecule.h NameType.h OutputTrajCommon.h Parallel.h ParameterHolders.h ParameterSet.h ParameterTypes.h Range.h ReferenceFrame.h ReplicaDimArray.h Residue.h SymbolExporting.h TextFormat.h Timer.h Topology.h TrajectoryFile.h Trajout_Single.h TypeNameHolder.h Vec3.h -Analysis_MultiHist.o : Analysis_MultiHist.cpp ActionState.h Analysis.h AnalysisState.h Analysis_Hist.h Analysis_KDE.h Analysis_MultiHist.h ArgList.h Array1D.h AssociatedData.h Atom.h AtomExtra.h AtomMask.h AtomType.h BaseIOtype.h Box.h Constants.h CoordinateInfo.h CpptrajFile.h CpptrajStdio.h DataFile.h DataFileList.h DataIO.h DataSet.h DataSetList.h DataSet_1D.h DataSet_Coords.h DataSet_Coords_REF.h Dimension.h DispatchObject.h FileIO.h FileName.h FileTypes.h Frame.h HistBin.h MaskToken.h Matrix_3x3.h MetaData.h Molecule.h NameType.h Parallel.h ParameterHolders.h ParameterSet.h ParameterTypes.h Range.h ReferenceFrame.h ReplicaDimArray.h Residue.h SymbolExporting.h TextFormat.h Timer.h Topology.h TrajectoryFile.h TypeNameHolder.h Vec3.h -Analysis_Multicurve.o : Analysis_Multicurve.cpp ActionState.h Analysis.h AnalysisState.h Analysis_CurveFit.h Analysis_Multicurve.h ArgList.h Array1D.h AssociatedData.h Atom.h AtomExtra.h AtomMask.h AtomType.h BaseIOtype.h Box.h Constants.h CoordinateInfo.h CpptrajFile.h CpptrajStdio.h DataFile.h DataFileList.h DataIO.h DataSet.h DataSetList.h DataSet_1D.h DataSet_Coords.h DataSet_Coords_REF.h Dimension.h DispatchObject.h FileIO.h FileName.h FileTypes.h Frame.h MaskToken.h Matrix_3x3.h MetaData.h Molecule.h NameType.h Parallel.h ParameterHolders.h ParameterSet.h ParameterTypes.h Range.h ReferenceFrame.h ReplicaDimArray.h Residue.h SymbolExporting.h TextFormat.h Timer.h Topology.h TypeNameHolder.h Vec3.h -Analysis_Overlap.o : Analysis_Overlap.cpp ActionState.h Analysis.h AnalysisState.h Analysis_Overlap.h ArgList.h AssociatedData.h Atom.h AtomExtra.h AtomMask.h AtomType.h BaseIOtype.h Box.h Constants.h CoordinateInfo.h CpptrajFile.h CpptrajStdio.h DataFile.h DataFileList.h DataIO.h DataSet.h DataSetList.h DataSet_1D.h DataSet_Coords.h DataSet_Coords_REF.h Dimension.h DispatchObject.h FileIO.h FileName.h FileTypes.h Frame.h MaskToken.h Matrix_3x3.h MetaData.h Molecule.h NameType.h Parallel.h ParameterHolders.h ParameterSet.h ParameterTypes.h Range.h ReferenceFrame.h ReplicaDimArray.h Residue.h SymbolExporting.h TextFormat.h Timer.h Topology.h TypeNameHolder.h Vec3.h -Analysis_PhiPsi.o : Analysis_PhiPsi.cpp ActionState.h Analysis.h AnalysisState.h Analysis_PhiPsi.h ArgList.h Array1D.h AssociatedData.h Atom.h AtomExtra.h AtomMask.h AtomType.h BaseIOtype.h Box.h Constants.h CoordinateInfo.h CpptrajFile.h CpptrajStdio.h DataFile.h DataFileList.h DataIO.h DataSet.h DataSetList.h DataSet_1D.h DataSet_Coords.h DataSet_Coords_REF.h Dimension.h DispatchObject.h FileIO.h FileName.h FileTypes.h Frame.h MaskToken.h Matrix_3x3.h MetaData.h Molecule.h NameType.h Parallel.h ParameterHolders.h ParameterSet.h ParameterTypes.h Range.h ReferenceFrame.h ReplicaDimArray.h Residue.h SymbolExporting.h TextFormat.h Timer.h Topology.h TypeNameHolder.h Vec3.h -Analysis_Regression.o : Analysis_Regression.cpp ActionState.h Analysis.h AnalysisState.h Analysis_Regression.h ArgList.h Array1D.h AssociatedData.h Atom.h AtomExtra.h AtomMask.h AtomType.h BaseIOtype.h Box.h Constants.h CoordinateInfo.h CpptrajFile.h CpptrajStdio.h DataFile.h DataFileList.h DataIO.h DataSet.h DataSetList.h DataSet_1D.h DataSet_Coords.h DataSet_Coords_REF.h DataSet_Mesh.h Dimension.h DispatchObject.h FileIO.h FileName.h FileTypes.h Frame.h MaskToken.h Matrix_3x3.h MetaData.h Molecule.h NameType.h Parallel.h ParameterHolders.h ParameterSet.h ParameterTypes.h Range.h ReferenceFrame.h ReplicaDimArray.h Residue.h Spline.h SymbolExporting.h TextFormat.h Timer.h Topology.h TypeNameHolder.h Vec3.h -Analysis_RemLog.o : Analysis_RemLog.cpp ActionState.h Analysis.h AnalysisState.h Analysis_Lifetime.h Analysis_RemLog.h ArgList.h Array1D.h AssociatedData.h Atom.h AtomExtra.h AtomMask.h AtomType.h BaseIOtype.h Box.h Constants.h CoordinateInfo.h CpptrajFile.h CpptrajStdio.h DataFile.h DataFileList.h DataIO.h DataSet.h DataSetList.h DataSet_1D.h DataSet_Coords.h DataSet_Coords_REF.h DataSet_Mesh.h DataSet_RemLog.h DataSet_integer.h DataSet_integer_mem.h Dimension.h DispatchObject.h FileIO.h FileName.h FileTypes.h Frame.h MaskToken.h Matrix_3x3.h MetaData.h Molecule.h NameType.h Parallel.h ParameterHolders.h ParameterSet.h ParameterTypes.h ProgressBar.h Range.h ReferenceFrame.h ReplicaDimArray.h Residue.h Spline.h StringRoutines.h SymbolExporting.h TextFormat.h Timer.h Topology.h TypeNameHolder.h Vec3.h -Analysis_Rms2d.o : Analysis_Rms2d.cpp ActionState.h Analysis.h AnalysisState.h Analysis_Rms2d.h ArgList.h ArrayIterator.h AssociatedData.h Atom.h AtomExtra.h AtomMap.h AtomMask.h AtomType.h BaseIOtype.h Box.h Constants.h CoordinateInfo.h CpptrajFile.h CpptrajStdio.h DataFile.h DataFileList.h DataIO.h DataSet.h DataSetList.h DataSet_2D.h DataSet_Coords.h DataSet_Coords_REF.h DataSet_Coords_TRJ.h DataSet_MatrixFlt.h Dimension.h DispatchObject.h FileIO.h FileName.h FileTypes.h Frame.h Hungarian.h InputTrajCommon.h MapAtom.h MaskToken.h Matrix.h Matrix_3x3.h MetaData.h Molecule.h NameType.h Parallel.h ParameterHolders.h ParameterSet.h ParameterTypes.h ProgressBar.h Range.h ReferenceFrame.h ReplicaDimArray.h Residue.h SymbolExporting.h SymmetricRmsdCalc.h TextFormat.h Timer.h Topology.h TrajFrameCounter.h TrajFrameIndex.h Trajin.h TypeNameHolder.h Vec3.h -Analysis_RmsAvgCorr.o : Analysis_RmsAvgCorr.cpp ActionState.h Analysis.h AnalysisState.h Analysis_RmsAvgCorr.h ArgList.h AssociatedData.h Atom.h AtomExtra.h AtomMask.h AtomType.h BaseIOtype.h Box.h Constants.h CoordinateInfo.h CpptrajFile.h CpptrajStdio.h DataFile.h DataFileList.h DataIO.h DataSet.h DataSetList.h DataSet_Coords.h DataSet_Coords_REF.h Dimension.h DispatchObject.h FileIO.h FileName.h FileTypes.h Frame.h MaskToken.h Matrix_3x3.h MetaData.h Molecule.h NameType.h Parallel.h ParameterHolders.h ParameterSet.h ParameterTypes.h ProgressBar.h Range.h ReferenceFrame.h ReplicaDimArray.h Residue.h SymbolExporting.h TextFormat.h Timer.h Topology.h TypeNameHolder.h Vec3.h -Analysis_Rotdif.o : Analysis_Rotdif.cpp ActionState.h Analysis.h AnalysisState.h Analysis_Rotdif.h ArgList.h ArrayIterator.h AssociatedData.h Atom.h AtomExtra.h AtomMask.h AtomType.h BaseIOtype.h Box.h ComplexArray.h Constants.h CoordinateInfo.h Corr.h CpptrajFile.h CpptrajStdio.h CurveFit.h DataFile.h DataFileList.h DataIO.h DataSet.h DataSetList.h DataSet_1D.h DataSet_Coords.h DataSet_Coords_REF.h DataSet_Mat3x3.h DataSet_Mesh.h DataSet_Vector.h DataSet_Vector_XYZ.h Dimension.h DispatchObject.h FileIO.h FileName.h FileTypes.h Frame.h MaskToken.h Matrix_3x3.h MetaData.h Molecule.h NameType.h Parallel.h ParameterHolders.h ParameterSet.h ParameterTypes.h ProgressBar.h PubFFT.h Random.h Range.h ReferenceFrame.h ReplicaDimArray.h Residue.h SimplexMin.h Spline.h StringRoutines.h SymbolExporting.h TextFormat.h Timer.h Topology.h TypeNameHolder.h Vec3.h -Analysis_RunningAvg.o : Analysis_RunningAvg.cpp ActionState.h Analysis.h AnalysisState.h Analysis_RunningAvg.h ArgList.h Array1D.h AssociatedData.h Atom.h AtomExtra.h AtomMask.h AtomType.h BaseIOtype.h Box.h Constants.h CoordinateInfo.h CpptrajFile.h CpptrajStdio.h DataFile.h DataFileList.h DataIO.h DataSet.h DataSetList.h DataSet_1D.h DataSet_Coords.h DataSet_Coords_REF.h DataSet_Mesh.h Dimension.h DispatchObject.h FileIO.h FileName.h FileTypes.h Frame.h MaskToken.h Matrix_3x3.h MetaData.h Molecule.h NameType.h Parallel.h ParameterHolders.h ParameterSet.h ParameterTypes.h Range.h ReferenceFrame.h ReplicaDimArray.h Residue.h Spline.h SymbolExporting.h TextFormat.h Timer.h Topology.h TypeNameHolder.h Vec3.h -Analysis_Slope.o : Analysis_Slope.cpp ActionState.h Analysis.h AnalysisState.h Analysis_Slope.h ArgList.h Array1D.h AssociatedData.h Atom.h AtomExtra.h AtomMask.h AtomType.h BaseIOtype.h Box.h Constants.h CoordinateInfo.h CpptrajFile.h CpptrajStdio.h DataFile.h DataFileList.h DataIO.h DataSet.h DataSetList.h DataSet_1D.h DataSet_Coords.h DataSet_Coords_REF.h DataSet_Mesh.h Dimension.h DispatchObject.h FileIO.h FileName.h FileTypes.h Frame.h MaskToken.h Matrix_3x3.h MetaData.h Molecule.h NameType.h Parallel.h ParameterHolders.h ParameterSet.h ParameterTypes.h Range.h ReferenceFrame.h ReplicaDimArray.h Residue.h Spline.h SymbolExporting.h TextFormat.h Timer.h Topology.h TypeNameHolder.h Vec3.h -Analysis_Spline.o : Analysis_Spline.cpp ActionState.h Analysis.h AnalysisState.h Analysis_Spline.h ArgList.h Array1D.h AssociatedData.h Atom.h AtomExtra.h AtomMask.h AtomType.h BaseIOtype.h Box.h Constants.h CoordinateInfo.h CpptrajFile.h CpptrajStdio.h DataFile.h DataFileList.h DataIO.h DataSet.h DataSetList.h DataSet_1D.h DataSet_Coords.h DataSet_Coords_REF.h DataSet_Mesh.h Dimension.h DispatchObject.h FileIO.h FileName.h FileTypes.h Frame.h MaskToken.h Matrix_3x3.h MetaData.h Molecule.h NameType.h Parallel.h ParameterHolders.h ParameterSet.h ParameterTypes.h Range.h ReferenceFrame.h ReplicaDimArray.h Residue.h Spline.h SymbolExporting.h TextFormat.h Timer.h Topology.h TypeNameHolder.h Vec3.h -Analysis_State.o : Analysis_State.cpp ActionState.h Analysis.h AnalysisState.h Analysis_State.h ArgList.h Array1D.h AssociatedData.h Atom.h AtomExtra.h AtomMask.h AtomType.h BaseIOtype.h Box.h Constants.h CoordinateInfo.h CpptrajFile.h CpptrajStdio.h DataFile.h DataFileList.h DataIO.h DataSet.h DataSetList.h DataSet_1D.h DataSet_Coords.h DataSet_Coords_REF.h DataSet_double.h Dimension.h DispatchObject.h FileIO.h FileName.h FileTypes.h Frame.h MaskToken.h Matrix_3x3.h MetaData.h Molecule.h NameType.h Parallel.h ParameterHolders.h ParameterSet.h ParameterTypes.h Range.h ReferenceFrame.h ReplicaDimArray.h Residue.h SymbolExporting.h TextFormat.h Timer.h Topology.h TypeNameHolder.h Vec3.h -Analysis_Statistics.o : Analysis_Statistics.cpp ActionState.h Analysis.h AnalysisState.h Analysis_Statistics.h ArgList.h Array1D.h AssociatedData.h Atom.h AtomExtra.h AtomMask.h AtomType.h BaseIOtype.h Box.h Constants.h CoordinateInfo.h CpptrajFile.h CpptrajStdio.h DataFile.h DataFileList.h DataIO.h DataSet.h DataSetList.h DataSet_1D.h DataSet_Coords.h DataSet_Coords_REF.h DataSet_float.h DataSet_integer.h DataSet_string.h Dimension.h DispatchObject.h FileIO.h FileName.h FileTypes.h Frame.h MaskToken.h Matrix_3x3.h MetaData.h Molecule.h NameType.h Parallel.h ParameterHolders.h ParameterSet.h ParameterTypes.h Range.h ReferenceFrame.h ReplicaDimArray.h Residue.h SymbolExporting.h TextFormat.h Timer.h Topology.h TypeNameHolder.h Vec3.h -Analysis_TI.o : Analysis_TI.cpp ActionState.h Analysis.h AnalysisState.h Analysis_TI.h ArgList.h Array1D.h AssociatedData.h Atom.h AtomExtra.h AtomMask.h AtomType.h BaseIOtype.h Box.h Constants.h CoordinateInfo.h CpptrajFile.h CpptrajStdio.h DataFile.h DataFileList.h DataIO.h DataSet.h DataSetList.h DataSet_1D.h DataSet_Coords.h DataSet_Coords_REF.h DataSet_Mesh.h Dimension.h DispatchObject.h FileIO.h FileName.h FileTypes.h Frame.h MaskToken.h Matrix_3x3.h MetaData.h Molecule.h NameType.h Parallel.h ParameterHolders.h ParameterSet.h ParameterTypes.h Random.h Range.h ReferenceFrame.h ReplicaDimArray.h Residue.h Spline.h StringRoutines.h SymbolExporting.h TextFormat.h Timer.h Topology.h TypeNameHolder.h Vec3.h -Analysis_Timecorr.o : Analysis_Timecorr.cpp ActionState.h Analysis.h AnalysisState.h Analysis_Timecorr.h ArgList.h ArrayIterator.h AssociatedData.h Atom.h AtomExtra.h AtomMask.h AtomType.h BaseIOtype.h Box.h ComplexArray.h Constants.h CoordinateInfo.h Corr.h CpptrajFile.h CpptrajStdio.h DataFile.h DataFileList.h DataIO.h DataSet.h DataSetList.h DataSet_1D.h DataSet_Coords.h DataSet_Coords_REF.h DataSet_Vector.h DataSet_double.h Dimension.h DispatchObject.h FileIO.h FileName.h FileTypes.h Frame.h MaskToken.h Matrix_3x3.h MetaData.h Molecule.h NameType.h Parallel.h ParameterHolders.h ParameterSet.h ParameterTypes.h PubFFT.h Range.h ReferenceFrame.h ReplicaDimArray.h Residue.h SymbolExporting.h TextFormat.h Timer.h Topology.h TypeNameHolder.h Vec3.h -Analysis_VectorMath.o : Analysis_VectorMath.cpp ActionState.h Analysis.h AnalysisState.h Analysis_VectorMath.h ArgList.h ArrayIterator.h AssociatedData.h Atom.h AtomExtra.h AtomMask.h AtomType.h BaseIOtype.h Box.h ComplexArray.h Constants.h CoordinateInfo.h CpptrajFile.h CpptrajStdio.h DataFile.h DataFileList.h DataIO.h DataSet.h DataSetList.h DataSet_1D.h DataSet_Coords.h DataSet_Coords_REF.h DataSet_Vector.h DataSet_Vector_XYZ.h DataSet_double.h Dimension.h DispatchObject.h FileIO.h FileName.h FileTypes.h Frame.h MaskToken.h Matrix_3x3.h MetaData.h Molecule.h NameType.h Parallel.h ParameterHolders.h ParameterSet.h ParameterTypes.h Range.h ReferenceFrame.h ReplicaDimArray.h Residue.h SymbolExporting.h TextFormat.h Timer.h Topology.h TypeNameHolder.h Vec3.h -Analysis_Wavelet.o : Analysis_Wavelet.cpp ActionFrameCounter.h ActionState.h Analysis.h AnalysisState.h Analysis_Wavelet.h ArgList.h ArrayIterator.h AssociatedData.h Atom.h AtomExtra.h AtomMask.h AtomType.h BaseIOtype.h BondSearch.h Box.h ClusterMap.h ComplexArray.h Constants.h CoordinateInfo.h CpptrajFile.h CpptrajStdio.h DataFile.h DataFileList.h DataIO.h DataSet.h DataSetList.h DataSet_2D.h DataSet_Coords.h DataSet_Coords_REF.h DataSet_MatrixFlt.h Dimension.h DispatchObject.h DistRoutines.h FileIO.h FileName.h FileTypes.h Frame.h MaskToken.h Matrix.h Matrix_3x3.h MetaData.h Molecule.h NameType.h OutputTrajCommon.h Parallel.h ParameterHolders.h ParameterSet.h ParameterTypes.h ParmFile.h ParmIO.h ProgressBar.h ProgressTimer.h PubFFT.h Range.h ReferenceFrame.h ReplicaDimArray.h Residue.h StringRoutines.h SymbolExporting.h TextFormat.h Timer.h Topology.h TrajectoryFile.h Trajout_Single.h TypeNameHolder.h Vec3.h +ActionList.o : ActionList.cpp Action.h ActionList.h ActionState.h ArgList.h AssociatedData.h Atom.h AtomExtra.h AtomMask.h AtomType.h BaseIOtype.h Box.h Constants.h CoordinateInfo.h CpptrajFile.h CpptrajStdio.h DataFile.h DataFileList.h DataSet.h DataSetList.h DataSet_Coords.h DataSet_Coords_REF.h Dimension.h DispatchObject.h FileIO.h FileName.h FileTypes.h Frame.h MaskToken.h Matrix_3x3.h MetaData.h Molecule.h NameType.h Parallel.h ParameterHolders.h ParameterSet.h ParameterTypes.h Range.h ReferenceFrame.h ReplicaDimArray.h Residue.h SymbolExporting.h TextFormat.h Timer.h Topology.h TypeNameHolder.h Vec3.h +Action_Align.o : Action_Align.cpp Action.h ActionState.h Action_Align.h ArgList.h AssociatedData.h Atom.h AtomExtra.h AtomMask.h AtomType.h BaseIOtype.h Box.h Constants.h CoordinateInfo.h CpptrajFile.h CpptrajStdio.h DataFile.h DataFileList.h DataSet.h DataSetList.h DataSet_Coords.h DataSet_Coords_REF.h Dimension.h DispatchObject.h FileIO.h FileName.h FileTypes.h Frame.h MaskToken.h Matrix_3x3.h MetaData.h Molecule.h NameType.h Parallel.h ParameterHolders.h ParameterSet.h ParameterTypes.h Range.h ReferenceAction.h ReferenceFrame.h ReplicaDimArray.h Residue.h SymbolExporting.h TextFormat.h Timer.h Topology.h TypeNameHolder.h Vec3.h +Action_Angle.o : Action_Angle.cpp Action.h ActionState.h Action_Angle.h ArgList.h AssociatedData.h Atom.h AtomExtra.h AtomMask.h AtomType.h BaseIOtype.h Box.h Constants.h CoordinateInfo.h CpptrajFile.h CpptrajStdio.h DataFile.h DataFileList.h DataSet.h DataSetList.h DataSet_Coords.h DataSet_Coords_REF.h Dimension.h DispatchObject.h FileIO.h FileName.h FileTypes.h Frame.h MaskToken.h Matrix_3x3.h MetaData.h Molecule.h NameType.h Parallel.h ParameterHolders.h ParameterSet.h ParameterTypes.h Range.h ReferenceFrame.h ReplicaDimArray.h Residue.h SymbolExporting.h TextFormat.h Timer.h Topology.h TorsionRoutines.h TypeNameHolder.h Vec3.h +Action_AreaPerMol.o : Action_AreaPerMol.cpp Action.h ActionState.h Action_AreaPerMol.h ArgList.h AssociatedData.h Atom.h AtomExtra.h AtomMask.h AtomType.h BaseIOtype.h Box.h CharMask.h Constants.h CoordinateInfo.h CpptrajFile.h CpptrajStdio.h DataFile.h DataFileList.h DataSet.h DataSetList.h DataSet_Coords.h DataSet_Coords_REF.h Dimension.h DispatchObject.h FileIO.h FileName.h FileTypes.h Frame.h MaskToken.h Matrix_3x3.h MetaData.h Molecule.h NameType.h Parallel.h ParameterHolders.h ParameterSet.h ParameterTypes.h Range.h ReferenceFrame.h ReplicaDimArray.h Residue.h SymbolExporting.h TextFormat.h Timer.h Topology.h TypeNameHolder.h Vec3.h +Action_AtomMap.o : Action_AtomMap.cpp Action.h ActionState.h Action_AtomMap.h ArgList.h AssociatedData.h Atom.h AtomExtra.h AtomMap.h AtomMask.h AtomType.h BaseIOtype.h Box.h Constants.h CoordinateInfo.h CpptrajFile.h CpptrajStdio.h DataFile.h DataFileList.h DataSet.h DataSetList.h DataSet_Coords.h DataSet_Coords_REF.h Dimension.h DispatchObject.h FileIO.h FileName.h FileTypes.h Frame.h MapAtom.h MaskToken.h Matrix_3x3.h MetaData.h Molecule.h NameType.h Parallel.h ParameterHolders.h ParameterSet.h ParameterTypes.h Range.h ReferenceFrame.h ReplicaDimArray.h Residue.h StringRoutines.h StructureMapper.h SymbolExporting.h TextFormat.h Timer.h Topology.h TypeNameHolder.h Vec3.h +Action_AtomicCorr.o : Action_AtomicCorr.cpp Action.h ActionState.h Action_AtomicCorr.h ArgList.h ArrayIterator.h AssociatedData.h Atom.h AtomExtra.h AtomMask.h AtomType.h BaseIOtype.h Box.h Constants.h CoordinateInfo.h CpptrajFile.h CpptrajStdio.h DataFile.h DataFileList.h DataSet.h DataSetList.h DataSet_2D.h DataSet_Coords.h DataSet_Coords_REF.h DataSet_MatrixFlt.h Dimension.h DispatchObject.h FileIO.h FileName.h FileTypes.h Frame.h MaskToken.h Matrix.h Matrix_3x3.h MetaData.h Molecule.h NameType.h Parallel.h ParameterHolders.h ParameterSet.h ParameterTypes.h ProgressBar.h Range.h ReferenceFrame.h ReplicaDimArray.h Residue.h StringRoutines.h SymbolExporting.h TextFormat.h Timer.h Topology.h TypeNameHolder.h Vec3.h +Action_AtomicFluct.o : Action_AtomicFluct.cpp Action.h ActionFrameCounter.h ActionState.h Action_AtomicFluct.h ArgList.h AssociatedData.h Atom.h AtomExtra.h AtomMask.h AtomType.h BaseIOtype.h Box.h Constants.h CoordinateInfo.h CpptrajFile.h CpptrajStdio.h DataFile.h DataFileList.h DataSet.h DataSetList.h DataSet_1D.h DataSet_Coords.h DataSet_Coords_REF.h DataSet_Mesh.h Dimension.h DispatchObject.h FileIO.h FileName.h FileTypes.h Frame.h MaskToken.h Matrix_3x3.h MetaData.h Molecule.h NameType.h PDBfile.h Parallel.h ParameterHolders.h ParameterSet.h ParameterTypes.h Range.h ReferenceFrame.h ReplicaDimArray.h Residue.h Spline.h SymbolExporting.h TextFormat.h Timer.h Topology.h TypeNameHolder.h Vec3.h +Action_AutoImage.o : Action_AutoImage.cpp Action.h ActionState.h Action_AutoImage.h ArgList.h AssociatedData.h Atom.h AtomExtra.h AtomMask.h AtomType.h BaseIOtype.h Box.h CharMask.h Constants.h CoordinateInfo.h CpptrajFile.h CpptrajStdio.h DataFile.h DataFileList.h DataSet.h DataSetList.h DataSet_Coords.h DataSet_Coords_REF.h Dimension.h DispatchObject.h DistRoutines.h FileIO.h FileName.h FileTypes.h Frame.h ImageRoutines.h ImageTypes.h MaskToken.h Matrix_3x3.h MetaData.h Molecule.h NameType.h Parallel.h ParameterHolders.h ParameterSet.h ParameterTypes.h Range.h ReferenceFrame.h ReplicaDimArray.h Residue.h SymbolExporting.h TextFormat.h Timer.h Topology.h TypeNameHolder.h Vec3.h +Action_Average.o : Action_Average.cpp Action.h ActionFrameCounter.h ActionState.h Action_Average.h ArgList.h AssociatedData.h Atom.h AtomExtra.h AtomMask.h AtomType.h BaseIOtype.h Box.h Constants.h CoordinateInfo.h CpptrajFile.h CpptrajStdio.h DataFile.h DataFileList.h DataSet.h DataSetList.h DataSet_Coords.h DataSet_Coords_REF.h Dimension.h DispatchObject.h FileIO.h FileName.h FileTypes.h Frame.h MaskToken.h Matrix_3x3.h MetaData.h Molecule.h NameType.h OutputTrajCommon.h Parallel.h ParameterHolders.h ParameterSet.h ParameterTypes.h Range.h ReferenceFrame.h ReplicaDimArray.h Residue.h SymbolExporting.h TextFormat.h Timer.h Topology.h TrajectoryFile.h Trajout_Single.h TypeNameHolder.h Vec3.h +Action_Bounds.o : Action_Bounds.cpp Action.h ActionState.h Action_Bounds.h ArgList.h AssociatedData.h Atom.h AtomExtra.h AtomMask.h AtomType.h BaseIOtype.h Box.h Constants.h CoordinateInfo.h CpptrajFile.h CpptrajStdio.h DataFile.h DataFileList.h DataSet.h DataSetList.h DataSet_3D.h DataSet_Coords.h DataSet_Coords_REF.h Dimension.h DispatchObject.h FileIO.h FileName.h FileTypes.h Frame.h GridBin.h MaskToken.h Matrix_3x3.h MetaData.h Molecule.h NameType.h Parallel.h ParameterHolders.h ParameterSet.h ParameterTypes.h Range.h ReferenceFrame.h ReplicaDimArray.h Residue.h SymbolExporting.h TextFormat.h Timer.h Topology.h TypeNameHolder.h Vec3.h +Action_Box.o : Action_Box.cpp Action.h ActionState.h Action_Box.h ArgList.h AssociatedData.h Atom.h AtomExtra.h AtomMask.h AtomType.h BaseIOtype.h Box.h Constants.h CoordinateInfo.h CpptrajFile.h CpptrajStdio.h DataFile.h DataFileList.h DataSet.h DataSetList.h DataSet_Coords.h DataSet_Coords_REF.h Dimension.h DispatchObject.h FileIO.h FileName.h FileTypes.h Frame.h MaskToken.h Matrix_3x3.h MetaData.h Molecule.h NameType.h Parallel.h ParameterHolders.h ParameterSet.h ParameterTypes.h Range.h ReferenceFrame.h ReplicaDimArray.h Residue.h SymbolExporting.h TextFormat.h Timer.h Topology.h TypeNameHolder.h Vec3.h +Action_Center.o : Action_Center.cpp Action.h ActionState.h Action_Center.h ArgList.h AssociatedData.h Atom.h AtomExtra.h AtomMask.h AtomType.h BaseIOtype.h Box.h Constants.h CoordinateInfo.h CpptrajFile.h CpptrajStdio.h DataFile.h DataFileList.h DataSet.h DataSetList.h DataSet_Coords.h DataSet_Coords_REF.h Dimension.h DispatchObject.h FileIO.h FileName.h FileTypes.h Frame.h MaskToken.h Matrix_3x3.h MetaData.h Molecule.h NameType.h Parallel.h ParameterHolders.h ParameterSet.h ParameterTypes.h Range.h ReferenceFrame.h ReplicaDimArray.h Residue.h SymbolExporting.h TextFormat.h Timer.h Topology.h TypeNameHolder.h Vec3.h +Action_Channel.o : Action_Channel.cpp Action.h ActionState.h Action_Channel.h ArgList.h ArrayIterator.h AssociatedData.h Atom.h AtomExtra.h AtomMask.h AtomType.h BaseIOtype.h Box.h Constants.h CoordinateInfo.h CpptrajFile.h CpptrajStdio.h DataFile.h DataFileList.h DataSet.h DataSetList.h DataSet_3D.h DataSet_Coords.h DataSet_Coords_REF.h DataSet_GridFlt.h Dimension.h DispatchObject.h FileIO.h FileName.h FileTypes.h Frame.h Grid.h GridBin.h MaskToken.h Matrix_3x3.h MetaData.h Molecule.h NameType.h Parallel.h ParameterHolders.h ParameterSet.h ParameterTypes.h Range.h ReferenceFrame.h ReplicaDimArray.h Residue.h SymbolExporting.h TextFormat.h Timer.h Topology.h TypeNameHolder.h Vec3.h +Action_CheckChirality.o : Action_CheckChirality.cpp Action.h ActionState.h Action_CheckChirality.h ArgList.h AssociatedData.h Atom.h AtomExtra.h AtomMask.h AtomType.h BaseIOtype.h Box.h CharMask.h Constants.h CoordinateInfo.h CpptrajFile.h CpptrajStdio.h DataFile.h DataFileList.h DataSet.h DataSetList.h DataSet_1D.h DataSet_Coords.h DataSet_Coords_REF.h DataSet_Mesh.h Dimension.h DispatchObject.h FileIO.h FileName.h FileTypes.h Frame.h MaskToken.h Matrix_3x3.h MetaData.h Molecule.h NameType.h Parallel.h ParameterHolders.h ParameterSet.h ParameterTypes.h Range.h ReferenceFrame.h ReplicaDimArray.h Residue.h Spline.h SymbolExporting.h TextFormat.h Timer.h Topology.h TorsionRoutines.h TypeNameHolder.h Vec3.h +Action_CheckStructure.o : Action_CheckStructure.cpp Action.h ActionState.h Action_CheckStructure.h ArgList.h AssociatedData.h Atom.h AtomExtra.h AtomMask.h AtomType.h BaseIOtype.h Box.h Constants.h CoordinateInfo.h CpptrajFile.h CpptrajStdio.h DataFile.h DataFileList.h DataSet.h DataSetList.h DataSet_1D.h DataSet_Coords.h DataSet_Coords_REF.h DataSet_double.h DataSet_integer.h DataSet_string.h Dimension.h DispatchObject.h DistRoutines.h FileIO.h FileName.h FileTypes.h Frame.h ImagedAction.h MaskToken.h Matrix_3x3.h MetaData.h Molecule.h NameType.h PairList.h Parallel.h ParameterHolders.h ParameterSet.h ParameterTypes.h Range.h ReferenceFrame.h ReplicaDimArray.h Residue.h StructureCheck.h SymbolExporting.h TextFormat.h Timer.h Topology.h TypeNameHolder.h Vec3.h +Action_Closest.o : Action_Closest.cpp Action.h ActionState.h Action_Closest.h ArgList.h AssociatedData.h Atom.h AtomExtra.h AtomMask.h AtomType.h BaseIOtype.h BondSearch.h Box.h CharMask.h Constants.h CoordinateInfo.h CpptrajFile.h CpptrajStdio.h DataFile.h DataFileList.h DataSet.h DataSetList.h DataSet_Coords.h DataSet_Coords_REF.h Dimension.h DispatchObject.h DistRoutines.h FileIO.h FileName.h FileTypes.h Frame.h ImageRoutines.h ImageTypes.h ImagedAction.h MaskToken.h Matrix_3x3.h MetaData.h Molecule.h NameType.h Parallel.h ParameterHolders.h ParameterSet.h ParameterTypes.h ParmFile.h ParmIO.h Range.h ReferenceFrame.h ReplicaDimArray.h Residue.h SymbolExporting.h TextFormat.h Timer.h Topology.h TypeNameHolder.h Vec3.h +Action_ClusterDihedral.o : Action_ClusterDihedral.cpp Action.h ActionState.h Action_ClusterDihedral.h ArgList.h AssociatedData.h Atom.h AtomExtra.h AtomMask.h AtomType.h BaseIOtype.h Box.h Constants.h CoordinateInfo.h CpptrajFile.h CpptrajStdio.h DataFile.h DataFileList.h DataSet.h DataSetList.h DataSet_1D.h DataSet_Coords.h DataSet_Coords_REF.h DataSet_integer.h Dimension.h DispatchObject.h FileIO.h FileName.h FileTypes.h Frame.h MaskToken.h Matrix_3x3.h MetaData.h Molecule.h NameType.h Parallel.h ParameterHolders.h ParameterSet.h ParameterTypes.h Range.h ReferenceFrame.h ReplicaDimArray.h Residue.h SymbolExporting.h TextFormat.h Timer.h Topology.h TorsionRoutines.h TypeNameHolder.h Vec3.h +Action_Contacts.o : Action_Contacts.cpp Action.h ActionState.h Action_Contacts.h ArgList.h AssociatedData.h Atom.h AtomExtra.h AtomMask.h AtomType.h BaseIOtype.h Box.h Constants.h CoordinateInfo.h CpptrajFile.h CpptrajStdio.h DataFile.h DataFileList.h DataSet.h DataSetList.h DataSet_Coords.h DataSet_Coords_REF.h Dimension.h DispatchObject.h DistRoutines.h FileIO.h FileName.h FileTypes.h Frame.h MaskToken.h Matrix_3x3.h MetaData.h Molecule.h NameType.h Parallel.h ParameterHolders.h ParameterSet.h ParameterTypes.h Range.h ReferenceFrame.h ReplicaDimArray.h Residue.h SymbolExporting.h TextFormat.h Timer.h Topology.h TypeNameHolder.h Vec3.h +Action_CreateCrd.o : Action_CreateCrd.cpp Action.h ActionState.h Action_CreateCrd.h ArgList.h AssociatedData.h Atom.h AtomExtra.h AtomMask.h AtomType.h BaseIOtype.h Box.h Constants.h CoordinateInfo.h CpptrajFile.h CpptrajStdio.h DataFile.h DataFileList.h DataSet.h DataSetList.h DataSet_Coords.h DataSet_Coords_CRD.h DataSet_Coords_REF.h Dimension.h DispatchObject.h FileIO.h FileName.h FileTypes.h Frame.h MaskToken.h Matrix_3x3.h MetaData.h Molecule.h NameType.h Parallel.h ParameterHolders.h ParameterSet.h ParameterTypes.h Range.h ReferenceFrame.h ReplicaDimArray.h Residue.h StringRoutines.h SymbolExporting.h TextFormat.h Timer.h Topology.h TypeNameHolder.h Vec3.h +Action_CreateReservoir.o : Action_CreateReservoir.cpp Action.h ActionState.h Action_CreateReservoir.h ArgList.h AssociatedData.h Atom.h AtomExtra.h AtomMask.h AtomType.h BaseIOtype.h Box.h Constants.h CoordinateInfo.h CpptrajFile.h CpptrajStdio.h DataFile.h DataFileList.h DataSet.h DataSetList.h DataSet_1D.h DataSet_Coords.h DataSet_Coords_REF.h Dimension.h DispatchObject.h FileIO.h FileName.h FileTypes.h Frame.h MaskToken.h Matrix_3x3.h MetaData.h Molecule.h NameType.h NetcdfFile.h Parallel.h ParameterHolders.h ParameterSet.h ParameterTypes.h Range.h ReferenceFrame.h RemdReservoirNC.h ReplicaDimArray.h Residue.h SymbolExporting.h TextFormat.h Timer.h Topology.h TypeNameHolder.h Vec3.h +Action_DNAionTracker.o : Action_DNAionTracker.cpp Action.h ActionState.h Action_DNAionTracker.h ArgList.h AssociatedData.h Atom.h AtomExtra.h AtomMask.h AtomType.h BaseIOtype.h Box.h Constants.h CoordinateInfo.h CpptrajFile.h CpptrajStdio.h DataFile.h DataFileList.h DataSet.h DataSetList.h DataSet_Coords.h DataSet_Coords_REF.h Dimension.h DispatchObject.h DistRoutines.h FileIO.h FileName.h FileTypes.h Frame.h ImagedAction.h MaskToken.h Matrix_3x3.h MetaData.h Molecule.h NameType.h Parallel.h ParameterHolders.h ParameterSet.h ParameterTypes.h Range.h ReferenceFrame.h ReplicaDimArray.h Residue.h SymbolExporting.h TextFormat.h Timer.h Topology.h TypeNameHolder.h Vec3.h +Action_DSSP.o : Action_DSSP.cpp Action.h ActionState.h Action_DSSP.h ArgList.h AssociatedData.h Atom.h AtomExtra.h AtomMask.h AtomType.h BaseIOtype.h Box.h CharMask.h Constants.h CoordinateInfo.h CpptrajFile.h CpptrajStdio.h DataFile.h DataFileList.h DataSet.h DataSetList.h DataSet_Coords.h DataSet_Coords_REF.h Dimension.h DispatchObject.h DistRoutines.h FileIO.h FileName.h FileTypes.h Frame.h MaskToken.h Matrix_3x3.h MetaData.h Molecule.h NameType.h Parallel.h ParameterHolders.h ParameterSet.h ParameterTypes.h Range.h ReferenceFrame.h ReplicaDimArray.h Residue.h SymbolExporting.h TextFormat.h Timer.h Topology.h TypeNameHolder.h Vec3.h +Action_Density.o : Action_Density.cpp Action.h ActionState.h Action_Density.h ArgList.h AssociatedData.h Atom.h AtomExtra.h AtomMask.h AtomType.h BaseIOtype.h Box.h Constants.h CoordinateInfo.h CpptrajFile.h CpptrajStdio.h DataFile.h DataFileList.h DataSet.h DataSetList.h DataSet_1D.h DataSet_Coords.h DataSet_Coords_REF.h Dimension.h DispatchObject.h DistRoutines.h FileIO.h FileName.h FileTypes.h Frame.h ImagedAction.h MaskToken.h Matrix_3x3.h MetaData.h Molecule.h NameType.h OnlineVarT.h Parallel.h ParameterHolders.h ParameterSet.h ParameterTypes.h Range.h ReferenceFrame.h ReplicaDimArray.h Residue.h StringRoutines.h SymbolExporting.h TextFormat.h Timer.h Topology.h TypeNameHolder.h Vec3.h +Action_Diffusion.o : Action_Diffusion.cpp Action.h ActionState.h Action_Diffusion.h ArgList.h AssociatedData.h Atom.h AtomExtra.h AtomMask.h AtomType.h BaseIOtype.h Box.h Constants.h CoordinateInfo.h CpptrajFile.h CpptrajStdio.h DataFile.h DataFileList.h DataSet.h DataSetList.h DataSet_1D.h DataSet_Coords.h DataSet_Coords_REF.h Dimension.h DispatchObject.h DistRoutines.h FileIO.h FileName.h FileTypes.h Frame.h ImagedAction.h MaskToken.h Matrix_3x3.h MetaData.h Molecule.h NameType.h Parallel.h ParameterHolders.h ParameterSet.h ParameterTypes.h Range.h ReferenceFrame.h ReplicaDimArray.h Residue.h StringRoutines.h SymbolExporting.h TextFormat.h Timer.h Topology.h TypeNameHolder.h Vec3.h +Action_Dihedral.o : Action_Dihedral.cpp Action.h ActionState.h Action_Dihedral.h ArgList.h AssociatedData.h Atom.h AtomExtra.h AtomMask.h AtomType.h BaseIOtype.h Box.h Constants.h CoordinateInfo.h CpptrajFile.h CpptrajStdio.h DataFile.h DataFileList.h DataSet.h DataSetList.h DataSet_1D.h DataSet_Coords.h DataSet_Coords_REF.h DataSet_double.h Dimension.h DispatchObject.h FileIO.h FileName.h FileTypes.h Frame.h MaskToken.h Matrix_3x3.h MetaData.h Molecule.h NameType.h Parallel.h ParameterHolders.h ParameterSet.h ParameterTypes.h Range.h ReferenceFrame.h ReplicaDimArray.h Residue.h SymbolExporting.h TextFormat.h Timer.h Topology.h TorsionRoutines.h TypeNameHolder.h Vec3.h +Action_DihedralRMS.o : Action_DihedralRMS.cpp Action.h ActionState.h Action_DihedralRMS.h ArgList.h AssociatedData.h Atom.h AtomExtra.h AtomMask.h AtomType.h BaseIOtype.h Box.h Constants.h CoordinateInfo.h CpptrajFile.h CpptrajStdio.h DataFile.h DataFileList.h DataSet.h DataSetList.h DataSet_Coords.h DataSet_Coords_REF.h DihedralSearch.h Dimension.h DispatchObject.h FileIO.h FileName.h FileTypes.h Frame.h MaskToken.h Matrix_3x3.h MetaData.h Molecule.h NameType.h Parallel.h ParameterHolders.h ParameterSet.h ParameterTypes.h Range.h ReferenceAction.h ReferenceFrame.h ReplicaDimArray.h Residue.h SymbolExporting.h TextFormat.h Timer.h Topology.h TorsionRoutines.h TypeNameHolder.h Vec3.h +Action_Dipole.o : Action_Dipole.cpp Action.h ActionState.h Action_Dipole.h ArgList.h ArrayIterator.h AssociatedData.h Atom.h AtomExtra.h AtomMask.h AtomType.h BaseIOtype.h Box.h CharMask.h Constants.h CoordinateInfo.h CpptrajFile.h CpptrajStdio.h DataFile.h DataFileList.h DataSet.h DataSetList.h DataSet_3D.h DataSet_Coords.h DataSet_Coords_REF.h DataSet_GridFlt.h Dimension.h DispatchObject.h FileIO.h FileName.h FileTypes.h Frame.h Grid.h GridAction.h GridBin.h MaskToken.h Matrix_3x3.h MetaData.h Molecule.h NameType.h Parallel.h ParameterHolders.h ParameterSet.h ParameterTypes.h Range.h ReferenceFrame.h ReplicaDimArray.h Residue.h SymbolExporting.h TextFormat.h Timer.h Topology.h TypeNameHolder.h Vec3.h +Action_DistRmsd.o : Action_DistRmsd.cpp Action.h ActionState.h Action_DistRmsd.h ArgList.h AssociatedData.h Atom.h AtomExtra.h AtomMask.h AtomType.h BaseIOtype.h Box.h Constants.h CoordinateInfo.h CpptrajFile.h CpptrajStdio.h DataFile.h DataFileList.h DataSet.h DataSetList.h DataSet_Coords.h DataSet_Coords_REF.h Dimension.h DispatchObject.h FileIO.h FileName.h FileTypes.h Frame.h MaskToken.h Matrix_3x3.h MetaData.h Molecule.h NameType.h Parallel.h ParameterHolders.h ParameterSet.h ParameterTypes.h Range.h ReferenceAction.h ReferenceFrame.h ReplicaDimArray.h Residue.h SymbolExporting.h TextFormat.h Timer.h Topology.h TypeNameHolder.h Vec3.h +Action_Distance.o : Action_Distance.cpp Action.h ActionState.h Action_Distance.h ArgList.h AssociatedData.h Atom.h AtomExtra.h AtomMask.h AtomType.h BaseIOtype.h Box.h Constants.h CoordinateInfo.h CpptrajFile.h CpptrajStdio.h DataFile.h DataFileList.h DataSet.h DataSetList.h DataSet_Coords.h DataSet_Coords_REF.h Dimension.h DispatchObject.h DistRoutines.h FileIO.h FileName.h FileTypes.h Frame.h ImagedAction.h MaskToken.h Matrix_3x3.h MetaData.h Molecule.h NameType.h Parallel.h ParameterHolders.h ParameterSet.h ParameterTypes.h Range.h ReferenceFrame.h ReplicaDimArray.h Residue.h SymbolExporting.h TextFormat.h Timer.h Topology.h TypeNameHolder.h Vec3.h +Action_Energy.o : Action_Energy.cpp Action.h ActionState.h Action_Energy.h ArgList.h AssociatedData.h Atom.h AtomExtra.h AtomMask.h AtomType.h BaseIOtype.h Box.h CharMask.h Constants.h CoordinateInfo.h CpptrajFile.h CpptrajStdio.h DataFile.h DataFileList.h DataSet.h DataSetList.h DataSet_Coords.h DataSet_Coords_REF.h Dimension.h DispatchObject.h Energy.h Ewald.h Ewald_ParticleMesh.h Ewald_Regular.h FileIO.h FileName.h FileTypes.h Frame.h MaskToken.h Matrix_3x3.h MetaData.h Molecule.h NameType.h PairList.h Parallel.h ParameterHolders.h ParameterSet.h ParameterTypes.h Range.h ReferenceFrame.h ReplicaDimArray.h Residue.h SymbolExporting.h TextFormat.h Timer.h Topology.h TypeNameHolder.h Vec3.h helpme_standalone.h +Action_Esander.o : Action_Esander.cpp Action.h ActionState.h Action_Esander.h ArgList.h AssociatedData.h Atom.h AtomExtra.h AtomMask.h AtomType.h BaseIOtype.h Box.h Constants.h CoordinateInfo.h CpptrajFile.h CpptrajStdio.h DataFile.h DataFileList.h DataSet.h DataSetList.h DataSet_Coords.h DataSet_Coords_REF.h Dimension.h DispatchObject.h Energy_Sander.h FileIO.h FileName.h FileTypes.h Frame.h MaskToken.h Matrix_3x3.h MetaData.h Molecule.h NameType.h Parallel.h ParameterHolders.h ParameterSet.h ParameterTypes.h Range.h ReferenceFrame.h ReplicaDimArray.h Residue.h SymbolExporting.h TextFormat.h Timer.h Topology.h TypeNameHolder.h Vec3.h +Action_FilterByData.o : Action_FilterByData.cpp Action.h ActionState.h Action_FilterByData.h ArgList.h Array1D.h AssociatedData.h Atom.h AtomExtra.h AtomMask.h AtomType.h BaseIOtype.h Box.h Constants.h CoordinateInfo.h CpptrajFile.h CpptrajStdio.h DataFile.h DataFileList.h DataSet.h DataSetList.h DataSet_1D.h DataSet_Coords.h DataSet_Coords_REF.h Dimension.h DispatchObject.h FileIO.h FileName.h FileTypes.h Frame.h MaskToken.h Matrix_3x3.h MetaData.h Molecule.h NameType.h Parallel.h ParameterHolders.h ParameterSet.h ParameterTypes.h Range.h ReferenceFrame.h ReplicaDimArray.h Residue.h SymbolExporting.h TextFormat.h Timer.h Topology.h TypeNameHolder.h Vec3.h +Action_FixAtomOrder.o : Action_FixAtomOrder.cpp Action.h ActionState.h Action_FixAtomOrder.h ArgList.h AssociatedData.h Atom.h AtomExtra.h AtomMask.h AtomType.h BaseIOtype.h BondSearch.h Box.h Constants.h CoordinateInfo.h CpptrajFile.h CpptrajStdio.h DataFile.h DataFileList.h DataSet.h DataSetList.h DataSet_Coords.h DataSet_Coords_REF.h Dimension.h DispatchObject.h FileIO.h FileName.h FileTypes.h Frame.h MaskToken.h Matrix_3x3.h MetaData.h Molecule.h NameType.h Parallel.h ParameterHolders.h ParameterSet.h ParameterTypes.h ParmFile.h ParmIO.h Range.h ReferenceFrame.h ReplicaDimArray.h Residue.h SymbolExporting.h TextFormat.h Timer.h Topology.h TypeNameHolder.h Vec3.h +Action_FixImagedBonds.o : Action_FixImagedBonds.cpp Action.h ActionState.h Action_FixImagedBonds.h ArgList.h AssociatedData.h Atom.h AtomExtra.h AtomMask.h AtomType.h BaseIOtype.h Box.h CharMask.h Constants.h CoordinateInfo.h CpptrajFile.h CpptrajStdio.h DataFile.h DataFileList.h DataSet.h DataSetList.h DataSet_Coords.h DataSet_Coords_REF.h Dimension.h DispatchObject.h DistRoutines.h FileIO.h FileName.h FileTypes.h Frame.h ImagedAction.h MaskToken.h Matrix_3x3.h MetaData.h Molecule.h NameType.h Parallel.h ParameterHolders.h ParameterSet.h ParameterTypes.h Range.h ReferenceFrame.h ReplicaDimArray.h Residue.h SymbolExporting.h TextFormat.h Timer.h Topology.h TypeNameHolder.h Vec3.h +Action_GIST.o : Action_GIST.cpp Action.h ActionState.h Action_GIST.h ArgList.h ArrayIterator.h AssociatedData.h Atom.h AtomExtra.h AtomMask.h AtomType.h BaseIOtype.h Box.h Constants.h CoordinateInfo.h CpptrajFile.h CpptrajStdio.h DataFile.h DataFileList.h DataSet.h DataSetList.h DataSet_2D.h DataSet_3D.h DataSet_Coords.h DataSet_Coords_REF.h DataSet_GridDbl.h DataSet_GridFlt.h DataSet_MatrixFlt.h Dimension.h DispatchObject.h DistRoutines.h FileIO.h FileName.h FileTypes.h Frame.h Grid.h GridBin.h ImagedAction.h MaskToken.h Matrix.h Matrix_3x3.h MetaData.h Molecule.h NameType.h Parallel.h ParameterHolders.h ParameterSet.h ParameterTypes.h ProgressBar.h Range.h ReferenceFrame.h ReplicaDimArray.h Residue.h StringRoutines.h SymbolExporting.h TextFormat.h Timer.h Topology.h TypeNameHolder.h Vec3.h cuda_kernels/GistCudaSetup.cuh +Action_Grid.o : Action_Grid.cpp Action.h ActionState.h Action_Grid.h ArgList.h ArrayIterator.h AssociatedData.h Atom.h AtomExtra.h AtomMask.h AtomType.h BaseIOtype.h Box.h Constants.h CoordinateInfo.h CpptrajFile.h CpptrajStdio.h DataFile.h DataFileList.h DataSet.h DataSetList.h DataSet_3D.h DataSet_Coords.h DataSet_Coords_REF.h DataSet_GridFlt.h Dimension.h DispatchObject.h FileIO.h FileName.h FileTypes.h Frame.h Grid.h GridAction.h GridBin.h MaskArray.h MaskToken.h Matrix_3x3.h MetaData.h Molecule.h NameType.h PDBfile.h Parallel.h ParameterHolders.h ParameterSet.h ParameterTypes.h Range.h ReferenceFrame.h ReplicaDimArray.h Residue.h SymbolExporting.h TextFormat.h Timer.h Topology.h TypeNameHolder.h Vec3.h +Action_GridFreeEnergy.o : Action_GridFreeEnergy.cpp Action.h ActionState.h Action_GridFreeEnergy.h ArgList.h ArrayIterator.h AssociatedData.h Atom.h AtomExtra.h AtomMask.h AtomType.h BaseIOtype.h Box.h Constants.h CoordinateInfo.h CpptrajFile.h CpptrajStdio.h DataFile.h DataFileList.h DataSet.h DataSetList.h DataSet_3D.h DataSet_Coords.h DataSet_Coords_REF.h DataSet_GridFlt.h Dimension.h DispatchObject.h FileIO.h FileName.h FileTypes.h Frame.h Grid.h GridAction.h GridBin.h MaskToken.h Matrix_3x3.h MetaData.h Molecule.h NameType.h Parallel.h ParameterHolders.h ParameterSet.h ParameterTypes.h Range.h ReferenceFrame.h ReplicaDimArray.h Residue.h StringRoutines.h SymbolExporting.h TextFormat.h Timer.h Topology.h TypeNameHolder.h Vec3.h +Action_HydrogenBond.o : Action_HydrogenBond.cpp Action.h ActionState.h Action_HydrogenBond.h ArgList.h AssociatedData.h Atom.h AtomExtra.h AtomMask.h AtomType.h BaseIOtype.h Box.h Constants.h CoordinateInfo.h CpptrajFile.h CpptrajStdio.h DataFile.h DataFileList.h DataSet.h DataSetList.h DataSet_1D.h DataSet_Coords.h DataSet_Coords_REF.h DataSet_integer.h Dimension.h DispatchObject.h DistRoutines.h FileIO.h FileName.h FileTypes.h Frame.h ImagedAction.h MaskToken.h Matrix_3x3.h MetaData.h Molecule.h NameType.h Parallel.h ParameterHolders.h ParameterSet.h ParameterTypes.h Range.h ReferenceFrame.h ReplicaDimArray.h Residue.h StringRoutines.h SymbolExporting.h TextFormat.h Timer.h Topology.h TorsionRoutines.h TypeNameHolder.h Vec3.h +Action_Image.o : Action_Image.cpp Action.h ActionState.h Action_Image.h ArgList.h AssociatedData.h Atom.h AtomExtra.h AtomMask.h AtomType.h BaseIOtype.h Box.h Constants.h CoordinateInfo.h CpptrajFile.h CpptrajStdio.h DataFile.h DataFileList.h DataSet.h DataSetList.h DataSet_Coords.h DataSet_Coords_REF.h Dimension.h DispatchObject.h FileIO.h FileName.h FileTypes.h Frame.h ImageRoutines.h ImageTypes.h MaskToken.h Matrix_3x3.h MetaData.h Molecule.h NameType.h Parallel.h ParameterHolders.h ParameterSet.h ParameterTypes.h Range.h ReferenceFrame.h ReplicaDimArray.h Residue.h SymbolExporting.h TextFormat.h Timer.h Topology.h TypeNameHolder.h Vec3.h +Action_InfraredSpectrum.o : Action_InfraredSpectrum.cpp Action.h ActionState.h Action_InfraredSpectrum.h ArgList.h ArrayIterator.h AssociatedData.h Atom.h AtomExtra.h AtomMask.h AtomType.h BaseIOtype.h Box.h ComplexArray.h Constants.h CoordinateInfo.h Corr.h CpptrajFile.h CpptrajStdio.h DataFile.h DataFileList.h DataSet.h DataSetList.h DataSet_1D.h DataSet_Coords.h DataSet_Coords_REF.h DataSet_Vector.h DataSet_Vector_XYZ.h DataSet_double.h Dimension.h DispatchObject.h FileIO.h FileName.h FileTypes.h Frame.h MaskToken.h Matrix_3x3.h MetaData.h Molecule.h NameType.h Parallel.h ParameterHolders.h ParameterSet.h ParameterTypes.h ProgressBar.h PubFFT.h Range.h ReferenceFrame.h ReplicaDimArray.h Residue.h SymbolExporting.h TextFormat.h Timer.h Topology.h TypeNameHolder.h Vec3.h +Action_Jcoupling.o : Action_Jcoupling.cpp Action.h ActionState.h Action_Jcoupling.h ArgList.h AssociatedData.h Atom.h AtomExtra.h AtomMask.h AtomType.h BaseIOtype.h Box.h BufferedLine.h CharMask.h Constants.h CoordinateInfo.h CpptrajFile.h CpptrajStdio.h DataFile.h DataFileList.h DataSet.h DataSetList.h DataSet_Coords.h DataSet_Coords_REF.h Dimension.h DispatchObject.h FileIO.h FileName.h FileTypes.h Frame.h MaskToken.h Matrix_3x3.h MetaData.h Molecule.h NameType.h Parallel.h ParameterHolders.h ParameterSet.h ParameterTypes.h Range.h ReferenceFrame.h ReplicaDimArray.h Residue.h SymbolExporting.h TextFormat.h Timer.h Topology.h TorsionRoutines.h TypeNameHolder.h Vec3.h +Action_LESsplit.o : Action_LESsplit.cpp Action.h ActionFrameCounter.h ActionState.h Action_LESsplit.h ArgList.h AssociatedData.h Atom.h AtomExtra.h AtomMask.h AtomType.h BaseIOtype.h Box.h Constants.h CoordinateInfo.h CpptrajFile.h CpptrajStdio.h DataFile.h DataFileList.h DataSet.h DataSetList.h DataSet_Coords.h DataSet_Coords_REF.h Dimension.h DispatchObject.h FileIO.h FileName.h FileTypes.h Frame.h MaskToken.h Matrix_3x3.h MetaData.h Molecule.h NameType.h OutputTrajCommon.h Parallel.h ParameterHolders.h ParameterSet.h ParameterTypes.h Range.h ReferenceFrame.h ReplicaDimArray.h Residue.h SymbolExporting.h TextFormat.h Timer.h Topology.h TrajectoryFile.h Trajout_Single.h TypeNameHolder.h Vec3.h +Action_LIE.o : Action_LIE.cpp Action.h ActionState.h Action_LIE.h ArgList.h AssociatedData.h Atom.h AtomExtra.h AtomMask.h AtomType.h BaseIOtype.h Box.h Constants.h CoordinateInfo.h CpptrajFile.h CpptrajStdio.h DataFile.h DataFileList.h DataSet.h DataSetList.h DataSet_Coords.h DataSet_Coords_REF.h Dimension.h DispatchObject.h DistRoutines.h FileIO.h FileName.h FileTypes.h Frame.h ImagedAction.h MaskToken.h Matrix_3x3.h MetaData.h Molecule.h NameType.h Parallel.h ParameterHolders.h ParameterSet.h ParameterTypes.h Range.h ReferenceFrame.h ReplicaDimArray.h Residue.h SymbolExporting.h TextFormat.h Timer.h Topology.h TypeNameHolder.h Vec3.h +Action_LipidOrder.o : Action_LipidOrder.cpp Action.h ActionState.h Action_LipidOrder.h ArgList.h AssociatedData.h Atom.h AtomExtra.h AtomMask.h AtomType.h BaseIOtype.h Box.h CharMask.h Constants.h CoordinateInfo.h CpptrajFile.h CpptrajStdio.h DataFile.h DataFileList.h DataSet.h DataSetList.h DataSet_Coords.h DataSet_Coords_REF.h Dimension.h DispatchObject.h FileIO.h FileName.h FileTypes.h Frame.h MaskToken.h Matrix_3x3.h MetaData.h Molecule.h NameType.h Parallel.h ParameterHolders.h ParameterSet.h ParameterTypes.h Range.h ReferenceFrame.h ReplicaDimArray.h Residue.h SymbolExporting.h TextFormat.h Timer.h Topology.h TypeNameHolder.h Vec3.h +Action_MakeStructure.o : Action_MakeStructure.cpp Action.h ActionState.h Action_MakeStructure.h ArgList.h AssociatedData.h Atom.h AtomExtra.h AtomMask.h AtomType.h BaseIOtype.h Box.h Constants.h CoordinateInfo.h CpptrajFile.h CpptrajStdio.h DataFile.h DataFileList.h DataSet.h DataSetList.h DataSet_Coords.h DataSet_Coords_REF.h DihedralSearch.h Dimension.h DispatchObject.h FileIO.h FileName.h FileTypes.h Frame.h MaskToken.h Matrix_3x3.h MetaData.h Molecule.h NameType.h Parallel.h ParameterHolders.h ParameterSet.h ParameterTypes.h Range.h ReferenceFrame.h ReplicaDimArray.h Residue.h StringRoutines.h SymbolExporting.h TextFormat.h Timer.h Topology.h TorsionRoutines.h TypeNameHolder.h Vec3.h +Action_Mask.o : Action_Mask.cpp Action.h ActionFrameCounter.h ActionState.h Action_Mask.h ArgList.h AssociatedData.h Atom.h AtomExtra.h AtomMask.h AtomType.h BaseIOtype.h Box.h CharMask.h Constants.h CoordinateInfo.h CpptrajFile.h CpptrajStdio.h DataFile.h DataFileList.h DataSet.h DataSetList.h DataSet_Coords.h DataSet_Coords_REF.h Dimension.h DispatchObject.h FileIO.h FileName.h FileTypes.h Frame.h MaskToken.h Matrix_3x3.h MetaData.h Molecule.h NameType.h OutputTrajCommon.h Parallel.h ParameterHolders.h ParameterSet.h ParameterTypes.h Range.h ReferenceFrame.h ReplicaDimArray.h Residue.h SymbolExporting.h TextFormat.h Timer.h Topology.h TrajectoryFile.h Trajout_Single.h TypeNameHolder.h Vec3.h +Action_Matrix.o : Action_Matrix.cpp Action.h ActionFrameCounter.h ActionState.h Action_Matrix.h ArgList.h Array1D.h ArrayIterator.h AssociatedData.h Atom.h AtomExtra.h AtomMask.h AtomType.h BaseIOtype.h Box.h ComplexArray.h Constants.h CoordinateInfo.h CpptrajFile.h CpptrajStdio.h DataFile.h DataFileList.h DataSet.h DataSetList.h DataSet_1D.h DataSet_2D.h DataSet_Coords.h DataSet_Coords_REF.h DataSet_MatrixDbl.h DataSet_Vector.h Dimension.h DispatchObject.h DistRoutines.h FileIO.h FileName.h FileTypes.h Frame.h MaskToken.h Matrix.h Matrix_3x3.h MetaData.h Molecule.h NameType.h Parallel.h ParameterHolders.h ParameterSet.h ParameterTypes.h Range.h ReferenceFrame.h ReplicaDimArray.h Residue.h SymbolExporting.h TextFormat.h Timer.h Topology.h TypeNameHolder.h Vec3.h +Action_MinImage.o : Action_MinImage.cpp Action.h ActionState.h Action_MinImage.h ArgList.h AssociatedData.h Atom.h AtomExtra.h AtomMask.h AtomType.h BaseIOtype.h Box.h Constants.h CoordinateInfo.h CpptrajFile.h CpptrajStdio.h DataFile.h DataFileList.h DataSet.h DataSetList.h DataSet_Coords.h DataSet_Coords_REF.h Dimension.h DispatchObject.h DistRoutines.h FileIO.h FileName.h FileTypes.h Frame.h ImagedAction.h MaskToken.h Matrix_3x3.h MetaData.h Molecule.h NameType.h Parallel.h ParameterHolders.h ParameterSet.h ParameterTypes.h Range.h ReferenceFrame.h ReplicaDimArray.h Residue.h SymbolExporting.h TextFormat.h Timer.h Topology.h TypeNameHolder.h Vec3.h +Action_Molsurf.o : Action_Molsurf.cpp Action.h ActionState.h Action_Molsurf.h ArgList.h AssociatedData.h Atom.h AtomExtra.h AtomMask.h AtomType.h BaseIOtype.h Box.h Constants.h CoordinateInfo.h CpptrajFile.h CpptrajStdio.h DataFile.h DataFileList.h DataSet.h DataSetList.h DataSet_Coords.h DataSet_Coords_REF.h Dimension.h DispatchObject.h FileIO.h FileName.h FileTypes.h Frame.h MaskToken.h Matrix_3x3.h MetaData.h Molecule.h NameType.h Parallel.h ParameterHolders.h ParameterSet.h ParameterTypes.h Range.h ReferenceFrame.h ReplicaDimArray.h Residue.h SymbolExporting.h TextFormat.h Timer.h Topology.h TypeNameHolder.h Vec3.h molsurf.h +Action_MultiDihedral.o : Action_MultiDihedral.cpp Action.h ActionState.h Action_MultiDihedral.h ArgList.h AssociatedData.h Atom.h AtomExtra.h AtomMask.h AtomType.h BaseIOtype.h Box.h Constants.h CoordinateInfo.h CpptrajFile.h CpptrajStdio.h DataFile.h DataFileList.h DataSet.h DataSetList.h DataSet_1D.h DataSet_Coords.h DataSet_Coords_REF.h DataSet_double.h DihedralSearch.h Dimension.h DispatchObject.h FileIO.h FileName.h FileTypes.h Frame.h MaskToken.h Matrix_3x3.h MetaData.h Molecule.h NameType.h Parallel.h ParameterHolders.h ParameterSet.h ParameterTypes.h Range.h ReferenceFrame.h ReplicaDimArray.h Residue.h StringRoutines.h SymbolExporting.h TextFormat.h Timer.h Topology.h TorsionRoutines.h TypeNameHolder.h Vec3.h +Action_MultiVector.o : Action_MultiVector.cpp Action.h ActionState.h Action_MultiVector.h ArgList.h ArrayIterator.h AssociatedData.h Atom.h AtomExtra.h AtomMask.h AtomType.h BaseIOtype.h Box.h ComplexArray.h Constants.h CoordinateInfo.h CpptrajFile.h CpptrajStdio.h DataFile.h DataFileList.h DataSet.h DataSetList.h DataSet_1D.h DataSet_Coords.h DataSet_Coords_REF.h DataSet_Vector.h DataSet_Vector_OXYZ.h Dimension.h DispatchObject.h FileIO.h FileName.h FileTypes.h Frame.h MaskToken.h Matrix_3x3.h MetaData.h Molecule.h NameType.h Parallel.h ParameterHolders.h ParameterSet.h ParameterTypes.h Range.h ReferenceFrame.h ReplicaDimArray.h Residue.h SymbolExporting.h TextFormat.h Timer.h Topology.h TypeNameHolder.h Vec3.h +Action_NAstruct.o : Action_NAstruct.cpp Action.h ActionState.h Action_NAstruct.h ArgList.h AssociatedData.h Atom.h AtomExtra.h AtomMask.h AtomType.h AxisType.h BaseIOtype.h Box.h Constants.h CoordinateInfo.h CpptrajFile.h CpptrajStdio.h DataFile.h DataFileList.h DataSet.h DataSetList.h DataSet_1D.h DataSet_Coords.h DataSet_Coords_REF.h DataSet_float.h Dimension.h DispatchObject.h DistRoutines.h FileIO.h FileName.h FileTypes.h Frame.h MaskToken.h Matrix_3x3.h MetaData.h Molecule.h NameType.h PDBfile.h Parallel.h ParameterHolders.h ParameterSet.h ParameterTypes.h Range.h ReferenceFrame.h ReplicaDimArray.h Residue.h StringRoutines.h SymbolExporting.h TextFormat.h Timer.h Topology.h TypeNameHolder.h Vec3.h +Action_NMRrst.o : Action_NMRrst.cpp Action.h ActionState.h Action_NMRrst.h ArgList.h AssociatedData.h Atom.h AtomExtra.h AtomMap.h AtomMask.h AtomType.h BaseIOtype.h Box.h BufferedLine.h CharMask.h Constants.h CoordinateInfo.h CpptrajFile.h CpptrajStdio.h DataFile.h DataFileList.h DataSet.h DataSetList.h DataSet_1D.h DataSet_Coords.h DataSet_Coords_REF.h DataSet_double.h DataSet_float.h Dimension.h DispatchObject.h DistRoutines.h FileIO.h FileName.h FileTypes.h Frame.h ImagedAction.h MapAtom.h MaskToken.h Matrix_3x3.h MetaData.h Molecule.h NameType.h Parallel.h ParameterHolders.h ParameterSet.h ParameterTypes.h Range.h ReferenceFrame.h ReplicaDimArray.h Residue.h StringRoutines.h SymbolExporting.h TextFormat.h Timer.h Topology.h TypeNameHolder.h Vec3.h ViewRst.h +Action_NativeContacts.o : Action_NativeContacts.cpp Action.h ActionState.h Action_NativeContacts.h ArgList.h ArrayIterator.h AssociatedData.h Atom.h AtomExtra.h AtomMask.h AtomType.h BaseIOtype.h Box.h Constants.h CoordinateInfo.h CpptrajFile.h CpptrajStdio.h DataFile.h DataFileList.h DataSet.h DataSetList.h DataSet_1D.h DataSet_2D.h DataSet_Coords.h DataSet_Coords_REF.h DataSet_MatrixDbl.h DataSet_integer.h Dimension.h DispatchObject.h DistRoutines.h FileIO.h FileName.h FileTypes.h Frame.h ImagedAction.h MaskToken.h Matrix.h Matrix_3x3.h MetaData.h Molecule.h NameType.h PDBfile.h Parallel.h ParameterHolders.h ParameterSet.h ParameterTypes.h Range.h ReferenceFrame.h ReplicaDimArray.h Residue.h SymbolExporting.h TextFormat.h Timer.h Topology.h TypeNameHolder.h Vec3.h +Action_OrderParameter.o : Action_OrderParameter.cpp Action.h ActionState.h Action_OrderParameter.h ArgList.h AssociatedData.h Atom.h AtomExtra.h AtomMask.h AtomType.h BaseIOtype.h Box.h Constants.h CoordinateInfo.h CpptrajFile.h CpptrajStdio.h DataFile.h DataFileList.h DataSet.h DataSetList.h DataSet_Coords.h DataSet_Coords_REF.h Dimension.h DispatchObject.h DistRoutines.h FileIO.h FileName.h FileTypes.h Frame.h ImagedAction.h MaskToken.h Matrix_3x3.h MetaData.h Molecule.h NameType.h OnlineVarT.h Parallel.h ParameterHolders.h ParameterSet.h ParameterTypes.h Range.h ReferenceFrame.h ReplicaDimArray.h Residue.h StringRoutines.h SymbolExporting.h TextFormat.h Timer.h Topology.h TypeNameHolder.h Vec3.h +Action_Outtraj.o : Action_Outtraj.cpp Action.h ActionFrameCounter.h ActionState.h Action_Outtraj.h ArgList.h AssociatedData.h Atom.h AtomExtra.h AtomMask.h AtomType.h BaseIOtype.h Box.h Constants.h CoordinateInfo.h CpptrajFile.h CpptrajStdio.h DataFile.h DataFileList.h DataSet.h DataSetList.h DataSet_1D.h DataSet_Coords.h DataSet_Coords_REF.h Dimension.h DispatchObject.h FileIO.h FileName.h FileTypes.h Frame.h MaskToken.h Matrix_3x3.h MetaData.h Molecule.h NameType.h OutputTrajCommon.h Parallel.h ParameterHolders.h ParameterSet.h ParameterTypes.h Range.h ReferenceFrame.h ReplicaDimArray.h Residue.h SymbolExporting.h TextFormat.h Timer.h Topology.h TrajectoryFile.h Trajout_Single.h TypeNameHolder.h Vec3.h +Action_PairDist.o : Action_PairDist.cpp Action.h ActionState.h Action_PairDist.h ArgList.h AssociatedData.h Atom.h AtomExtra.h AtomMask.h AtomType.h BaseIOtype.h Box.h Constants.h CoordinateInfo.h CpptrajFile.h CpptrajStdio.h DataFile.h DataFileList.h DataSet.h DataSetList.h DataSet_1D.h DataSet_Coords.h DataSet_Coords_REF.h DataSet_Mesh.h Dimension.h DispatchObject.h DistRoutines.h FileIO.h FileName.h FileTypes.h Frame.h ImagedAction.h MaskToken.h Matrix_3x3.h MetaData.h Molecule.h NameType.h OnlineVarT.h Parallel.h ParameterHolders.h ParameterSet.h ParameterTypes.h Range.h ReferenceFrame.h ReplicaDimArray.h Residue.h Spline.h StringRoutines.h SymbolExporting.h TextFormat.h Timer.h Topology.h TypeNameHolder.h Vec3.h +Action_Pairwise.o : Action_Pairwise.cpp Action.h ActionFrameCounter.h ActionState.h Action_Pairwise.h ArgList.h ArrayIterator.h AssociatedData.h Atom.h AtomExtra.h AtomMask.h AtomType.h BaseIOtype.h Box.h Constants.h CoordinateInfo.h CpptrajFile.h CpptrajStdio.h DataFile.h DataFileList.h DataSet.h DataSetList.h DataSet_2D.h DataSet_Coords.h DataSet_Coords_REF.h DataSet_MatrixDbl.h Dimension.h DispatchObject.h FileIO.h FileName.h FileTypes.h Frame.h MaskToken.h Matrix.h Matrix_3x3.h MetaData.h Molecule.h NameType.h OutputTrajCommon.h PDBfile.h Parallel.h ParameterHolders.h ParameterSet.h ParameterTypes.h Range.h ReferenceFrame.h ReplicaDimArray.h Residue.h StringRoutines.h SymbolExporting.h TextFormat.h Timer.h Topology.h TrajectoryFile.h Trajout_Single.h TypeNameHolder.h Vec3.h +Action_Principal.o : Action_Principal.cpp Action.h ActionState.h Action_Principal.h ArgList.h ArrayIterator.h AssociatedData.h Atom.h AtomExtra.h AtomMask.h AtomType.h BaseIOtype.h Box.h ComplexArray.h Constants.h CoordinateInfo.h CpptrajFile.h CpptrajStdio.h DataFile.h DataFileList.h DataSet.h DataSetList.h DataSet_1D.h DataSet_Coords.h DataSet_Coords_REF.h DataSet_Mat3x3.h DataSet_Vector.h DataSet_Vector_XYZ.h Dimension.h DispatchObject.h FileIO.h FileName.h FileTypes.h Frame.h MaskToken.h Matrix_3x3.h MetaData.h Molecule.h NameType.h Parallel.h ParameterHolders.h ParameterSet.h ParameterTypes.h Range.h ReferenceFrame.h ReplicaDimArray.h Residue.h SymbolExporting.h TextFormat.h Timer.h Topology.h TypeNameHolder.h Vec3.h +Action_Projection.o : Action_Projection.cpp Action.h ActionFrameCounter.h ActionState.h Action_Projection.h ArgList.h Array1D.h ArrayIterator.h AssociatedData.h Atom.h AtomExtra.h AtomMask.h AtomType.h BaseIOtype.h Box.h Constants.h CoordinateInfo.h CpptrajFile.h CpptrajStdio.h DataFile.h DataFileList.h DataSet.h DataSetList.h DataSet_1D.h DataSet_2D.h DataSet_Coords.h DataSet_Coords_REF.h DataSet_MatrixDbl.h DataSet_Modes.h Dimension.h DispatchObject.h FileIO.h FileName.h FileTypes.h Frame.h MaskToken.h Matrix.h Matrix_3x3.h MetaData.h Molecule.h NameType.h Parallel.h ParameterHolders.h ParameterSet.h ParameterTypes.h Range.h ReferenceFrame.h ReplicaDimArray.h Residue.h StringRoutines.h SymbolExporting.h TextFormat.h Timer.h Topology.h TypeNameHolder.h Vec3.h +Action_Pucker.o : Action_Pucker.cpp Action.h ActionState.h Action_Pucker.h ArgList.h AssociatedData.h Atom.h AtomExtra.h AtomMask.h AtomType.h BaseIOtype.h Box.h Constants.h CoordinateInfo.h CpptrajFile.h CpptrajStdio.h DataFile.h DataFileList.h DataSet.h DataSetList.h DataSet_Coords.h DataSet_Coords_REF.h Dimension.h DispatchObject.h FileIO.h FileName.h FileTypes.h Frame.h MaskToken.h Matrix_3x3.h MetaData.h Molecule.h NameType.h Parallel.h ParameterHolders.h ParameterSet.h ParameterTypes.h Range.h ReferenceFrame.h ReplicaDimArray.h Residue.h SymbolExporting.h TextFormat.h Timer.h Topology.h TorsionRoutines.h TypeNameHolder.h Vec3.h +Action_Radgyr.o : Action_Radgyr.cpp Action.h ActionState.h Action_Radgyr.h ArgList.h AssociatedData.h Atom.h AtomExtra.h AtomMask.h AtomType.h BaseIOtype.h Box.h Constants.h CoordinateInfo.h CpptrajFile.h CpptrajStdio.h DataFile.h DataFileList.h DataSet.h DataSetList.h DataSet_Coords.h DataSet_Coords_REF.h Dimension.h DispatchObject.h FileIO.h FileName.h FileTypes.h Frame.h MaskToken.h Matrix_3x3.h MetaData.h Molecule.h NameType.h Parallel.h ParameterHolders.h ParameterSet.h ParameterTypes.h Range.h ReferenceFrame.h ReplicaDimArray.h Residue.h SymbolExporting.h TextFormat.h Timer.h Topology.h TypeNameHolder.h Vec3.h +Action_Radial.o : Action_Radial.cpp Action.h ActionState.h Action_Radial.h ArgList.h AssociatedData.h Atom.h AtomExtra.h AtomMask.h AtomType.h BaseIOtype.h Box.h Constants.h CoordinateInfo.h CpptrajFile.h CpptrajStdio.h DataFile.h DataFileList.h DataSet.h DataSetList.h DataSet_Coords.h DataSet_Coords_REF.h Dimension.h DispatchObject.h DistRoutines.h FileIO.h FileName.h FileTypes.h Frame.h ImagedAction.h MaskToken.h Matrix_3x3.h MetaData.h Molecule.h NameType.h Parallel.h ParameterHolders.h ParameterSet.h ParameterTypes.h Range.h ReferenceFrame.h ReplicaDimArray.h Residue.h SymbolExporting.h TextFormat.h Timer.h Topology.h TypeNameHolder.h Vec3.h +Action_RandomizeIons.o : Action_RandomizeIons.cpp Action.h ActionState.h Action_RandomizeIons.h ArgList.h AssociatedData.h Atom.h AtomExtra.h AtomMask.h AtomType.h BaseIOtype.h Box.h Constants.h CoordinateInfo.h CpptrajFile.h CpptrajStdio.h DataFile.h DataFileList.h DataSet.h DataSetList.h DataSet_Coords.h DataSet_Coords_REF.h Dimension.h DispatchObject.h DistRoutines.h FileIO.h FileName.h FileTypes.h Frame.h ImagedAction.h MaskToken.h Matrix_3x3.h MetaData.h Molecule.h NameType.h Parallel.h ParameterHolders.h ParameterSet.h ParameterTypes.h Random.h Range.h ReferenceFrame.h ReplicaDimArray.h Residue.h SymbolExporting.h TextFormat.h Timer.h Topology.h TypeNameHolder.h Vec3.h +Action_Remap.o : Action_Remap.cpp Action.h ActionState.h Action_Remap.h ArgList.h AssociatedData.h Atom.h AtomExtra.h AtomMask.h AtomType.h BaseIOtype.h BondSearch.h Box.h Constants.h CoordinateInfo.h CpptrajFile.h CpptrajStdio.h DataFile.h DataFileList.h DataSet.h DataSetList.h DataSet_1D.h DataSet_Coords.h DataSet_Coords_REF.h Dimension.h DispatchObject.h FileIO.h FileName.h FileTypes.h Frame.h MaskToken.h Matrix_3x3.h MetaData.h Molecule.h NameType.h Parallel.h ParameterHolders.h ParameterSet.h ParameterTypes.h ParmFile.h ParmIO.h Range.h ReferenceFrame.h ReplicaDimArray.h Residue.h SymbolExporting.h TextFormat.h Timer.h Topology.h TypeNameHolder.h Vec3.h +Action_ReplicateCell.o : Action_ReplicateCell.cpp Action.h ActionFrameCounter.h ActionState.h Action_ReplicateCell.h ArgList.h AssociatedData.h Atom.h AtomExtra.h AtomMask.h AtomType.h BaseIOtype.h BondSearch.h Box.h Constants.h CoordinateInfo.h CpptrajFile.h CpptrajStdio.h DataFile.h DataFileList.h DataSet.h DataSetList.h DataSet_Coords.h DataSet_Coords_REF.h Dimension.h DispatchObject.h DistRoutines.h FileIO.h FileName.h FileTypes.h Frame.h ImagedAction.h MaskToken.h Matrix_3x3.h MetaData.h Molecule.h NameType.h OutputTrajCommon.h Parallel.h ParameterHolders.h ParameterSet.h ParameterTypes.h ParmFile.h ParmIO.h Range.h ReferenceFrame.h ReplicaDimArray.h Residue.h SymbolExporting.h TextFormat.h Timer.h Topology.h TrajectoryFile.h Trajout_Single.h TypeNameHolder.h Vec3.h +Action_Rmsd.o : Action_Rmsd.cpp Action.h ActionState.h Action_Rmsd.h ArgList.h ArrayIterator.h AssociatedData.h Atom.h AtomExtra.h AtomMask.h AtomType.h BaseIOtype.h Box.h ComplexArray.h Constants.h CoordinateInfo.h CpptrajFile.h CpptrajStdio.h DataFile.h DataFileList.h DataSet.h DataSetList.h DataSet_1D.h DataSet_Coords.h DataSet_Coords_REF.h DataSet_Mesh.h DataSet_Vector.h DataSet_Vector_OXYZ.h DataSet_Vector_XYZ.h Dimension.h DispatchObject.h FileIO.h FileName.h FileTypes.h Frame.h MaskToken.h Matrix_3x3.h MetaData.h Molecule.h NameType.h Parallel.h ParameterHolders.h ParameterSet.h ParameterTypes.h Range.h ReferenceAction.h ReferenceFrame.h ReplicaDimArray.h Residue.h Spline.h StringRoutines.h SymbolExporting.h TextFormat.h Timer.h Topology.h TypeNameHolder.h Vec3.h +Action_Rotate.o : Action_Rotate.cpp Action.h ActionState.h Action_Rotate.h ArgList.h AssociatedData.h Atom.h AtomExtra.h AtomMask.h AtomType.h BaseIOtype.h Box.h Constants.h CoordinateInfo.h CpptrajFile.h CpptrajStdio.h DataFile.h DataFileList.h DataSet.h DataSetList.h DataSet_Coords.h DataSet_Coords_REF.h DataSet_Mat3x3.h Dimension.h DispatchObject.h FileIO.h FileName.h FileTypes.h Frame.h MaskToken.h Matrix_3x3.h MetaData.h Molecule.h NameType.h Parallel.h ParameterHolders.h ParameterSet.h ParameterTypes.h Range.h ReferenceFrame.h ReplicaDimArray.h Residue.h SymbolExporting.h TextFormat.h Timer.h Topology.h TypeNameHolder.h Vec3.h +Action_RunningAvg.o : Action_RunningAvg.cpp Action.h ActionState.h Action_RunningAvg.h ArgList.h AssociatedData.h Atom.h AtomExtra.h AtomMask.h AtomType.h BaseIOtype.h Box.h Constants.h CoordinateInfo.h CpptrajFile.h CpptrajStdio.h DataFile.h DataFileList.h DataSet.h DataSetList.h DataSet_Coords.h DataSet_Coords_REF.h Dimension.h DispatchObject.h FileIO.h FileName.h FileTypes.h Frame.h MaskToken.h Matrix_3x3.h MetaData.h Molecule.h NameType.h Parallel.h ParameterHolders.h ParameterSet.h ParameterTypes.h Range.h ReferenceFrame.h ReplicaDimArray.h Residue.h SymbolExporting.h TextFormat.h Timer.h Topology.h TypeNameHolder.h Vec3.h +Action_STFC_Diffusion.o : Action_STFC_Diffusion.cpp Action.h ActionState.h Action_STFC_Diffusion.h ArgList.h AssociatedData.h Atom.h AtomExtra.h AtomMask.h AtomType.h BaseIOtype.h Box.h Constants.h CoordinateInfo.h CpptrajFile.h CpptrajStdio.h DataFile.h DataFileList.h DataSet.h DataSetList.h DataSet_Coords.h DataSet_Coords_REF.h Dimension.h DispatchObject.h DistRoutines.h FileIO.h FileName.h FileTypes.h Frame.h ImagedAction.h MaskToken.h Matrix_3x3.h MetaData.h Molecule.h NameType.h Parallel.h ParameterHolders.h ParameterSet.h ParameterTypes.h Range.h ReferenceFrame.h ReplicaDimArray.h Residue.h SymbolExporting.h TextFormat.h Timer.h Topology.h TypeNameHolder.h Vec3.h +Action_Scale.o : Action_Scale.cpp Action.h ActionState.h Action_Scale.h ArgList.h AssociatedData.h Atom.h AtomExtra.h AtomMask.h AtomType.h BaseIOtype.h Box.h Constants.h CoordinateInfo.h CpptrajFile.h CpptrajStdio.h DataFile.h DataFileList.h DataSet.h DataSetList.h DataSet_Coords.h DataSet_Coords_REF.h Dimension.h DispatchObject.h FileIO.h FileName.h FileTypes.h Frame.h MaskToken.h Matrix_3x3.h MetaData.h Molecule.h NameType.h Parallel.h ParameterHolders.h ParameterSet.h ParameterTypes.h Range.h ReferenceFrame.h ReplicaDimArray.h Residue.h SymbolExporting.h TextFormat.h Timer.h Topology.h TypeNameHolder.h Vec3.h +Action_SetVelocity.o : Action_SetVelocity.cpp Action.h ActionState.h Action_SetVelocity.h ArgList.h AssociatedData.h Atom.h AtomExtra.h AtomMask.h AtomType.h BaseIOtype.h Box.h Constants.h Constraints.h CoordinateInfo.h CpptrajFile.h CpptrajStdio.h DataFile.h DataFileList.h DataSet.h DataSetList.h DataSet_Coords.h DataSet_Coords_REF.h Dimension.h DispatchObject.h FileIO.h FileName.h FileTypes.h Frame.h MaskToken.h Matrix_3x3.h MetaData.h Molecule.h NameType.h Parallel.h ParameterHolders.h ParameterSet.h ParameterTypes.h Random.h Range.h ReferenceFrame.h ReplicaDimArray.h Residue.h SymbolExporting.h TextFormat.h Timer.h Topology.h TypeNameHolder.h Vec3.h +Action_Spam.o : Action_Spam.cpp Action.h ActionState.h Action_Spam.h ArgList.h AssociatedData.h Atom.h AtomExtra.h AtomMask.h AtomType.h BaseIOtype.h Box.h Constants.h CoordinateInfo.h CpptrajFile.h CpptrajStdio.h DataFile.h DataFileList.h DataSet.h DataSetList.h DataSet_1D.h DataSet_Coords.h DataSet_Coords_REF.h DataSet_Mesh.h DataSet_double.h Dimension.h DispatchObject.h DistRoutines.h FileIO.h FileName.h FileTypes.h Frame.h HistBin.h ImagedAction.h KDE.h MaskToken.h Matrix_3x3.h MetaData.h Molecule.h NameType.h OnlineVarT.h PairList.h Parallel.h ParameterHolders.h ParameterSet.h ParameterTypes.h Range.h ReferenceFrame.h ReplicaDimArray.h Residue.h Spline.h StringRoutines.h SymbolExporting.h TextFormat.h Timer.h Topology.h TypeNameHolder.h Vec3.h +Action_Strip.o : Action_Strip.cpp Action.h ActionState.h Action_Strip.h ArgList.h AssociatedData.h Atom.h AtomExtra.h AtomMask.h AtomType.h BaseIOtype.h BondSearch.h Box.h Constants.h CoordinateInfo.h CpptrajFile.h CpptrajStdio.h DataFile.h DataFileList.h DataSet.h DataSetList.h DataSet_Coords.h DataSet_Coords_REF.h Dimension.h DispatchObject.h FileIO.h FileName.h FileTypes.h Frame.h MaskToken.h Matrix_3x3.h MetaData.h Molecule.h NameType.h Parallel.h ParameterHolders.h ParameterSet.h ParameterTypes.h ParmFile.h ParmIO.h Range.h ReferenceFrame.h ReplicaDimArray.h Residue.h SymbolExporting.h TextFormat.h Timer.h Topology.h TypeNameHolder.h Vec3.h +Action_Surf.o : Action_Surf.cpp Action.h ActionState.h Action_Surf.h ArgList.h AssociatedData.h Atom.h AtomExtra.h AtomMask.h AtomType.h BaseIOtype.h Box.h CharMask.h Constants.h CoordinateInfo.h CpptrajFile.h CpptrajStdio.h DataFile.h DataFileList.h DataSet.h DataSetList.h DataSet_Coords.h DataSet_Coords_REF.h Dimension.h DispatchObject.h DistRoutines.h FileIO.h FileName.h FileTypes.h Frame.h MaskToken.h Matrix_3x3.h MetaData.h Molecule.h NameType.h Parallel.h ParameterHolders.h ParameterSet.h ParameterTypes.h Range.h ReferenceFrame.h ReplicaDimArray.h Residue.h SymbolExporting.h TextFormat.h Timer.h Topology.h TypeNameHolder.h Vec3.h +Action_SymmetricRmsd.o : Action_SymmetricRmsd.cpp Action.h ActionState.h Action_SymmetricRmsd.h ArgList.h ArrayIterator.h AssociatedData.h Atom.h AtomExtra.h AtomMap.h AtomMask.h AtomType.h BaseIOtype.h Box.h Constants.h CoordinateInfo.h CpptrajFile.h CpptrajStdio.h DataFile.h DataFileList.h DataSet.h DataSetList.h DataSet_Coords.h DataSet_Coords_REF.h Dimension.h DispatchObject.h DistRoutines.h FileIO.h FileName.h FileTypes.h Frame.h Hungarian.h MapAtom.h MaskToken.h Matrix.h Matrix_3x3.h MetaData.h Molecule.h NameType.h Parallel.h ParameterHolders.h ParameterSet.h ParameterTypes.h Range.h ReferenceAction.h ReferenceFrame.h ReplicaDimArray.h Residue.h SymbolExporting.h SymmetricRmsdCalc.h TextFormat.h Timer.h Topology.h TypeNameHolder.h Vec3.h +Action_Temperature.o : Action_Temperature.cpp Action.h ActionState.h Action_Temperature.h ArgList.h AssociatedData.h Atom.h AtomExtra.h AtomMask.h AtomType.h BaseIOtype.h Box.h Constants.h Constraints.h CoordinateInfo.h CpptrajFile.h CpptrajStdio.h DataFile.h DataFileList.h DataSet.h DataSetList.h DataSet_Coords.h DataSet_Coords_REF.h Dimension.h DispatchObject.h FileIO.h FileName.h FileTypes.h Frame.h MaskToken.h Matrix_3x3.h MetaData.h Molecule.h NameType.h Parallel.h ParameterHolders.h ParameterSet.h ParameterTypes.h Range.h ReferenceFrame.h ReplicaDimArray.h Residue.h SymbolExporting.h TextFormat.h Timer.h Topology.h TypeNameHolder.h Vec3.h +Action_Time.o : Action_Time.cpp Action.h ActionState.h Action_Time.h ArgList.h AssociatedData.h Atom.h AtomExtra.h AtomMask.h AtomType.h BaseIOtype.h Box.h Constants.h CoordinateInfo.h CpptrajFile.h CpptrajStdio.h DataFile.h DataFileList.h DataSet.h DataSetList.h DataSet_Coords.h DataSet_Coords_REF.h Dimension.h DispatchObject.h FileIO.h FileName.h FileTypes.h Frame.h MaskToken.h Matrix_3x3.h MetaData.h Molecule.h NameType.h Parallel.h ParameterHolders.h ParameterSet.h ParameterTypes.h Range.h ReferenceFrame.h ReplicaDimArray.h Residue.h SymbolExporting.h TextFormat.h Timer.h Topology.h TypeNameHolder.h Vec3.h +Action_Translate.o : Action_Translate.cpp Action.h ActionState.h Action_Translate.h ArgList.h AssociatedData.h Atom.h AtomExtra.h AtomMask.h AtomType.h BaseIOtype.h Box.h Constants.h CoordinateInfo.h CpptrajFile.h CpptrajStdio.h DataFile.h DataFileList.h DataSet.h DataSetList.h DataSet_Coords.h DataSet_Coords_REF.h Dimension.h DispatchObject.h FileIO.h FileName.h FileTypes.h Frame.h MaskToken.h Matrix_3x3.h MetaData.h Molecule.h NameType.h Parallel.h ParameterHolders.h ParameterSet.h ParameterTypes.h Range.h ReferenceFrame.h ReplicaDimArray.h Residue.h SymbolExporting.h TextFormat.h Timer.h Topology.h TypeNameHolder.h Vec3.h +Action_Unstrip.o : Action_Unstrip.cpp Action.h ActionState.h Action_Unstrip.h ArgList.h AssociatedData.h Atom.h AtomExtra.h AtomMask.h AtomType.h BaseIOtype.h Box.h Constants.h CoordinateInfo.h CpptrajFile.h CpptrajStdio.h DataFile.h DataFileList.h DataSet.h DataSetList.h DataSet_Coords.h DataSet_Coords_REF.h Dimension.h DispatchObject.h FileIO.h FileName.h FileTypes.h Frame.h MaskToken.h Matrix_3x3.h MetaData.h Molecule.h NameType.h Parallel.h ParameterHolders.h ParameterSet.h ParameterTypes.h Range.h ReferenceFrame.h ReplicaDimArray.h Residue.h SymbolExporting.h TextFormat.h Timer.h Topology.h TypeNameHolder.h Vec3.h +Action_Unwrap.o : Action_Unwrap.cpp Action.h ActionState.h Action_Unwrap.h ArgList.h AssociatedData.h Atom.h AtomExtra.h AtomMask.h AtomType.h BaseIOtype.h Box.h Constants.h CoordinateInfo.h CpptrajFile.h CpptrajStdio.h DataFile.h DataFileList.h DataSet.h DataSetList.h DataSet_Coords.h DataSet_Coords_REF.h Dimension.h DispatchObject.h FileIO.h FileName.h FileTypes.h Frame.h ImageRoutines.h ImageTypes.h MaskToken.h Matrix_3x3.h MetaData.h Molecule.h NameType.h Parallel.h ParameterHolders.h ParameterSet.h ParameterTypes.h Range.h ReferenceFrame.h ReplicaDimArray.h Residue.h SymbolExporting.h TextFormat.h Timer.h Topology.h TypeNameHolder.h Vec3.h +Action_Vector.o : Action_Vector.cpp Action.h ActionState.h Action_Vector.h ArgList.h ArrayIterator.h AssociatedData.h Atom.h AtomExtra.h AtomMask.h AtomType.h BaseIOtype.h Box.h ComplexArray.h Constants.h CoordinateInfo.h CpptrajFile.h CpptrajStdio.h DataFile.h DataFileList.h DataSet.h DataSetList.h DataSet_1D.h DataSet_Coords.h DataSet_Coords_REF.h DataSet_Vector.h DataSet_Vector_OXYZ.h Dimension.h DispatchObject.h DistRoutines.h FileIO.h FileName.h FileTypes.h Frame.h MaskToken.h Matrix_3x3.h MetaData.h Molecule.h NameType.h Parallel.h ParameterHolders.h ParameterSet.h ParameterTypes.h Range.h ReferenceFrame.h ReplicaDimArray.h Residue.h SymbolExporting.h TextFormat.h Timer.h Topology.h TypeNameHolder.h Vec3.h +Action_VelocityAutoCorr.o : Action_VelocityAutoCorr.cpp Action.h ActionState.h Action_VelocityAutoCorr.h ArgList.h ArrayIterator.h AssociatedData.h Atom.h AtomExtra.h AtomMask.h AtomType.h BaseIOtype.h Box.h ComplexArray.h Constants.h CoordinateInfo.h Corr.h CpptrajFile.h CpptrajStdio.h DataFile.h DataFileList.h DataSet.h DataSetList.h DataSet_1D.h DataSet_Coords.h DataSet_Coords_REF.h DataSet_Vector.h DataSet_Vector_XYZ.h DataSet_double.h Dimension.h DispatchObject.h FileIO.h FileName.h FileTypes.h Frame.h MaskToken.h Matrix_3x3.h MetaData.h Molecule.h NameType.h Parallel.h ParameterHolders.h ParameterSet.h ParameterTypes.h ProgressBar.h PubFFT.h Range.h ReferenceFrame.h ReplicaDimArray.h Residue.h SymbolExporting.h TextFormat.h Timer.h Topology.h TypeNameHolder.h Vec3.h +Action_Volmap.o : Action_Volmap.cpp Action.h ActionState.h Action_Volmap.h ArgList.h ArrayIterator.h AssociatedData.h Atom.h AtomExtra.h AtomMask.h AtomType.h BaseIOtype.h Box.h Constants.h CoordinateInfo.h CpptrajFile.h CpptrajStdio.h DataFile.h DataFileList.h DataSet.h DataSetList.h DataSet_3D.h DataSet_Coords.h DataSet_Coords_REF.h DataSet_GridFlt.h Dimension.h DispatchObject.h FileIO.h FileName.h FileTypes.h Frame.h Grid.h GridBin.h MaskToken.h Matrix_3x3.h MetaData.h Molecule.h NameType.h Parallel.h ParameterHolders.h ParameterSet.h ParameterTypes.h Range.h ReferenceFrame.h ReplicaDimArray.h Residue.h SymbolExporting.h TextFormat.h Timer.h Topology.h TypeNameHolder.h Vec3.h +Action_Volume.o : Action_Volume.cpp Action.h ActionState.h Action_Volume.h ArgList.h AssociatedData.h Atom.h AtomExtra.h AtomMask.h AtomType.h BaseIOtype.h Box.h Constants.h CoordinateInfo.h CpptrajFile.h CpptrajStdio.h DataFile.h DataFileList.h DataSet.h DataSetList.h DataSet_1D.h DataSet_Coords.h DataSet_Coords_REF.h Dimension.h DispatchObject.h DistRoutines.h FileIO.h FileName.h FileTypes.h Frame.h ImagedAction.h MaskToken.h Matrix_3x3.h MetaData.h Molecule.h NameType.h Parallel.h ParameterHolders.h ParameterSet.h ParameterTypes.h Range.h ReferenceFrame.h ReplicaDimArray.h Residue.h SymbolExporting.h TextFormat.h Timer.h Topology.h TypeNameHolder.h Vec3.h +Action_Watershell.o : Action_Watershell.cpp Action.h ActionState.h Action_Watershell.h ArgList.h AssociatedData.h Atom.h AtomExtra.h AtomMask.h AtomType.h BaseIOtype.h Box.h CharMask.h Constants.h CoordinateInfo.h CpptrajFile.h CpptrajStdio.h DataFile.h DataFileList.h DataSet.h DataSetList.h DataSet_Coords.h DataSet_Coords_REF.h Dimension.h DispatchObject.h DistRoutines.h FileIO.h FileName.h FileTypes.h Frame.h ImageRoutines.h ImageTypes.h ImagedAction.h MaskToken.h Matrix_3x3.h MetaData.h Molecule.h NameType.h Parallel.h ParameterHolders.h ParameterSet.h ParameterTypes.h Range.h ReferenceFrame.h ReplicaDimArray.h Residue.h SymbolExporting.h TextFormat.h Timer.h Topology.h TypeNameHolder.h Vec3.h +Action_XtalSymm.o : Action_XtalSymm.cpp Action.h ActionState.h Action_XtalSymm.h ArgList.h ArrayIterator.h AssociatedData.h Atom.h AtomExtra.h AtomMask.h AtomType.h BaseIOtype.h Box.h Constants.h CoordinateInfo.h CpptrajFile.h CpptrajStdio.h DataFile.h DataFileList.h DataSet.h DataSetList.h DataSet_Coords.h DataSet_Coords_REF.h Dimension.h DispatchObject.h FileIO.h FileName.h FileTypes.h Frame.h MaskToken.h Matrix.h Matrix_3x3.h MetaData.h Molecule.h NameType.h Parallel.h ParameterHolders.h ParameterSet.h ParameterTypes.h Range.h ReferenceFrame.h ReplicaDimArray.h Residue.h SpaceGroup.h SymbolExporting.h TextFormat.h Timer.h Topology.h TypeNameHolder.h Vec3.h +AnalysisList.o : AnalysisList.cpp ActionState.h Analysis.h AnalysisList.h AnalysisState.h ArgList.h AssociatedData.h Atom.h AtomExtra.h AtomMask.h AtomType.h BaseIOtype.h Box.h Constants.h CoordinateInfo.h CpptrajFile.h CpptrajStdio.h DataFile.h DataFileList.h DataSet.h DataSetList.h DataSet_Coords.h DataSet_Coords_REF.h Dimension.h DispatchObject.h FileIO.h FileName.h FileTypes.h Frame.h MaskToken.h Matrix_3x3.h MetaData.h Molecule.h NameType.h Parallel.h ParameterHolders.h ParameterSet.h ParameterTypes.h Range.h ReferenceFrame.h ReplicaDimArray.h Residue.h SymbolExporting.h TextFormat.h Timer.h Topology.h TypeNameHolder.h Vec3.h +Analysis_AmdBias.o : Analysis_AmdBias.cpp ActionState.h Analysis.h AnalysisState.h Analysis_AmdBias.h ArgList.h AssociatedData.h Atom.h AtomExtra.h AtomMask.h AtomType.h BaseIOtype.h Box.h Constants.h CoordinateInfo.h CpptrajFile.h CpptrajStdio.h DataFile.h DataFileList.h DataSet.h DataSetList.h DataSet_1D.h DataSet_Coords.h DataSet_Coords_REF.h DataSet_double.h Dimension.h DispatchObject.h FileIO.h FileName.h FileTypes.h Frame.h MaskToken.h Matrix_3x3.h MetaData.h Molecule.h NameType.h Parallel.h ParameterHolders.h ParameterSet.h ParameterTypes.h Range.h ReferenceFrame.h ReplicaDimArray.h Residue.h SymbolExporting.h TextFormat.h Timer.h Topology.h TypeNameHolder.h Vec3.h +Analysis_AutoCorr.o : Analysis_AutoCorr.cpp ActionState.h Analysis.h AnalysisState.h Analysis_AutoCorr.h ArgList.h ArrayIterator.h AssociatedData.h Atom.h AtomExtra.h AtomMask.h AtomType.h BaseIOtype.h Box.h ComplexArray.h Constants.h CoordinateInfo.h CpptrajFile.h CpptrajStdio.h DataFile.h DataFileList.h DataSet.h DataSetList.h DataSet_1D.h DataSet_Coords.h DataSet_Coords_REF.h DataSet_Vector.h Dimension.h DispatchObject.h FileIO.h FileName.h FileTypes.h Frame.h MaskToken.h Matrix_3x3.h MetaData.h Molecule.h NameType.h Parallel.h ParameterHolders.h ParameterSet.h ParameterTypes.h Range.h ReferenceFrame.h ReplicaDimArray.h Residue.h SymbolExporting.h TextFormat.h Timer.h Topology.h TypeNameHolder.h Vec3.h +Analysis_Average.o : Analysis_Average.cpp ActionState.h Analysis.h AnalysisState.h Analysis_Average.h ArgList.h Array1D.h AssociatedData.h Atom.h AtomExtra.h AtomMask.h AtomType.h BaseIOtype.h Box.h Constants.h CoordinateInfo.h CpptrajFile.h CpptrajStdio.h DataFile.h DataFileList.h DataSet.h DataSetList.h DataSet_1D.h DataSet_Coords.h DataSet_Coords_REF.h Dimension.h DispatchObject.h FileIO.h FileName.h FileTypes.h Frame.h MaskToken.h Matrix_3x3.h MetaData.h Molecule.h NameType.h Parallel.h ParameterHolders.h ParameterSet.h ParameterTypes.h Range.h ReferenceFrame.h ReplicaDimArray.h Residue.h SymbolExporting.h TextFormat.h Timer.h Topology.h TypeNameHolder.h Vec3.h +Analysis_Clustering.o : Analysis_Clustering.cpp ActionFrameCounter.h ActionState.h Analysis.h AnalysisState.h Analysis_Clustering.h ArgList.h ArrayIterator.h AssociatedData.h Atom.h AtomExtra.h AtomMap.h AtomMask.h AtomType.h BaseIOtype.h Box.h ClusterDist.h ClusterList.h ClusterMatrix.h ClusterNode.h ClusterSieve.h Cluster_DBSCAN.h Cluster_DPeaks.h Cluster_HierAgglo.h Cluster_Kmeans.h Cluster_ReadInfo.h Constants.h CoordinateInfo.h CpptrajFile.h CpptrajStdio.h DataFile.h DataFileList.h DataSet.h DataSetList.h DataSet_1D.h DataSet_Cmatrix.h DataSet_Coords.h DataSet_Coords_REF.h DataSet_float.h DataSet_integer.h Dimension.h DispatchObject.h FileIO.h FileName.h FileTypes.h Frame.h Hungarian.h MapAtom.h MaskToken.h Matrix.h Matrix_3x3.h MetaData.h Molecule.h NameType.h OutputTrajCommon.h Parallel.h ParameterHolders.h ParameterSet.h ParameterTypes.h Random.h Range.h ReferenceFrame.h ReplicaDimArray.h Residue.h StringRoutines.h SymbolExporting.h SymmetricRmsdCalc.h TextFormat.h Timer.h Topology.h TrajectoryFile.h Trajout_Single.h TypeNameHolder.h Vec3.h +Analysis_ConstantPHStats.o : Analysis_ConstantPHStats.cpp ActionState.h Analysis.h AnalysisState.h Analysis_ConstantPHStats.h ArgList.h AssociatedData.h Atom.h AtomExtra.h AtomMask.h AtomType.h BaseIOtype.h Box.h Constants.h CoordinateInfo.h Cph.h CpptrajFile.h CpptrajStdio.h DataFile.h DataFileList.h DataSet.h DataSetList.h DataSet_1D.h DataSet_Coords.h DataSet_Coords_REF.h DataSet_Mesh.h DataSet_pH.h Dimension.h DispatchObject.h FileIO.h FileName.h FileTypes.h Frame.h MaskToken.h Matrix_3x3.h MetaData.h Molecule.h NameType.h Parallel.h ParameterHolders.h ParameterSet.h ParameterTypes.h Range.h ReferenceFrame.h ReplicaDimArray.h Residue.h Spline.h StringRoutines.h SymbolExporting.h TextFormat.h Timer.h Topology.h TypeNameHolder.h Vec3.h +Analysis_Corr.o : Analysis_Corr.cpp ActionState.h Analysis.h AnalysisState.h Analysis_Corr.h ArgList.h ArrayIterator.h AssociatedData.h Atom.h AtomExtra.h AtomMask.h AtomType.h BaseIOtype.h Box.h ComplexArray.h Constants.h CoordinateInfo.h CpptrajFile.h CpptrajStdio.h DataFile.h DataFileList.h DataSet.h DataSetList.h DataSet_1D.h DataSet_Coords.h DataSet_Coords_REF.h DataSet_Vector.h Dimension.h DispatchObject.h FileIO.h FileName.h FileTypes.h Frame.h MaskToken.h Matrix_3x3.h MetaData.h Molecule.h NameType.h Parallel.h ParameterHolders.h ParameterSet.h ParameterTypes.h Range.h ReferenceFrame.h ReplicaDimArray.h Residue.h SymbolExporting.h TextFormat.h Timer.h Topology.h TypeNameHolder.h Vec3.h +Analysis_CrankShaft.o : Analysis_CrankShaft.cpp ActionState.h Analysis.h AnalysisState.h Analysis_CrankShaft.h Analysis_Statistics.h ArgList.h Array1D.h AssociatedData.h Atom.h AtomExtra.h AtomMask.h AtomType.h BaseIOtype.h Box.h Constants.h CoordinateInfo.h CpptrajFile.h CpptrajStdio.h DataFile.h DataFileList.h DataSet.h DataSetList.h DataSet_1D.h DataSet_Coords.h DataSet_Coords_REF.h DataSet_float.h DataSet_integer.h DataSet_string.h Dimension.h DispatchObject.h FileIO.h FileName.h FileTypes.h Frame.h MaskToken.h Matrix_3x3.h MetaData.h Molecule.h NameType.h Parallel.h ParameterHolders.h ParameterSet.h ParameterTypes.h Range.h ReferenceFrame.h ReplicaDimArray.h Residue.h SymbolExporting.h TextFormat.h Timer.h Topology.h TypeNameHolder.h Vec3.h +Analysis_CrdFluct.o : Analysis_CrdFluct.cpp ActionState.h Analysis.h AnalysisState.h Analysis_CrdFluct.h ArgList.h AssociatedData.h Atom.h AtomExtra.h AtomMask.h AtomType.h BaseIOtype.h Box.h Constants.h CoordinateInfo.h CpptrajFile.h CpptrajStdio.h DataFile.h DataFileList.h DataSet.h DataSetList.h DataSet_Coords.h DataSet_Coords_REF.h Dimension.h DispatchObject.h FileIO.h FileName.h FileTypes.h Frame.h MaskToken.h Matrix_3x3.h MetaData.h Molecule.h NameType.h Parallel.h ParameterHolders.h ParameterSet.h ParameterTypes.h Range.h ReferenceFrame.h ReplicaDimArray.h Residue.h StringRoutines.h SymbolExporting.h TextFormat.h Timer.h Topology.h TypeNameHolder.h Vec3.h +Analysis_CrossCorr.o : Analysis_CrossCorr.cpp ActionState.h Analysis.h AnalysisState.h Analysis_CrossCorr.h ArgList.h Array1D.h ArrayIterator.h AssociatedData.h Atom.h AtomExtra.h AtomMask.h AtomType.h BaseIOtype.h Box.h Constants.h CoordinateInfo.h CpptrajFile.h CpptrajStdio.h DataFile.h DataFileList.h DataSet.h DataSetList.h DataSet_1D.h DataSet_2D.h DataSet_Coords.h DataSet_Coords_REF.h DataSet_MatrixFlt.h Dimension.h DispatchObject.h FileIO.h FileName.h FileTypes.h Frame.h MaskToken.h Matrix.h Matrix_3x3.h MetaData.h Molecule.h NameType.h Parallel.h ParameterHolders.h ParameterSet.h ParameterTypes.h Range.h ReferenceFrame.h ReplicaDimArray.h Residue.h StringRoutines.h SymbolExporting.h TextFormat.h Timer.h Topology.h TypeNameHolder.h Vec3.h +Analysis_CurveFit.o : Analysis_CurveFit.cpp ActionState.h Analysis.h AnalysisState.h Analysis_CurveFit.h ArgList.h AssociatedData.h Atom.h AtomExtra.h AtomMask.h AtomType.h BaseIOtype.h Box.h Constants.h CoordinateInfo.h CpptrajFile.h CpptrajStdio.h CurveFit.h DataFile.h DataFileList.h DataSet.h DataSetList.h DataSet_1D.h DataSet_Coords.h DataSet_Coords_REF.h DataSet_Mesh.h Dimension.h DispatchObject.h FileIO.h FileName.h FileTypes.h Frame.h MaskToken.h Matrix_3x3.h MetaData.h Molecule.h NameType.h Parallel.h ParameterHolders.h ParameterSet.h ParameterTypes.h RPNcalc.h Range.h ReferenceFrame.h ReplicaDimArray.h Residue.h Spline.h StringRoutines.h SymbolExporting.h TextFormat.h Timer.h Topology.h TypeNameHolder.h Vec3.h +Analysis_Divergence.o : Analysis_Divergence.cpp ActionState.h Analysis.h AnalysisState.h Analysis_Divergence.h ArgList.h AssociatedData.h Atom.h AtomExtra.h AtomMask.h AtomType.h BaseIOtype.h Box.h Constants.h CoordinateInfo.h CpptrajFile.h CpptrajStdio.h DataFile.h DataFileList.h DataSet.h DataSetList.h DataSet_1D.h DataSet_Coords.h DataSet_Coords_REF.h Dimension.h DispatchObject.h FileIO.h FileName.h FileTypes.h Frame.h MaskToken.h Matrix_3x3.h MetaData.h Molecule.h NameType.h Parallel.h ParameterHolders.h ParameterSet.h ParameterTypes.h Range.h ReferenceFrame.h ReplicaDimArray.h Residue.h SymbolExporting.h TextFormat.h Timer.h Topology.h TypeNameHolder.h Vec3.h +Analysis_FFT.o : Analysis_FFT.cpp ActionState.h Analysis.h AnalysisState.h Analysis_FFT.h ArgList.h Array1D.h ArrayIterator.h AssociatedData.h Atom.h AtomExtra.h AtomMask.h AtomType.h BaseIOtype.h Box.h ComplexArray.h Constants.h CoordinateInfo.h CpptrajFile.h CpptrajStdio.h DataFile.h DataFileList.h DataSet.h DataSetList.h DataSet_1D.h DataSet_Coords.h DataSet_Coords_REF.h Dimension.h DispatchObject.h FileIO.h FileName.h FileTypes.h Frame.h MaskToken.h Matrix_3x3.h MetaData.h Molecule.h NameType.h Parallel.h ParameterHolders.h ParameterSet.h ParameterTypes.h PubFFT.h Range.h ReferenceFrame.h ReplicaDimArray.h Residue.h SymbolExporting.h TextFormat.h Timer.h Topology.h TypeNameHolder.h Vec3.h +Analysis_HausdorffDistance.o : Analysis_HausdorffDistance.cpp ActionState.h Analysis.h AnalysisState.h Analysis_HausdorffDistance.h ArgList.h ArrayIterator.h AssociatedData.h Atom.h AtomExtra.h AtomMask.h AtomType.h BaseIOtype.h Box.h Constants.h CoordinateInfo.h CpptrajFile.h CpptrajStdio.h DataFile.h DataFileList.h DataSet.h DataSetList.h DataSet_2D.h DataSet_Coords.h DataSet_Coords_REF.h DataSet_MatrixFlt.h Dimension.h DispatchObject.h FileIO.h FileName.h FileTypes.h Frame.h MaskToken.h Matrix.h Matrix_3x3.h MetaData.h Molecule.h NameType.h Parallel.h ParameterHolders.h ParameterSet.h ParameterTypes.h Range.h ReferenceFrame.h ReplicaDimArray.h Residue.h SymbolExporting.h TextFormat.h Timer.h Topology.h TypeNameHolder.h Vec3.h +Analysis_Hist.o : Analysis_Hist.cpp ActionFrameCounter.h ActionState.h Analysis.h AnalysisState.h Analysis_Hist.h ArgList.h ArrayIterator.h AssociatedData.h Atom.h AtomExtra.h AtomMask.h AtomType.h BaseIOtype.h BondSearch.h Box.h Constants.h CoordinateInfo.h CpptrajFile.h CpptrajStdio.h DataFile.h DataFileList.h DataSet.h DataSetList.h DataSet_1D.h DataSet_2D.h DataSet_3D.h DataSet_Coords.h DataSet_Coords_REF.h DataSet_GridFlt.h DataSet_MatrixDbl.h DataSet_double.h Dimension.h DispatchObject.h FileIO.h FileName.h FileTypes.h Frame.h Grid.h GridBin.h HistBin.h MaskToken.h Matrix.h Matrix_3x3.h MetaData.h Molecule.h NameType.h OutputTrajCommon.h Parallel.h ParameterHolders.h ParameterSet.h ParameterTypes.h ParmFile.h ParmIO.h Range.h ReferenceFrame.h ReplicaDimArray.h Residue.h StringRoutines.h SymbolExporting.h TextFormat.h Timer.h Topology.h TrajectoryFile.h Trajout_Single.h TypeNameHolder.h Vec3.h +Analysis_IRED.o : Analysis_IRED.cpp ActionState.h Analysis.h AnalysisState.h Analysis_IRED.h ArgList.h ArrayIterator.h AssociatedData.h Atom.h AtomExtra.h AtomMask.h AtomType.h BaseIOtype.h Box.h ComplexArray.h Constants.h CoordinateInfo.h Corr.h CpptrajFile.h CpptrajStdio.h DataFile.h DataFileList.h DataSet.h DataSetList.h DataSet_1D.h DataSet_2D.h DataSet_Coords.h DataSet_Coords_REF.h DataSet_MatrixDbl.h DataSet_Modes.h DataSet_Vector.h DataSet_double.h Dimension.h DispatchObject.h FileIO.h FileName.h FileTypes.h Frame.h MaskToken.h Matrix.h Matrix_3x3.h MetaData.h Molecule.h NameType.h Parallel.h ParameterHolders.h ParameterSet.h ParameterTypes.h PubFFT.h Range.h ReferenceFrame.h ReplicaDimArray.h Residue.h SymbolExporting.h TextFormat.h Timer.h Topology.h TypeNameHolder.h Vec3.h +Analysis_Integrate.o : Analysis_Integrate.cpp ActionState.h Analysis.h AnalysisState.h Analysis_Integrate.h ArgList.h Array1D.h AssociatedData.h Atom.h AtomExtra.h AtomMask.h AtomType.h BaseIOtype.h Box.h Constants.h CoordinateInfo.h CpptrajFile.h CpptrajStdio.h DataFile.h DataFileList.h DataSet.h DataSetList.h DataSet_1D.h DataSet_Coords.h DataSet_Coords_REF.h DataSet_Mesh.h Dimension.h DispatchObject.h FileIO.h FileName.h FileTypes.h Frame.h MaskToken.h Matrix_3x3.h MetaData.h Molecule.h NameType.h Parallel.h ParameterHolders.h ParameterSet.h ParameterTypes.h Range.h ReferenceFrame.h ReplicaDimArray.h Residue.h Spline.h SymbolExporting.h TextFormat.h Timer.h Topology.h TypeNameHolder.h Vec3.h +Analysis_KDE.o : Analysis_KDE.cpp ActionState.h Analysis.h AnalysisState.h Analysis_KDE.h ArgList.h AssociatedData.h Atom.h AtomExtra.h AtomMask.h AtomType.h BaseIOtype.h Box.h Constants.h CoordinateInfo.h CpptrajFile.h CpptrajStdio.h DataFile.h DataFileList.h DataSet.h DataSetList.h DataSet_1D.h DataSet_Coords.h DataSet_Coords_REF.h DataSet_double.h Dimension.h DispatchObject.h FileIO.h FileName.h FileTypes.h Frame.h HistBin.h MaskToken.h Matrix_3x3.h MetaData.h Molecule.h NameType.h Parallel.h ParameterHolders.h ParameterSet.h ParameterTypes.h Range.h ReferenceFrame.h ReplicaDimArray.h Residue.h SymbolExporting.h TextFormat.h Timer.h Topology.h TypeNameHolder.h Vec3.h +Analysis_Lifetime.o : Analysis_Lifetime.cpp ActionState.h Analysis.h AnalysisState.h Analysis_Lifetime.h ArgList.h Array1D.h AssociatedData.h Atom.h AtomExtra.h AtomMask.h AtomType.h BaseIOtype.h Box.h Constants.h CoordinateInfo.h CpptrajFile.h CpptrajStdio.h DataFile.h DataFileList.h DataSet.h DataSetList.h DataSet_1D.h DataSet_Coords.h DataSet_Coords_REF.h Dimension.h DispatchObject.h FileIO.h FileName.h FileTypes.h Frame.h MaskToken.h Matrix_3x3.h MetaData.h Molecule.h NameType.h Parallel.h ParameterHolders.h ParameterSet.h ParameterTypes.h ProgressBar.h Range.h ReferenceFrame.h ReplicaDimArray.h Residue.h StringRoutines.h SymbolExporting.h TextFormat.h Timer.h Topology.h TypeNameHolder.h Vec3.h +Analysis_LowestCurve.o : Analysis_LowestCurve.cpp ActionState.h Analysis.h AnalysisState.h Analysis_LowestCurve.h ArgList.h Array1D.h AssociatedData.h Atom.h AtomExtra.h AtomMask.h AtomType.h BaseIOtype.h Box.h Constants.h CoordinateInfo.h CpptrajFile.h CpptrajStdio.h DataFile.h DataFileList.h DataSet.h DataSetList.h DataSet_1D.h DataSet_Coords.h DataSet_Coords_REF.h Dimension.h DispatchObject.h FileIO.h FileName.h FileTypes.h Frame.h HistBin.h MaskToken.h Matrix_3x3.h MetaData.h Molecule.h NameType.h Parallel.h ParameterHolders.h ParameterSet.h ParameterTypes.h Range.h ReferenceFrame.h ReplicaDimArray.h Residue.h SymbolExporting.h TextFormat.h Timer.h Topology.h TypeNameHolder.h Vec3.h +Analysis_Matrix.o : Analysis_Matrix.cpp ActionState.h Analysis.h AnalysisState.h Analysis_Matrix.h ArgList.h ArrayIterator.h AssociatedData.h Atom.h AtomExtra.h AtomMask.h AtomType.h BaseIOtype.h Box.h Constants.h CoordinateInfo.h CpptrajFile.h CpptrajStdio.h DataFile.h DataFileList.h DataSet.h DataSetList.h DataSet_2D.h DataSet_Coords.h DataSet_Coords_REF.h DataSet_MatrixDbl.h DataSet_Modes.h Dimension.h DispatchObject.h FileIO.h FileName.h FileTypes.h Frame.h MaskToken.h Matrix.h Matrix_3x3.h MetaData.h Molecule.h NameType.h Parallel.h ParameterHolders.h ParameterSet.h ParameterTypes.h Range.h ReferenceFrame.h ReplicaDimArray.h Residue.h SymbolExporting.h TextFormat.h Timer.h Topology.h TypeNameHolder.h Vec3.h +Analysis_MeltCurve.o : Analysis_MeltCurve.cpp ActionState.h Analysis.h AnalysisState.h Analysis_MeltCurve.h ArgList.h Array1D.h AssociatedData.h Atom.h AtomExtra.h AtomMask.h AtomType.h BaseIOtype.h Box.h Constants.h CoordinateInfo.h CpptrajFile.h CpptrajStdio.h DataFile.h DataFileList.h DataSet.h DataSetList.h DataSet_1D.h DataSet_Coords.h DataSet_Coords_REF.h Dimension.h DispatchObject.h FileIO.h FileName.h FileTypes.h Frame.h MaskToken.h Matrix_3x3.h MetaData.h Molecule.h NameType.h Parallel.h ParameterHolders.h ParameterSet.h ParameterTypes.h Range.h ReferenceFrame.h ReplicaDimArray.h Residue.h SymbolExporting.h TextFormat.h Timer.h Topology.h TypeNameHolder.h Vec3.h +Analysis_Modes.o : Analysis_Modes.cpp ActionFrameCounter.h ActionState.h Analysis.h AnalysisState.h Analysis_Modes.h ArgList.h ArrayIterator.h AssociatedData.h Atom.h AtomExtra.h AtomMask.h AtomType.h BaseIOtype.h Box.h Constants.h CoordinateInfo.h CpptrajFile.h CpptrajStdio.h DataFile.h DataFileList.h DataSet.h DataSetList.h DataSet_2D.h DataSet_Coords.h DataSet_Coords_REF.h DataSet_MatrixDbl.h DataSet_Modes.h Dimension.h DispatchObject.h FileIO.h FileName.h FileTypes.h Frame.h MaskToken.h Matrix.h Matrix_3x3.h MetaData.h Molecule.h NameType.h OutputTrajCommon.h Parallel.h ParameterHolders.h ParameterSet.h ParameterTypes.h Range.h ReferenceFrame.h ReplicaDimArray.h Residue.h SymbolExporting.h TextFormat.h Timer.h Topology.h TrajectoryFile.h Trajout_Single.h TypeNameHolder.h Vec3.h +Analysis_MultiHist.o : Analysis_MultiHist.cpp ActionState.h Analysis.h AnalysisState.h Analysis_Hist.h Analysis_KDE.h Analysis_MultiHist.h ArgList.h Array1D.h AssociatedData.h Atom.h AtomExtra.h AtomMask.h AtomType.h BaseIOtype.h Box.h Constants.h CoordinateInfo.h CpptrajFile.h CpptrajStdio.h DataFile.h DataFileList.h DataSet.h DataSetList.h DataSet_1D.h DataSet_Coords.h DataSet_Coords_REF.h Dimension.h DispatchObject.h FileIO.h FileName.h FileTypes.h Frame.h HistBin.h MaskToken.h Matrix_3x3.h MetaData.h Molecule.h NameType.h Parallel.h ParameterHolders.h ParameterSet.h ParameterTypes.h Range.h ReferenceFrame.h ReplicaDimArray.h Residue.h SymbolExporting.h TextFormat.h Timer.h Topology.h TrajectoryFile.h TypeNameHolder.h Vec3.h +Analysis_Multicurve.o : Analysis_Multicurve.cpp ActionState.h Analysis.h AnalysisState.h Analysis_CurveFit.h Analysis_Multicurve.h ArgList.h Array1D.h AssociatedData.h Atom.h AtomExtra.h AtomMask.h AtomType.h BaseIOtype.h Box.h Constants.h CoordinateInfo.h CpptrajFile.h CpptrajStdio.h DataFile.h DataFileList.h DataSet.h DataSetList.h DataSet_1D.h DataSet_Coords.h DataSet_Coords_REF.h Dimension.h DispatchObject.h FileIO.h FileName.h FileTypes.h Frame.h MaskToken.h Matrix_3x3.h MetaData.h Molecule.h NameType.h Parallel.h ParameterHolders.h ParameterSet.h ParameterTypes.h Range.h ReferenceFrame.h ReplicaDimArray.h Residue.h SymbolExporting.h TextFormat.h Timer.h Topology.h TypeNameHolder.h Vec3.h +Analysis_Overlap.o : Analysis_Overlap.cpp ActionState.h Analysis.h AnalysisState.h Analysis_Overlap.h ArgList.h AssociatedData.h Atom.h AtomExtra.h AtomMask.h AtomType.h BaseIOtype.h Box.h Constants.h CoordinateInfo.h CpptrajFile.h CpptrajStdio.h DataFile.h DataFileList.h DataSet.h DataSetList.h DataSet_1D.h DataSet_Coords.h DataSet_Coords_REF.h Dimension.h DispatchObject.h FileIO.h FileName.h FileTypes.h Frame.h MaskToken.h Matrix_3x3.h MetaData.h Molecule.h NameType.h Parallel.h ParameterHolders.h ParameterSet.h ParameterTypes.h Range.h ReferenceFrame.h ReplicaDimArray.h Residue.h SymbolExporting.h TextFormat.h Timer.h Topology.h TypeNameHolder.h Vec3.h +Analysis_PhiPsi.o : Analysis_PhiPsi.cpp ActionState.h Analysis.h AnalysisState.h Analysis_PhiPsi.h ArgList.h Array1D.h AssociatedData.h Atom.h AtomExtra.h AtomMask.h AtomType.h BaseIOtype.h Box.h Constants.h CoordinateInfo.h CpptrajFile.h CpptrajStdio.h DataFile.h DataFileList.h DataSet.h DataSetList.h DataSet_1D.h DataSet_Coords.h DataSet_Coords_REF.h Dimension.h DispatchObject.h FileIO.h FileName.h FileTypes.h Frame.h MaskToken.h Matrix_3x3.h MetaData.h Molecule.h NameType.h Parallel.h ParameterHolders.h ParameterSet.h ParameterTypes.h Range.h ReferenceFrame.h ReplicaDimArray.h Residue.h SymbolExporting.h TextFormat.h Timer.h Topology.h TypeNameHolder.h Vec3.h +Analysis_Regression.o : Analysis_Regression.cpp ActionState.h Analysis.h AnalysisState.h Analysis_Regression.h ArgList.h Array1D.h AssociatedData.h Atom.h AtomExtra.h AtomMask.h AtomType.h BaseIOtype.h Box.h Constants.h CoordinateInfo.h CpptrajFile.h CpptrajStdio.h DataFile.h DataFileList.h DataSet.h DataSetList.h DataSet_1D.h DataSet_Coords.h DataSet_Coords_REF.h DataSet_Mesh.h Dimension.h DispatchObject.h FileIO.h FileName.h FileTypes.h Frame.h MaskToken.h Matrix_3x3.h MetaData.h Molecule.h NameType.h Parallel.h ParameterHolders.h ParameterSet.h ParameterTypes.h Range.h ReferenceFrame.h ReplicaDimArray.h Residue.h Spline.h SymbolExporting.h TextFormat.h Timer.h Topology.h TypeNameHolder.h Vec3.h +Analysis_RemLog.o : Analysis_RemLog.cpp ActionState.h Analysis.h AnalysisState.h Analysis_Lifetime.h Analysis_RemLog.h ArgList.h Array1D.h AssociatedData.h Atom.h AtomExtra.h AtomMask.h AtomType.h BaseIOtype.h Box.h Constants.h CoordinateInfo.h CpptrajFile.h CpptrajStdio.h DataFile.h DataFileList.h DataSet.h DataSetList.h DataSet_1D.h DataSet_Coords.h DataSet_Coords_REF.h DataSet_Mesh.h DataSet_RemLog.h DataSet_integer.h DataSet_integer_mem.h Dimension.h DispatchObject.h FileIO.h FileName.h FileTypes.h Frame.h MaskToken.h Matrix_3x3.h MetaData.h Molecule.h NameType.h Parallel.h ParameterHolders.h ParameterSet.h ParameterTypes.h ProgressBar.h Range.h ReferenceFrame.h ReplicaDimArray.h Residue.h Spline.h StringRoutines.h SymbolExporting.h TextFormat.h Timer.h Topology.h TypeNameHolder.h Vec3.h +Analysis_Rms2d.o : Analysis_Rms2d.cpp ActionState.h Analysis.h AnalysisState.h Analysis_Rms2d.h ArgList.h ArrayIterator.h AssociatedData.h Atom.h AtomExtra.h AtomMap.h AtomMask.h AtomType.h BaseIOtype.h Box.h Constants.h CoordinateInfo.h CpptrajFile.h CpptrajStdio.h DataFile.h DataFileList.h DataSet.h DataSetList.h DataSet_2D.h DataSet_Coords.h DataSet_Coords_REF.h DataSet_Coords_TRJ.h DataSet_MatrixFlt.h Dimension.h DispatchObject.h FileIO.h FileName.h FileTypes.h Frame.h Hungarian.h InputTrajCommon.h MapAtom.h MaskToken.h Matrix.h Matrix_3x3.h MetaData.h Molecule.h NameType.h Parallel.h ParameterHolders.h ParameterSet.h ParameterTypes.h ProgressBar.h Range.h ReferenceFrame.h ReplicaDimArray.h Residue.h SymbolExporting.h SymmetricRmsdCalc.h TextFormat.h Timer.h Topology.h TrajFrameCounter.h TrajFrameIndex.h Trajin.h TypeNameHolder.h Vec3.h +Analysis_RmsAvgCorr.o : Analysis_RmsAvgCorr.cpp ActionState.h Analysis.h AnalysisState.h Analysis_RmsAvgCorr.h ArgList.h AssociatedData.h Atom.h AtomExtra.h AtomMask.h AtomType.h BaseIOtype.h Box.h Constants.h CoordinateInfo.h CpptrajFile.h CpptrajStdio.h DataFile.h DataFileList.h DataSet.h DataSetList.h DataSet_Coords.h DataSet_Coords_REF.h Dimension.h DispatchObject.h FileIO.h FileName.h FileTypes.h Frame.h MaskToken.h Matrix_3x3.h MetaData.h Molecule.h NameType.h Parallel.h ParameterHolders.h ParameterSet.h ParameterTypes.h ProgressBar.h Range.h ReferenceFrame.h ReplicaDimArray.h Residue.h SymbolExporting.h TextFormat.h Timer.h Topology.h TypeNameHolder.h Vec3.h +Analysis_Rotdif.o : Analysis_Rotdif.cpp ActionState.h Analysis.h AnalysisState.h Analysis_Rotdif.h ArgList.h ArrayIterator.h AssociatedData.h Atom.h AtomExtra.h AtomMask.h AtomType.h BaseIOtype.h Box.h ComplexArray.h Constants.h CoordinateInfo.h Corr.h CpptrajFile.h CpptrajStdio.h CurveFit.h DataFile.h DataFileList.h DataSet.h DataSetList.h DataSet_1D.h DataSet_Coords.h DataSet_Coords_REF.h DataSet_Mat3x3.h DataSet_Mesh.h DataSet_Vector.h DataSet_Vector_XYZ.h Dimension.h DispatchObject.h FileIO.h FileName.h FileTypes.h Frame.h MaskToken.h Matrix_3x3.h MetaData.h Molecule.h NameType.h Parallel.h ParameterHolders.h ParameterSet.h ParameterTypes.h ProgressBar.h PubFFT.h Random.h Range.h ReferenceFrame.h ReplicaDimArray.h Residue.h SimplexMin.h Spline.h StringRoutines.h SymbolExporting.h TextFormat.h Timer.h Topology.h TypeNameHolder.h Vec3.h +Analysis_RunningAvg.o : Analysis_RunningAvg.cpp ActionState.h Analysis.h AnalysisState.h Analysis_RunningAvg.h ArgList.h Array1D.h AssociatedData.h Atom.h AtomExtra.h AtomMask.h AtomType.h BaseIOtype.h Box.h Constants.h CoordinateInfo.h CpptrajFile.h CpptrajStdio.h DataFile.h DataFileList.h DataSet.h DataSetList.h DataSet_1D.h DataSet_Coords.h DataSet_Coords_REF.h DataSet_Mesh.h Dimension.h DispatchObject.h FileIO.h FileName.h FileTypes.h Frame.h MaskToken.h Matrix_3x3.h MetaData.h Molecule.h NameType.h Parallel.h ParameterHolders.h ParameterSet.h ParameterTypes.h Range.h ReferenceFrame.h ReplicaDimArray.h Residue.h Spline.h SymbolExporting.h TextFormat.h Timer.h Topology.h TypeNameHolder.h Vec3.h +Analysis_Slope.o : Analysis_Slope.cpp ActionState.h Analysis.h AnalysisState.h Analysis_Slope.h ArgList.h Array1D.h AssociatedData.h Atom.h AtomExtra.h AtomMask.h AtomType.h BaseIOtype.h Box.h Constants.h CoordinateInfo.h CpptrajFile.h CpptrajStdio.h DataFile.h DataFileList.h DataSet.h DataSetList.h DataSet_1D.h DataSet_Coords.h DataSet_Coords_REF.h DataSet_Mesh.h Dimension.h DispatchObject.h FileIO.h FileName.h FileTypes.h Frame.h MaskToken.h Matrix_3x3.h MetaData.h Molecule.h NameType.h Parallel.h ParameterHolders.h ParameterSet.h ParameterTypes.h Range.h ReferenceFrame.h ReplicaDimArray.h Residue.h Spline.h SymbolExporting.h TextFormat.h Timer.h Topology.h TypeNameHolder.h Vec3.h +Analysis_Spline.o : Analysis_Spline.cpp ActionState.h Analysis.h AnalysisState.h Analysis_Spline.h ArgList.h Array1D.h AssociatedData.h Atom.h AtomExtra.h AtomMask.h AtomType.h BaseIOtype.h Box.h Constants.h CoordinateInfo.h CpptrajFile.h CpptrajStdio.h DataFile.h DataFileList.h DataSet.h DataSetList.h DataSet_1D.h DataSet_Coords.h DataSet_Coords_REF.h DataSet_Mesh.h Dimension.h DispatchObject.h FileIO.h FileName.h FileTypes.h Frame.h MaskToken.h Matrix_3x3.h MetaData.h Molecule.h NameType.h Parallel.h ParameterHolders.h ParameterSet.h ParameterTypes.h Range.h ReferenceFrame.h ReplicaDimArray.h Residue.h Spline.h SymbolExporting.h TextFormat.h Timer.h Topology.h TypeNameHolder.h Vec3.h +Analysis_State.o : Analysis_State.cpp ActionState.h Analysis.h AnalysisState.h Analysis_State.h ArgList.h Array1D.h AssociatedData.h Atom.h AtomExtra.h AtomMask.h AtomType.h BaseIOtype.h Box.h Constants.h CoordinateInfo.h CpptrajFile.h CpptrajStdio.h DataFile.h DataFileList.h DataSet.h DataSetList.h DataSet_1D.h DataSet_Coords.h DataSet_Coords_REF.h DataSet_double.h Dimension.h DispatchObject.h FileIO.h FileName.h FileTypes.h Frame.h MaskToken.h Matrix_3x3.h MetaData.h Molecule.h NameType.h Parallel.h ParameterHolders.h ParameterSet.h ParameterTypes.h Range.h ReferenceFrame.h ReplicaDimArray.h Residue.h SymbolExporting.h TextFormat.h Timer.h Topology.h TypeNameHolder.h Vec3.h +Analysis_Statistics.o : Analysis_Statistics.cpp ActionState.h Analysis.h AnalysisState.h Analysis_Statistics.h ArgList.h Array1D.h AssociatedData.h Atom.h AtomExtra.h AtomMask.h AtomType.h BaseIOtype.h Box.h Constants.h CoordinateInfo.h CpptrajFile.h CpptrajStdio.h DataFile.h DataFileList.h DataSet.h DataSetList.h DataSet_1D.h DataSet_Coords.h DataSet_Coords_REF.h DataSet_float.h DataSet_integer.h DataSet_string.h Dimension.h DispatchObject.h FileIO.h FileName.h FileTypes.h Frame.h MaskToken.h Matrix_3x3.h MetaData.h Molecule.h NameType.h Parallel.h ParameterHolders.h ParameterSet.h ParameterTypes.h Range.h ReferenceFrame.h ReplicaDimArray.h Residue.h SymbolExporting.h TextFormat.h Timer.h Topology.h TypeNameHolder.h Vec3.h +Analysis_TI.o : Analysis_TI.cpp ActionState.h Analysis.h AnalysisState.h Analysis_TI.h ArgList.h Array1D.h AssociatedData.h Atom.h AtomExtra.h AtomMask.h AtomType.h BaseIOtype.h Box.h Constants.h CoordinateInfo.h CpptrajFile.h CpptrajStdio.h DataFile.h DataFileList.h DataSet.h DataSetList.h DataSet_1D.h DataSet_Coords.h DataSet_Coords_REF.h DataSet_Mesh.h Dimension.h DispatchObject.h FileIO.h FileName.h FileTypes.h Frame.h MaskToken.h Matrix_3x3.h MetaData.h Molecule.h NameType.h Parallel.h ParameterHolders.h ParameterSet.h ParameterTypes.h Random.h Range.h ReferenceFrame.h ReplicaDimArray.h Residue.h Spline.h StringRoutines.h SymbolExporting.h TextFormat.h Timer.h Topology.h TypeNameHolder.h Vec3.h +Analysis_Timecorr.o : Analysis_Timecorr.cpp ActionState.h Analysis.h AnalysisState.h Analysis_Timecorr.h ArgList.h ArrayIterator.h AssociatedData.h Atom.h AtomExtra.h AtomMask.h AtomType.h BaseIOtype.h Box.h ComplexArray.h Constants.h CoordinateInfo.h Corr.h CpptrajFile.h CpptrajStdio.h DataFile.h DataFileList.h DataSet.h DataSetList.h DataSet_1D.h DataSet_Coords.h DataSet_Coords_REF.h DataSet_Vector.h DataSet_double.h Dimension.h DispatchObject.h FileIO.h FileName.h FileTypes.h Frame.h MaskToken.h Matrix_3x3.h MetaData.h Molecule.h NameType.h Parallel.h ParameterHolders.h ParameterSet.h ParameterTypes.h PubFFT.h Range.h ReferenceFrame.h ReplicaDimArray.h Residue.h SymbolExporting.h TextFormat.h Timer.h Topology.h TypeNameHolder.h Vec3.h +Analysis_VectorMath.o : Analysis_VectorMath.cpp ActionState.h Analysis.h AnalysisState.h Analysis_VectorMath.h ArgList.h ArrayIterator.h AssociatedData.h Atom.h AtomExtra.h AtomMask.h AtomType.h BaseIOtype.h Box.h ComplexArray.h Constants.h CoordinateInfo.h CpptrajFile.h CpptrajStdio.h DataFile.h DataFileList.h DataSet.h DataSetList.h DataSet_1D.h DataSet_Coords.h DataSet_Coords_REF.h DataSet_Vector.h DataSet_Vector_XYZ.h DataSet_double.h Dimension.h DispatchObject.h FileIO.h FileName.h FileTypes.h Frame.h MaskToken.h Matrix_3x3.h MetaData.h Molecule.h NameType.h Parallel.h ParameterHolders.h ParameterSet.h ParameterTypes.h Range.h ReferenceFrame.h ReplicaDimArray.h Residue.h SymbolExporting.h TextFormat.h Timer.h Topology.h TypeNameHolder.h Vec3.h +Analysis_Wavelet.o : Analysis_Wavelet.cpp ActionFrameCounter.h ActionState.h Analysis.h AnalysisState.h Analysis_Wavelet.h ArgList.h ArrayIterator.h AssociatedData.h Atom.h AtomExtra.h AtomMask.h AtomType.h BaseIOtype.h BondSearch.h Box.h ClusterMap.h ComplexArray.h Constants.h CoordinateInfo.h CpptrajFile.h CpptrajStdio.h DataFile.h DataFileList.h DataSet.h DataSetList.h DataSet_2D.h DataSet_Coords.h DataSet_Coords_REF.h DataSet_MatrixFlt.h Dimension.h DispatchObject.h DistRoutines.h FileIO.h FileName.h FileTypes.h Frame.h MaskToken.h Matrix.h Matrix_3x3.h MetaData.h Molecule.h NameType.h OutputTrajCommon.h Parallel.h ParameterHolders.h ParameterSet.h ParameterTypes.h ParmFile.h ParmIO.h ProgressBar.h ProgressTimer.h PubFFT.h Range.h ReferenceFrame.h ReplicaDimArray.h Residue.h StringRoutines.h SymbolExporting.h TextFormat.h Timer.h Topology.h TrajectoryFile.h Trajout_Single.h TypeNameHolder.h Vec3.h ArgList.o : ArgList.cpp ArgList.h CpptrajStdio.h StringRoutines.h Array1D.o : Array1D.cpp ArgList.h Array1D.h AssociatedData.h Atom.h AtomExtra.h AtomMask.h AtomType.h Box.h Constants.h CoordinateInfo.h CpptrajFile.h CpptrajStdio.h DataSet.h DataSetList.h DataSet_1D.h DataSet_Coords.h DataSet_Coords_REF.h Dimension.h FileIO.h FileName.h Frame.h MaskToken.h Matrix_3x3.h MetaData.h Molecule.h NameType.h Parallel.h ParameterHolders.h ParameterSet.h ParameterTypes.h Range.h ReferenceFrame.h ReplicaDimArray.h Residue.h SymbolExporting.h TextFormat.h Timer.h Topology.h TypeNameHolder.h Vec3.h AssociatedData.o : AssociatedData.cpp ArgList.h AssociatedData.h CpptrajStdio.h @@ -149,7 +149,7 @@ ClusterMap.o : ClusterMap.cpp AssociatedData.h ClusterMap.h Constants.h CpptrajF ClusterMatrix.o : ClusterMatrix.cpp ArrayIterator.h ClusterMatrix.h CpptrajStdio.h Matrix.h ClusterNode.o : ClusterNode.cpp ArrayIterator.h AssociatedData.h Atom.h AtomExtra.h AtomMap.h AtomMask.h AtomType.h Box.h ClusterDist.h ClusterNode.h ClusterSieve.h Constants.h CoordinateInfo.h CpptrajFile.h DataSet.h DataSet_1D.h DataSet_Cmatrix.h DataSet_Coords.h Dimension.h FileIO.h FileName.h Frame.h Hungarian.h MapAtom.h MaskToken.h Matrix.h Matrix_3x3.h MetaData.h Molecule.h NameType.h Parallel.h ParameterHolders.h ParameterSet.h ParameterTypes.h Range.h ReplicaDimArray.h Residue.h SymbolExporting.h SymmetricRmsdCalc.h TextFormat.h Topology.h TypeNameHolder.h Vec3.h ClusterSieve.o : ClusterSieve.cpp ClusterSieve.h Random.h -Cluster_DBSCAN.o : Cluster_DBSCAN.cpp ArgList.h ArrayIterator.h AssociatedData.h Atom.h AtomExtra.h AtomMap.h AtomMask.h AtomType.h BaseIOtype.h Box.h ClusterDist.h ClusterList.h ClusterNode.h ClusterSieve.h Cluster_DBSCAN.h Constants.h CoordinateInfo.h CpptrajFile.h CpptrajStdio.h DataFile.h DataIO.h DataSet.h DataSetList.h DataSet_1D.h DataSet_2D.h DataSet_Cmatrix.h DataSet_Coords.h DataSet_Coords_REF.h DataSet_MatrixDbl.h Dimension.h FileIO.h FileName.h FileTypes.h Frame.h Hungarian.h MapAtom.h MaskToken.h Matrix.h Matrix_3x3.h MetaData.h Molecule.h NameType.h Parallel.h ParameterHolders.h ParameterSet.h ParameterTypes.h ProgressBar.h Range.h ReferenceFrame.h ReplicaDimArray.h Residue.h StringRoutines.h SymbolExporting.h SymmetricRmsdCalc.h TextFormat.h Timer.h Topology.h TypeNameHolder.h Vec3.h +Cluster_DBSCAN.o : Cluster_DBSCAN.cpp ArgList.h ArrayIterator.h AssociatedData.h Atom.h AtomExtra.h AtomMap.h AtomMask.h AtomType.h BaseIOtype.h Box.h ClusterDist.h ClusterList.h ClusterNode.h ClusterSieve.h Cluster_DBSCAN.h Constants.h CoordinateInfo.h CpptrajFile.h CpptrajStdio.h DataFile.h DataSet.h DataSetList.h DataSet_1D.h DataSet_2D.h DataSet_Cmatrix.h DataSet_Coords.h DataSet_Coords_REF.h DataSet_MatrixDbl.h Dimension.h FileIO.h FileName.h FileTypes.h Frame.h Hungarian.h MapAtom.h MaskToken.h Matrix.h Matrix_3x3.h MetaData.h Molecule.h NameType.h Parallel.h ParameterHolders.h ParameterSet.h ParameterTypes.h ProgressBar.h Range.h ReferenceFrame.h ReplicaDimArray.h Residue.h StringRoutines.h SymbolExporting.h SymmetricRmsdCalc.h TextFormat.h Timer.h Topology.h TypeNameHolder.h Vec3.h Cluster_DPeaks.o : Cluster_DPeaks.cpp ArgList.h ArrayIterator.h AssociatedData.h Atom.h AtomExtra.h AtomMap.h AtomMask.h AtomType.h Box.h ClusterDist.h ClusterList.h ClusterNode.h ClusterSieve.h Cluster_DPeaks.h Constants.h CoordinateInfo.h CpptrajFile.h CpptrajStdio.h DataSet.h DataSet_1D.h DataSet_Cmatrix.h DataSet_Coords.h DataSet_Mesh.h Dimension.h FileIO.h FileName.h Frame.h Hungarian.h MapAtom.h MaskToken.h Matrix.h Matrix_3x3.h MetaData.h Molecule.h NameType.h Parallel.h ParameterHolders.h ParameterSet.h ParameterTypes.h ProgressBar.h Range.h ReplicaDimArray.h Residue.h Spline.h SymbolExporting.h SymmetricRmsdCalc.h TextFormat.h Topology.h TypeNameHolder.h Vec3.h Cluster_HierAgglo.o : Cluster_HierAgglo.cpp ArgList.h ArrayIterator.h AssociatedData.h Atom.h AtomExtra.h AtomMap.h AtomMask.h AtomType.h Box.h ClusterDist.h ClusterList.h ClusterMatrix.h ClusterNode.h ClusterSieve.h Cluster_HierAgglo.h Constants.h CoordinateInfo.h CpptrajFile.h CpptrajStdio.h DataSet.h DataSet_1D.h DataSet_Cmatrix.h DataSet_Coords.h Dimension.h FileIO.h FileName.h Frame.h Hungarian.h MapAtom.h MaskToken.h Matrix.h Matrix_3x3.h MetaData.h Molecule.h NameType.h Parallel.h ParameterHolders.h ParameterSet.h ParameterTypes.h ProgressBar.h Range.h ReplicaDimArray.h Residue.h SymbolExporting.h SymmetricRmsdCalc.h TextFormat.h Timer.h Topology.h TypeNameHolder.h Vec3.h Cluster_Kmeans.o : Cluster_Kmeans.cpp ArgList.h ArrayIterator.h AssociatedData.h Atom.h AtomExtra.h AtomMap.h AtomMask.h AtomType.h Box.h ClusterDist.h ClusterList.h ClusterNode.h ClusterSieve.h Cluster_Kmeans.h Constants.h CoordinateInfo.h CpptrajFile.h CpptrajStdio.h DataSet.h DataSet_1D.h DataSet_Cmatrix.h DataSet_Coords.h Dimension.h FileIO.h FileName.h Frame.h Hungarian.h MapAtom.h MaskToken.h Matrix.h Matrix_3x3.h MetaData.h Molecule.h NameType.h Parallel.h ParameterHolders.h ParameterSet.h ParameterTypes.h ProgressBar.h Random.h Range.h ReplicaDimArray.h Residue.h SymbolExporting.h SymmetricRmsdCalc.h TextFormat.h Topology.h TypeNameHolder.h Vec3.h @@ -157,20 +157,20 @@ Cluster_ReadInfo.o : Cluster_ReadInfo.cpp ArgList.h ArrayIterator.h AssociatedDa Cmd.o : Cmd.cpp Cmd.h DispatchObject.h CmdInput.o : CmdInput.cpp CmdInput.h StringRoutines.h CmdList.o : CmdList.cpp Cmd.h CmdList.h DispatchObject.h -Command.o : Command.cpp Action.h ActionFrameCounter.h ActionList.h ActionState.h Action_Align.h Action_Angle.h Action_AreaPerMol.h Action_AtomMap.h Action_AtomicCorr.h Action_AtomicFluct.h Action_AutoImage.h Action_Average.h Action_Bounds.h Action_Box.h Action_Center.h Action_Channel.h Action_CheckChirality.h Action_CheckStructure.h Action_Closest.h Action_ClusterDihedral.h Action_Contacts.h Action_CreateCrd.h Action_CreateReservoir.h Action_DNAionTracker.h Action_DSSP.h Action_Density.h Action_Diffusion.h Action_Dihedral.h Action_DihedralRMS.h Action_Dipole.h Action_DistRmsd.h Action_Distance.h Action_Energy.h Action_Esander.h Action_FilterByData.h Action_FixAtomOrder.h Action_FixImagedBonds.h Action_GIST.h Action_Grid.h Action_GridFreeEnergy.h Action_HydrogenBond.h Action_Image.h Action_InfraredSpectrum.h Action_Jcoupling.h Action_LESsplit.h Action_LIE.h Action_LipidOrder.h Action_MakeStructure.h Action_Mask.h Action_Matrix.h Action_MinImage.h Action_Molsurf.h Action_MultiDihedral.h Action_MultiVector.h Action_NAstruct.h Action_NMRrst.h Action_NativeContacts.h Action_OrderParameter.h Action_Outtraj.h Action_PairDist.h Action_Pairwise.h Action_Principal.h Action_Projection.h Action_Pucker.h Action_Radgyr.h Action_Radial.h Action_RandomizeIons.h Action_Remap.h Action_ReplicateCell.h Action_Rmsd.h Action_Rotate.h Action_RunningAvg.h Action_STFC_Diffusion.h Action_Scale.h Action_SetVelocity.h Action_Spam.h Action_Strip.h Action_Surf.h Action_SymmetricRmsd.h Action_Temperature.h Action_Time.h Action_Translate.h Action_Unstrip.h Action_Unwrap.h Action_Vector.h Action_VelocityAutoCorr.h Action_Volmap.h Action_Volume.h Action_Watershell.h Action_XtalSymm.h Analysis.h AnalysisList.h AnalysisState.h Analysis_AmdBias.h Analysis_AutoCorr.h Analysis_Average.h Analysis_Clustering.h Analysis_ConstantPHStats.h Analysis_Corr.h Analysis_CrankShaft.h Analysis_CrdFluct.h Analysis_CrossCorr.h Analysis_CurveFit.h Analysis_Divergence.h Analysis_FFT.h Analysis_HausdorffDistance.h Analysis_Hist.h Analysis_IRED.h Analysis_Integrate.h Analysis_KDE.h Analysis_Lifetime.h Analysis_LowestCurve.h Analysis_Matrix.h Analysis_MeltCurve.h Analysis_Modes.h Analysis_MultiHist.h Analysis_Multicurve.h Analysis_Overlap.h Analysis_PhiPsi.h Analysis_Regression.h Analysis_RemLog.h Analysis_Rms2d.h Analysis_RmsAvgCorr.h Analysis_Rotdif.h Analysis_RunningAvg.h Analysis_Slope.h Analysis_Spline.h Analysis_State.h Analysis_Statistics.h Analysis_TI.h Analysis_Timecorr.h Analysis_VectorMath.h Analysis_Wavelet.h ArgList.h Array1D.h ArrayIterator.h AssociatedData.h Atom.h AtomExtra.h AtomMap.h AtomMask.h AtomType.h AxisType.h BaseIOtype.h Box.h BufferedLine.h CharMask.h ClusterDist.h ClusterList.h ClusterMap.h ClusterNode.h ClusterSieve.h Cmd.h CmdInput.h CmdList.h Command.h ComplexArray.h Constants.h Constraints.h ControlBlock.h ControlBlock_For.h CoordinateInfo.h Corr.h Cph.h CpptrajFile.h CpptrajState.h CpptrajStdio.h DataFile.h DataFileList.h DataIO.h DataSet.h DataSetList.h DataSet_1D.h DataSet_2D.h DataSet_3D.h DataSet_Cmatrix.h DataSet_Coords.h DataSet_Coords_CRD.h DataSet_Coords_REF.h DataSet_GridFlt.h DataSet_Mat3x3.h DataSet_MatrixDbl.h DataSet_MatrixFlt.h DataSet_Mesh.h DataSet_Modes.h DataSet_RemLog.h DataSet_Vector.h DataSet_Vector_XYZ.h DataSet_double.h DataSet_float.h DataSet_integer.h DataSet_integer_mem.h DataSet_pH.h DataSet_string.h Deprecated.h DihedralSearch.h Dimension.h DispatchObject.h DistRoutines.h Energy.h Energy_Sander.h EnsembleIn.h EnsembleOutList.h Exec.h Exec_Analyze.h Exec_Calc.h Exec_CatCrd.h Exec_Change.h Exec_ClusterMap.h Exec_CombineCoords.h Exec_Commands.h Exec_CompareTop.h Exec_CrdAction.h Exec_CrdOut.h Exec_CreateSet.h Exec_DataFile.h Exec_DataFilter.h Exec_DataSetCmd.h Exec_GenerateAmberRst.h Exec_Help.h Exec_LoadCrd.h Exec_LoadTraj.h Exec_ParallelAnalysis.h Exec_ParmBox.h Exec_ParmSolvent.h Exec_ParmStrip.h Exec_ParmWrite.h Exec_PermuteDihedrals.h Exec_Precision.h Exec_PrintData.h Exec_ReadData.h Exec_ReadEnsembleData.h Exec_ReadInput.h Exec_RotateDihedral.h Exec_RunAnalysis.h Exec_ScaleDihedralK.h Exec_SequenceAlign.h Exec_Set.h Exec_Show.h Exec_SortEnsembleData.h Exec_SplitCoords.h Exec_System.h Exec_Top.h Exec_Traj.h Exec_UpdateParameters.h Exec_ViewRst.h FileIO.h FileName.h FileTypes.h Frame.h FramePtrArray.h Grid.h GridAction.h GridBin.h HistBin.h Hungarian.h ImageTypes.h ImagedAction.h InputTrajCommon.h MapAtom.h MaskArray.h MaskToken.h Matrix.h Matrix_3x3.h MetaData.h Molecule.h NameType.h NetcdfFile.h OnlineVarT.h OutputTrajCommon.h PDBfile.h PairList.h Parallel.h ParameterHolders.h ParameterSet.h ParameterTypes.h PubFFT.h RPNcalc.h Random.h Range.h ReferenceAction.h ReferenceFrame.h RemdReservoirNC.h ReplicaDimArray.h ReplicaInfo.h Residue.h Spline.h StructureCheck.h SymbolExporting.h SymmetricRmsdCalc.h TextFormat.h Timer.h Topology.h TrajFrameCounter.h TrajectoryFile.h Trajin.h TrajinList.h TrajoutList.h Trajout_Single.h TypeNameHolder.h Vec3.h cuda_kernels/GistCudaSetup.cuh molsurf.h +Command.o : Command.cpp Action.h ActionFrameCounter.h ActionList.h ActionState.h Action_Align.h Action_Angle.h Action_AreaPerMol.h Action_AtomMap.h Action_AtomicCorr.h Action_AtomicFluct.h Action_AutoImage.h Action_Average.h Action_Bounds.h Action_Box.h Action_Center.h Action_Channel.h Action_CheckChirality.h Action_CheckStructure.h Action_Closest.h Action_ClusterDihedral.h Action_Contacts.h Action_CreateCrd.h Action_CreateReservoir.h Action_DNAionTracker.h Action_DSSP.h Action_Density.h Action_Diffusion.h Action_Dihedral.h Action_DihedralRMS.h Action_Dipole.h Action_DistRmsd.h Action_Distance.h Action_Energy.h Action_Esander.h Action_FilterByData.h Action_FixAtomOrder.h Action_FixImagedBonds.h Action_GIST.h Action_Grid.h Action_GridFreeEnergy.h Action_HydrogenBond.h Action_Image.h Action_InfraredSpectrum.h Action_Jcoupling.h Action_LESsplit.h Action_LIE.h Action_LipidOrder.h Action_MakeStructure.h Action_Mask.h Action_Matrix.h Action_MinImage.h Action_Molsurf.h Action_MultiDihedral.h Action_MultiVector.h Action_NAstruct.h Action_NMRrst.h Action_NativeContacts.h Action_OrderParameter.h Action_Outtraj.h Action_PairDist.h Action_Pairwise.h Action_Principal.h Action_Projection.h Action_Pucker.h Action_Radgyr.h Action_Radial.h Action_RandomizeIons.h Action_Remap.h Action_ReplicateCell.h Action_Rmsd.h Action_Rotate.h Action_RunningAvg.h Action_STFC_Diffusion.h Action_Scale.h Action_SetVelocity.h Action_Spam.h Action_Strip.h Action_Surf.h Action_SymmetricRmsd.h Action_Temperature.h Action_Time.h Action_Translate.h Action_Unstrip.h Action_Unwrap.h Action_Vector.h Action_VelocityAutoCorr.h Action_Volmap.h Action_Volume.h Action_Watershell.h Action_XtalSymm.h Analysis.h AnalysisList.h AnalysisState.h Analysis_AmdBias.h Analysis_AutoCorr.h Analysis_Average.h Analysis_Clustering.h Analysis_ConstantPHStats.h Analysis_Corr.h Analysis_CrankShaft.h Analysis_CrdFluct.h Analysis_CrossCorr.h Analysis_CurveFit.h Analysis_Divergence.h Analysis_FFT.h Analysis_HausdorffDistance.h Analysis_Hist.h Analysis_IRED.h Analysis_Integrate.h Analysis_KDE.h Analysis_Lifetime.h Analysis_LowestCurve.h Analysis_Matrix.h Analysis_MeltCurve.h Analysis_Modes.h Analysis_MultiHist.h Analysis_Multicurve.h Analysis_Overlap.h Analysis_PhiPsi.h Analysis_Regression.h Analysis_RemLog.h Analysis_Rms2d.h Analysis_RmsAvgCorr.h Analysis_Rotdif.h Analysis_RunningAvg.h Analysis_Slope.h Analysis_Spline.h Analysis_State.h Analysis_Statistics.h Analysis_TI.h Analysis_Timecorr.h Analysis_VectorMath.h Analysis_Wavelet.h ArgList.h Array1D.h ArrayIterator.h AssociatedData.h Atom.h AtomExtra.h AtomMap.h AtomMask.h AtomType.h AxisType.h BaseIOtype.h Box.h BufferedLine.h CharMask.h ClusterDist.h ClusterList.h ClusterMap.h ClusterNode.h ClusterSieve.h Cmd.h CmdInput.h CmdList.h Command.h ComplexArray.h Constants.h Constraints.h ControlBlock.h ControlBlock_For.h CoordinateInfo.h Corr.h Cph.h CpptrajFile.h CpptrajState.h CpptrajStdio.h DataFile.h DataFileList.h DataSet.h DataSetList.h DataSet_1D.h DataSet_2D.h DataSet_3D.h DataSet_Cmatrix.h DataSet_Coords.h DataSet_Coords_CRD.h DataSet_Coords_REF.h DataSet_GridFlt.h DataSet_Mat3x3.h DataSet_MatrixDbl.h DataSet_MatrixFlt.h DataSet_Mesh.h DataSet_Modes.h DataSet_RemLog.h DataSet_Vector.h DataSet_Vector_XYZ.h DataSet_double.h DataSet_float.h DataSet_integer.h DataSet_integer_mem.h DataSet_pH.h DataSet_string.h Deprecated.h DihedralSearch.h Dimension.h DispatchObject.h DistRoutines.h Energy.h Energy_Sander.h EnsembleIn.h EnsembleOutList.h Exec.h Exec_Analyze.h Exec_Calc.h Exec_CatCrd.h Exec_Change.h Exec_ClusterMap.h Exec_CombineCoords.h Exec_Commands.h Exec_CompareTop.h Exec_CrdAction.h Exec_CrdOut.h Exec_CreateSet.h Exec_DataFile.h Exec_DataFilter.h Exec_DataSetCmd.h Exec_GenerateAmberRst.h Exec_Help.h Exec_LoadCrd.h Exec_LoadTraj.h Exec_ParallelAnalysis.h Exec_ParmBox.h Exec_ParmSolvent.h Exec_ParmStrip.h Exec_ParmWrite.h Exec_PermuteDihedrals.h Exec_Precision.h Exec_PrintData.h Exec_ReadData.h Exec_ReadEnsembleData.h Exec_ReadInput.h Exec_RotateDihedral.h Exec_RunAnalysis.h Exec_ScaleDihedralK.h Exec_SequenceAlign.h Exec_Set.h Exec_Show.h Exec_SortEnsembleData.h Exec_SplitCoords.h Exec_System.h Exec_Top.h Exec_Traj.h Exec_UpdateParameters.h Exec_ViewRst.h FileIO.h FileName.h FileTypes.h Frame.h FramePtrArray.h Grid.h GridAction.h GridBin.h HistBin.h Hungarian.h ImageTypes.h ImagedAction.h InputTrajCommon.h MapAtom.h MaskArray.h MaskToken.h Matrix.h Matrix_3x3.h MetaData.h Molecule.h NameType.h NetcdfFile.h OnlineVarT.h OutputTrajCommon.h PDBfile.h PairList.h Parallel.h ParameterHolders.h ParameterSet.h ParameterTypes.h PubFFT.h RPNcalc.h Random.h Range.h ReferenceAction.h ReferenceFrame.h RemdReservoirNC.h ReplicaDimArray.h ReplicaInfo.h Residue.h Spline.h StructureCheck.h SymbolExporting.h SymmetricRmsdCalc.h TextFormat.h Timer.h Topology.h TrajFrameCounter.h TrajectoryFile.h Trajin.h TrajinList.h TrajoutList.h Trajout_Single.h TypeNameHolder.h Vec3.h cuda_kernels/GistCudaSetup.cuh molsurf.h ComplexArray.o : ComplexArray.cpp ArrayIterator.h ComplexArray.h Constraints.o : Constraints.cpp ArgList.h Atom.h AtomExtra.h AtomMask.h AtomType.h Box.h CharMask.h Constants.h Constraints.h CoordinateInfo.h CpptrajStdio.h FileName.h Frame.h MaskToken.h Matrix_3x3.h Molecule.h NameType.h Parallel.h ParameterHolders.h ParameterSet.h ParameterTypes.h Range.h ReplicaDimArray.h Residue.h SymbolExporting.h Topology.h TypeNameHolder.h Vec3.h -ControlBlock_For.o : ControlBlock_For.cpp Action.h ActionList.h ActionState.h Analysis.h AnalysisList.h AnalysisState.h ArgList.h AssociatedData.h Atom.h AtomExtra.h AtomMask.h AtomType.h BaseIOtype.h Box.h Constants.h ControlBlock.h ControlBlock_For.h CoordinateInfo.h CpptrajFile.h CpptrajState.h CpptrajStdio.h DataFile.h DataFileList.h DataIO.h DataSet.h DataSetList.h DataSet_Coords.h DataSet_Coords_REF.h Dimension.h DispatchObject.h EnsembleIn.h EnsembleOutList.h FileIO.h FileName.h FileTypes.h ForLoop.h ForLoop_dataSetBlocks.h ForLoop_integer.h ForLoop_list.h ForLoop_mask.h Frame.h FramePtrArray.h InputTrajCommon.h MaskToken.h Matrix_3x3.h MetaData.h Molecule.h NameType.h Parallel.h ParameterHolders.h ParameterSet.h ParameterTypes.h Range.h ReferenceFrame.h ReplicaDimArray.h ReplicaInfo.h Residue.h SymbolExporting.h TextFormat.h Timer.h Topology.h TrajFrameCounter.h Trajin.h TrajinList.h TrajoutList.h TypeNameHolder.h Vec3.h +ControlBlock_For.o : ControlBlock_For.cpp Action.h ActionList.h ActionState.h Analysis.h AnalysisList.h AnalysisState.h ArgList.h AssociatedData.h Atom.h AtomExtra.h AtomMask.h AtomType.h BaseIOtype.h Box.h Constants.h ControlBlock.h ControlBlock_For.h CoordinateInfo.h CpptrajFile.h CpptrajState.h CpptrajStdio.h DataFile.h DataFileList.h DataSet.h DataSetList.h DataSet_Coords.h DataSet_Coords_REF.h Dimension.h DispatchObject.h EnsembleIn.h EnsembleOutList.h FileIO.h FileName.h FileTypes.h ForLoop.h ForLoop_dataSetBlocks.h ForLoop_integer.h ForLoop_list.h ForLoop_mask.h Frame.h FramePtrArray.h InputTrajCommon.h MaskToken.h Matrix_3x3.h MetaData.h Molecule.h NameType.h Parallel.h ParameterHolders.h ParameterSet.h ParameterTypes.h Range.h ReferenceFrame.h ReplicaDimArray.h ReplicaInfo.h Residue.h SymbolExporting.h TextFormat.h Timer.h Topology.h TrajFrameCounter.h Trajin.h TrajinList.h TrajoutList.h TypeNameHolder.h Vec3.h CoordinateInfo.o : CoordinateInfo.cpp Box.h CoordinateInfo.h CpptrajStdio.h Matrix_3x3.h Parallel.h ReplicaDimArray.h Vec3.h Corr.o : Corr.cpp ArrayIterator.h ComplexArray.h Corr.h PubFFT.h Cph.o : Cph.cpp Cph.h NameType.h -Cpptraj.o : Cpptraj.cpp Action.h ActionList.h ActionState.h Analysis.h AnalysisList.h AnalysisState.h ArgList.h AssociatedData.h Atom.h AtomExtra.h AtomMask.h AtomType.h BaseIOtype.h BondSearch.h Box.h Cmd.h CmdInput.h CmdList.h Command.h Constants.h CoordinateInfo.h Cpptraj.h CpptrajFile.h CpptrajState.h CpptrajStdio.h DataFile.h DataFileList.h DataIO.h DataSet.h DataSetList.h DataSet_Coords.h DataSet_Coords_REF.h Dimension.h DispatchObject.h EnsembleIn.h EnsembleOutList.h FileIO.h FileName.h FileTypes.h Frame.h FramePtrArray.h InputTrajCommon.h MaskToken.h Matrix_3x3.h MetaData.h Molecule.h NameType.h Parallel.h ParameterHolders.h ParameterSet.h ParameterTypes.h ParmFile.h ParmIO.h Range.h ReadLine.h ReferenceFrame.h ReplicaDimArray.h ReplicaInfo.h Residue.h StringRoutines.h SymbolExporting.h TextFormat.h Timer.h TopInfo.h Topology.h TrajFrameCounter.h TrajectoryFile.h Trajin.h TrajinList.h TrajoutList.h TypeNameHolder.h Vec3.h Version.h +Cpptraj.o : Cpptraj.cpp Action.h ActionList.h ActionState.h Analysis.h AnalysisList.h AnalysisState.h ArgList.h AssociatedData.h Atom.h AtomExtra.h AtomMask.h AtomType.h BaseIOtype.h BondSearch.h Box.h Cmd.h CmdInput.h CmdList.h Command.h Constants.h CoordinateInfo.h Cpptraj.h CpptrajFile.h CpptrajState.h CpptrajStdio.h DataFile.h DataFileList.h DataSet.h DataSetList.h DataSet_Coords.h DataSet_Coords_REF.h Dimension.h DispatchObject.h EnsembleIn.h EnsembleOutList.h FileIO.h FileName.h FileTypes.h Frame.h FramePtrArray.h InputTrajCommon.h MaskToken.h Matrix_3x3.h MetaData.h Molecule.h NameType.h Parallel.h ParameterHolders.h ParameterSet.h ParameterTypes.h ParmFile.h ParmIO.h Range.h ReadLine.h ReferenceFrame.h ReplicaDimArray.h ReplicaInfo.h Residue.h StringRoutines.h SymbolExporting.h TextFormat.h Timer.h TopInfo.h Topology.h TrajFrameCounter.h TrajectoryFile.h Trajin.h TrajinList.h TrajoutList.h TypeNameHolder.h Vec3.h Version.h CpptrajFile.o : CpptrajFile.cpp CpptrajFile.h CpptrajStdio.h FileIO.h FileIO_Bzip2.h FileIO_Gzip.h FileIO_Mpi.h FileIO_MpiShared.h FileIO_Std.h FileName.h Parallel.h StringRoutines.h -CpptrajState.o : CpptrajState.cpp Action.h ActionList.h ActionState.h Action_CreateCrd.h Analysis.h AnalysisList.h AnalysisState.h ArgList.h AssociatedData.h Atom.h AtomExtra.h AtomMask.h AtomType.h BaseIOtype.h Box.h Constants.h CoordinateInfo.h CpptrajFile.h CpptrajState.h CpptrajStdio.h DataFile.h DataFileList.h DataIO.h DataSet.h DataSetList.h DataSet_Coords.h DataSet_Coords_CRD.h DataSet_Coords_REF.h DataSet_Coords_TRJ.h DataSet_Topology.h Dimension.h DispatchObject.h EnsembleIn.h EnsembleNavigator.h EnsembleOutList.h FileIO.h FileName.h FileTypes.h Frame.h FrameArray.h FramePtrArray.h InputTrajCommon.h MaskToken.h Matrix_3x3.h MetaData.h Molecule.h NameType.h Parallel.h ParameterHolders.h ParameterSet.h ParameterTypes.h ProgressBar.h Range.h ReferenceFrame.h ReplicaDimArray.h ReplicaInfo.h Residue.h SymbolExporting.h TextFormat.h Timer.h Topology.h TrajFrameCounter.h TrajFrameIndex.h Trajin.h TrajinList.h TrajoutList.h TypeNameHolder.h Vec3.h +CpptrajState.o : CpptrajState.cpp Action.h ActionList.h ActionState.h Action_CreateCrd.h Analysis.h AnalysisList.h AnalysisState.h ArgList.h AssociatedData.h Atom.h AtomExtra.h AtomMask.h AtomType.h BaseIOtype.h Box.h Constants.h CoordinateInfo.h CpptrajFile.h CpptrajState.h CpptrajStdio.h DataFile.h DataFileList.h DataSet.h DataSetList.h DataSet_Coords.h DataSet_Coords_CRD.h DataSet_Coords_REF.h DataSet_Coords_TRJ.h DataSet_Topology.h Dimension.h DispatchObject.h EnsembleIn.h EnsembleNavigator.h EnsembleOutList.h FileIO.h FileName.h FileTypes.h Frame.h FrameArray.h FramePtrArray.h InputTrajCommon.h MaskToken.h Matrix_3x3.h MetaData.h Molecule.h NameType.h Parallel.h ParameterHolders.h ParameterSet.h ParameterTypes.h ProgressBar.h Range.h ReferenceFrame.h ReplicaDimArray.h ReplicaInfo.h Residue.h SymbolExporting.h TextFormat.h Timer.h Topology.h TrajFrameCounter.h TrajFrameIndex.h Trajin.h TrajinList.h TrajoutList.h TypeNameHolder.h Vec3.h CpptrajStdio.o : CpptrajStdio.cpp Parallel.h CurveFit.o : CurveFit.cpp CurveFit.h DataFile.o : DataFile.cpp ArgList.h ArrayIterator.h AssociatedData.h Atom.h AtomExtra.h AtomMap.h AtomMask.h AtomType.h BaseIOtype.h Box.h BufferedLine.h ClusterDist.h ClusterSieve.h Constants.h CoordinateInfo.h Cph.h CpptrajFile.h CpptrajStdio.h DataFile.h DataIO.h DataIO_CCP4.h DataIO_CharmmFastRep.h DataIO_CharmmOutput.h DataIO_CharmmRepLog.h DataIO_CharmmRtfPrm.h DataIO_Cmatrix.h DataIO_Cpout.h DataIO_Evecs.h DataIO_Gnuplot.h DataIO_Grace.h DataIO_Mdout.h DataIO_NC_Cmatrix.h DataIO_OpenDx.h DataIO_RemLog.h DataIO_Std.h DataIO_VecTraj.h DataIO_XVG.h DataIO_Xplor.h DataSet.h DataSetList.h DataSet_1D.h DataSet_Cmatrix.h DataSet_Cmatrix_MEM.h DataSet_Coords.h DataSet_Coords_REF.h DataSet_RemLog.h Dimension.h FileIO.h FileName.h FileTypes.h Frame.h Hungarian.h MapAtom.h MaskToken.h Matrix.h Matrix_3x3.h MetaData.h Molecule.h NC_Cmatrix.h NameType.h Parallel.h ParameterHolders.h ParameterSet.h ParameterTypes.h Range.h ReferenceFrame.h ReplicaDimArray.h Residue.h StringRoutines.h SymbolExporting.h SymmetricRmsdCalc.h TextFormat.h Timer.h Topology.h TrajectoryFile.h TypeNameHolder.h Vec3.h -DataFileList.o : DataFileList.cpp ArgList.h AssociatedData.h Atom.h AtomExtra.h AtomMask.h AtomType.h BaseIOtype.h Box.h Constants.h CoordinateInfo.h CpptrajFile.h CpptrajStdio.h DataFile.h DataFileList.h DataIO.h DataSet.h DataSetList.h DataSet_Coords.h DataSet_Coords_REF.h Dimension.h FileIO.h FileName.h FileTypes.h Frame.h MaskToken.h Matrix_3x3.h MetaData.h Molecule.h NameType.h PDBfile.h Parallel.h ParameterHolders.h ParameterSet.h ParameterTypes.h Range.h ReferenceFrame.h ReplicaDimArray.h Residue.h StringRoutines.h SymbolExporting.h TextFormat.h Timer.h Topology.h TypeNameHolder.h Vec3.h +DataFileList.o : DataFileList.cpp ArgList.h AssociatedData.h Atom.h AtomExtra.h AtomMask.h AtomType.h BaseIOtype.h Box.h Constants.h CoordinateInfo.h CpptrajFile.h CpptrajStdio.h DataFile.h DataFileList.h DataSet.h DataSetList.h DataSet_Coords.h DataSet_Coords_REF.h Dimension.h FileIO.h FileName.h FileTypes.h Frame.h MaskToken.h Matrix_3x3.h MetaData.h Molecule.h NameType.h PDBfile.h Parallel.h ParameterHolders.h ParameterSet.h ParameterTypes.h Range.h ReferenceFrame.h ReplicaDimArray.h Residue.h StringRoutines.h SymbolExporting.h TextFormat.h Timer.h Topology.h TypeNameHolder.h Vec3.h DataIO.o : DataIO.cpp ArgList.h ArrayIterator.h AssociatedData.h Atom.h AtomExtra.h AtomMask.h AtomType.h BaseIOtype.h Box.h Constants.h CoordinateInfo.h CpptrajFile.h CpptrajStdio.h DataIO.h DataSet.h DataSetList.h DataSet_2D.h DataSet_Coords.h DataSet_Coords_REF.h DataSet_MatrixDbl.h Dimension.h FileIO.h FileName.h Frame.h MaskToken.h Matrix.h Matrix_3x3.h MetaData.h Molecule.h NameType.h Parallel.h ParameterHolders.h ParameterSet.h ParameterTypes.h Range.h ReferenceFrame.h ReplicaDimArray.h Residue.h SymbolExporting.h TextFormat.h Timer.h Topology.h TypeNameHolder.h Vec3.h DataIO_CCP4.o : DataIO_CCP4.cpp ArgList.h ArrayIterator.h AssociatedData.h Atom.h AtomExtra.h AtomMask.h AtomType.h BaseIOtype.h Box.h ByteRoutines.h Constants.h CoordinateInfo.h CpptrajFile.h CpptrajStdio.h DataIO.h DataIO_CCP4.h DataSet.h DataSetList.h DataSet_3D.h DataSet_Coords.h DataSet_Coords_REF.h DataSet_GridFlt.h Dimension.h FileIO.h FileName.h Frame.h Grid.h GridBin.h MaskToken.h Matrix_3x3.h MetaData.h Molecule.h NameType.h Parallel.h ParameterHolders.h ParameterSet.h ParameterTypes.h Range.h ReferenceFrame.h ReplicaDimArray.h Residue.h SymbolExporting.h TextFormat.h Timer.h Topology.h TypeNameHolder.h Vec3.h DataIO_CharmmFastRep.o : DataIO_CharmmFastRep.cpp ArgList.h AssociatedData.h Atom.h AtomExtra.h AtomMask.h AtomType.h BaseIOtype.h Box.h BufferedLine.h Constants.h CoordinateInfo.h CpptrajFile.h CpptrajStdio.h DataIO.h DataIO_CharmmFastRep.h DataSet.h DataSetList.h DataSet_Coords.h DataSet_Coords_REF.h DataSet_RemLog.h Dimension.h FileIO.h FileName.h Frame.h MaskToken.h Matrix_3x3.h MetaData.h Molecule.h NameType.h Parallel.h ParameterHolders.h ParameterSet.h ParameterTypes.h Range.h ReferenceFrame.h ReplicaDimArray.h Residue.h StringRoutines.h SymbolExporting.h TextFormat.h Timer.h Topology.h TypeNameHolder.h Vec3.h @@ -231,58 +231,58 @@ DistRoutines.o : DistRoutines.cpp Box.h DistRoutines.h Matrix_3x3.h Parallel.h V Energy.o : Energy.cpp Atom.h AtomExtra.h AtomMask.h AtomType.h Box.h CharMask.h Constants.h CoordinateInfo.h CpptrajStdio.h DistRoutines.h Energy.h FileName.h Frame.h MaskToken.h Matrix_3x3.h Molecule.h NameType.h Parallel.h ParameterHolders.h ParameterSet.h ParameterTypes.h Range.h ReplicaDimArray.h Residue.h SymbolExporting.h Topology.h TorsionRoutines.h TypeNameHolder.h Vec3.h Energy_Sander.o : Energy_Sander.cpp ArgList.h Atom.h AtomExtra.h AtomMask.h AtomType.h BaseIOtype.h BondSearch.h Box.h Constants.h CoordinateInfo.h CpptrajFile.h CpptrajStdio.h Energy_Sander.h FileIO.h FileName.h FileTypes.h Frame.h MaskToken.h Matrix_3x3.h Molecule.h NameType.h Parallel.h ParameterHolders.h ParameterSet.h ParameterTypes.h ParmFile.h ParmIO.h Range.h ReplicaDimArray.h Residue.h SymbolExporting.h Topology.h TypeNameHolder.h Vec3.h EnsembleIn.o : EnsembleIn.cpp Atom.h AtomMask.h Box.h CoordinateInfo.h CpptrajStdio.h EnsembleIn.h FileName.h Frame.h FramePtrArray.h InputTrajCommon.h MaskToken.h Matrix_3x3.h Molecule.h NameType.h Parallel.h ReplicaDimArray.h ReplicaInfo.h Residue.h SymbolExporting.h Timer.h TrajFrameCounter.h Vec3.h -EnsembleIn_Multi.o : EnsembleIn_Multi.cpp ArgList.h AssociatedData.h Atom.h AtomExtra.h AtomMask.h AtomType.h BaseIOtype.h Box.h Constants.h CoordinateInfo.h CpptrajFile.h CpptrajStdio.h DataFile.h DataIO.h DataSet.h DataSetList.h DataSet_Coords.h DataSet_Coords_REF.h DataSet_RemLog.h Dimension.h EnsembleIn.h EnsembleIn_Multi.h FileIO.h FileName.h FileTypes.h Frame.h FrameArray.h FramePtrArray.h InputTrajCommon.h MaskToken.h Matrix_3x3.h MetaData.h Molecule.h NameType.h Parallel.h ParameterHolders.h ParameterSet.h ParameterTypes.h Range.h ReferenceFrame.h ReplicaDimArray.h ReplicaInfo.h Residue.h StringRoutines.h SymbolExporting.h TextFormat.h Timer.h Topology.h TrajFrameCounter.h TrajIOarray.h TrajectoryIO.h TypeNameHolder.h Vec3.h +EnsembleIn_Multi.o : EnsembleIn_Multi.cpp ArgList.h AssociatedData.h Atom.h AtomExtra.h AtomMask.h AtomType.h BaseIOtype.h Box.h Constants.h CoordinateInfo.h CpptrajFile.h CpptrajStdio.h DataFile.h DataSet.h DataSetList.h DataSet_Coords.h DataSet_Coords_REF.h DataSet_RemLog.h Dimension.h EnsembleIn.h EnsembleIn_Multi.h FileIO.h FileName.h FileTypes.h Frame.h FrameArray.h FramePtrArray.h InputTrajCommon.h MaskToken.h Matrix_3x3.h MetaData.h Molecule.h NameType.h Parallel.h ParameterHolders.h ParameterSet.h ParameterTypes.h Range.h ReferenceFrame.h ReplicaDimArray.h ReplicaInfo.h Residue.h StringRoutines.h SymbolExporting.h TextFormat.h Timer.h Topology.h TrajFrameCounter.h TrajIOarray.h TrajectoryIO.h TypeNameHolder.h Vec3.h EnsembleIn_Single.o : EnsembleIn_Single.cpp ArgList.h Atom.h AtomExtra.h AtomMask.h AtomType.h BaseIOtype.h Box.h Constants.h CoordinateInfo.h CpptrajStdio.h EnsembleIn.h EnsembleIn_Single.h FileName.h FileTypes.h Frame.h FrameArray.h FramePtrArray.h InputTrajCommon.h MaskToken.h Matrix_3x3.h Molecule.h NameType.h Parallel.h ParameterHolders.h ParameterSet.h ParameterTypes.h Range.h ReplicaDimArray.h ReplicaInfo.h Residue.h SymbolExporting.h Timer.h Topology.h TrajFrameCounter.h TrajectoryFile.h TrajectoryIO.h TypeNameHolder.h Vec3.h EnsembleNavigator.o : EnsembleNavigator.cpp Atom.h AtomMask.h Box.h CoordinateInfo.h CpptrajStdio.h EnsembleIn.h EnsembleNavigator.h FileName.h Frame.h FramePtrArray.h InputTrajCommon.h MaskToken.h Matrix_3x3.h Molecule.h NameType.h Parallel.h ReplicaDimArray.h ReplicaInfo.h Residue.h SymbolExporting.h Timer.h TrajFrameCounter.h TrajFrameIndex.h Trajin.h TrajinList.h Vec3.h -EnsembleOut.o : EnsembleOut.cpp ActionFrameCounter.h ArgList.h BaseIOtype.h Box.h CoordinateInfo.h CpptrajStdio.h EnsembleOut.h FileName.h FileTypes.h FramePtrArray.h Matrix_3x3.h OutputTrajCommon.h Parallel.h Range.h ReplicaDimArray.h TrajectoryFile.h Vec3.h +EnsembleOut.o : EnsembleOut.cpp ActionFrameCounter.h BaseIOtype.h Box.h CoordinateInfo.h CpptrajStdio.h EnsembleOut.h FileName.h FileTypes.h FramePtrArray.h Matrix_3x3.h OutputTrajCommon.h Parallel.h Range.h ReplicaDimArray.h TrajectoryFile.h Vec3.h EnsembleOutList.o : EnsembleOutList.cpp ActionFrameCounter.h ArgList.h Atom.h AtomExtra.h AtomMask.h AtomType.h BaseIOtype.h Box.h Constants.h CoordinateInfo.h CpptrajStdio.h EnsembleOut.h EnsembleOutList.h EnsembleOut_Multi.h EnsembleOut_Single.h FileName.h FileTypes.h Frame.h FramePtrArray.h MaskToken.h Matrix_3x3.h Molecule.h NameType.h OutputTrajCommon.h Parallel.h ParameterHolders.h ParameterSet.h ParameterTypes.h Range.h ReplicaDimArray.h Residue.h SymbolExporting.h Topology.h TrajectoryFile.h TypeNameHolder.h Vec3.h EnsembleOut_Multi.o : EnsembleOut_Multi.cpp ActionFrameCounter.h ArgList.h Atom.h AtomExtra.h AtomMask.h AtomType.h BaseIOtype.h Box.h Constants.h CoordinateInfo.h CpptrajStdio.h EnsembleOut.h EnsembleOut_Multi.h FileName.h FileTypes.h Frame.h FramePtrArray.h MaskToken.h Matrix_3x3.h Molecule.h NameType.h OutputTrajCommon.h Parallel.h ParameterHolders.h ParameterSet.h ParameterTypes.h Range.h ReplicaDimArray.h Residue.h StringRoutines.h SymbolExporting.h Topology.h TrajectoryFile.h TrajectoryIO.h TypeNameHolder.h Vec3.h EnsembleOut_Single.o : EnsembleOut_Single.cpp ActionFrameCounter.h ArgList.h Atom.h AtomExtra.h AtomMask.h AtomType.h BaseIOtype.h Box.h Constants.h CoordinateInfo.h CpptrajStdio.h EnsembleOut.h EnsembleOut_Single.h FileName.h FileTypes.h Frame.h FramePtrArray.h MaskToken.h Matrix_3x3.h Molecule.h NameType.h OutputTrajCommon.h Parallel.h ParameterHolders.h ParameterSet.h ParameterTypes.h Range.h ReplicaDimArray.h Residue.h SymbolExporting.h Topology.h TrajectoryFile.h TrajectoryIO.h TypeNameHolder.h Vec3.h Ewald.o : Ewald.cpp Atom.h AtomExtra.h AtomMask.h AtomType.h Box.h CharMask.h Constants.h CoordinateInfo.h CpptrajStdio.h EnergyKernel_Adjust.h EnergyKernel_Nonbond.h Ewald.h FileName.h Frame.h MaskToken.h Matrix_3x3.h Molecule.h NameType.h PairList.h PairListLoop.h Parallel.h ParameterHolders.h ParameterSet.h ParameterTypes.h Range.h ReplicaDimArray.h Residue.h Spline.h StringRoutines.h SymbolExporting.h Timer.h Topology.h TypeNameHolder.h Vec3.h Ewald_ParticleMesh.o : Ewald_ParticleMesh.cpp Atom.h AtomExtra.h AtomMask.h AtomType.h Box.h Constants.h CoordinateInfo.h CpptrajStdio.h Ewald.h Ewald_ParticleMesh.h FileName.h Frame.h MaskToken.h Matrix_3x3.h Molecule.h NameType.h PairList.h Parallel.h ParameterHolders.h ParameterSet.h ParameterTypes.h Range.h ReplicaDimArray.h Residue.h SymbolExporting.h Timer.h Topology.h TypeNameHolder.h Vec3.h helpme_standalone.h Ewald_Regular.o : Ewald_Regular.cpp Atom.h AtomExtra.h AtomMask.h AtomType.h Box.h Constants.h CoordinateInfo.h CpptrajStdio.h Ewald.h Ewald_Regular.h FileName.h Frame.h MaskToken.h Matrix_3x3.h Molecule.h NameType.h PairList.h Parallel.h ParameterHolders.h ParameterSet.h ParameterTypes.h Range.h ReplicaDimArray.h Residue.h StringRoutines.h SymbolExporting.h Timer.h Topology.h TypeNameHolder.h Vec3.h -Exec_Analyze.o : Exec_Analyze.cpp Action.h ActionList.h ActionState.h Analysis.h AnalysisList.h AnalysisState.h ArgList.h AssociatedData.h Atom.h AtomExtra.h AtomMask.h AtomType.h BaseIOtype.h Box.h Cmd.h CmdList.h Command.h Constants.h CoordinateInfo.h CpptrajFile.h CpptrajState.h CpptrajStdio.h DataFile.h DataFileList.h DataIO.h DataSet.h DataSetList.h DataSet_Coords.h DataSet_Coords_REF.h Dimension.h DispatchObject.h EnsembleIn.h EnsembleOutList.h Exec.h Exec_Analyze.h FileIO.h FileName.h FileTypes.h Frame.h FramePtrArray.h InputTrajCommon.h MaskToken.h Matrix_3x3.h MetaData.h Molecule.h NameType.h Parallel.h ParameterHolders.h ParameterSet.h ParameterTypes.h Range.h ReferenceFrame.h ReplicaDimArray.h ReplicaInfo.h Residue.h SymbolExporting.h TextFormat.h Timer.h Topology.h TrajFrameCounter.h Trajin.h TrajinList.h TrajoutList.h TypeNameHolder.h Vec3.h -Exec_Calc.o : Exec_Calc.cpp Action.h ActionList.h ActionState.h Analysis.h AnalysisList.h AnalysisState.h ArgList.h AssociatedData.h Atom.h AtomExtra.h AtomMask.h AtomType.h BaseIOtype.h Box.h Constants.h CoordinateInfo.h CpptrajFile.h CpptrajState.h CpptrajStdio.h DataFile.h DataFileList.h DataIO.h DataSet.h DataSetList.h DataSet_Coords.h DataSet_Coords_REF.h Dimension.h DispatchObject.h EnsembleIn.h EnsembleOutList.h Exec.h Exec_Calc.h FileIO.h FileName.h FileTypes.h Frame.h FramePtrArray.h InputTrajCommon.h MaskToken.h Matrix_3x3.h MetaData.h Molecule.h NameType.h Parallel.h ParameterHolders.h ParameterSet.h ParameterTypes.h RPNcalc.h Range.h ReferenceFrame.h ReplicaDimArray.h ReplicaInfo.h Residue.h SymbolExporting.h TextFormat.h Timer.h Topology.h TrajFrameCounter.h Trajin.h TrajinList.h TrajoutList.h TypeNameHolder.h Vec3.h -Exec_CatCrd.o : Exec_CatCrd.cpp Action.h ActionList.h ActionState.h Analysis.h AnalysisList.h AnalysisState.h ArgList.h AssociatedData.h Atom.h AtomExtra.h AtomMask.h AtomType.h BaseIOtype.h Box.h Constants.h CoordinateInfo.h CpptrajFile.h CpptrajState.h CpptrajStdio.h DataFile.h DataFileList.h DataIO.h DataSet.h DataSetList.h DataSet_Coords.h DataSet_Coords_REF.h Dimension.h DispatchObject.h EnsembleIn.h EnsembleOutList.h Exec.h Exec_CatCrd.h FileIO.h FileName.h FileTypes.h Frame.h FramePtrArray.h InputTrajCommon.h MaskToken.h Matrix_3x3.h MetaData.h Molecule.h NameType.h Parallel.h ParameterHolders.h ParameterSet.h ParameterTypes.h Range.h ReferenceFrame.h ReplicaDimArray.h ReplicaInfo.h Residue.h SymbolExporting.h TextFormat.h Timer.h Topology.h TrajFrameCounter.h Trajin.h TrajinList.h TrajoutList.h TypeNameHolder.h Vec3.h -Exec_Change.o : Exec_Change.cpp Action.h ActionList.h ActionState.h Analysis.h AnalysisList.h AnalysisState.h ArgList.h AssociatedData.h Atom.h AtomExtra.h AtomMask.h AtomType.h BaseIOtype.h Box.h Constants.h CoordinateInfo.h CpptrajFile.h CpptrajState.h CpptrajStdio.h DataFile.h DataFileList.h DataIO.h DataSet.h DataSetList.h DataSet_Coords.h DataSet_Coords_REF.h Dimension.h DispatchObject.h EnsembleIn.h EnsembleOutList.h Exec.h Exec_Change.h FileIO.h FileName.h FileTypes.h Frame.h FramePtrArray.h InputTrajCommon.h MaskToken.h Matrix_3x3.h MetaData.h Molecule.h NameType.h Parallel.h ParameterHolders.h ParameterSet.h ParameterTypes.h Range.h ReferenceFrame.h ReplicaDimArray.h ReplicaInfo.h Residue.h SymbolExporting.h TextFormat.h Timer.h Topology.h TrajFrameCounter.h Trajin.h TrajinList.h TrajoutList.h TypeNameHolder.h Vec3.h -Exec_ClusterMap.o : Exec_ClusterMap.cpp Action.h ActionList.h ActionState.h Analysis.h AnalysisList.h AnalysisState.h ArgList.h ArrayIterator.h AssociatedData.h Atom.h AtomExtra.h AtomMask.h AtomType.h BaseIOtype.h Box.h ClusterMap.h Constants.h CoordinateInfo.h CpptrajFile.h CpptrajState.h CpptrajStdio.h DataFile.h DataFileList.h DataIO.h DataSet.h DataSetList.h DataSet_2D.h DataSet_Coords.h DataSet_Coords_REF.h DataSet_MatrixFlt.h Dimension.h DispatchObject.h EnsembleIn.h EnsembleOutList.h Exec.h Exec_ClusterMap.h FileIO.h FileName.h FileTypes.h Frame.h FramePtrArray.h InputTrajCommon.h MaskToken.h Matrix.h Matrix_3x3.h MetaData.h Molecule.h NameType.h Parallel.h ParameterHolders.h ParameterSet.h ParameterTypes.h Range.h ReferenceFrame.h ReplicaDimArray.h ReplicaInfo.h Residue.h SymbolExporting.h TextFormat.h Timer.h Topology.h TrajFrameCounter.h Trajin.h TrajinList.h TrajoutList.h TypeNameHolder.h Vec3.h -Exec_CombineCoords.o : Exec_CombineCoords.cpp Action.h ActionList.h ActionState.h Analysis.h AnalysisList.h AnalysisState.h ArgList.h AssociatedData.h Atom.h AtomExtra.h AtomMask.h AtomType.h BaseIOtype.h Box.h Constants.h CoordinateInfo.h CpptrajFile.h CpptrajState.h CpptrajStdio.h DataFile.h DataFileList.h DataIO.h DataSet.h DataSetList.h DataSet_Coords.h DataSet_Coords_REF.h Dimension.h DispatchObject.h EnsembleIn.h EnsembleOutList.h Exec.h Exec_CombineCoords.h FileIO.h FileName.h FileTypes.h Frame.h FramePtrArray.h InputTrajCommon.h MaskToken.h Matrix_3x3.h MetaData.h Molecule.h NameType.h Parallel.h ParameterHolders.h ParameterSet.h ParameterTypes.h Range.h ReferenceFrame.h ReplicaDimArray.h ReplicaInfo.h Residue.h SymbolExporting.h TextFormat.h Timer.h Topology.h TrajFrameCounter.h Trajin.h TrajinList.h TrajoutList.h TypeNameHolder.h Vec3.h -Exec_Commands.o : Exec_Commands.cpp Action.h ActionList.h ActionState.h Analysis.h AnalysisList.h AnalysisState.h ArgList.h AssociatedData.h Atom.h AtomExtra.h AtomMask.h AtomType.h BaseIOtype.h Box.h Constants.h CoordinateInfo.h CpptrajFile.h CpptrajState.h CpptrajStdio.h DataFile.h DataFileList.h DataIO.h DataSet.h DataSetList.h DataSet_Coords.h DataSet_Coords_REF.h Dimension.h DispatchObject.h EnsembleIn.h EnsembleOutList.h Exec.h Exec_Commands.h FileIO.h FileName.h FileTypes.h Frame.h FramePtrArray.h InputTrajCommon.h MaskToken.h Matrix_3x3.h MetaData.h Molecule.h NameType.h Parallel.h ParameterHolders.h ParameterSet.h ParameterTypes.h Range.h ReferenceFrame.h ReplicaDimArray.h ReplicaInfo.h Residue.h SymbolExporting.h TextFormat.h Timer.h Topology.h TrajFrameCounter.h Trajin.h TrajinList.h TrajoutList.h TypeNameHolder.h Vec3.h -Exec_CompareTop.o : Exec_CompareTop.cpp Action.h ActionList.h ActionState.h Analysis.h AnalysisList.h AnalysisState.h ArgList.h AssociatedData.h Atom.h AtomExtra.h AtomMask.h AtomType.h BaseIOtype.h Box.h Constants.h CoordinateInfo.h CpptrajFile.h CpptrajState.h CpptrajStdio.h DataFile.h DataFileList.h DataIO.h DataSet.h DataSetList.h DataSet_Coords.h DataSet_Coords_REF.h Dimension.h DispatchObject.h EnsembleIn.h EnsembleOutList.h Exec.h Exec_CompareTop.h FileIO.h FileName.h FileTypes.h Frame.h FramePtrArray.h InputTrajCommon.h MaskToken.h Matrix_3x3.h MetaData.h Molecule.h NameType.h Parallel.h ParameterHolders.h ParameterSet.h ParameterTypes.h Range.h ReferenceFrame.h ReplicaDimArray.h ReplicaInfo.h Residue.h SymbolExporting.h TextFormat.h Timer.h Topology.h TrajFrameCounter.h Trajin.h TrajinList.h TrajoutList.h TypeNameHolder.h Vec3.h -Exec_CrdAction.o : Exec_CrdAction.cpp Action.h ActionList.h ActionState.h Analysis.h AnalysisList.h AnalysisState.h ArgList.h AssociatedData.h Atom.h AtomExtra.h AtomMask.h AtomType.h BaseIOtype.h Box.h Cmd.h CmdList.h Command.h Constants.h CoordinateInfo.h CpptrajFile.h CpptrajState.h CpptrajStdio.h DataFile.h DataFileList.h DataIO.h DataSet.h DataSetList.h DataSet_Coords.h DataSet_Coords_CRD.h DataSet_Coords_REF.h Dimension.h DispatchObject.h EnsembleIn.h EnsembleOutList.h Exec.h Exec_CrdAction.h FileIO.h FileName.h FileTypes.h Frame.h FramePtrArray.h InputTrajCommon.h MaskToken.h Matrix_3x3.h MetaData.h Molecule.h NameType.h Parallel.h ParameterHolders.h ParameterSet.h ParameterTypes.h ProgressBar.h Range.h ReferenceFrame.h ReplicaDimArray.h ReplicaInfo.h Residue.h SymbolExporting.h TextFormat.h Timer.h Topology.h TrajFrameCounter.h Trajin.h TrajinList.h TrajoutList.h TypeNameHolder.h Vec3.h -Exec_CrdOut.o : Exec_CrdOut.cpp Action.h ActionFrameCounter.h ActionList.h ActionState.h Analysis.h AnalysisList.h AnalysisState.h ArgList.h AssociatedData.h Atom.h AtomExtra.h AtomMask.h AtomType.h BaseIOtype.h Box.h Constants.h CoordinateInfo.h CpptrajFile.h CpptrajState.h CpptrajStdio.h DataFile.h DataFileList.h DataIO.h DataSet.h DataSetList.h DataSet_Coords.h DataSet_Coords_REF.h Dimension.h DispatchObject.h EnsembleIn.h EnsembleOutList.h Exec.h Exec_CrdOut.h FileIO.h FileName.h FileTypes.h Frame.h FramePtrArray.h InputTrajCommon.h MaskToken.h Matrix_3x3.h MetaData.h Molecule.h NameType.h OutputTrajCommon.h Parallel.h ParameterHolders.h ParameterSet.h ParameterTypes.h ProgressBar.h Range.h ReferenceFrame.h ReplicaDimArray.h ReplicaInfo.h Residue.h SymbolExporting.h TextFormat.h Timer.h Topology.h TrajFrameCounter.h TrajectoryFile.h Trajin.h TrajinList.h TrajoutList.h Trajout_Single.h TypeNameHolder.h Vec3.h -Exec_CreateSet.o : Exec_CreateSet.cpp Action.h ActionList.h ActionState.h Analysis.h AnalysisList.h AnalysisState.h ArgList.h AssociatedData.h Atom.h AtomExtra.h AtomMask.h AtomType.h BaseIOtype.h Box.h Constants.h CoordinateInfo.h CpptrajFile.h CpptrajState.h CpptrajStdio.h DataFile.h DataFileList.h DataIO.h DataSet.h DataSetList.h DataSet_Coords.h DataSet_Coords_REF.h Dimension.h DispatchObject.h EnsembleIn.h EnsembleOutList.h Exec.h Exec_CreateSet.h FileIO.h FileName.h FileTypes.h Frame.h FramePtrArray.h InputTrajCommon.h MaskToken.h Matrix_3x3.h MetaData.h Molecule.h NameType.h Parallel.h ParameterHolders.h ParameterSet.h ParameterTypes.h RPNcalc.h Range.h ReferenceFrame.h ReplicaDimArray.h ReplicaInfo.h Residue.h SymbolExporting.h TextFormat.h Timer.h Topology.h TrajFrameCounter.h Trajin.h TrajinList.h TrajoutList.h TypeNameHolder.h Vec3.h -Exec_DataFile.o : Exec_DataFile.cpp Action.h ActionList.h ActionState.h Analysis.h AnalysisList.h AnalysisState.h ArgList.h AssociatedData.h Atom.h AtomExtra.h AtomMask.h AtomType.h BaseIOtype.h Box.h Constants.h CoordinateInfo.h CpptrajFile.h CpptrajState.h CpptrajStdio.h DataFile.h DataFileList.h DataIO.h DataSet.h DataSetList.h DataSet_Coords.h DataSet_Coords_REF.h Dimension.h DispatchObject.h EnsembleIn.h EnsembleOutList.h Exec.h Exec_DataFile.h FileIO.h FileName.h FileTypes.h Frame.h FramePtrArray.h InputTrajCommon.h MaskToken.h Matrix_3x3.h MetaData.h Molecule.h NameType.h Parallel.h ParameterHolders.h ParameterSet.h ParameterTypes.h Range.h ReferenceFrame.h ReplicaDimArray.h ReplicaInfo.h Residue.h StringRoutines.h SymbolExporting.h TextFormat.h Timer.h Topology.h TrajFrameCounter.h Trajin.h TrajinList.h TrajoutList.h TypeNameHolder.h Vec3.h -Exec_DataFilter.o : Exec_DataFilter.cpp Action.h ActionList.h ActionState.h Action_FilterByData.h Analysis.h AnalysisList.h AnalysisState.h ArgList.h Array1D.h AssociatedData.h Atom.h AtomExtra.h AtomMask.h AtomType.h BaseIOtype.h Box.h Constants.h CoordinateInfo.h CpptrajFile.h CpptrajState.h CpptrajStdio.h DataFile.h DataFileList.h DataIO.h DataSet.h DataSetList.h DataSet_1D.h DataSet_Coords.h DataSet_Coords_REF.h Dimension.h DispatchObject.h EnsembleIn.h EnsembleOutList.h Exec.h Exec_DataFilter.h FileIO.h FileName.h FileTypes.h Frame.h FramePtrArray.h InputTrajCommon.h MaskToken.h Matrix_3x3.h MetaData.h Molecule.h NameType.h Parallel.h ParameterHolders.h ParameterSet.h ParameterTypes.h ProgressBar.h Range.h ReferenceFrame.h ReplicaDimArray.h ReplicaInfo.h Residue.h SymbolExporting.h TextFormat.h Timer.h Topology.h TrajFrameCounter.h Trajin.h TrajinList.h TrajoutList.h TypeNameHolder.h Vec3.h -Exec_DataSetCmd.o : Exec_DataSetCmd.cpp Action.h ActionList.h ActionState.h Analysis.h AnalysisList.h AnalysisState.h ArgList.h ArrayIterator.h AssociatedData.h Atom.h AtomExtra.h AtomMask.h AtomType.h BaseIOtype.h Box.h ComplexArray.h Constants.h CoordinateInfo.h CpptrajFile.h CpptrajState.h CpptrajStdio.h DataFile.h DataFileList.h DataIO.h DataSet.h DataSetList.h DataSet_1D.h DataSet_2D.h DataSet_Coords.h DataSet_Coords_REF.h DataSet_MatrixDbl.h DataSet_Mesh.h DataSet_Vector.h DataSet_string.h Dimension.h DispatchObject.h EnsembleIn.h EnsembleOutList.h Exec.h Exec_DataSetCmd.h FileIO.h FileName.h FileTypes.h Frame.h FramePtrArray.h InputTrajCommon.h MaskToken.h Matrix.h Matrix_3x3.h MetaData.h Molecule.h NameType.h Parallel.h ParameterHolders.h ParameterSet.h ParameterTypes.h Range.h ReferenceFrame.h ReplicaDimArray.h ReplicaInfo.h Residue.h Spline.h StringRoutines.h SymbolExporting.h TextFormat.h Timer.h Topology.h TrajFrameCounter.h Trajin.h TrajinList.h TrajoutList.h TypeNameHolder.h Vec3.h -Exec_GenerateAmberRst.o : Exec_GenerateAmberRst.cpp Action.h ActionList.h ActionState.h Analysis.h AnalysisList.h AnalysisState.h ArgList.h AssociatedData.h Atom.h AtomExtra.h AtomMask.h AtomType.h BaseIOtype.h Box.h Constants.h CoordinateInfo.h CpptrajFile.h CpptrajState.h CpptrajStdio.h DataFile.h DataFileList.h DataIO.h DataSet.h DataSetList.h DataSet_Coords.h DataSet_Coords_REF.h Dimension.h DispatchObject.h DistRoutines.h EnsembleIn.h EnsembleOutList.h Exec.h Exec_GenerateAmberRst.h FileIO.h FileName.h FileTypes.h Frame.h FramePtrArray.h InputTrajCommon.h MaskToken.h Matrix_3x3.h MetaData.h Molecule.h NameType.h Parallel.h ParameterHolders.h ParameterSet.h ParameterTypes.h Range.h ReferenceFrame.h ReplicaDimArray.h ReplicaInfo.h Residue.h SymbolExporting.h TextFormat.h Timer.h Topology.h TorsionRoutines.h TrajFrameCounter.h Trajin.h TrajinList.h TrajoutList.h TypeNameHolder.h Vec3.h -Exec_Help.o : Exec_Help.cpp Action.h ActionList.h ActionState.h Analysis.h AnalysisList.h AnalysisState.h ArgList.h AssociatedData.h Atom.h AtomExtra.h AtomMask.h AtomType.h BaseIOtype.h BondSearch.h Box.h Cmd.h CmdList.h Command.h Constants.h CoordinateInfo.h CpptrajFile.h CpptrajState.h CpptrajStdio.h DataFile.h DataFileList.h DataIO.h DataSet.h DataSetList.h DataSet_Coords.h DataSet_Coords_REF.h Dimension.h DispatchObject.h EnsembleIn.h EnsembleOutList.h Exec.h Exec_Help.h FileIO.h FileName.h FileTypes.h Frame.h FramePtrArray.h InputTrajCommon.h MaskToken.h Matrix_3x3.h MetaData.h Molecule.h NameType.h Parallel.h ParameterHolders.h ParameterSet.h ParameterTypes.h ParmFile.h ParmIO.h Range.h ReferenceFrame.h ReplicaDimArray.h ReplicaInfo.h Residue.h SymbolExporting.h TextFormat.h Timer.h Topology.h TrajFrameCounter.h TrajectoryFile.h Trajin.h TrajinList.h TrajoutList.h TypeNameHolder.h Vec3.h -Exec_LoadCrd.o : Exec_LoadCrd.cpp Action.h ActionList.h ActionState.h Analysis.h AnalysisList.h AnalysisState.h ArgList.h AssociatedData.h Atom.h AtomExtra.h AtomMask.h AtomType.h BaseIOtype.h Box.h Constants.h CoordinateInfo.h CpptrajFile.h CpptrajState.h CpptrajStdio.h DataFile.h DataFileList.h DataIO.h DataSet.h DataSetList.h DataSet_Coords.h DataSet_Coords_REF.h Dimension.h DispatchObject.h EnsembleIn.h EnsembleOutList.h Exec.h Exec_LoadCrd.h FileIO.h FileName.h FileTypes.h Frame.h FramePtrArray.h InputTrajCommon.h MaskToken.h Matrix_3x3.h MetaData.h Molecule.h NameType.h Parallel.h ParameterHolders.h ParameterSet.h ParameterTypes.h Range.h ReferenceFrame.h ReplicaDimArray.h ReplicaInfo.h Residue.h SymbolExporting.h TextFormat.h Timer.h Topology.h TrajFrameCounter.h Trajin.h TrajinList.h Trajin_Single.h TrajoutList.h TypeNameHolder.h Vec3.h -Exec_LoadTraj.o : Exec_LoadTraj.cpp Action.h ActionList.h ActionState.h Analysis.h AnalysisList.h AnalysisState.h ArgList.h AssociatedData.h Atom.h AtomExtra.h AtomMask.h AtomType.h BaseIOtype.h Box.h Constants.h CoordinateInfo.h CpptrajFile.h CpptrajState.h CpptrajStdio.h DataFile.h DataFileList.h DataIO.h DataSet.h DataSetList.h DataSet_Coords.h DataSet_Coords_REF.h DataSet_Coords_TRJ.h Dimension.h DispatchObject.h EnsembleIn.h EnsembleOutList.h Exec.h Exec_LoadTraj.h FileIO.h FileName.h FileTypes.h Frame.h FramePtrArray.h InputTrajCommon.h MaskToken.h Matrix_3x3.h MetaData.h Molecule.h NameType.h Parallel.h ParameterHolders.h ParameterSet.h ParameterTypes.h Range.h ReferenceFrame.h ReplicaDimArray.h ReplicaInfo.h Residue.h SymbolExporting.h TextFormat.h Timer.h Topology.h TrajFrameCounter.h TrajFrameIndex.h Trajin.h TrajinList.h TrajoutList.h TypeNameHolder.h Vec3.h -Exec_ParallelAnalysis.o : Exec_ParallelAnalysis.cpp Action.h ActionList.h ActionState.h Analysis.h AnalysisList.h AnalysisState.h ArgList.h AssociatedData.h Atom.h AtomExtra.h AtomMask.h AtomType.h BaseIOtype.h Box.h Constants.h CoordinateInfo.h CpptrajFile.h CpptrajState.h CpptrajStdio.h DataFile.h DataFileList.h DataIO.h DataSet.h DataSetList.h DataSet_Coords.h DataSet_Coords_REF.h Dimension.h DispatchObject.h EnsembleIn.h EnsembleOutList.h Exec.h Exec_ParallelAnalysis.h FileIO.h FileName.h FileTypes.h Frame.h FramePtrArray.h InputTrajCommon.h MaskToken.h Matrix_3x3.h MetaData.h Molecule.h NameType.h Parallel.h ParameterHolders.h ParameterSet.h ParameterTypes.h Range.h ReferenceFrame.h ReplicaDimArray.h ReplicaInfo.h Residue.h SymbolExporting.h TextFormat.h Timer.h Topology.h TrajFrameCounter.h Trajin.h TrajinList.h TrajoutList.h TypeNameHolder.h Vec3.h -Exec_ParmBox.o : Exec_ParmBox.cpp Action.h ActionList.h ActionState.h Analysis.h AnalysisList.h AnalysisState.h ArgList.h AssociatedData.h Atom.h AtomExtra.h AtomMask.h AtomType.h BaseIOtype.h Box.h Constants.h CoordinateInfo.h CpptrajFile.h CpptrajState.h CpptrajStdio.h DataFile.h DataFileList.h DataIO.h DataSet.h DataSetList.h DataSet_Coords.h DataSet_Coords_REF.h Dimension.h DispatchObject.h EnsembleIn.h EnsembleOutList.h Exec.h Exec_ParmBox.h FileIO.h FileName.h FileTypes.h Frame.h FramePtrArray.h InputTrajCommon.h MaskToken.h Matrix_3x3.h MetaData.h Molecule.h NameType.h Parallel.h ParameterHolders.h ParameterSet.h ParameterTypes.h Range.h ReferenceFrame.h ReplicaDimArray.h ReplicaInfo.h Residue.h SymbolExporting.h TextFormat.h Timer.h Topology.h TrajFrameCounter.h Trajin.h TrajinList.h TrajoutList.h TypeNameHolder.h Vec3.h -Exec_ParmSolvent.o : Exec_ParmSolvent.cpp Action.h ActionList.h ActionState.h Analysis.h AnalysisList.h AnalysisState.h ArgList.h AssociatedData.h Atom.h AtomExtra.h AtomMask.h AtomType.h BaseIOtype.h Box.h Constants.h CoordinateInfo.h CpptrajFile.h CpptrajState.h CpptrajStdio.h DataFile.h DataFileList.h DataIO.h DataSet.h DataSetList.h DataSet_Coords.h DataSet_Coords_REF.h Dimension.h DispatchObject.h EnsembleIn.h EnsembleOutList.h Exec.h Exec_ParmSolvent.h FileIO.h FileName.h FileTypes.h Frame.h FramePtrArray.h InputTrajCommon.h MaskToken.h Matrix_3x3.h MetaData.h Molecule.h NameType.h Parallel.h ParameterHolders.h ParameterSet.h ParameterTypes.h Range.h ReferenceFrame.h ReplicaDimArray.h ReplicaInfo.h Residue.h SymbolExporting.h TextFormat.h Timer.h Topology.h TrajFrameCounter.h Trajin.h TrajinList.h TrajoutList.h TypeNameHolder.h Vec3.h -Exec_ParmStrip.o : Exec_ParmStrip.cpp Action.h ActionList.h ActionState.h Analysis.h AnalysisList.h AnalysisState.h ArgList.h AssociatedData.h Atom.h AtomExtra.h AtomMask.h AtomType.h BaseIOtype.h Box.h Constants.h CoordinateInfo.h CpptrajFile.h CpptrajState.h CpptrajStdio.h DataFile.h DataFileList.h DataIO.h DataSet.h DataSetList.h DataSet_Coords.h DataSet_Coords_REF.h Dimension.h DispatchObject.h EnsembleIn.h EnsembleOutList.h Exec.h Exec_ParmStrip.h FileIO.h FileName.h FileTypes.h Frame.h FramePtrArray.h InputTrajCommon.h MaskToken.h Matrix_3x3.h MetaData.h Molecule.h NameType.h Parallel.h ParameterHolders.h ParameterSet.h ParameterTypes.h Range.h ReferenceFrame.h ReplicaDimArray.h ReplicaInfo.h Residue.h SymbolExporting.h TextFormat.h Timer.h Topology.h TrajFrameCounter.h Trajin.h TrajinList.h TrajoutList.h TypeNameHolder.h Vec3.h -Exec_ParmWrite.o : Exec_ParmWrite.cpp Action.h ActionList.h ActionState.h Analysis.h AnalysisList.h AnalysisState.h ArgList.h AssociatedData.h Atom.h AtomExtra.h AtomMask.h AtomType.h BaseIOtype.h BondSearch.h Box.h Constants.h CoordinateInfo.h CpptrajFile.h CpptrajState.h CpptrajStdio.h DataFile.h DataFileList.h DataIO.h DataSet.h DataSetList.h DataSet_Coords.h DataSet_Coords_REF.h Dimension.h DispatchObject.h EnsembleIn.h EnsembleOutList.h Exec.h Exec_ParmWrite.h FileIO.h FileName.h FileTypes.h Frame.h FramePtrArray.h InputTrajCommon.h MaskToken.h Matrix_3x3.h MetaData.h Molecule.h NameType.h Parallel.h ParameterHolders.h ParameterSet.h ParameterTypes.h ParmFile.h ParmIO.h Range.h ReferenceFrame.h ReplicaDimArray.h ReplicaInfo.h Residue.h SymbolExporting.h TextFormat.h Timer.h Topology.h TrajFrameCounter.h Trajin.h TrajinList.h TrajoutList.h TypeNameHolder.h Vec3.h -Exec_PermuteDihedrals.o : Exec_PermuteDihedrals.cpp Action.h ActionFrameCounter.h ActionList.h ActionState.h Analysis.h AnalysisList.h AnalysisState.h ArgList.h AssociatedData.h Atom.h AtomExtra.h AtomMask.h AtomType.h BaseIOtype.h Box.h CharMask.h Constants.h CoordinateInfo.h CpptrajFile.h CpptrajState.h CpptrajStdio.h DataFile.h DataFileList.h DataIO.h DataSet.h DataSetList.h DataSet_Coords.h DataSet_Coords_CRD.h DataSet_Coords_REF.h DihedralSearch.h Dimension.h DispatchObject.h DistRoutines.h EnsembleIn.h EnsembleOutList.h Exec.h Exec_PermuteDihedrals.h FileIO.h FileName.h FileTypes.h Frame.h FramePtrArray.h ImagedAction.h InputTrajCommon.h MaskToken.h Matrix_3x3.h MetaData.h Molecule.h NameType.h OutputTrajCommon.h PairList.h Parallel.h ParameterHolders.h ParameterSet.h ParameterTypes.h Random.h Range.h ReferenceFrame.h ReplicaDimArray.h ReplicaInfo.h Residue.h StructureCheck.h SymbolExporting.h TextFormat.h Timer.h Topology.h TorsionRoutines.h TrajFrameCounter.h TrajectoryFile.h Trajin.h TrajinList.h TrajoutList.h Trajout_Single.h TypeNameHolder.h Vec3.h -Exec_Precision.o : Exec_Precision.cpp Action.h ActionList.h ActionState.h Analysis.h AnalysisList.h AnalysisState.h ArgList.h AssociatedData.h Atom.h AtomExtra.h AtomMask.h AtomType.h BaseIOtype.h Box.h Constants.h CoordinateInfo.h CpptrajFile.h CpptrajState.h CpptrajStdio.h DataFile.h DataFileList.h DataIO.h DataSet.h DataSetList.h DataSet_Coords.h DataSet_Coords_REF.h Dimension.h DispatchObject.h EnsembleIn.h EnsembleOutList.h Exec.h Exec_Precision.h FileIO.h FileName.h FileTypes.h Frame.h FramePtrArray.h InputTrajCommon.h MaskToken.h Matrix_3x3.h MetaData.h Molecule.h NameType.h Parallel.h ParameterHolders.h ParameterSet.h ParameterTypes.h Range.h ReferenceFrame.h ReplicaDimArray.h ReplicaInfo.h Residue.h SymbolExporting.h TextFormat.h Timer.h Topology.h TrajFrameCounter.h Trajin.h TrajinList.h TrajoutList.h TypeNameHolder.h Vec3.h -Exec_PrintData.o : Exec_PrintData.cpp Action.h ActionList.h ActionState.h Analysis.h AnalysisList.h AnalysisState.h ArgList.h AssociatedData.h Atom.h AtomExtra.h AtomMask.h AtomType.h BaseIOtype.h Box.h Constants.h CoordinateInfo.h CpptrajFile.h CpptrajState.h CpptrajStdio.h DataFile.h DataFileList.h DataIO.h DataSet.h DataSetList.h DataSet_Coords.h DataSet_Coords_REF.h Dimension.h DispatchObject.h EnsembleIn.h EnsembleOutList.h Exec.h Exec_PrintData.h FileIO.h FileName.h FileTypes.h Frame.h FramePtrArray.h InputTrajCommon.h MaskToken.h Matrix_3x3.h MetaData.h Molecule.h NameType.h Parallel.h ParameterHolders.h ParameterSet.h ParameterTypes.h Range.h ReferenceFrame.h ReplicaDimArray.h ReplicaInfo.h Residue.h SymbolExporting.h TextFormat.h Timer.h Topology.h TrajFrameCounter.h Trajin.h TrajinList.h TrajoutList.h TypeNameHolder.h Vec3.h -Exec_ReadData.o : Exec_ReadData.cpp Action.h ActionList.h ActionState.h Analysis.h AnalysisList.h AnalysisState.h ArgList.h AssociatedData.h Atom.h AtomExtra.h AtomMask.h AtomType.h BaseIOtype.h Box.h Constants.h CoordinateInfo.h CpptrajFile.h CpptrajState.h CpptrajStdio.h DataFile.h DataFileList.h DataIO.h DataSet.h DataSetList.h DataSet_Coords.h DataSet_Coords_REF.h Dimension.h DispatchObject.h EnsembleIn.h EnsembleOutList.h Exec.h Exec_ReadData.h FileIO.h FileName.h FileTypes.h Frame.h FramePtrArray.h InputTrajCommon.h MaskToken.h Matrix_3x3.h MetaData.h Molecule.h NameType.h Parallel.h ParameterHolders.h ParameterSet.h ParameterTypes.h Range.h ReferenceFrame.h ReplicaDimArray.h ReplicaInfo.h Residue.h SymbolExporting.h TextFormat.h Timer.h Topology.h TrajFrameCounter.h Trajin.h TrajinList.h TrajoutList.h TypeNameHolder.h Vec3.h -Exec_ReadEnsembleData.o : Exec_ReadEnsembleData.cpp Action.h ActionList.h ActionState.h Analysis.h AnalysisList.h AnalysisState.h ArgList.h AssociatedData.h Atom.h AtomExtra.h AtomMask.h AtomType.h BaseIOtype.h Box.h Constants.h CoordinateInfo.h CpptrajFile.h CpptrajState.h CpptrajStdio.h DataFile.h DataFileList.h DataIO.h DataSet.h DataSetList.h DataSet_Coords.h DataSet_Coords_REF.h Dimension.h DispatchObject.h EnsembleIn.h EnsembleOutList.h Exec.h Exec_ReadEnsembleData.h FileIO.h FileName.h FileTypes.h Frame.h FramePtrArray.h InputTrajCommon.h MaskToken.h Matrix_3x3.h MetaData.h Molecule.h NameType.h Parallel.h ParameterHolders.h ParameterSet.h ParameterTypes.h Range.h ReferenceFrame.h ReplicaDimArray.h ReplicaInfo.h Residue.h SymbolExporting.h TextFormat.h Timer.h Topology.h TrajFrameCounter.h Trajin.h TrajinList.h TrajoutList.h TypeNameHolder.h Vec3.h -Exec_ReadInput.o : Exec_ReadInput.cpp Action.h ActionList.h ActionState.h Analysis.h AnalysisList.h AnalysisState.h ArgList.h AssociatedData.h Atom.h AtomExtra.h AtomMask.h AtomType.h BaseIOtype.h Box.h Cmd.h CmdList.h Command.h Constants.h CoordinateInfo.h CpptrajFile.h CpptrajState.h CpptrajStdio.h DataFile.h DataFileList.h DataIO.h DataSet.h DataSetList.h DataSet_Coords.h DataSet_Coords_REF.h Dimension.h DispatchObject.h EnsembleIn.h EnsembleOutList.h Exec.h Exec_ReadInput.h FileIO.h FileName.h FileTypes.h Frame.h FramePtrArray.h InputTrajCommon.h MaskToken.h Matrix_3x3.h MetaData.h Molecule.h NameType.h Parallel.h ParameterHolders.h ParameterSet.h ParameterTypes.h Range.h ReferenceFrame.h ReplicaDimArray.h ReplicaInfo.h Residue.h SymbolExporting.h TextFormat.h Timer.h Topology.h TrajFrameCounter.h Trajin.h TrajinList.h TrajoutList.h TypeNameHolder.h Vec3.h -Exec_RotateDihedral.o : Exec_RotateDihedral.cpp Action.h ActionList.h ActionState.h Analysis.h AnalysisList.h AnalysisState.h ArgList.h AssociatedData.h Atom.h AtomExtra.h AtomMask.h AtomType.h BaseIOtype.h Box.h Constants.h CoordinateInfo.h CpptrajFile.h CpptrajState.h CpptrajStdio.h DataFile.h DataFileList.h DataIO.h DataSet.h DataSetList.h DataSet_Coords.h DataSet_Coords_REF.h DihedralSearch.h Dimension.h DispatchObject.h EnsembleIn.h EnsembleOutList.h Exec.h Exec_RotateDihedral.h FileIO.h FileName.h FileTypes.h Frame.h FramePtrArray.h InputTrajCommon.h MaskToken.h Matrix_3x3.h MetaData.h Molecule.h NameType.h Parallel.h ParameterHolders.h ParameterSet.h ParameterTypes.h Range.h ReferenceFrame.h ReplicaDimArray.h ReplicaInfo.h Residue.h SymbolExporting.h TextFormat.h Timer.h Topology.h TorsionRoutines.h TrajFrameCounter.h Trajin.h TrajinList.h TrajoutList.h TypeNameHolder.h Vec3.h -Exec_RunAnalysis.o : Exec_RunAnalysis.cpp Action.h ActionList.h ActionState.h Analysis.h AnalysisList.h AnalysisState.h ArgList.h AssociatedData.h Atom.h AtomExtra.h AtomMask.h AtomType.h BaseIOtype.h Box.h Cmd.h CmdList.h Command.h Constants.h CoordinateInfo.h CpptrajFile.h CpptrajState.h CpptrajStdio.h DataFile.h DataFileList.h DataIO.h DataSet.h DataSetList.h DataSet_Coords.h DataSet_Coords_REF.h Dimension.h DispatchObject.h EnsembleIn.h EnsembleOutList.h Exec.h Exec_RunAnalysis.h FileIO.h FileName.h FileTypes.h Frame.h FramePtrArray.h InputTrajCommon.h MaskToken.h Matrix_3x3.h MetaData.h Molecule.h NameType.h Parallel.h ParameterHolders.h ParameterSet.h ParameterTypes.h Range.h ReferenceFrame.h ReplicaDimArray.h ReplicaInfo.h Residue.h SymbolExporting.h TextFormat.h Timer.h Topology.h TrajFrameCounter.h Trajin.h TrajinList.h TrajoutList.h TypeNameHolder.h Vec3.h -Exec_ScaleDihedralK.o : Exec_ScaleDihedralK.cpp Action.h ActionList.h ActionState.h Analysis.h AnalysisList.h AnalysisState.h ArgList.h AssociatedData.h Atom.h AtomExtra.h AtomMask.h AtomType.h BaseIOtype.h Box.h Constants.h CoordinateInfo.h CpptrajFile.h CpptrajState.h CpptrajStdio.h DataFile.h DataFileList.h DataIO.h DataSet.h DataSetList.h DataSet_Coords.h DataSet_Coords_REF.h Dimension.h DispatchObject.h EnsembleIn.h EnsembleOutList.h Exec.h Exec_ScaleDihedralK.h FileIO.h FileName.h FileTypes.h Frame.h FramePtrArray.h InputTrajCommon.h MaskToken.h Matrix_3x3.h MetaData.h Molecule.h NameType.h Parallel.h ParameterHolders.h ParameterSet.h ParameterTypes.h Range.h ReferenceFrame.h ReplicaDimArray.h ReplicaInfo.h Residue.h SymbolExporting.h TextFormat.h Timer.h Topology.h TrajFrameCounter.h Trajin.h TrajinList.h TrajoutList.h TypeNameHolder.h Vec3.h -Exec_SequenceAlign.o : Exec_SequenceAlign.cpp Action.h ActionFrameCounter.h ActionList.h ActionState.h Analysis.h AnalysisList.h AnalysisState.h ArgList.h AssociatedData.h Atom.h AtomExtra.h AtomMask.h AtomType.h BaseIOtype.h Box.h BufferedLine.h Constants.h CoordinateInfo.h CpptrajFile.h CpptrajState.h CpptrajStdio.h DataFile.h DataFileList.h DataIO.h DataSet.h DataSetList.h DataSet_Coords.h DataSet_Coords_REF.h Dimension.h DispatchObject.h EnsembleIn.h EnsembleOutList.h Exec.h Exec_SequenceAlign.h FileIO.h FileName.h FileTypes.h Frame.h FramePtrArray.h InputTrajCommon.h MaskToken.h Matrix_3x3.h MetaData.h Molecule.h NameType.h OutputTrajCommon.h Parallel.h ParameterHolders.h ParameterSet.h ParameterTypes.h Range.h ReferenceFrame.h ReplicaDimArray.h ReplicaInfo.h Residue.h StringRoutines.h SymbolExporting.h TextFormat.h Timer.h Topology.h TrajFrameCounter.h TrajectoryFile.h Trajin.h TrajinList.h TrajoutList.h Trajout_Single.h TypeNameHolder.h Vec3.h -Exec_Set.o : Exec_Set.cpp Action.h ActionList.h ActionState.h Analysis.h AnalysisList.h AnalysisState.h ArgList.h AssociatedData.h Atom.h AtomExtra.h AtomMask.h AtomType.h BaseIOtype.h Box.h Constants.h CoordinateInfo.h CpptrajFile.h CpptrajState.h CpptrajStdio.h DataFile.h DataFileList.h DataIO.h DataSet.h DataSetList.h DataSet_Coords.h DataSet_Coords_REF.h DataSet_StringVar.h Dimension.h DispatchObject.h EnsembleIn.h EnsembleOutList.h Exec.h Exec_Set.h FileIO.h FileName.h FileTypes.h Frame.h FramePtrArray.h InputTrajCommon.h MaskToken.h Matrix_3x3.h MetaData.h Molecule.h NameType.h Parallel.h ParameterHolders.h ParameterSet.h ParameterTypes.h Range.h ReferenceFrame.h ReplicaDimArray.h ReplicaInfo.h Residue.h StringRoutines.h SymbolExporting.h TextFormat.h Timer.h Topology.h TrajFrameCounter.h Trajin.h TrajinList.h TrajoutList.h TypeNameHolder.h Vec3.h -Exec_Show.o : Exec_Show.cpp Action.h ActionList.h ActionState.h Analysis.h AnalysisList.h AnalysisState.h ArgList.h AssociatedData.h Atom.h AtomExtra.h AtomMask.h AtomType.h BaseIOtype.h Box.h Constants.h CoordinateInfo.h CpptrajFile.h CpptrajState.h CpptrajStdio.h DataFile.h DataFileList.h DataIO.h DataSet.h DataSetList.h DataSet_Coords.h DataSet_Coords_REF.h DataSet_StringVar.h Dimension.h DispatchObject.h EnsembleIn.h EnsembleOutList.h Exec.h Exec_Show.h FileIO.h FileName.h FileTypes.h Frame.h FramePtrArray.h InputTrajCommon.h MaskToken.h Matrix_3x3.h MetaData.h Molecule.h NameType.h Parallel.h ParameterHolders.h ParameterSet.h ParameterTypes.h Range.h ReferenceFrame.h ReplicaDimArray.h ReplicaInfo.h Residue.h SymbolExporting.h TextFormat.h Timer.h Topology.h TrajFrameCounter.h Trajin.h TrajinList.h TrajoutList.h TypeNameHolder.h Vec3.h -Exec_SortEnsembleData.o : Exec_SortEnsembleData.cpp Action.h ActionList.h ActionState.h Analysis.h AnalysisList.h AnalysisState.h ArgList.h AssociatedData.h Atom.h AtomExtra.h AtomMask.h AtomType.h BaseIOtype.h Box.h Constants.h CoordinateInfo.h Cph.h CpptrajFile.h CpptrajState.h CpptrajStdio.h DataFile.h DataFileList.h DataIO.h DataSet.h DataSetList.h DataSet_1D.h DataSet_Coords.h DataSet_Coords_REF.h DataSet_PHREMD.h DataSet_PHREMD_Explicit.h DataSet_PHREMD_Implicit.h DataSet_pH.h Dimension.h DispatchObject.h EnsembleIn.h EnsembleOutList.h Exec.h Exec_SortEnsembleData.h FileIO.h FileName.h FileTypes.h Frame.h FramePtrArray.h InputTrajCommon.h MaskToken.h Matrix_3x3.h MetaData.h Molecule.h NameType.h Parallel.h ParameterHolders.h ParameterSet.h ParameterTypes.h Range.h ReferenceFrame.h ReplicaDimArray.h ReplicaInfo.h Residue.h StringRoutines.h SymbolExporting.h TextFormat.h Timer.h Topology.h TrajFrameCounter.h Trajin.h TrajinList.h TrajoutList.h TypeNameHolder.h Vec3.h -Exec_SplitCoords.o : Exec_SplitCoords.cpp Action.h ActionList.h ActionState.h Analysis.h AnalysisList.h AnalysisState.h ArgList.h AssociatedData.h Atom.h AtomExtra.h AtomMask.h AtomType.h BaseIOtype.h Box.h Constants.h CoordinateInfo.h CpptrajFile.h CpptrajState.h CpptrajStdio.h DataFile.h DataFileList.h DataIO.h DataSet.h DataSetList.h DataSet_Coords.h DataSet_Coords_CRD.h DataSet_Coords_REF.h Dimension.h DispatchObject.h EnsembleIn.h EnsembleOutList.h Exec.h Exec_SplitCoords.h FileIO.h FileName.h FileTypes.h Frame.h FramePtrArray.h InputTrajCommon.h MaskToken.h Matrix_3x3.h MetaData.h Molecule.h NameType.h Parallel.h ParameterHolders.h ParameterSet.h ParameterTypes.h ProgressBar.h Range.h ReferenceFrame.h ReplicaDimArray.h ReplicaInfo.h Residue.h SymbolExporting.h TextFormat.h Timer.h Topology.h TrajFrameCounter.h Trajin.h TrajinList.h TrajoutList.h TypeNameHolder.h Vec3.h -Exec_System.o : Exec_System.cpp Action.h ActionList.h ActionState.h Analysis.h AnalysisList.h AnalysisState.h ArgList.h AssociatedData.h Atom.h AtomExtra.h AtomMask.h AtomType.h BaseIOtype.h Box.h Constants.h CoordinateInfo.h CpptrajFile.h CpptrajState.h CpptrajStdio.h DataFile.h DataFileList.h DataIO.h DataSet.h DataSetList.h DataSet_Coords.h DataSet_Coords_REF.h Dimension.h DispatchObject.h EnsembleIn.h EnsembleOutList.h Exec.h Exec_System.h FileIO.h FileName.h FileTypes.h Frame.h FramePtrArray.h InputTrajCommon.h MaskToken.h Matrix_3x3.h MetaData.h Molecule.h NameType.h Parallel.h ParameterHolders.h ParameterSet.h ParameterTypes.h Range.h ReferenceFrame.h ReplicaDimArray.h ReplicaInfo.h Residue.h SymbolExporting.h TextFormat.h Timer.h Topology.h TrajFrameCounter.h Trajin.h TrajinList.h TrajoutList.h TypeNameHolder.h Vec3.h -Exec_Top.o : Exec_Top.cpp Action.h ActionList.h ActionState.h Analysis.h AnalysisList.h AnalysisState.h ArgList.h AssociatedData.h Atom.h AtomExtra.h AtomMask.h AtomType.h BaseIOtype.h BondSearch.h Box.h Constants.h CoordinateInfo.h CpptrajFile.h CpptrajState.h CpptrajStdio.h DataFile.h DataFileList.h DataIO.h DataSet.h DataSetList.h DataSet_Coords.h DataSet_Coords_REF.h Dimension.h DispatchObject.h EnsembleIn.h EnsembleOutList.h Exec.h Exec_Top.h FileIO.h FileName.h FileTypes.h Frame.h FramePtrArray.h InputTrajCommon.h MaskToken.h Matrix_3x3.h MetaData.h Molecule.h NameType.h Parallel.h ParameterHolders.h ParameterSet.h ParameterTypes.h ParmFile.h ParmIO.h Range.h ReferenceFrame.h ReplicaDimArray.h ReplicaInfo.h Residue.h SymbolExporting.h TextFormat.h Timer.h TopInfo.h Topology.h TrajFrameCounter.h Trajin.h TrajinList.h TrajoutList.h TypeNameHolder.h Vec3.h -Exec_Traj.o : Exec_Traj.cpp Action.h ActionFrameCounter.h ActionList.h ActionState.h Analysis.h AnalysisList.h AnalysisState.h ArgList.h AssociatedData.h Atom.h AtomExtra.h AtomMask.h AtomType.h BaseIOtype.h Box.h Constants.h CoordinateInfo.h CpptrajFile.h CpptrajState.h CpptrajStdio.h DataFile.h DataFileList.h DataIO.h DataSet.h DataSetList.h DataSet_Coords.h DataSet_Coords_REF.h Dimension.h DispatchObject.h EnsembleIn.h EnsembleOutList.h Exec.h Exec_Traj.h FileIO.h FileName.h FileTypes.h Frame.h FramePtrArray.h InputTrajCommon.h MaskToken.h Matrix_3x3.h MetaData.h Molecule.h NameType.h Parallel.h ParameterHolders.h ParameterSet.h ParameterTypes.h Range.h ReferenceFrame.h ReplicaDimArray.h ReplicaInfo.h Residue.h SymbolExporting.h TextFormat.h Timer.h Topology.h TrajFrameCounter.h Trajin.h TrajinList.h TrajoutList.h TypeNameHolder.h Vec3.h -Exec_UpdateParameters.o : Exec_UpdateParameters.cpp Action.h ActionList.h ActionState.h Analysis.h AnalysisList.h AnalysisState.h ArgList.h AssociatedData.h Atom.h AtomExtra.h AtomMask.h AtomType.h BaseIOtype.h Box.h Constants.h CoordinateInfo.h CpptrajFile.h CpptrajState.h CpptrajStdio.h DataFile.h DataFileList.h DataIO.h DataSet.h DataSetList.h DataSet_Coords.h DataSet_Coords_REF.h DataSet_Parameters.h DataSet_Topology.h Dimension.h DispatchObject.h EnsembleIn.h EnsembleOutList.h Exec.h Exec_UpdateParameters.h FileIO.h FileName.h FileTypes.h Frame.h FramePtrArray.h InputTrajCommon.h MaskToken.h Matrix_3x3.h MetaData.h Molecule.h NameType.h Parallel.h ParameterHolders.h ParameterSet.h ParameterTypes.h Range.h ReferenceFrame.h ReplicaDimArray.h ReplicaInfo.h Residue.h SymbolExporting.h TextFormat.h Timer.h Topology.h TrajFrameCounter.h Trajin.h TrajinList.h TrajoutList.h TypeNameHolder.h Vec3.h -Exec_ViewRst.o : Exec_ViewRst.cpp Action.h ActionList.h ActionState.h Analysis.h AnalysisList.h AnalysisState.h ArgList.h AssociatedData.h Atom.h AtomExtra.h AtomMask.h AtomType.h BaseIOtype.h Box.h BufferedLine.h Constants.h CoordinateInfo.h CpptrajFile.h CpptrajState.h CpptrajStdio.h DataFile.h DataFileList.h DataIO.h DataSet.h DataSetList.h DataSet_Coords.h DataSet_Coords_REF.h Dimension.h DispatchObject.h EnsembleIn.h EnsembleOutList.h Exec.h Exec_ViewRst.h FileIO.h FileName.h FileTypes.h Frame.h FramePtrArray.h InputTrajCommon.h MaskToken.h Matrix_3x3.h MetaData.h Molecule.h NameType.h Parallel.h ParameterHolders.h ParameterSet.h ParameterTypes.h Range.h ReferenceFrame.h ReplicaDimArray.h ReplicaInfo.h Residue.h SymbolExporting.h TextFormat.h Timer.h Topology.h TrajFrameCounter.h Trajin.h TrajinList.h TrajoutList.h TypeNameHolder.h Vec3.h ViewRst.h +Exec_Analyze.o : Exec_Analyze.cpp Action.h ActionList.h ActionState.h Analysis.h AnalysisList.h AnalysisState.h ArgList.h AssociatedData.h Atom.h AtomExtra.h AtomMask.h AtomType.h BaseIOtype.h Box.h Cmd.h CmdList.h Command.h Constants.h CoordinateInfo.h CpptrajFile.h CpptrajState.h CpptrajStdio.h DataFile.h DataFileList.h DataSet.h DataSetList.h DataSet_Coords.h DataSet_Coords_REF.h Dimension.h DispatchObject.h EnsembleIn.h EnsembleOutList.h Exec.h Exec_Analyze.h FileIO.h FileName.h FileTypes.h Frame.h FramePtrArray.h InputTrajCommon.h MaskToken.h Matrix_3x3.h MetaData.h Molecule.h NameType.h Parallel.h ParameterHolders.h ParameterSet.h ParameterTypes.h Range.h ReferenceFrame.h ReplicaDimArray.h ReplicaInfo.h Residue.h SymbolExporting.h TextFormat.h Timer.h Topology.h TrajFrameCounter.h Trajin.h TrajinList.h TrajoutList.h TypeNameHolder.h Vec3.h +Exec_Calc.o : Exec_Calc.cpp Action.h ActionList.h ActionState.h Analysis.h AnalysisList.h AnalysisState.h ArgList.h AssociatedData.h Atom.h AtomExtra.h AtomMask.h AtomType.h BaseIOtype.h Box.h Constants.h CoordinateInfo.h CpptrajFile.h CpptrajState.h CpptrajStdio.h DataFile.h DataFileList.h DataSet.h DataSetList.h DataSet_Coords.h DataSet_Coords_REF.h Dimension.h DispatchObject.h EnsembleIn.h EnsembleOutList.h Exec.h Exec_Calc.h FileIO.h FileName.h FileTypes.h Frame.h FramePtrArray.h InputTrajCommon.h MaskToken.h Matrix_3x3.h MetaData.h Molecule.h NameType.h Parallel.h ParameterHolders.h ParameterSet.h ParameterTypes.h RPNcalc.h Range.h ReferenceFrame.h ReplicaDimArray.h ReplicaInfo.h Residue.h SymbolExporting.h TextFormat.h Timer.h Topology.h TrajFrameCounter.h Trajin.h TrajinList.h TrajoutList.h TypeNameHolder.h Vec3.h +Exec_CatCrd.o : Exec_CatCrd.cpp Action.h ActionList.h ActionState.h Analysis.h AnalysisList.h AnalysisState.h ArgList.h AssociatedData.h Atom.h AtomExtra.h AtomMask.h AtomType.h BaseIOtype.h Box.h Constants.h CoordinateInfo.h CpptrajFile.h CpptrajState.h CpptrajStdio.h DataFile.h DataFileList.h DataSet.h DataSetList.h DataSet_Coords.h DataSet_Coords_REF.h Dimension.h DispatchObject.h EnsembleIn.h EnsembleOutList.h Exec.h Exec_CatCrd.h FileIO.h FileName.h FileTypes.h Frame.h FramePtrArray.h InputTrajCommon.h MaskToken.h Matrix_3x3.h MetaData.h Molecule.h NameType.h Parallel.h ParameterHolders.h ParameterSet.h ParameterTypes.h Range.h ReferenceFrame.h ReplicaDimArray.h ReplicaInfo.h Residue.h SymbolExporting.h TextFormat.h Timer.h Topology.h TrajFrameCounter.h Trajin.h TrajinList.h TrajoutList.h TypeNameHolder.h Vec3.h +Exec_Change.o : Exec_Change.cpp Action.h ActionList.h ActionState.h Analysis.h AnalysisList.h AnalysisState.h ArgList.h AssociatedData.h Atom.h AtomExtra.h AtomMask.h AtomType.h BaseIOtype.h Box.h Constants.h CoordinateInfo.h CpptrajFile.h CpptrajState.h CpptrajStdio.h DataFile.h DataFileList.h DataSet.h DataSetList.h DataSet_Coords.h DataSet_Coords_REF.h Dimension.h DispatchObject.h EnsembleIn.h EnsembleOutList.h Exec.h Exec_Change.h FileIO.h FileName.h FileTypes.h Frame.h FramePtrArray.h InputTrajCommon.h MaskToken.h Matrix_3x3.h MetaData.h Molecule.h NameType.h Parallel.h ParameterHolders.h ParameterSet.h ParameterTypes.h Range.h ReferenceFrame.h ReplicaDimArray.h ReplicaInfo.h Residue.h SymbolExporting.h TextFormat.h Timer.h Topology.h TrajFrameCounter.h Trajin.h TrajinList.h TrajoutList.h TypeNameHolder.h Vec3.h +Exec_ClusterMap.o : Exec_ClusterMap.cpp Action.h ActionList.h ActionState.h Analysis.h AnalysisList.h AnalysisState.h ArgList.h ArrayIterator.h AssociatedData.h Atom.h AtomExtra.h AtomMask.h AtomType.h BaseIOtype.h Box.h ClusterMap.h Constants.h CoordinateInfo.h CpptrajFile.h CpptrajState.h CpptrajStdio.h DataFile.h DataFileList.h DataSet.h DataSetList.h DataSet_2D.h DataSet_Coords.h DataSet_Coords_REF.h DataSet_MatrixFlt.h Dimension.h DispatchObject.h EnsembleIn.h EnsembleOutList.h Exec.h Exec_ClusterMap.h FileIO.h FileName.h FileTypes.h Frame.h FramePtrArray.h InputTrajCommon.h MaskToken.h Matrix.h Matrix_3x3.h MetaData.h Molecule.h NameType.h Parallel.h ParameterHolders.h ParameterSet.h ParameterTypes.h Range.h ReferenceFrame.h ReplicaDimArray.h ReplicaInfo.h Residue.h SymbolExporting.h TextFormat.h Timer.h Topology.h TrajFrameCounter.h Trajin.h TrajinList.h TrajoutList.h TypeNameHolder.h Vec3.h +Exec_CombineCoords.o : Exec_CombineCoords.cpp Action.h ActionList.h ActionState.h Analysis.h AnalysisList.h AnalysisState.h ArgList.h AssociatedData.h Atom.h AtomExtra.h AtomMask.h AtomType.h BaseIOtype.h Box.h Constants.h CoordinateInfo.h CpptrajFile.h CpptrajState.h CpptrajStdio.h DataFile.h DataFileList.h DataSet.h DataSetList.h DataSet_Coords.h DataSet_Coords_REF.h Dimension.h DispatchObject.h EnsembleIn.h EnsembleOutList.h Exec.h Exec_CombineCoords.h FileIO.h FileName.h FileTypes.h Frame.h FramePtrArray.h InputTrajCommon.h MaskToken.h Matrix_3x3.h MetaData.h Molecule.h NameType.h Parallel.h ParameterHolders.h ParameterSet.h ParameterTypes.h Range.h ReferenceFrame.h ReplicaDimArray.h ReplicaInfo.h Residue.h SymbolExporting.h TextFormat.h Timer.h Topology.h TrajFrameCounter.h Trajin.h TrajinList.h TrajoutList.h TypeNameHolder.h Vec3.h +Exec_Commands.o : Exec_Commands.cpp Action.h ActionList.h ActionState.h Analysis.h AnalysisList.h AnalysisState.h ArgList.h AssociatedData.h Atom.h AtomExtra.h AtomMask.h AtomType.h BaseIOtype.h Box.h Constants.h CoordinateInfo.h CpptrajFile.h CpptrajState.h CpptrajStdio.h DataFile.h DataFileList.h DataSet.h DataSetList.h DataSet_Coords.h DataSet_Coords_REF.h Dimension.h DispatchObject.h EnsembleIn.h EnsembleOutList.h Exec.h Exec_Commands.h FileIO.h FileName.h FileTypes.h Frame.h FramePtrArray.h InputTrajCommon.h MaskToken.h Matrix_3x3.h MetaData.h Molecule.h NameType.h Parallel.h ParameterHolders.h ParameterSet.h ParameterTypes.h Range.h ReferenceFrame.h ReplicaDimArray.h ReplicaInfo.h Residue.h SymbolExporting.h TextFormat.h Timer.h Topology.h TrajFrameCounter.h Trajin.h TrajinList.h TrajoutList.h TypeNameHolder.h Vec3.h +Exec_CompareTop.o : Exec_CompareTop.cpp Action.h ActionList.h ActionState.h Analysis.h AnalysisList.h AnalysisState.h ArgList.h AssociatedData.h Atom.h AtomExtra.h AtomMask.h AtomType.h BaseIOtype.h Box.h Constants.h CoordinateInfo.h CpptrajFile.h CpptrajState.h CpptrajStdio.h DataFile.h DataFileList.h DataSet.h DataSetList.h DataSet_Coords.h DataSet_Coords_REF.h Dimension.h DispatchObject.h EnsembleIn.h EnsembleOutList.h Exec.h Exec_CompareTop.h FileIO.h FileName.h FileTypes.h Frame.h FramePtrArray.h InputTrajCommon.h MaskToken.h Matrix_3x3.h MetaData.h Molecule.h NameType.h Parallel.h ParameterHolders.h ParameterSet.h ParameterTypes.h Range.h ReferenceFrame.h ReplicaDimArray.h ReplicaInfo.h Residue.h SymbolExporting.h TextFormat.h Timer.h Topology.h TrajFrameCounter.h Trajin.h TrajinList.h TrajoutList.h TypeNameHolder.h Vec3.h +Exec_CrdAction.o : Exec_CrdAction.cpp Action.h ActionList.h ActionState.h Analysis.h AnalysisList.h AnalysisState.h ArgList.h AssociatedData.h Atom.h AtomExtra.h AtomMask.h AtomType.h BaseIOtype.h Box.h Cmd.h CmdList.h Command.h Constants.h CoordinateInfo.h CpptrajFile.h CpptrajState.h CpptrajStdio.h DataFile.h DataFileList.h DataSet.h DataSetList.h DataSet_Coords.h DataSet_Coords_CRD.h DataSet_Coords_REF.h Dimension.h DispatchObject.h EnsembleIn.h EnsembleOutList.h Exec.h Exec_CrdAction.h FileIO.h FileName.h FileTypes.h Frame.h FramePtrArray.h InputTrajCommon.h MaskToken.h Matrix_3x3.h MetaData.h Molecule.h NameType.h Parallel.h ParameterHolders.h ParameterSet.h ParameterTypes.h ProgressBar.h Range.h ReferenceFrame.h ReplicaDimArray.h ReplicaInfo.h Residue.h SymbolExporting.h TextFormat.h Timer.h Topology.h TrajFrameCounter.h Trajin.h TrajinList.h TrajoutList.h TypeNameHolder.h Vec3.h +Exec_CrdOut.o : Exec_CrdOut.cpp Action.h ActionFrameCounter.h ActionList.h ActionState.h Analysis.h AnalysisList.h AnalysisState.h ArgList.h AssociatedData.h Atom.h AtomExtra.h AtomMask.h AtomType.h BaseIOtype.h Box.h Constants.h CoordinateInfo.h CpptrajFile.h CpptrajState.h CpptrajStdio.h DataFile.h DataFileList.h DataSet.h DataSetList.h DataSet_Coords.h DataSet_Coords_REF.h Dimension.h DispatchObject.h EnsembleIn.h EnsembleOutList.h Exec.h Exec_CrdOut.h FileIO.h FileName.h FileTypes.h Frame.h FramePtrArray.h InputTrajCommon.h MaskToken.h Matrix_3x3.h MetaData.h Molecule.h NameType.h OutputTrajCommon.h Parallel.h ParameterHolders.h ParameterSet.h ParameterTypes.h ProgressBar.h Range.h ReferenceFrame.h ReplicaDimArray.h ReplicaInfo.h Residue.h SymbolExporting.h TextFormat.h Timer.h Topology.h TrajFrameCounter.h TrajectoryFile.h Trajin.h TrajinList.h TrajoutList.h Trajout_Single.h TypeNameHolder.h Vec3.h +Exec_CreateSet.o : Exec_CreateSet.cpp Action.h ActionList.h ActionState.h Analysis.h AnalysisList.h AnalysisState.h ArgList.h AssociatedData.h Atom.h AtomExtra.h AtomMask.h AtomType.h BaseIOtype.h Box.h Constants.h CoordinateInfo.h CpptrajFile.h CpptrajState.h CpptrajStdio.h DataFile.h DataFileList.h DataSet.h DataSetList.h DataSet_Coords.h DataSet_Coords_REF.h Dimension.h DispatchObject.h EnsembleIn.h EnsembleOutList.h Exec.h Exec_CreateSet.h FileIO.h FileName.h FileTypes.h Frame.h FramePtrArray.h InputTrajCommon.h MaskToken.h Matrix_3x3.h MetaData.h Molecule.h NameType.h Parallel.h ParameterHolders.h ParameterSet.h ParameterTypes.h RPNcalc.h Range.h ReferenceFrame.h ReplicaDimArray.h ReplicaInfo.h Residue.h SymbolExporting.h TextFormat.h Timer.h Topology.h TrajFrameCounter.h Trajin.h TrajinList.h TrajoutList.h TypeNameHolder.h Vec3.h +Exec_DataFile.o : Exec_DataFile.cpp Action.h ActionList.h ActionState.h Analysis.h AnalysisList.h AnalysisState.h ArgList.h AssociatedData.h Atom.h AtomExtra.h AtomMask.h AtomType.h BaseIOtype.h Box.h Constants.h CoordinateInfo.h CpptrajFile.h CpptrajState.h CpptrajStdio.h DataFile.h DataFileList.h DataSet.h DataSetList.h DataSet_Coords.h DataSet_Coords_REF.h Dimension.h DispatchObject.h EnsembleIn.h EnsembleOutList.h Exec.h Exec_DataFile.h FileIO.h FileName.h FileTypes.h Frame.h FramePtrArray.h InputTrajCommon.h MaskToken.h Matrix_3x3.h MetaData.h Molecule.h NameType.h Parallel.h ParameterHolders.h ParameterSet.h ParameterTypes.h Range.h ReferenceFrame.h ReplicaDimArray.h ReplicaInfo.h Residue.h StringRoutines.h SymbolExporting.h TextFormat.h Timer.h Topology.h TrajFrameCounter.h Trajin.h TrajinList.h TrajoutList.h TypeNameHolder.h Vec3.h +Exec_DataFilter.o : Exec_DataFilter.cpp Action.h ActionList.h ActionState.h Action_FilterByData.h Analysis.h AnalysisList.h AnalysisState.h ArgList.h Array1D.h AssociatedData.h Atom.h AtomExtra.h AtomMask.h AtomType.h BaseIOtype.h Box.h Constants.h CoordinateInfo.h CpptrajFile.h CpptrajState.h CpptrajStdio.h DataFile.h DataFileList.h DataSet.h DataSetList.h DataSet_1D.h DataSet_Coords.h DataSet_Coords_REF.h Dimension.h DispatchObject.h EnsembleIn.h EnsembleOutList.h Exec.h Exec_DataFilter.h FileIO.h FileName.h FileTypes.h Frame.h FramePtrArray.h InputTrajCommon.h MaskToken.h Matrix_3x3.h MetaData.h Molecule.h NameType.h Parallel.h ParameterHolders.h ParameterSet.h ParameterTypes.h ProgressBar.h Range.h ReferenceFrame.h ReplicaDimArray.h ReplicaInfo.h Residue.h SymbolExporting.h TextFormat.h Timer.h Topology.h TrajFrameCounter.h Trajin.h TrajinList.h TrajoutList.h TypeNameHolder.h Vec3.h +Exec_DataSetCmd.o : Exec_DataSetCmd.cpp Action.h ActionList.h ActionState.h Analysis.h AnalysisList.h AnalysisState.h ArgList.h ArrayIterator.h AssociatedData.h Atom.h AtomExtra.h AtomMask.h AtomType.h BaseIOtype.h Box.h ComplexArray.h Constants.h CoordinateInfo.h CpptrajFile.h CpptrajState.h CpptrajStdio.h DataFile.h DataFileList.h DataSet.h DataSetList.h DataSet_1D.h DataSet_2D.h DataSet_Coords.h DataSet_Coords_REF.h DataSet_MatrixDbl.h DataSet_Mesh.h DataSet_Vector.h DataSet_string.h Dimension.h DispatchObject.h EnsembleIn.h EnsembleOutList.h Exec.h Exec_DataSetCmd.h FileIO.h FileName.h FileTypes.h Frame.h FramePtrArray.h InputTrajCommon.h MaskToken.h Matrix.h Matrix_3x3.h MetaData.h Molecule.h NameType.h Parallel.h ParameterHolders.h ParameterSet.h ParameterTypes.h Range.h ReferenceFrame.h ReplicaDimArray.h ReplicaInfo.h Residue.h Spline.h StringRoutines.h SymbolExporting.h TextFormat.h Timer.h Topology.h TrajFrameCounter.h Trajin.h TrajinList.h TrajoutList.h TypeNameHolder.h Vec3.h +Exec_GenerateAmberRst.o : Exec_GenerateAmberRst.cpp Action.h ActionList.h ActionState.h Analysis.h AnalysisList.h AnalysisState.h ArgList.h AssociatedData.h Atom.h AtomExtra.h AtomMask.h AtomType.h BaseIOtype.h Box.h Constants.h CoordinateInfo.h CpptrajFile.h CpptrajState.h CpptrajStdio.h DataFile.h DataFileList.h DataSet.h DataSetList.h DataSet_Coords.h DataSet_Coords_REF.h Dimension.h DispatchObject.h DistRoutines.h EnsembleIn.h EnsembleOutList.h Exec.h Exec_GenerateAmberRst.h FileIO.h FileName.h FileTypes.h Frame.h FramePtrArray.h InputTrajCommon.h MaskToken.h Matrix_3x3.h MetaData.h Molecule.h NameType.h Parallel.h ParameterHolders.h ParameterSet.h ParameterTypes.h Range.h ReferenceFrame.h ReplicaDimArray.h ReplicaInfo.h Residue.h SymbolExporting.h TextFormat.h Timer.h Topology.h TorsionRoutines.h TrajFrameCounter.h Trajin.h TrajinList.h TrajoutList.h TypeNameHolder.h Vec3.h +Exec_Help.o : Exec_Help.cpp Action.h ActionList.h ActionState.h Analysis.h AnalysisList.h AnalysisState.h ArgList.h AssociatedData.h Atom.h AtomExtra.h AtomMask.h AtomType.h BaseIOtype.h BondSearch.h Box.h Cmd.h CmdList.h Command.h Constants.h CoordinateInfo.h CpptrajFile.h CpptrajState.h CpptrajStdio.h DataFile.h DataFileList.h DataSet.h DataSetList.h DataSet_Coords.h DataSet_Coords_REF.h Dimension.h DispatchObject.h EnsembleIn.h EnsembleOutList.h Exec.h Exec_Help.h FileIO.h FileName.h FileTypes.h Frame.h FramePtrArray.h InputTrajCommon.h MaskToken.h Matrix_3x3.h MetaData.h Molecule.h NameType.h Parallel.h ParameterHolders.h ParameterSet.h ParameterTypes.h ParmFile.h ParmIO.h Range.h ReferenceFrame.h ReplicaDimArray.h ReplicaInfo.h Residue.h SymbolExporting.h TextFormat.h Timer.h Topology.h TrajFrameCounter.h TrajectoryFile.h Trajin.h TrajinList.h TrajoutList.h TypeNameHolder.h Vec3.h +Exec_LoadCrd.o : Exec_LoadCrd.cpp Action.h ActionList.h ActionState.h Analysis.h AnalysisList.h AnalysisState.h ArgList.h AssociatedData.h Atom.h AtomExtra.h AtomMask.h AtomType.h BaseIOtype.h Box.h Constants.h CoordinateInfo.h CpptrajFile.h CpptrajState.h CpptrajStdio.h DataFile.h DataFileList.h DataSet.h DataSetList.h DataSet_Coords.h DataSet_Coords_REF.h Dimension.h DispatchObject.h EnsembleIn.h EnsembleOutList.h Exec.h Exec_LoadCrd.h FileIO.h FileName.h FileTypes.h Frame.h FramePtrArray.h InputTrajCommon.h MaskToken.h Matrix_3x3.h MetaData.h Molecule.h NameType.h Parallel.h ParameterHolders.h ParameterSet.h ParameterTypes.h Range.h ReferenceFrame.h ReplicaDimArray.h ReplicaInfo.h Residue.h SymbolExporting.h TextFormat.h Timer.h Topology.h TrajFrameCounter.h Trajin.h TrajinList.h Trajin_Single.h TrajoutList.h TypeNameHolder.h Vec3.h +Exec_LoadTraj.o : Exec_LoadTraj.cpp Action.h ActionList.h ActionState.h Analysis.h AnalysisList.h AnalysisState.h ArgList.h AssociatedData.h Atom.h AtomExtra.h AtomMask.h AtomType.h BaseIOtype.h Box.h Constants.h CoordinateInfo.h CpptrajFile.h CpptrajState.h CpptrajStdio.h DataFile.h DataFileList.h DataSet.h DataSetList.h DataSet_Coords.h DataSet_Coords_REF.h DataSet_Coords_TRJ.h Dimension.h DispatchObject.h EnsembleIn.h EnsembleOutList.h Exec.h Exec_LoadTraj.h FileIO.h FileName.h FileTypes.h Frame.h FramePtrArray.h InputTrajCommon.h MaskToken.h Matrix_3x3.h MetaData.h Molecule.h NameType.h Parallel.h ParameterHolders.h ParameterSet.h ParameterTypes.h Range.h ReferenceFrame.h ReplicaDimArray.h ReplicaInfo.h Residue.h SymbolExporting.h TextFormat.h Timer.h Topology.h TrajFrameCounter.h TrajFrameIndex.h Trajin.h TrajinList.h TrajoutList.h TypeNameHolder.h Vec3.h +Exec_ParallelAnalysis.o : Exec_ParallelAnalysis.cpp Action.h ActionList.h ActionState.h Analysis.h AnalysisList.h AnalysisState.h ArgList.h AssociatedData.h Atom.h AtomExtra.h AtomMask.h AtomType.h BaseIOtype.h Box.h Constants.h CoordinateInfo.h CpptrajFile.h CpptrajState.h CpptrajStdio.h DataFile.h DataFileList.h DataSet.h DataSetList.h DataSet_Coords.h DataSet_Coords_REF.h Dimension.h DispatchObject.h EnsembleIn.h EnsembleOutList.h Exec.h Exec_ParallelAnalysis.h FileIO.h FileName.h FileTypes.h Frame.h FramePtrArray.h InputTrajCommon.h MaskToken.h Matrix_3x3.h MetaData.h Molecule.h NameType.h Parallel.h ParameterHolders.h ParameterSet.h ParameterTypes.h Range.h ReferenceFrame.h ReplicaDimArray.h ReplicaInfo.h Residue.h SymbolExporting.h TextFormat.h Timer.h Topology.h TrajFrameCounter.h Trajin.h TrajinList.h TrajoutList.h TypeNameHolder.h Vec3.h +Exec_ParmBox.o : Exec_ParmBox.cpp Action.h ActionList.h ActionState.h Analysis.h AnalysisList.h AnalysisState.h ArgList.h AssociatedData.h Atom.h AtomExtra.h AtomMask.h AtomType.h BaseIOtype.h Box.h Constants.h CoordinateInfo.h CpptrajFile.h CpptrajState.h CpptrajStdio.h DataFile.h DataFileList.h DataSet.h DataSetList.h DataSet_Coords.h DataSet_Coords_REF.h Dimension.h DispatchObject.h EnsembleIn.h EnsembleOutList.h Exec.h Exec_ParmBox.h FileIO.h FileName.h FileTypes.h Frame.h FramePtrArray.h InputTrajCommon.h MaskToken.h Matrix_3x3.h MetaData.h Molecule.h NameType.h Parallel.h ParameterHolders.h ParameterSet.h ParameterTypes.h Range.h ReferenceFrame.h ReplicaDimArray.h ReplicaInfo.h Residue.h SymbolExporting.h TextFormat.h Timer.h Topology.h TrajFrameCounter.h Trajin.h TrajinList.h TrajoutList.h TypeNameHolder.h Vec3.h +Exec_ParmSolvent.o : Exec_ParmSolvent.cpp Action.h ActionList.h ActionState.h Analysis.h AnalysisList.h AnalysisState.h ArgList.h AssociatedData.h Atom.h AtomExtra.h AtomMask.h AtomType.h BaseIOtype.h Box.h Constants.h CoordinateInfo.h CpptrajFile.h CpptrajState.h CpptrajStdio.h DataFile.h DataFileList.h DataSet.h DataSetList.h DataSet_Coords.h DataSet_Coords_REF.h Dimension.h DispatchObject.h EnsembleIn.h EnsembleOutList.h Exec.h Exec_ParmSolvent.h FileIO.h FileName.h FileTypes.h Frame.h FramePtrArray.h InputTrajCommon.h MaskToken.h Matrix_3x3.h MetaData.h Molecule.h NameType.h Parallel.h ParameterHolders.h ParameterSet.h ParameterTypes.h Range.h ReferenceFrame.h ReplicaDimArray.h ReplicaInfo.h Residue.h SymbolExporting.h TextFormat.h Timer.h Topology.h TrajFrameCounter.h Trajin.h TrajinList.h TrajoutList.h TypeNameHolder.h Vec3.h +Exec_ParmStrip.o : Exec_ParmStrip.cpp Action.h ActionList.h ActionState.h Analysis.h AnalysisList.h AnalysisState.h ArgList.h AssociatedData.h Atom.h AtomExtra.h AtomMask.h AtomType.h BaseIOtype.h Box.h Constants.h CoordinateInfo.h CpptrajFile.h CpptrajState.h CpptrajStdio.h DataFile.h DataFileList.h DataSet.h DataSetList.h DataSet_Coords.h DataSet_Coords_REF.h Dimension.h DispatchObject.h EnsembleIn.h EnsembleOutList.h Exec.h Exec_ParmStrip.h FileIO.h FileName.h FileTypes.h Frame.h FramePtrArray.h InputTrajCommon.h MaskToken.h Matrix_3x3.h MetaData.h Molecule.h NameType.h Parallel.h ParameterHolders.h ParameterSet.h ParameterTypes.h Range.h ReferenceFrame.h ReplicaDimArray.h ReplicaInfo.h Residue.h SymbolExporting.h TextFormat.h Timer.h Topology.h TrajFrameCounter.h Trajin.h TrajinList.h TrajoutList.h TypeNameHolder.h Vec3.h +Exec_ParmWrite.o : Exec_ParmWrite.cpp Action.h ActionList.h ActionState.h Analysis.h AnalysisList.h AnalysisState.h ArgList.h AssociatedData.h Atom.h AtomExtra.h AtomMask.h AtomType.h BaseIOtype.h BondSearch.h Box.h Constants.h CoordinateInfo.h CpptrajFile.h CpptrajState.h CpptrajStdio.h DataFile.h DataFileList.h DataSet.h DataSetList.h DataSet_Coords.h DataSet_Coords_REF.h Dimension.h DispatchObject.h EnsembleIn.h EnsembleOutList.h Exec.h Exec_ParmWrite.h FileIO.h FileName.h FileTypes.h Frame.h FramePtrArray.h InputTrajCommon.h MaskToken.h Matrix_3x3.h MetaData.h Molecule.h NameType.h Parallel.h ParameterHolders.h ParameterSet.h ParameterTypes.h ParmFile.h ParmIO.h Range.h ReferenceFrame.h ReplicaDimArray.h ReplicaInfo.h Residue.h SymbolExporting.h TextFormat.h Timer.h Topology.h TrajFrameCounter.h Trajin.h TrajinList.h TrajoutList.h TypeNameHolder.h Vec3.h +Exec_PermuteDihedrals.o : Exec_PermuteDihedrals.cpp Action.h ActionFrameCounter.h ActionList.h ActionState.h Analysis.h AnalysisList.h AnalysisState.h ArgList.h AssociatedData.h Atom.h AtomExtra.h AtomMask.h AtomType.h BaseIOtype.h Box.h CharMask.h Constants.h CoordinateInfo.h CpptrajFile.h CpptrajState.h CpptrajStdio.h DataFile.h DataFileList.h DataSet.h DataSetList.h DataSet_Coords.h DataSet_Coords_CRD.h DataSet_Coords_REF.h DihedralSearch.h Dimension.h DispatchObject.h DistRoutines.h EnsembleIn.h EnsembleOutList.h Exec.h Exec_PermuteDihedrals.h FileIO.h FileName.h FileTypes.h Frame.h FramePtrArray.h ImagedAction.h InputTrajCommon.h MaskToken.h Matrix_3x3.h MetaData.h Molecule.h NameType.h OutputTrajCommon.h PairList.h Parallel.h ParameterHolders.h ParameterSet.h ParameterTypes.h Random.h Range.h ReferenceFrame.h ReplicaDimArray.h ReplicaInfo.h Residue.h StructureCheck.h SymbolExporting.h TextFormat.h Timer.h Topology.h TorsionRoutines.h TrajFrameCounter.h TrajectoryFile.h Trajin.h TrajinList.h TrajoutList.h Trajout_Single.h TypeNameHolder.h Vec3.h +Exec_Precision.o : Exec_Precision.cpp Action.h ActionList.h ActionState.h Analysis.h AnalysisList.h AnalysisState.h ArgList.h AssociatedData.h Atom.h AtomExtra.h AtomMask.h AtomType.h BaseIOtype.h Box.h Constants.h CoordinateInfo.h CpptrajFile.h CpptrajState.h CpptrajStdio.h DataFile.h DataFileList.h DataSet.h DataSetList.h DataSet_Coords.h DataSet_Coords_REF.h Dimension.h DispatchObject.h EnsembleIn.h EnsembleOutList.h Exec.h Exec_Precision.h FileIO.h FileName.h FileTypes.h Frame.h FramePtrArray.h InputTrajCommon.h MaskToken.h Matrix_3x3.h MetaData.h Molecule.h NameType.h Parallel.h ParameterHolders.h ParameterSet.h ParameterTypes.h Range.h ReferenceFrame.h ReplicaDimArray.h ReplicaInfo.h Residue.h SymbolExporting.h TextFormat.h Timer.h Topology.h TrajFrameCounter.h Trajin.h TrajinList.h TrajoutList.h TypeNameHolder.h Vec3.h +Exec_PrintData.o : Exec_PrintData.cpp Action.h ActionList.h ActionState.h Analysis.h AnalysisList.h AnalysisState.h ArgList.h AssociatedData.h Atom.h AtomExtra.h AtomMask.h AtomType.h BaseIOtype.h Box.h Constants.h CoordinateInfo.h CpptrajFile.h CpptrajState.h CpptrajStdio.h DataFile.h DataFileList.h DataSet.h DataSetList.h DataSet_Coords.h DataSet_Coords_REF.h Dimension.h DispatchObject.h EnsembleIn.h EnsembleOutList.h Exec.h Exec_PrintData.h FileIO.h FileName.h FileTypes.h Frame.h FramePtrArray.h InputTrajCommon.h MaskToken.h Matrix_3x3.h MetaData.h Molecule.h NameType.h Parallel.h ParameterHolders.h ParameterSet.h ParameterTypes.h Range.h ReferenceFrame.h ReplicaDimArray.h ReplicaInfo.h Residue.h SymbolExporting.h TextFormat.h Timer.h Topology.h TrajFrameCounter.h Trajin.h TrajinList.h TrajoutList.h TypeNameHolder.h Vec3.h +Exec_ReadData.o : Exec_ReadData.cpp Action.h ActionList.h ActionState.h Analysis.h AnalysisList.h AnalysisState.h ArgList.h AssociatedData.h Atom.h AtomExtra.h AtomMask.h AtomType.h BaseIOtype.h Box.h Constants.h CoordinateInfo.h CpptrajFile.h CpptrajState.h CpptrajStdio.h DataFile.h DataFileList.h DataSet.h DataSetList.h DataSet_Coords.h DataSet_Coords_REF.h Dimension.h DispatchObject.h EnsembleIn.h EnsembleOutList.h Exec.h Exec_ReadData.h FileIO.h FileName.h FileTypes.h Frame.h FramePtrArray.h InputTrajCommon.h MaskToken.h Matrix_3x3.h MetaData.h Molecule.h NameType.h Parallel.h ParameterHolders.h ParameterSet.h ParameterTypes.h Range.h ReferenceFrame.h ReplicaDimArray.h ReplicaInfo.h Residue.h SymbolExporting.h TextFormat.h Timer.h Topology.h TrajFrameCounter.h Trajin.h TrajinList.h TrajoutList.h TypeNameHolder.h Vec3.h +Exec_ReadEnsembleData.o : Exec_ReadEnsembleData.cpp Action.h ActionList.h ActionState.h Analysis.h AnalysisList.h AnalysisState.h ArgList.h AssociatedData.h Atom.h AtomExtra.h AtomMask.h AtomType.h BaseIOtype.h Box.h Constants.h CoordinateInfo.h CpptrajFile.h CpptrajState.h CpptrajStdio.h DataFile.h DataFileList.h DataSet.h DataSetList.h DataSet_Coords.h DataSet_Coords_REF.h Dimension.h DispatchObject.h EnsembleIn.h EnsembleOutList.h Exec.h Exec_ReadEnsembleData.h FileIO.h FileName.h FileTypes.h Frame.h FramePtrArray.h InputTrajCommon.h MaskToken.h Matrix_3x3.h MetaData.h Molecule.h NameType.h Parallel.h ParameterHolders.h ParameterSet.h ParameterTypes.h Range.h ReferenceFrame.h ReplicaDimArray.h ReplicaInfo.h Residue.h SymbolExporting.h TextFormat.h Timer.h Topology.h TrajFrameCounter.h Trajin.h TrajinList.h TrajoutList.h TypeNameHolder.h Vec3.h +Exec_ReadInput.o : Exec_ReadInput.cpp Action.h ActionList.h ActionState.h Analysis.h AnalysisList.h AnalysisState.h ArgList.h AssociatedData.h Atom.h AtomExtra.h AtomMask.h AtomType.h BaseIOtype.h Box.h Cmd.h CmdList.h Command.h Constants.h CoordinateInfo.h CpptrajFile.h CpptrajState.h CpptrajStdio.h DataFile.h DataFileList.h DataSet.h DataSetList.h DataSet_Coords.h DataSet_Coords_REF.h Dimension.h DispatchObject.h EnsembleIn.h EnsembleOutList.h Exec.h Exec_ReadInput.h FileIO.h FileName.h FileTypes.h Frame.h FramePtrArray.h InputTrajCommon.h MaskToken.h Matrix_3x3.h MetaData.h Molecule.h NameType.h Parallel.h ParameterHolders.h ParameterSet.h ParameterTypes.h Range.h ReferenceFrame.h ReplicaDimArray.h ReplicaInfo.h Residue.h SymbolExporting.h TextFormat.h Timer.h Topology.h TrajFrameCounter.h Trajin.h TrajinList.h TrajoutList.h TypeNameHolder.h Vec3.h +Exec_RotateDihedral.o : Exec_RotateDihedral.cpp Action.h ActionList.h ActionState.h Analysis.h AnalysisList.h AnalysisState.h ArgList.h AssociatedData.h Atom.h AtomExtra.h AtomMask.h AtomType.h BaseIOtype.h Box.h Constants.h CoordinateInfo.h CpptrajFile.h CpptrajState.h CpptrajStdio.h DataFile.h DataFileList.h DataSet.h DataSetList.h DataSet_Coords.h DataSet_Coords_REF.h DihedralSearch.h Dimension.h DispatchObject.h EnsembleIn.h EnsembleOutList.h Exec.h Exec_RotateDihedral.h FileIO.h FileName.h FileTypes.h Frame.h FramePtrArray.h InputTrajCommon.h MaskToken.h Matrix_3x3.h MetaData.h Molecule.h NameType.h Parallel.h ParameterHolders.h ParameterSet.h ParameterTypes.h Range.h ReferenceFrame.h ReplicaDimArray.h ReplicaInfo.h Residue.h SymbolExporting.h TextFormat.h Timer.h Topology.h TorsionRoutines.h TrajFrameCounter.h Trajin.h TrajinList.h TrajoutList.h TypeNameHolder.h Vec3.h +Exec_RunAnalysis.o : Exec_RunAnalysis.cpp Action.h ActionList.h ActionState.h Analysis.h AnalysisList.h AnalysisState.h ArgList.h AssociatedData.h Atom.h AtomExtra.h AtomMask.h AtomType.h BaseIOtype.h Box.h Cmd.h CmdList.h Command.h Constants.h CoordinateInfo.h CpptrajFile.h CpptrajState.h CpptrajStdio.h DataFile.h DataFileList.h DataSet.h DataSetList.h DataSet_Coords.h DataSet_Coords_REF.h Dimension.h DispatchObject.h EnsembleIn.h EnsembleOutList.h Exec.h Exec_RunAnalysis.h FileIO.h FileName.h FileTypes.h Frame.h FramePtrArray.h InputTrajCommon.h MaskToken.h Matrix_3x3.h MetaData.h Molecule.h NameType.h Parallel.h ParameterHolders.h ParameterSet.h ParameterTypes.h Range.h ReferenceFrame.h ReplicaDimArray.h ReplicaInfo.h Residue.h SymbolExporting.h TextFormat.h Timer.h Topology.h TrajFrameCounter.h Trajin.h TrajinList.h TrajoutList.h TypeNameHolder.h Vec3.h +Exec_ScaleDihedralK.o : Exec_ScaleDihedralK.cpp Action.h ActionList.h ActionState.h Analysis.h AnalysisList.h AnalysisState.h ArgList.h AssociatedData.h Atom.h AtomExtra.h AtomMask.h AtomType.h BaseIOtype.h Box.h Constants.h CoordinateInfo.h CpptrajFile.h CpptrajState.h CpptrajStdio.h DataFile.h DataFileList.h DataSet.h DataSetList.h DataSet_Coords.h DataSet_Coords_REF.h Dimension.h DispatchObject.h EnsembleIn.h EnsembleOutList.h Exec.h Exec_ScaleDihedralK.h FileIO.h FileName.h FileTypes.h Frame.h FramePtrArray.h InputTrajCommon.h MaskToken.h Matrix_3x3.h MetaData.h Molecule.h NameType.h Parallel.h ParameterHolders.h ParameterSet.h ParameterTypes.h Range.h ReferenceFrame.h ReplicaDimArray.h ReplicaInfo.h Residue.h SymbolExporting.h TextFormat.h Timer.h Topology.h TrajFrameCounter.h Trajin.h TrajinList.h TrajoutList.h TypeNameHolder.h Vec3.h +Exec_SequenceAlign.o : Exec_SequenceAlign.cpp Action.h ActionFrameCounter.h ActionList.h ActionState.h Analysis.h AnalysisList.h AnalysisState.h ArgList.h AssociatedData.h Atom.h AtomExtra.h AtomMask.h AtomType.h BaseIOtype.h Box.h BufferedLine.h Constants.h CoordinateInfo.h CpptrajFile.h CpptrajState.h CpptrajStdio.h DataFile.h DataFileList.h DataSet.h DataSetList.h DataSet_Coords.h DataSet_Coords_REF.h Dimension.h DispatchObject.h EnsembleIn.h EnsembleOutList.h Exec.h Exec_SequenceAlign.h FileIO.h FileName.h FileTypes.h Frame.h FramePtrArray.h InputTrajCommon.h MaskToken.h Matrix_3x3.h MetaData.h Molecule.h NameType.h OutputTrajCommon.h Parallel.h ParameterHolders.h ParameterSet.h ParameterTypes.h Range.h ReferenceFrame.h ReplicaDimArray.h ReplicaInfo.h Residue.h StringRoutines.h SymbolExporting.h TextFormat.h Timer.h Topology.h TrajFrameCounter.h TrajectoryFile.h Trajin.h TrajinList.h TrajoutList.h Trajout_Single.h TypeNameHolder.h Vec3.h +Exec_Set.o : Exec_Set.cpp Action.h ActionList.h ActionState.h Analysis.h AnalysisList.h AnalysisState.h ArgList.h AssociatedData.h Atom.h AtomExtra.h AtomMask.h AtomType.h BaseIOtype.h Box.h Constants.h CoordinateInfo.h CpptrajFile.h CpptrajState.h CpptrajStdio.h DataFile.h DataFileList.h DataSet.h DataSetList.h DataSet_Coords.h DataSet_Coords_REF.h DataSet_StringVar.h Dimension.h DispatchObject.h EnsembleIn.h EnsembleOutList.h Exec.h Exec_Set.h FileIO.h FileName.h FileTypes.h Frame.h FramePtrArray.h InputTrajCommon.h MaskToken.h Matrix_3x3.h MetaData.h Molecule.h NameType.h Parallel.h ParameterHolders.h ParameterSet.h ParameterTypes.h Range.h ReferenceFrame.h ReplicaDimArray.h ReplicaInfo.h Residue.h StringRoutines.h SymbolExporting.h TextFormat.h Timer.h Topology.h TrajFrameCounter.h Trajin.h TrajinList.h TrajoutList.h TypeNameHolder.h Vec3.h +Exec_Show.o : Exec_Show.cpp Action.h ActionList.h ActionState.h Analysis.h AnalysisList.h AnalysisState.h ArgList.h AssociatedData.h Atom.h AtomExtra.h AtomMask.h AtomType.h BaseIOtype.h Box.h Constants.h CoordinateInfo.h CpptrajFile.h CpptrajState.h CpptrajStdio.h DataFile.h DataFileList.h DataSet.h DataSetList.h DataSet_Coords.h DataSet_Coords_REF.h DataSet_StringVar.h Dimension.h DispatchObject.h EnsembleIn.h EnsembleOutList.h Exec.h Exec_Show.h FileIO.h FileName.h FileTypes.h Frame.h FramePtrArray.h InputTrajCommon.h MaskToken.h Matrix_3x3.h MetaData.h Molecule.h NameType.h Parallel.h ParameterHolders.h ParameterSet.h ParameterTypes.h Range.h ReferenceFrame.h ReplicaDimArray.h ReplicaInfo.h Residue.h SymbolExporting.h TextFormat.h Timer.h Topology.h TrajFrameCounter.h Trajin.h TrajinList.h TrajoutList.h TypeNameHolder.h Vec3.h +Exec_SortEnsembleData.o : Exec_SortEnsembleData.cpp Action.h ActionList.h ActionState.h Analysis.h AnalysisList.h AnalysisState.h ArgList.h AssociatedData.h Atom.h AtomExtra.h AtomMask.h AtomType.h BaseIOtype.h Box.h Constants.h CoordinateInfo.h Cph.h CpptrajFile.h CpptrajState.h CpptrajStdio.h DataFile.h DataFileList.h DataSet.h DataSetList.h DataSet_1D.h DataSet_Coords.h DataSet_Coords_REF.h DataSet_PHREMD.h DataSet_PHREMD_Explicit.h DataSet_PHREMD_Implicit.h DataSet_pH.h Dimension.h DispatchObject.h EnsembleIn.h EnsembleOutList.h Exec.h Exec_SortEnsembleData.h FileIO.h FileName.h FileTypes.h Frame.h FramePtrArray.h InputTrajCommon.h MaskToken.h Matrix_3x3.h MetaData.h Molecule.h NameType.h Parallel.h ParameterHolders.h ParameterSet.h ParameterTypes.h Range.h ReferenceFrame.h ReplicaDimArray.h ReplicaInfo.h Residue.h StringRoutines.h SymbolExporting.h TextFormat.h Timer.h Topology.h TrajFrameCounter.h Trajin.h TrajinList.h TrajoutList.h TypeNameHolder.h Vec3.h +Exec_SplitCoords.o : Exec_SplitCoords.cpp Action.h ActionList.h ActionState.h Analysis.h AnalysisList.h AnalysisState.h ArgList.h AssociatedData.h Atom.h AtomExtra.h AtomMask.h AtomType.h BaseIOtype.h Box.h Constants.h CoordinateInfo.h CpptrajFile.h CpptrajState.h CpptrajStdio.h DataFile.h DataFileList.h DataSet.h DataSetList.h DataSet_Coords.h DataSet_Coords_CRD.h DataSet_Coords_REF.h Dimension.h DispatchObject.h EnsembleIn.h EnsembleOutList.h Exec.h Exec_SplitCoords.h FileIO.h FileName.h FileTypes.h Frame.h FramePtrArray.h InputTrajCommon.h MaskToken.h Matrix_3x3.h MetaData.h Molecule.h NameType.h Parallel.h ParameterHolders.h ParameterSet.h ParameterTypes.h ProgressBar.h Range.h ReferenceFrame.h ReplicaDimArray.h ReplicaInfo.h Residue.h SymbolExporting.h TextFormat.h Timer.h Topology.h TrajFrameCounter.h Trajin.h TrajinList.h TrajoutList.h TypeNameHolder.h Vec3.h +Exec_System.o : Exec_System.cpp Action.h ActionList.h ActionState.h Analysis.h AnalysisList.h AnalysisState.h ArgList.h AssociatedData.h Atom.h AtomExtra.h AtomMask.h AtomType.h BaseIOtype.h Box.h Constants.h CoordinateInfo.h CpptrajFile.h CpptrajState.h CpptrajStdio.h DataFile.h DataFileList.h DataSet.h DataSetList.h DataSet_Coords.h DataSet_Coords_REF.h Dimension.h DispatchObject.h EnsembleIn.h EnsembleOutList.h Exec.h Exec_System.h FileIO.h FileName.h FileTypes.h Frame.h FramePtrArray.h InputTrajCommon.h MaskToken.h Matrix_3x3.h MetaData.h Molecule.h NameType.h Parallel.h ParameterHolders.h ParameterSet.h ParameterTypes.h Range.h ReferenceFrame.h ReplicaDimArray.h ReplicaInfo.h Residue.h SymbolExporting.h TextFormat.h Timer.h Topology.h TrajFrameCounter.h Trajin.h TrajinList.h TrajoutList.h TypeNameHolder.h Vec3.h +Exec_Top.o : Exec_Top.cpp Action.h ActionList.h ActionState.h Analysis.h AnalysisList.h AnalysisState.h ArgList.h AssociatedData.h Atom.h AtomExtra.h AtomMask.h AtomType.h BaseIOtype.h BondSearch.h Box.h Constants.h CoordinateInfo.h CpptrajFile.h CpptrajState.h CpptrajStdio.h DataFile.h DataFileList.h DataSet.h DataSetList.h DataSet_Coords.h DataSet_Coords_REF.h Dimension.h DispatchObject.h EnsembleIn.h EnsembleOutList.h Exec.h Exec_Top.h FileIO.h FileName.h FileTypes.h Frame.h FramePtrArray.h InputTrajCommon.h MaskToken.h Matrix_3x3.h MetaData.h Molecule.h NameType.h Parallel.h ParameterHolders.h ParameterSet.h ParameterTypes.h ParmFile.h ParmIO.h Range.h ReferenceFrame.h ReplicaDimArray.h ReplicaInfo.h Residue.h SymbolExporting.h TextFormat.h Timer.h TopInfo.h Topology.h TrajFrameCounter.h Trajin.h TrajinList.h TrajoutList.h TypeNameHolder.h Vec3.h +Exec_Traj.o : Exec_Traj.cpp Action.h ActionFrameCounter.h ActionList.h ActionState.h Analysis.h AnalysisList.h AnalysisState.h ArgList.h AssociatedData.h Atom.h AtomExtra.h AtomMask.h AtomType.h BaseIOtype.h Box.h Constants.h CoordinateInfo.h CpptrajFile.h CpptrajState.h CpptrajStdio.h DataFile.h DataFileList.h DataSet.h DataSetList.h DataSet_Coords.h DataSet_Coords_REF.h Dimension.h DispatchObject.h EnsembleIn.h EnsembleOutList.h Exec.h Exec_Traj.h FileIO.h FileName.h FileTypes.h Frame.h FramePtrArray.h InputTrajCommon.h MaskToken.h Matrix_3x3.h MetaData.h Molecule.h NameType.h Parallel.h ParameterHolders.h ParameterSet.h ParameterTypes.h Range.h ReferenceFrame.h ReplicaDimArray.h ReplicaInfo.h Residue.h SymbolExporting.h TextFormat.h Timer.h Topology.h TrajFrameCounter.h Trajin.h TrajinList.h TrajoutList.h TypeNameHolder.h Vec3.h +Exec_UpdateParameters.o : Exec_UpdateParameters.cpp Action.h ActionList.h ActionState.h Analysis.h AnalysisList.h AnalysisState.h ArgList.h AssociatedData.h Atom.h AtomExtra.h AtomMask.h AtomType.h BaseIOtype.h Box.h Constants.h CoordinateInfo.h CpptrajFile.h CpptrajState.h CpptrajStdio.h DataFile.h DataFileList.h DataSet.h DataSetList.h DataSet_Coords.h DataSet_Coords_REF.h DataSet_Parameters.h DataSet_Topology.h Dimension.h DispatchObject.h EnsembleIn.h EnsembleOutList.h Exec.h Exec_UpdateParameters.h FileIO.h FileName.h FileTypes.h Frame.h FramePtrArray.h InputTrajCommon.h MaskToken.h Matrix_3x3.h MetaData.h Molecule.h NameType.h Parallel.h ParameterHolders.h ParameterSet.h ParameterTypes.h Range.h ReferenceFrame.h ReplicaDimArray.h ReplicaInfo.h Residue.h SymbolExporting.h TextFormat.h Timer.h Topology.h TrajFrameCounter.h Trajin.h TrajinList.h TrajoutList.h TypeNameHolder.h Vec3.h +Exec_ViewRst.o : Exec_ViewRst.cpp Action.h ActionList.h ActionState.h Analysis.h AnalysisList.h AnalysisState.h ArgList.h AssociatedData.h Atom.h AtomExtra.h AtomMask.h AtomType.h BaseIOtype.h Box.h BufferedLine.h Constants.h CoordinateInfo.h CpptrajFile.h CpptrajState.h CpptrajStdio.h DataFile.h DataFileList.h DataSet.h DataSetList.h DataSet_Coords.h DataSet_Coords_REF.h Dimension.h DispatchObject.h EnsembleIn.h EnsembleOutList.h Exec.h Exec_ViewRst.h FileIO.h FileName.h FileTypes.h Frame.h FramePtrArray.h InputTrajCommon.h MaskToken.h Matrix_3x3.h MetaData.h Molecule.h NameType.h Parallel.h ParameterHolders.h ParameterSet.h ParameterTypes.h Range.h ReferenceFrame.h ReplicaDimArray.h ReplicaInfo.h Residue.h SymbolExporting.h TextFormat.h Timer.h Topology.h TrajFrameCounter.h Trajin.h TrajinList.h TrajoutList.h TypeNameHolder.h Vec3.h ViewRst.h FileIO_Bzip2.o : FileIO_Bzip2.cpp CpptrajStdio.h FileIO.h FileIO_Bzip2.h FileIO_Gzip.o : FileIO_Gzip.cpp CpptrajStdio.h FileIO.h FileIO_Gzip.h FileIO_Mpi.o : FileIO_Mpi.cpp FileIO.h FileIO_Mpi.h Parallel.h @@ -292,10 +292,10 @@ FileName.o : FileName.cpp CpptrajStdio.h FileName.h StringRoutines.h FileTypes.o : FileTypes.cpp ArgList.h BaseIOtype.h CpptrajStdio.h FileTypes.h File_TempName.o : File_TempName.cpp CpptrajStdio.h FileName.h File_TempName.h StringRoutines.h ForLoop.o : ForLoop.cpp AssociatedData.h Atom.h AtomExtra.h AtomMask.h AtomType.h Box.h Constants.h CoordinateInfo.h CpptrajFile.h CpptrajStdio.h DataSet.h DataSetList.h DataSet_Coords.h DataSet_Coords_REF.h Dimension.h FileIO.h FileName.h ForLoop.h Frame.h MaskToken.h Matrix_3x3.h MetaData.h Molecule.h NameType.h Parallel.h ParameterHolders.h ParameterSet.h ParameterTypes.h Range.h ReferenceFrame.h ReplicaDimArray.h Residue.h SymbolExporting.h TextFormat.h Timer.h Topology.h TypeNameHolder.h Vec3.h -ForLoop_dataSetBlocks.o : ForLoop_dataSetBlocks.cpp Action.h ActionList.h ActionState.h Analysis.h AnalysisList.h AnalysisState.h ArgList.h AssociatedData.h Atom.h AtomExtra.h AtomMask.h AtomType.h BaseIOtype.h Box.h Constants.h CoordinateInfo.h CpptrajFile.h CpptrajState.h CpptrajStdio.h DataFile.h DataFileList.h DataIO.h DataSet.h DataSetList.h DataSet_Coords.h DataSet_Coords_REF.h Dimension.h DispatchObject.h EnsembleIn.h EnsembleOutList.h FileIO.h FileName.h FileTypes.h ForLoop.h ForLoop_dataSetBlocks.h Frame.h FramePtrArray.h InputTrajCommon.h MaskToken.h Matrix_3x3.h MetaData.h Molecule.h NameType.h Parallel.h ParameterHolders.h ParameterSet.h ParameterTypes.h Range.h ReferenceFrame.h ReplicaDimArray.h ReplicaInfo.h Residue.h StringRoutines.h SymbolExporting.h TextFormat.h Timer.h Topology.h TrajFrameCounter.h Trajin.h TrajinList.h TrajoutList.h TypeNameHolder.h Vec3.h -ForLoop_integer.o : ForLoop_integer.cpp Action.h ActionList.h ActionState.h Analysis.h AnalysisList.h AnalysisState.h ArgList.h AssociatedData.h Atom.h AtomExtra.h AtomMask.h AtomType.h BaseIOtype.h Box.h Constants.h CoordinateInfo.h CpptrajFile.h CpptrajState.h CpptrajStdio.h DataFile.h DataFileList.h DataIO.h DataSet.h DataSetList.h DataSet_Coords.h DataSet_Coords_REF.h Dimension.h DispatchObject.h EnsembleIn.h EnsembleOutList.h FileIO.h FileName.h FileTypes.h ForLoop.h ForLoop_integer.h Frame.h FramePtrArray.h InputTrajCommon.h MaskToken.h Matrix_3x3.h MetaData.h Molecule.h NameType.h Parallel.h ParameterHolders.h ParameterSet.h ParameterTypes.h Range.h ReferenceFrame.h ReplicaDimArray.h ReplicaInfo.h Residue.h StringRoutines.h SymbolExporting.h TextFormat.h Timer.h Topology.h TrajFrameCounter.h Trajin.h TrajinList.h TrajoutList.h TypeNameHolder.h Vec3.h -ForLoop_list.o : ForLoop_list.cpp Action.h ActionList.h ActionState.h Analysis.h AnalysisList.h AnalysisState.h ArgList.h AssociatedData.h Atom.h AtomExtra.h AtomMask.h AtomType.h BaseIOtype.h Box.h Constants.h CoordinateInfo.h CpptrajFile.h CpptrajState.h CpptrajStdio.h DataFile.h DataFileList.h DataIO.h DataSet.h DataSetList.h DataSet_Coords.h DataSet_Coords_REF.h Dimension.h DispatchObject.h EnsembleIn.h EnsembleOutList.h FileIO.h FileName.h FileTypes.h ForLoop.h ForLoop_list.h Frame.h FramePtrArray.h InputTrajCommon.h MaskToken.h Matrix_3x3.h MetaData.h Molecule.h NameType.h Parallel.h ParameterHolders.h ParameterSet.h ParameterTypes.h Range.h ReferenceFrame.h ReplicaDimArray.h ReplicaInfo.h Residue.h SymbolExporting.h TextFormat.h Timer.h Topology.h TrajFrameCounter.h Trajin.h TrajinList.h TrajoutList.h TypeNameHolder.h Vec3.h -ForLoop_mask.o : ForLoop_mask.cpp Action.h ActionList.h ActionState.h Analysis.h AnalysisList.h AnalysisState.h ArgList.h AssociatedData.h Atom.h AtomExtra.h AtomMask.h AtomType.h BaseIOtype.h Box.h Constants.h CoordinateInfo.h CpptrajFile.h CpptrajState.h CpptrajStdio.h DataFile.h DataFileList.h DataIO.h DataSet.h DataSetList.h DataSet_Coords.h DataSet_Coords_REF.h Dimension.h DispatchObject.h EnsembleIn.h EnsembleOutList.h FileIO.h FileName.h FileTypes.h ForLoop.h ForLoop_mask.h Frame.h FramePtrArray.h InputTrajCommon.h MaskToken.h Matrix_3x3.h MetaData.h Molecule.h NameType.h Parallel.h ParameterHolders.h ParameterSet.h ParameterTypes.h Range.h ReferenceFrame.h ReplicaDimArray.h ReplicaInfo.h Residue.h StringRoutines.h SymbolExporting.h TextFormat.h Timer.h Topology.h TrajFrameCounter.h Trajin.h TrajinList.h TrajoutList.h TypeNameHolder.h Vec3.h +ForLoop_dataSetBlocks.o : ForLoop_dataSetBlocks.cpp Action.h ActionList.h ActionState.h Analysis.h AnalysisList.h AnalysisState.h ArgList.h AssociatedData.h Atom.h AtomExtra.h AtomMask.h AtomType.h BaseIOtype.h Box.h Constants.h CoordinateInfo.h CpptrajFile.h CpptrajState.h CpptrajStdio.h DataFile.h DataFileList.h DataSet.h DataSetList.h DataSet_Coords.h DataSet_Coords_REF.h Dimension.h DispatchObject.h EnsembleIn.h EnsembleOutList.h FileIO.h FileName.h FileTypes.h ForLoop.h ForLoop_dataSetBlocks.h Frame.h FramePtrArray.h InputTrajCommon.h MaskToken.h Matrix_3x3.h MetaData.h Molecule.h NameType.h Parallel.h ParameterHolders.h ParameterSet.h ParameterTypes.h Range.h ReferenceFrame.h ReplicaDimArray.h ReplicaInfo.h Residue.h StringRoutines.h SymbolExporting.h TextFormat.h Timer.h Topology.h TrajFrameCounter.h Trajin.h TrajinList.h TrajoutList.h TypeNameHolder.h Vec3.h +ForLoop_integer.o : ForLoop_integer.cpp Action.h ActionList.h ActionState.h Analysis.h AnalysisList.h AnalysisState.h ArgList.h AssociatedData.h Atom.h AtomExtra.h AtomMask.h AtomType.h BaseIOtype.h Box.h Constants.h CoordinateInfo.h CpptrajFile.h CpptrajState.h CpptrajStdio.h DataFile.h DataFileList.h DataSet.h DataSetList.h DataSet_Coords.h DataSet_Coords_REF.h Dimension.h DispatchObject.h EnsembleIn.h EnsembleOutList.h FileIO.h FileName.h FileTypes.h ForLoop.h ForLoop_integer.h Frame.h FramePtrArray.h InputTrajCommon.h MaskToken.h Matrix_3x3.h MetaData.h Molecule.h NameType.h Parallel.h ParameterHolders.h ParameterSet.h ParameterTypes.h Range.h ReferenceFrame.h ReplicaDimArray.h ReplicaInfo.h Residue.h StringRoutines.h SymbolExporting.h TextFormat.h Timer.h Topology.h TrajFrameCounter.h Trajin.h TrajinList.h TrajoutList.h TypeNameHolder.h Vec3.h +ForLoop_list.o : ForLoop_list.cpp Action.h ActionList.h ActionState.h Analysis.h AnalysisList.h AnalysisState.h ArgList.h AssociatedData.h Atom.h AtomExtra.h AtomMask.h AtomType.h BaseIOtype.h Box.h Constants.h CoordinateInfo.h CpptrajFile.h CpptrajState.h CpptrajStdio.h DataFile.h DataFileList.h DataSet.h DataSetList.h DataSet_Coords.h DataSet_Coords_REF.h Dimension.h DispatchObject.h EnsembleIn.h EnsembleOutList.h FileIO.h FileName.h FileTypes.h ForLoop.h ForLoop_list.h Frame.h FramePtrArray.h InputTrajCommon.h MaskToken.h Matrix_3x3.h MetaData.h Molecule.h NameType.h Parallel.h ParameterHolders.h ParameterSet.h ParameterTypes.h Range.h ReferenceFrame.h ReplicaDimArray.h ReplicaInfo.h Residue.h SymbolExporting.h TextFormat.h Timer.h Topology.h TrajFrameCounter.h Trajin.h TrajinList.h TrajoutList.h TypeNameHolder.h Vec3.h +ForLoop_mask.o : ForLoop_mask.cpp Action.h ActionList.h ActionState.h Analysis.h AnalysisList.h AnalysisState.h ArgList.h AssociatedData.h Atom.h AtomExtra.h AtomMask.h AtomType.h BaseIOtype.h Box.h Constants.h CoordinateInfo.h CpptrajFile.h CpptrajState.h CpptrajStdio.h DataFile.h DataFileList.h DataSet.h DataSetList.h DataSet_Coords.h DataSet_Coords_REF.h Dimension.h DispatchObject.h EnsembleIn.h EnsembleOutList.h FileIO.h FileName.h FileTypes.h ForLoop.h ForLoop_mask.h Frame.h FramePtrArray.h InputTrajCommon.h MaskToken.h Matrix_3x3.h MetaData.h Molecule.h NameType.h Parallel.h ParameterHolders.h ParameterSet.h ParameterTypes.h Range.h ReferenceFrame.h ReplicaDimArray.h ReplicaInfo.h Residue.h StringRoutines.h SymbolExporting.h TextFormat.h Timer.h Topology.h TrajFrameCounter.h Trajin.h TrajinList.h TrajoutList.h TypeNameHolder.h Vec3.h Frame.o : Frame.cpp Atom.h AtomMask.h Box.h Constants.h CoordinateInfo.h CpptrajStdio.h Frame.h MaskToken.h Matrix_3x3.h Molecule.h NameType.h Parallel.h ReplicaDimArray.h Residue.h SymbolExporting.h Vec3.h GridAction.o : GridAction.cpp ArgList.h ArrayIterator.h AssociatedData.h Atom.h AtomExtra.h AtomMask.h AtomType.h Box.h Constants.h CoordinateInfo.h CpptrajFile.h CpptrajStdio.h DataSet.h DataSetList.h DataSet_3D.h DataSet_Coords.h DataSet_Coords_REF.h DataSet_GridFlt.h Dimension.h FileIO.h FileName.h Frame.h Grid.h GridAction.h GridBin.h MaskToken.h Matrix_3x3.h MetaData.h Molecule.h NameType.h Parallel.h ParameterHolders.h ParameterSet.h ParameterTypes.h Range.h ReferenceFrame.h ReplicaDimArray.h Residue.h SymbolExporting.h TextFormat.h Timer.h Topology.h TypeNameHolder.h Vec3.h HistBin.o : HistBin.cpp Constants.h CpptrajStdio.h Dimension.h HistBin.h @@ -335,7 +335,7 @@ PubFFT.o : PubFFT.cpp ArrayIterator.h ComplexArray.h CpptrajStdio.h PubFFT.h RPNcalc.o : RPNcalc.cpp ArgList.h ArrayIterator.h AssociatedData.h Atom.h AtomExtra.h AtomMask.h AtomType.h Box.h ComplexArray.h Constants.h CoordinateInfo.h CpptrajFile.h CpptrajStdio.h DataSet.h DataSetList.h DataSet_1D.h DataSet_2D.h DataSet_3D.h DataSet_Coords.h DataSet_Coords_REF.h DataSet_GridFlt.h DataSet_MatrixDbl.h DataSet_Vector.h DataSet_double.h Dimension.h FileIO.h FileName.h Frame.h Grid.h GridBin.h MaskToken.h Matrix.h Matrix_3x3.h MetaData.h Molecule.h NameType.h Parallel.h ParameterHolders.h ParameterSet.h ParameterTypes.h RPNcalc.h Range.h ReferenceFrame.h ReplicaDimArray.h Residue.h StringRoutines.h SymbolExporting.h TextFormat.h Timer.h Topology.h TypeNameHolder.h Vec3.h Random.o : Random.cpp CpptrajStdio.h Random.h Range.o : Range.cpp ArgList.h CpptrajStdio.h Range.h -ReadLine.o : ReadLine.cpp Action.h ActionList.h ActionState.h Analysis.h AnalysisList.h AnalysisState.h ArgList.h AssociatedData.h Atom.h AtomExtra.h AtomMask.h AtomType.h BaseIOtype.h Box.h Cmd.h CmdInput.h CmdList.h Command.h Constants.h CoordinateInfo.h CpptrajFile.h CpptrajState.h CpptrajStdio.h DataFile.h DataFileList.h DataIO.h DataSet.h DataSetList.h DataSet_Coords.h DataSet_Coords_REF.h Dimension.h DispatchObject.h EnsembleIn.h EnsembleOutList.h FileIO.h FileName.h FileTypes.h Frame.h FramePtrArray.h InputTrajCommon.h MaskToken.h Matrix_3x3.h MetaData.h Molecule.h NameType.h Parallel.h ParameterHolders.h ParameterSet.h ParameterTypes.h Range.h ReadLine.h ReferenceFrame.h ReplicaDimArray.h ReplicaInfo.h Residue.h SymbolExporting.h TextFormat.h Timer.h Topology.h TrajFrameCounter.h Trajin.h TrajinList.h TrajoutList.h TypeNameHolder.h Vec3.h +ReadLine.o : ReadLine.cpp Action.h ActionList.h ActionState.h Analysis.h AnalysisList.h AnalysisState.h ArgList.h AssociatedData.h Atom.h AtomExtra.h AtomMask.h AtomType.h BaseIOtype.h Box.h Cmd.h CmdInput.h CmdList.h Command.h Constants.h CoordinateInfo.h CpptrajFile.h CpptrajState.h CpptrajStdio.h DataFile.h DataFileList.h DataSet.h DataSetList.h DataSet_Coords.h DataSet_Coords_REF.h Dimension.h DispatchObject.h EnsembleIn.h EnsembleOutList.h FileIO.h FileName.h FileTypes.h Frame.h FramePtrArray.h InputTrajCommon.h MaskToken.h Matrix_3x3.h MetaData.h Molecule.h NameType.h Parallel.h ParameterHolders.h ParameterSet.h ParameterTypes.h Range.h ReadLine.h ReferenceFrame.h ReplicaDimArray.h ReplicaInfo.h Residue.h SymbolExporting.h TextFormat.h Timer.h Topology.h TrajFrameCounter.h Trajin.h TrajinList.h TrajoutList.h TypeNameHolder.h Vec3.h ReferenceAction.o : ReferenceAction.cpp ArgList.h AssociatedData.h Atom.h AtomExtra.h AtomMask.h AtomType.h Box.h Constants.h CoordinateInfo.h CpptrajFile.h CpptrajStdio.h DataSet.h DataSetList.h DataSet_Coords.h DataSet_Coords_REF.h DataSet_Coords_TRJ.h Dimension.h FileIO.h FileName.h Frame.h InputTrajCommon.h MaskToken.h Matrix_3x3.h MetaData.h Molecule.h NameType.h Parallel.h ParameterHolders.h ParameterSet.h ParameterTypes.h Range.h ReferenceAction.h ReferenceFrame.h ReplicaDimArray.h Residue.h SymbolExporting.h TextFormat.h Timer.h Topology.h TrajFrameCounter.h TrajFrameIndex.h Trajin.h TypeNameHolder.h Vec3.h RemdReservoirNC.o : RemdReservoirNC.cpp Atom.h AtomMask.h Box.h CoordinateInfo.h CpptrajStdio.h FileName.h Frame.h MaskToken.h Matrix_3x3.h Molecule.h NC_Routines.h NameType.h NetcdfFile.h Parallel.h RemdReservoirNC.h ReplicaDimArray.h Residue.h SymbolExporting.h Vec3.h Residue.o : Residue.cpp NameType.h Residue.h @@ -377,7 +377,7 @@ Traj_SDF.o : Traj_SDF.cpp Atom.h AtomExtra.h AtomMask.h AtomType.h BaseIOtype.h Traj_SQM.o : Traj_SQM.cpp ArgList.h Atom.h AtomExtra.h AtomMask.h AtomType.h BaseIOtype.h Box.h Constants.h CoordinateInfo.h CpptrajFile.h CpptrajStdio.h FileIO.h FileName.h Frame.h FramePtrArray.h MaskToken.h Matrix_3x3.h Molecule.h NameType.h Parallel.h ParameterHolders.h ParameterSet.h ParameterTypes.h Range.h ReplicaDimArray.h Residue.h StringRoutines.h SymbolExporting.h Topology.h Traj_SQM.h TrajectoryIO.h TypeNameHolder.h Vec3.h Traj_Tinker.o : Traj_Tinker.cpp Atom.h AtomExtra.h AtomMask.h AtomType.h BaseIOtype.h Box.h BufferedLine.h Constants.h CoordinateInfo.h CpptrajFile.h CpptrajStdio.h FileIO.h FileName.h Frame.h FramePtrArray.h MaskToken.h Matrix_3x3.h Molecule.h NameType.h Parallel.h ParameterHolders.h ParameterSet.h ParameterTypes.h Range.h ReplicaDimArray.h Residue.h SymbolExporting.h TinkerFile.h Topology.h Traj_Tinker.h TrajectoryIO.h TypeNameHolder.h Vec3.h Traj_XYZ.o : Traj_XYZ.cpp ArgList.h Atom.h AtomExtra.h AtomMask.h AtomType.h BaseIOtype.h Box.h BufferedLine.h Constants.h CoordinateInfo.h CpptrajFile.h CpptrajStdio.h FileIO.h FileName.h Frame.h FramePtrArray.h MaskToken.h Matrix_3x3.h Molecule.h NameType.h Parallel.h ParameterHolders.h ParameterSet.h ParameterTypes.h Range.h ReplicaDimArray.h Residue.h StringRoutines.h SymbolExporting.h TextFormat.h Topology.h Traj_XYZ.h TrajectoryIO.h TypeNameHolder.h Vec3.h -TrajectoryFile.o : TrajectoryFile.cpp ArgList.h Atom.h AtomMask.h BaseIOtype.h Box.h BufferedFrame.h BufferedLine.h CIFfile.h CoordinateInfo.h CpptrajFile.h CpptrajStdio.h FileIO.h FileName.h FileTypes.h Frame.h FramePtrArray.h MaskToken.h Matrix_3x3.h Mol2File.h Molecule.h NameType.h NetcdfFile.h PDBfile.h Parallel.h ReplicaDimArray.h Residue.h SDFfile.h SymbolExporting.h TextFormat.h TinkerFile.h Traj_AmberCoord.h Traj_AmberNetcdf.h Traj_AmberRestart.h Traj_AmberRestartNC.h Traj_Binpos.h Traj_CIF.h Traj_CharmmCor.h Traj_CharmmDcd.h Traj_CharmmRestart.h Traj_Conflib.h Traj_GmxDump.h Traj_GmxTng.h Traj_GmxTrX.h Traj_GmxXtc.h Traj_Gro.h Traj_Mol2File.h Traj_NcEnsemble.h Traj_PDBfile.h Traj_SDF.h Traj_SQM.h Traj_Tinker.h Traj_XYZ.h TrajectoryFile.h TrajectoryIO.h Vec3.h +TrajectoryFile.o : TrajectoryFile.cpp Atom.h AtomMask.h BaseIOtype.h Box.h BufferedFrame.h BufferedLine.h CIFfile.h CoordinateInfo.h CpptrajFile.h CpptrajStdio.h FileIO.h FileName.h FileTypes.h Frame.h FramePtrArray.h MaskToken.h Matrix_3x3.h Mol2File.h Molecule.h NameType.h NetcdfFile.h PDBfile.h Parallel.h ReplicaDimArray.h Residue.h SDFfile.h SymbolExporting.h TextFormat.h TinkerFile.h Traj_AmberCoord.h Traj_AmberNetcdf.h Traj_AmberRestart.h Traj_AmberRestartNC.h Traj_Binpos.h Traj_CIF.h Traj_CharmmCor.h Traj_CharmmDcd.h Traj_CharmmRestart.h Traj_Conflib.h Traj_GmxDump.h Traj_GmxTng.h Traj_GmxTrX.h Traj_GmxXtc.h Traj_Gro.h Traj_Mol2File.h Traj_NcEnsemble.h Traj_PDBfile.h Traj_SDF.h Traj_SQM.h Traj_Tinker.h Traj_XYZ.h TrajectoryFile.h TrajectoryIO.h Vec3.h TrajectoryIO.o : TrajectoryIO.cpp BaseIOtype.h Box.h CoordinateInfo.h FramePtrArray.h Matrix_3x3.h Parallel.h ReplicaDimArray.h TrajectoryIO.h Vec3.h TrajinList.o : TrajinList.cpp ArgList.h AssociatedData.h Atom.h AtomExtra.h AtomMask.h AtomType.h BaseIOtype.h Box.h Constants.h CoordinateInfo.h CpptrajFile.h CpptrajStdio.h DataSet.h DataSet_RemLog.h Dimension.h EnsembleIn.h EnsembleIn_Multi.h EnsembleIn_Single.h FileIO.h FileName.h FileTypes.h Frame.h FramePtrArray.h InputTrajCommon.h MaskToken.h Matrix_3x3.h MetaData.h Molecule.h NameType.h Parallel.h ParameterHolders.h ParameterSet.h ParameterTypes.h Range.h ReplicaDimArray.h ReplicaInfo.h Residue.h StringRoutines.h SymbolExporting.h TextFormat.h Timer.h Topology.h TrajFrameCounter.h TrajIOarray.h TrajectoryFile.h TrajectoryIO.h Trajin.h TrajinList.h Trajin_Multi.h Trajin_Single.h TypeNameHolder.h Vec3.h Trajin_Multi.o : Trajin_Multi.cpp ArgList.h Atom.h AtomExtra.h AtomMask.h AtomType.h BaseIOtype.h Box.h Constants.h CoordinateInfo.h CpptrajStdio.h FileName.h Frame.h FramePtrArray.h InputTrajCommon.h MaskToken.h Matrix_3x3.h Molecule.h NameType.h Parallel.h ParameterHolders.h ParameterSet.h ParameterTypes.h Range.h ReplicaDimArray.h ReplicaInfo.h Residue.h StringRoutines.h SymbolExporting.h Topology.h TrajFrameCounter.h TrajIOarray.h TrajectoryIO.h Trajin.h Trajin_Multi.h TypeNameHolder.h Vec3.h @@ -386,5 +386,5 @@ TrajoutList.o : TrajoutList.cpp ActionFrameCounter.h ArgList.h AssociatedData.h Trajout_Single.o : Trajout_Single.cpp ActionFrameCounter.h ArgList.h Atom.h AtomExtra.h AtomMask.h AtomType.h BaseIOtype.h Box.h Constants.h CoordinateInfo.h CpptrajStdio.h FileName.h FileTypes.h Frame.h FramePtrArray.h MaskToken.h Matrix_3x3.h Molecule.h NameType.h OutputTrajCommon.h Parallel.h ParameterHolders.h ParameterSet.h ParameterTypes.h Range.h ReplicaDimArray.h Residue.h StringRoutines.h SymbolExporting.h Topology.h TrajectoryFile.h TrajectoryIO.h Trajout_Single.h TypeNameHolder.h Vec3.h Vec3.o : Vec3.cpp Constants.h CpptrajStdio.h Vec3.h ViewRst.o : ViewRst.cpp ActionFrameCounter.h ArgList.h AssociatedData.h Atom.h AtomExtra.h AtomMask.h AtomType.h BaseIOtype.h BondSearch.h Box.h Constants.h CoordinateInfo.h CpptrajFile.h CpptrajStdio.h DataSet.h DataSetList.h DataSet_Coords.h DataSet_Coords_REF.h Dimension.h FileIO.h FileName.h FileTypes.h Frame.h MaskToken.h Matrix_3x3.h MetaData.h Molecule.h NameType.h OutputTrajCommon.h Parallel.h ParameterHolders.h ParameterSet.h ParameterTypes.h ParmFile.h ParmIO.h Range.h ReferenceFrame.h ReplicaDimArray.h Residue.h SymbolExporting.h TextFormat.h Timer.h Topology.h TrajectoryFile.h Trajout_Single.h TypeNameHolder.h Vec3.h ViewRst.h -main.o : main.cpp Action.h ActionList.h ActionState.h Analysis.h AnalysisList.h AnalysisState.h ArgList.h AssociatedData.h Atom.h AtomExtra.h AtomMask.h AtomType.h BaseIOtype.h Box.h Constants.h CoordinateInfo.h Cpptraj.h CpptrajFile.h CpptrajState.h DataFile.h DataFileList.h DataIO.h DataSet.h DataSetList.h DataSet_Coords.h DataSet_Coords_REF.h Dimension.h DispatchObject.h EnsembleIn.h EnsembleOutList.h FileIO.h FileName.h FileTypes.h Frame.h FramePtrArray.h InputTrajCommon.h MaskToken.h Matrix_3x3.h MetaData.h Molecule.h NameType.h Parallel.h ParameterHolders.h ParameterSet.h ParameterTypes.h Range.h ReferenceFrame.h ReplicaDimArray.h ReplicaInfo.h Residue.h SymbolExporting.h TextFormat.h Timer.h Topology.h TrajFrameCounter.h Trajin.h TrajinList.h TrajoutList.h TypeNameHolder.h Vec3.h +main.o : main.cpp Action.h ActionList.h ActionState.h Analysis.h AnalysisList.h AnalysisState.h ArgList.h AssociatedData.h Atom.h AtomExtra.h AtomMask.h AtomType.h BaseIOtype.h Box.h Constants.h CoordinateInfo.h Cpptraj.h CpptrajFile.h CpptrajState.h DataFile.h DataFileList.h DataSet.h DataSetList.h DataSet_Coords.h DataSet_Coords_REF.h Dimension.h DispatchObject.h EnsembleIn.h EnsembleOutList.h FileIO.h FileName.h FileTypes.h Frame.h FramePtrArray.h InputTrajCommon.h MaskToken.h Matrix_3x3.h MetaData.h Molecule.h NameType.h Parallel.h ParameterHolders.h ParameterSet.h ParameterTypes.h Range.h ReferenceFrame.h ReplicaDimArray.h ReplicaInfo.h Residue.h SymbolExporting.h TextFormat.h Timer.h Topology.h TrajFrameCounter.h Trajin.h TrajinList.h TrajoutList.h TypeNameHolder.h Vec3.h molsurf.o : molsurf.c molsurf.h From e835a3d8a6c5dafef526ffabeb5c7ba489b1b1e7 Mon Sep 17 00:00:00 2001 From: "Daniel R. Roe" Date: Fri, 10 Jan 2020 11:30:54 -0500 Subject: [PATCH 128/162] DRR - Add missing header guard --- src/Exec_Set.h | 1 + 1 file changed, 1 insertion(+) diff --git a/src/Exec_Set.h b/src/Exec_Set.h index 73c2d3d2f6..1498356cd0 100644 --- a/src/Exec_Set.h +++ b/src/Exec_Set.h @@ -1,4 +1,5 @@ #ifndef INC_EXEC_SET_H +#define INC_EXEC_SET_H #include "Exec.h" /// Used to set script variables class Exec_Set : public Exec { From d35eb38a110ad628b35ced5d0df12bc0cc88019f Mon Sep 17 00:00:00 2001 From: "Daniel R. Roe" Date: Fri, 10 Jan 2020 12:04:28 -0500 Subject: [PATCH 129/162] DRR - Protect datasetblocks in parallel --- src/ForLoop_dataSetBlocks.cpp | 9 +++++++++ test/Test_Control/RunTest.sh | 12 +++++++----- 2 files changed, 16 insertions(+), 5 deletions(-) diff --git a/src/ForLoop_dataSetBlocks.cpp b/src/ForLoop_dataSetBlocks.cpp index eafa0719bc..fe846706c2 100644 --- a/src/ForLoop_dataSetBlocks.cpp +++ b/src/ForLoop_dataSetBlocks.cpp @@ -4,6 +4,9 @@ #include "CpptrajState.h" #include "DataSet.h" #include "StringRoutines.h" +#ifdef MPI +# include "Parallel.h" +#endif /// CONSTRUCTOR ForLoop_dataSetBlocks::ForLoop_dataSetBlocks() : @@ -25,6 +28,12 @@ void ForLoop_dataSetBlocks::helpText() { int ForLoop_dataSetBlocks::SetupFor(CpptrajState& State, ArgList& argIn) { // datasetblocks blocksize <#> [blockoffset <#>] [cumulative [firstblock <#>]] +# ifdef MPI + if (Parallel::World().Size() > 1) { + mprinterr("Error: 'datasetblocks' loop cannot be used in parallel.\n"); + return 1; + } +# endif if (argIn.hasKey("cumulative")) mode_ = CUMULATIVE; else diff --git a/test/Test_Control/RunTest.sh b/test/Test_Control/RunTest.sh index aa69a74057..6bcde9c48b 100755 --- a/test/Test_Control/RunTest.sh +++ b/test/Test_Control/RunTest.sh @@ -91,7 +91,9 @@ RunCpptraj "$UNITNAME" DoTest nested.agr nested.agr.save UNITNAME='Test loop over data set blocks' -cat > for.in < for.in < Date: Wed, 15 Jan 2020 10:53:26 -0500 Subject: [PATCH 130/162] DRR - Allow wildcard expansion in 'for in' loop to fail with a warning. --- src/ForLoop_list.cpp | 12 ++++++++++-- 1 file changed, 10 insertions(+), 2 deletions(-) diff --git a/src/ForLoop_list.cpp b/src/ForLoop_list.cpp index 43b55a8c17..8b60d8d39f 100644 --- a/src/ForLoop_list.cpp +++ b/src/ForLoop_list.cpp @@ -32,8 +32,16 @@ int ForLoop_list::SetupFor(CpptrajState& State, ArgList& argIn) { // Check if file name expansion should occur if (list[il].find_first_of("*?") != std::string::npos) { File::NameArray files = File::ExpandToFilenames( list[il] ); - for (File::NameArray::const_iterator fn = files.begin(); fn != files.end(); ++fn) - List_.push_back( fn->Full() ); + // DEBUG + //for (File::NameArray::const_iterator fn = files.begin(); fn != files.end(); ++fn) + // mprintf("DEBUG: '%s'\n", fn->full()); + // Allow wildcard expansion to fail with a warning. + if (!files.empty() && files.front().Full().compare( list[il] ) == 0) { + mprintf("Warning: '%s' selects no files.\n", list[il].c_str()); + } else { + for (File::NameArray::const_iterator fn = files.begin(); fn != files.end(); ++fn) + List_.push_back( fn->Full() ); + } } else List_.push_back( list[il] ); } From ee4d9f4540aa9bdb94a0f94ffde0c4a93c450244 Mon Sep 17 00:00:00 2001 From: "Daniel R. Roe" Date: Wed, 15 Jan 2020 11:00:10 -0500 Subject: [PATCH 131/162] DRR - Add for loop over data sets. --- src/ForLoop_overSets.cpp | 57 ++++++++++++++++++++++++++++++++++++++++ src/ForLoop_overSets.h | 20 ++++++++++++++ src/cpptrajdepend | 1 + src/cpptrajfiles | 1 + 4 files changed, 79 insertions(+) create mode 100644 src/ForLoop_overSets.cpp create mode 100644 src/ForLoop_overSets.h diff --git a/src/ForLoop_overSets.cpp b/src/ForLoop_overSets.cpp new file mode 100644 index 0000000000..d8c57b7cbe --- /dev/null +++ b/src/ForLoop_overSets.cpp @@ -0,0 +1,57 @@ +#include "ForLoop_overSets.h" +#include "CpptrajStdio.h" +#include "ArgList.h" +#include "DataSetList.h" +#include "CpptrajState.h" + +void ForLoop_overSets::helpText() { + mprintf("\t oversets \n" + " Loop over data sets selected by values in comma-separated list.\n" + " Names may contain wildcard characters ('*' or '?').\n"); +} + +int ForLoop_overSets::SetupFor(CpptrajState& State, ArgList& argIn) { + // oversets [,...] + //MH.varType_ = ftype; + // Comma-separated list of data set names. + std::string listArg = argIn.GetStringKey("oversets"); + if (listArg.empty()) { + mprinterr("Error: 'for oversets': missing ' oversets '.\n"); + return 1; + } + ArgList list(listArg, ","); + if (list.Nargs() < 1) { + mprinterr("Error: Could not parse '%s' for 'for oversets'\n", listArg.c_str()); + return 1; + } + // Variable name. + if (SetupLoopVar( State.DSL(), argIn.GetStringNext() )) return 1; + // Go through list of names + for (int il = 0; il != list.Nargs(); il++) { + DataSetList dsl = State.DSL().SelectSets( list[il] ); + if (dsl.empty()) { + mprintf("Warning: '%s' selects no sets.\n"); + } else { + for (DataSetList::const_iterator it = dsl.begin(); it != dsl.end(); ++it) + List_.push_back( (*it)->Meta().PrintName() ); + } + } + // Description + std::string description( "(" + VarName() + " oversets " + listArg + ")" ); + SetDescription( description ); + return 0; +} + +int ForLoop_overSets::BeginFor(DataSetList const& CurrentVars) { + sdx_ = List_.begin(); + return (int)List_.size(); +} + +bool ForLoop_overSets::EndFor(DataSetList& DSL) { + if (sdx_ == List_.end()) return true; + // Get variable value + DSL.UpdateStringVar( VarName(), *(sdx_) ); + // Increment + ++(sdx_); + return false; +} diff --git a/src/ForLoop_overSets.h b/src/ForLoop_overSets.h new file mode 100644 index 0000000000..d7033e3419 --- /dev/null +++ b/src/ForLoop_overSets.h @@ -0,0 +1,20 @@ +#ifndef INC_FORLOOP_OVERSETS_H +#define INC_FORLOOP_OVERSETS_H +#include +#include +#include "ForLoop.h" +class ForLoop_overSets : public ForLoop { + public: + ForLoop_overSets() {} + + static void helpText(); + + int SetupFor(CpptrajState&, ArgList&); + int BeginFor(DataSetList const&); + bool EndFor(DataSetList&); + private: + typedef std::vector Sarray; + Sarray List_; ///< List of data set names to iterate over. + Sarray::const_iterator sdx_; ///< Iterator to current list item. +}; +#endif diff --git a/src/cpptrajdepend b/src/cpptrajdepend index 772c265b35..04e0e94e3a 100644 --- a/src/cpptrajdepend +++ b/src/cpptrajdepend @@ -296,6 +296,7 @@ ForLoop_dataSetBlocks.o : ForLoop_dataSetBlocks.cpp Action.h ActionList.h Action ForLoop_integer.o : ForLoop_integer.cpp Action.h ActionList.h ActionState.h Analysis.h AnalysisList.h AnalysisState.h ArgList.h AssociatedData.h Atom.h AtomExtra.h AtomMask.h AtomType.h BaseIOtype.h Box.h Constants.h CoordinateInfo.h CpptrajFile.h CpptrajState.h CpptrajStdio.h DataFile.h DataFileList.h DataSet.h DataSetList.h DataSet_Coords.h DataSet_Coords_REF.h Dimension.h DispatchObject.h EnsembleIn.h EnsembleOutList.h FileIO.h FileName.h FileTypes.h ForLoop.h ForLoop_integer.h Frame.h FramePtrArray.h InputTrajCommon.h MaskToken.h Matrix_3x3.h MetaData.h Molecule.h NameType.h Parallel.h ParameterHolders.h ParameterSet.h ParameterTypes.h Range.h ReferenceFrame.h ReplicaDimArray.h ReplicaInfo.h Residue.h StringRoutines.h SymbolExporting.h TextFormat.h Timer.h Topology.h TrajFrameCounter.h Trajin.h TrajinList.h TrajoutList.h TypeNameHolder.h Vec3.h ForLoop_list.o : ForLoop_list.cpp Action.h ActionList.h ActionState.h Analysis.h AnalysisList.h AnalysisState.h ArgList.h AssociatedData.h Atom.h AtomExtra.h AtomMask.h AtomType.h BaseIOtype.h Box.h Constants.h CoordinateInfo.h CpptrajFile.h CpptrajState.h CpptrajStdio.h DataFile.h DataFileList.h DataSet.h DataSetList.h DataSet_Coords.h DataSet_Coords_REF.h Dimension.h DispatchObject.h EnsembleIn.h EnsembleOutList.h FileIO.h FileName.h FileTypes.h ForLoop.h ForLoop_list.h Frame.h FramePtrArray.h InputTrajCommon.h MaskToken.h Matrix_3x3.h MetaData.h Molecule.h NameType.h Parallel.h ParameterHolders.h ParameterSet.h ParameterTypes.h Range.h ReferenceFrame.h ReplicaDimArray.h ReplicaInfo.h Residue.h SymbolExporting.h TextFormat.h Timer.h Topology.h TrajFrameCounter.h Trajin.h TrajinList.h TrajoutList.h TypeNameHolder.h Vec3.h ForLoop_mask.o : ForLoop_mask.cpp Action.h ActionList.h ActionState.h Analysis.h AnalysisList.h AnalysisState.h ArgList.h AssociatedData.h Atom.h AtomExtra.h AtomMask.h AtomType.h BaseIOtype.h Box.h Constants.h CoordinateInfo.h CpptrajFile.h CpptrajState.h CpptrajStdio.h DataFile.h DataFileList.h DataSet.h DataSetList.h DataSet_Coords.h DataSet_Coords_REF.h Dimension.h DispatchObject.h EnsembleIn.h EnsembleOutList.h FileIO.h FileName.h FileTypes.h ForLoop.h ForLoop_mask.h Frame.h FramePtrArray.h InputTrajCommon.h MaskToken.h Matrix_3x3.h MetaData.h Molecule.h NameType.h Parallel.h ParameterHolders.h ParameterSet.h ParameterTypes.h Range.h ReferenceFrame.h ReplicaDimArray.h ReplicaInfo.h Residue.h StringRoutines.h SymbolExporting.h TextFormat.h Timer.h Topology.h TrajFrameCounter.h Trajin.h TrajinList.h TrajoutList.h TypeNameHolder.h Vec3.h +ForLoop_overSets.o : ForLoop_overSets.cpp Action.h ActionList.h ActionState.h Analysis.h AnalysisList.h AnalysisState.h ArgList.h AssociatedData.h Atom.h AtomExtra.h AtomMask.h AtomType.h BaseIOtype.h Box.h Constants.h CoordinateInfo.h CpptrajFile.h CpptrajState.h CpptrajStdio.h DataFile.h DataFileList.h DataSet.h DataSetList.h DataSet_Coords.h DataSet_Coords_REF.h Dimension.h DispatchObject.h EnsembleIn.h EnsembleOutList.h FileIO.h FileName.h FileTypes.h ForLoop.h ForLoop_overSets.h Frame.h FramePtrArray.h InputTrajCommon.h MaskToken.h Matrix_3x3.h MetaData.h Molecule.h NameType.h Parallel.h ParameterHolders.h ParameterSet.h ParameterTypes.h Range.h ReferenceFrame.h ReplicaDimArray.h ReplicaInfo.h Residue.h SymbolExporting.h TextFormat.h Timer.h Topology.h TrajFrameCounter.h Trajin.h TrajinList.h TrajoutList.h TypeNameHolder.h Vec3.h Frame.o : Frame.cpp Atom.h AtomMask.h Box.h Constants.h CoordinateInfo.h CpptrajStdio.h Frame.h MaskToken.h Matrix_3x3.h Molecule.h NameType.h Parallel.h ReplicaDimArray.h Residue.h SymbolExporting.h Vec3.h GridAction.o : GridAction.cpp ArgList.h ArrayIterator.h AssociatedData.h Atom.h AtomExtra.h AtomMask.h AtomType.h Box.h Constants.h CoordinateInfo.h CpptrajFile.h CpptrajStdio.h DataSet.h DataSetList.h DataSet_3D.h DataSet_Coords.h DataSet_Coords_REF.h DataSet_GridFlt.h Dimension.h FileIO.h FileName.h Frame.h Grid.h GridAction.h GridBin.h MaskToken.h Matrix_3x3.h MetaData.h Molecule.h NameType.h Parallel.h ParameterHolders.h ParameterSet.h ParameterTypes.h Range.h ReferenceFrame.h ReplicaDimArray.h Residue.h SymbolExporting.h TextFormat.h Timer.h Topology.h TypeNameHolder.h Vec3.h HistBin.o : HistBin.cpp Constants.h CpptrajStdio.h Dimension.h HistBin.h diff --git a/src/cpptrajfiles b/src/cpptrajfiles index d6ee2bfcc7..687ed2f889 100644 --- a/src/cpptrajfiles +++ b/src/cpptrajfiles @@ -296,6 +296,7 @@ COMMON_SOURCES= \ ForLoop_integer.cpp \ ForLoop_list.cpp \ ForLoop_mask.cpp \ + ForLoop_overSets.cpp \ Frame.cpp \ GridAction.cpp \ HistBin.cpp \ From 489709706bf226fdef8b67a23a79faa863be336f Mon Sep 17 00:00:00 2001 From: "Daniel R. Roe" Date: Wed, 15 Jan 2020 11:12:56 -0500 Subject: [PATCH 132/162] DRR - Enable oversets loop --- src/ControlBlock_For.cpp | 13 ++++++++++++- src/cpptrajdepend | 2 +- 2 files changed, 13 insertions(+), 2 deletions(-) diff --git a/src/ControlBlock_For.cpp b/src/ControlBlock_For.cpp index 9d665d348a..3e3414becd 100644 --- a/src/ControlBlock_For.cpp +++ b/src/ControlBlock_For.cpp @@ -8,6 +8,7 @@ #include "ForLoop_mask.h" #include "ForLoop_list.h" #include "ForLoop_dataSetBlocks.h" +#include "ForLoop_overSets.h" /// DESTRUCTOR ControlBlock_For::~ControlBlock_For() { @@ -19,7 +20,7 @@ ControlBlock_For::~ControlBlock_For() { void ControlBlock_For::Help() const { mprintf("\t ...\n" " Create a 'for' loop of one or more types:\n" - " = mask, list, integer, datasetblocks\n" + " = mask, list, integer, datasetblocks, oversets\n" " Type help 'for ' for more info on each type.\n" " Note that non-integer variables (e.g. for mask loops) are NOT incremented\n" " after the final loop iteration, i.e. these loop variables always retain\n" @@ -43,6 +44,8 @@ void ControlBlock_For::Help(ArgList& argIn) const { ForLoop_list::helpText(); else if (argIn.hasKey("mask")) ForLoop_mask::helpText(); + else if (argIn.hasKey("oversets")) + ForLoop_overSets::helpText(); else Help(); } @@ -79,6 +82,14 @@ int ControlBlock_For::SetupBlock(CpptrajState& State, ArgList& argIn) { } forLoopIdxs.push_back( idx ); Vars_.push_back( static_cast( new ForLoop_list() ) ); + } else if (argIn[iarg] == "oversets") { + int idx = iarg -1 ; + if (idx < 1) { + mprinterr("Error: Malformed 'oversets' for loop.\n"); + return 1; + } + forLoopIdxs.push_back( idx ); + Vars_.push_back( static_cast( new ForLoop_overSets() ) ); } else if (argIn[iarg] == "datasetblocks") { int idx = iarg - 1; if (idx < 1) { diff --git a/src/cpptrajdepend b/src/cpptrajdepend index 04e0e94e3a..e2bf90eb86 100644 --- a/src/cpptrajdepend +++ b/src/cpptrajdepend @@ -160,7 +160,7 @@ CmdList.o : CmdList.cpp Cmd.h CmdList.h DispatchObject.h Command.o : Command.cpp Action.h ActionFrameCounter.h ActionList.h ActionState.h Action_Align.h Action_Angle.h Action_AreaPerMol.h Action_AtomMap.h Action_AtomicCorr.h Action_AtomicFluct.h Action_AutoImage.h Action_Average.h Action_Bounds.h Action_Box.h Action_Center.h Action_Channel.h Action_CheckChirality.h Action_CheckStructure.h Action_Closest.h Action_ClusterDihedral.h Action_Contacts.h Action_CreateCrd.h Action_CreateReservoir.h Action_DNAionTracker.h Action_DSSP.h Action_Density.h Action_Diffusion.h Action_Dihedral.h Action_DihedralRMS.h Action_Dipole.h Action_DistRmsd.h Action_Distance.h Action_Energy.h Action_Esander.h Action_FilterByData.h Action_FixAtomOrder.h Action_FixImagedBonds.h Action_GIST.h Action_Grid.h Action_GridFreeEnergy.h Action_HydrogenBond.h Action_Image.h Action_InfraredSpectrum.h Action_Jcoupling.h Action_LESsplit.h Action_LIE.h Action_LipidOrder.h Action_MakeStructure.h Action_Mask.h Action_Matrix.h Action_MinImage.h Action_Molsurf.h Action_MultiDihedral.h Action_MultiVector.h Action_NAstruct.h Action_NMRrst.h Action_NativeContacts.h Action_OrderParameter.h Action_Outtraj.h Action_PairDist.h Action_Pairwise.h Action_Principal.h Action_Projection.h Action_Pucker.h Action_Radgyr.h Action_Radial.h Action_RandomizeIons.h Action_Remap.h Action_ReplicateCell.h Action_Rmsd.h Action_Rotate.h Action_RunningAvg.h Action_STFC_Diffusion.h Action_Scale.h Action_SetVelocity.h Action_Spam.h Action_Strip.h Action_Surf.h Action_SymmetricRmsd.h Action_Temperature.h Action_Time.h Action_Translate.h Action_Unstrip.h Action_Unwrap.h Action_Vector.h Action_VelocityAutoCorr.h Action_Volmap.h Action_Volume.h Action_Watershell.h Action_XtalSymm.h Analysis.h AnalysisList.h AnalysisState.h Analysis_AmdBias.h Analysis_AutoCorr.h Analysis_Average.h Analysis_Clustering.h Analysis_ConstantPHStats.h Analysis_Corr.h Analysis_CrankShaft.h Analysis_CrdFluct.h Analysis_CrossCorr.h Analysis_CurveFit.h Analysis_Divergence.h Analysis_FFT.h Analysis_HausdorffDistance.h Analysis_Hist.h Analysis_IRED.h Analysis_Integrate.h Analysis_KDE.h Analysis_Lifetime.h Analysis_LowestCurve.h Analysis_Matrix.h Analysis_MeltCurve.h Analysis_Modes.h Analysis_MultiHist.h Analysis_Multicurve.h Analysis_Overlap.h Analysis_PhiPsi.h Analysis_Regression.h Analysis_RemLog.h Analysis_Rms2d.h Analysis_RmsAvgCorr.h Analysis_Rotdif.h Analysis_RunningAvg.h Analysis_Slope.h Analysis_Spline.h Analysis_State.h Analysis_Statistics.h Analysis_TI.h Analysis_Timecorr.h Analysis_VectorMath.h Analysis_Wavelet.h ArgList.h Array1D.h ArrayIterator.h AssociatedData.h Atom.h AtomExtra.h AtomMap.h AtomMask.h AtomType.h AxisType.h BaseIOtype.h Box.h BufferedLine.h CharMask.h ClusterDist.h ClusterList.h ClusterMap.h ClusterNode.h ClusterSieve.h Cmd.h CmdInput.h CmdList.h Command.h ComplexArray.h Constants.h Constraints.h ControlBlock.h ControlBlock_For.h CoordinateInfo.h Corr.h Cph.h CpptrajFile.h CpptrajState.h CpptrajStdio.h DataFile.h DataFileList.h DataSet.h DataSetList.h DataSet_1D.h DataSet_2D.h DataSet_3D.h DataSet_Cmatrix.h DataSet_Coords.h DataSet_Coords_CRD.h DataSet_Coords_REF.h DataSet_GridFlt.h DataSet_Mat3x3.h DataSet_MatrixDbl.h DataSet_MatrixFlt.h DataSet_Mesh.h DataSet_Modes.h DataSet_RemLog.h DataSet_Vector.h DataSet_Vector_XYZ.h DataSet_double.h DataSet_float.h DataSet_integer.h DataSet_integer_mem.h DataSet_pH.h DataSet_string.h Deprecated.h DihedralSearch.h Dimension.h DispatchObject.h DistRoutines.h Energy.h Energy_Sander.h EnsembleIn.h EnsembleOutList.h Exec.h Exec_Analyze.h Exec_Calc.h Exec_CatCrd.h Exec_Change.h Exec_ClusterMap.h Exec_CombineCoords.h Exec_Commands.h Exec_CompareTop.h Exec_CrdAction.h Exec_CrdOut.h Exec_CreateSet.h Exec_DataFile.h Exec_DataFilter.h Exec_DataSetCmd.h Exec_GenerateAmberRst.h Exec_Help.h Exec_LoadCrd.h Exec_LoadTraj.h Exec_ParallelAnalysis.h Exec_ParmBox.h Exec_ParmSolvent.h Exec_ParmStrip.h Exec_ParmWrite.h Exec_PermuteDihedrals.h Exec_Precision.h Exec_PrintData.h Exec_ReadData.h Exec_ReadEnsembleData.h Exec_ReadInput.h Exec_RotateDihedral.h Exec_RunAnalysis.h Exec_ScaleDihedralK.h Exec_SequenceAlign.h Exec_Set.h Exec_Show.h Exec_SortEnsembleData.h Exec_SplitCoords.h Exec_System.h Exec_Top.h Exec_Traj.h Exec_UpdateParameters.h Exec_ViewRst.h FileIO.h FileName.h FileTypes.h Frame.h FramePtrArray.h Grid.h GridAction.h GridBin.h HistBin.h Hungarian.h ImageTypes.h ImagedAction.h InputTrajCommon.h MapAtom.h MaskArray.h MaskToken.h Matrix.h Matrix_3x3.h MetaData.h Molecule.h NameType.h NetcdfFile.h OnlineVarT.h OutputTrajCommon.h PDBfile.h PairList.h Parallel.h ParameterHolders.h ParameterSet.h ParameterTypes.h PubFFT.h RPNcalc.h Random.h Range.h ReferenceAction.h ReferenceFrame.h RemdReservoirNC.h ReplicaDimArray.h ReplicaInfo.h Residue.h Spline.h StructureCheck.h SymbolExporting.h SymmetricRmsdCalc.h TextFormat.h Timer.h Topology.h TrajFrameCounter.h TrajectoryFile.h Trajin.h TrajinList.h TrajoutList.h Trajout_Single.h TypeNameHolder.h Vec3.h cuda_kernels/GistCudaSetup.cuh molsurf.h ComplexArray.o : ComplexArray.cpp ArrayIterator.h ComplexArray.h Constraints.o : Constraints.cpp ArgList.h Atom.h AtomExtra.h AtomMask.h AtomType.h Box.h CharMask.h Constants.h Constraints.h CoordinateInfo.h CpptrajStdio.h FileName.h Frame.h MaskToken.h Matrix_3x3.h Molecule.h NameType.h Parallel.h ParameterHolders.h ParameterSet.h ParameterTypes.h Range.h ReplicaDimArray.h Residue.h SymbolExporting.h Topology.h TypeNameHolder.h Vec3.h -ControlBlock_For.o : ControlBlock_For.cpp Action.h ActionList.h ActionState.h Analysis.h AnalysisList.h AnalysisState.h ArgList.h AssociatedData.h Atom.h AtomExtra.h AtomMask.h AtomType.h BaseIOtype.h Box.h Constants.h ControlBlock.h ControlBlock_For.h CoordinateInfo.h CpptrajFile.h CpptrajState.h CpptrajStdio.h DataFile.h DataFileList.h DataSet.h DataSetList.h DataSet_Coords.h DataSet_Coords_REF.h Dimension.h DispatchObject.h EnsembleIn.h EnsembleOutList.h FileIO.h FileName.h FileTypes.h ForLoop.h ForLoop_dataSetBlocks.h ForLoop_integer.h ForLoop_list.h ForLoop_mask.h Frame.h FramePtrArray.h InputTrajCommon.h MaskToken.h Matrix_3x3.h MetaData.h Molecule.h NameType.h Parallel.h ParameterHolders.h ParameterSet.h ParameterTypes.h Range.h ReferenceFrame.h ReplicaDimArray.h ReplicaInfo.h Residue.h SymbolExporting.h TextFormat.h Timer.h Topology.h TrajFrameCounter.h Trajin.h TrajinList.h TrajoutList.h TypeNameHolder.h Vec3.h +ControlBlock_For.o : ControlBlock_For.cpp Action.h ActionList.h ActionState.h Analysis.h AnalysisList.h AnalysisState.h ArgList.h AssociatedData.h Atom.h AtomExtra.h AtomMask.h AtomType.h BaseIOtype.h Box.h Constants.h ControlBlock.h ControlBlock_For.h CoordinateInfo.h CpptrajFile.h CpptrajState.h CpptrajStdio.h DataFile.h DataFileList.h DataSet.h DataSetList.h DataSet_Coords.h DataSet_Coords_REF.h Dimension.h DispatchObject.h EnsembleIn.h EnsembleOutList.h FileIO.h FileName.h FileTypes.h ForLoop.h ForLoop_dataSetBlocks.h ForLoop_integer.h ForLoop_list.h ForLoop_mask.h ForLoop_overSets.h Frame.h FramePtrArray.h InputTrajCommon.h MaskToken.h Matrix_3x3.h MetaData.h Molecule.h NameType.h Parallel.h ParameterHolders.h ParameterSet.h ParameterTypes.h Range.h ReferenceFrame.h ReplicaDimArray.h ReplicaInfo.h Residue.h SymbolExporting.h TextFormat.h Timer.h Topology.h TrajFrameCounter.h Trajin.h TrajinList.h TrajoutList.h TypeNameHolder.h Vec3.h CoordinateInfo.o : CoordinateInfo.cpp Box.h CoordinateInfo.h CpptrajStdio.h Matrix_3x3.h Parallel.h ReplicaDimArray.h Vec3.h Corr.o : Corr.cpp ArrayIterator.h ComplexArray.h Corr.h PubFFT.h Cph.o : Cph.cpp Cph.h NameType.h From 92d4625bd4cb7fc60f74bbeea899d56f03e1558b Mon Sep 17 00:00:00 2001 From: "Daniel R. Roe" Date: Wed, 15 Jan 2020 11:13:10 -0500 Subject: [PATCH 133/162] DRR - Test loop filename wildcards and oversets loop --- test/Test_Control/DataOut.dat.save | 11 +++++++++++ test/Test_Control/RunTest.sh | 20 +++++++++++++++++++- 2 files changed, 30 insertions(+), 1 deletion(-) create mode 100644 test/Test_Control/DataOut.dat.save diff --git a/test/Test_Control/DataOut.dat.save b/test/Test_Control/DataOut.dat.save new file mode 100644 index 0000000000..9852374137 --- /dev/null +++ b/test/Test_Control/DataOut.dat.save @@ -0,0 +1,11 @@ +#Frame NewSet1 NewSet2 NewSet3 NewSet4 + 1 10.6343 9.5164 5.2418 12.0643 + 2 11.2847 11.0308 5.3879 13.5070 + 3 11.5477 11.1152 7.7881 13.5915 + 4 12.7339 10.7999 8.8446 12.9947 + 5 9.5089 10.9447 7.1706 13.2821 + 6 6.4920 10.5278 6.4794 11.9478 + 7 5.2119 10.2123 4.9592 10.9038 + 8 7.1330 9.0511 3.9076 9.9153 + 9 7.6805 8.7576 3.9218 9.4367 + 10 6.0858 10.6187 3.9928 11.2655 diff --git a/test/Test_Control/RunTest.sh b/test/Test_Control/RunTest.sh index 6bcde9c48b..396a8cb218 100755 --- a/test/Test_Control/RunTest.sh +++ b/test/Test_Control/RunTest.sh @@ -4,7 +4,8 @@ CleanFiles for.in TRP.vec.dat TRP.rms.dat TRP.CA.dist.dat TRP.tocenter.dat \ nh.dat rms.nofit.dat last10.dat distance.dat nested.agr \ - EndToEnd0.dat EndToEnd1.dat EndToEnd2.agr temp.*.dat + EndToEnd0.dat EndToEnd1.dat EndToEnd2.agr temp.*.dat \ + DataOut.dat TESTNAME='Loop tests' Requires netcdf maxthreads 10 @@ -131,5 +132,22 @@ EOF DoTest EndToEnd2.agr.save EndToEnd2.agr fi +UNITNAME='Test for filename wildcards and oversets' +cat > for.in < Date: Wed, 15 Jan 2020 11:14:26 -0500 Subject: [PATCH 134/162] DRR - Add for oversets manual entry --- doc/cpptraj.lyx | 17 +++++++++++++++++ 1 file changed, 17 insertions(+) diff --git a/doc/cpptraj.lyx b/doc/cpptraj.lyx index 7d06af41bb..acda129dea 100644 --- a/doc/cpptraj.lyx +++ b/doc/cpptraj.lyx @@ -2090,6 +2090,10 @@ for { {atoms|residues|molecules|molfirstres|mollastres} in | \end_layout +\begin_layout LyX-Code + oversets | +\end_layout + \begin_layout LyX-Code datasetblocks blocksize <#> [blockoffset <#>] \end_layout @@ -2186,6 +2190,19 @@ in \begin_inset space ~ \end_inset +oversets +\begin_inset space ~ +\end_inset + + Loop over sets selected by comma-separated list of names. + Data set wildcards can be used. +\end_layout + +\begin_layout Description + +\begin_inset space ~ +\end_inset + datasetblocks \begin_inset space ~ \end_inset From 38d0485020e6b870c01a4ff670870c7e51cee464 Mon Sep 17 00:00:00 2001 From: "Daniel R. Roe" Date: Wed, 15 Jan 2020 11:56:13 -0500 Subject: [PATCH 135/162] DRR - Add missing argument to printf. --- src/ForLoop_overSets.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/ForLoop_overSets.cpp b/src/ForLoop_overSets.cpp index d8c57b7cbe..7a45ed864b 100644 --- a/src/ForLoop_overSets.cpp +++ b/src/ForLoop_overSets.cpp @@ -30,7 +30,7 @@ int ForLoop_overSets::SetupFor(CpptrajState& State, ArgList& argIn) { for (int il = 0; il != list.Nargs(); il++) { DataSetList dsl = State.DSL().SelectSets( list[il] ); if (dsl.empty()) { - mprintf("Warning: '%s' selects no sets.\n"); + mprintf("Warning: '%s' selects no sets.\n", list[il].c_str()); } else { for (DataSetList::const_iterator it = dsl.begin(); it != dsl.end(); ++it) List_.push_back( (*it)->Meta().PrintName() ); From 96f70acbba3f48b4512b93cd44d1741137fe1acd Mon Sep 17 00:00:00 2001 From: "Daniel R. Roe" Date: Wed, 15 Jan 2020 14:31:47 -0500 Subject: [PATCH 136/162] DRR - Add missing include. --- src/ControlBlock_For.cpp | 1 + 1 file changed, 1 insertion(+) diff --git a/src/ControlBlock_For.cpp b/src/ControlBlock_For.cpp index 3e3414becd..7decc9056c 100644 --- a/src/ControlBlock_For.cpp +++ b/src/ControlBlock_For.cpp @@ -1,3 +1,4 @@ +#include // std::min #include "ControlBlock_For.h" #include "CpptrajStdio.h" #include "ArgList.h" From 2d0f8f5d2bc684fc17acc594fd8a8d7fc5c03fec Mon Sep 17 00:00:00 2001 From: "Daniel R. Roe" Date: Thu, 16 Jan 2020 13:08:10 -0500 Subject: [PATCH 137/162] DRR - Make it so that list for loops can access script variables. --- src/ForLoop_list.cpp | 32 +++++++++++++++++++++----------- src/ForLoop_list.h | 1 + 2 files changed, 22 insertions(+), 11 deletions(-) diff --git a/src/ForLoop_list.cpp b/src/ForLoop_list.cpp index 8b60d8d39f..8fdf583c4c 100644 --- a/src/ForLoop_list.cpp +++ b/src/ForLoop_list.cpp @@ -29,29 +29,39 @@ int ForLoop_list::SetupFor(CpptrajState& State, ArgList& argIn) { if (SetupLoopVar( State.DSL(), argIn.GetStringNext() )) return 1; // Go through list of strings for (int il = 0; il != list.Nargs(); il++) { + Names_.push_back( list[il] ); + } + // Description + std::string description( "(" + VarName() + " in " + listArg + ")" ); + SetDescription( description ); + return 0; +} + +int ForLoop_list::BeginFor(DataSetList const& CurrentVars) { + // Go through list of strings + List_.clear(); + for (Sarray::const_iterator it = Names_.begin(); it != Names_.end(); ++it) + { + // Try variable replacement + std::string listEntry; + CurrentVars.ReplaceVariables(listEntry, *it); // Check if file name expansion should occur - if (list[il].find_first_of("*?") != std::string::npos) { - File::NameArray files = File::ExpandToFilenames( list[il] ); + if (listEntry.find_first_of("*?") != std::string::npos) { + File::NameArray files = File::ExpandToFilenames( listEntry ); // DEBUG //for (File::NameArray::const_iterator fn = files.begin(); fn != files.end(); ++fn) // mprintf("DEBUG: '%s'\n", fn->full()); // Allow wildcard expansion to fail with a warning. - if (!files.empty() && files.front().Full().compare( list[il] ) == 0) { - mprintf("Warning: '%s' selects no files.\n", list[il].c_str()); + if (!files.empty() && files.front().Full().compare( listEntry ) == 0) { + mprintf("Warning: '%s' selects no files.\n", it->c_str()); } else { for (File::NameArray::const_iterator fn = files.begin(); fn != files.end(); ++fn) List_.push_back( fn->Full() ); } } else - List_.push_back( list[il] ); + List_.push_back( listEntry ); } - // Description - std::string description( "(" + VarName() + " in " + listArg + ")" ); - SetDescription( description ); - return 0; -} -int ForLoop_list::BeginFor(DataSetList const& CurrentVars) { sdx_ = List_.begin(); return (int)List_.size(); } diff --git a/src/ForLoop_list.h b/src/ForLoop_list.h index dcb054e55d..eefb4afb6f 100644 --- a/src/ForLoop_list.h +++ b/src/ForLoop_list.h @@ -14,6 +14,7 @@ class ForLoop_list : public ForLoop { bool EndFor(DataSetList&); private: typedef std::vector Sarray; + Sarray Names_; ///< List of strings, potentially need expansion/replacement Sarray List_; ///< (LIST only) List of strings to iterate over. Sarray::const_iterator sdx_; ///< (LIST only) Iterator to current list item. }; From 58b1f6d12380f6c609ea4bb98126e8c48ddf05fa Mon Sep 17 00:00:00 2001 From: "Daniel R. Roe" Date: Thu, 16 Jan 2020 13:14:03 -0500 Subject: [PATCH 138/162] DRR - Allow oversets loop to access script variables. --- src/ForLoop_overSets.cpp | 22 +++++++++++++++------- src/ForLoop_overSets.h | 1 + 2 files changed, 16 insertions(+), 7 deletions(-) diff --git a/src/ForLoop_overSets.cpp b/src/ForLoop_overSets.cpp index 7a45ed864b..dca927747c 100644 --- a/src/ForLoop_overSets.cpp +++ b/src/ForLoop_overSets.cpp @@ -28,13 +28,7 @@ int ForLoop_overSets::SetupFor(CpptrajState& State, ArgList& argIn) { if (SetupLoopVar( State.DSL(), argIn.GetStringNext() )) return 1; // Go through list of names for (int il = 0; il != list.Nargs(); il++) { - DataSetList dsl = State.DSL().SelectSets( list[il] ); - if (dsl.empty()) { - mprintf("Warning: '%s' selects no sets.\n", list[il].c_str()); - } else { - for (DataSetList::const_iterator it = dsl.begin(); it != dsl.end(); ++it) - List_.push_back( (*it)->Meta().PrintName() ); - } + Names_.push_back( list[il] ); } // Description std::string description( "(" + VarName() + " oversets " + listArg + ")" ); @@ -43,6 +37,20 @@ int ForLoop_overSets::SetupFor(CpptrajState& State, ArgList& argIn) { } int ForLoop_overSets::BeginFor(DataSetList const& CurrentVars) { + // Go through list of names + List_.clear(); + for (Sarray::const_iterator it = Names_.begin(); it != Names_.end(); ++it) + { + std::string listEntry; + CurrentVars.ReplaceVariables(listEntry, *it); + DataSetList dsl = CurrentVars.SelectSets( listEntry ); + if (dsl.empty()) { + mprintf("Warning: '%s' selects no sets.\n", it->c_str()); + } else { + for (DataSetList::const_iterator ds = dsl.begin(); ds != dsl.end(); ++ds) + List_.push_back( (*ds)->Meta().PrintName() ); + } + } sdx_ = List_.begin(); return (int)List_.size(); } diff --git a/src/ForLoop_overSets.h b/src/ForLoop_overSets.h index d7033e3419..c3076b92da 100644 --- a/src/ForLoop_overSets.h +++ b/src/ForLoop_overSets.h @@ -14,6 +14,7 @@ class ForLoop_overSets : public ForLoop { bool EndFor(DataSetList&); private: typedef std::vector Sarray; + Sarray Names_; ///< List of non-expanded names Sarray List_; ///< List of data set names to iterate over. Sarray::const_iterator sdx_; ///< Iterator to current list item. }; From 6d27280f1054b1506c78bf67755afcb0fa161276 Mon Sep 17 00:00:00 2001 From: "Daniel R. Roe" Date: Fri, 17 Jan 2020 08:49:13 -0500 Subject: [PATCH 139/162] DRR - Enable label print for grace xydy. Update help. --- src/DataIO_Grace.cpp | 45 +++++++++++++++++++++++++++----------------- src/DataIO_Grace.h | 2 ++ 2 files changed, 30 insertions(+), 17 deletions(-) diff --git a/src/DataIO_Grace.cpp b/src/DataIO_Grace.cpp index d19878175b..0b7b824aa4 100644 --- a/src/DataIO_Grace.cpp +++ b/src/DataIO_Grace.cpp @@ -84,8 +84,9 @@ int DataIO_Grace::ReadData(FileName const& fname, } // ----------------------------------------------------------------------------- void DataIO_Grace::WriteHelp() { - mprintf("\tinvert: Flip X/Y axes.\n"); - mprintf("\txydy : Make consecutive sets into XYDY sets.\n"); + mprintf("\tinvert : Flip X/Y axes.\n" + "\txydy : Make consecutive sets into XYDY sets.\n" + "\t