]> git.proxmox.com Git - ceph.git/blobdiff - ceph/src/boost/boost/qvm/mat.hpp
import new upstream nautilus stable release 14.2.8
[ceph.git] / ceph / src / boost / boost / qvm / mat.hpp
index a3d44a969918f35aa0a7e51559d02adf04bbf3f3..aceaa5a9fd03cda81fc39152a86b622842afa965 100644 (file)
@@ -1,98 +1,98 @@
-//Copyright (c) 2008-2016 Emil Dotchevski and Reverge Studios, Inc.\r
-\r
-//Distributed under the Boost Software License, Version 1.0. (See accompanying\r
-//file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)\r
-\r
-#ifndef UUID_67E67D68A32F11DEA56FD18556D89593\r
-#define UUID_67E67D68A32F11DEA56FD18556D89593\r
-\r
-#include <boost/qvm/detail/mat_assign.hpp>\r
-#include <boost/qvm/assert.hpp>\r
-#include <boost/qvm/static_assert.hpp>\r
-\r
-namespace\r
-boost\r
-    {\r
-    namespace\r
-    qvm\r
-        {\r
-        template <class T,int Rows,int Cols>\r
-        struct\r
-        mat\r
-            {\r
-            T a[Rows][Cols];\r
-            template <class R>\r
-            operator R() const\r
-                {\r
-                R r;\r
-                assign(r,*this);\r
-                return r;\r
-                }\r
-            };\r
-\r
-        template <class M>\r
-        struct mat_traits;\r
-\r
-        template <class T,int Rows,int Cols>\r
-        struct\r
-        mat_traits< mat<T,Rows,Cols> >\r
-            {\r
-            typedef mat<T,Rows,Cols> this_matrix;\r
-            typedef T scalar_type;\r
-            static int const rows=Rows;\r
-            static int const cols=Cols;\r
-\r
-            template <int Row,int Col>\r
-            static\r
-            BOOST_QVM_INLINE_CRITICAL\r
-            scalar_type\r
-            read_element( this_matrix const & x )\r
-                {\r
-                BOOST_QVM_STATIC_ASSERT(Row>=0);\r
-                BOOST_QVM_STATIC_ASSERT(Row<Rows);\r
-                BOOST_QVM_STATIC_ASSERT(Col>=0);\r
-                BOOST_QVM_STATIC_ASSERT(Col<Cols);\r
-                return x.a[Row][Col];\r
-                }\r
-\r
-            template <int Row,int Col>\r
-            static\r
-            BOOST_QVM_INLINE_CRITICAL\r
-            scalar_type &\r
-            write_element( this_matrix & x )\r
-                {\r
-                BOOST_QVM_STATIC_ASSERT(Row>=0);\r
-                BOOST_QVM_STATIC_ASSERT(Row<Rows);\r
-                BOOST_QVM_STATIC_ASSERT(Col>=0);\r
-                BOOST_QVM_STATIC_ASSERT(Col<Cols);\r
-                return x.a[Row][Col];\r
-                }\r
-\r
-            static\r
-            BOOST_QVM_INLINE_CRITICAL\r
-            scalar_type\r
-            read_element_idx( int row, int col, this_matrix const & x )\r
-                {\r
-                BOOST_QVM_ASSERT(row>=0);\r
-                BOOST_QVM_ASSERT(row<Rows);\r
-                BOOST_QVM_ASSERT(col>=0);\r
-                BOOST_QVM_ASSERT(col<Cols);\r
-                return x.a[row][col];\r
-                }\r
-\r
-            static\r
-            BOOST_QVM_INLINE_CRITICAL\r
-            scalar_type &\r
-            write_element_idx( int row, int col, this_matrix & x )\r
-                {\r
-                BOOST_QVM_ASSERT(row>=0);\r
-                BOOST_QVM_ASSERT(row<Rows);\r
-                BOOST_QVM_ASSERT(col>=0);\r
-                BOOST_QVM_ASSERT(col<Cols);\r
-                return x.a[row][col];\r
-                }\r
-            };\r
-        }\r
-    }\r
-\r
-#endif\r
+//Copyright (c) 2008-2016 Emil Dotchevski and Reverge Studios, Inc.
+
+//Distributed under the Boost Software License, Version 1.0. (See accompanying
+//file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
+
+#ifndef UUID_67E67D68A32F11DEA56FD18556D89593
+#define UUID_67E67D68A32F11DEA56FD18556D89593
+
+#include <boost/qvm/detail/mat_assign.hpp>
+#include <boost/qvm/assert.hpp>
+#include <boost/qvm/static_assert.hpp>
+
+namespace
+boost
+    {
+    namespace
+    qvm
+        {
+        template <class T,int Rows,int Cols>
+        struct
+        mat
+            {
+            T a[Rows][Cols];
+            template <class R>
+            operator R() const
+                {
+                R r;
+                assign(r,*this);
+                return r;
+                }
+            };
+
+        template <class M>
+        struct mat_traits;
+
+        template <class T,int Rows,int Cols>
+        struct
+        mat_traits< mat<T,Rows,Cols> >
+            {
+            typedef mat<T,Rows,Cols> this_matrix;
+            typedef T scalar_type;
+            static int const rows=Rows;
+            static int const cols=Cols;
+
+            template <int Row,int Col>
+            static
+            BOOST_QVM_INLINE_CRITICAL
+            scalar_type
+            read_element( this_matrix const & x )
+                {
+                BOOST_QVM_STATIC_ASSERT(Row>=0);
+                BOOST_QVM_STATIC_ASSERT(Row<Rows);
+                BOOST_QVM_STATIC_ASSERT(Col>=0);
+                BOOST_QVM_STATIC_ASSERT(Col<Cols);
+                return x.a[Row][Col];
+                }
+
+            template <int Row,int Col>
+            static
+            BOOST_QVM_INLINE_CRITICAL
+            scalar_type &
+            write_element( this_matrix & x )
+                {
+                BOOST_QVM_STATIC_ASSERT(Row>=0);
+                BOOST_QVM_STATIC_ASSERT(Row<Rows);
+                BOOST_QVM_STATIC_ASSERT(Col>=0);
+                BOOST_QVM_STATIC_ASSERT(Col<Cols);
+                return x.a[Row][Col];
+                }
+
+            static
+            BOOST_QVM_INLINE_CRITICAL
+            scalar_type
+            read_element_idx( int row, int col, this_matrix const & x )
+                {
+                BOOST_QVM_ASSERT(row>=0);
+                BOOST_QVM_ASSERT(row<Rows);
+                BOOST_QVM_ASSERT(col>=0);
+                BOOST_QVM_ASSERT(col<Cols);
+                return x.a[row][col];
+                }
+
+            static
+            BOOST_QVM_INLINE_CRITICAL
+            scalar_type &
+            write_element_idx( int row, int col, this_matrix & x )
+                {
+                BOOST_QVM_ASSERT(row>=0);
+                BOOST_QVM_ASSERT(row<Rows);
+                BOOST_QVM_ASSERT(col>=0);
+                BOOST_QVM_ASSERT(col<Cols);
+                return x.a[row][col];
+                }
+            };
+        }
+    }
+
+#endif