Skip to content

Commit 9b5bea5

Browse files
committed
Taking a const reference just to copy it is silly
1 parent f3d93a1 commit 9b5bea5

1 file changed

Lines changed: 27 additions & 36 deletions

File tree

include/boost/math/tools/polynomial.hpp

Lines changed: 27 additions & 36 deletions
Original file line numberDiff line numberDiff line change
@@ -552,51 +552,45 @@ class polynomial : ordered_euclidean_ring_operators< polynomial<T> >
552552

553553

554554
template <class T, class U>
555-
inline polynomial<T> operator + (const polynomial<T>& a, const U& b)
555+
inline polynomial<T> operator + (polynomial<T> a, const U& b)
556556
{
557-
polynomial<T> result(a);
558-
result += b;
559-
return result;
557+
a += b;
558+
return a;
560559
}
561560

562561
template <class T, class U>
563-
inline polynomial<T> operator - (const polynomial<T>& a, const U& b)
562+
inline polynomial<T> operator - (polynomial<T> a, const U& b)
564563
{
565-
polynomial<T> result(a);
566-
result -= b;
567-
return result;
564+
a -= b;
565+
return a;
568566
}
569567

570568
template <class T, class U>
571-
inline polynomial<T> operator * (const polynomial<T>& a, const U& b)
569+
inline polynomial<T> operator * (polynomial<T> a, const U& b)
572570
{
573-
polynomial<T> result(a);
574-
result *= b;
575-
return result;
571+
a *= b;
572+
return a;
576573
}
577574

578575
template <class T, class U>
579-
inline polynomial<T> operator / (const polynomial<T>& a, const U& b)
576+
inline polynomial<T> operator / (polynomial<T> a, const U& b)
580577
{
581-
polynomial<T> result(a);
582-
result /= b;
583-
return result;
578+
a /= b;
579+
return a;
584580
}
585581

586582
template <class T, class U>
587-
inline polynomial<T> operator % (const polynomial<T>& a, const U& b)
583+
inline polynomial<T> operator % (polynomial<T> a, const U& b)
588584
{
589-
polynomial<T> result(a);
590-
result %= b;
591-
return result;
585+
a %= b;
586+
return a;
592587
}
593588

594589
template <class U, class T>
595-
inline polynomial<T> operator + (const U& a, const polynomial<T>& b)
590+
inline polynomial<T> operator + (const U& a, polynomial<T> b)
596591
{
597-
polynomial<T> result(b);
598-
result += a;
599-
return result;
592+
b += a;
593+
return b;
600594
}
601595

602596
template <class U, class T>
@@ -608,11 +602,10 @@ inline polynomial<T> operator - (const U& a, const polynomial<T>& b)
608602
}
609603

610604
template <class U, class T>
611-
inline polynomial<T> operator * (const U& a, const polynomial<T>& b)
605+
inline polynomial<T> operator * (const U& a, polynomial<T> b)
612606
{
613-
polynomial<T> result(b);
614-
result *= a;
615-
return result;
607+
b *= a;
608+
return b;
616609
}
617610

618611
template <class T>
@@ -631,19 +624,17 @@ inline bool operator < (const polynomial<T> &a, const polynomial<T> &b)
631624
}
632625

633626
template <typename T, typename U>
634-
inline polynomial<T> operator >> (const polynomial<T>& a, const U& b)
627+
inline polynomial<T> operator >> (polynomial<T> a, const U& b)
635628
{
636-
polynomial<T> result(a);
637-
result >>= b;
638-
return result;
629+
a >>= b;
630+
return a;
639631
}
640632

641633
template <typename T, typename U>
642-
inline polynomial<T> operator << (const polynomial<T>& a, const U& b)
634+
inline polynomial<T> operator << (polynomial<T> a, const U& b)
643635
{
644-
polynomial<T> result(a);
645-
result <<= b;
646-
return result;
636+
a <<= b;
637+
return a;
647638
}
648639

649640
// Unary minus (negate).

0 commit comments

Comments
 (0)