Skip to content

Commit a1f74c1

Browse files
committed
Taking a const reference just to copy it is silly
1 parent 89331d0 commit a1f74c1

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
@@ -553,51 +553,45 @@ class polynomial : ordered_euclidean_ring_operators< polynomial<T> >
553553

554554

555555
template <class T, class U>
556-
inline polynomial<T> operator + (const polynomial<T>& a, const U& b)
556+
inline polynomial<T> operator + (polynomial<T> a, const U& b)
557557
{
558-
polynomial<T> result(a);
559-
result += b;
560-
return result;
558+
a += b;
559+
return a;
561560
}
562561

563562
template <class T, class U>
564-
inline polynomial<T> operator - (const polynomial<T>& a, const U& b)
563+
inline polynomial<T> operator - (polynomial<T> a, const U& b)
565564
{
566-
polynomial<T> result(a);
567-
result -= b;
568-
return result;
565+
a -= b;
566+
return a;
569567
}
570568

571569
template <class T, class U>
572-
inline polynomial<T> operator * (const polynomial<T>& a, const U& b)
570+
inline polynomial<T> operator * (polynomial<T> a, const U& b)
573571
{
574-
polynomial<T> result(a);
575-
result *= b;
576-
return result;
572+
a *= b;
573+
return a;
577574
}
578575

579576
template <class T, class U>
580-
inline polynomial<T> operator / (const polynomial<T>& a, const U& b)
577+
inline polynomial<T> operator / (polynomial<T> a, const U& b)
581578
{
582-
polynomial<T> result(a);
583-
result /= b;
584-
return result;
579+
a /= b;
580+
return a;
585581
}
586582

587583
template <class T, class U>
588-
inline polynomial<T> operator % (const polynomial<T>& a, const U& b)
584+
inline polynomial<T> operator % (polynomial<T> a, const U& b)
589585
{
590-
polynomial<T> result(a);
591-
result %= b;
592-
return result;
586+
a %= b;
587+
return a;
593588
}
594589

595590
template <class U, class T>
596-
inline polynomial<T> operator + (const U& a, const polynomial<T>& b)
591+
inline polynomial<T> operator + (const U& a, polynomial<T> b)
597592
{
598-
polynomial<T> result(b);
599-
result += a;
600-
return result;
593+
b += a;
594+
return b;
601595
}
602596

603597
template <class U, class T>
@@ -609,11 +603,10 @@ inline polynomial<T> operator - (const U& a, const polynomial<T>& b)
609603
}
610604

611605
template <class U, class T>
612-
inline polynomial<T> operator * (const U& a, const polynomial<T>& b)
606+
inline polynomial<T> operator * (const U& a, polynomial<T> b)
613607
{
614-
polynomial<T> result(b);
615-
result *= a;
616-
return result;
608+
b *= a;
609+
return b;
617610
}
618611

619612
template <class T>
@@ -632,19 +625,17 @@ inline bool operator < (const polynomial<T> &a, const polynomial<T> &b)
632625
}
633626

634627
template <typename T, typename U>
635-
inline polynomial<T> operator >> (const polynomial<T>& a, const U& b)
628+
inline polynomial<T> operator >> (polynomial<T> a, const U& b)
636629
{
637-
polynomial<T> result(a);
638-
result >>= b;
639-
return result;
630+
a >>= b;
631+
return a;
640632
}
641633

642634
template <typename T, typename U>
643-
inline polynomial<T> operator << (const polynomial<T>& a, const U& b)
635+
inline polynomial<T> operator << (polynomial<T> a, const U& b)
644636
{
645-
polynomial<T> result(a);
646-
result <<= b;
647-
return result;
637+
a <<= b;
638+
return a;
648639
}
649640

650641
// Unary minus (negate).

0 commit comments

Comments
 (0)