ProteoWizard
Classes | Functions
pwiz::data::diff_impl Namespace Reference

Classes

struct  HasID
class  Same
class  SameDeep

Functions

PWIZ_API_DECL void diff (const std::string &a, const std::string &b, std::string &a_b, std::string &b_a, const BaseDiffConfig &config)
PWIZ_API_DECL void diff_ids (const std::string &a, const std::string &b, std::string &a_b, std::string &b_a, const BaseDiffConfig &config)
PWIZ_API_DECL void diff (const boost::logic::tribool &a, const boost::logic::tribool &b, boost::logic::tribool &a_b, boost::logic::tribool &b_a, const BaseDiffConfig &config)
PWIZ_API_DECL void diff (const CV &a, const CV &b, CV &a_b, CV &b_a, const BaseDiffConfig &config)
PWIZ_API_DECL void diff (CVID a, CVID b, CVID &a_b, CVID &b_a, const BaseDiffConfig &config)
PWIZ_API_DECL void diff (const CVParam &a, const CVParam &b, CVParam &a_b, CVParam &b_a, const BaseDiffConfig &config)
PWIZ_API_DECL void diff (const UserParam &a, const UserParam &b, UserParam &a_b, UserParam &b_a, const BaseDiffConfig &config)
PWIZ_API_DECL void diff (const ParamContainer &a, const ParamContainer &b, ParamContainer &a_b, ParamContainer &b_a, const BaseDiffConfig &config)
PWIZ_API_DECL void diff (const ParamGroup &a, const ParamGroup &b, ParamGroup &a_b, ParamGroup &b_a, const BaseDiffConfig &config)
template<typename string_type >
void diff_string (const string_type &a, const string_type &b, string_type &a_b, string_type &b_a)
template<typename char_type >
void diff_char (const char_type &a, const char_type &b, char_type &a_b, char_type &b_a)
template<typename integral_type >
void diff_integral (const integral_type &a, const integral_type &b, integral_type &a_b, integral_type &b_a, const BaseDiffConfig &config)
template<typename floating_type >
void diff_floating (const floating_type &a, const floating_type &b, floating_type &a_b, floating_type &b_a, const BaseDiffConfig &config)
template<typename floating_type >
floating_type maxdiff (const std::vector< floating_type > &a, const std::vector< floating_type > &b)
 measure maximum relative difference between elements in the vectors
template<typename object_type >
void vector_diff (const std::vector< object_type > &a, const std::vector< object_type > &b, std::vector< object_type > &a_b, std::vector< object_type > &b_a)
template<typename object_type , typename config_type >
void vector_diff_diff (const std::vector< object_type > &a, const std::vector< object_type > &b, std::vector< object_type > &a_b, std::vector< object_type > &b_a, const config_type &config)
template<typename object_type , typename config_type >
void vector_diff_deep (const std::vector< boost::shared_ptr< object_type > > &a, const std::vector< boost::shared_ptr< object_type > > &b, std::vector< boost::shared_ptr< object_type > > &a_b, std::vector< boost::shared_ptr< object_type > > &b_a, const config_type &config)
template<typename object_type , typename config_type >
void ptr_diff (const boost::shared_ptr< object_type > &a, const boost::shared_ptr< object_type > &b, boost::shared_ptr< object_type > &a_b, boost::shared_ptr< object_type > &b_a, const config_type &config)
PWIZ_API_DECL void diff (const FragmentArray &a, const FragmentArray &b, FragmentArray &a_b, FragmentArray &b_a, const DiffConfig &config)
PWIZ_API_DECL void diff (const IonType &a, const IonType &b, IonType &a_b, IonType &b_a, const DiffConfig &config)
PWIZ_API_DECL void diff (const Measure &a, const Measure &b, Measure &a_b, Measure &b_a, const DiffConfig &config)
PWIZ_API_DECL void diff (const PeptideEvidence &a, const PeptideEvidence &b, PeptideEvidence &a_b, PeptideEvidence &b_a, const DiffConfig &config)
PWIZ_API_DECL void diff (const ProteinAmbiguityGroup &a, const ProteinAmbiguityGroup &b, ProteinAmbiguityGroup &a_b, ProteinAmbiguityGroup &b_a, const DiffConfig &config)
PWIZ_API_DECL void diff (const PeptideHypothesis &a, const PeptideHypothesis &b, PeptideHypothesis &a_b, PeptideHypothesis &b_a, const DiffConfig &config)
PWIZ_API_DECL void diff (const ProteinDetectionHypothesis &a, const ProteinDetectionHypothesis &b, ProteinDetectionHypothesis &a_b, ProteinDetectionHypothesis &b_a, const DiffConfig &config)
PWIZ_API_DECL void diff (const DataCollection &a, const DataCollection &b, DataCollection &a_b, DataCollection &b_a, const DiffConfig &config)
PWIZ_API_DECL void diff (const SpectrumIdentificationListPtr a, const SpectrumIdentificationListPtr b, SpectrumIdentificationListPtr a_b, SpectrumIdentificationListPtr b_a, const DiffConfig &config)
PWIZ_API_DECL void diff (const SpectrumIdentificationList &a, const SpectrumIdentificationList &b, SpectrumIdentificationList &a_b, SpectrumIdentificationList &b_a, const DiffConfig &config)
PWIZ_API_DECL void diff (const ProteinDetectionList &a, const ProteinDetectionList &b, ProteinDetectionList &a_b, ProteinDetectionList &b_a, const DiffConfig &config)
PWIZ_API_DECL void diff (const AnalysisData &a, const AnalysisData &b, AnalysisData &a_b, AnalysisData &b_a, const DiffConfig &config)
PWIZ_API_DECL void diff (const SearchDatabase &a, const SearchDatabase &b, SearchDatabase &a_b, SearchDatabase &b_a, const DiffConfig &config)
PWIZ_API_DECL void diff (const SpectraData &a, const SpectraData &b, SpectraData &a_b, SpectraData &b_a, const DiffConfig &config)
PWIZ_API_DECL void diff (const SourceFile &a, const SourceFile &b, SourceFile &a_b, SourceFile &b_a, const DiffConfig &config)
PWIZ_API_DECL void diff (const Inputs &a, const Inputs &b, Inputs &a_b, Inputs &b_a, const DiffConfig &config)
PWIZ_API_DECL void diff (const Enzyme &a, const Enzyme &b, Enzyme &a_b, Enzyme &b_a, const DiffConfig &config)
PWIZ_API_DECL void diff (const Enzymes &a, const Enzymes &b, Enzymes &a_b, Enzymes &b_a, const DiffConfig &config)
PWIZ_API_DECL void diff (const MassTable &a, const MassTable &b, MassTable &a_b, MassTable &b_a, const DiffConfig &config)
PWIZ_API_DECL void diff (const Residue &a, const Residue &b, Residue &a_b, Residue &b_a, const DiffConfig &config)
PWIZ_API_DECL void diff (const AmbiguousResidue &a, const AmbiguousResidue &b, AmbiguousResidue &a_b, AmbiguousResidue &b_a, const DiffConfig &config)
PWIZ_API_DECL void diff (const Filter &a, const Filter &b, Filter &a_b, Filter &b_a, const DiffConfig &config)
PWIZ_API_DECL void diff (const DatabaseTranslation &a, const DatabaseTranslation &b, DatabaseTranslation &a_b, DatabaseTranslation &b_a, const DiffConfig &config)
PWIZ_API_DECL void diff (const SpectrumIdentificationProtocol &a, const SpectrumIdentificationProtocol &b, SpectrumIdentificationProtocol &a_b, SpectrumIdentificationProtocol &b_a, const DiffConfig &config)
PWIZ_API_DECL void diff (const ProteinDetectionProtocol &a, const ProteinDetectionProtocol &b, ProteinDetectionProtocol &a_b, ProteinDetectionProtocol &b_a, const DiffConfig &config)
PWIZ_API_DECL void diff (const AnalysisProtocolCollection &a, const AnalysisProtocolCollection &b, AnalysisProtocolCollection &a_b, AnalysisProtocolCollection &b_a, const DiffConfig &config)
PWIZ_API_DECL void diff (const Contact &a, const Contact &b, Contact &a_b, Contact &b_a, const DiffConfig &config)
PWIZ_API_DECL void diff (const Person &a, const Person &b, Person &a_b, Person &b_a, const DiffConfig &config)
PWIZ_API_DECL void diff (const Organization &a, const Organization &b, Organization &a_b, Organization &b_a, const DiffConfig &config)
PWIZ_API_DECL void diff (const BibliographicReference &a, const BibliographicReference &b, BibliographicReference &a_b, BibliographicReference &b_a, const DiffConfig &config)
PWIZ_API_DECL void diff (const ProteinDetection &a, const ProteinDetection &b, ProteinDetection &a_b, ProteinDetection &b_a, const DiffConfig &config)
PWIZ_API_DECL void diff (const SpectrumIdentification &a, const SpectrumIdentification &b, SpectrumIdentification &a_b, SpectrumIdentification &b_a, const DiffConfig &config)
PWIZ_API_DECL void diff (const AnalysisCollection &a, const AnalysisCollection &b, AnalysisCollection &a_b, AnalysisCollection &b_a, const DiffConfig &config)
PWIZ_API_DECL void diff (const DBSequence &a, const DBSequence &b, DBSequence &a_b, DBSequence &b_a, const DiffConfig &config)
PWIZ_API_DECL void diff (const Modification &a, const Modification &b, Modification &a_b, Modification &b_a, const DiffConfig &config)
PWIZ_API_DECL void diff (const SubstitutionModification &a, const SubstitutionModification &b, SubstitutionModification &a_b, SubstitutionModification &b_a, const DiffConfig &config)
PWIZ_API_DECL void diff (const Peptide &a, const Peptide &b, Peptide &a_b, Peptide &b_a, const DiffConfig &config)
PWIZ_API_DECL void diff (const SequenceCollection &a, const SequenceCollection &b, SequenceCollection &a_b, SequenceCollection &b_a, const DiffConfig &config)
PWIZ_API_DECL void diff (const Sample &a, const Sample &b, Sample &a_b, Sample &b_a, const DiffConfig &config)
PWIZ_API_DECL void diff (const SearchModification &a, const SearchModification &b, SearchModification &a_b, SearchModification &b_a, const DiffConfig &config)
PWIZ_API_DECL void diff (const SpectrumIdentificationItem &a, const SpectrumIdentificationItem &b, SpectrumIdentificationItem &a_b, SpectrumIdentificationItem &b_a, const DiffConfig &config)
PWIZ_API_DECL void diff (const SpectrumIdentificationResult &a, const SpectrumIdentificationResult &b, SpectrumIdentificationResult &a_b, SpectrumIdentificationResult &b_a, const DiffConfig &config)
PWIZ_API_DECL void diff (const AnalysisSampleCollection &a, const AnalysisSampleCollection &b, AnalysisSampleCollection &a_b, AnalysisSampleCollection &b_a, const DiffConfig &config)
PWIZ_API_DECL void diff (const Provider &a, const Provider &b, Provider &a_b, Provider &b_a, const DiffConfig &config)
PWIZ_API_DECL void diff (const ContactRole &a, const ContactRole &b, ContactRole &a_b, ContactRole &b_a, const DiffConfig &config)
PWIZ_API_DECL void diff (const AnalysisSoftware &a, const AnalysisSoftware &b, AnalysisSoftware &a_b, AnalysisSoftware &b_a, const DiffConfig &config)
PWIZ_API_DECL void diff (const IdentData &a, const IdentData &b, IdentData &a_b, IdentData &b_a, const DiffConfig &config)
PWIZ_API_DECL void diff (const Identifiable &a, const Identifiable &b, Identifiable &a_b, Identifiable &b_a, const DiffConfig &config)
PWIZ_API_DECL void diff (const IdentifiableParamContainer &a, const IdentifiableParamContainer &b, IdentifiableParamContainer &a_b, IdentifiableParamContainer &b_a, const DiffConfig &config)
PWIZ_API_DECL void diff (const FileDescription &a, const FileDescription &b, FileDescription &a_b, FileDescription &b_a, const DiffConfig &config)
PWIZ_API_DECL void diff (const Component &a, const Component &b, Component &a_b, Component &b_a, const DiffConfig &config)
PWIZ_API_DECL void diff (const ComponentList &a, const ComponentList &b, ComponentList &a_b, ComponentList &b_a, const DiffConfig &config)
PWIZ_API_DECL void diff (const Software &a, const Software &b, Software &a_b, Software &b_a, const DiffConfig &config)
PWIZ_API_DECL void diff (const InstrumentConfiguration &a, const InstrumentConfiguration &b, InstrumentConfiguration &a_b, InstrumentConfiguration &b_a, const DiffConfig &config)
PWIZ_API_DECL void diff (const ProcessingMethod &a, const ProcessingMethod &b, ProcessingMethod &a_b, ProcessingMethod &b_a, const DiffConfig &config)
PWIZ_API_DECL void diff (const DataProcessing &a, const DataProcessing &b, DataProcessing &a_b, DataProcessing &b_a, const DiffConfig &config)
PWIZ_API_DECL void diff (const ScanSettings &a, const ScanSettings &b, ScanSettings &a_b, ScanSettings &b_a, const DiffConfig &config)
PWIZ_API_DECL void diff (const Precursor &a, const Precursor &b, Precursor &a_b, Precursor &b_a, const DiffConfig &config)
PWIZ_API_DECL void diff (const Product &a, const Product &b, Product &a_b, Product &b_a, const DiffConfig &config)
PWIZ_API_DECL void diff (const Scan &a, const Scan &b, Scan &a_b, Scan &b_a, const DiffConfig &config)
PWIZ_API_DECL void diff (const ScanList &a, const ScanList &b, ScanList &a_b, ScanList &b_a, const DiffConfig &config)
PWIZ_API_DECL void diff (const BinaryDataArray &a, const BinaryDataArray &b, BinaryDataArray &a_b, BinaryDataArray &b_a, const DiffConfig &config)
PWIZ_API_DECL void diff (const Spectrum &a, const Spectrum &b, Spectrum &a_b, Spectrum &b_a, const DiffConfig &config)
PWIZ_API_DECL void diff (const Chromatogram &a, const Chromatogram &b, Chromatogram &a_b, Chromatogram &b_a, const DiffConfig &config)
PWIZ_API_DECL void diff (const SpectrumList &a, const SpectrumList &b, SpectrumListSimple &a_b, SpectrumListSimple &b_a, const DiffConfig &config)
PWIZ_API_DECL void diff (const ChromatogramList &a, const ChromatogramList &b, ChromatogramListSimple &a_b, ChromatogramListSimple &b_a, const DiffConfig &config)
PWIZ_API_DECL void diff (const Run &a, const Run &b, Run &a_b, Run &b_a, const DiffConfig &config)
PWIZ_API_DECL void diff (const MSData &a, const MSData &b, MSData &a_b, MSData &b_a, const DiffConfig &config)
PWIZ_API_DECL void diff (const ProteinList &a, const ProteinList &b, ProteinListSimple &a_b, ProteinListSimple &b_a, const DiffConfig &config)
PWIZ_API_DECL void diff (const ProteomeData &a, const ProteomeData &b, ProteomeData &a_b, ProteomeData &b_a, const DiffConfig &config)
PWIZ_API_DECL void diff (const Publication &a, const Publication &b, Publication &a_b, Publication &b_a, const DiffConfig &config)
PWIZ_API_DECL void diff (const RetentionTime &a, const RetentionTime &b, RetentionTime &a_b, RetentionTime &b_a, const DiffConfig &config)
PWIZ_API_DECL void diff (const Prediction &a, const Prediction &b, Prediction &a_b, Prediction &b_a, const DiffConfig &config)
PWIZ_API_DECL void diff (const Evidence &a, const Evidence &b, Evidence &a_b, Evidence &b_a, const DiffConfig &config)
PWIZ_API_DECL void diff (const Validation &a, const Validation &b, Validation &a_b, Validation &b_a, const DiffConfig &config)
PWIZ_API_DECL void diff (const Instrument &a, const Instrument &b, Instrument &a_b, Instrument &b_a, const DiffConfig &config)
PWIZ_API_DECL void diff (const Configuration &a, const Configuration &b, Configuration &a_b, Configuration &b_a, const DiffConfig &config)
PWIZ_API_DECL void diff (const Interpretation &a, const Interpretation &b, Interpretation &a_b, Interpretation &b_a, const DiffConfig &config)
PWIZ_API_DECL void diff (const Protein &a, const Protein &b, Protein &a_b, Protein &b_a, const DiffConfig &config)
PWIZ_API_DECL void diff (const Compound &a, const Compound &b, Compound &a_b, Compound &b_a, const DiffConfig &config)
PWIZ_API_DECL void diff (const Transition &a, const Transition &b, Transition &a_b, Transition &b_a, const DiffConfig &config)
PWIZ_API_DECL void diff (const Target &a, const Target &b, Target &a_b, Target &b_a, const DiffConfig &config)
PWIZ_API_DECL void diff (const TraData &a, const TraData &b, TraData &a_b, TraData &b_a, const DiffConfig &config)

Function Documentation

PWIZ_API_DECL void pwiz::data::diff_impl::diff ( const std::string &  a,
const std::string &  b,
std::string &  a_b,
std::string &  b_a,
const BaseDiffConfig &  config 
)

Referenced by ptr_diff().

PWIZ_API_DECL void pwiz::data::diff_impl::diff_ids ( const std::string &  a,
const std::string &  b,
std::string &  a_b,
std::string &  b_a,
const BaseDiffConfig &  config 
)
PWIZ_API_DECL void pwiz::data::diff_impl::diff ( const boost::logic::tribool &  a,
const boost::logic::tribool &  b,
boost::logic::tribool &  a_b,
boost::logic::tribool &  b_a,
const BaseDiffConfig &  config 
)
PWIZ_API_DECL void pwiz::data::diff_impl::diff ( const CV &  a,
const CV &  b,
CV &  a_b,
CV &  b_a,
const BaseDiffConfig &  config 
)
PWIZ_API_DECL void pwiz::data::diff_impl::diff ( CVID  a,
CVID  b,
CVID &  a_b,
CVID &  b_a,
const BaseDiffConfig &  config 
)
PWIZ_API_DECL void pwiz::data::diff_impl::diff ( const CVParam &  a,
const CVParam &  b,
CVParam &  a_b,
CVParam &  b_a,
const BaseDiffConfig &  config 
)
PWIZ_API_DECL void pwiz::data::diff_impl::diff ( const UserParam &  a,
const UserParam &  b,
UserParam &  a_b,
UserParam &  b_a,
const BaseDiffConfig &  config 
)
PWIZ_API_DECL void pwiz::data::diff_impl::diff ( const ParamContainer &  a,
const ParamContainer &  b,
ParamContainer &  a_b,
ParamContainer &  b_a,
const BaseDiffConfig &  config 
)
PWIZ_API_DECL void pwiz::data::diff_impl::diff ( const ParamGroup &  a,
const ParamGroup &  b,
ParamGroup &  a_b,
ParamGroup &  b_a,
const BaseDiffConfig &  config 
)
template<typename string_type >
void pwiz::data::diff_impl::diff_string ( const string_type &  a,
const string_type &  b,
string_type &  a_b,
string_type &  b_a 
)

Definition at line 224 of file diff_std.hpp.

{
a_b.clear();
b_a.clear();
if (a != b)
{
a_b = a;
b_a = b;
}
}
template<typename char_type >
void pwiz::data::diff_impl::diff_char ( const char_type &  a,
const char_type &  b,
char_type &  a_b,
char_type &  b_a 
)

Definition at line 241 of file diff_std.hpp.

{
a_b = 0;
b_a = 0;
if (a != b)
{
a_b = a;
b_a = b;
}
}
template<typename integral_type >
void pwiz::data::diff_impl::diff_integral ( const integral_type &  a,
const integral_type &  b,
integral_type &  a_b,
integral_type &  b_a,
const BaseDiffConfig &  config 
)

Definition at line 258 of file diff_std.hpp.

Referenced by testIntegralReally().

{
a_b = integral_type();
b_a = integral_type();
if (a != b)
{
a_b = static_cast<integral_type>(a);
b_a = static_cast<integral_type>(b);
}
}
template<typename floating_type >
void pwiz::data::diff_impl::diff_floating ( const floating_type &  a,
const floating_type &  b,
floating_type &  a_b,
floating_type &  b_a,
const BaseDiffConfig &  config 
)

Definition at line 276 of file diff_std.hpp.

References epsilon, and pwiz::data::BaseDiffConfig::precision.

Referenced by testFloating().

{
a_b = 0;
b_a = 0;
if (fabs(a - b) > config.precision + std::numeric_limits<floating_type>::epsilon())
{
a_b = fabs(a - b);
b_a = fabs(a - b);
}
}
template<typename floating_type >
floating_type pwiz::data::diff_impl::maxdiff ( const std::vector< floating_type > &  a,
const std::vector< floating_type > &  b 
)

measure maximum relative difference between elements in the vectors

Definition at line 295 of file diff_std.hpp.

References max(), and min().

{
if (a.size() != b.size())
throw std::runtime_error("[Diff::maxdiff()] Sizes differ.");
typename std::vector<floating_type>::const_iterator i = a.begin();
typename std::vector<floating_type>::const_iterator j = b.begin();
floating_type max = 0;
for (; i!=a.end(); ++i, ++j)
{
floating_type denominator = std::min(*i, *j);
if (denominator == 0) denominator = 1;
floating_type current = fabs(*i - *j)/denominator;
if (max < current) max = current;
}
return max;
}
template<typename object_type >
void pwiz::data::diff_impl::vector_diff ( const std::vector< object_type > &  a,
const std::vector< object_type > &  b,
std::vector< object_type > &  a_b,
std::vector< object_type > &  b_a 
)

Definition at line 319 of file diff_std.hpp.

{
// calculate set differences of two vectors
a_b.clear();
b_a.clear();
for (typename std::vector<object_type>::const_iterator it=a.begin(); it!=a.end(); ++it)
if (std::find(b.begin(), b.end(), *it) == b.end())
a_b.push_back(*it);
for (typename std::vector<object_type>::const_iterator it=b.begin(); it!=b.end(); ++it)
if (std::find(a.begin(), a.end(), *it) == a.end())
b_a.push_back(*it);
}
template<typename object_type , typename config_type >
void pwiz::data::diff_impl::vector_diff_diff ( const std::vector< object_type > &  a,
const std::vector< object_type > &  b,
std::vector< object_type > &  a_b,
std::vector< object_type > &  b_a,
const config_type &  config 
)

Definition at line 371 of file diff_std.hpp.

{
// calculate set differences of two vectors, using diff on each object
a_b.clear();
b_a.clear();
for (typename std::vector<object_type>::const_iterator it=a.begin(); it!=a.end(); ++it)
if (std::find_if(b.begin(), b.end(), Same<object_type, config_type>(*it, config)) == b.end())
a_b.push_back(*it);
for (typename std::vector<object_type>::const_iterator it=b.begin(); it!=b.end(); ++it)
if (std::find_if(a.begin(), a.end(), Same<object_type, config_type>(*it, config)) == a.end())
b_a.push_back(*it);
}
template<typename object_type , typename config_type >
void pwiz::data::diff_impl::vector_diff_deep ( const std::vector< boost::shared_ptr< object_type > > &  a,
const std::vector< boost::shared_ptr< object_type > > &  b,
std::vector< boost::shared_ptr< object_type > > &  a_b,
std::vector< boost::shared_ptr< object_type > > &  b_a,
const config_type &  config 
)

Definition at line 415 of file diff_std.hpp.

{
// calculate set differences of two vectors of ObjectPtrs (deep compare using diff)
a_b.clear();
b_a.clear();
config_type quick_config(config);
quick_config.partialDiffOK = true; // for fastest check in SameDeep
for (typename std::vector< boost::shared_ptr<object_type> >::const_iterator it=a.begin(); it!=a.end(); ++it)
if (std::find_if(b.begin(), b.end(), SameDeep<object_type, config_type>(**it, quick_config)) == b.end())
a_b.push_back(*it);
for (typename std::vector< boost::shared_ptr<object_type> >::const_iterator it=b.begin(); it!=b.end(); ++it)
if (std::find_if(a.begin(), a.end(), SameDeep<object_type, config_type>(**it, quick_config)) == a.end())
b_a.push_back(*it);
}
template<typename object_type , typename config_type >
void pwiz::data::diff_impl::ptr_diff ( const boost::shared_ptr< object_type > &  a,
const boost::shared_ptr< object_type > &  b,
boost::shared_ptr< object_type > &  a_b,
boost::shared_ptr< object_type > &  b_a,
const config_type &  config 
)

Definition at line 440 of file diff_std.hpp.

References diff().

{
if (!a.get() && !b.get()) return;
boost::shared_ptr<object_type> a_temp = a.get() ? a : boost::shared_ptr<object_type>(new object_type);
boost::shared_ptr<object_type> b_temp = b.get() ? b : boost::shared_ptr<object_type>(new object_type);
if (!a_b.get()) a_b = boost::shared_ptr<object_type>(new object_type);
if (!b_a.get()) b_a = boost::shared_ptr<object_type>(new object_type);
diff(*a_temp, *b_temp, *a_b, *b_a, config);
if (a_b->empty()) a_b = boost::shared_ptr<object_type>();
if (b_a->empty()) b_a = boost::shared_ptr<object_type>();
}
PWIZ_API_DECL void pwiz::data::diff_impl::diff ( const FragmentArray &  a,
const FragmentArray &  b,
FragmentArray &  a_b,
FragmentArray &  b_a,
const DiffConfig &  config 
)
PWIZ_API_DECL void pwiz::data::diff_impl::diff ( const IonType &  a,
const IonType &  b,
IonType &  a_b,
IonType &  b_a,
const DiffConfig &  config 
)
PWIZ_API_DECL void pwiz::data::diff_impl::diff ( const Measure &  a,
const Measure &  b,
Measure &  a_b,
Measure &  b_a,
const DiffConfig &  config 
)
PWIZ_API_DECL void pwiz::data::diff_impl::diff ( const PeptideEvidence &  a,
const PeptideEvidence &  b,
PeptideEvidence &  a_b,
PeptideEvidence &  b_a,
const DiffConfig &  config 
)
PWIZ_API_DECL void pwiz::data::diff_impl::diff ( const ProteinAmbiguityGroup &  a,
const ProteinAmbiguityGroup &  b,
ProteinAmbiguityGroup &  a_b,
ProteinAmbiguityGroup &  b_a,
const DiffConfig &  config 
)
PWIZ_API_DECL void pwiz::data::diff_impl::diff ( const PeptideHypothesis &  a,
const PeptideHypothesis &  b,
PeptideHypothesis &  a_b,
PeptideHypothesis &  b_a,
const DiffConfig &  config 
)
PWIZ_API_DECL void pwiz::data::diff_impl::diff ( const ProteinDetectionHypothesis &  a,
const ProteinDetectionHypothesis &  b,
ProteinDetectionHypothesis &  a_b,
ProteinDetectionHypothesis &  b_a,
const DiffConfig &  config 
)
PWIZ_API_DECL void pwiz::data::diff_impl::diff ( const DataCollection &  a,
const DataCollection &  b,
DataCollection &  a_b,
DataCollection &  b_a,
const DiffConfig &  config 
)
PWIZ_API_DECL void pwiz::data::diff_impl::diff ( const SpectrumIdentificationListPtr  a,
const SpectrumIdentificationListPtr  b,
SpectrumIdentificationListPtr  a_b,
SpectrumIdentificationListPtr  b_a,
const DiffConfig &  config 
)
PWIZ_API_DECL void pwiz::data::diff_impl::diff ( const SpectrumIdentificationList &  a,
const SpectrumIdentificationList &  b,
SpectrumIdentificationList &  a_b,
SpectrumIdentificationList &  b_a,
const DiffConfig &  config 
)
PWIZ_API_DECL void pwiz::data::diff_impl::diff ( const ProteinDetectionList &  a,
const ProteinDetectionList &  b,
ProteinDetectionList &  a_b,
ProteinDetectionList &  b_a,
const DiffConfig &  config 
)
PWIZ_API_DECL void pwiz::data::diff_impl::diff ( const AnalysisData &  a,
const AnalysisData &  b,
AnalysisData &  a_b,
AnalysisData &  b_a,
const DiffConfig &  config 
)
PWIZ_API_DECL void pwiz::data::diff_impl::diff ( const SearchDatabase &  a,
const SearchDatabase &  b,
SearchDatabase &  a_b,
SearchDatabase &  b_a,
const DiffConfig &  config 
)
PWIZ_API_DECL void pwiz::data::diff_impl::diff ( const SpectraData &  a,
const SpectraData &  b,
SpectraData &  a_b,
SpectraData &  b_a,
const DiffConfig &  config 
)
PWIZ_API_DECL void pwiz::data::diff_impl::diff ( const SourceFile &  a,
const SourceFile &  b,
SourceFile &  a_b,
SourceFile &  b_a,
const DiffConfig &  config 
)
PWIZ_API_DECL void pwiz::data::diff_impl::diff ( const Inputs &  a,
const Inputs &  b,
Inputs &  a_b,
Inputs &  b_a,
const DiffConfig &  config 
)
PWIZ_API_DECL void pwiz::data::diff_impl::diff ( const Enzyme &  a,
const Enzyme &  b,
Enzyme &  a_b,
Enzyme &  b_a,
const DiffConfig &  config 
)
PWIZ_API_DECL void pwiz::data::diff_impl::diff ( const Enzymes &  a,
const Enzymes &  b,
Enzymes &  a_b,
Enzymes &  b_a,
const DiffConfig &  config 
)
PWIZ_API_DECL void pwiz::data::diff_impl::diff ( const MassTable &  a,
const MassTable &  b,
MassTable &  a_b,
MassTable &  b_a,
const DiffConfig &  config 
)
PWIZ_API_DECL void pwiz::data::diff_impl::diff ( const Residue &  a,
const Residue &  b,
Residue &  a_b,
Residue &  b_a,
const DiffConfig &  config 
)
PWIZ_API_DECL void pwiz::data::diff_impl::diff ( const AmbiguousResidue &  a,
const AmbiguousResidue &  b,
AmbiguousResidue &  a_b,
AmbiguousResidue &  b_a,
const DiffConfig &  config 
)
PWIZ_API_DECL void pwiz::data::diff_impl::diff ( const Filter &  a,
const Filter &  b,
Filter &  a_b,
Filter &  b_a,
const DiffConfig &  config 
)
PWIZ_API_DECL void pwiz::data::diff_impl::diff ( const DatabaseTranslation &  a,
const DatabaseTranslation &  b,
DatabaseTranslation &  a_b,
DatabaseTranslation &  b_a,
const DiffConfig &  config 
)
PWIZ_API_DECL void pwiz::data::diff_impl::diff ( const SpectrumIdentificationProtocol &  a,
const SpectrumIdentificationProtocol &  b,
SpectrumIdentificationProtocol &  a_b,
SpectrumIdentificationProtocol &  b_a,
const DiffConfig &  config 
)
PWIZ_API_DECL void pwiz::data::diff_impl::diff ( const ProteinDetectionProtocol &  a,
const ProteinDetectionProtocol &  b,
ProteinDetectionProtocol &  a_b,
ProteinDetectionProtocol &  b_a,
const DiffConfig &  config 
)
PWIZ_API_DECL void pwiz::data::diff_impl::diff ( const AnalysisProtocolCollection &  a,
const AnalysisProtocolCollection &  b,
AnalysisProtocolCollection &  a_b,
AnalysisProtocolCollection &  b_a,
const DiffConfig &  config 
)
PWIZ_API_DECL void pwiz::data::diff_impl::diff ( const Contact &  a,
const Contact &  b,
Contact &  a_b,
Contact &  b_a,
const DiffConfig &  config 
)
PWIZ_API_DECL void pwiz::data::diff_impl::diff ( const Person &  a,
const Person &  b,
Person &  a_b,
Person &  b_a,
const DiffConfig &  config 
)
PWIZ_API_DECL void pwiz::data::diff_impl::diff ( const Organization &  a,
const Organization &  b,
Organization &  a_b,
Organization &  b_a,
const DiffConfig &  config 
)
PWIZ_API_DECL void pwiz::data::diff_impl::diff ( const BibliographicReference &  a,
const BibliographicReference &  b,
BibliographicReference &  a_b,
BibliographicReference &  b_a,
const DiffConfig &  config 
)
PWIZ_API_DECL void pwiz::data::diff_impl::diff ( const ProteinDetection &  a,
const ProteinDetection &  b,
ProteinDetection &  a_b,
ProteinDetection &  b_a,
const DiffConfig &  config 
)
PWIZ_API_DECL void pwiz::data::diff_impl::diff ( const SpectrumIdentification &  a,
const SpectrumIdentification &  b,
SpectrumIdentification &  a_b,
SpectrumIdentification &  b_a,
const DiffConfig &  config 
)
PWIZ_API_DECL void pwiz::data::diff_impl::diff ( const AnalysisCollection &  a,
const AnalysisCollection &  b,
AnalysisCollection &  a_b,
AnalysisCollection &  b_a,
const DiffConfig &  config 
)
PWIZ_API_DECL void pwiz::data::diff_impl::diff ( const DBSequence &  a,
const DBSequence &  b,
DBSequence &  a_b,
DBSequence &  b_a,
const DiffConfig &  config 
)
PWIZ_API_DECL void pwiz::data::diff_impl::diff ( const Modification &  a,
const Modification &  b,
Modification &  a_b,
Modification &  b_a,
const DiffConfig &  config 
)
PWIZ_API_DECL void pwiz::data::diff_impl::diff ( const SubstitutionModification &  a,
const SubstitutionModification &  b,
SubstitutionModification &  a_b,
SubstitutionModification &  b_a,
const DiffConfig &  config 
)
PWIZ_API_DECL void pwiz::data::diff_impl::diff ( const Peptide &  a,
const Peptide &  b,
Peptide &  a_b,
Peptide &  b_a,
const DiffConfig &  config 
)
PWIZ_API_DECL void pwiz::data::diff_impl::diff ( const SequenceCollection &  a,
const SequenceCollection &  b,
SequenceCollection &  a_b,
SequenceCollection &  b_a,
const DiffConfig &  config 
)
PWIZ_API_DECL void pwiz::data::diff_impl::diff ( const Sample &  a,
const Sample &  b,
Sample &  a_b,
Sample &  b_a,
const DiffConfig &  config 
)
PWIZ_API_DECL void pwiz::data::diff_impl::diff ( const SearchModification &  a,
const SearchModification &  b,
SearchModification &  a_b,
SearchModification &  b_a,
const DiffConfig &  config 
)
PWIZ_API_DECL void pwiz::data::diff_impl::diff ( const SpectrumIdentificationItem &  a,
const SpectrumIdentificationItem &  b,
SpectrumIdentificationItem &  a_b,
SpectrumIdentificationItem &  b_a,
const DiffConfig &  config 
)
PWIZ_API_DECL void pwiz::data::diff_impl::diff ( const SpectrumIdentificationResult &  a,
const SpectrumIdentificationResult &  b,
SpectrumIdentificationResult &  a_b,
SpectrumIdentificationResult &  b_a,
const DiffConfig &  config 
)
PWIZ_API_DECL void pwiz::data::diff_impl::diff ( const AnalysisSampleCollection &  a,
const AnalysisSampleCollection &  b,
AnalysisSampleCollection &  a_b,
AnalysisSampleCollection &  b_a,
const DiffConfig &  config 
)
PWIZ_API_DECL void pwiz::data::diff_impl::diff ( const Provider &  a,
const Provider &  b,
Provider &  a_b,
Provider &  b_a,
const DiffConfig &  config 
)
PWIZ_API_DECL void pwiz::data::diff_impl::diff ( const ContactRole &  a,
const ContactRole &  b,
ContactRole &  a_b,
ContactRole &  b_a,
const DiffConfig &  config 
)
PWIZ_API_DECL void pwiz::data::diff_impl::diff ( const AnalysisSoftware &  a,
const AnalysisSoftware &  b,
AnalysisSoftware &  a_b,
AnalysisSoftware &  b_a,
const DiffConfig &  config 
)
PWIZ_API_DECL void pwiz::data::diff_impl::diff ( const IdentData &  a,
const IdentData &  b,
IdentData &  a_b,
IdentData &  b_a,
const DiffConfig &  config 
)
PWIZ_API_DECL void pwiz::data::diff_impl::diff ( const Identifiable &  a,
const Identifiable &  b,
Identifiable &  a_b,
Identifiable &  b_a,
const DiffConfig &  config 
)
PWIZ_API_DECL void pwiz::data::diff_impl::diff ( const IdentifiableParamContainer &  a,
const IdentifiableParamContainer &  b,
IdentifiableParamContainer &  a_b,
IdentifiableParamContainer &  b_a,
const DiffConfig &  config 
)
PWIZ_API_DECL void pwiz::data::diff_impl::diff ( const FileDescription &  a,
const FileDescription &  b,
FileDescription &  a_b,
FileDescription &  b_a,
const DiffConfig &  config 
)
PWIZ_API_DECL void pwiz::data::diff_impl::diff ( const Component &  a,
const Component &  b,
Component &  a_b,
Component &  b_a,
const DiffConfig &  config 
)
PWIZ_API_DECL void pwiz::data::diff_impl::diff ( const ComponentList &  a,
const ComponentList &  b,
ComponentList &  a_b,
ComponentList &  b_a,
const DiffConfig &  config 
)
PWIZ_API_DECL void pwiz::data::diff_impl::diff ( const Software &  a,
const Software &  b,
Software &  a_b,
Software &  b_a,
const DiffConfig &  config 
)
PWIZ_API_DECL void pwiz::data::diff_impl::diff ( const InstrumentConfiguration &  a,
const InstrumentConfiguration &  b,
InstrumentConfiguration &  a_b,
InstrumentConfiguration &  b_a,
const DiffConfig &  config 
)
PWIZ_API_DECL void pwiz::data::diff_impl::diff ( const ProcessingMethod &  a,
const ProcessingMethod &  b,
ProcessingMethod &  a_b,
ProcessingMethod &  b_a,
const DiffConfig &  config 
)
PWIZ_API_DECL void pwiz::data::diff_impl::diff ( const DataProcessing &  a,
const DataProcessing &  b,
DataProcessing &  a_b,
DataProcessing &  b_a,
const DiffConfig &  config 
)
PWIZ_API_DECL void pwiz::data::diff_impl::diff ( const ScanSettings &  a,
const ScanSettings &  b,
ScanSettings &  a_b,
ScanSettings &  b_a,
const DiffConfig &  config 
)
PWIZ_API_DECL void pwiz::data::diff_impl::diff ( const Precursor &  a,
const Precursor &  b,
Precursor &  a_b,
Precursor &  b_a,
const DiffConfig &  config 
)
PWIZ_API_DECL void pwiz::data::diff_impl::diff ( const Product &  a,
const Product &  b,
Product &  a_b,
Product &  b_a,
const DiffConfig &  config 
)
PWIZ_API_DECL void pwiz::data::diff_impl::diff ( const Scan &  a,
const Scan &  b,
Scan &  a_b,
Scan &  b_a,
const DiffConfig &  config 
)
PWIZ_API_DECL void pwiz::data::diff_impl::diff ( const ScanList &  a,
const ScanList &  b,
ScanList &  a_b,
ScanList &  b_a,
const DiffConfig &  config 
)
PWIZ_API_DECL void pwiz::data::diff_impl::diff ( const BinaryDataArray &  a,
const BinaryDataArray &  b,
BinaryDataArray &  a_b,
BinaryDataArray &  b_a,
const DiffConfig &  config 
)
PWIZ_API_DECL void pwiz::data::diff_impl::diff ( const Spectrum &  a,
const Spectrum &  b,
Spectrum &  a_b,
Spectrum &  b_a,
const DiffConfig &  config 
)
PWIZ_API_DECL void pwiz::data::diff_impl::diff ( const Chromatogram &  a,
const Chromatogram &  b,
Chromatogram &  a_b,
Chromatogram &  b_a,
const DiffConfig &  config 
)
PWIZ_API_DECL void pwiz::data::diff_impl::diff ( const SpectrumList &  a,
const SpectrumList &  b,
SpectrumListSimple &  a_b,
SpectrumListSimple &  b_a,
const DiffConfig &  config 
)
PWIZ_API_DECL void pwiz::data::diff_impl::diff ( const ChromatogramList &  a,
const ChromatogramList &  b,
ChromatogramListSimple &  a_b,
ChromatogramListSimple &  b_a,
const DiffConfig &  config 
)
PWIZ_API_DECL void pwiz::data::diff_impl::diff ( const Run &  a,
const Run &  b,
Run &  a_b,
Run &  b_a,
const DiffConfig &  config 
)
PWIZ_API_DECL void pwiz::data::diff_impl::diff ( const MSData &  a,
const MSData &  b,
MSData &  a_b,
MSData &  b_a,
const DiffConfig &  config 
)
PWIZ_API_DECL void pwiz::data::diff_impl::diff ( const ProteinList &  a,
const ProteinList &  b,
ProteinListSimple &  a_b,
ProteinListSimple &  b_a,
const DiffConfig &  config 
)
PWIZ_API_DECL void pwiz::data::diff_impl::diff ( const ProteomeData &  a,
const ProteomeData &  b,
ProteomeData &  a_b,
ProteomeData &  b_a,
const DiffConfig &  config 
)
PWIZ_API_DECL void pwiz::data::diff_impl::diff ( const Publication &  a,
const Publication &  b,
Publication &  a_b,
Publication &  b_a,
const DiffConfig &  config 
)
PWIZ_API_DECL void pwiz::data::diff_impl::diff ( const RetentionTime &  a,
const RetentionTime &  b,
RetentionTime &  a_b,
RetentionTime &  b_a,
const DiffConfig &  config 
)
PWIZ_API_DECL void pwiz::data::diff_impl::diff ( const Prediction &  a,
const Prediction &  b,
Prediction &  a_b,
Prediction &  b_a,
const DiffConfig &  config 
)
PWIZ_API_DECL void pwiz::data::diff_impl::diff ( const Evidence &  a,
const Evidence &  b,
Evidence &  a_b,
Evidence &  b_a,
const DiffConfig &  config 
)
PWIZ_API_DECL void pwiz::data::diff_impl::diff ( const Validation &  a,
const Validation &  b,
Validation &  a_b,
Validation &  b_a,
const DiffConfig &  config 
)
PWIZ_API_DECL void pwiz::data::diff_impl::diff ( const Instrument &  a,
const Instrument &  b,
Instrument &  a_b,
Instrument &  b_a,
const DiffConfig &  config 
)
PWIZ_API_DECL void pwiz::data::diff_impl::diff ( const Configuration &  a,
const Configuration &  b,
Configuration &  a_b,
Configuration &  b_a,
const DiffConfig &  config 
)
PWIZ_API_DECL void pwiz::data::diff_impl::diff ( const Interpretation &  a,
const Interpretation &  b,
Interpretation &  a_b,
Interpretation &  b_a,
const DiffConfig &  config 
)
PWIZ_API_DECL void pwiz::data::diff_impl::diff ( const Protein &  a,
const Protein &  b,
Protein &  a_b,
Protein &  b_a,
const DiffConfig &  config 
)
PWIZ_API_DECL void pwiz::data::diff_impl::diff ( const Compound &  a,
const Compound &  b,
Compound &  a_b,
Compound &  b_a,
const DiffConfig &  config 
)
PWIZ_API_DECL void pwiz::data::diff_impl::diff ( const Transition &  a,
const Transition &  b,
Transition &  a_b,
Transition &  b_a,
const DiffConfig &  config 
)
PWIZ_API_DECL void pwiz::data::diff_impl::diff ( const Target &  a,
const Target &  b,
Target &  a_b,
Target &  b_a,
const DiffConfig &  config 
)
PWIZ_API_DECL void pwiz::data::diff_impl::diff ( const TraData &  a,
const TraData &  b,
TraData &  a_b,
TraData &  b_a,
const DiffConfig &  config 
)