Factor: improve factor multiplication

Pass the argument as reference-to-const and also allow chaining of multiplications.
This commit is contained in:
Tiago Gomes
2013-03-21 21:49:12 +00:00
parent 6da2580c8f
commit a2e54a235a
4 changed files with 11 additions and 8 deletions

View File

@@ -82,15 +82,15 @@ GenericFactor<T>::operator[] (size_t idx)
template <typename T> void
GenericFactor<T>::multiply (GenericFactor<T>& g)
template <typename T> GenericFactor<T>&
GenericFactor<T>::multiply (const GenericFactor<T>& g)
{
if (args_ == g.arguments()) {
// optimization
Globals::logDomain
? params_ += g.params()
: params_ *= g.params();
return;
return *this;
}
unsigned range_prod = 1;
bool share_arguments = false;
@@ -124,6 +124,7 @@ GenericFactor<T>::multiply (GenericFactor<T>& g)
}
}
}
return *this;
}