arm_compute v19.02
Change-Id: I853a3ecf38f206da13c1b03640c8adf73c20477c
diff --git a/docs/00_introduction.dox b/docs/00_introduction.dox
index 8982e77..8f74a75 100644
--- a/docs/00_introduction.dox
+++ b/docs/00_introduction.dox
@@ -238,6 +238,89 @@
@subsection S2_2_changelog Changelog
+v19.02 Public major release
+ - Various bug fixes.
+ - Various optimisations.
+ - New Neon kernels / functions:
+ - @ref NETileKernel / @ref NETile
+ - @ref NEFuseBatchNormalizationKernel / @ref NEFuseBatchNormalization
+ - @ref NEElementwiseOperationKernel
+ - @ref NEElementwiseMax
+ - @ref NEElementwiseMin
+ - @ref NEElementwiseSquaredDiff
+ - @ref NESelectKernel / @ref NESelect
+ - @ref NESplit
+ - @ref NESlice
+ - @ref NEUnstack
+ - @ref NEStridedSliceKernel / @ref NEStridedSlice
+ - @ref NEElementwiseUnaryKernel
+ - @ref NERsqrtLayer
+ - @ref NEExpLayer
+ - @ref NEReverseKernel / @ref NEReverse
+ - @ref NEArgMinMaxLayer
+ - @ref NEStackLayerKernel / @ref NEStackLayer
+ - @ref NERangeKernel / @ref NERange
+ - @ref NEPadLayer
+ - @ref NEMemsetKernel
+ - @ref NEGatherKernel / @ref NEGather
+ - @ref NEElementwiseComparison
+ - @ref NEElementwiseComparisonStatic
+ - @ref NEComparisonOperationKernel
+ - @ref NEElementwiseDivision
+ - New OpenCL kernels / functions:
+ - @ref CLSelectKernel / @ref CLSelect
+ - @ref CLTileKernel / @ref CLTile
+ - @ref CLComparisonKernel / @ref CLComparison
+ - @ref CLArgMinMaxLayer
+ - @ref CLElementwiseMax
+ - @ref CLElementwiseMin
+ - @ref CLElementwiseSquaredDiff
+ - @ref CLStackLayerKernel / @ref CLStackLayer
+ - @ref CLReverse / @ref CLReverseKernel
+ - @ref CLRsqrtLayer
+ - @ref CLExpLayer
+ - @ref CLElementWiseUnaryLayerKernel
+ - @ref CLGEMMReshapeLHSMatrixKernel
+ - @ref CLGEMMReshapeRHSMatrixKernel
+ - @ref CLGEMMMatrixMultiplyReshapedKernel
+ - @ref CLRangeKernel / @ref CLRange
+ - @ref CLUnstack
+ - @ref CLGatherKernel / @ref CLGather
+ - @ref CLGEMMLowpMatrixMultiplyReshapedKernel
+ - New CPP kernels / functions:
+ - @ref CPPDetectionOutputLayer
+ - @ref CPPTopKV / @ref CPPTopKVKernel
+ - Added new examples:
+ - graph_ssd_mobilenet.cpp
+ - graph_mobilenet_v2.cpp
+ - graph_resnet12.cpp
+ - graph_srcnn955.cpp
+ - graph_vgg_vdsr.cpp
+ - graph_inception_resnet_v1.cpp
+ - Add 4D tensors support to
+ - @ref NESoftmaxLayer
+ - Fused activation in @ref CLWinogradConvolutionLayer
+ - Extented @ref NEPermute to support more cases
+ - Added NEON/SVE GEMM Hybrid kernels
+ - Added u8 and s8 hybrid assembly kernels
+ - Introduced GEMM strategy name in NEGEMMAssemblyWrapper
+ - Improved @ref CLTuner
+ - Fused the bias addition within @ref CLGEMM
+ - Added support for QASYMM8 LOGISTIC activation in @ref NEActivationLayer
+ - Added NHWC data layout support to:
+ - @ref NEScale for F16
+ - @ref CLNormalizationLayer IN_MAP_2D for FP32/FP16
+ - @ref NEL2NormalizeLayer for FP32/FP16
+ - @ref NENormalizationLayer IN_MAP_2D for FP32/FP16
+ - @ref CLROIAlignLayer
+ - @ref CLGenerateProposalsLayer
+ - Added QASYMM8 support to the following kernels:
+ - @ref NEArithmeticAdditionKernel
+ - @ref NEScale
+ - Added new tests and improved validation and benchmarking suites.
+ - Deprecated functions/interfaces
+ - Usage of inner_border_right and inner_border_top has been deprecated in @ref CLDeconvolutionLayer and @ref NEDeconvolutionLayer
+
v18.11 Public major release
- Various bug fixes.
- Various optimisations.
@@ -538,7 +621,7 @@
- @ref NEReshapeLayerKernel / @ref NEReshapeLayer
- New OpenCL kernels / functions:
- - @ref CLDepthwiseConvolutionLayer3x3NCHWKernel @ref CLDepthwiseConvolutionLayer3x3NHWCKernel @ref CLDepthwiseIm2ColKernel @ref CLDepthwiseVectorToTensorKernel @ref CLDepthwiseWeightsReshapeKernel / @ref CLDepthwiseConvolutionLayer3x3 @ref CLDepthwiseConvolutionLayer @ref CLDepthwiseSeparableConvolutionLayer
+ - @ref CLDepthwiseConvolutionLayer3x3NCHWKernel @ref CLDepthwiseConvolutionLayer3x3NHWCKernel @ref CLDepthwiseIm2ColKernel @ref CLDepthwiseVectorToTensorKernel CLDepthwiseWeightsReshapeKernel / @ref CLDepthwiseConvolutionLayer3x3 @ref CLDepthwiseConvolutionLayer @ref CLDepthwiseSeparableConvolutionLayer
- @ref CLDequantizationLayerKernel / @ref CLDequantizationLayer
- @ref CLDirectConvolutionLayerKernel / @ref CLDirectConvolutionLayer
- @ref CLFlattenLayer
@@ -960,10 +1043,8 @@
- Download the NDK r17b from here: https://developer.android.com/ndk/downloads/index.html
- Make sure you have Python 2 installed on your machine.
- Generate the 32 and/or 64 toolchains by running the following commands:
-<!-- Leave 2 blank lines here or the formatting of the commands below gets messed up --!>
-<!-- End of the 2 blank lines --!>
$NDK/build/tools/make_standalone_toolchain.py --arch arm64 --install-dir $MY_TOOLCHAINS/aarch64-linux-android-ndk-r17b --stl libc++ --api 21
$NDK/build/tools/make_standalone_toolchain.py --arch arm --install-dir $MY_TOOLCHAINS/arm-linux-android-ndk-r17b --stl libc++ --api 21
diff --git a/docs/03_scripts.dox b/docs/03_scripts.dox
index 11deea2..6b71590 100644
--- a/docs/03_scripts.dox
+++ b/docs/03_scripts.dox
@@ -114,5 +114,60 @@
The arm_compute::utils::load_trained_data shows how one could load
the weights and biases into tensor from the .npy file by the help of Accessor.
+
+@section tf_frozen_model_extractor Extract data from pre-trained frozen tensorflow model
+
+The script tf_frozen_model_extractor.py extracts trainable parameters (e.g. values of weights and biases) from a
+frozen trained Tensorflow model.
+
+@subsection tensorflow_frozen_how_to How to use the script
+
+Install Tensorflow and NumPy.
+
+Download the pre-trained Tensorflow model and freeze the model using the architecture and the checkpoint file.
+
+Run tf_frozen_model_extractor.py with
+
+ python tf_frozen_model_extractor -m <path_to_frozen_pb_model_file> -d <path_to_store_parameters>
+
+For example, to extract the data from pre-trained Tensorflow model to binary files:
+
+ python tf_frozen_model_extractor -m /path/to/inceptionv3.pb -d ./data
+
+@subsection tensorflow_frozen_result What is the expected output from the script
+
+If the script runs successfully, it prints the names and shapes of each parameter onto the standard output and generates
+ *.npy files containing the weights and biases of each layer.
+
+The arm_compute::utils::load_trained_data shows how one could load
+the weights and biases into tensor from the .npy file by the help of Accessor.
+
+@section validate_examples Validating examples
+Using one of the provided scripts will generate files containing the trainable parameters.
+
+You can validate a given graph example on a list of inputs by running:
+
+ LD_LIBRARY_PATH=lib ./<graph_example> --validation-range='<validation_range>' --validation-file='<validation_file>' --validation-path='/path/to/test/images/' --data='/path/to/weights/'
+
+e.g:
+
+LD_LIBRARY_PATH=lib ./bin/graph_alexnet --target=CL --layout=NHWC --type=F32 --threads=4 --validation-range='16666,24998' --validation-file='val.txt' --validation-path='images/' --data='data/'
+
+where:
+ validation file is a plain document containing a list of images along with their expected label value.
+ e.g:
+
+ val_00000001.JPEG 65
+ val_00000002.JPEG 970
+ val_00000003.JPEG 230
+ val_00000004.JPEG 809
+ val_00000005.JPEG 516
+
+ --validation-range is the index range of the images within the validation file you want to check:
+ e.g:
+
+ --validation-range='100,200' will validate 100 images starting from 100th one in the validation file.
+
+ This can be useful when parallelizing the validation process is needed.
*/
}
\ No newline at end of file
diff --git a/docs/05_functions_list.dox b/docs/05_functions_list.dox
index 9848307..e82e472 100644
--- a/docs/05_functions_list.dox
+++ b/docs/05_functions_list.dox
@@ -1,5 +1,5 @@
///
-/// Copyright (c) 2018 ARM Limited.
+/// Copyright (c) 2018-2019 ARM Limited.
///
/// SPDX-License-Identifier: MIT
///
@@ -34,64 +34,80 @@
- @ref IFunction
- @ref INESimpleFunction
- @ref NEAbsoluteDifference
+ - @ref NEArithmeticAddition
+ - @ref NEArithmeticSubtraction
+ - @ref NEBox3x3
+ - @ref NEConvolution3x3
+ - @ref NEConvolutionRectangle
+ - @ref NEDilate
+ - @ref NEElementwiseComparison
+ - @ref NEElementwiseComparisonStatic
+ - @ref NEElementwiseDivision
+ - @ref NEElementwiseMax
+ - @ref NEElementwiseMin
+ - @ref NEElementwiseSquaredDiff
+ - @ref NEErode
+ - @ref NEExpLayer
+ - @ref NEGaussian3x3
+ - @ref NEIntegralImage
+ - @ref NEMedian3x3
+ - @ref NENonLinearFilter
+ - @ref NENonMaximaSuppression3x3
+ - @ref NEPixelWiseMultiplication
+ - @ref NERemap
+ - @ref NERsqrtLayer
+ - @ref NEScharr3x3
+ - @ref NESelect
+ - @ref NESobel3x3
+ - @ref NEStridedSlice
+ - @ref NEWarpAffine
+ - @ref NEWarpPerspective
+ - @ref INESimpleFunctionNoBorder
- @ref NEAccumulate
- @ref NEAccumulateSquared
- @ref NEAccumulateWeighted
- @ref NEActivationLayer
- - @ref NEArithmeticAddition
- - @ref NEArithmeticSubtraction
- @ref NEBitwiseAnd
- @ref NEBitwiseNot
- @ref NEBitwiseOr
- @ref NEBitwiseXor
- - @ref NEBox3x3
- @ref NEChannelCombine
- @ref NEChannelExtract
- @ref NEChannelShuffleLayer
- @ref NECol2Im
- @ref NEColorConvert
- - @ref NEConvolution3x3
- - @ref NEConvolutionRectangle
- @ref NECopy
- @ref NEDepthConvertLayer
- - @ref NEDilate
- - @ref NEErode
- @ref NEFlattenLayer
- @ref NEFloor
- @ref NEFullyConnectedLayerReshapeWeights
+ - @ref NEGather
- @ref NEGEMMInterleave4x4
- @ref NEGEMMLowpQuantizeDownInt32ToUint8Scale
- @ref NEGEMMLowpQuantizeDownInt32ToUint8ScaleByFixedPoint
- @ref NEGEMMTranspose1xW
- - @ref NEGaussian3x3
- @ref NEHOGDetector
- - @ref NEIntegralImage
- @ref NEMagnitude
- - @ref NEMedian3x3
- - @ref NENonLinearFilter
- - @ref NENonMaximaSuppression3x3
- @ref NEPermute
- @ref NEPhase
- - @ref NEPixelWiseMultiplication
- @ref NEPriorBoxLayer
- - @ref NERemap
- @ref NEReorgLayer
- @ref NEReshapeLayer
- - @ref NEScharr3x3
- - @ref NESobel3x3
+ - @ref NEReverse
+ - @ref NESlice
- @ref NETableLookup
- @ref NEThreshold
+ - @ref NETile
- @ref NETranspose
- - @ref NEWarpAffine
- - @ref NEWarpPerspective
- @ref NEYOLOLayer
+ - @ref NEArgMinMaxLayer
- @ref NEBatchNormalizationLayer
- @ref NECannyEdge
- @ref NEConcatenateLayer
- @ref NEConvertFullyConnectedWeights
- @ref NEConvolutionLayer
- @ref NEConvolutionLayerReshapeWeights
- - @ref NEConvolutionSquare<matrix_size>
+ - @ref NEConvolutionSquare <matrix_size>
- @ref NEDeconvolutionLayer
- @ref NEDepthConcatenateLayer
- @ref NEDepthwiseConvolutionLayer
@@ -104,42 +120,48 @@
- @ref NEFastCorners
- @ref NEFillBorder
- @ref NEFullyConnectedLayer
+ - @ref NEFuseBatchNormalization
+ - @ref NEGaussian5x5
+ - @ref NEGaussianPyramid
+ - @ref NEGaussianPyramidHalf
+ - @ref NEGaussianPyramidOrb
- @ref NEGEMM
- @ref NEGEMMAssemblyDispatch
- @ref NEGEMMConvolutionLayer
- @ref NEGEMMInterleavedWrapper
- @ref NEGEMMLowpAssemblyMatrixMultiplyCore
- @ref NEGEMMLowpMatrixMultiplyCore
- - @ref NEGaussian5x5
- - @ref NEGaussianPyramid
- - @ref NEGaussianPyramidHalf
- - @ref NEGaussianPyramidOrb
+ - @ref NEHarrisCorners
+ - @ref NEHistogram
- @ref NEHOGDescriptor
- @ref NEHOGGradient
- @ref NEHOGMultiDetection
- - @ref NEHarrisCorners
- - @ref NEHistogram
- @ref NEIm2Col
- @ref NEL2NormalizeLayer
- - @ref NELSTMLayer
- @ref NELaplacianPyramid
- @ref NELaplacianReconstruct
- @ref NELocallyConnectedLayer
+ - @ref NELSTMLayer
- @ref NEMeanStdDev
- @ref NEMinMaxLocation
- @ref NENormalizationLayer
- @ref NEOpticalFlow
+ - @ref NEPadLayer
- @ref NEPoolingLayer
- @ref NEQuantizationLayer
- - @ref NERNNLayer
- - @ref NEROIPoolingLayer
+ - @ref NERange
- @ref NEReduceMean
- @ref NEReductionOperation
+ - @ref NERNNLayer
+ - @ref NEROIPoolingLayer
- @ref NEScale
- @ref NESimpleAssemblyFunction
- @ref NESobel5x5
- @ref NESobel7x7
- @ref NESoftmaxLayer
+ - @ref NESplit
+ - @ref NEStackLayer
+ - @ref NEUnstack
- @ref NEUpsampleLayer
- @ref NEWidthConcatenateLayer
- @ref NEWinogradConvolutionLayer
@@ -153,7 +175,7 @@
- @ref CLConcatenateLayer
- @ref CLConvolutionLayer
- @ref CLConvolutionLayerReshapeWeights
- - @ref CLConvolutionSquare<matrix_size>
+ - @ref CLConvolutionSquare <matrix_size>
- @ref CLDeconvolutionLayer
- @ref CLDeconvolutionLayerUpsample
- @ref CLDepthConcatenateLayer
@@ -166,26 +188,26 @@
- @ref CLFastCorners
- @ref CLFullyConnectedLayer
- @ref CLFuseBatchNormalization
- - @ref CLGEMM
- - @ref CLGEMMConvolutionLayer
- - @ref CLGEMMLowpMatrixMultiplyCore
- @ref CLGaussian5x5
- @ref CLGaussianPyramid
- @ref CLGaussianPyramidHalf
- @ref CLGaussianPyramidOrb
+ - @ref CLGEMM
+ - @ref CLGEMMConvolutionLayer
+ - @ref CLGEMMLowpMatrixMultiplyCore
- @ref CLGenerateProposalsLayer
+ - @ref CLHarrisCorners
+ - @ref CLHistogram
- @ref CLHOGDescriptor
- @ref CLHOGDetector
- @ref CLHOGGradient
- @ref CLHOGMultiDetection
- - @ref CLHarrisCorners
- - @ref CLHistogram
- @ref CLIntegralImage
- @ref CLL2NormalizeLayer
- - @ref CLLSTMLayer
- @ref CLLaplacianPyramid
- @ref CLLaplacianReconstruct
- @ref CLLocallyConnectedLayer
+ - @ref CLLSTMLayer
- @ref CLMeanStdDev
- @ref CLMinMaxLocation
- @ref CLNormalizationLayer
@@ -193,14 +215,16 @@
- @ref CLOpticalFlow
- @ref CLPadLayer
- @ref CLQuantizationLayer
- - @ref CLRNNLayer
- @ref CLReduceMean
- @ref CLReductionOperation
+ - @ref CLRNNLayer
- @ref CLSobel5x5
- @ref CLSobel7x7
- @ref CLSoftmaxLayer
- @ref CLSpaceToBatchLayer
- @ref CLSplit
+ - @ref CLStackLayer
+ - @ref CLUnstack
- @ref CLUpsampleLayer
- @ref CLWidthConcatenateLayer
- @ref CLWinogradConvolutionLayer
@@ -210,6 +234,7 @@
- @ref CLAccumulateSquared
- @ref CLAccumulateWeighted
- @ref CLActivationLayer
+ - @ref CLArgMinMaxLayer
- @ref CLArithmeticAddition
- @ref CLArithmeticDivision
- @ref CLArithmeticSubtraction
@@ -219,10 +244,14 @@
- @ref CLBitwiseXor
- @ref CLBoundingBoxTransform
- @ref CLBox3x3
+ - @ref CLCast
- @ref CLChannelCombine
- @ref CLChannelExtract
- @ref CLChannelShuffleLayer
- @ref CLColorConvert
+ - @ref CLComparison
+ - @ref CLComparisonStatic
+ - @ref CLComputeAllAnchors
- @ref CLConvertFullyConnectedWeights
- @ref CLConvolution3x3
- @ref CLConvolutionRectangle
@@ -230,17 +259,22 @@
- @ref CLDepthConvertLayer
- @ref CLDerivative
- @ref CLDilate
+ - @ref CLElementwiseMax
+ - @ref CLElementwiseMin
+ - @ref CLElementwiseSquaredDiff
- @ref CLErode
+ - @ref CLExpLayer
- @ref CLFillBorder
- @ref CLFlattenLayer
- @ref CLFloor
- @ref CLFullyConnectedLayerReshapeWeights
+ - @ref CLGather
+ - @ref CLGaussian3x3
- @ref CLGEMMInterleave4x4
- @ref CLGEMMLowpQuantizeDownInt32ToUint8Scale
- @ref CLGEMMLowpQuantizeDownInt32ToUint8ScaleByFixedPoint
- @ref CLGEMMLowpQuantizeDownInt32ToUint8ScaleByFloat
- @ref CLGEMMTranspose1xW
- - @ref CLGaussian3x3
- @ref CLMagnitude
- @ref CLMedian3x3
- @ref CLNonLinearFilter
@@ -250,18 +284,23 @@
- @ref CLPixelWiseMultiplication
- @ref CLPoolingLayer
- @ref CLPriorBoxLayer
- - @ref CLROIAlignLayer
- - @ref CLROIPoolingLayer
+ - @ref CLRange
- @ref CLRemap
- @ref CLReorgLayer
- @ref CLReshapeLayer
+ - @ref CLReverse
+ - @ref CLROIAlignLayer
+ - @ref CLROIPoolingLayer
+ - @ref CLRsqrtLayer
- @ref CLScale
- @ref CLScharr3x3
+ - @ref CLSelect
- @ref CLSlice
- @ref CLSobel3x3
- @ref CLStridedSlice
- @ref CLTableLookup
- @ref CLThreshold
+ - @ref CLTile
- @ref CLTranspose
- @ref CLWarpAffine
- @ref CLWarpPerspective
@@ -296,5 +335,16 @@
- @ref GCScale
- @ref GCTensorShift
- @ref GCTranspose
+
+@section S5_4 CPP functions
+
+ - @ref IFunction
+ - @ref CPPDetectionOutputLayer
+ - @ref ICPPSimpleFunction
+ - @ref CPPBoxWithNonMaximaSuppressionLimit
+ - @ref CPPPermute
+ - @ref CPPTopKV
+ - @ref CPPUpsample
+
*/
} // namespace
diff --git a/docs/Doxyfile b/docs/Doxyfile
index d2d728d..081d497 100644
--- a/docs/Doxyfile
+++ b/docs/Doxyfile
@@ -1,4 +1,4 @@
-# Doxyfile 1.8.9.1
+# Doxyfile 1.8.15
# This file describes the settings to be used by the documentation system
# doxygen (www.doxygen.org) for a project.
@@ -38,7 +38,7 @@
# could be handy for archiving the generated documentation or if some version
# control system is used.
-PROJECT_NUMBER = 18.11
+PROJECT_NUMBER = 19.02
# Using the PROJECT_BRIEF tag one can provide an optional one line description
# for a project that appears at the top of each page and should give viewer a
@@ -1180,7 +1180,7 @@
# list). For an example see the documentation.
# This tag requires that the tag GENERATE_HTML is set to YES.
-HTML_EXTRA_STYLESHEET =
+HTML_EXTRA_STYLESHEET = ./docs/stylesheet.css
# The HTML_EXTRA_FILES tag can be used to specify one or more extra images or
# other source files which should be copied to the HTML output directory. Note
diff --git a/docs/header.html b/docs/header.html
index 1a45721..5dc7a09 100644
--- a/docs/header.html
+++ b/docs/header.html
@@ -1,4 +1,5 @@
-<!-- HTML header for doxygen 1.8.9.1-->
+<!-- HTML header for doxygen 1.8.15-->
+<!-- Remember to use version doxygen 1.8.15 +-->
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
@@ -25,12 +26,10 @@
<table cellspacing="0" cellpadding="0">
<tbody>
<tr style="height: 56px;">
- <!--BEGIN PROJECT_LOGO-->
- <td id="projectlogo"><img alt="Logo" src="$relpath^$projectlogo"/></td>
- <!--END PROJECT_LOGO-->
+ <img alt="Compute Library" src="https://raw.githubusercontent.com/ARM-software/ComputeLibrary/gh-pages/ACL_logo.png" style="max-width: 100%;margin-top: 15px;margin-left: 10px"/>
<!--BEGIN PROJECT_NAME-->
<td style="padding-left: 0.5em;">
- <div id="projectname">$projectname
+ <div id="projectname">
<!--BEGIN PROJECT_NUMBER--> <span id="projectnumber">$projectnumber</span><!--END PROJECT_NUMBER-->
</div>
<!--BEGIN PROJECT_BRIEF--><div id="projectbrief">$projectbrief</div><!--END PROJECT_BRIEF-->
diff --git a/docs/stylesheet.css b/docs/stylesheet.css
new file mode 100644
index 0000000..a692f51
--- /dev/null
+++ b/docs/stylesheet.css
@@ -0,0 +1,221 @@
+/* Changes to tabs.css */
+
+.tabs, .tabs2, .tabs3 {
+ /* box-shadow: 0px 5px 30px rgba(0, 0, 0, 0.3); */
+ position: relative;
+}
+
+.tablist li {
+ line-height: 32px;
+}
+
+.tablist a {
+ color: #FFFFFF;
+ text-shadow: none;
+}
+
+.tablist a:hover {
+ text-shadow: 0px 1px 1px rgba(0, 0, 0, 1.0);
+ text-decoration: none;
+ background-repeat: no-repeat;
+ background-image: url('tab_s.png');;
+}
+
+.tablist li.current a {
+ text-shadow: none;
+}
+
+/* Changes to navtree.css */
+
+#nav-tree .selected {
+ background-image: url('tab_a_nav.png');
+ border-radius: 15px;
+ text-shadow: none;
+}
+
+#nav-tree .label a {
+ color: #444444;
+}
+
+#nav-tree .selected a {
+ color: #007fa3;
+ font-weight: bold
+}
+
+#nav-tree {
+ background-color: #fafafa;
+}
+
+#doc-content {
+ background-color: #fafafa;
+}
+
+.ui-resizable-e {
+ background: none;
+ background-color : lightgray;
+ width:4px;
+}
+
+#nav-tree {
+ background-image: none;
+ background-color: #fafafa;
+}
+
+
+/* Changes to doxygen.css */
+
+h2.groupheader {
+ border-bottom: 1px solid #979797;
+ color: #4C4C4C;
+}
+
+h1, h2, h3, h4, h5, h6 {
+ font-weight : normal;
+}
+
+h1.glow, h2.glow, h3.glow, h4.glow, h5.glow, h6.glow {
+ text-shadow: 0 0 15px #007fa3;
+}
+
+div.qindex, div.navtab{
+ background-color: #EBEBEB;
+ border: 1px solid #B4B4B4;
+}
+
+div.qindex, div.navpath {
+ position : relative;
+}
+
+a {
+ color: #444444;
+}
+
+.contents a:visited {
+ color: #666666;
+}
+
+a.qindexHL {
+ background-color: #AFAFAf;
+ border: 1px double #9D9D9D;
+}
+
+a.code, a.code:visited {
+ color: #444444;
+}
+
+a.codeRef, a.codeRef:visited {
+ color: #444444;
+}
+
+div.fragment {
+ background-color: #FCFCFC;
+ border: 1px solid #CFCFCF;
+}
+
+div.line.glow {
+ background-color: #007fa3;
+}
+
+body {
+ background-color: #EEE;
+}
+
+.memberdecls td.glow, .fieldtable tr.glow {
+ background-color: #007fa3;
+}
+
+.memitem.glow {
+ /* box-shadow: 0 0 15px orange; */
+}
+
+.memproto, dl.reflist dt {
+ border-top: 1px solid #B8B8B8;
+ border-left: 1px solid #B8B8B8;
+ border-right: 1px solid #B8B8B8;
+ color: #333333;
+ background-color: #E2E2E2;
+}
+
+.memdoc, dl.reflist dd {
+ border-bottom: 1px solid #B8B8B8;
+ border-left: 1px solid #B8B8B8;
+ border-right: 1px solid #B8B8B8;
+ background-color: #FCFCFC;
+}
+
+table.doxtable td, table.doxtable th {
+ border: 1px solid #2D2D2D;
+}
+
+table.doxtable th {
+ background-color: #373737;
+}
+
+.navpath li.navelem a
+{
+ color: white;
+ text-shadow: none;
+}
+
+.navpath li.navelem a:hover
+{
+ color:white;
+ text-shadow : 0px 1px 1px rgba(0, 0, 0, 1.0);
+}
+
+dl.note
+{
+ border-color: #f68a33;
+}
+
+#projectlogo
+{
+ width:150px;
+ text-align:left;
+}
+
+#projectname
+{
+ font: 200% Tahoma, Arial,sans-serif;
+ color : #676767;
+ overflow:hidden;
+}
+
+#projectname #armdevcenter
+{
+ float:right;
+ padding-right: 20px;
+}
+
+#eula
+{
+ font-size: 80%;
+ font-weight: bold;
+}
+
+#titlearea
+{
+ background-color : white;
+ border-top: 5px solid white;
+ border-left: 10px solid white;
+ border-bottom: none;
+}
+
+a.copyright {
+ color: #FFFFFF;
+}
+
+a.copyright:hover {
+ color: #FFFFFF;
+}
+
+a.copyright:visited {
+ color: #FFFFFF;
+}
+
+div.toc h3 {
+ font: bold 12px/1.2 Arial,FreeSans,sans-serif;
+ color: #007fa3;
+ border-bottom: 0 none;
+ margin: 0;
+}
\ No newline at end of file