| 98 | } |
| 99 | |
| 100 | template <class T> T |
| 101 | DL_FixedBasePrecomputationImpl<T>::CascadeExponentiate(const DL_GroupPrecomputation<Element> &group, const Integer &exponent, |
| 102 | const DL_FixedBasePrecomputation<T> &i_pc2, const Integer &exponent2) const |
| 103 | { |
| 104 | std::vector<BaseAndExponent<Element> > eb; // array of segments of the exponent and precalculated bases |
| 105 | const DL_FixedBasePrecomputationImpl<T> &pc2 = static_cast<const DL_FixedBasePrecomputationImpl<T> &>(i_pc2); |
| 106 | eb.reserve(m_bases.size() + pc2.m_bases.size()); |
| 107 | PrepareCascade(group, eb, exponent); |
| 108 | pc2.PrepareCascade(group, eb, exponent2); |
| 109 | return group.ConvertOut(GeneralCascadeMultiplication<Element>(group.GetGroup(), eb.begin(), eb.end())); |
| 110 | } |
| 111 | |
| 112 | NAMESPACE_END |
| 113 |
nothing calls this directly
no test coverage detected