1c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath// This file is part of Eigen, a lightweight C++ template library
2c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath// for linear algebra.
3c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath//
4c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath// Copyright (C) 2011 Benoit Jacob <jacob.benoit.1@gmail.com>
5c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath//
6c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath// This Source Code Form is subject to the terms of the Mozilla
7c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath// Public License v. 2.0. If a copy of the MPL was not distributed
8c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath// with this file, You can obtain one at http://mozilla.org/MPL/2.0/.
9c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath
10c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath#include "main.h"
11c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath
12c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamathfloat *ptr;
13c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamathconst float *const_ptr;
14c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath
15c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamathtemplate<typename PlainObjectType,
16c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath         bool IsDynamicSize = PlainObjectType::SizeAtCompileTime == Dynamic,
17c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath         bool IsVector = PlainObjectType::IsVectorAtCompileTime
18c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath>
19c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamathstruct mapstaticmethods_impl {};
20c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath
21c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamathtemplate<typename PlainObjectType, bool IsVector>
22c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamathstruct mapstaticmethods_impl<PlainObjectType, false, IsVector>
23c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath{
24c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath  static void run(const PlainObjectType& m)
25c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath  {
26c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath    mapstaticmethods_impl<PlainObjectType, true, IsVector>::run(m);
27c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath
28c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath    int i = internal::random<int>(2,5), j = internal::random<int>(2,5);
29c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath
30c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath    PlainObjectType::Map(ptr).setZero();
31c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath    PlainObjectType::MapAligned(ptr).setZero();
32c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath    PlainObjectType::Map(const_ptr).sum();
33c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath    PlainObjectType::MapAligned(const_ptr).sum();
34c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath
35c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath    PlainObjectType::Map(ptr, InnerStride<>(i)).setZero();
36c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath    PlainObjectType::MapAligned(ptr, InnerStride<>(i)).setZero();
37c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath    PlainObjectType::Map(const_ptr, InnerStride<>(i)).sum();
38c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath    PlainObjectType::MapAligned(const_ptr, InnerStride<>(i)).sum();
39c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath
40c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath    PlainObjectType::Map(ptr, InnerStride<2>()).setZero();
41c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath    PlainObjectType::MapAligned(ptr, InnerStride<3>()).setZero();
42c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath    PlainObjectType::Map(const_ptr, InnerStride<4>()).sum();
43c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath    PlainObjectType::MapAligned(const_ptr, InnerStride<5>()).sum();
44c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath
45c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath    PlainObjectType::Map(ptr, OuterStride<>(i)).setZero();
46c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath    PlainObjectType::MapAligned(ptr, OuterStride<>(i)).setZero();
47c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath    PlainObjectType::Map(const_ptr, OuterStride<>(i)).sum();
48c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath    PlainObjectType::MapAligned(const_ptr, OuterStride<>(i)).sum();
49c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath
50c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath    PlainObjectType::Map(ptr, OuterStride<2>()).setZero();
51c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath    PlainObjectType::MapAligned(ptr, OuterStride<3>()).setZero();
52c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath    PlainObjectType::Map(const_ptr, OuterStride<4>()).sum();
53c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath    PlainObjectType::MapAligned(const_ptr, OuterStride<5>()).sum();
54c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath
55c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath    PlainObjectType::Map(ptr, Stride<Dynamic, Dynamic>(i,j)).setZero();
56c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath    PlainObjectType::MapAligned(ptr, Stride<2,Dynamic>(2,i)).setZero();
57c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath    PlainObjectType::Map(const_ptr, Stride<Dynamic,3>(i,3)).sum();
58c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath    PlainObjectType::MapAligned(const_ptr, Stride<Dynamic, Dynamic>(i,j)).sum();
59c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath
60c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath    PlainObjectType::Map(ptr, Stride<2,3>()).setZero();
61c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath    PlainObjectType::MapAligned(ptr, Stride<3,4>()).setZero();
62c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath    PlainObjectType::Map(const_ptr, Stride<2,4>()).sum();
63c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath    PlainObjectType::MapAligned(const_ptr, Stride<5,3>()).sum();
64c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath  }
65c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath};
66c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath
67c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamathtemplate<typename PlainObjectType>
68c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamathstruct mapstaticmethods_impl<PlainObjectType, true, false>
69c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath{
70c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath  static void run(const PlainObjectType& m)
71c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath  {
72c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath    int rows = m.rows(), cols = m.cols();
73c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath
74c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath    int i = internal::random<int>(2,5), j = internal::random<int>(2,5);
75c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath
76c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath    PlainObjectType::Map(ptr, rows, cols).setZero();
77c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath    PlainObjectType::MapAligned(ptr, rows, cols).setZero();
78c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath    PlainObjectType::Map(const_ptr, rows, cols).sum();
79c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath    PlainObjectType::MapAligned(const_ptr, rows, cols).sum();
80c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath
81c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath    PlainObjectType::Map(ptr, rows, cols, InnerStride<>(i)).setZero();
82c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath    PlainObjectType::MapAligned(ptr, rows, cols, InnerStride<>(i)).setZero();
83c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath    PlainObjectType::Map(const_ptr, rows, cols, InnerStride<>(i)).sum();
84c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath    PlainObjectType::MapAligned(const_ptr, rows, cols, InnerStride<>(i)).sum();
85c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath
86c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath    PlainObjectType::Map(ptr, rows, cols, InnerStride<2>()).setZero();
87c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath    PlainObjectType::MapAligned(ptr, rows, cols, InnerStride<3>()).setZero();
88c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath    PlainObjectType::Map(const_ptr, rows, cols, InnerStride<4>()).sum();
89c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath    PlainObjectType::MapAligned(const_ptr, rows, cols, InnerStride<5>()).sum();
90c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath
91c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath    PlainObjectType::Map(ptr, rows, cols, OuterStride<>(i)).setZero();
92c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath    PlainObjectType::MapAligned(ptr, rows, cols, OuterStride<>(i)).setZero();
93c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath    PlainObjectType::Map(const_ptr, rows, cols, OuterStride<>(i)).sum();
94c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath    PlainObjectType::MapAligned(const_ptr, rows, cols, OuterStride<>(i)).sum();
95c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath
96c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath    PlainObjectType::Map(ptr, rows, cols, OuterStride<2>()).setZero();
97c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath    PlainObjectType::MapAligned(ptr, rows, cols, OuterStride<3>()).setZero();
98c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath    PlainObjectType::Map(const_ptr, rows, cols, OuterStride<4>()).sum();
99c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath    PlainObjectType::MapAligned(const_ptr, rows, cols, OuterStride<5>()).sum();
100c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath
101c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath    PlainObjectType::Map(ptr, rows, cols, Stride<Dynamic, Dynamic>(i,j)).setZero();
102c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath    PlainObjectType::MapAligned(ptr, rows, cols, Stride<2,Dynamic>(2,i)).setZero();
103c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath    PlainObjectType::Map(const_ptr, rows, cols, Stride<Dynamic,3>(i,3)).sum();
104c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath    PlainObjectType::MapAligned(const_ptr, rows, cols, Stride<Dynamic, Dynamic>(i,j)).sum();
105c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath
106c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath    PlainObjectType::Map(ptr, rows, cols, Stride<2,3>()).setZero();
107c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath    PlainObjectType::MapAligned(ptr, rows, cols, Stride<3,4>()).setZero();
108c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath    PlainObjectType::Map(const_ptr, rows, cols, Stride<2,4>()).sum();
109c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath    PlainObjectType::MapAligned(const_ptr, rows, cols, Stride<5,3>()).sum();
110c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath  }
111c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath};
112c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath
113c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamathtemplate<typename PlainObjectType>
114c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamathstruct mapstaticmethods_impl<PlainObjectType, true, true>
115c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath{
116c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath  static void run(const PlainObjectType& v)
117c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath  {
118c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath    int size = v.size();
119c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath
120c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath    int i = internal::random<int>(2,5);
121c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath
122c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath    PlainObjectType::Map(ptr, size).setZero();
123c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath    PlainObjectType::MapAligned(ptr, size).setZero();
124c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath    PlainObjectType::Map(const_ptr, size).sum();
125c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath    PlainObjectType::MapAligned(const_ptr, size).sum();
126c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath
127c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath    PlainObjectType::Map(ptr, size, InnerStride<>(i)).setZero();
128c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath    PlainObjectType::MapAligned(ptr, size, InnerStride<>(i)).setZero();
129c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath    PlainObjectType::Map(const_ptr, size, InnerStride<>(i)).sum();
130c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath    PlainObjectType::MapAligned(const_ptr, size, InnerStride<>(i)).sum();
131c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath
132c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath    PlainObjectType::Map(ptr, size, InnerStride<2>()).setZero();
133c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath    PlainObjectType::MapAligned(ptr, size, InnerStride<3>()).setZero();
134c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath    PlainObjectType::Map(const_ptr, size, InnerStride<4>()).sum();
135c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath    PlainObjectType::MapAligned(const_ptr, size, InnerStride<5>()).sum();
136c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath  }
137c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath};
138c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath
139c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamathtemplate<typename PlainObjectType>
140c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamathvoid mapstaticmethods(const PlainObjectType& m)
141c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath{
142c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath  mapstaticmethods_impl<PlainObjectType>::run(m);
143c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath  VERIFY(true); // just to avoid 'unused function' warning
144c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath}
145c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath
146c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamathvoid test_mapstaticmethods()
147c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath{
148c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath  ptr = internal::aligned_new<float>(1000);
149c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath  for(int i = 0; i < 1000; i++) ptr[i] = float(i);
150c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath
151c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath  const_ptr = ptr;
152c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath
153c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath  CALL_SUBTEST_1(( mapstaticmethods(Matrix<float, 1, 1>()) ));
154c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath  CALL_SUBTEST_1(( mapstaticmethods(Vector2f()) ));
155c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath  CALL_SUBTEST_2(( mapstaticmethods(Vector3f()) ));
156c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath  CALL_SUBTEST_2(( mapstaticmethods(Matrix2f()) ));
157c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath  CALL_SUBTEST_3(( mapstaticmethods(Matrix4f()) ));
158c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath  CALL_SUBTEST_3(( mapstaticmethods(Array4f()) ));
159c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath  CALL_SUBTEST_4(( mapstaticmethods(Array3f()) ));
160c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath  CALL_SUBTEST_4(( mapstaticmethods(Array33f()) ));
161c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath  CALL_SUBTEST_5(( mapstaticmethods(Array44f()) ));
162c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath  CALL_SUBTEST_5(( mapstaticmethods(VectorXf(1)) ));
163c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath  CALL_SUBTEST_5(( mapstaticmethods(VectorXf(8)) ));
164c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath  CALL_SUBTEST_6(( mapstaticmethods(MatrixXf(1,1)) ));
165c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath  CALL_SUBTEST_6(( mapstaticmethods(MatrixXf(5,7)) ));
166c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath  CALL_SUBTEST_7(( mapstaticmethods(ArrayXf(1)) ));
167c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath  CALL_SUBTEST_7(( mapstaticmethods(ArrayXf(5)) ));
168c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath  CALL_SUBTEST_8(( mapstaticmethods(ArrayXXf(1,1)) ));
169c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath  CALL_SUBTEST_8(( mapstaticmethods(ArrayXXf(8,6)) ));
170c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath
171c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath  internal::aligned_delete(ptr, 1000);
172c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath}
173c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath
174