Lines Matching refs:w1
296 inline bool operator==(const StringWeight<L, S> &w1,
298 if (w1.Size() != w2.Size())
301 StringWeightIterator<L, S> iter1(w1);
312 inline bool operator!=(const StringWeight<L, S> &w1,
314 return !(w1 == w2);
318 inline bool ApproxEqual(const StringWeight<L, S> &w1,
321 return w1 == w2;
370 Plus(const StringWeight<L, S> &w1,
372 if (!w1.Member() || !w2.Member())
374 if (w1 == StringWeight<L, S>::Zero())
377 return w1;
379 if (w1 != w2) {
382 << " w1 = " << w1
387 return w1;
393 Plus(const StringWeight<L, STRING_LEFT> &w1,
395 if (!w1.Member() || !w2.Member())
397 if (w1 == StringWeight<L, STRING_LEFT>::Zero())
400 return w1;
403 StringWeightIterator<L, STRING_LEFT> iter1(w1);
414 Plus(const StringWeight<L, STRING_RIGHT> &w1,
416 if (!w1.Member() || !w2.Member())
418 if (w1 == StringWeight<L, STRING_RIGHT>::Zero())
421 return w1;
424 StringWeightReverseIterator<L, STRING_RIGHT> iter1(w1);
434 inline StringWeight<L, S> Times(const StringWeight<L, S> &w1,
436 if (!w1.Member() || !w2.Member())
438 if (w1 == StringWeight<L, S>::Zero() || w2 == StringWeight<L, S>::Zero())
441 StringWeight<L, S> prod(w1);
452 Divide(const StringWeight<L, S> &w1,
462 if (!w1.Member() || !w2.Member())
467 else if (w1 == StringWeight<L, S>::Zero())
471 StringWeightIterator<L, S> iter(w1);
482 Divide(const StringWeight<L, STRING_RIGHT> &w1,
492 if (!w1.Member() || !w2.Member())
497 else if (w1 == StringWeight<L, STRING_RIGHT>::Zero())
501 StringWeightReverseIterator<L, STRING_RIGHT> iter(w1);
512 Divide(const StringWeight<L, STRING_RIGHT_RESTRICT> &w1,
522 if (!w1.Member() || !w2.Member())
527 else if (w1 == StringWeight<L, STRING_RIGHT_RESTRICT>::Zero())
531 StringWeightReverseIterator<L, STRING_RIGHT_RESTRICT> iter(w1);
548 GallicWeight(StringWeight<L, S> w1, W w2)
549 : ProductWeight<StringWeight<L, S>, W>(w1, w2) {}