diff --git a/arm_compute/runtime/CL/functions/CLAbsoluteDifference.h b/arm_compute/runtime/CL/functions/CLAbsoluteDifference.h
index 40ee396..28d3acc 100644
--- a/arm_compute/runtime/CL/functions/CLAbsoluteDifference.h
+++ b/arm_compute/runtime/CL/functions/CLAbsoluteDifference.h
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2016, 2017 ARM Limited.
+ * Copyright (c) 2016-2019 ARM Limited.
  *
  * SPDX-License-Identifier: MIT
  *
@@ -21,8 +21,8 @@
  * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
  * SOFTWARE.
  */
-#ifndef __ARM_COMPUTE_CLABSOLUTEDIFFERENCE_H__
-#define __ARM_COMPUTE_CLABSOLUTEDIFFERENCE_H__
+#ifndef ARM_COMPUTE_CLABSOLUTEDIFFERENCE_H
+#define ARM_COMPUTE_CLABSOLUTEDIFFERENCE_H
 
 #include "arm_compute/runtime/CL/ICLSimpleFunction.h"
 
@@ -47,4 +47,4 @@
     void configure(const ICLTensor *input1, const ICLTensor *input2, ICLTensor *output);
 };
 }
-#endif /* __ARM_COMPUTE_CLABSOLUTEDIFFERENCE_H__ */
+#endif /* ARM_COMPUTE_CLABSOLUTEDIFFERENCE_H */
diff --git a/arm_compute/runtime/CL/functions/CLAccumulate.h b/arm_compute/runtime/CL/functions/CLAccumulate.h
index 51f6df9..f465ab3 100644
--- a/arm_compute/runtime/CL/functions/CLAccumulate.h
+++ b/arm_compute/runtime/CL/functions/CLAccumulate.h
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2016, 2017 ARM Limited.
+ * Copyright (c) 2016-2019 ARM Limited.
  *
  * SPDX-License-Identifier: MIT
  *
@@ -21,8 +21,8 @@
  * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
  * SOFTWARE.
  */
-#ifndef __ARM_COMPUTE_CLACCUMULATE_H__
-#define __ARM_COMPUTE_CLACCUMULATE_H__
+#ifndef ARM_COMPUTE_CLACCUMULATE_H
+#define ARM_COMPUTE_CLACCUMULATE_H
 
 #include "arm_compute/runtime/CL/ICLSimpleFunction.h"
 
@@ -70,4 +70,4 @@
     void configure(const ICLTensor *input, uint32_t shift, ICLTensor *accum);
 };
 }
-#endif /*__ARM_COMPUTE_CLACCUMULATE_H__ */
+#endif /*ARM_COMPUTE_CLACCUMULATE_H */
diff --git a/arm_compute/runtime/CL/functions/CLActivationLayer.h b/arm_compute/runtime/CL/functions/CLActivationLayer.h
index e1e3e87..f778148 100644
--- a/arm_compute/runtime/CL/functions/CLActivationLayer.h
+++ b/arm_compute/runtime/CL/functions/CLActivationLayer.h
@@ -21,8 +21,8 @@
  * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
  * SOFTWARE.
  */
-#ifndef __ARM_COMPUTE_CLACTIVATIONLAYER_H__
-#define __ARM_COMPUTE_CLACTIVATIONLAYER_H__
+#ifndef ARM_COMPUTE_CLACTIVATIONLAYER_H
+#define ARM_COMPUTE_CLACTIVATIONLAYER_H
 
 #include "arm_compute/runtime/CL/ICLSimpleFunction.h"
 
@@ -74,4 +74,4 @@
     static Status validate(const ITensorInfo *input, const ITensorInfo *output, const ActivationLayerInfo &act_info);
 };
 } // namespace arm_compute
-#endif /* __ARM_COMPUTE_CLACTIVATIONLAYER_H__ */
+#endif /* ARM_COMPUTE_CLACTIVATIONLAYER_H */
diff --git a/arm_compute/runtime/CL/functions/CLBatchNormalizationLayer.h b/arm_compute/runtime/CL/functions/CLBatchNormalizationLayer.h
index f05d29a..7cd4d16 100644
--- a/arm_compute/runtime/CL/functions/CLBatchNormalizationLayer.h
+++ b/arm_compute/runtime/CL/functions/CLBatchNormalizationLayer.h
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2017-2018 ARM Limited.
+ * Copyright (c) 2017-2019 ARM Limited.
  *
  * SPDX-License-Identifier: MIT
  *
@@ -21,8 +21,8 @@
  * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
  * SOFTWARE.
  */
-#ifndef __ARM_COMPUTE_CLBATCHNORMALIZATIONLAYER_H__
-#define __ARM_COMPUTE_CLBATCHNORMALIZATIONLAYER_H__
+#ifndef ARM_COMPUTE_CLBATCHNORMALIZATIONLAYER_H
+#define ARM_COMPUTE_CLBATCHNORMALIZATIONLAYER_H
 
 #include "arm_compute/runtime/IFunction.h"
 
@@ -88,4 +88,4 @@
     CLBatchNormalizationLayerKernel _norm_kernel; /**< BatchNormalization layer kernel to run */
 };
 }
-#endif /* __ARM_COMPUTE_CLBATCHNORMALIZATIONLAYER_H__ */
+#endif /* ARM_COMPUTE_CLBATCHNORMALIZATIONLAYER_H */
diff --git a/arm_compute/runtime/CL/functions/CLBatchToSpaceLayer.h b/arm_compute/runtime/CL/functions/CLBatchToSpaceLayer.h
index 2abfd7c..2968a68 100644
--- a/arm_compute/runtime/CL/functions/CLBatchToSpaceLayer.h
+++ b/arm_compute/runtime/CL/functions/CLBatchToSpaceLayer.h
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2018 ARM Limited.
+ * Copyright (c) 2018-2019 ARM Limited.
  *
  * SPDX-License-Identifier: MIT
  *
@@ -21,8 +21,8 @@
  * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
  * SOFTWARE.
  */
-#ifndef __ARM_COMPUTE_CLBATCHTOSPACELAYER_H__
-#define __ARM_COMPUTE_CLBATCHTOSPACELAYER_H__
+#ifndef ARM_COMPUTE_CLBATCHTOSPACELAYER_H
+#define ARM_COMPUTE_CLBATCHTOSPACELAYER_H
 
 #include "arm_compute/runtime/IFunction.h"
 
@@ -81,4 +81,4 @@
     CLBatchToSpaceLayerKernel _batch_to_space_kernel; /**< CLBatchToSpaceLayerKernel to run */
 };
 }
-#endif /* __ARM_COMPUTE_CLBATCHTOSPACELAYER_H__ */
+#endif /* ARM_COMPUTE_CLBATCHTOSPACELAYER_H */
diff --git a/arm_compute/runtime/CL/functions/CLBitwiseAnd.h b/arm_compute/runtime/CL/functions/CLBitwiseAnd.h
index a4a523b..77907cc 100644
--- a/arm_compute/runtime/CL/functions/CLBitwiseAnd.h
+++ b/arm_compute/runtime/CL/functions/CLBitwiseAnd.h
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2016, 2017 ARM Limited.
+ * Copyright (c) 2016-2019 ARM Limited.
  *
  * SPDX-License-Identifier: MIT
  *
@@ -21,8 +21,8 @@
  * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
  * SOFTWARE.
  */
-#ifndef __ARM_COMPUTE_CLBITWISEAND_H__
-#define __ARM_COMPUTE_CLBITWISEAND_H__
+#ifndef ARM_COMPUTE_CLBITWISEAND_H
+#define ARM_COMPUTE_CLBITWISEAND_H
 
 #include "arm_compute/runtime/CL/ICLSimpleFunction.h"
 
@@ -47,4 +47,4 @@
     void configure(const ICLTensor *input1, const ICLTensor *input2, ICLTensor *output);
 };
 }
-#endif /* __ARM_COMPUTE_CLBITWISEAND_H__ */
+#endif /* ARM_COMPUTE_CLBITWISEAND_H */
diff --git a/arm_compute/runtime/CL/functions/CLBitwiseNot.h b/arm_compute/runtime/CL/functions/CLBitwiseNot.h
index 0ff16af..b5c7cfe 100644
--- a/arm_compute/runtime/CL/functions/CLBitwiseNot.h
+++ b/arm_compute/runtime/CL/functions/CLBitwiseNot.h
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2016, 2017 ARM Limited.
+ * Copyright (c) 2016-2019 ARM Limited.
  *
  * SPDX-License-Identifier: MIT
  *
@@ -21,8 +21,8 @@
  * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
  * SOFTWARE.
  */
-#ifndef __ARM_COMPUTE_CLBITWISENOT_H__
-#define __ARM_COMPUTE_CLBITWISENOT_H__
+#ifndef ARM_COMPUTE_CLBITWISENOT_H
+#define ARM_COMPUTE_CLBITWISENOT_H
 
 #include "arm_compute/runtime/CL/ICLSimpleFunction.h"
 
@@ -46,4 +46,4 @@
     void configure(const ICLTensor *input, ICLTensor *output);
 };
 }
-#endif /* __ARM_COMPUTE_CLBITWISENOT_H__ */
+#endif /* ARM_COMPUTE_CLBITWISENOT_H */
diff --git a/arm_compute/runtime/CL/functions/CLBitwiseOr.h b/arm_compute/runtime/CL/functions/CLBitwiseOr.h
index 880c476..5957c3f 100644
--- a/arm_compute/runtime/CL/functions/CLBitwiseOr.h
+++ b/arm_compute/runtime/CL/functions/CLBitwiseOr.h
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2016, 2017 ARM Limited.
+ * Copyright (c) 2016-2019 ARM Limited.
  *
  * SPDX-License-Identifier: MIT
  *
@@ -21,8 +21,8 @@
  * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
  * SOFTWARE.
  */
-#ifndef __ARM_COMPUTE_CLBITWISEOR_H__
-#define __ARM_COMPUTE_CLBITWISEOR_H__
+#ifndef ARM_COMPUTE_CLBITWISEOR_H
+#define ARM_COMPUTE_CLBITWISEOR_H
 
 #include "arm_compute/runtime/CL/ICLSimpleFunction.h"
 
@@ -47,4 +47,4 @@
     void configure(const ICLTensor *input1, const ICLTensor *input2, ICLTensor *output);
 };
 }
-#endif /* __ARM_COMPUTE_CLBITWISEOR_H__ */
+#endif /* ARM_COMPUTE_CLBITWISEOR_H */
diff --git a/arm_compute/runtime/CL/functions/CLBitwiseXor.h b/arm_compute/runtime/CL/functions/CLBitwiseXor.h
index 772dec2..a4e864c 100644
--- a/arm_compute/runtime/CL/functions/CLBitwiseXor.h
+++ b/arm_compute/runtime/CL/functions/CLBitwiseXor.h
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2016, 2017 ARM Limited.
+ * Copyright (c) 2016-2019 ARM Limited.
  *
  * SPDX-License-Identifier: MIT
  *
@@ -21,8 +21,8 @@
  * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
  * SOFTWARE.
  */
-#ifndef __ARM_COMPUTE_CLBITWISEXOR_H__
-#define __ARM_COMPUTE_CLBITWISEXOR_H__
+#ifndef ARM_COMPUTE_CLBITWISEXOR_H
+#define ARM_COMPUTE_CLBITWISEXOR_H
 
 #include "arm_compute/runtime/CL/ICLSimpleFunction.h"
 
@@ -47,4 +47,4 @@
     void configure(const ICLTensor *input1, const ICLTensor *input2, ICLTensor *output);
 };
 }
-#endif /* __ARM_COMPUTE_CLBITWISEXOR_H__ */
+#endif /* ARM_COMPUTE_CLBITWISEXOR_H */
diff --git a/arm_compute/runtime/CL/functions/CLBoundingBoxTransform.h b/arm_compute/runtime/CL/functions/CLBoundingBoxTransform.h
index 5ce4489..3e11781 100644
--- a/arm_compute/runtime/CL/functions/CLBoundingBoxTransform.h
+++ b/arm_compute/runtime/CL/functions/CLBoundingBoxTransform.h
@@ -21,8 +21,8 @@
  * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
  * SOFTWARE.
  */
-#ifndef __ARM_COMPUTE_CLBOUNDINGBOXTRANSOFORM_H__
-#define __ARM_COMPUTE_CLBOUNDINGBOXTRANSOFORM_H__
+#ifndef ARM_COMPUTE_CLBOUNDINGBOXTRANSOFORM_H
+#define ARM_COMPUTE_CLBOUNDINGBOXTRANSOFORM_H
 
 #include "arm_compute/core/CL/kernels/CLBoundingBoxTransformKernel.h"
 #include "arm_compute/runtime/CL/ICLSimpleFunction.h"
@@ -66,4 +66,4 @@
     static Status validate(const ITensorInfo *boxes, const ITensorInfo *pred_boxes, const ITensorInfo *deltas, const BoundingBoxTransformInfo &info);
 };
 } // namespace arm_compute
-#endif /* __ARM_COMPUTE_CLBOUNDINGBOXTRANSFORM_H__ */
+#endif /* ARM_COMPUTE_CLBOUNDINGBOXTRANSFORM_H */
diff --git a/arm_compute/runtime/CL/functions/CLBox3x3.h b/arm_compute/runtime/CL/functions/CLBox3x3.h
index 5e51c1a..3fb18e3 100644
--- a/arm_compute/runtime/CL/functions/CLBox3x3.h
+++ b/arm_compute/runtime/CL/functions/CLBox3x3.h
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2016, 2017 ARM Limited.
+ * Copyright (c) 2016-2019 ARM Limited.
  *
  * SPDX-License-Identifier: MIT
  *
@@ -21,8 +21,8 @@
  * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
  * SOFTWARE.
  */
-#ifndef __ARM_COMPUTE_CLBOX3X3_H__
-#define __ARM_COMPUTE_CLBOX3X3_H__
+#ifndef ARM_COMPUTE_CLBOX3X3_H
+#define ARM_COMPUTE_CLBOX3X3_H
 
 #include "arm_compute/core/Types.h"
 #include "arm_compute/runtime/CL/ICLSimpleFunction.h"
@@ -52,4 +52,4 @@
     void configure(ICLTensor *input, ICLTensor *output, BorderMode border_mode, uint8_t constant_border_value = 0);
 };
 }
-#endif /*__ARM_COMPUTE_CLBOX3X3_H__ */
+#endif /*ARM_COMPUTE_CLBOX3X3_H */
diff --git a/arm_compute/runtime/CL/functions/CLCannyEdge.h b/arm_compute/runtime/CL/functions/CLCannyEdge.h
index ab5657c..1a56767 100644
--- a/arm_compute/runtime/CL/functions/CLCannyEdge.h
+++ b/arm_compute/runtime/CL/functions/CLCannyEdge.h
@@ -21,8 +21,8 @@
  * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
  * SOFTWARE.
  */
-#ifndef __ARM_COMPUTE_CLCANNYEDGE_H__
-#define __ARM_COMPUTE_CLCANNYEDGE_H__
+#ifndef ARM_COMPUTE_CLCANNYEDGE_H
+#define ARM_COMPUTE_CLCANNYEDGE_H
 
 #include "arm_compute/runtime/IFunction.h"
 
@@ -90,4 +90,4 @@
 };
 }
 
-#endif /* __ARM_COMPUTE_CLCANNYEDGE_H__ */
+#endif /* ARM_COMPUTE_CLCANNYEDGE_H */
diff --git a/arm_compute/runtime/CL/functions/CLCast.h b/arm_compute/runtime/CL/functions/CLCast.h
index ca50cf1..4cb1fe0 100644
--- a/arm_compute/runtime/CL/functions/CLCast.h
+++ b/arm_compute/runtime/CL/functions/CLCast.h
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2018 ARM Limited.
+ * Copyright (c) 2018-2019 ARM Limited.
  *
  * SPDX-License-Identifier: MIT
  *
@@ -21,8 +21,8 @@
  * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
  * SOFTWARE.
  */
-#ifndef __ARM_COMPUTE_CLCAST_H__
-#define __ARM_COMPUTE_CLCAST_H__
+#ifndef ARM_COMPUTE_CLCAST_H
+#define ARM_COMPUTE_CLCAST_H
 
 #include "arm_compute/core/Types.h"
 #include "arm_compute/runtime/CL/ICLSimpleFunction.h"
@@ -67,4 +67,4 @@
     static Status validate(const ITensorInfo *input, const ITensorInfo *output, ConvertPolicy policy);
 };
 } // namespace arm_compute
-#endif /*__ARM_COMPUTE_CLCAST_H__*/
+#endif /*ARM_COMPUTE_CLCAST_H*/
diff --git a/arm_compute/runtime/CL/functions/CLChannelCombine.h b/arm_compute/runtime/CL/functions/CLChannelCombine.h
index 337e6b4..25f31d8 100644
--- a/arm_compute/runtime/CL/functions/CLChannelCombine.h
+++ b/arm_compute/runtime/CL/functions/CLChannelCombine.h
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2016, 2017 ARM Limited.
+ * Copyright (c) 2016-2019 ARM Limited.
  *
  * SPDX-License-Identifier: MIT
  *
@@ -21,8 +21,8 @@
  * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
  * SOFTWARE.
  */
-#ifndef __ARM_COMPUTE_CLCHANNELCOMBINE_H__
-#define __ARM_COMPUTE_CLCHANNELCOMBINE_H__
+#ifndef ARM_COMPUTE_CLCHANNELCOMBINE_H
+#define ARM_COMPUTE_CLCHANNELCOMBINE_H
 
 #include "arm_compute/runtime/CL/ICLSimpleFunction.h"
 
@@ -55,4 +55,4 @@
     void configure(const ICLImage *plane0, const ICLImage *plane1, const ICLImage *plane2, ICLMultiImage *output);
 };
 }
-#endif /*__ARM_COMPUTE_CLCHANNELCOMBINE_H__*/
+#endif /*ARM_COMPUTE_CLCHANNELCOMBINE_H*/
diff --git a/arm_compute/runtime/CL/functions/CLChannelExtract.h b/arm_compute/runtime/CL/functions/CLChannelExtract.h
index 9182fef..77d84b9 100644
--- a/arm_compute/runtime/CL/functions/CLChannelExtract.h
+++ b/arm_compute/runtime/CL/functions/CLChannelExtract.h
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2016, 2017 ARM Limited.
+ * Copyright (c) 2016-2019 ARM Limited.
  *
  * SPDX-License-Identifier: MIT
  *
@@ -21,8 +21,8 @@
  * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
  * SOFTWARE.
  */
-#ifndef __ARM_COMPUTE_CLCHANNELEXTRACT_H__
-#define __ARM_COMPUTE_CLCHANNELEXTRACT_H__
+#ifndef ARM_COMPUTE_CLCHANNELEXTRACT_H
+#define ARM_COMPUTE_CLCHANNELEXTRACT_H
 
 #include "arm_compute/core/Types.h"
 #include "arm_compute/runtime/CL/ICLSimpleFunction.h"
@@ -53,4 +53,4 @@
     void configure(const ICLMultiImage *input, Channel channel, ICLImage *output);
 };
 }
-#endif /*__ARM_COMPUTE_CLCHANNELEXTRACT_H__*/
+#endif /*ARM_COMPUTE_CLCHANNELEXTRACT_H*/
diff --git a/arm_compute/runtime/CL/functions/CLChannelShuffleLayer.h b/arm_compute/runtime/CL/functions/CLChannelShuffleLayer.h
index 813f410..2770ee5 100644
--- a/arm_compute/runtime/CL/functions/CLChannelShuffleLayer.h
+++ b/arm_compute/runtime/CL/functions/CLChannelShuffleLayer.h
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2018 ARM Limited.
+ * Copyright (c) 2018-2019 ARM Limited.
  *
  * SPDX-License-Identifier: MIT
  *
@@ -21,8 +21,8 @@
  * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
  * SOFTWARE.
  */
-#ifndef __ARM_COMPUTE_CLCHANNELSHUFFLELAYER_H__
-#define __ARM_COMPUTE_CLCHANNELSHUFFLELAYER_H__
+#ifndef ARM_COMPUTE_CLCHANNELSHUFFLELAYER_H
+#define ARM_COMPUTE_CLCHANNELSHUFFLELAYER_H
 
 #include "arm_compute/runtime/CL/ICLSimpleFunction.h"
 
@@ -57,4 +57,4 @@
     static Status validate(const ITensorInfo *input, const ITensorInfo *output, unsigned int num_groups);
 };
 } // namespace arm_compute
-#endif /* __ARM_COMPUTE_CLCHANNELSHUFFLELAYER_H__ */
+#endif /* ARM_COMPUTE_CLCHANNELSHUFFLELAYER_H */
diff --git a/arm_compute/runtime/CL/functions/CLColorConvert.h b/arm_compute/runtime/CL/functions/CLColorConvert.h
index 8f4fa56..1a3bea9 100644
--- a/arm_compute/runtime/CL/functions/CLColorConvert.h
+++ b/arm_compute/runtime/CL/functions/CLColorConvert.h
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2016-2018 ARM Limited.
+ * Copyright (c) 2016-2019 ARM Limited.
  *
  * SPDX-License-Identifier: MIT
  *
@@ -21,8 +21,8 @@
  * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
  * SOFTWARE.
  */
-#ifndef __ARM_COMPUTE_CLCOLORCONVERT_H__
-#define __ARM_COMPUTE_CLCOLORCONVERT_H__
+#ifndef ARM_COMPUTE_CLCOLORCONVERT_H
+#define ARM_COMPUTE_CLCOLORCONVERT_H
 
 #include "arm_compute/runtime/CL/ICLSimpleFunction.h"
 
@@ -67,4 +67,4 @@
     void configure(const ICLMultiImage *input, ICLMultiImage *output);
 };
 }
-#endif /* __ARM_COMPUTE_CLCOLORCONVERT_H__ */
+#endif /* ARM_COMPUTE_CLCOLORCONVERT_H */
diff --git a/arm_compute/runtime/CL/functions/CLComparison.h b/arm_compute/runtime/CL/functions/CLComparison.h
index f5a2b03..7f0b223 100644
--- a/arm_compute/runtime/CL/functions/CLComparison.h
+++ b/arm_compute/runtime/CL/functions/CLComparison.h
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2018 ARM Limited.
+ * Copyright (c) 2018-2019 ARM Limited.
  *
  * SPDX-License-Identifier: MIT
  *
@@ -21,8 +21,8 @@
  * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
  * SOFTWARE.
  */
-#ifndef __ARM_COMPUTE_CLCOMPARISON_H__
-#define __ARM_COMPUTE_CLCOMPARISON_H__
+#ifndef ARM_COMPUTE_CLCOMPARISON_H
+#define ARM_COMPUTE_CLCOMPARISON_H
 
 #include "arm_compute/core/Types.h"
 #include "arm_compute/runtime/CL/ICLSimpleFunction.h"
@@ -99,4 +99,4 @@
 /** Basic function to run less-equal comparison. */
 using CLLessEqual = CLComparisonStatic<ComparisonOperation::LessEqual>;
 } // namespace arm_compute
-#endif /* __ARM_COMPUTE_CLCOMPARISON_H__ */
+#endif /* ARM_COMPUTE_CLCOMPARISON_H */
diff --git a/arm_compute/runtime/CL/functions/CLComputeAllAnchors.h b/arm_compute/runtime/CL/functions/CLComputeAllAnchors.h
index 39d9b55..a039320 100644
--- a/arm_compute/runtime/CL/functions/CLComputeAllAnchors.h
+++ b/arm_compute/runtime/CL/functions/CLComputeAllAnchors.h
@@ -21,8 +21,8 @@
  * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
  * SOFTWARE.
  */
-#ifndef __ARM_COMPUTE_CLCOMPUTEALLANCHORS_H__
-#define __ARM_COMPUTE_CLCOMPUTEALLANCHORS_H__
+#ifndef ARM_COMPUTE_CLCOMPUTEALLANCHORS_H
+#define ARM_COMPUTE_CLCOMPUTEALLANCHORS_H
 
 #include "arm_compute/core/CL/kernels/CLGenerateProposalsLayerKernel.h"
 #include "arm_compute/runtime/CL/ICLSimpleFunction.h"
@@ -59,4 +59,4 @@
     static Status validate(const ITensorInfo *anchors, const ITensorInfo *all_anchors, const ComputeAnchorsInfo &info);
 };
 } // namespace arm_compute
-#endif /* __ARM_COMPUTE_CLCOMPUTEALLANCOHORS_H__ */
+#endif /* ARM_COMPUTE_CLCOMPUTEALLANCOHORS_H */
diff --git a/arm_compute/runtime/CL/functions/CLConcatenateLayer.h b/arm_compute/runtime/CL/functions/CLConcatenateLayer.h
index fb9724d..29037f2 100644
--- a/arm_compute/runtime/CL/functions/CLConcatenateLayer.h
+++ b/arm_compute/runtime/CL/functions/CLConcatenateLayer.h
@@ -21,8 +21,8 @@
  * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
  * SOFTWARE.
  */
-#ifndef __ARM_COMPUTE_CLCONCATENATELAYER_H__
-#define __ARM_COMPUTE_CLCONCATENATELAYER_H__
+#ifndef ARM_COMPUTE_CLCONCATENATELAYER_H
+#define ARM_COMPUTE_CLCONCATENATELAYER_H
 
 #include "arm_compute/runtime/IFunction.h"
 
@@ -91,4 +91,4 @@
     unsigned int                            _axis;
 };
 } // namespace arm_compute
-#endif /* __ARM_COMPUTE_CLCONCATENATELAYER_H__ */
+#endif /* ARM_COMPUTE_CLCONCATENATELAYER_H */
diff --git a/arm_compute/runtime/CL/functions/CLConvertFullyConnectedWeights.h b/arm_compute/runtime/CL/functions/CLConvertFullyConnectedWeights.h
index e4e6f07..f0359ec 100644
--- a/arm_compute/runtime/CL/functions/CLConvertFullyConnectedWeights.h
+++ b/arm_compute/runtime/CL/functions/CLConvertFullyConnectedWeights.h
@@ -21,8 +21,8 @@
  * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
  * SOFTWARE.
  */
-#ifndef __ARM_COMPUTE_CLCONVERTFULLYCONNECTEDWEIGHTS_H__
-#define __ARM_COMPUTE_CLCONVERTFULLYCONNECTEDWEIGHTS_H__
+#ifndef ARM_COMPUTE_CLCONVERTFULLYCONNECTEDWEIGHTS_H
+#define ARM_COMPUTE_CLCONVERTFULLYCONNECTEDWEIGHTS_H
 
 #include "arm_compute/core/CL/kernels/CLConvertFullyConnectedWeightsKernel.h"
 #include "arm_compute/runtime/CL/CLTensor.h"
@@ -106,4 +106,4 @@
 };
 } // namespace weights_transformations
 } // namespace arm_compute
-#endif /* __ARM_COMPUTE_CLCONVERTFULLYCONNECTEDWEIGHTS_H__ */
+#endif /* ARM_COMPUTE_CLCONVERTFULLYCONNECTEDWEIGHTS_H */
diff --git a/arm_compute/runtime/CL/functions/CLConvolution.h b/arm_compute/runtime/CL/functions/CLConvolution.h
index b79affc..43507d7 100644
--- a/arm_compute/runtime/CL/functions/CLConvolution.h
+++ b/arm_compute/runtime/CL/functions/CLConvolution.h
@@ -21,8 +21,8 @@
  * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
  * SOFTWARE.
  */
-#ifndef __ARM_COMPUTE_CLCONVOLUTION_H__
-#define __ARM_COMPUTE_CLCONVOLUTION_H__
+#ifndef ARM_COMPUTE_CLCONVOLUTION_H
+#define ARM_COMPUTE_CLCONVOLUTION_H
 
 #include "arm_compute/core/CL/kernels/CLConvolutionKernel.h"
 #include "arm_compute/core/CL/kernels/CLFillBorderKernel.h"
@@ -129,4 +129,4 @@
     void configure(ICLTensor *input, ICLTensor *output, const int16_t *conv, uint32_t rows, uint32_t cols, uint32_t scale, BorderMode border_mode, uint8_t constant_border_value = 0);
 };
 }
-#endif /*__ARM_COMPUTE_CLCONVOLUTION_H__ */
+#endif /*ARM_COMPUTE_CLCONVOLUTION_H */
diff --git a/arm_compute/runtime/CL/functions/CLConvolutionLayer.h b/arm_compute/runtime/CL/functions/CLConvolutionLayer.h
index 8dfb6c8..66dc7af 100644
--- a/arm_compute/runtime/CL/functions/CLConvolutionLayer.h
+++ b/arm_compute/runtime/CL/functions/CLConvolutionLayer.h
@@ -21,8 +21,8 @@
  * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
  * SOFTWARE.
  */
-#ifndef __ARM_COMPUTE_CLCONVOLUTIONLAYER_H__
-#define __ARM_COMPUTE_CLCONVOLUTIONLAYER_H__
+#ifndef ARM_COMPUTE_CLCONVOLUTIONLAYER_H
+#define ARM_COMPUTE_CLCONVOLUTIONLAYER_H
 
 #include "arm_compute/runtime/CL/functions/CLDirectConvolutionLayer.h"
 #include "arm_compute/runtime/CL/functions/CLFFTConvolutionLayer.h"
@@ -147,4 +147,4 @@
     std::unique_ptr<IFunction>      _function;
 };
 }
-#endif /* __ARM_COMPUTE_CLCONVOLUTIONLAYER_H__ */
+#endif /* ARM_COMPUTE_CLCONVOLUTIONLAYER_H */
diff --git a/arm_compute/runtime/CL/functions/CLCopy.h b/arm_compute/runtime/CL/functions/CLCopy.h
index 08e34ad..9252ac3 100644
--- a/arm_compute/runtime/CL/functions/CLCopy.h
+++ b/arm_compute/runtime/CL/functions/CLCopy.h
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2018 ARM Limited.
+ * Copyright (c) 2018-2019 ARM Limited.
  *
  * SPDX-License-Identifier: MIT
  *
@@ -21,8 +21,8 @@
  * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
  * SOFTWARE.
  */
-#ifndef __ARM_COMPUTE_CLCOPY_H__
-#define __ARM_COMPUTE_CLCOPY_H__
+#ifndef ARM_COMPUTE_CLCOPY_H
+#define ARM_COMPUTE_CLCOPY_H
 
 #include "arm_compute/core/Types.h"
 #include "arm_compute/runtime/CL/ICLSimpleFunction.h"
@@ -53,4 +53,4 @@
     static Status validate(const ITensorInfo *input, const ITensorInfo *output);
 };
 } // namespace arm_compute
-#endif /*__ARM_COMPUTE_CLCOPY_H__ */
+#endif /*ARM_COMPUTE_CLCOPY_H */
diff --git a/arm_compute/runtime/CL/functions/CLCropResize.h b/arm_compute/runtime/CL/functions/CLCropResize.h
index 9ec2071..244e345 100644
--- a/arm_compute/runtime/CL/functions/CLCropResize.h
+++ b/arm_compute/runtime/CL/functions/CLCropResize.h
@@ -21,8 +21,8 @@
  * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
  * SOFTWARE.
  */
-#ifndef __ARM_COMPUTE_CL_CROP_RESIZE_H__
-#define __ARM_COMPUTE_CL_CROP_RESIZE_H__
+#ifndef ARM_COMPUTE_CL_CROP_RESIZE_H
+#define ARM_COMPUTE_CL_CROP_RESIZE_H
 
 #include "arm_compute/core/CL/ICLTensor.h"
 #include "arm_compute/core/CL/kernels/CLCopyKernel.h"
@@ -111,4 +111,4 @@
     std::vector<std::unique_ptr<CLTensor>>     _scaled_results;
 };
 } // namespace arm_compute
-#endif /* __ARM_COMPUTE_CL_CROP_RESIZE_H__ */
+#endif /* ARM_COMPUTE_CL_CROP_RESIZE_H */
diff --git a/arm_compute/runtime/CL/functions/CLDeconvolutionLayer.h b/arm_compute/runtime/CL/functions/CLDeconvolutionLayer.h
index b722b46..8c46bc2 100644
--- a/arm_compute/runtime/CL/functions/CLDeconvolutionLayer.h
+++ b/arm_compute/runtime/CL/functions/CLDeconvolutionLayer.h
@@ -21,8 +21,8 @@
  * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
  * SOFTWARE.
  */
-#ifndef __ARM_COMPUTE_CLDECONVOLUTIONLAYER_H__
-#define __ARM_COMPUTE_CLDECONVOLUTIONLAYER_H__
+#ifndef ARM_COMPUTE_CLDECONVOLUTIONLAYER_H
+#define ARM_COMPUTE_CLDECONVOLUTIONLAYER_H
 
 #include "arm_compute/runtime/CL/functions/CLDirectDeconvolutionLayer.h"
 #include "arm_compute/runtime/CL/functions/CLGEMMDeconvolutionLayer.h"
@@ -80,4 +80,4 @@
     std::unique_ptr<IFunction>      _function;
 };
 } // namespace arm_compute
-#endif /* __ARM_COMPUTE_CLDECONVOLUTIONLAYER_H__ */
+#endif /* ARM_COMPUTE_CLDECONVOLUTIONLAYER_H */
diff --git a/arm_compute/runtime/CL/functions/CLDeconvolutionLayerUpsample.h b/arm_compute/runtime/CL/functions/CLDeconvolutionLayerUpsample.h
index 9776264..6f01574 100644
--- a/arm_compute/runtime/CL/functions/CLDeconvolutionLayerUpsample.h
+++ b/arm_compute/runtime/CL/functions/CLDeconvolutionLayerUpsample.h
@@ -21,8 +21,8 @@
  * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
  * SOFTWARE.
  */
-#ifndef __ARM_COMPUTE_CLDECONVOLUTIONLAYERUPSAMPLE_H__
-#define __ARM_COMPUTE_CLDECONVOLUTIONLAYERUPSAMPLE_H__
+#ifndef ARM_COMPUTE_CLDECONVOLUTIONLAYERUPSAMPLE_H
+#define ARM_COMPUTE_CLDECONVOLUTIONLAYERUPSAMPLE_H
 
 #include "arm_compute/runtime/IFunction.h"
 
@@ -83,4 +83,4 @@
     ICLTensor                         *_output;
 };
 } // namespace arm_compute
-#endif /* __ARM_COMPUTE_CLDECONVOLUTIONLAYERUPSAMPLE_H__ */
+#endif /* ARM_COMPUTE_CLDECONVOLUTIONLAYERUPSAMPLE_H */
diff --git a/arm_compute/runtime/CL/functions/CLDepthConvertLayer.h b/arm_compute/runtime/CL/functions/CLDepthConvertLayer.h
index a198556..1b9476c 100644
--- a/arm_compute/runtime/CL/functions/CLDepthConvertLayer.h
+++ b/arm_compute/runtime/CL/functions/CLDepthConvertLayer.h
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2016-2018 ARM Limited.
+ * Copyright (c) 2016-2019 ARM Limited.
  *
  * SPDX-License-Identifier: MIT
  *
@@ -21,8 +21,8 @@
  * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
  * SOFTWARE.
  */
-#ifndef __ARM_COMPUTE_CLDEPTHCONVERT_H__
-#define __ARM_COMPUTE_CLDEPTHCONVERT_H__
+#ifndef ARM_COMPUTE_CLDEPTHCONVERT_H
+#define ARM_COMPUTE_CLDEPTHCONVERT_H
 
 #include "arm_compute/core/Types.h"
 #include "arm_compute/runtime/CL/ICLSimpleFunction.h"
@@ -69,4 +69,4 @@
     static Status validate(const ITensorInfo *input, const ITensorInfo *output, ConvertPolicy policy, uint32_t shift);
 };
 } // namespace arm_compute
-#endif /*__ARM_COMPUTE_CLDEPTHCONVERT_H__*/
+#endif /*ARM_COMPUTE_CLDEPTHCONVERT_H*/
diff --git a/arm_compute/runtime/CL/functions/CLDepthToSpaceLayer.h b/arm_compute/runtime/CL/functions/CLDepthToSpaceLayer.h
index 57d19c5..ddee04a 100644
--- a/arm_compute/runtime/CL/functions/CLDepthToSpaceLayer.h
+++ b/arm_compute/runtime/CL/functions/CLDepthToSpaceLayer.h
@@ -21,8 +21,8 @@
  * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
  * SOFTWARE.
  */
-#ifndef __ARM_COMPUTE_CLDEPTHTOSPACELAYER_H__
-#define __ARM_COMPUTE_CLDEPTHTOSPACELAYER_H__
+#ifndef ARM_COMPUTE_CLDEPTHTOSPACELAYER_H
+#define ARM_COMPUTE_CLDEPTHTOSPACELAYER_H
 
 #include "arm_compute/runtime/IFunction.h"
 
@@ -63,4 +63,4 @@
     CLDepthToSpaceLayerKernel _depth_to_space_kernel; /**< CLDepthToSpaceLayerKernel to run */
 };
 }
-#endif /* __ARM_COMPUTE_CLDEPTHTOSPACELAYER_H__ */
+#endif /* ARM_COMPUTE_CLDEPTHTOSPACELAYER_H */
diff --git a/arm_compute/runtime/CL/functions/CLDepthwiseConvolutionLayer.h b/arm_compute/runtime/CL/functions/CLDepthwiseConvolutionLayer.h
index e15f62f..7ce7cce 100644
--- a/arm_compute/runtime/CL/functions/CLDepthwiseConvolutionLayer.h
+++ b/arm_compute/runtime/CL/functions/CLDepthwiseConvolutionLayer.h
@@ -21,8 +21,8 @@
  * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
  * SOFTWARE.
  */
-#ifndef __ARM_COMPUTE_CLDEPTHWISECONVOLUTION_H__
-#define __ARM_COMPUTE_CLDEPTHWISECONVOLUTION_H__
+#ifndef ARM_COMPUTE_CLDEPTHWISECONVOLUTION_H
+#define ARM_COMPUTE_CLDEPTHWISECONVOLUTION_H
 
 #include "arm_compute/core/CL/kernels/CLDepthwiseConvolutionLayer3x3NCHWKernel.h"
 #include "arm_compute/core/CL/kernels/CLDepthwiseConvolutionLayer3x3NHWCKernel.h"
@@ -356,4 +356,4 @@
     CLDepthwiseConvolutionLayer _func;
 };
 } // namespace arm_compute
-#endif /*__ARM_COMPUTE_CLDEPTHWISECONVOLUTION_H__ */
+#endif /*ARM_COMPUTE_CLDEPTHWISECONVOLUTION_H */
diff --git a/arm_compute/runtime/CL/functions/CLDequantizationLayer.h b/arm_compute/runtime/CL/functions/CLDequantizationLayer.h
index f3e507a..308349a 100644
--- a/arm_compute/runtime/CL/functions/CLDequantizationLayer.h
+++ b/arm_compute/runtime/CL/functions/CLDequantizationLayer.h
@@ -21,8 +21,8 @@
  * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
  * SOFTWARE.
  */
-#ifndef __ARM_COMPUTE_CLDEQUANTIZATIONLAYER_H__
-#define __ARM_COMPUTE_CLDEQUANTIZATIONLAYER_H__
+#ifndef ARM_COMPUTE_CLDEQUANTIZATIONLAYER_H
+#define ARM_COMPUTE_CLDEQUANTIZATIONLAYER_H
 
 #include "arm_compute/runtime/CL/ICLSimpleFunction.h"
 
@@ -54,4 +54,4 @@
     static Status validate(const ITensorInfo *input, const ITensorInfo *output);
 };
 } // namespace arm_compute
-#endif /* __ARM_COMPUTE_CLDEQUANTIZATIONLAYER_H__ */
+#endif /* ARM_COMPUTE_CLDEQUANTIZATIONLAYER_H */
diff --git a/arm_compute/runtime/CL/functions/CLDerivative.h b/arm_compute/runtime/CL/functions/CLDerivative.h
index 05033e8..1155d40 100644
--- a/arm_compute/runtime/CL/functions/CLDerivative.h
+++ b/arm_compute/runtime/CL/functions/CLDerivative.h
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2016, 2017 ARM Limited.
+ * Copyright (c) 2016-2019 ARM Limited.
  *
  * SPDX-License-Identifier: MIT
  *
@@ -21,8 +21,8 @@
  * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
  * SOFTWARE.
  */
-#ifndef __ARM_COMPUTE_CLDERIVATIVE_H__
-#define __ARM_COMPUTE_CLDERIVATIVE_H__
+#ifndef ARM_COMPUTE_CLDERIVATIVE_H
+#define ARM_COMPUTE_CLDERIVATIVE_H
 
 #include "arm_compute/core/Types.h"
 #include "arm_compute/runtime/CL/ICLSimpleFunction.h"
@@ -56,4 +56,4 @@
     void configure(ICLTensor *input, ICLTensor *output_x, ICLTensor *output_y, BorderMode border_mode, uint8_t constant_border_value = 0);
 };
 }
-#endif /* __ARM_COMPUTE_CLDERIVATIVE_H__ */
+#endif /* ARM_COMPUTE_CLDERIVATIVE_H */
diff --git a/arm_compute/runtime/CL/functions/CLDilate.h b/arm_compute/runtime/CL/functions/CLDilate.h
index e4173ac..ceea456 100644
--- a/arm_compute/runtime/CL/functions/CLDilate.h
+++ b/arm_compute/runtime/CL/functions/CLDilate.h
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2016, 2017 ARM Limited.
+ * Copyright (c) 2016-2019 ARM Limited.
  *
  * SPDX-License-Identifier: MIT
  *
@@ -21,8 +21,8 @@
  * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
  * SOFTWARE.
  */
-#ifndef __ARM_COMPUTE_CLDILATE_H__
-#define __ARM_COMPUTE_CLDILATE_H__
+#ifndef ARM_COMPUTE_CLDILATE_H
+#define ARM_COMPUTE_CLDILATE_H
 
 #include "arm_compute/core/Types.h"
 #include "arm_compute/runtime/CL/ICLSimpleFunction.h"
@@ -52,4 +52,4 @@
     void configure(ICLTensor *input, ICLTensor *output, BorderMode border_mode, uint8_t constant_border_value = 0);
 };
 }
-#endif /*__ARM_COMPUTE_CLDILATE_H__ */
+#endif /*ARM_COMPUTE_CLDILATE_H */
diff --git a/arm_compute/runtime/CL/functions/CLDirectConvolutionLayer.h b/arm_compute/runtime/CL/functions/CLDirectConvolutionLayer.h
index 31683c5..10bcb75 100644
--- a/arm_compute/runtime/CL/functions/CLDirectConvolutionLayer.h
+++ b/arm_compute/runtime/CL/functions/CLDirectConvolutionLayer.h
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2017-2018 ARM Limited.
+ * Copyright (c) 2017-2019 ARM Limited.
  *
  * SPDX-License-Identifier: MIT
  *
@@ -21,8 +21,8 @@
  * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
  * SOFTWARE.
  */
-#ifndef __ARM_COMPUTE_CLDIRECTCONVOLUTIONLAYER_H__
-#define __ARM_COMPUTE_CLDIRECTCONVOLUTIONLAYER_H__
+#ifndef ARM_COMPUTE_CLDIRECTCONVOLUTIONLAYER_H
+#define ARM_COMPUTE_CLDIRECTCONVOLUTIONLAYER_H
 
 #include "arm_compute/core/CL/kernels/CLDirectConvolutionLayerKernel.h"
 #include "arm_compute/core/CL/kernels/CLFillBorderKernel.h"
@@ -85,4 +85,4 @@
     bool _is_activationlayer_enabled;
 };
 }
-#endif /* __ARM_COMPUTE_CLDIRECTCONVOLUTIONLAYER_H__ */
+#endif /* ARM_COMPUTE_CLDIRECTCONVOLUTIONLAYER_H */
diff --git a/arm_compute/runtime/CL/functions/CLDirectDeconvolutionLayer.h b/arm_compute/runtime/CL/functions/CLDirectDeconvolutionLayer.h
index 9dfc827..f86618d 100644
--- a/arm_compute/runtime/CL/functions/CLDirectDeconvolutionLayer.h
+++ b/arm_compute/runtime/CL/functions/CLDirectDeconvolutionLayer.h
@@ -21,8 +21,8 @@
  * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
  * SOFTWARE.
  */
-#ifndef __ARM_COMPUTE_CLDIRECTDECONVOLUTIONLAYER_H__
-#define __ARM_COMPUTE_CLDIRECTDECONVOLUTIONLAYER_H__
+#ifndef ARM_COMPUTE_CLDIRECTDECONVOLUTIONLAYER_H
+#define ARM_COMPUTE_CLDIRECTDECONVOLUTIONLAYER_H
 
 #include "arm_compute/runtime/CL/functions/CLConvolutionLayer.h"
 #include "arm_compute/runtime/CL/functions/CLDeconvolutionLayerUpsample.h"
@@ -128,4 +128,4 @@
     bool _is_prepared;
 };
 } // namespace arm_compute
-#endif /* __ARM_COMPUTE_CLDECONVOLUTIONLAYER_H__ */
+#endif /* ARM_COMPUTE_CLDECONVOLUTIONLAYER_H */
diff --git a/arm_compute/runtime/CL/functions/CLElementWiseUnaryLayer.h b/arm_compute/runtime/CL/functions/CLElementWiseUnaryLayer.h
index 79e409c..e2503f7 100644
--- a/arm_compute/runtime/CL/functions/CLElementWiseUnaryLayer.h
+++ b/arm_compute/runtime/CL/functions/CLElementWiseUnaryLayer.h
@@ -21,8 +21,8 @@
  * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
  * SOFTWARE.
  */
-#ifndef __ARM_COMPUTE_CLELEMENTWISEUNARYLAYER_H__
-#define __ARM_COMPUTE_CLELEMENTWISEUNARYLAYER_H__
+#ifndef ARM_COMPUTE_CLELEMENTWISEUNARYLAYER_H
+#define ARM_COMPUTE_CLELEMENTWISEUNARYLAYER_H
 
 #include "arm_compute/runtime/CL/ICLSimpleFunction.h"
 
@@ -170,4 +170,4 @@
     static Status validate(const ITensorInfo *input, const ITensorInfo *output);
 };
 } // namespace arm_compute
-#endif /* __ARM_COMPUTE_CLELEMENTWISEUNARYLAYER_H__ */
+#endif /* ARM_COMPUTE_CLELEMENTWISEUNARYLAYER_H */
diff --git a/arm_compute/runtime/CL/functions/CLElementwiseOperations.h b/arm_compute/runtime/CL/functions/CLElementwiseOperations.h
index 4cbec62..a7cb8b4 100644
--- a/arm_compute/runtime/CL/functions/CLElementwiseOperations.h
+++ b/arm_compute/runtime/CL/functions/CLElementwiseOperations.h
@@ -21,8 +21,8 @@
  * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
  * SOFTWARE.
  */
-#ifndef __ARM_COMPUTE_CLELEMENTWISEOPERATIONS_H__
-#define __ARM_COMPUTE_CLELEMENTWISEOPERATIONS_H__
+#ifndef ARM_COMPUTE_CLELEMENTWISEOPERATIONS_H
+#define ARM_COMPUTE_CLELEMENTWISEOPERATIONS_H
 
 #include "arm_compute/core/Types.h"
 #include "arm_compute/runtime/CL/ICLSimpleFunction.h"
@@ -231,4 +231,4 @@
     static Status validate(const ITensorInfo *input1, const ITensorInfo *input2, const ITensorInfo *output);
 };
 } // namespace arm_compute
-#endif /* __ARM_COMPUTE_CLELEMENTWISEOPERATIONS_H__ */
+#endif /* ARM_COMPUTE_CLELEMENTWISEOPERATIONS_H */
diff --git a/arm_compute/runtime/CL/functions/CLEqualizeHistogram.h b/arm_compute/runtime/CL/functions/CLEqualizeHistogram.h
index d718275..79c18fa 100644
--- a/arm_compute/runtime/CL/functions/CLEqualizeHistogram.h
+++ b/arm_compute/runtime/CL/functions/CLEqualizeHistogram.h
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2016, 2017 ARM Limited.
+ * Copyright (c) 2016-2019 ARM Limited.
  *
  * SPDX-License-Identifier: MIT
  *
@@ -21,8 +21,8 @@
  * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
  * SOFTWARE.
  */
-#ifndef __ARM_COMPUTE_CLEQUALIZEHISTOGRAM_H__
-#define __ARM_COMPUTE_CLEQUALIZEHISTOGRAM_H__
+#ifndef ARM_COMPUTE_CLEQUALIZEHISTOGRAM_H
+#define ARM_COMPUTE_CLEQUALIZEHISTOGRAM_H
 
 #include "arm_compute/core/CL/kernels/CLHistogramKernel.h"
 #include "arm_compute/core/CL/kernels/CLTableLookupKernel.h"
@@ -69,4 +69,4 @@
     static const uint32_t   nr_bins   = 256;          /**< Histogram bins of the internal histograms. */
 };
 }
-#endif /*__ARM_COMPUTE_CLEQUALIZEHISTOGRAM_H__ */
+#endif /*ARM_COMPUTE_CLEQUALIZEHISTOGRAM_H */
diff --git a/arm_compute/runtime/CL/functions/CLErode.h b/arm_compute/runtime/CL/functions/CLErode.h
index a929cc9..a438f4e 100644
--- a/arm_compute/runtime/CL/functions/CLErode.h
+++ b/arm_compute/runtime/CL/functions/CLErode.h
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2016, 2017 ARM Limited.
+ * Copyright (c) 2016-2019 ARM Limited.
  *
  * SPDX-License-Identifier: MIT
  *
@@ -21,8 +21,8 @@
  * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
  * SOFTWARE.
  */
-#ifndef __ARM_COMPUTE_CLERODE_H__
-#define __ARM_COMPUTE_CLERODE_H__
+#ifndef ARM_COMPUTE_CLERODE_H
+#define ARM_COMPUTE_CLERODE_H
 
 #include "arm_compute/core/Types.h"
 #include "arm_compute/runtime/CL/ICLSimpleFunction.h"
@@ -52,4 +52,4 @@
     void configure(ICLTensor *input, ICLTensor *output, BorderMode border_mode, uint8_t constant_border_value = 0);
 };
 }
-#endif /*__ARM_COMPUTE_CLERODE_H__ */
+#endif /*ARM_COMPUTE_CLERODE_H */
diff --git a/arm_compute/runtime/CL/functions/CLFFT1D.h b/arm_compute/runtime/CL/functions/CLFFT1D.h
index 47b1508..31e57e1 100644
--- a/arm_compute/runtime/CL/functions/CLFFT1D.h
+++ b/arm_compute/runtime/CL/functions/CLFFT1D.h
@@ -21,8 +21,8 @@
  * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
  * SOFTWARE.
  */
-#ifndef __ARM_COMPUTE_CLFFT1D_H__
-#define __ARM_COMPUTE_CLFFT1D_H__
+#ifndef ARM_COMPUTE_CLFFT1D_H
+#define ARM_COMPUTE_CLFFT1D_H
 
 #include "arm_compute/runtime/IFunction.h"
 
@@ -80,4 +80,4 @@
     bool                               _run_scale;
 };
 } // namespace arm_compute
-#endif /*__ARM_COMPUTE_CLFFT1D_H__ */
+#endif /*ARM_COMPUTE_CLFFT1D_H */
diff --git a/arm_compute/runtime/CL/functions/CLFFT2D.h b/arm_compute/runtime/CL/functions/CLFFT2D.h
index d53f1ef..d34528b 100644
--- a/arm_compute/runtime/CL/functions/CLFFT2D.h
+++ b/arm_compute/runtime/CL/functions/CLFFT2D.h
@@ -21,8 +21,8 @@
  * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
  * SOFTWARE.
  */
-#ifndef __ARM_COMPUTE_CLFFT2D_H__
-#define __ARM_COMPUTE_CLFFT2D_H__
+#ifndef ARM_COMPUTE_CLFFT2D_H
+#define ARM_COMPUTE_CLFFT2D_H
 
 #include "arm_compute/runtime/IFunction.h"
 
@@ -73,4 +73,4 @@
     CLTensor    _first_pass_tensor;
 };
 } // namespace arm_compute
-#endif /*__ARM_COMPUTE_CLFFT2D_H__ */
+#endif /*ARM_COMPUTE_CLFFT2D_H */
diff --git a/arm_compute/runtime/CL/functions/CLFFTConvolutionLayer.h b/arm_compute/runtime/CL/functions/CLFFTConvolutionLayer.h
index d326c59..34bb93a 100644
--- a/arm_compute/runtime/CL/functions/CLFFTConvolutionLayer.h
+++ b/arm_compute/runtime/CL/functions/CLFFTConvolutionLayer.h
@@ -21,8 +21,8 @@
  * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
  * SOFTWARE.
  */
-#ifndef __ARM_COMPUTE_CLFFTCONVOLUTIONLAYER_H__
-#define __ARM_COMPUTE_CLFFTCONVOLUTIONLAYER_H__
+#ifndef ARM_COMPUTE_CLFFTCONVOLUTIONLAYER_H
+#define ARM_COMPUTE_CLFFTCONVOLUTIONLAYER_H
 
 #include "arm_compute/runtime/IFunction.h"
 
@@ -151,4 +151,4 @@
     bool             _is_prepared;
 };
 } // namespace arm_compute
-#endif /* __ARM_COMPUTE_CLFFTCONVOLUTIONLAYER_H__ */
+#endif /* ARM_COMPUTE_CLFFTCONVOLUTIONLAYER_H */
diff --git a/arm_compute/runtime/CL/functions/CLFastCorners.h b/arm_compute/runtime/CL/functions/CLFastCorners.h
index 2c208ab..2a0e010 100644
--- a/arm_compute/runtime/CL/functions/CLFastCorners.h
+++ b/arm_compute/runtime/CL/functions/CLFastCorners.h
@@ -21,8 +21,8 @@
  * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
  * SOFTWARE.
  */
-#ifndef __ARM_COMPUTE_CLFASTCORNERS_H__
-#define __ARM_COMPUTE_CLFASTCORNERS_H__
+#ifndef ARM_COMPUTE_CLFASTCORNERS_H
+#define ARM_COMPUTE_CLFASTCORNERS_H
 
 #include "arm_compute/core/CL/OpenCL.h"
 #include "arm_compute/core/CL/kernels/CLFastCornersKernel.h"
@@ -89,4 +89,4 @@
     uint8_t                   _constant_border_value;
 };
 }
-#endif /*__ARM_COMPUTE_CLFASTCORNERS_H__ */
+#endif /*ARM_COMPUTE_CLFASTCORNERS_H */
diff --git a/arm_compute/runtime/CL/functions/CLFillBorder.h b/arm_compute/runtime/CL/functions/CLFillBorder.h
index f4515b6..ded79e5 100644
--- a/arm_compute/runtime/CL/functions/CLFillBorder.h
+++ b/arm_compute/runtime/CL/functions/CLFillBorder.h
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2016-2018 ARM Limited.
+ * Copyright (c) 2016-2019 ARM Limited.
  *
  * SPDX-License-Identifier: MIT
  *
@@ -21,8 +21,8 @@
  * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
  * SOFTWARE.
  */
-#ifndef __ARM_COMPUTE_CLFILLBORDER_H__
-#define __ARM_COMPUTE_CLFILLBORDER_H__
+#ifndef ARM_COMPUTE_CLFILLBORDER_H
+#define ARM_COMPUTE_CLFILLBORDER_H
 
 #include "arm_compute/core/PixelValue.h"
 #include "arm_compute/core/Types.h"
@@ -46,4 +46,4 @@
     void configure(ICLTensor *tensor, unsigned int border_width, BorderMode border_mode, const PixelValue &constant_border_value = PixelValue());
 };
 }
-#endif /*__ARM_COMPUTE_FILLBORDER_H__ */
+#endif /*ARM_COMPUTE_FILLBORDER_H */
diff --git a/arm_compute/runtime/CL/functions/CLFlattenLayer.h b/arm_compute/runtime/CL/functions/CLFlattenLayer.h
index 24ed56f..9597cd2 100644
--- a/arm_compute/runtime/CL/functions/CLFlattenLayer.h
+++ b/arm_compute/runtime/CL/functions/CLFlattenLayer.h
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2017-2018 ARM Limited.
+ * Copyright (c) 2017-2019 ARM Limited.
  *
  * SPDX-License-Identifier: MIT
  *
@@ -21,8 +21,8 @@
  * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
  * SOFTWARE.
  */
-#ifndef __ARM_COMPUTE_CLFLATTENLAYER_H__
-#define __ARM_COMPUTE_CLFLATTENLAYER_H__
+#ifndef ARM_COMPUTE_CLFLATTENLAYER_H
+#define ARM_COMPUTE_CLFLATTENLAYER_H
 
 #include "arm_compute/core/Types.h"
 #include "arm_compute/runtime/CL/ICLSimpleFunction.h"
@@ -60,4 +60,4 @@
 };
 } // namespace arm_compute
 
-#endif /* __ARM_COMPUTE_CLFLATTENLAYER_H__ */
\ No newline at end of file
+#endif /* ARM_COMPUTE_CLFLATTENLAYER_H */
\ No newline at end of file
diff --git a/arm_compute/runtime/CL/functions/CLFloor.h b/arm_compute/runtime/CL/functions/CLFloor.h
index 5e8368e..33d0321 100644
--- a/arm_compute/runtime/CL/functions/CLFloor.h
+++ b/arm_compute/runtime/CL/functions/CLFloor.h
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2017-2018 ARM Limited.
+ * Copyright (c) 2017-2019 ARM Limited.
  *
  * SPDX-License-Identifier: MIT
  *
@@ -21,8 +21,8 @@
  * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
  * SOFTWARE.
  */
-#ifndef __ARM_COMPUTE_CLFLOOR_H__
-#define __ARM_COMPUTE_CLFLOOR_H__
+#ifndef ARM_COMPUTE_CLFLOOR_H
+#define ARM_COMPUTE_CLFLOOR_H
 
 #include "arm_compute/runtime/CL/ICLSimpleFunction.h"
 
@@ -52,4 +52,4 @@
     static Status validate(const ITensorInfo *input, const ITensorInfo *output);
 };
 }
-#endif /* __ARM_COMPUTE_CLFLOOR_H__ */
+#endif /* ARM_COMPUTE_CLFLOOR_H */
diff --git a/arm_compute/runtime/CL/functions/CLFullyConnectedLayer.h b/arm_compute/runtime/CL/functions/CLFullyConnectedLayer.h
index f284359..e76a975 100644
--- a/arm_compute/runtime/CL/functions/CLFullyConnectedLayer.h
+++ b/arm_compute/runtime/CL/functions/CLFullyConnectedLayer.h
@@ -21,8 +21,8 @@
  * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
  * SOFTWARE.
  */
-#ifndef __ARM_COMPUTE_CLFULLYCONNECTEDLAYER_H__
-#define __ARM_COMPUTE_CLFULLYCONNECTEDLAYER_H__
+#ifndef ARM_COMPUTE_CLFULLYCONNECTEDLAYER_H
+#define ARM_COMPUTE_CLFULLYCONNECTEDLAYER_H
 
 #include "arm_compute/runtime/CL/ICLSimpleFunction.h"
 
@@ -198,4 +198,4 @@
     const ICLTensor                                                    *_original_weights;
 };
 } // namespace arm_compute
-#endif /* __ARM_COMPUTE_CLFULLYCONNECTEDLAYER_H__ */
+#endif /* ARM_COMPUTE_CLFULLYCONNECTEDLAYER_H */
diff --git a/arm_compute/runtime/CL/functions/CLFuseBatchNormalization.h b/arm_compute/runtime/CL/functions/CLFuseBatchNormalization.h
index 50385d4..650d2e5 100644
--- a/arm_compute/runtime/CL/functions/CLFuseBatchNormalization.h
+++ b/arm_compute/runtime/CL/functions/CLFuseBatchNormalization.h
@@ -21,8 +21,8 @@
  * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
  * SOFTWARE.
  */
-#ifndef __ARM_COMPUTE_CLFUSEBATCHNORMALIZATION_H__
-#define __ARM_COMPUTE_CLFUSEBATCHNORMALIZATION_H__
+#ifndef ARM_COMPUTE_CLFUSEBATCHNORMALIZATION_H
+#define ARM_COMPUTE_CLFUSEBATCHNORMALIZATION_H
 
 #include "arm_compute/core/CL/kernels/CLFuseBatchNormalizationKernel.h"
 #include "arm_compute/core/Types.h"
@@ -96,4 +96,4 @@
     CLFuseBatchNormalizationKernel _fuse_bn_kernel;
 };
 } // namespace arm_compute
-#endif /*__ARM_COMPUTE_CLFUSEBATCHNORMALIZATION_H__ */
+#endif /*ARM_COMPUTE_CLFUSEBATCHNORMALIZATION_H */
diff --git a/arm_compute/runtime/CL/functions/CLGEMM.h b/arm_compute/runtime/CL/functions/CLGEMM.h
index 3691fe9..bb620eb 100644
--- a/arm_compute/runtime/CL/functions/CLGEMM.h
+++ b/arm_compute/runtime/CL/functions/CLGEMM.h
@@ -21,8 +21,8 @@
  * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
  * SOFTWARE.
  */
-#ifndef __ARM_COMPUTE_CLGEMM_H__
-#define __ARM_COMPUTE_CLGEMM_H__
+#ifndef ARM_COMPUTE_CLGEMM_H
+#define ARM_COMPUTE_CLGEMM_H
 
 #include "arm_compute/core/CL/kernels/CLGEMMMatrixMultiplyKernel.h"
 #include "arm_compute/core/CL/kernels/CLGEMMMatrixMultiplyReshapedKernel.h"
@@ -191,4 +191,4 @@
 };
 } // namespace arm_compute
 
-#endif /* __ARM_COMPUTE_CLGEMM_H__ */
+#endif /* ARM_COMPUTE_CLGEMM_H */
diff --git a/arm_compute/runtime/CL/functions/CLGEMMLowpMatrixMultiplyCore.h b/arm_compute/runtime/CL/functions/CLGEMMLowpMatrixMultiplyCore.h
index b364653..770ef0b 100644
--- a/arm_compute/runtime/CL/functions/CLGEMMLowpMatrixMultiplyCore.h
+++ b/arm_compute/runtime/CL/functions/CLGEMMLowpMatrixMultiplyCore.h
@@ -21,8 +21,8 @@
  * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
  * SOFTWARE.
  */
-#ifndef __ARM_COMPUTE_CLGEMMLOWPMATRIXMULTIPLYCORE_H__
-#define __ARM_COMPUTE_CLGEMMLOWPMATRIXMULTIPLYCORE_H__
+#ifndef ARM_COMPUTE_CLGEMMLOWPMATRIXMULTIPLYCORE_H
+#define ARM_COMPUTE_CLGEMMLOWPMATRIXMULTIPLYCORE_H
 
 #include "arm_compute/core/CL/kernels/CLDepthConvertLayerKernel.h"
 #include "arm_compute/core/CL/kernels/CLGEMMLowpMatrixMultiplyKernel.h"
@@ -139,4 +139,4 @@
     bool    _convert_to_qasymm8;
 };
 } // namespace arm_compute
-#endif /*__ARM_COMPUTE_CLGEMMLOWPMATRIXMULTIPLYCORE_H__ */
\ No newline at end of file
+#endif /*ARM_COMPUTE_CLGEMMLOWPMATRIXMULTIPLYCORE_H */
\ No newline at end of file
diff --git a/arm_compute/runtime/CL/functions/CLGEMMLowpOutputStage.h b/arm_compute/runtime/CL/functions/CLGEMMLowpOutputStage.h
index 25fa142..f453879 100644
--- a/arm_compute/runtime/CL/functions/CLGEMMLowpOutputStage.h
+++ b/arm_compute/runtime/CL/functions/CLGEMMLowpOutputStage.h
@@ -308,4 +308,4 @@
     static Status validate(const ITensorInfo *input, const ITensorInfo *bias, const ITensorInfo *output, int min = 0, int max = 0);
 };
 } // namespace arm_compute
-#endif /*__ARM_COMPUTE_CLGEMMLOWPOUTPUTSTAGE_H__ */
\ No newline at end of file
+#endif /*ARM_COMPUTE_CLGEMMLOWPOUTPUTSTAGE_H */
\ No newline at end of file
diff --git a/arm_compute/runtime/CL/functions/CLGather.h b/arm_compute/runtime/CL/functions/CLGather.h
index 78bf825..7824f37 100644
--- a/arm_compute/runtime/CL/functions/CLGather.h
+++ b/arm_compute/runtime/CL/functions/CLGather.h
@@ -22,8 +22,8 @@
  * SOFTWARE.
  */
 
-#ifndef __ARM_COMPUTE_CLGATHER_H__
-#define __ARM_COMPUTE_CLGATHER_H__
+#ifndef ARM_COMPUTE_CLGATHER_H
+#define ARM_COMPUTE_CLGATHER_H
 
 #include "arm_compute/runtime/CL/ICLSimpleFunction.h"
 
@@ -56,4 +56,4 @@
     static Status validate(const ITensorInfo *input, const ITensorInfo *indices, const ITensorInfo *output, int axis = 0);
 };
 } // namespace arm_compute
-#endif /* __ARM_COMPUTE_CLGATHER_H__ */
+#endif /* ARM_COMPUTE_CLGATHER_H */
diff --git a/arm_compute/runtime/CL/functions/CLGaussian3x3.h b/arm_compute/runtime/CL/functions/CLGaussian3x3.h
index f8223bc..2caf6c9 100644
--- a/arm_compute/runtime/CL/functions/CLGaussian3x3.h
+++ b/arm_compute/runtime/CL/functions/CLGaussian3x3.h
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2016, 2017 ARM Limited.
+ * Copyright (c) 2016-2019 ARM Limited.
  *
  * SPDX-License-Identifier: MIT
  *
@@ -21,8 +21,8 @@
  * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
  * SOFTWARE.
  */
-#ifndef __ARM_COMPUTE_CLGAUSSIAN3X3_H__
-#define __ARM_COMPUTE_CLGAUSSIAN3X3_H__
+#ifndef ARM_COMPUTE_CLGAUSSIAN3X3_H
+#define ARM_COMPUTE_CLGAUSSIAN3X3_H
 
 #include "arm_compute/core/Types.h"
 #include "arm_compute/runtime/CL/ICLSimpleFunction.h"
@@ -52,4 +52,4 @@
     void configure(ICLTensor *input, ICLTensor *output, BorderMode border_mode, uint8_t constant_border_value = 0);
 };
 }
-#endif /*__ARM_COMPUTE_CLGAUSSIAN3X3_H__ */
+#endif /*ARM_COMPUTE_CLGAUSSIAN3X3_H */
diff --git a/arm_compute/runtime/CL/functions/CLGaussian5x5.h b/arm_compute/runtime/CL/functions/CLGaussian5x5.h
index 0f5a6cd..5d121a4 100644
--- a/arm_compute/runtime/CL/functions/CLGaussian5x5.h
+++ b/arm_compute/runtime/CL/functions/CLGaussian5x5.h
@@ -21,8 +21,8 @@
  * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
  * SOFTWARE.
  */
-#ifndef __ARM_COMPUTE_CLGAUSSIAN5X5_H__
-#define __ARM_COMPUTE_CLGAUSSIAN5X5_H__
+#ifndef ARM_COMPUTE_CLGAUSSIAN5X5_H
+#define ARM_COMPUTE_CLGAUSSIAN5X5_H
 
 #include "arm_compute/core/CL/kernels/CLFillBorderKernel.h"
 #include "arm_compute/core/CL/kernels/CLGaussian5x5Kernel.h"
@@ -74,4 +74,4 @@
     CLImage                 _tmp;            /**< Temporary buffer */
 };
 }
-#endif /*__ARM_COMPUTE_CLGAUSSIAN5X5_H__ */
+#endif /*ARM_COMPUTE_CLGAUSSIAN5X5_H */
diff --git a/arm_compute/runtime/CL/functions/CLGaussianPyramid.h b/arm_compute/runtime/CL/functions/CLGaussianPyramid.h
index 292d078..aa90a5d 100644
--- a/arm_compute/runtime/CL/functions/CLGaussianPyramid.h
+++ b/arm_compute/runtime/CL/functions/CLGaussianPyramid.h
@@ -21,8 +21,8 @@
  * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
  * SOFTWARE.
  */
-#ifndef __ARM_COMPUTE_CLGAUSSIANPYRAMID_H__
-#define __ARM_COMPUTE_CLGAUSSIANPYRAMID_H__
+#ifndef ARM_COMPUTE_CLGAUSSIANPYRAMID_H
+#define ARM_COMPUTE_CLGAUSSIANPYRAMID_H
 
 #include "arm_compute/core/CL/kernels/CLGaussianPyramidKernel.h"
 
@@ -116,4 +116,4 @@
     std::vector<CLScaleKernel> _scale_nearest;
 };
 }
-#endif /*__ARM_COMPUTE_CLGAUSSIANPYRAMID_H__ */
+#endif /*ARM_COMPUTE_CLGAUSSIANPYRAMID_H */
diff --git a/arm_compute/runtime/CL/functions/CLGenerateProposalsLayer.h b/arm_compute/runtime/CL/functions/CLGenerateProposalsLayer.h
index e14e195..8c91a5d 100644
--- a/arm_compute/runtime/CL/functions/CLGenerateProposalsLayer.h
+++ b/arm_compute/runtime/CL/functions/CLGenerateProposalsLayer.h
@@ -21,8 +21,8 @@
  * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
  * SOFTWARE.
  */
-#ifndef __ARM_COMPUTE_CLGENERATEPROPOSALSLAYER_H__
-#define __ARM_COMPUTE_CLGENERATEPROPOSALSLAYER_H__
+#ifndef ARM_COMPUTE_CLGENERATEPROPOSALSLAYER_H
+#define ARM_COMPUTE_CLGENERATEPROPOSALSLAYER_H
 #include "arm_compute/core/CL/kernels/CLBoundingBoxTransformKernel.h"
 #include "arm_compute/core/CL/kernels/CLDequantizationLayerKernel.h"
 #include "arm_compute/core/CL/kernels/CLGenerateProposalsLayerKernel.h"
@@ -158,4 +158,4 @@
     void run_cpp_nms_kernel();
 };
 } // namespace arm_compute
-#endif /* __ARM_COMPUTE_CLGENERATEPROPOSALSLAYER_H__ */
+#endif /* ARM_COMPUTE_CLGENERATEPROPOSALSLAYER_H */
diff --git a/arm_compute/runtime/CL/functions/CLHOGDescriptor.h b/arm_compute/runtime/CL/functions/CLHOGDescriptor.h
index ce229ea..3214e8c 100644
--- a/arm_compute/runtime/CL/functions/CLHOGDescriptor.h
+++ b/arm_compute/runtime/CL/functions/CLHOGDescriptor.h
@@ -21,8 +21,8 @@
  * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
  * SOFTWARE.
  */
-#ifndef __ARM_COMPUTE_CLHOGDESCRIPTOR_H__
-#define __ARM_COMPUTE_CLHOGDESCRIPTOR_H__
+#ifndef ARM_COMPUTE_CLHOGDESCRIPTOR_H
+#define ARM_COMPUTE_CLHOGDESCRIPTOR_H
 
 #include "arm_compute/core/CL/kernels/CLHOGDescriptorKernel.h"
 #include "arm_compute/core/Types.h"
@@ -74,4 +74,4 @@
 };
 }
 
-#endif /* __ARM_COMPUTE_CLHOGDESCRIPTOR_H__ */
+#endif /* ARM_COMPUTE_CLHOGDESCRIPTOR_H */
diff --git a/arm_compute/runtime/CL/functions/CLHOGDetector.h b/arm_compute/runtime/CL/functions/CLHOGDetector.h
index 1587836..6703de9 100644
--- a/arm_compute/runtime/CL/functions/CLHOGDetector.h
+++ b/arm_compute/runtime/CL/functions/CLHOGDetector.h
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2017 ARM Limited.
+ * Copyright (c) 2017-2019 ARM Limited.
  *
  * SPDX-License-Identifier: MIT
  *
@@ -21,8 +21,8 @@
  * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
  * SOFTWARE.
  */
-#ifndef __ARM_COMPUTE_CLHOGDETECTOR_H__
-#define __ARM_COMPUTE_CLHOGDETECTOR_H__
+#ifndef ARM_COMPUTE_CLHOGDETECTOR_H
+#define ARM_COMPUTE_CLHOGDETECTOR_H
 
 #include "arm_compute/core/CL/OpenCL.h"
 #include "arm_compute/core/CL/kernels/CLHOGDetectorKernel.h"
@@ -75,4 +75,4 @@
 };
 }
 
-#endif /* __ARM_COMPUTE_CLHOGDETECTOR_H__ */
+#endif /* ARM_COMPUTE_CLHOGDETECTOR_H */
diff --git a/arm_compute/runtime/CL/functions/CLHOGGradient.h b/arm_compute/runtime/CL/functions/CLHOGGradient.h
index dbcc335..ec4a187 100644
--- a/arm_compute/runtime/CL/functions/CLHOGGradient.h
+++ b/arm_compute/runtime/CL/functions/CLHOGGradient.h
@@ -21,8 +21,8 @@
  * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
  * SOFTWARE.
  */
-#ifndef __ARM_COMPUTE_CLHOGGRADIENT_H__
-#define __ARM_COMPUTE_CLHOGGRADIENT_H__
+#ifndef ARM_COMPUTE_CLHOGGRADIENT_H
+#define ARM_COMPUTE_CLHOGGRADIENT_H
 
 #include "arm_compute/core/CL/ICLKernel.h"
 
@@ -73,4 +73,4 @@
     CLTensor               _gy;
 };
 }
-#endif /*__ARM_COMPUTE_CLHOGGRADIENT_H__ */
+#endif /*ARM_COMPUTE_CLHOGGRADIENT_H */
diff --git a/arm_compute/runtime/CL/functions/CLHOGMultiDetection.h b/arm_compute/runtime/CL/functions/CLHOGMultiDetection.h
index 6f87eb5..424c69d 100644
--- a/arm_compute/runtime/CL/functions/CLHOGMultiDetection.h
+++ b/arm_compute/runtime/CL/functions/CLHOGMultiDetection.h
@@ -21,8 +21,8 @@
  * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
  * SOFTWARE.
  */
-#ifndef __ARM_COMPUTE_CLHOGMULTIDETECTION_H__
-#define __ARM_COMPUTE_CLHOGMULTIDETECTION_H__
+#ifndef ARM_COMPUTE_CLHOGMULTIDETECTION_H
+#define ARM_COMPUTE_CLHOGMULTIDETECTION_H
 
 #include "arm_compute/core/CL/ICLArray.h"
 #include "arm_compute/core/CL/ICLMultiHOG.h"
@@ -107,4 +107,4 @@
 };
 }
 
-#endif /* __ARM_COMPUTE_CLHOGMULTIDETECTION_H__ */
\ No newline at end of file
+#endif /* ARM_COMPUTE_CLHOGMULTIDETECTION_H */
\ No newline at end of file
diff --git a/arm_compute/runtime/CL/functions/CLHarrisCorners.h b/arm_compute/runtime/CL/functions/CLHarrisCorners.h
index d8cc7c7..6c89d6d 100644
--- a/arm_compute/runtime/CL/functions/CLHarrisCorners.h
+++ b/arm_compute/runtime/CL/functions/CLHarrisCorners.h
@@ -21,8 +21,8 @@
  * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
  * SOFTWARE.
  */
-#ifndef __ARM_COMPUTE_CLHARRISCORNERS_H__
-#define __ARM_COMPUTE_CLHARRISCORNERS_H__
+#ifndef ARM_COMPUTE_CLHARRISCORNERS_H
+#define ARM_COMPUTE_CLHARRISCORNERS_H
 
 #include "arm_compute/runtime/IFunction.h"
 
@@ -104,4 +104,4 @@
     ICLKeyPointArray              *_corners;               /**< Output corners array */
 };
 }
-#endif /*__ARM_COMPUTE_CLHARRISCORNERS_H__ */
+#endif /*ARM_COMPUTE_CLHARRISCORNERS_H */
diff --git a/arm_compute/runtime/CL/functions/CLHistogram.h b/arm_compute/runtime/CL/functions/CLHistogram.h
index 05b08db..ad38924 100644
--- a/arm_compute/runtime/CL/functions/CLHistogram.h
+++ b/arm_compute/runtime/CL/functions/CLHistogram.h
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2016-2018 ARM Limited.
+ * Copyright (c) 2016-2019 ARM Limited.
  *
  * SPDX-License-Identifier: MIT
  *
@@ -21,8 +21,8 @@
  * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
  * SOFTWARE.
  */
-#ifndef __ARM_COMPUTE_CLHISTOGRAM_H__
-#define __ARM_COMPUTE_CLHISTOGRAM_H__
+#ifndef ARM_COMPUTE_CLHISTOGRAM_H
+#define ARM_COMPUTE_CLHISTOGRAM_H
 
 #include "arm_compute/core/CL/kernels/CLHistogramKernel.h"
 #include "arm_compute/runtime/IFunction.h"
@@ -64,4 +64,4 @@
     CLHistogramBorderKernel _kernel_border; /**< Border kernel to run */
 };
 }
-#endif /*__ARM_COMPUTE_CLHISTOGRAM_H__ */
+#endif /*ARM_COMPUTE_CLHISTOGRAM_H */
diff --git a/arm_compute/runtime/CL/functions/CLInstanceNormalizationLayer.h b/arm_compute/runtime/CL/functions/CLInstanceNormalizationLayer.h
index e13826a..ca0da51 100644
--- a/arm_compute/runtime/CL/functions/CLInstanceNormalizationLayer.h
+++ b/arm_compute/runtime/CL/functions/CLInstanceNormalizationLayer.h
@@ -21,8 +21,8 @@
  * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
  * SOFTWARE.
  */
-#ifndef __ARM_COMPUTE_CLINSTANCENORMALIZATIONLAYER_H__
-#define __ARM_COMPUTE_CLINSTANCENORMALIZATIONLAYER_H__
+#ifndef ARM_COMPUTE_CLINSTANCENORMALIZATIONLAYER_H
+#define ARM_COMPUTE_CLINSTANCENORMALIZATIONLAYER_H
 
 #include "arm_compute/runtime/CL/ICLSimpleFunction.h"
 
@@ -64,4 +64,4 @@
     static Status validate(const ITensorInfo *input, const ITensorInfo *output, float gamma = 1.0f, float beta = 0.0f, float epsilon = 1e-12f);
 };
 } // namespace arm_compute
-#endif /* __ARM_COMPUTE_CLINSTANCENORMALIZATIONLAYER_H__ */
+#endif /* ARM_COMPUTE_CLINSTANCENORMALIZATIONLAYER_H */
diff --git a/arm_compute/runtime/CL/functions/CLIntegralImage.h b/arm_compute/runtime/CL/functions/CLIntegralImage.h
index 71f6897..2a452a9 100644
--- a/arm_compute/runtime/CL/functions/CLIntegralImage.h
+++ b/arm_compute/runtime/CL/functions/CLIntegralImage.h
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2016, 2017 ARM Limited.
+ * Copyright (c) 2016-2019 ARM Limited.
  *
  * SPDX-License-Identifier: MIT
  *
@@ -21,8 +21,8 @@
  * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
  * SOFTWARE.
  */
-#ifndef __ARM_COMPUTE_CLINTEGRALIMAGE_H__
-#define __ARM_COMPUTE_CLINTEGRALIMAGE_H__
+#ifndef ARM_COMPUTE_CLINTEGRALIMAGE_H
+#define ARM_COMPUTE_CLINTEGRALIMAGE_H
 
 #include "arm_compute/core/CL/kernels/CLIntegralImageKernel.h"
 #include "arm_compute/runtime/IFunction.h"
@@ -57,4 +57,4 @@
     CLIntegralImageVertKernel _integral_vert; /**< Integral Image Vertical kernel */
 };
 }
-#endif /*__ARM_COMPUTE_CLINTEGRALIMAGE_H__ */
+#endif /*ARM_COMPUTE_CLINTEGRALIMAGE_H */
diff --git a/arm_compute/runtime/CL/functions/CLL2NormalizeLayer.h b/arm_compute/runtime/CL/functions/CLL2NormalizeLayer.h
index 2617076..e200dc7 100644
--- a/arm_compute/runtime/CL/functions/CLL2NormalizeLayer.h
+++ b/arm_compute/runtime/CL/functions/CLL2NormalizeLayer.h
@@ -21,8 +21,8 @@
  * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
  * SOFTWARE.
  */
-#ifndef __ARM_COMPUTE_CLL2NORMALIZELAYER_H__
-#define __ARM_COMPUTE_CLL2NORMALIZELAYER_H__
+#ifndef ARM_COMPUTE_CLL2NORMALIZELAYER_H
+#define ARM_COMPUTE_CLL2NORMALIZELAYER_H
 
 #include "arm_compute/core/CL/kernels/CLL2NormalizeLayerKernel.h"
 #include "arm_compute/core/Types.h"
@@ -81,4 +81,4 @@
     CLTensor                 _sumsq;
 };
 }
-#endif /*__ARM_COMPUTE_CLL2NORMALIZELAYER_H__ */
+#endif /*ARM_COMPUTE_CLL2NORMALIZELAYER_H */
diff --git a/arm_compute/runtime/CL/functions/CLLSTMLayer.h b/arm_compute/runtime/CL/functions/CLLSTMLayer.h
index 20b20b6..9509016 100644
--- a/arm_compute/runtime/CL/functions/CLLSTMLayer.h
+++ b/arm_compute/runtime/CL/functions/CLLSTMLayer.h
@@ -21,8 +21,8 @@
  * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
  * SOFTWARE.
  */
-#ifndef __ARM_COMPUTE_CLLSTMLAYER_H__
-#define __ARM_COMPUTE_CLLSTMLAYER_H__
+#ifndef ARM_COMPUTE_CLLSTMLAYER_H
+#define ARM_COMPUTE_CLLSTMLAYER_H
 
 #include "arm_compute/runtime/IFunction.h"
 
@@ -240,4 +240,4 @@
     bool                                 _is_layer_norm_lstm;
 };
 } // namespace arm_compute
-#endif /* __ARM_COMPUTE_CLLSTMLAYER_H__ */
+#endif /* ARM_COMPUTE_CLLSTMLAYER_H */
diff --git a/arm_compute/runtime/CL/functions/CLLSTMLayerQuantized.h b/arm_compute/runtime/CL/functions/CLLSTMLayerQuantized.h
index 12040a9..1d39060 100644
--- a/arm_compute/runtime/CL/functions/CLLSTMLayerQuantized.h
+++ b/arm_compute/runtime/CL/functions/CLLSTMLayerQuantized.h
@@ -21,8 +21,8 @@
  * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
  * SOFTWARE.
  */
-#ifndef __ARM_COMPUTE_CLLSTMLAYERQUANTIZED_H__
-#define __ARM_COMPUTE_CLLSTMLAYERQUANTIZED_H__
+#ifndef ARM_COMPUTE_CLLSTMLAYERQUANTIZED_H
+#define ARM_COMPUTE_CLLSTMLAYERQUANTIZED_H
 
 #include "arm_compute/core/Types.h"
 #include "arm_compute/runtime/CL/functions/CLActivationLayer.h"
@@ -200,4 +200,4 @@
     bool _is_prepared;
 };
 } // namespace arm_compute
-#endif /* __ARM_COMPUTE_CLLSTMLAYERQUANTIZED_H__ */
+#endif /* ARM_COMPUTE_CLLSTMLAYERQUANTIZED_H */
diff --git a/arm_compute/runtime/CL/functions/CLLaplacianPyramid.h b/arm_compute/runtime/CL/functions/CLLaplacianPyramid.h
index 7287204..a407e98 100644
--- a/arm_compute/runtime/CL/functions/CLLaplacianPyramid.h
+++ b/arm_compute/runtime/CL/functions/CLLaplacianPyramid.h
@@ -21,8 +21,8 @@
  * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
  * SOFTWARE.
  */
-#ifndef __ARM_COMPUTE_CLLAPLACIANPYRAMID_H__
-#define __ARM_COMPUTE_CLLAPLACIANPYRAMID_H__
+#ifndef ARM_COMPUTE_CLLAPLACIANPYRAMID_H
+#define ARM_COMPUTE_CLLAPLACIANPYRAMID_H
 
 #include "arm_compute/core/Types.h"
 #include "arm_compute/runtime/CL/CLPyramid.h"
@@ -82,4 +82,4 @@
     CLPyramid                            _conv_pyr;
 };
 }
-#endif /*__ARM_COMPUTE_CLLAPLACIANPYRAMID_H__ */
+#endif /*ARM_COMPUTE_CLLAPLACIANPYRAMID_H */
diff --git a/arm_compute/runtime/CL/functions/CLLaplacianReconstruct.h b/arm_compute/runtime/CL/functions/CLLaplacianReconstruct.h
index 8bae119..3407f46 100644
--- a/arm_compute/runtime/CL/functions/CLLaplacianReconstruct.h
+++ b/arm_compute/runtime/CL/functions/CLLaplacianReconstruct.h
@@ -21,8 +21,8 @@
  * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
  * SOFTWARE.
  */
-#ifndef __ARM_COMPUTE_CLLAPLACIANRECONSTRUCT_H__
-#define __ARM_COMPUTE_CLLAPLACIANRECONSTRUCT_H__
+#ifndef ARM_COMPUTE_CLLAPLACIANRECONSTRUCT_H
+#define ARM_COMPUTE_CLLAPLACIANRECONSTRUCT_H
 
 #include "arm_compute/core/Types.h"
 #include "arm_compute/runtime/CL/CLPyramid.h"
@@ -88,4 +88,4 @@
     CLDepthConvertLayer               _depthf;
 };
 }
-#endif /*__ARM_COMPUTE_CLLAPLACIANRECONSTRUCT_H__ */
+#endif /*ARM_COMPUTE_CLLAPLACIANRECONSTRUCT_H */
diff --git a/arm_compute/runtime/CL/functions/CLLocallyConnectedLayer.h b/arm_compute/runtime/CL/functions/CLLocallyConnectedLayer.h
index 36228bd..1186a44 100644
--- a/arm_compute/runtime/CL/functions/CLLocallyConnectedLayer.h
+++ b/arm_compute/runtime/CL/functions/CLLocallyConnectedLayer.h
@@ -21,8 +21,8 @@
  * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
  * SOFTWARE.
  */
-#ifndef __ARM_COMPUTE_CLLOCALLYCONNECTEDLAYER_H__
-#define __ARM_COMPUTE_CLLOCALLYCONNECTEDLAYER_H__
+#ifndef ARM_COMPUTE_CLLOCALLYCONNECTEDLAYER_H
+#define ARM_COMPUTE_CLLOCALLYCONNECTEDLAYER_H
 
 #include "arm_compute/runtime/IFunction.h"
 
@@ -105,4 +105,4 @@
     const ICLTensor                       *_original_weights;
 };
 }
-#endif /* __ARM_COMPUTE_CLLOCALLYCONNECTEDLAYER_H__ */
+#endif /* ARM_COMPUTE_CLLOCALLYCONNECTEDLAYER_H */
diff --git a/arm_compute/runtime/CL/functions/CLMagnitude.h b/arm_compute/runtime/CL/functions/CLMagnitude.h
index 9fd85f9..2f5932b 100644
--- a/arm_compute/runtime/CL/functions/CLMagnitude.h
+++ b/arm_compute/runtime/CL/functions/CLMagnitude.h
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2016-2018 ARM Limited.
+ * Copyright (c) 2016-2019 ARM Limited.
  *
  * SPDX-License-Identifier: MIT
  *
@@ -21,8 +21,8 @@
  * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
  * SOFTWARE.
  */
-#ifndef __ARM_COMPUTE_CLMAGNITUDE_H__
-#define __ARM_COMPUTE_CLMAGNITUDE_H__
+#ifndef ARM_COMPUTE_CLMAGNITUDE_H
+#define ARM_COMPUTE_CLMAGNITUDE_H
 
 #include "arm_compute/core/Types.h"
 #include "arm_compute/runtime/CL/ICLSimpleFunction.h"
@@ -45,4 +45,4 @@
     void configure(const ICLTensor *input1, const ICLTensor *input2, ICLTensor *output, MagnitudeType mag_type = MagnitudeType::L2NORM);
 };
 }
-#endif /*__ARM_COMPUTE_CLMAGNITUDE_H__ */
+#endif /*ARM_COMPUTE_CLMAGNITUDE_H */
diff --git a/arm_compute/runtime/CL/functions/CLMeanStdDev.h b/arm_compute/runtime/CL/functions/CLMeanStdDev.h
index 2e4e884..fea1ed1 100644
--- a/arm_compute/runtime/CL/functions/CLMeanStdDev.h
+++ b/arm_compute/runtime/CL/functions/CLMeanStdDev.h
@@ -21,8 +21,8 @@
  * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
  * SOFTWARE.
  */
-#ifndef __ARM_COMPUTE_CLMEANSTDDEV_H__
-#define __ARM_COMPUTE_CLMEANSTDDEV_H__
+#ifndef ARM_COMPUTE_CLMEANSTDDEV_H
+#define ARM_COMPUTE_CLMEANSTDDEV_H
 
 #include "arm_compute/core/CL/OpenCL.h"
 #include "arm_compute/core/CL/kernels/CLFillBorderKernel.h"
@@ -91,4 +91,4 @@
     cl::Buffer           _global_sum_squared;         /**< Variable that holds the global sum of squared values among calls in order to ease reduction */
 };
 }
-#endif /*__ARM_COMPUTE_CLMEANSTDDEV_H__ */
+#endif /*ARM_COMPUTE_CLMEANSTDDEV_H */
diff --git a/arm_compute/runtime/CL/functions/CLMeanStdDevNormalizationLayer.h b/arm_compute/runtime/CL/functions/CLMeanStdDevNormalizationLayer.h
index 087650b..565f8f3 100644
--- a/arm_compute/runtime/CL/functions/CLMeanStdDevNormalizationLayer.h
+++ b/arm_compute/runtime/CL/functions/CLMeanStdDevNormalizationLayer.h
@@ -21,8 +21,8 @@
  * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
  * SOFTWARE.
  */
-#ifndef __ARM_COMPUTE_CLMEANSTDDEVNORMALIZATIONLAYER_H__
-#define __ARM_COMPUTE_CLMEANSTDDEVNORMALIZATIONLAYER_H__
+#ifndef ARM_COMPUTE_CLMEANSTDDEVNORMALIZATIONLAYER_H
+#define ARM_COMPUTE_CLMEANSTDDEVNORMALIZATIONLAYER_H
 
 #include "arm_compute/core/Types.h"
 #include "arm_compute/runtime/CL/ICLSimpleFunction.h"
@@ -56,4 +56,4 @@
     static Status validate(const ITensorInfo *input, const ITensorInfo *output = nullptr, float epsilon = 1e-8f);
 };
 } // namespace arm_compute
-#endif /*__ARM_COMPUTE_CLMEANSTDDEVNORMALIZATIONLAYER_H__ */
+#endif /*ARM_COMPUTE_CLMEANSTDDEVNORMALIZATIONLAYER_H */
diff --git a/arm_compute/runtime/CL/functions/CLMedian3x3.h b/arm_compute/runtime/CL/functions/CLMedian3x3.h
index af84ba7..3a9a95a 100644
--- a/arm_compute/runtime/CL/functions/CLMedian3x3.h
+++ b/arm_compute/runtime/CL/functions/CLMedian3x3.h
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2016, 2017 ARM Limited.
+ * Copyright (c) 2016-2019 ARM Limited.
  *
  * SPDX-License-Identifier: MIT
  *
@@ -21,8 +21,8 @@
  * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
  * SOFTWARE.
  */
-#ifndef __ARM_COMPUTE_CLMEDIAN3X3_H__
-#define __ARM_COMPUTE_CLMEDIAN3X3_H__
+#ifndef ARM_COMPUTE_CLMEDIAN3X3_H
+#define ARM_COMPUTE_CLMEDIAN3X3_H
 
 #include "arm_compute/core/Types.h"
 #include "arm_compute/runtime/CL/ICLSimpleFunction.h"
@@ -52,4 +52,4 @@
     void configure(ICLTensor *input, ICLTensor *output, BorderMode border_mode, uint8_t constant_border_value = 0);
 };
 }
-#endif /*__ARM_COMPUTE_CLMEDIAN3X3_H__ */
+#endif /*ARM_COMPUTE_CLMEDIAN3X3_H */
diff --git a/arm_compute/runtime/CL/functions/CLMinMaxLocation.h b/arm_compute/runtime/CL/functions/CLMinMaxLocation.h
index 52a2857..30a29f2 100644
--- a/arm_compute/runtime/CL/functions/CLMinMaxLocation.h
+++ b/arm_compute/runtime/CL/functions/CLMinMaxLocation.h
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2017 ARM Limited.
+ * Copyright (c) 2017-2019 ARM Limited.
  *
  * SPDX-License-Identifier: MIT
  *
@@ -21,8 +21,8 @@
  * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
  * SOFTWARE.
  */
-#ifndef __ARM_COMPUTE_CLMINMAXLOCATION_H__
-#define __ARM_COMPUTE_CLMINMAXLOCATION_H__
+#ifndef ARM_COMPUTE_CLMINMAXLOCATION_H
+#define ARM_COMPUTE_CLMINMAXLOCATION_H
 
 #include "arm_compute/core/CL/kernels/CLMinMaxLocationKernel.h"
 #include "arm_compute/runtime/CL/CLArray.h"
@@ -83,4 +83,4 @@
     CLCoordinates2DArray *_max_loc;             /**< Maximum value occurrences  coordinates. */
 };
 }
-#endif /*__ARM_COMPUTE_CLMINMAXLOCATION_H__ */
+#endif /*ARM_COMPUTE_CLMINMAXLOCATION_H */
diff --git a/arm_compute/runtime/CL/functions/CLNonLinearFilter.h b/arm_compute/runtime/CL/functions/CLNonLinearFilter.h
index 9eee33e..a7c87d3 100644
--- a/arm_compute/runtime/CL/functions/CLNonLinearFilter.h
+++ b/arm_compute/runtime/CL/functions/CLNonLinearFilter.h
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2017 ARM Limited.
+ * Copyright (c) 2017-2019 ARM Limited.
  *
  * SPDX-License-Identifier: MIT
  *
@@ -21,8 +21,8 @@
  * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
  * SOFTWARE.
  */
-#ifndef __ARM_COMPUTE_CLNONLINEARFILTER_H__
-#define __ARM_COMPUTE_CLNONLINEARFILTER_H__
+#ifndef ARM_COMPUTE_CLNONLINEARFILTER_H
+#define ARM_COMPUTE_CLNONLINEARFILTER_H
 
 #include "arm_compute/core/Types.h"
 #include "arm_compute/runtime/CL/ICLSimpleFunction.h"
@@ -58,4 +58,4 @@
                    BorderMode border_mode, uint8_t constant_border_value = 0);
 };
 }
-#endif /*__ARM_COMPUTE_CLNONLINEARFILTER_H__ */
+#endif /*ARM_COMPUTE_CLNONLINEARFILTER_H */
diff --git a/arm_compute/runtime/CL/functions/CLNonMaximaSuppression3x3.h b/arm_compute/runtime/CL/functions/CLNonMaximaSuppression3x3.h
index 7adced4..0859a09 100644
--- a/arm_compute/runtime/CL/functions/CLNonMaximaSuppression3x3.h
+++ b/arm_compute/runtime/CL/functions/CLNonMaximaSuppression3x3.h
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2016, 2017 ARM Limited.
+ * Copyright (c) 2016-2019 ARM Limited.
  *
  * SPDX-License-Identifier: MIT
  *
@@ -21,8 +21,8 @@
  * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
  * SOFTWARE.
  */
-#ifndef __ARM_COMPUTE_CLNONMAXIMASUPPRESSION3X3_H__
-#define __ARM_COMPUTE_CLNONMAXIMASUPPRESSION3X3_H__
+#ifndef ARM_COMPUTE_CLNONMAXIMASUPPRESSION3X3_H
+#define ARM_COMPUTE_CLNONMAXIMASUPPRESSION3X3_H
 
 #include "arm_compute/core/Types.h"
 #include "arm_compute/runtime/CL/ICLSimpleFunction.h"
@@ -52,4 +52,4 @@
     void configure(ICLTensor *input, ICLTensor *output, BorderMode border_mode);
 };
 }
-#endif /* __ARM_COMPUTE_CLNONMAXIMASUPPRESSION3X3_H__ */
+#endif /* ARM_COMPUTE_CLNONMAXIMASUPPRESSION3X3_H */
diff --git a/arm_compute/runtime/CL/functions/CLNormalizationLayer.h b/arm_compute/runtime/CL/functions/CLNormalizationLayer.h
index 1ed87fd..d06bf56 100644
--- a/arm_compute/runtime/CL/functions/CLNormalizationLayer.h
+++ b/arm_compute/runtime/CL/functions/CLNormalizationLayer.h
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2017-2018 ARM Limited.
+ * Copyright (c) 2017-2019 ARM Limited.
  *
  * SPDX-License-Identifier: MIT
  *
@@ -21,8 +21,8 @@
  * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
  * SOFTWARE.
  */
-#ifndef __ARM_COMPUTE_CLNORMALIZATIONLAYER_H__
-#define __ARM_COMPUTE_CLNORMALIZATIONLAYER_H__
+#ifndef ARM_COMPUTE_CLNORMALIZATIONLAYER_H
+#define ARM_COMPUTE_CLNORMALIZATIONLAYER_H
 
 #include "arm_compute/runtime/IFunction.h"
 
@@ -78,4 +78,4 @@
     CLFillBorderKernel         _border_handler; /**< Kernel to handle  borders */
 };
 }
-#endif /* __ARM_COMPUTE_CLNORMALIZATIONLAYER_H__ */
+#endif /* ARM_COMPUTE_CLNORMALIZATIONLAYER_H */
diff --git a/arm_compute/runtime/CL/functions/CLNormalizePlanarYUVLayer.h b/arm_compute/runtime/CL/functions/CLNormalizePlanarYUVLayer.h
index 6d28803..4fe5a11 100644
--- a/arm_compute/runtime/CL/functions/CLNormalizePlanarYUVLayer.h
+++ b/arm_compute/runtime/CL/functions/CLNormalizePlanarYUVLayer.h
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2018 ARM Limited.
+ * Copyright (c) 2018-2019 ARM Limited.
  *
  * SPDX-License-Identifier: MIT
  *
@@ -21,8 +21,8 @@
  * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
  * SOFTWARE.
  */
-#ifndef __ARM_COMPUTE_CLNORMALIZEPLANARYUVLAYER_H__
-#define __ARM_COMPUTE_CLNORMALIZEPLANARYUVLAYER_H__
+#ifndef ARM_COMPUTE_CLNORMALIZEPLANARYUVLAYER_H
+#define ARM_COMPUTE_CLNORMALIZEPLANARYUVLAYER_H
 
 #include "arm_compute/runtime/IFunction.h"
 
@@ -72,4 +72,4 @@
     CLNormalizePlanarYUVLayerKernel _norm_kernel; /**< NormalizePlanarYUV layer kernel to run */
 };
 } // namespace arm_compute
-#endif /* __ARM_COMPUTE_CLNORMALIZEPLANARYUVLAYER_H__ */
+#endif /* ARM_COMPUTE_CLNORMALIZEPLANARYUVLAYER_H */
diff --git a/arm_compute/runtime/CL/functions/CLOpticalFlow.h b/arm_compute/runtime/CL/functions/CLOpticalFlow.h
index f577520..33df175 100644
--- a/arm_compute/runtime/CL/functions/CLOpticalFlow.h
+++ b/arm_compute/runtime/CL/functions/CLOpticalFlow.h
@@ -21,8 +21,8 @@
  * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
  * SOFTWARE.
  */
-#ifndef __ARM_COMPUTE_CLOPTICALFLOW_H__
-#define __ARM_COMPUTE_CLOPTICALFLOW_H__
+#ifndef ARM_COMPUTE_CLOPTICALFLOW_H
+#define ARM_COMPUTE_CLOPTICALFLOW_H
 
 #include "arm_compute/core/CL/kernels/CLLKTrackerKernel.h"
 
@@ -114,4 +114,4 @@
     size_t                                     _num_levels;
 };
 }
-#endif /*__ARM_COMPUTE_CLOPTICALFLOW_H__ */
+#endif /*ARM_COMPUTE_CLOPTICALFLOW_H */
diff --git a/arm_compute/runtime/CL/functions/CLPReluLayer.h b/arm_compute/runtime/CL/functions/CLPReluLayer.h
index 871b48e..42876cd 100644
--- a/arm_compute/runtime/CL/functions/CLPReluLayer.h
+++ b/arm_compute/runtime/CL/functions/CLPReluLayer.h
@@ -21,8 +21,8 @@
  * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
  * SOFTWARE.
  */
-#ifndef __ARM_COMPUTE_CLPRELULAYER_H__
-#define __ARM_COMPUTE_CLPRELULAYER_H__
+#ifndef ARM_COMPUTE_CLPRELULAYER_H
+#define ARM_COMPUTE_CLPRELULAYER_H
 
 #include "arm_compute/core/Types.h"
 #include "arm_compute/runtime/CL/ICLSimpleFunction.h"
@@ -58,4 +58,4 @@
     static Status validate(const ITensorInfo *input, const ITensorInfo *alpha, const ITensorInfo *output);
 };
 } // namespace arm_compute
-#endif /* __ARM_COMPUTE_CLPRELULAYER_H__ */
+#endif /* ARM_COMPUTE_CLPRELULAYER_H */
diff --git a/arm_compute/runtime/CL/functions/CLPadLayer.h b/arm_compute/runtime/CL/functions/CLPadLayer.h
index fd801ea..98f1e5f 100644
--- a/arm_compute/runtime/CL/functions/CLPadLayer.h
+++ b/arm_compute/runtime/CL/functions/CLPadLayer.h
@@ -21,8 +21,8 @@
  * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
  * SOFTWARE.
  */
-#ifndef __ARM_COMPUTE_CLPADLAYER_H__
-#define __ARM_COMPUTE_CLPADLAYER_H__
+#ifndef ARM_COMPUTE_CLPADLAYER_H
+#define ARM_COMPUTE_CLPADLAYER_H
 
 #include "arm_compute/core/CL/kernels/CLCopyKernel.h"
 #include "arm_compute/core/CL/kernels/CLPadLayerKernel.h"
@@ -87,4 +87,4 @@
     bool             _perform_pad;
 };
 } // namespace arm_compute
-#endif /*__ARM_COMPUTE_PADLAYER_H__ */
+#endif /*ARM_COMPUTE_PADLAYER_H */
diff --git a/arm_compute/runtime/CL/functions/CLPermute.h b/arm_compute/runtime/CL/functions/CLPermute.h
index e1e3ce7..322c472 100644
--- a/arm_compute/runtime/CL/functions/CLPermute.h
+++ b/arm_compute/runtime/CL/functions/CLPermute.h
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2018 ARM Limited.
+ * Copyright (c) 2018-2019 ARM Limited.
  *
  * SPDX-License-Identifier: MIT
  *
@@ -21,8 +21,8 @@
  * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
  * SOFTWARE.
  */
-#ifndef __ARM_COMPUTE_CLPERMUTE_H__
-#define __ARM_COMPUTE_CLPERMUTE_H__
+#ifndef ARM_COMPUTE_CLPERMUTE_H
+#define ARM_COMPUTE_CLPERMUTE_H
 
 #include "arm_compute/core/Types.h"
 #include "arm_compute/runtime/CL/ICLSimpleFunction.h"
@@ -55,4 +55,4 @@
     static Status validate(const ITensorInfo *input, const ITensorInfo *output, const PermutationVector &perm);
 };
 } // namespace arm_compute
-#endif /*__ARM_COMPUTE_CLPERMUTE_H__ */
+#endif /*ARM_COMPUTE_CLPERMUTE_H */
diff --git a/arm_compute/runtime/CL/functions/CLPhase.h b/arm_compute/runtime/CL/functions/CLPhase.h
index 7cdfab1..ac8a867 100644
--- a/arm_compute/runtime/CL/functions/CLPhase.h
+++ b/arm_compute/runtime/CL/functions/CLPhase.h
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2016, 2017 ARM Limited.
+ * Copyright (c) 2016-2019 ARM Limited.
  *
  * SPDX-License-Identifier: MIT
  *
@@ -21,8 +21,8 @@
  * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
  * SOFTWARE.
  */
-#ifndef __ARM_COMPUTE_CLPHASE_H__
-#define __ARM_COMPUTE_CLPHASE_H__
+#ifndef ARM_COMPUTE_CLPHASE_H
+#define ARM_COMPUTE_CLPHASE_H
 
 #include "arm_compute/core/Types.h"
 #include "arm_compute/runtime/CL/ICLSimpleFunction.h"
@@ -45,4 +45,4 @@
     void configure(const ICLTensor *input1, const ICLTensor *input2, ICLTensor *output, PhaseType phase_type = PhaseType::SIGNED);
 };
 }
-#endif /*__ARM_COMPUTE_CLPHASE_H__ */
+#endif /*ARM_COMPUTE_CLPHASE_H */
diff --git a/arm_compute/runtime/CL/functions/CLPixelWiseMultiplication.h b/arm_compute/runtime/CL/functions/CLPixelWiseMultiplication.h
index 7833a68..fd64d7b 100644
--- a/arm_compute/runtime/CL/functions/CLPixelWiseMultiplication.h
+++ b/arm_compute/runtime/CL/functions/CLPixelWiseMultiplication.h
@@ -21,8 +21,8 @@
  * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
  * SOFTWARE.
  */
-#ifndef __ARM_COMPUTE_CLPIXELWISEMULTIPLICATION_H__
-#define __ARM_COMPUTE_CLPIXELWISEMULTIPLICATION_H__
+#ifndef ARM_COMPUTE_CLPIXELWISEMULTIPLICATION_H
+#define ARM_COMPUTE_CLPIXELWISEMULTIPLICATION_H
 
 #include "arm_compute/core/Types.h"
 #include "arm_compute/runtime/CL/ICLSimpleFunction.h"
@@ -88,4 +88,4 @@
     static Status validate(const ITensorInfo *input1, const ITensorInfo *input2, const ITensorInfo *output);
 };
 } // namespace arm_compute
-#endif /*__ARM_COMPUTE_CLPIXELWISEMULTIPLICATION_H__ */
+#endif /*ARM_COMPUTE_CLPIXELWISEMULTIPLICATION_H */
diff --git a/arm_compute/runtime/CL/functions/CLPoolingLayer.h b/arm_compute/runtime/CL/functions/CLPoolingLayer.h
index f7571c1..19acb7f 100644
--- a/arm_compute/runtime/CL/functions/CLPoolingLayer.h
+++ b/arm_compute/runtime/CL/functions/CLPoolingLayer.h
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2017-2018 ARM Limited.
+ * Copyright (c) 2017-2019 ARM Limited.
  *
  * SPDX-License-Identifier: MIT
  *
@@ -21,8 +21,8 @@
  * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
  * SOFTWARE.
  */
-#ifndef __ARM_COMPUTE_CLPOOLINGLAYER_H__
-#define __ARM_COMPUTE_CLPOOLINGLAYER_H__
+#ifndef ARM_COMPUTE_CLPOOLINGLAYER_H
+#define ARM_COMPUTE_CLPOOLINGLAYER_H
 
 #include "arm_compute/runtime/CL/ICLSimpleFunction.h"
 
@@ -59,4 +59,4 @@
     static Status validate(const ITensorInfo *input, const ITensorInfo *output, const PoolingLayerInfo &pool_info);
 };
 } // namespace arm_compute
-#endif /* __ARM_COMPUTE_CLPOOLINGLAYER_H__ */
+#endif /* ARM_COMPUTE_CLPOOLINGLAYER_H */
diff --git a/arm_compute/runtime/CL/functions/CLPriorBoxLayer.h b/arm_compute/runtime/CL/functions/CLPriorBoxLayer.h
index 6adf7f9..eea1399 100644
--- a/arm_compute/runtime/CL/functions/CLPriorBoxLayer.h
+++ b/arm_compute/runtime/CL/functions/CLPriorBoxLayer.h
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2018 ARM Limited.
+ * Copyright (c) 2018-2019 ARM Limited.
  *
  * SPDX-License-Identifier: MIT
  *
@@ -21,8 +21,8 @@
  * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
  * SOFTWARE.
  */
-#ifndef __ARM_COMPUTE_CLPRIORBOXLAYER_H__
-#define __ARM_COMPUTE_CLPRIORBOXLAYER_H__
+#ifndef ARM_COMPUTE_CLPRIORBOXLAYER_H
+#define ARM_COMPUTE_CLPRIORBOXLAYER_H
 
 #include "arm_compute/core/CL/kernels/CLPriorBoxLayerKernel.h"
 #include "arm_compute/core/Types.h"
@@ -63,4 +63,4 @@
     cl::Buffer _aspect_ratios;
 };
 } // arm_compute
-#endif /* __ARM_COMPUTE_CLPRIORBOXLAYER_H__ */
+#endif /* ARM_COMPUTE_CLPRIORBOXLAYER_H */
diff --git a/arm_compute/runtime/CL/functions/CLQuantizationLayer.h b/arm_compute/runtime/CL/functions/CLQuantizationLayer.h
index 41a03fd..718ed5a 100644
--- a/arm_compute/runtime/CL/functions/CLQuantizationLayer.h
+++ b/arm_compute/runtime/CL/functions/CLQuantizationLayer.h
@@ -21,8 +21,8 @@
  * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
  * SOFTWARE.
  */
-#ifndef __ARM_COMPUTE_CLQUANTIZATIONLAYER_H__
-#define __ARM_COMPUTE_CLQUANTIZATIONLAYER_H__
+#ifndef ARM_COMPUTE_CLQUANTIZATIONLAYER_H
+#define ARM_COMPUTE_CLQUANTIZATIONLAYER_H
 
 #include "arm_compute/runtime/CL/ICLSimpleFunction.h"
 
@@ -58,4 +58,4 @@
     static Status validate(const ITensorInfo *input, const ITensorInfo *output);
 };
 } //namespace arm_compute
-#endif /* __ARM_COMPUTE_CLQUANTIZATIONLAYER_H__ */
+#endif /* ARM_COMPUTE_CLQUANTIZATIONLAYER_H */
diff --git a/arm_compute/runtime/CL/functions/CLRNNLayer.h b/arm_compute/runtime/CL/functions/CLRNNLayer.h
index 47b8cd4..569e3da 100644
--- a/arm_compute/runtime/CL/functions/CLRNNLayer.h
+++ b/arm_compute/runtime/CL/functions/CLRNNLayer.h
@@ -21,8 +21,8 @@
  * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
  * SOFTWARE.
  */
-#ifndef __ARM_COMPUTE_CLRNN_LAYER_H__
-#define __ARM_COMPUTE_CLRNN_LAYER_H__
+#ifndef ARM_COMPUTE_CLRNN_LAYER_H
+#define ARM_COMPUTE_CLRNN_LAYER_H
 
 #include "arm_compute/core/CL/kernels/CLActivationLayerKernel.h"
 #include "arm_compute/core/CL/kernels/CLCopyKernel.h"
@@ -84,4 +84,4 @@
     bool                                 _is_prepared;
 };
 }
-#endif /* __ARM_COMPUTE_CLRNN_LAYER_H__ */
+#endif /* ARM_COMPUTE_CLRNN_LAYER_H */
diff --git a/arm_compute/runtime/CL/functions/CLROIAlignLayer.h b/arm_compute/runtime/CL/functions/CLROIAlignLayer.h
index e12978a..d69c33f 100644
--- a/arm_compute/runtime/CL/functions/CLROIAlignLayer.h
+++ b/arm_compute/runtime/CL/functions/CLROIAlignLayer.h
@@ -21,8 +21,8 @@
  * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
  * SOFTWARE.
  */
-#ifndef __ARM_COMPUTE_CLROIALIGNLAYER_H__
-#define __ARM_COMPUTE_CLROIALIGNLAYER_H__
+#ifndef ARM_COMPUTE_CLROIALIGNLAYER_H
+#define ARM_COMPUTE_CLROIALIGNLAYER_H
 
 #include "arm_compute/core/CL/ICLArray.h"
 #include "arm_compute/core/CL/kernels/CLROIPoolingLayerKernel.h"
@@ -74,4 +74,4 @@
     static Status validate(const ITensorInfo *input, const ITensorInfo *rois, ITensorInfo *output, const ROIPoolingLayerInfo &pool_info);
 };
 } // namespace arm_compute
-#endif /* __ARM_COMPUTE_CLROIALIGNLAYER_H__ */
+#endif /* ARM_COMPUTE_CLROIALIGNLAYER_H */
diff --git a/arm_compute/runtime/CL/functions/CLROIPoolingLayer.h b/arm_compute/runtime/CL/functions/CLROIPoolingLayer.h
index 70a3ba9..7d0e1da 100644
--- a/arm_compute/runtime/CL/functions/CLROIPoolingLayer.h
+++ b/arm_compute/runtime/CL/functions/CLROIPoolingLayer.h
@@ -21,8 +21,8 @@
  * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
  * SOFTWARE.
  */
-#ifndef __ARM_COMPUTE_CLROIPOOLINGLAYER_H__
-#define __ARM_COMPUTE_CLROIPOOLINGLAYER_H__
+#ifndef ARM_COMPUTE_CLROIPOOLINGLAYER_H
+#define ARM_COMPUTE_CLROIPOOLINGLAYER_H
 
 #include "arm_compute/runtime/CL/ICLSimpleFunction.h"
 
@@ -58,4 +58,4 @@
     void configure(const ICLTensor *input, const ICLTensor *rois, ICLTensor *output, const ROIPoolingLayerInfo &pool_info);
 };
 }
-#endif /* __ARM_COMPUTE_CLROIPOOLINGLAYER_H__ */
+#endif /* ARM_COMPUTE_CLROIPOOLINGLAYER_H */
diff --git a/arm_compute/runtime/CL/functions/CLRange.h b/arm_compute/runtime/CL/functions/CLRange.h
index 904e6ad..2cc8376 100644
--- a/arm_compute/runtime/CL/functions/CLRange.h
+++ b/arm_compute/runtime/CL/functions/CLRange.h
@@ -21,8 +21,8 @@
  * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
  * SOFTWARE.
  */
-#ifndef __ARM_COMPUTE_CLRANGE_H__
-#define __ARM_COMPUTE_CLRANGE_H__
+#ifndef ARM_COMPUTE_CLRANGE_H
+#define ARM_COMPUTE_CLRANGE_H
 
 #include "arm_compute/core/Types.h"
 #include "arm_compute/runtime/CL/ICLSimpleFunction.h"
@@ -59,4 +59,4 @@
     static Status validate(const ITensorInfo *output, float start, float end, float step = 1.f);
 };
 } // namespace arm_compute
-#endif /* __ARM_COMPUTE_CLRANGE_H__ */
+#endif /* ARM_COMPUTE_CLRANGE_H */
diff --git a/arm_compute/runtime/CL/functions/CLReduceMean.h b/arm_compute/runtime/CL/functions/CLReduceMean.h
index 168b56c..35501f5 100644
--- a/arm_compute/runtime/CL/functions/CLReduceMean.h
+++ b/arm_compute/runtime/CL/functions/CLReduceMean.h
@@ -21,8 +21,8 @@
  * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
  * SOFTWARE.
  */
-#ifndef __ARM_COMPUTE_CL_REDUCE_MEAN_H__
-#define __ARM_COMPUTE_CL_REDUCE_MEAN_H__
+#ifndef ARM_COMPUTE_CL_REDUCE_MEAN_H
+#define ARM_COMPUTE_CL_REDUCE_MEAN_H
 
 #include "arm_compute/runtime/CL/ICLSimpleFunction.h"
 #include "arm_compute/runtime/CL/functions/CLElementwiseOperations.h"
@@ -75,4 +75,4 @@
     bool                              _keep_dims;
 };
 } // namespace arm_compute
-#endif /* __ARM_COMPUTE_CL_REDUCE_MEAN_H__ */
+#endif /* ARM_COMPUTE_CL_REDUCE_MEAN_H */
diff --git a/arm_compute/runtime/CL/functions/CLRemap.h b/arm_compute/runtime/CL/functions/CLRemap.h
index 4cb2be9..f035ac9 100644
--- a/arm_compute/runtime/CL/functions/CLRemap.h
+++ b/arm_compute/runtime/CL/functions/CLRemap.h
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2017 ARM Limited.
+ * Copyright (c) 2017-2019 ARM Limited.
  *
  * SPDX-License-Identifier: MIT
  *
@@ -21,8 +21,8 @@
  * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
  * SOFTWARE.
  */
-#ifndef __ARM_COMPUTE_CLREMAP_H__
-#define __ARM_COMPUTE_CLREMAP_H__
+#ifndef ARM_COMPUTE_CLREMAP_H
+#define ARM_COMPUTE_CLREMAP_H
 
 #include "arm_compute/core/Types.h"
 #include "arm_compute/runtime/CL/ICLSimpleFunction.h"
@@ -56,4 +56,4 @@
                    InterpolationPolicy policy, BorderMode border_mode, uint8_t constant_border_value = 0);
 };
 }
-#endif /*__ARM_COMPUTE_CLREMAP_H__ */
+#endif /*ARM_COMPUTE_CLREMAP_H */
diff --git a/arm_compute/runtime/CL/functions/CLReorgLayer.h b/arm_compute/runtime/CL/functions/CLReorgLayer.h
index 88559a8..f8a395f 100644
--- a/arm_compute/runtime/CL/functions/CLReorgLayer.h
+++ b/arm_compute/runtime/CL/functions/CLReorgLayer.h
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2018 ARM Limited.
+ * Copyright (c) 2018-2019 ARM Limited.
  *
  * SPDX-License-Identifier: MIT
  *
@@ -21,8 +21,8 @@
  * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
  * SOFTWARE.
  */
-#ifndef __ARM_COMPUTE_CLREORGLAYER_H__
-#define __ARM_COMPUTE_CLREORGLAYER_H__
+#ifndef ARM_COMPUTE_CLREORGLAYER_H
+#define ARM_COMPUTE_CLREORGLAYER_H
 
 #include "arm_compute/core/Types.h"
 #include "arm_compute/runtime/CL/ICLSimpleFunction.h"
@@ -59,4 +59,4 @@
     static Status validate(const ITensorInfo *input, const ITensorInfo *output, int32_t stride);
 };
 } // namespace arm_compute
-#endif /*__ARM_COMPUTE_CLREORGLAYER_H__ */
+#endif /*ARM_COMPUTE_CLREORGLAYER_H */
diff --git a/arm_compute/runtime/CL/functions/CLReshapeLayer.h b/arm_compute/runtime/CL/functions/CLReshapeLayer.h
index 82daa23..baeed6c 100644
--- a/arm_compute/runtime/CL/functions/CLReshapeLayer.h
+++ b/arm_compute/runtime/CL/functions/CLReshapeLayer.h
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2017-2018 ARM Limited.
+ * Copyright (c) 2017-2019 ARM Limited.
  *
  * SPDX-License-Identifier: MIT
  *
@@ -21,8 +21,8 @@
  * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
  * SOFTWARE.
  */
-#ifndef __ARM_COMPUTE_CLRESHAPELAYER_H__
-#define __ARM_COMPUTE_CLRESHAPELAYER_H__
+#ifndef ARM_COMPUTE_CLRESHAPELAYER_H
+#define ARM_COMPUTE_CLRESHAPELAYER_H
 
 #include "arm_compute/runtime/CL/ICLSimpleFunction.h"
 
@@ -51,4 +51,4 @@
     static Status validate(const ITensorInfo *input, const ITensorInfo *output);
 };
 }
-#endif /*__ARM_COMPUTE_CLRESHAPELAYER_H__ */
+#endif /*ARM_COMPUTE_CLRESHAPELAYER_H */
diff --git a/arm_compute/runtime/CL/functions/CLReverse.h b/arm_compute/runtime/CL/functions/CLReverse.h
index d23e2f4..323aa13 100644
--- a/arm_compute/runtime/CL/functions/CLReverse.h
+++ b/arm_compute/runtime/CL/functions/CLReverse.h
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2018 ARM Limited.
+ * Copyright (c) 2018-2019 ARM Limited.
  *
  * SPDX-License-Identifier: MIT
  *
@@ -21,8 +21,8 @@
  * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
  * SOFTWARE.
  */
-#ifndef __ARM_COMPUTE_CLREVERSE_H__
-#define __ARM_COMPUTE_CLREVERSE_H__
+#ifndef ARM_COMPUTE_CLREVERSE_H
+#define ARM_COMPUTE_CLREVERSE_H
 
 #include "arm_compute/runtime/CL/ICLSimpleFunction.h"
 
@@ -52,4 +52,4 @@
     static Status validate(const ITensorInfo *input, const ITensorInfo *output, const ITensorInfo *axis);
 };
 } // namespace arm_compute
-#endif /* __ARM_COMPUTE_CLREVERSE_H__ */
+#endif /* ARM_COMPUTE_CLREVERSE_H */
diff --git a/arm_compute/runtime/CL/functions/CLScale.h b/arm_compute/runtime/CL/functions/CLScale.h
index ec32494..6a638e9 100644
--- a/arm_compute/runtime/CL/functions/CLScale.h
+++ b/arm_compute/runtime/CL/functions/CLScale.h
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2016-2018 ARM Limited.
+ * Copyright (c) 2016-2019 ARM Limited.
  *
  * SPDX-License-Identifier: MIT
  *
@@ -21,8 +21,8 @@
  * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
  * SOFTWARE.
  */
-#ifndef __ARM_COMPUTE_CLSCALE_H__
-#define __ARM_COMPUTE_CLSCALE_H__
+#ifndef ARM_COMPUTE_CLSCALE_H
+#define ARM_COMPUTE_CLSCALE_H
 
 #include "arm_compute/core/Types.h"
 #include "arm_compute/runtime/CL/ICLSimpleFunction.h"
@@ -66,4 +66,4 @@
                            SamplingPolicy sampling_policy = SamplingPolicy::CENTER);
 };
 }
-#endif /*__ARM_COMPUTE_CLSCALE_H__ */
+#endif /*ARM_COMPUTE_CLSCALE_H */
diff --git a/arm_compute/runtime/CL/functions/CLScharr3x3.h b/arm_compute/runtime/CL/functions/CLScharr3x3.h
index 3ea0b84..7082432 100644
--- a/arm_compute/runtime/CL/functions/CLScharr3x3.h
+++ b/arm_compute/runtime/CL/functions/CLScharr3x3.h
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2016, 2017 ARM Limited.
+ * Copyright (c) 2016-2019 ARM Limited.
  *
  * SPDX-License-Identifier: MIT
  *
@@ -21,8 +21,8 @@
  * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
  * SOFTWARE.
  */
-#ifndef __ARM_COMPUTE_CLSCHARR3X3_H__
-#define __ARM_COMPUTE_CLSCHARR3X3_H__
+#ifndef ARM_COMPUTE_CLSCHARR3X3_H
+#define ARM_COMPUTE_CLSCHARR3X3_H
 
 #include "arm_compute/core/Types.h"
 #include "arm_compute/runtime/CL/ICLSimpleFunction.h"
@@ -55,4 +55,4 @@
     void configure(ICLTensor *input, ICLTensor *output_x, ICLTensor *output_y, BorderMode border_mode, uint8_t constant_border_value = 0);
 };
 }
-#endif /*__ARM_COMPUTE_CLSCHARR3X3_H__ */
+#endif /*ARM_COMPUTE_CLSCHARR3X3_H */
diff --git a/arm_compute/runtime/CL/functions/CLSelect.h b/arm_compute/runtime/CL/functions/CLSelect.h
index dab62a7..e34cba7 100644
--- a/arm_compute/runtime/CL/functions/CLSelect.h
+++ b/arm_compute/runtime/CL/functions/CLSelect.h
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2018 ARM Limited.
+ * Copyright (c) 2018-2019 ARM Limited.
  *
  * SPDX-License-Identifier: MIT
  *
@@ -21,8 +21,8 @@
  * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
  * SOFTWARE.
  */
-#ifndef __ARM_COMPUTE_CLSELECT_H__
-#define __ARM_COMPUTE_CLSELECT_H__
+#ifndef ARM_COMPUTE_CLSELECT_H
+#define ARM_COMPUTE_CLSELECT_H
 
 #include "arm_compute/runtime/CL/ICLSimpleFunction.h"
 
@@ -57,4 +57,4 @@
     static Status validate(const ITensorInfo *c, const ITensorInfo *x, const ITensorInfo *y, const ITensorInfo *output);
 };
 } // namespace arm_compute
-#endif /* __ARM_COMPUTE_CLSELECT_H__ */
+#endif /* ARM_COMPUTE_CLSELECT_H */
diff --git a/arm_compute/runtime/CL/functions/CLSlice.h b/arm_compute/runtime/CL/functions/CLSlice.h
index 5e8d019..51e5cf5 100644
--- a/arm_compute/runtime/CL/functions/CLSlice.h
+++ b/arm_compute/runtime/CL/functions/CLSlice.h
@@ -21,8 +21,8 @@
  * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
  * SOFTWARE.
  */
-#ifndef __ARM_COMPUTE_CL_SLICE_H__
-#define __ARM_COMPUTE_CL_SLICE_H__
+#ifndef ARM_COMPUTE_CL_SLICE_H
+#define ARM_COMPUTE_CL_SLICE_H
 
 #include "arm_compute/runtime/CL/ICLSimpleFunction.h"
 
@@ -66,4 +66,4 @@
     static Status validate(const ITensorInfo *input, const ITensorInfo *output, const Coordinates &starts, const Coordinates &ends);
 };
 } // namespace arm_compute
-#endif /* __ARM_COMPUTE_CL_SLICE_H__ */
+#endif /* ARM_COMPUTE_CL_SLICE_H */
diff --git a/arm_compute/runtime/CL/functions/CLSobel3x3.h b/arm_compute/runtime/CL/functions/CLSobel3x3.h
index 7a4f47d..2f4cf50 100644
--- a/arm_compute/runtime/CL/functions/CLSobel3x3.h
+++ b/arm_compute/runtime/CL/functions/CLSobel3x3.h
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2016, 2017 ARM Limited.
+ * Copyright (c) 2016-2019 ARM Limited.
  *
  * SPDX-License-Identifier: MIT
  *
@@ -21,8 +21,8 @@
  * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
  * SOFTWARE.
  */
-#ifndef __ARM_COMPUTE_CLSOBEL3X3_H__
-#define __ARM_COMPUTE_CLSOBEL3X3_H__
+#ifndef ARM_COMPUTE_CLSOBEL3X3_H
+#define ARM_COMPUTE_CLSOBEL3X3_H
 
 #include "arm_compute/core/Types.h"
 #include "arm_compute/runtime/CL/ICLSimpleFunction.h"
@@ -55,4 +55,4 @@
     void configure(ICLTensor *input, ICLTensor *output_x, ICLTensor *output_y, BorderMode border_mode, uint8_t constant_border_value = 0);
 };
 }
-#endif /*__ARM_COMPUTE_CLSOBEL3X3_H__ */
+#endif /*ARM_COMPUTE_CLSOBEL3X3_H */
diff --git a/arm_compute/runtime/CL/functions/CLSobel5x5.h b/arm_compute/runtime/CL/functions/CLSobel5x5.h
index 7b62066..2a9136b 100644
--- a/arm_compute/runtime/CL/functions/CLSobel5x5.h
+++ b/arm_compute/runtime/CL/functions/CLSobel5x5.h
@@ -21,8 +21,8 @@
  * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
  * SOFTWARE.
  */
-#ifndef __ARM_COMPUTE_CLSOBEL5X5_H__
-#define __ARM_COMPUTE_CLSOBEL5X5_H__
+#ifndef ARM_COMPUTE_CLSOBEL5X5_H
+#define ARM_COMPUTE_CLSOBEL5X5_H
 
 #include "arm_compute/core/CL/kernels/CLFillBorderKernel.h"
 #include "arm_compute/core/CL/kernels/CLSobel5x5Kernel.h"
@@ -78,4 +78,4 @@
     CLImage              _tmp_y;          /**< Temporary buffer for Sobel Y */
 };
 }
-#endif /*__ARM_COMPUTE_CLSOBEL5X5_H__ */
+#endif /*ARM_COMPUTE_CLSOBEL5X5_H */
diff --git a/arm_compute/runtime/CL/functions/CLSobel7x7.h b/arm_compute/runtime/CL/functions/CLSobel7x7.h
index d7c3476..e3188b8 100644
--- a/arm_compute/runtime/CL/functions/CLSobel7x7.h
+++ b/arm_compute/runtime/CL/functions/CLSobel7x7.h
@@ -21,8 +21,8 @@
  * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
  * SOFTWARE.
  */
-#ifndef __ARM_COMPUTE_CLSOBEL7X7_H__
-#define __ARM_COMPUTE_CLSOBEL7X7_H__
+#ifndef ARM_COMPUTE_CLSOBEL7X7_H
+#define ARM_COMPUTE_CLSOBEL7X7_H
 
 #include "arm_compute/core/CL/kernels/CLFillBorderKernel.h"
 #include "arm_compute/core/CL/kernels/CLSobel7x7Kernel.h"
@@ -78,4 +78,4 @@
     CLImage              _tmp_y;          /**< Temporary buffer for Sobel Y */
 };
 }
-#endif /*__ARM_COMPUTE_CLSOBEL7X7_H__ */
+#endif /*ARM_COMPUTE_CLSOBEL7X7_H */
diff --git a/arm_compute/runtime/CL/functions/CLSoftmaxLayer.h b/arm_compute/runtime/CL/functions/CLSoftmaxLayer.h
index e3feebb..751b68d 100644
--- a/arm_compute/runtime/CL/functions/CLSoftmaxLayer.h
+++ b/arm_compute/runtime/CL/functions/CLSoftmaxLayer.h
@@ -21,8 +21,8 @@
  * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
  * SOFTWARE.
  */
-#ifndef __ARM_COMPUTE_CLSOFTMAXLAYER_H__
-#define __ARM_COMPUTE_CLSOFTMAXLAYER_H__
+#ifndef ARM_COMPUTE_CLSOFTMAXLAYER_H
+#define ARM_COMPUTE_CLSOFTMAXLAYER_H
 
 #include "arm_compute/core/CL/kernels/CLFlattenLayerKernel.h"
 #include "arm_compute/core/CL/kernels/CLReshapeLayerKernel.h"
@@ -114,4 +114,4 @@
 using CLSoftmaxLayer    = CLSoftmaxLayerGeneric<false>;
 using CLLogSoftmaxLayer = CLSoftmaxLayerGeneric<true>;
 } // namespace arm_compute
-#endif /* __ARM_COMPUTE_CLSOFTMAXLAYER_H__ */
+#endif /* ARM_COMPUTE_CLSOFTMAXLAYER_H */
diff --git a/arm_compute/runtime/CL/functions/CLSpaceToBatchLayer.h b/arm_compute/runtime/CL/functions/CLSpaceToBatchLayer.h
index 9b1dd97..ef19410 100644
--- a/arm_compute/runtime/CL/functions/CLSpaceToBatchLayer.h
+++ b/arm_compute/runtime/CL/functions/CLSpaceToBatchLayer.h
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2018 ARM Limited.
+ * Copyright (c) 2018-2019 ARM Limited.
  *
  * SPDX-License-Identifier: MIT
  *
@@ -21,8 +21,8 @@
  * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
  * SOFTWARE.
  */
-#ifndef __ARM_COMPUTE_CLSPACETOBATCHLAYER_H__
-#define __ARM_COMPUTE_CLSPACETOBATCHLAYER_H__
+#ifndef ARM_COMPUTE_CLSPACETOBATCHLAYER_H
+#define ARM_COMPUTE_CLSPACETOBATCHLAYER_H
 
 #include "arm_compute/runtime/IFunction.h"
 
@@ -105,4 +105,4 @@
     bool                      _has_padding;           /**< Flag to check if the output has padding */
 };
 } // namespace arm_compute
-#endif /* __ARM_COMPUTE_CLSPACETOBATCHLAYER_H__ */
+#endif /* ARM_COMPUTE_CLSPACETOBATCHLAYER_H */
diff --git a/arm_compute/runtime/CL/functions/CLSpaceToDepthLayer.h b/arm_compute/runtime/CL/functions/CLSpaceToDepthLayer.h
index 5a4bf1e..2531b6a 100644
--- a/arm_compute/runtime/CL/functions/CLSpaceToDepthLayer.h
+++ b/arm_compute/runtime/CL/functions/CLSpaceToDepthLayer.h
@@ -21,8 +21,8 @@
  * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
  * SOFTWARE.
  */
-#ifndef __ARM_COMPUTE_CLSPACETODEPTHLAYER_H__
-#define __ARM_COMPUTE_CLSPACETODEPTHLAYER_H__
+#ifndef ARM_COMPUTE_CLSPACETODEPTHLAYER_H
+#define ARM_COMPUTE_CLSPACETODEPTHLAYER_H
 
 #include "arm_compute/runtime/IFunction.h"
 
@@ -63,4 +63,4 @@
     CLSpaceToDepthLayerKernel _space_to_depth_kernel; /**< CLSpaceToDepthLayerKernel to run */
 };
 } // namespace arm_compute
-#endif /* __ARM_COMPUTE_CLSPACETODEPTHLAYER_H__ */
+#endif /* ARM_COMPUTE_CLSPACETODEPTHLAYER_H */
diff --git a/arm_compute/runtime/CL/functions/CLSplit.h b/arm_compute/runtime/CL/functions/CLSplit.h
index 709be3b..6f51be9 100644
--- a/arm_compute/runtime/CL/functions/CLSplit.h
+++ b/arm_compute/runtime/CL/functions/CLSplit.h
@@ -21,8 +21,8 @@
  * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
  * SOFTWARE.
  */
-#ifndef __ARM_COMPUTE_CLSPLIT_H__
-#define __ARM_COMPUTE_CLSPLIT_H__
+#ifndef ARM_COMPUTE_CLSPLIT_H
+#define ARM_COMPUTE_CLSPLIT_H
 
 #include "arm_compute/core/Types.h"
 
@@ -73,4 +73,4 @@
     unsigned int             _num_outputs;
 };
 } // namespace arm_compute
-#endif /* __ARM_COMPUTE_CLSPLIT_H__ */
+#endif /* ARM_COMPUTE_CLSPLIT_H */
diff --git a/arm_compute/runtime/CL/functions/CLStackLayer.h b/arm_compute/runtime/CL/functions/CLStackLayer.h
index 30676e1..39e468c 100644
--- a/arm_compute/runtime/CL/functions/CLStackLayer.h
+++ b/arm_compute/runtime/CL/functions/CLStackLayer.h
@@ -21,8 +21,8 @@
  * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
  * SOFTWARE.
  */
-#ifndef __ARM_COMPUTE_CLSTACKLAYER_H__
-#define __ARM_COMPUTE_CLSTACKLAYER_H__
+#ifndef ARM_COMPUTE_CLSTACKLAYER_H
+#define ARM_COMPUTE_CLSTACKLAYER_H
 
 #include "arm_compute/core/Types.h"
 #include "arm_compute/runtime/IFunction.h"
@@ -78,4 +78,4 @@
     unsigned int                    _num_inputs;
 };
 } // namespace arm_compute
-#endif /* __ARM_COMPUTE_CLSTACKLAYER_H__ */
+#endif /* ARM_COMPUTE_CLSTACKLAYER_H */
diff --git a/arm_compute/runtime/CL/functions/CLStridedSlice.h b/arm_compute/runtime/CL/functions/CLStridedSlice.h
index 8857517..73ea192 100644
--- a/arm_compute/runtime/CL/functions/CLStridedSlice.h
+++ b/arm_compute/runtime/CL/functions/CLStridedSlice.h
@@ -21,8 +21,8 @@
  * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
  * SOFTWARE.
  */
-#ifndef __ARM_COMPUTE_CL_STRIDED_SLICE_H__
-#define __ARM_COMPUTE_CL_STRIDED_SLICE_H__
+#ifndef ARM_COMPUTE_CL_STRIDED_SLICE_H
+#define ARM_COMPUTE_CL_STRIDED_SLICE_H
 
 #include "arm_compute/runtime/CL/ICLSimpleFunction.h"
 
@@ -72,4 +72,4 @@
                            int32_t begin_mask = 0, int32_t end_mask = 0, int32_t shrink_axis_mask = 0);
 };
 } // namespace arm_compute
-#endif /* __ARM_COMPUTE_CL_STRIDED_SLICE_H__ */
+#endif /* ARM_COMPUTE_CL_STRIDED_SLICE_H */
diff --git a/arm_compute/runtime/CL/functions/CLTableLookup.h b/arm_compute/runtime/CL/functions/CLTableLookup.h
index ebe6593..c1b7b94 100644
--- a/arm_compute/runtime/CL/functions/CLTableLookup.h
+++ b/arm_compute/runtime/CL/functions/CLTableLookup.h
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2016, 2017 ARM Limited.
+ * Copyright (c) 2016-2019 ARM Limited.
  *
  * SPDX-License-Identifier: MIT
  *
@@ -21,8 +21,8 @@
  * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
  * SOFTWARE.
  */
-#ifndef __ARM_COMPUTE_CLTABLELOOKUP_H__
-#define __ARM_COMPUTE_CLTABLELOOKUP_H__
+#ifndef ARM_COMPUTE_CLTABLELOOKUP_H
+#define ARM_COMPUTE_CLTABLELOOKUP_H
 
 #include "arm_compute/runtime/CL/ICLSimpleFunction.h"
 
@@ -44,4 +44,4 @@
     void configure(const ICLTensor *input, const ICLLut *lut, ICLTensor *output);
 };
 }
-#endif /*__ARM_COMPUTE_CLTABLELOOKUP_H__ */
+#endif /*ARM_COMPUTE_CLTABLELOOKUP_H */
diff --git a/arm_compute/runtime/CL/functions/CLThreshold.h b/arm_compute/runtime/CL/functions/CLThreshold.h
index 14c0578..a19b320 100644
--- a/arm_compute/runtime/CL/functions/CLThreshold.h
+++ b/arm_compute/runtime/CL/functions/CLThreshold.h
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2016, 2017 ARM Limited.
+ * Copyright (c) 2016-2019 ARM Limited.
  *
  * SPDX-License-Identifier: MIT
  *
@@ -21,8 +21,8 @@
  * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
  * SOFTWARE.
  */
-#ifndef __ARM_COMPUTE_CLTHRESHOLD_H__
-#define __ARM_COMPUTE_CLTHRESHOLD_H__
+#ifndef ARM_COMPUTE_CLTHRESHOLD_H
+#define ARM_COMPUTE_CLTHRESHOLD_H
 
 #include "arm_compute/core/Types.h"
 #include "arm_compute/runtime/CL/ICLSimpleFunction.h"
@@ -52,4 +52,4 @@
                    ThresholdType type = ThresholdType::BINARY, uint8_t upper = 0);
 };
 }
-#endif /*__ARM_COMPUTE_CLTHRESHOLD_H__ */
+#endif /*ARM_COMPUTE_CLTHRESHOLD_H */
diff --git a/arm_compute/runtime/CL/functions/CLTile.h b/arm_compute/runtime/CL/functions/CLTile.h
index 3e88896..b125d44 100644
--- a/arm_compute/runtime/CL/functions/CLTile.h
+++ b/arm_compute/runtime/CL/functions/CLTile.h
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2018 ARM Limited.
+ * Copyright (c) 2018-2019 ARM Limited.
  *
  * SPDX-License-Identifier: MIT
  *
@@ -21,8 +21,8 @@
  * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
  * SOFTWARE.
  */
-#ifndef __ARM_COMPUTE_CLTILE_H__
-#define __ARM_COMPUTE_CLTILE_H__
+#ifndef ARM_COMPUTE_CLTILE_H
+#define ARM_COMPUTE_CLTILE_H
 
 #include "arm_compute/runtime/CL/ICLSimpleFunction.h"
 
@@ -54,4 +54,4 @@
     static Status validate(const ITensorInfo *input, const ITensorInfo *output, const Multiples &multiples);
 };
 } // namespace arm_compute
-#endif /* __ARM_COMPUTE_CLTILE_H__ */
+#endif /* ARM_COMPUTE_CLTILE_H */
diff --git a/arm_compute/runtime/CL/functions/CLTranspose.h b/arm_compute/runtime/CL/functions/CLTranspose.h
index 1e9bb95..b0ac9f9 100644
--- a/arm_compute/runtime/CL/functions/CLTranspose.h
+++ b/arm_compute/runtime/CL/functions/CLTranspose.h
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2017-2018 ARM Limited.
+ * Copyright (c) 2017-2019 ARM Limited.
  *
  * SPDX-License-Identifier: MIT
  *
@@ -21,8 +21,8 @@
  * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
  * SOFTWARE.
  */
-#ifndef __ARM_COMPUTE_CLTRANSPOSE_H__
-#define __ARM_COMPUTE_CLTRANSPOSE_H__
+#ifndef ARM_COMPUTE_CLTRANSPOSE_H
+#define ARM_COMPUTE_CLTRANSPOSE_H
 
 #include "arm_compute/runtime/CL/ICLSimpleFunction.h"
 
@@ -55,4 +55,4 @@
 };
 }
 
-#endif /* __ARM_COMPUTE_CLTRANSPOSE_H__ */
+#endif /* ARM_COMPUTE_CLTRANSPOSE_H */
diff --git a/arm_compute/runtime/CL/functions/CLUnstack.h b/arm_compute/runtime/CL/functions/CLUnstack.h
index bc32a3d..814d073 100644
--- a/arm_compute/runtime/CL/functions/CLUnstack.h
+++ b/arm_compute/runtime/CL/functions/CLUnstack.h
@@ -21,8 +21,8 @@
  * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
  * SOFTWARE.
  */
-#ifndef __ARM_COMPUTE_CLUNSTACK_H__
-#define __ARM_COMPUTE_CLUNSTACK_H__
+#ifndef ARM_COMPUTE_CLUNSTACK_H
+#define ARM_COMPUTE_CLUNSTACK_H
 
 #include "arm_compute/core/CL/OpenCL.h"
 #include "arm_compute/core/Types.h"
@@ -73,4 +73,4 @@
     std::vector<CLStridedSlice> _strided_slice_vector;
 };
 } // namespace arm_compute
-#endif /* __ARM_COMPUTE_CLUNSTACK_H__ */
+#endif /* ARM_COMPUTE_CLUNSTACK_H */
diff --git a/arm_compute/runtime/CL/functions/CLUpsampleLayer.h b/arm_compute/runtime/CL/functions/CLUpsampleLayer.h
index df504fb..719cbd5 100644
--- a/arm_compute/runtime/CL/functions/CLUpsampleLayer.h
+++ b/arm_compute/runtime/CL/functions/CLUpsampleLayer.h
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2018 ARM Limited.
+ * Copyright (c) 2018-2019 ARM Limited.
  *
  * SPDX-License-Identifier: MIT
  *
@@ -21,8 +21,8 @@
  * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
  * SOFTWARE.
  */
-#ifndef __ARM_COMPUTE_CLUPSAMPLELAYER_H__
-#define __ARM_COMPUTE_CLUPSAMPLELAYER_H__
+#ifndef ARM_COMPUTE_CLUPSAMPLELAYER_H
+#define ARM_COMPUTE_CLUPSAMPLELAYER_H
 
 #include "arm_compute/runtime/IFunction.h"
 
@@ -80,4 +80,4 @@
     ICLTensor            *_output;
 };
 } // namespace arm_compute
-#endif /* __ARM_COMPUTE_CLUPSAMPLELAYER_H__ */
+#endif /* ARM_COMPUTE_CLUPSAMPLELAYER_H */
diff --git a/arm_compute/runtime/CL/functions/CLWarpAffine.h b/arm_compute/runtime/CL/functions/CLWarpAffine.h
index 05a2815..2de7107 100644
--- a/arm_compute/runtime/CL/functions/CLWarpAffine.h
+++ b/arm_compute/runtime/CL/functions/CLWarpAffine.h
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2016-2018 ARM Limited.
+ * Copyright (c) 2016-2019 ARM Limited.
  *
  * SPDX-License-Identifier: MIT
  *
@@ -21,8 +21,8 @@
  * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
  * SOFTWARE.
  */
-#ifndef __ARM_COMPUTE_CLWARPAFFINE_H__
-#define __ARM_COMPUTE_CLWARPAFFINE_H__
+#ifndef ARM_COMPUTE_CLWARPAFFINE_H
+#define ARM_COMPUTE_CLWARPAFFINE_H
 
 #include "arm_compute/core/Types.h"
 #include "arm_compute/runtime/CL/ICLSimpleFunction.h"
@@ -50,4 +50,4 @@
     void configure(ICLTensor *input, ICLTensor *output, const std::array<float, 9> &matrix, InterpolationPolicy policy, BorderMode border_mode, uint8_t constant_border_value = 0);
 };
 }
-#endif /*__ARM_COMPUTE_CLWARPAFFINE_H__ */
+#endif /*ARM_COMPUTE_CLWARPAFFINE_H */
diff --git a/arm_compute/runtime/CL/functions/CLWarpPerspective.h b/arm_compute/runtime/CL/functions/CLWarpPerspective.h
index acefb11..93fcc85 100644
--- a/arm_compute/runtime/CL/functions/CLWarpPerspective.h
+++ b/arm_compute/runtime/CL/functions/CLWarpPerspective.h
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2016-2018 ARM Limited.
+ * Copyright (c) 2016-2019 ARM Limited.
  *
  * SPDX-License-Identifier: MIT
  *
@@ -21,8 +21,8 @@
  * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
  * SOFTWARE.
  */
-#ifndef __ARM_COMPUTE_CLWARPPERSPECTIVE_H__
-#define __ARM_COMPUTE_CLWARPPERSPECTIVE_H__
+#ifndef ARM_COMPUTE_CLWARPPERSPECTIVE_H
+#define ARM_COMPUTE_CLWARPPERSPECTIVE_H
 
 #include "arm_compute/core/Types.h"
 #include "arm_compute/runtime/CL/ICLSimpleFunction.h"
@@ -49,4 +49,4 @@
     void configure(ICLTensor *input, ICLTensor *output, const std::array<float, 9> &matrix, InterpolationPolicy policy, BorderMode border_mode, uint8_t constant_border_value = 0);
 };
 }
-#endif /*__ARM_COMPUTE_CLWARPPERSPECTIVE_H__ */
+#endif /*ARM_COMPUTE_CLWARPPERSPECTIVE_H */
diff --git a/arm_compute/runtime/CL/functions/CLWinogradConvolutionLayer.h b/arm_compute/runtime/CL/functions/CLWinogradConvolutionLayer.h
index d887bca..7ac59c9 100644
--- a/arm_compute/runtime/CL/functions/CLWinogradConvolutionLayer.h
+++ b/arm_compute/runtime/CL/functions/CLWinogradConvolutionLayer.h
@@ -21,8 +21,8 @@
  * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
  * SOFTWARE.
  */
-#ifndef __ARM_COMPUTE_CLWINOGRADCONVOLUTIONLAYER_H__
-#define __ARM_COMPUTE_CLWINOGRADCONVOLUTIONLAYER_H__
+#ifndef ARM_COMPUTE_CLWINOGRADCONVOLUTIONLAYER_H
+#define ARM_COMPUTE_CLWINOGRADCONVOLUTIONLAYER_H
 
 #include "arm_compute/core/CL/kernels/CLWinogradFilterTransformKernel.h"
 #include "arm_compute/core/CL/kernels/CLWinogradOutputTransformKernel.h"
@@ -114,4 +114,4 @@
     bool                            _is_prepared;
 };
 } // namespace arm_compute
-#endif /* __ARM_COMPUTE_CLWINOGRADCONVOLUTIONLAYER_H__ */
+#endif /* ARM_COMPUTE_CLWINOGRADCONVOLUTIONLAYER_H */
diff --git a/arm_compute/runtime/CL/functions/CLWinogradInputTransform.h b/arm_compute/runtime/CL/functions/CLWinogradInputTransform.h
index 71b4ea4..e1ab928 100644
--- a/arm_compute/runtime/CL/functions/CLWinogradInputTransform.h
+++ b/arm_compute/runtime/CL/functions/CLWinogradInputTransform.h
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2018 ARM Limited.
+ * Copyright (c) 2018-2019 ARM Limited.
  *
  * SPDX-License-Identifier: MIT
  *
@@ -21,8 +21,8 @@
  * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
  * SOFTWARE.
  */
-#ifndef __ARM_COMPUTE_CLWINOGRADINPUTTRANSFORM_H__
-#define __ARM_COMPUTE_CLWINOGRADINPUTTRANSFORM_H__
+#ifndef ARM_COMPUTE_CLWINOGRADINPUTTRANSFORM_H
+#define ARM_COMPUTE_CLWINOGRADINPUTTRANSFORM_H
 
 #include "arm_compute/core/Types.h"
 #include "arm_compute/runtime/CL/ICLSimpleFunction.h"
@@ -77,4 +77,4 @@
     static Status validate(const ITensorInfo *input, const ITensorInfo *output, const WinogradInfo &winograd_info);
 };
 }
-#endif /*__ARM_COMPUTE_CLWINOGRADINPUTTRANSFORM_H__ */
+#endif /*ARM_COMPUTE_CLWINOGRADINPUTTRANSFORM_H */
diff --git a/arm_compute/runtime/CL/functions/CLYOLOLayer.h b/arm_compute/runtime/CL/functions/CLYOLOLayer.h
index 9931122..95c684b 100644
--- a/arm_compute/runtime/CL/functions/CLYOLOLayer.h
+++ b/arm_compute/runtime/CL/functions/CLYOLOLayer.h
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2018 ARM Limited.
+ * Copyright (c) 2018-2019 ARM Limited.
  *
  * SPDX-License-Identifier: MIT
  *
@@ -21,8 +21,8 @@
  * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
  * SOFTWARE.
  */
-#ifndef __ARM_COMPUTE_CLYOLOLAYER_H__
-#define __ARM_COMPUTE_CLYOLOLAYER_H__
+#ifndef ARM_COMPUTE_CLYOLOLAYER_H
+#define ARM_COMPUTE_CLYOLOLAYER_H
 
 #include "arm_compute/runtime/CL/ICLSimpleFunction.h"
 
@@ -66,4 +66,4 @@
     static Status validate(const ITensorInfo *input, const ITensorInfo *output, const ActivationLayerInfo &act_info, int32_t num_classes);
 };
 } // namespace arm_compute
-#endif /* __ARM_COMPUTE_CLYOLOLAYER_H__ */
+#endif /* ARM_COMPUTE_CLYOLOLAYER_H */
