20 for (CompMap::const_iterator
it =
v2.begin();
it !=
v2.end(); ++
it) {
22 out[nuc] +=
it->second;
29 for (CompMap::const_iterator
it =
v2.begin();
it !=
v2.end(); ++
it) {
31 out[nuc] -=
it->second;
37 std::vector<double>
vec;
38 vec.reserve(
v.size());
39 for (CompMap::const_iterator
it =
v.begin();
it !=
v.end(); ++
it) {
40 vec.push_back(
it->second);
48 ss <<
"The threshold cannot be negative. The value provided was '"
53 CompMap::iterator
it =
v->begin();
54 while (
it !=
v->end()) {
65 if (
sum != val &&
sum != 0) {
67 for (CompMap::iterator
it =
v->begin();
it !=
v->end(); ++
it) {
74 CompMap::const_iterator
it;
75 for (
it =
v.begin();
it !=
v.end(); ++
it) {
84 CompMap::const_iterator
it;
85 for (
it =
v.begin();
it !=
v.end(); ++
it) {
100 std::stringstream
ss;
101 ss <<
"The threshold cannot be negative. The value provided was '"
106 if (
v1.size() !=
v2.size()) {
108 }
else if (
v1.empty() &&
v2.empty()) {
115 CompMap::iterator
it;
118 if (
n2.count(nuc) == 0) {
static double KahanSum(std::vector< double > input)
sums the materials in the vector in an intelligent way, to avoid floating point issues.
For values that are too big, too small, etc.
Declares the CycArithmetic class, which holds arithmetic algorithms.
CompMap Sub(const CompMap &v1, const CompMap &v2)
Does component-wise subtraction of the nuclide quantities of v1 and v2 and returns the result.
bool AlmostEq(const CompMap &v1, const CompMap &v2, double threshold)
Returns true if all nuclides of v1 and v2 are the same within threshold.
void ApplyThreshold(CompMap *v, double threshold)
All nuclides with quantities below threshold will have their quantity set to zero.
CompMap Add(const CompMap &v1, const CompMap &v2)
Does component-wise subtraction of the nuclide quantities of v1 and v2 and returns the result.
double Sum(const CompMap &v)
Sums the quantities of all nuclides without normalization.
bool ValidNucs(const CompMap &v)
Returns true if all nuclide keys in v are valid.
bool AllPositive(const CompMap &v)
Returns true if all nuclides in v have quantities greater than or equal to zero.
void Normalize(CompMap *v, double val)
The sum of quantities of all nuclides of v is normalized to val.
taken directly from OsiSolverInterface.cpp on 2/17/14 from https://projects.coin-or....
std::map< Nuc, double > CompMap
a raw definition of nuclides and corresponding (dimensionless quantities).
T OptionalQuery(InfileTree *tree, std::string query, T default_val)
a query method for optional parameters
bool isnuclide(std::string nuc)