diff --git a/libraries/AP_Math/matrix3.cpp b/libraries/AP_Math/matrix3.cpp
index abbf619c6e..53e2a201ce 100644
--- a/libraries/AP_Math/matrix3.cpp
+++ b/libraries/AP_Math/matrix3.cpp
@@ -17,6 +17,8 @@
* with this program. If not, see .
*/
+#pragma GCC optimize("O3")
+
#include "AP_Math.h"
// create a rotation matrix given some euler angles
diff --git a/libraries/AP_Math/matrix_alg.cpp b/libraries/AP_Math/matrix_alg.cpp
index 1b44b9a733..354f15cc96 100644
--- a/libraries/AP_Math/matrix_alg.cpp
+++ b/libraries/AP_Math/matrix_alg.cpp
@@ -1,3 +1,5 @@
+#pragma GCC optimize("O3")
+
#include
#include
diff --git a/libraries/AP_Math/quaternion.cpp b/libraries/AP_Math/quaternion.cpp
index de5e193481..45478563ac 100644
--- a/libraries/AP_Math/quaternion.cpp
+++ b/libraries/AP_Math/quaternion.cpp
@@ -17,6 +17,8 @@
* with this program. If not, see .
*/
+#pragma GCC optimize("O3")
+
#include "AP_Math.h"
// return the rotation matrix equivalent for this quaternion
diff --git a/libraries/AP_Math/vector2.cpp b/libraries/AP_Math/vector2.cpp
index 7e1d12d407..456d666c41 100644
--- a/libraries/AP_Math/vector2.cpp
+++ b/libraries/AP_Math/vector2.cpp
@@ -17,6 +17,8 @@
* with this program. If not, see .
*/
+#pragma GCC optimize("O3")
+
#include "AP_Math.h"
template
diff --git a/libraries/AP_Math/vector3.cpp b/libraries/AP_Math/vector3.cpp
index a58496ed19..a343580a0f 100644
--- a/libraries/AP_Math/vector3.cpp
+++ b/libraries/AP_Math/vector3.cpp
@@ -17,6 +17,8 @@
* with this program. If not, see .
*/
+#pragma GCC optimize("O3")
+
#include "AP_Math.h"
#define HALF_SQRT_2 0.70710678118654757f