Logo  0.95.0-final
Finite Element Embedded Library and Language in C++
Feel++ Feel++ on Github Feel++ community
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages
fekete.hpp
Go to the documentation of this file.
1 /* -*- mode: c++; coding: utf-8; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4; show-trailing-whitespace: t -*- vim:fenc=utf-8:ft=tcl:et:sw=4:ts=4:sts=4
2 
3  This file is part of the Feel library
4 
5  Author(s): Christophe Prud'homme <christophe.prudhomme@feelpp.org>
6  Date: 2006-03-03
7 
8  Copyright (C) 2006 EPFL
9 
10  This library is free software; you can redistribute it and/or
11  modify it under the terms of the GNU Lesser General Public
12  License as published by the Free Software Foundation; either
13  version 3.0 of the License, or (at your option) any later version.
14 
15  This library is distributed in the hope that it will be useful,
16  but WITHOUT ANY WARRANTY; without even the implied warranty of
17  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
18  Lesser General Public License for more details.
19 
20  You should have received a copy of the GNU Lesser General Public
21  License along with this library; if not, write to the Free Software
22  Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
23 */
29 #ifndef __Fekete_H
30 #define __Fekete_H 1
31 
32 #include <feel/feelalg/glas.hpp>
34 #include <feel/feelpoly/geomap.hpp>
38 
39 #include <boost/assign/list_of.hpp>
40 #include <boost/assign/std/vector.hpp>
41 
42 namespace Feel
43 {
44 template< class Convex,
45  uint16_type Order,
46  typename T >
47 class PointSetWarpBlend;
48 
49 template< class Convex,
50  uint16_type Order,
51  typename T >
52 class PointSetGaussLobatto;
53 
54 template< class Convex,
55  uint16_type Order,
56  typename T = double >
57 class PointSetFeketeSimplex : public PointSetInterpolation<Convex::nDim, Order, T, Simplex>
58 {
59 
60 public :
61 
62  typedef PointSetWarpBlend<Convex, Order, T> super;
63 
64  typedef T value_type;
65 
66  static const uint32_type Dim = Convex::nDim;
67  static const uint16_type nPoints1D = Order+1;
68 
69  static const size_type Shape = Convex::Shape;
70 
71  static const bool is_simplex = Convex::is_simplex;
72  static const bool is_hypercube = Convex::is_hypercube;
73 
74  typedef typename super::return_type return_type;
75 
76  typedef ublas::vector<value_type> vector_type;
77 
78  static const uint32_type topological_dimension = Convex::topological_dimension;
79  static const uint32_type numPoints = super::numPoints;
80 
81  typedef Reference<Convex, Dim, Convex::nOrder, Dim, value_type> reference_convex_type;
82 
83  typedef typename reference_convex_type::points_type points_type;
84 
85  static const uint32_type nbPtsPerFace = super::nbPtsPerFace;
86 
87  typedef std::vector<uint16_type> orbits_type;
88 
89  reference_convex_type RefConv;
90 
91  PointSetFeketeSimplex( int interior = 0 )
92  {
93  PointSetWarpBlend<Convex, Order, T> G( interior );
94 
95  points_type final_pts = G.points();
96 
97  //Copies information about WarpBlend points
98  this->setEid( G.getEid() );
99  this->setPtE( G.getPtE() );
100 
101  if ( Order > 2 )
102  {
103  points_type Gt( Dim, nbPtsPerFace );
104 
105  Gt = innerFeketePoints();
106  Gt = orderInteriorFace( Gt );
107 
108  if ( interior )
109  final_pts = Gt;
110 
111  else
112  final_pts = putInPointset ( final_pts, Gt, G.interiorRangeById( 2, 0 ) );
113 
114  }
115 
116  this->setPoints( final_pts );
117 
118  this->setName( "fekete", Order );
119  }
120 
121  ~PointSetFeketeSimplex() {}
122 
123 private :
124 
125  points_type innerFeketePoints()
126  {
127  points_type inner_pts ( Dim, nbPtsPerFace );
128 
129  std::vector< std::vector<double> > pts ( nbPtsPerFace );
130 
131  using namespace boost::assign;
132 
133  switch ( Order )
134  {
135  case 3:
136  {
137  pts[0] += -double( 1.0 )/double( 3.0 ), -double( 1.0 )/double( 3.0 );
138  break;
139  }
140 
141  case 4:
142  {
143  pts[0] += -0.566915270681781, -0.566915270681781;
144  pts[1] += -0.566915270681781, 0.133830541363562;
145  pts[2] += 0.133830541363562, -0.566915270681781;
146 
147  break;
148  }
149 
150  case 5:
151  {
152  pts[0] += -0.703961057369349, -0.703961057370137;
153  pts[1] += -0.683302157170358, -0.158348921415476;
154  pts[2] += -0.703961057370137, 0.407922114739486;
155  pts[3] += -0.158348921414166, -0.683302157170358;
156  pts[4] += -0.158348921415476, -0.158348921414166;
157  pts[5] += 0.407922114739486, -0.703961057369349;
158  break;
159  }
160 
161  case 6:
162  {
163  pts[0] += -0.333333333333333, -0.333333333333333;
164  pts[1] += -0.367460408129093, -0.765638165744237;
165  pts[2] += -0.787329063247951, -0.787329063247952;
166  pts[3] += -0.765638165744237, -0.367460408129093;
167  pts[4] += 0.133098573873330, -0.765638165744237;
168  pts[5] += -0.367460408129093, 0.133098573873330;
169  pts[6] += -0.765638165744237, 0.133098573873330;
170  pts[7] += 0.133098573873330, -0.367460408129093;
171  pts[8] += -0.787329063247952, 0.574658126495903;
172  pts[9] += 0.574658126495903, -0.787329063247951;
173  break;
174  }
175 
176  case 7:
177  {
178 
179  pts[0] += -0.473581790085882, -0.473581790086410;
180  pts[1] += -0.092029311878152, -0.815941376243689;
181  pts[2] += -0.513270713769908, -0.822113905089151;
182  pts[3] += -0.840822986239630, -0.840822986239633;
183  pts[4] += -0.473581790086410, -0.052836419827708;
184  pts[5] += -0.052836419827708, -0.473581790085882;
185  pts[6] += -0.815941376243689, -0.092029311878159;
186  pts[7] += -0.092029311878159, -0.092029311878152;
187  pts[8] += -0.822113905089151, -0.513270713769908;
188  pts[9] += 0.335384618859059, -0.822113905089151;
189  pts[10] += -0.513270713769908, 0.335384618859059;
190  pts[11] += -0.822113905089151, 0.335384618859059;
191  pts[12] += 0.335384618859059, -0.513270713769908;
192  pts[13] += -0.840822986239633, 0.681645972479263;
193  pts[14] += 0.681645972479263, -0.840822986239630;
194  break;
195  }
196 
197  case 8:
198  {
199  pts[0] += -0.216365666632575, -0.567268666734080;
200  pts[1] += -0.579556771293157, -0.579556771293783;
201  pts[2] += -0.265519472998560, -0.853908185662976;
202  pts[3] += -0.616451325376556, -0.861487487652122;
203  pts[4] += -0.876851564079131, -0.876851564079171;
204  pts[5] += -0.567268666733596, -0.216365666633543;
205  pts[6] += -0.216365666634537, -0.216365666631639;
206  pts[7] += -0.579556771294394, 0.159113542587640;
207  pts[8] += 0.159113542586342, -0.579556771292601;
208  pts[9] += -0.853908185662855, -0.265519472998911;
209  pts[10] += 0.119427658661863, -0.853908185662948;
210  pts[11] += -0.265519472998830, 0.119427658661806;
211  pts[12] += -0.853908185662892, 0.119427658661475;
212  pts[13] += 0.119427658661483, -0.265519472998638;
213  pts[14] += -0.861487487652025, -0.616451325376726;
214  pts[15] += 0.477938813028659, -0.861487487651878;
215  pts[16] += -0.616451325376719, 0.477938813028829;
216  pts[17] += -0.861487487652288, 0.477938813028806;
217  pts[18] += 0.477938813028602, -0.616451325376548;
218  pts[19] += -0.876851564079185, 0.753703128158331;
219  pts[20] += 0.753703128158281, -0.876851564079116;
220  break;
221  }
222 
223  case 9:
224  {
225  pts[0] += -0.333333333333333, -0.333333333333333;
226  pts[1] += -0.349513020087187, -0.643132482384194;
227  pts[2] += -0.659136359813528, -0.659136359813511;
228  pts[3] += -0.060082471166027, -0.879835057667481;
229  pts[4] += -0.397951578026397, -0.882287024211335;
230  pts[5] += -0.691219611179607, -0.889648384166848;
231  pts[6] += -0.902130860890619, -0.902130860890625;
232  pts[7] += -0.643132482384194, -0.349513020087187;
233  pts[8] += -0.007354497528619, -0.643132482384194;
234  pts[9] += -0.349513020087187, -0.007354497528619;
235  pts[10] += -0.643132482384194, -0.007354497528619;
236  pts[11] += -0.007354497528619, -0.349513020087187;
237  pts[12] += -0.659136359813511, 0.318272719627039;
238  pts[13] += 0.318272719627039, -0.659136359813528;
239  pts[14] += -0.879835057667481, -0.060082471166492;
240  pts[15] += -0.060082471166492, -0.060082471166027;
241  pts[16] += -0.882287024211335, -0.397951578026397;
242  pts[17] += 0.280238602237732, -0.882287024211335;
243  pts[18] += -0.397951578026397, 0.280238602237732;
244  pts[19] += -0.882287024211335, 0.280238602237732;
245  pts[20] += 0.280238602237732, -0.397951578026397;
246  pts[21] += -0.889648384166848, -0.691219611179607;
247  pts[22] += 0.580867995346455, -0.889648384166848;
248  pts[23] += -0.691219611179607, 0.580867995346455;
249  pts[24] += -0.889648384166848, 0.580867995346455;
250  pts[25] += 0.580867995346455, -0.691219611179607;
251  pts[26] += -0.902130860890625, 0.804261721781244;
252  pts[27] += 0.804261721781244, -0.902130860890619;
253  break;
254  }
255 
256  case 10:
257  {
258  pts[0] += -0.239750033297594, -0.520499933404811;
259  pts[1] += -0.516800012629008, -0.516800012629009;
260  pts[2] += -0.257946265874160, -0.790148650478844;
261  pts[3] += -0.553131324174815, -0.752415268984459;
262  pts[4] += -0.781465283043698, -0.781465283043698;
263  pts[5] += -0.033736396065064, -0.932527207869870;
264  pts[6] += -0.484262543101076, -0.925302995602205;
265  pts[7] += -0.818984113526921, -0.931063288077205;
266  pts[8] += -0.520499933404811, -0.239750033297595;
267  pts[9] += -0.239750033297595, -0.239750033297594;
268  pts[10] += -0.516800012629009, 0.033600025258018;
269  pts[11] += 0.033600025258018, -0.516800012629008;
270  pts[12] += -0.790148650478844, -0.257946265874160;
271  pts[13] += 0.048094916353004, -0.790148650478844;
272  pts[14] += -0.257946265874160, 0.048094916353004;
273  pts[15] += -0.790148650478844, 0.048094916353004;
274  pts[16] += 0.048094916353004, -0.257946265874160;
275  pts[17] += -0.752415268984459, -0.553131324174815;
276  pts[18] += 0.305546593159274, -0.752415268984459;
277  pts[19] += -0.553131324174815, 0.305546593159274;
278  pts[20] += -0.752415268984459, 0.305546593159274;
279  pts[21] += 0.305546593159274, -0.553131324174815;
280  pts[22] += -0.781465283043698, 0.562930566087395;
281  pts[23] += 0.562930566087395, -0.781465283043698;
282  pts[24] += -0.932527207869870, -0.033736396065066;
283  pts[25] += -0.033736396065066, -0.033736396065064;
284  pts[26] += -0.925302995602205, -0.484262543101076;
285  pts[27] += 0.409565538703281, -0.925302995602205;
286  pts[28] += -0.484262543101076, 0.409565538703281;
287  pts[29] += -0.925302995602205, 0.409565538703281;
288  pts[30] += 0.409565538703281, -0.484262543101076;
289  pts[31] += -0.931063288077205, -0.818984113526921;
290  pts[32] += 0.750047401604126, -0.931063288077205;
291  pts[33] += -0.818984113526921, 0.750047401604126;
292  pts[34] += -0.931063288077205, 0.750047401604126;
293  pts[35] += 0.750047401604126, -0.818984113526921;
294  break;
295  }
296 
297  case 11:
298  {
299  pts[0] += -0.426288429164565, -0.426288429164564;
300  pts[1] += -0.184095969280423, -0.631808061439155;
301  pts[2] += -0.586974557425838, -0.586974557425838;
302  pts[3] += -0.377399646207547, -0.775153413812684;
303  pts[4] += -0.776324974302030, -0.908258463253342;
304  pts[5] += -0.086138932580443, -0.827722134839114;
305  pts[6] += -0.633345990227640, -0.798648875634472;
306  pts[7] += -0.908258463253342, -0.776324974302030;
307  pts[8] += -0.218515810917888, -0.935838462756195;
308  pts[9] += -0.535040235101238, -0.937261747926706;
309  pts[10] += -0.928290828736822, -0.928290828736822;
310  pts[11] += -0.426288429164564, -0.147423141670871;
311  pts[12] += -0.147423141670871, -0.426288429164565;
312  pts[13] += -0.631808061439155, -0.184095969280421;
313  pts[14] += -0.184095969280421, -0.184095969280423;
314  pts[15] += -0.586974557425838, 0.173949114851675;
315  pts[16] += 0.173949114851675, -0.586974557425838;
316  pts[17] += -0.775153413812684, -0.377399646207547;
317  pts[18] += 0.152553060020230, -0.775153413812684;
318  pts[19] += -0.377399646207547, 0.152553060020230;
319  pts[20] += -0.775153413812684, 0.152553060020230;
320  pts[21] += 0.152553060020230, -0.377399646207547;
321  pts[22] += -0.908258463253342, 0.684583437555372;
322  pts[23] += 0.684583437555372, -0.776324974302030;
323  pts[24] += -0.827722134839114, -0.086138932580443;
324  pts[25] += -0.086138932580443, -0.086138932580443;
325  pts[26] += -0.798648875634472, -0.633345990227640;
326  pts[27] += 0.431994865862111, -0.798648875634472;
327  pts[28] += -0.633345990227640, 0.431994865862111;
328  pts[29] += -0.798648875634472, 0.431994865862111;
329  pts[30] += 0.431994865862111, -0.633345990227640;
330  pts[31] += -0.776324974302030, 0.684583437555372;
331  pts[32] += 0.684583437555372, -0.908258463253342;
332  pts[33] += -0.935838462756195, -0.218515810917888;
333  pts[34] += 0.154354273674083, -0.935838462756195;
334  pts[35] += -0.218515810917888, 0.154354273674083;
335  pts[36] += -0.935838462756195, 0.154354273674083;
336  pts[37] += 0.154354273674083, -0.218515810917888;
337  pts[38] += -0.937261747926706, -0.535040235101238;
338  pts[39] += 0.472301983027943, -0.937261747926706;
339  pts[40] += -0.535040235101238, 0.472301983027943;
340  pts[41] += -0.937261747926706, 0.472301983027943;
341  pts[42] += 0.472301983027943, -0.535040235101238;
342  pts[43] += -0.928290828736822, 0.856581657473645;
343  pts[44] += 0.856581657473645, -0.928290828736822;
344  break;
345  }
346 
347  case 12:
348  {
349  pts[0] += -0.333333333333333, -0.333333333333333;
350  pts[1] += -0.366118633733524, -0.559725774975652;
351  pts[2] += -0.074155591290824, -0.559725774975640;
352  pts[3] += -0.624565774148092, -0.624565774148093;
353  pts[4] += -0.140340214413457, -0.719319571173060;
354  pts[5] += -0.431536181329258, -0.768507319183628;
355  pts[6] += -0.833349444442592, -0.833349444442587;
356  pts[7] += -0.205647119941729, -0.865429878796984;
357  pts[8] += -0.644199866452571, -0.818032093757191;
358  pts[9] += -0.949540550694726, -0.867065080338688;
359  pts[10] += -0.021888401958102, -0.956223196083790;
360  pts[11] += -0.394807319693724, -0.936337673359307;
361  pts[12] += -0.653266898894878, -0.945296284206355;
362  pts[13] += -0.867065080338677, -0.949540550694725;
363  pts[14] += -0.559725774975652, -0.074155591290824;
364  pts[15] += -0.074155591290824, -0.366118633733524;
365  pts[16] += -0.559725774975640, -0.366118633733536;
366  pts[17] += -0.366118633733536, -0.074155591290824;
367  pts[18] += -0.624565774148093, 0.249131548296185;
368  pts[19] += 0.249131548296185, -0.624565774148092;
369  pts[20] += -0.719319571173060, -0.140340214413483;
370  pts[21] += -0.140340214413483, -0.140340214413457;
371  pts[22] += -0.768507319183628, -0.431536181329258;
372  pts[23] += 0.200043500512886, -0.768507319183628;
373  pts[24] += -0.431536181329258, 0.200043500512886;
374  pts[25] += -0.768507319183628, 0.200043500512886;
375  pts[26] += 0.200043500512886, -0.431536181329258;
376  pts[27] += -0.833349444442587, 0.666698888885179;
377  pts[28] += 0.666698888885179, -0.833349444442592;
378  pts[29] += -0.865429878796984, -0.205647119941729;
379  pts[30] += 0.071076998738713, -0.865429878796984;
380  pts[31] += -0.205647119941729, 0.071076998738713;
381  pts[32] += -0.865429878796984, 0.071076998738713;
382  pts[33] += 0.071076998738713, -0.205647119941729;
383  pts[34] += -0.818032093757191, -0.644199866452571;
384  pts[35] += 0.462231960209762, -0.818032093757191;
385  pts[36] += -0.644199866452571, 0.462231960209762;
386  pts[37] += -0.818032093757191, 0.462231960209762;
387  pts[38] += 0.462231960209762, -0.644199866452571;
388  pts[39] += -0.867065080338688, 0.816605631033414;
389  pts[40] += 0.816605631033414, -0.949540550694726;
390  pts[41] += -0.956223196083790, -0.021888401958108;
391  pts[42] += -0.021888401958108, -0.021888401958102;
392  pts[43] += -0.936337673359307, -0.394807319693724;
393  pts[44] += 0.331144993053031, -0.936337673359307;
394  pts[45] += -0.394807319693724, 0.331144993053031;
395  pts[46] += -0.936337673359307, 0.331144993053031;
396  pts[47] += 0.331144993053031, -0.394807319693724;
397  pts[48] += -0.945296284206355, -0.653266898894878;
398  pts[49] += 0.598563183101232, -0.945296284206355;
399  pts[50] += -0.653266898894878, 0.598563183101232;
400  pts[51] += -0.945296284206355, 0.598563183101232;
401  pts[52] += 0.598563183101232, -0.653266898894878;
402  pts[53] += -0.949540550694725, 0.816605631033402;
403  pts[54] += 0.816605631033402, -0.867065080338677;
404  break;
405  }
406 
407 
408  case 13:
409  {
410  pts[0] += -0.411407513886432, -0.411407513886432;
411  pts[1] += -0.214052183872017, -0.571895632255967;
412  pts[2] += -0.539573883106313, -0.539573883106313;
413  pts[3] += -0.287868553838811, -0.717902048140164;
414  pts[4] += -0.540297218250118, -0.732989588419528;
415  pts[5] += -0.743226499430370, -0.743226499430370;
416  pts[6] += -0.071171195753188, -0.857657608493625;
417  pts[7] += -0.335863001538683, -0.859363917043220;
418  pts[8] += -0.623056409518609, -0.862030029517440;
419  pts[9] += -0.852002455492610, -0.852002455492610;
420  pts[10] +=-0.178334191212880, -0.954817865487350;
421  pts[11] +=-0.464674822424600, -0.950458941099439;
422  pts[12] +=-0.701942332364525, -0.951956806119627;
423  pts[13] +=-0.883949040041051, -0.955838523904429;
424  pts[14] +=-0.411407513886432, -0.177184972227137;
425  pts[15] +=-0.177184972227137, -0.411407513886432;
426  pts[16] +=-0.571895632255967, -0.214052183872017;
427  pts[17] +=-0.214052183872017, -0.214052183872017;
428  pts[18] +=-0.539573883106313, 0.079147766212627;
429  pts[19] += 0.079147766212627, -0.539573883106313;
430  pts[20] +=-0.717902048140164, -0.287868553838811;
431  pts[21] += 0.005770601978975, -0.717902048140164;
432  pts[22] +=-0.287868553838811, 0.005770601978975;
433  pts[23] +=-0.717902048140164, 0.005770601978975;
434  pts[24] += 0.005770601978975, -0.287868553838811;
435  pts[25] +=-0.732989588419528, -0.540297218250118;
436  pts[26] += 0.273286806669646, -0.732989588419528;
437  pts[27] +=-0.540297218250118, 0.273286806669646;
438  pts[28] +=-0.732989588419528, 0.273286806669646;
439  pts[29] += 0.273286806669646, -0.540297218250118;
440  pts[30] +=-0.743226499430370, 0.486452998860741;
441  pts[31] += 0.486452998860741, -0.743226499430370;
442  pts[32] +=-0.857657608493625, -0.071171195753188;
443  pts[33] +=-0.071171195753188, -0.071171195753188;
444  pts[34] +=-0.859363917043220, -0.335863001538683;
445  pts[35] += 0.195226918581903, -0.859363917043220;
446  pts[36] +=-0.335863001538683, 0.195226918581903;
447  pts[37] +=-0.859363917043220, 0.195226918581903;
448  pts[38] += 0.195226918581903, -0.335863001538683;
449  pts[39] +=-0.862030029517440, -0.623056409518609;
450  pts[40] += 0.485086439036049, -0.862030029517440;
451  pts[41] +=-0.623056409518609, 0.485086439036049;
452  pts[42] +=-0.862030029517440, 0.485086439036049;
453  pts[43] += 0.485086439036049, -0.623056409518609;
454  pts[44] +=-0.852002455492610, 0.704004910985221;
455  pts[45] += 0.704004910985221, -0.852002455492610;
456  pts[46] +=-0.954817865487350, -0.178334191212880;
457  pts[47] += 0.133152056700230, -0.954817865487350;
458  pts[48] +=-0.178334191212880, 0.133152056700230;
459  pts[49] +=-0.954817865487350, 0.133152056700230;
460  pts[50] += 0.133152056700230, -0.178334191212880;
461  pts[51] +=-0.950458941099439, -0.464674822424600;
462  pts[52] += 0.415133763524038, -0.950458941099439;
463  pts[53] +=-0.464674822424600, 0.415133763524038;
464  pts[54] +=-0.950458941099439, 0.415133763524038;
465  pts[55] += 0.415133763524038, -0.464674822424600;
466  pts[56] +=-0.951956806119627, -0.701942332364525;
467  pts[57] += 0.653899138484151, -0.951956806119627;
468  pts[58] +=-0.701942332364525, 0.653899138484151;
469  pts[59] +=-0.951956806119627, 0.653899138484151;
470  pts[60] += 0.653899138484151, -0.701942332364525;
471  pts[61] +=-0.955838523904429, -0.883949040041051;
472  pts[62] += 0.839787563945479, -0.955838523904429;
473  pts[63] +=-0.883949040041051, 0.839787563945479;
474  pts[64] +=-0.955838523904429, 0.839787563945479;
475  pts[65] += 0.839787563945479, -0.883949040041051;
476  break;
477  }
478 
479 
480  case 14:
481  {
482 
483 
484  pts[0] += -0.210489388870677, -0.579021222258655;
485  pts[1] += -0.183849077476319, -0.408075461261843;
486  pts[2] += -0.127347936150219, -0.745304127699574;
487  pts[3] += -0.540572408690582, -0.540572408690580;
488  pts[4] += -0.364367592015457, -0.689962524023234;
489  pts[5] += -0.736068596037139, -0.736068596037137;
490  pts[6] += 0.038332201767425, -0.861626855061358;
491  pts[7] += -0.554243348588859, -0.727059313582804;
492  pts[8] += -0.871281426433905, -0.769687425283662;
493  pts[9] += -0.176705346706054, -0.861626855061365;
494  pts[10] +=-0.382367340313839, -0.872946396511865;
495  pts[11] +=-0.584327224183587, -0.875713493198755;
496  pts[12] +=-0.769687425283663, -0.871281426433905;
497  pts[13] +=-0.173252532533942, -0.957943978206850;
498  pts[14] +=-0.459441974333255, -0.960810947366647;
499  pts[15] +=-0.697211314708751, -0.958833352267252;
500  pts[16] +=-0.858673547396615, -0.945197866913093;
501  pts[17] +=-0.955761107477727, -0.955761107477727;
502  pts[18] +=-0.579021222258655, -0.210489388870668;
503  pts[19] +=-0.210489388870668, -0.210489388870677;
504  pts[20] +=-0.408075461261843, -0.408075461261838;
505  pts[21] +=-0.408075461261838, -0.183849077476319;
506  pts[22] +=-0.745304127699574, -0.127347936150206;
507  pts[23] +=-0.127347936150206, -0.127347936150219;
508  pts[24] +=-0.540572408690580, 0.081144817381162;
509  pts[25] += 0.081144817381162, -0.540572408690582;
510  pts[26] +=-0.689962524023234, -0.364367592015457;
511  pts[27] += 0.054330116038691, -0.689962524023234;
512  pts[28] +=-0.364367592015457, 0.054330116038691;
513  pts[29] +=-0.689962524023234, 0.054330116038691;
514  pts[30] += 0.054330116038691, -0.364367592015457;
515  pts[31] +=-0.736068596037137, 0.472137192074276;
516  pts[32] += 0.472137192074276, -0.736068596037139;
517  pts[33] +=-0.861626855061358, -0.176705346706066;
518  pts[34] +=-0.176705346706066, 0.038332201767425;
519  pts[35] +=-0.727059313582804, -0.554243348588859;
520  pts[36] += 0.281302662171663, -0.727059313582804;
521  pts[37] +=-0.554243348588859, 0.281302662171663;
522  pts[38] +=-0.727059313582804, 0.281302662171663;
523  pts[39] += 0.281302662171663, -0.554243348588859;
524  pts[40] +=-0.769687425283662, 0.640968851717568;
525  pts[41] += 0.640968851717568, -0.871281426433905;
526  pts[42] +=-0.861626855061365, 0.038332201767419;
527  pts[43] += 0.038332201767419, -0.176705346706054;
528  pts[44] +=-0.872946396511865, -0.382367340313839;
529  pts[45] += 0.255313736825704, -0.872946396511865;
530  pts[46] +=-0.382367340313839, 0.255313736825704;
531  pts[47] +=-0.872946396511865, 0.255313736825704;
532  pts[48] += 0.255313736825704, -0.382367340313839;
533  pts[49] +=-0.875713493198755, -0.584327224183587;
534  pts[50] += 0.460040717382342, -0.875713493198755;
535  pts[51] +=-0.584327224183587, 0.460040717382342;
536  pts[52] +=-0.875713493198755, 0.460040717382342;
537  pts[53] += 0.460040717382342, -0.584327224183587;
538  pts[54] +=-0.871281426433905, 0.640968851717568;
539  pts[55] += 0.640968851717568, -0.769687425283663;
540  pts[56] +=-0.957943978206850, -0.173252532533942;
541  pts[57] += 0.131196510740792, -0.957943978206850;
542  pts[58] +=-0.173252532533942, 0.131196510740792;
543  pts[59] +=-0.957943978206850, 0.131196510740792;
544  pts[60] += 0.131196510740792, -0.173252532533942;
545  pts[61] +=-0.960810947366647, -0.459441974333255;
546  pts[62] += 0.420252921699902, -0.960810947366647;
547  pts[63] +=-0.459441974333255, 0.420252921699902;
548  pts[64] +=-0.960810947366647, 0.420252921699902;
549  pts[65] += 0.420252921699902, -0.459441974333255;
550  pts[66] +=-0.958833352267252, -0.697211314708751;
551  pts[67] += 0.656044666976003, -0.958833352267252;
552  pts[68] +=-0.697211314708751, 0.656044666976003;
553  pts[69] +=-0.958833352267252, 0.656044666976003;
554  pts[70] += 0.656044666976003, -0.697211314708751;
555  pts[71] +=-0.945197866913093, -0.858673547396615;
556  pts[72] += 0.803871414309708, -0.945197866913093;
557  pts[73] +=-0.858673547396615, 0.803871414309708;
558  pts[74] +=-0.945197866913093, 0.803871414309708;
559  pts[75] += 0.803871414309708, -0.858673547396615;
560  pts[76] +=-0.955761107477727, 0.911522214955453;
561  pts[77] += 0.911522214955453, -0.955761107477727;
562  break;
563  }
564 
565  case 15:
566  {
567  pts[0] += -0.333333333333333, -0.333333333333333;
568  pts[1] += -0.345919243961035, -0.524125896411661;
569  pts[2] += -0.524125896411661, -0.345919243961035;
570  pts[3] += -0.158607804822441, -0.682784390355118;
571  pts[4] += -0.397236169198181, -0.682930809798947;
572  pts[5] += -0.547891729121480, -0.547891729121479;
573  pts[6] += -0.229298471311900, -0.805494870290821;
574  pts[7] += -0.450017853162840, -0.824969972041269;
575  pts[8] += -0.604881786728350, -0.732090458434108;
576  pts[9] += -0.762668477812969, -0.762668477812969;
577  pts[10] +=-0.047709572520027, -0.904580854959946;
578  pts[11] +=-0.295197559068932, -0.904875474507678;
579  pts[12] +=-0.604222488756960, -0.880761064604909;
580  pts[13] +=-0.767507099479299, -0.893012043623240;
581  pts[14] +=-0.893765292435529, -0.893765292435529;
582  pts[15] +=-0.164799653568441, -0.968562022370700;
583  pts[16] +=-0.431133449666801, -0.960622535118110;
584  pts[17] +=-0.648097761351901, -0.963860302249784;
585  pts[18] +=-0.836672115891999, -0.965611696960525;
586  pts[19] +=-0.956100831729230, -0.956100831729230;
587  pts[20] +=-0.524125896411661, -0.129954859627304;
588  pts[21] +=-0.129954859627304, -0.345919243961035;
589  pts[22] +=-0.345919243961035, -0.129954859627304;
590  pts[23] +=-0.129954859627304, -0.524125896411661;
591  pts[24] +=-0.682784390355118, -0.158607804822441;
592  pts[25] +=-0.158607804822441, -0.158607804822441;
593  pts[26] +=-0.682930809798947, -0.397236169198181;
594  pts[27] += 0.080166978997128, -0.682930809798947;
595  pts[28] +=-0.397236169198181, 0.080166978997128;
596  pts[29] +=-0.682930809798947, 0.080166978997128;
597  pts[30] += 0.080166978997128, -0.397236169198181;
598  pts[31] +=-0.547891729121479, 0.095783458242960;
599  pts[32] += 0.095783458242960, -0.547891729121480;
600  pts[33] +=-0.805494870290821, -0.229298471311900;
601  pts[34] += 0.034793341602721, -0.805494870290821;
602  pts[35] +=-0.229298471311900, 0.034793341602721;
603  pts[36] +=-0.805494870290821, 0.034793341602721;
604  pts[37] += 0.034793341602721, -0.229298471311900;
605  pts[38] +=-0.824969972041269, -0.450017853162840;
606  pts[39] += 0.274987825204109, -0.824969972041269;
607  pts[40] +=-0.450017853162840, 0.274987825204109;
608  pts[41] +=-0.824969972041269, 0.274987825204109;
609  pts[42] += 0.274987825204109, -0.450017853162840;
610  pts[43] +=-0.732090458434108, -0.604881786728350;
611  pts[44] += 0.336972245162458, -0.732090458434108;
612  pts[45] +=-0.604881786728350, 0.336972245162458;
613  pts[46] +=-0.732090458434108, 0.336972245162458;
614  pts[47] += 0.336972245162458, -0.604881786728350;
615  pts[48] +=-0.762668477812969, 0.525336955625937;
616  pts[49] += 0.525336955625937, -0.762668477812969;
617  pts[50] +=-0.904580854959946, -0.047709572520027;
618  pts[51] +=-0.047709572520027, -0.047709572520027;
619  pts[52] +=-0.904875474507678, -0.295197559068932;
620  pts[53] += 0.200073033576611, -0.904875474507678;
621  pts[54] +=-0.295197559068932, 0.200073033576611;
622  pts[55] +=-0.904875474507678, 0.200073033576611;
623  pts[56] += 0.200073033576611, -0.295197559068932;
624  pts[57] +=-0.880761064604909, -0.604222488756960;
625  pts[58] += 0.484983553361869, -0.880761064604909;
626  pts[59] +=-0.604222488756960, 0.484983553361869;
627  pts[60] +=-0.880761064604909, 0.484983553361869;
628  pts[61] += 0.484983553361869, -0.604222488756960;
629  pts[62] +=-0.893012043623240, -0.767507099479299;
630  pts[63] += 0.660519143102539, -0.893012043623240;
631  pts[64] +=-0.767507099479299, 0.660519143102539;
632  pts[65] +=-0.893012043623240, 0.660519143102539;
633  pts[66] += 0.660519143102539, -0.767507099479299;
634  pts[67] +=-0.893765292435529, 0.787530584871058;
635  pts[68] += 0.787530584871058, -0.893765292435529;
636  pts[69] +=-0.968562022370700, -0.164799653568441;
637  pts[70] += 0.133361675939142, -0.968562022370700;
638  pts[71] +=-0.164799653568441, 0.133361675939142;
639  pts[72] +=-0.968562022370700, 0.133361675939142;
640  pts[73] += 0.133361675939142, -0.164799653568441;
641  pts[74] +=-0.960622535118110, -0.431133449666801;
642  pts[75] += 0.391755984784911, -0.960622535118110;
643  pts[76] +=-0.431133449666801, 0.391755984784911;
644  pts[77] +=-0.960622535118110, 0.391755984784911;
645  pts[78] += 0.391755984784911, -0.431133449666801;
646  pts[79] +=-0.963860302249784, -0.648097761351901;
647  pts[80] += 0.611958063601684, -0.963860302249784;
648  pts[81] +=-0.648097761351901, 0.611958063601684;
649  pts[82] +=-0.963860302249784, 0.611958063601684;
650  pts[83] += 0.611958063601684, -0.648097761351901;
651  pts[84] +=-0.965611696960525, -0.836672115891999;
652  pts[85] += 0.802283812852524, -0.965611696960525;
653  pts[86] +=-0.836672115891999, 0.802283812852524;
654  pts[87] +=-0.965611696960525, 0.802283812852524;
655  pts[88] += 0.802283812852524, -0.836672115891999;
656  pts[89] +=-0.956100831729230, 0.912201663458459;
657  pts[90] += 0.912201663458459, -0.956100831729230;
658  break;
659  }
660 
661  case 16:
662  {
663  pts[0] +=-0.205820142532107, -0.397089928733963;
664  pts[1] +=-0.226704334870422, -0.546591330259216;
665  pts[2] +=-0.147053788408309, -0.705892423183383;
666  pts[3] +=-0.347803355325610, -0.660885382368244;
667  pts[4] +=-0.506158324630743, -0.506158324630741;
668  pts[5] +=-0.221123161795997, -0.810980203769963;
669  pts[6] +=-0.533571481527389, -0.668243726484405;
670  pts[7] +=-0.636973186435847, -0.764734627714721;
671  pts[8] +=-0.781455865395765, -0.781455865395762;
672  pts[9] +=-0.049575040474585, -0.900849919050827;
673  pts[10] +=-0.301249843385144, -0.900753138395183;
674  pts[11] +=-0.444218443770085, -0.801617084992224;
675  pts[12] +=-0.672144704736634, -0.893074100698409;
676  pts[13] +=-0.808077031149289, -0.894419861496723;
677  pts[14] +=-0.908273312282669, -0.908273312282669;
678  pts[15] +=-0.130478222056322, -0.965904946909586;
679  pts[16] +=-0.360416071313197, -0.968507402379088;
680  pts[17] +=-0.504672216906210, -0.904515816522186;
681  pts[18] +=-0.589971542834612, -0.968078774774457;
682  pts[19] +=-0.780437138124852, -0.968331431821818;
683  pts[20] +=-0.925378007505782, -0.971660798597053;
684  pts[21] +=-0.397089928733963, -0.397089928733930;
685  pts[22] +=-0.397089928733930, -0.205820142532107;
686  pts[23] +=-0.546591330259216, -0.226704334870362;
687  pts[24] +=-0.226704334870362, -0.226704334870422;
688  pts[25] +=-0.705892423183383, -0.147053788408308;
689  pts[26] +=-0.147053788408308, -0.147053788408309;
690  pts[27] +=-0.660885382368244, -0.347803355325610;
691  pts[28] += 0.008688737693854, -0.660885382368244;
692  pts[29] +=-0.347803355325610, 0.008688737693854;
693  pts[30] +=-0.660885382368244, 0.008688737693854;
694  pts[31] += 0.008688737693854, -0.347803355325610;
695  pts[32] +=-0.506158324630741, 0.012316649261484;
696  pts[33] += 0.012316649261484, -0.506158324630743;
697  pts[34] +=-0.810980203769963, -0.221123161795997;
698  pts[35] += 0.032103365565961, -0.810980203769963;
699  pts[36] +=-0.221123161795997, 0.032103365565961;
700  pts[37] +=-0.810980203769963, 0.032103365565961;
701  pts[38] += 0.032103365565961, -0.221123161795997;
702  pts[39] +=-0.668243726484405, -0.533571481527389;
703  pts[40] += 0.201815208011793, -0.668243726484405;
704  pts[41] +=-0.533571481527389, 0.201815208011793;
705  pts[42] +=-0.668243726484405, 0.201815208011793;
706  pts[43] += 0.201815208011793, -0.533571481527389;
707  pts[44] +=-0.764734627714721, -0.636973186435847;
708  pts[45] += 0.401707814150568, -0.764734627714721;
709  pts[46] +=-0.636973186435847, 0.401707814150568;
710  pts[47] +=-0.764734627714721, 0.401707814150568;
711  pts[48] += 0.401707814150568, -0.636973186435847;
712  pts[49] +=-0.781455865395762, 0.562911730791527;
713  pts[50] += 0.562911730791527, -0.781455865395765;
714  pts[51] +=-0.900849919050827, -0.049575040474587;
715  pts[52] +=-0.049575040474587, -0.049575040474585;
716  pts[53] +=-0.900753138395183, -0.301249843385144;
717  pts[54] += 0.202002981780326, -0.900753138395183;
718  pts[55] +=-0.301249843385144, 0.202002981780326;
719  pts[56] +=-0.900753138395183, 0.202002981780326;
720  pts[57] += 0.202002981780326, -0.301249843385144;
721  pts[58] +=-0.801617084992224, -0.444218443770085;
722  pts[59] += 0.245835528762309, -0.801617084992224;
723  pts[60] +=-0.444218443770085, 0.245835528762309;
724  pts[61] +=-0.801617084992224, 0.245835528762309;
725  pts[62] += 0.245835528762309, -0.444218443770085;
726  pts[63] +=-0.893074100698409, -0.672144704736634;
727  pts[64] += 0.565218805435043, -0.893074100698409;
728  pts[65] +=-0.672144704736634, 0.565218805435043;
729  pts[66] +=-0.893074100698409, 0.565218805435043;
730  pts[67] += 0.565218805435043, -0.672144704736634;
731  pts[68] +=-0.894419861496723, -0.808077031149289;
732  pts[69] += 0.702496892646012, -0.894419861496723;
733  pts[70] +=-0.808077031149289, 0.702496892646012;
734  pts[71] +=-0.894419861496723, 0.702496892646012;
735  pts[72] += 0.702496892646012, -0.808077031149289;
736  pts[73] +=-0.908273312282669, 0.816546624565338;
737  pts[74] += 0.816546624565338, -0.908273312282669;
738  pts[75] +=-0.965904946909586, -0.130478222056322;
739  pts[76] += 0.096383168965909, -0.965904946909586;
740  pts[77] +=-0.130478222056322, 0.096383168965909;
741  pts[78] +=-0.965904946909586, 0.096383168965909;
742  pts[79] += 0.096383168965909, -0.130478222056322;
743  pts[80] +=-0.968507402379088, -0.360416071313197;
744  pts[81] += 0.328923473692285, -0.968507402379088;
745  pts[82] +=-0.360416071313197, 0.328923473692285;
746  pts[83] +=-0.968507402379088, 0.328923473692285;
747  pts[84] += 0.328923473692285, -0.360416071313197;
748  pts[85] +=-0.904515816522186, -0.504672216906210;
749  pts[86] += 0.409188033428395, -0.904515816522186;
750  pts[87] +=-0.504672216906210, 0.409188033428395;
751  pts[88] +=-0.904515816522186, 0.409188033428395;
752  pts[89] += 0.409188033428395, -0.504672216906210;
753  pts[90] +=-0.968078774774457, -0.589971542834612;
754  pts[91] += 0.558050317609069, -0.968078774774457;
755  pts[92] +=-0.589971542834612, 0.558050317609069;
756  pts[93] +=-0.968078774774457, 0.558050317609069;
757  pts[94] += 0.558050317609069, -0.589971542834612;
758  pts[95] +=-0.968331431821818, -0.780437138124852;
759  pts[96] += 0.748768569946670, -0.968331431821818;
760  pts[97] +=-0.780437138124852, 0.748768569946670;
761  pts[98] +=-0.968331431821818, 0.748768569946670;
762  pts[99] += 0.748768569946670, -0.780437138124852;
763  pts[100] +=-0.971660798597053, -0.925378007505782;
764  pts[101] += 0.897038806102834, -0.971660798597053;
765  pts[102] +=-0.925378007505782, 0.897038806102834;
766  pts[103] +=-0.971660798597053, 0.897038806102834;
767  pts[104] += 0.897038806102834, -0.925378007505782;
768  break;
769  }
770 
771  case 17:
772  {
773  pts[0] +=-0.274418069203627, -0.451163861592915;
774  pts[1] +=-0.454542715481369, -0.454542715481372;
775  pts[2] +=-0.304432262743245, -0.603457916280128;
776  pts[3] +=-0.494494713443969, -0.621442380901352;
777  pts[4] +=-0.658725522099670, -0.658725522099675;
778  pts[5] +=-0.135472335404057, -0.729055329191558;
779  pts[6] +=-0.352087942349477, -0.733502615179034;
780  pts[7] +=-0.390991263418732, -0.850467523022011;
781  pts[8] +=-0.538875562890167, -0.776709531025512;
782  pts[9] +=-0.814453782144371, -0.814453782144367;
783  pts[10] +=-0.195103212265680, -0.834191333597611;
784  pts[11] +=-0.252286838337513, -0.919078757215168;
785  pts[12] +=-0.526146769703608, -0.899421376980804;
786  pts[13] +=-0.684707100047466, -0.799915944717937;
787  pts[14] +=-0.817800237901515, -0.916958697330690;
788  pts[15] +=-0.916944777907565, -0.916944777907568;
789  pts[16] +=-0.040450078409046, -0.919099843181106;
790  pts[17] +=-0.139681499859092, -0.973704822173568;
791  pts[18] +=-0.365272864060711, -0.966341745722431;
792  pts[19] +=-0.553244326836927, -0.969305591113758;
793  pts[20] +=-0.687104081104119, -0.907603260148529;
794  pts[21] +=-0.727794870234229, -0.972100556591935;
795  pts[22] +=-0.874388356916094, -0.973207851954675;
796  pts[23] +=-0.966114906224907, -0.966114906224907;
797  pts[24] +=-0.451163861592915, -0.274418069203458;
798  pts[25] +=-0.274418069203458, -0.274418069203627;
799  pts[26] +=-0.454542715481372, -0.090914569037259;
800  pts[27] +=-0.090914569037259, -0.454542715481369;
801  pts[28] +=-0.603457916280128, -0.304432262743245;
802  pts[29] +=-0.092109820976628, -0.603457916280128;
803  pts[30] +=-0.304432262743245, -0.092109820976628;
804  pts[31] +=-0.603457916280128, -0.092109820976628;
805  pts[32] +=-0.092109820976628, -0.304432262743245;
806  pts[33] +=-0.621442380901352, -0.494494713443969;
807  pts[34] += 0.115937094345321, -0.621442380901352;
808  pts[35] +=-0.494494713443969, 0.115937094345321;
809  pts[36] +=-0.621442380901352, 0.115937094345321;
810  pts[37] += 0.115937094345321, -0.494494713443969;
811  pts[38] +=-0.658725522099675, 0.317451044199345;
812  pts[39] += 0.317451044199345, -0.658725522099670;
813  pts[40] +=-0.729055329191558, -0.135472335404385;
814  pts[41] +=-0.135472335404385, -0.135472335404057;
815  pts[42] +=-0.733502615179034, -0.352087942349477;
816  pts[43] += 0.085590557528511, -0.733502615179034;
817  pts[44] +=-0.352087942349477, 0.085590557528511;
818  pts[45] +=-0.733502615179034, 0.085590557528511;
819  pts[46] += 0.085590557528511, -0.352087942349477;
820  pts[47] +=-0.850467523022011, -0.390991263418732;
821  pts[48] += 0.241458786440742, -0.850467523022011;
822  pts[49] +=-0.390991263418732, 0.241458786440742;
823  pts[50] +=-0.850467523022011, 0.241458786440742;
824  pts[51] += 0.241458786440742, -0.390991263418732;
825  pts[52] +=-0.776709531025512, -0.538875562890167;
826  pts[53] += 0.315585093915678, -0.776709531025512;
827  pts[54] +=-0.538875562890167, 0.315585093915678;
828  pts[55] +=-0.776709531025512, 0.315585093915678;
829  pts[56] += 0.315585093915678, -0.538875562890167;
830  pts[57] +=-0.814453782144367, 0.628907564288738;
831  pts[58] += 0.628907564288738, -0.814453782144371;
832  pts[59] +=-0.834191333597611, -0.195103212265680;
833  pts[60] += 0.029294545863291, -0.834191333597611;
834  pts[61] +=-0.195103212265680, 0.029294545863291;
835  pts[62] +=-0.834191333597611, 0.029294545863291;
836  pts[63] += 0.029294545863291, -0.195103212265680;
837  pts[64] +=-0.919078757215168, -0.252286838337513;
838  pts[65] += 0.171365595552681, -0.919078757215168;
839  pts[66] +=-0.252286838337513, 0.171365595552681;
840  pts[67] +=-0.919078757215168, 0.171365595552681;
841  pts[68] += 0.171365595552681, -0.252286838337513;
842  pts[69] +=-0.899421376980804, -0.526146769703608;
843  pts[70] += 0.425568146684412, -0.899421376980804;
844  pts[71] +=-0.526146769703608, 0.425568146684412;
845  pts[72] +=-0.899421376980804, 0.425568146684412;
846  pts[73] += 0.425568146684412, -0.526146769703608;
847  pts[74] +=-0.799915944717937, -0.684707100047466;
848  pts[75] += 0.484623044765403, -0.799915944717937;
849  pts[76] +=-0.684707100047466, 0.484623044765403;
850  pts[77] +=-0.799915944717937, 0.484623044765403;
851  pts[78] += 0.484623044765403, -0.684707100047466;
852  pts[79] +=-0.916958697330690, -0.817800237901515;
853  pts[80] += 0.734758935232205, -0.916958697330690;
854  pts[81] +=-0.817800237901515, 0.734758935232205;
855  pts[82] +=-0.916958697330690, 0.734758935232205;
856  pts[83] += 0.734758935232205, -0.817800237901515;
857  pts[84] +=-0.916944777907568, 0.833889555815133;
858  pts[85] += 0.833889555815133, -0.916944777907565;
859  pts[86] +=-0.919099843181106, -0.040450078409849;
860  pts[87] +=-0.040450078409849, -0.040450078409046;
861  pts[88] +=-0.973704822173568, -0.139681499859092;
862  pts[89] += 0.113386322032660, -0.973704822173568;
863  pts[90] +=-0.139681499859092, 0.113386322032660;
864  pts[91] +=-0.973704822173568, 0.113386322032660;
865  pts[92] += 0.113386322032660, -0.139681499859092;
866  pts[93] +=-0.966341745722431, -0.365272864060711;
867  pts[94] += 0.331614609783141, -0.966341745722431;
868  pts[95] +=-0.365272864060711, 0.331614609783141;
869  pts[96] +=-0.966341745722431, 0.331614609783141;
870  pts[97] += 0.331614609783141, -0.365272864060711;
871  pts[98] +=-0.969305591113758, -0.553244326836927;
872  pts[99] += 0.522549917950685, -0.969305591113758;
873  pts[100] +=-0.553244326836927, 0.522549917950685;
874  pts[101] +=-0.969305591113758, 0.522549917950685;
875  pts[102] += 0.522549917950685, -0.553244326836927;
876  pts[103] +=-0.907603260148529, -0.687104081104119;
877  pts[104] += 0.594707341252649, -0.907603260148529;
878  pts[105] +=-0.687104081104119, 0.594707341252649;
879  pts[106] +=-0.907603260148529, 0.594707341252649;
880  pts[107] += 0.594707341252649, -0.687104081104119;
881  pts[108] +=-0.972100556591935, -0.727794870234229;
882  pts[109] += 0.699895426826163, -0.972100556591935;
883  pts[110] +=-0.727794870234229, 0.699895426826163;
884  pts[111] +=-0.972100556591935, 0.699895426826163;
885  pts[112] += 0.699895426826163, -0.727794870234229;
886  pts[113] +=-0.973207851954675, -0.874388356916094;
887  pts[114] += 0.847596208870770, -0.973207851954675;
888  pts[115] +=-0.874388356916094, 0.847596208870770;
889  pts[116] +=-0.973207851954675, 0.847596208870770;
890  pts[117] += 0.847596208870770, -0.874388356916094;
891  pts[118] +=-0.966114906224907, 0.932229812449814;
892  pts[119] += 0.932229812449814, -0.966114906224907;
893  break;
894  }
895 
896  case 18:
897  {
898  pts[0] +=-0.333333333333333, -0.333333333333333;
899  pts[1] +=-0.341403167501697, -0.496889379374577;
900  pts[2] +=-0.496889379374577, -0.341403167501698;
901  pts[3] +=-0.180193099610473, -0.639613800779053;
902  pts[4] +=-0.380906991836065, -0.635706815999634;
903  pts[5] +=-0.512270446598166, -0.512270446598166;
904  pts[6] +=-0.242142213764944, -0.750619748986711;
905  pts[7] +=-0.426216871527756, -0.764111722863127;
906  pts[8] +=-0.559026266119071, -0.672116309193513;
907  pts[9] +=-0.697487089299080, -0.697487089299080;
908  pts[10] +=-0.081068949345966, -0.837862101308069;
909  pts[11] +=-0.293493269298788, -0.851490067387505;
910  pts[12] +=-0.561603804138562, -0.812436645793173;
911  pts[13] +=-0.710745308672525, -0.821809722624405;
912  pts[14] +=-0.833448470288251, -0.833448470288251;
913  pts[15] +=-0.127891272883473, -0.918186951448195;
914  pts[16] +=-0.440803029204592, -0.902264822053879;
915  pts[17] +=-0.593157770542283, -0.907931574540618;
916  pts[18] +=-0.728191943973380, -0.915862562521078;
917  pts[19] +=-0.926186882686440, -0.926186882686440;
918  pts[20] +=-0.132621542700647, -0.976724412008478;
919  pts[21] +=-0.282882435206159, -0.940187562507177;
920  pts[22] +=-0.406379266660819, -0.973537374255463;
921  pts[23] +=-0.589944148624057, -0.972780306197722;
922  pts[24] +=-0.753570755371218, -0.975026063234546;
923  pts[25] +=-0.838829021310763, -0.926960440578635;
924  pts[26] +=-0.889023739684485, -0.976272446974781;
925  pts[27] +=-0.970085029900325, -0.970085029900325;
926  pts[28] +=-0.496889379374577, -0.161707453123726;
927  pts[29] +=-0.161707453123726, -0.341403167501697;
928  pts[30] +=-0.341403167501698, -0.161707453123726;
929  pts[31] +=-0.161707453123726, -0.496889379374577;
930  pts[32] +=-0.639613800779053, -0.180193099610473;
931  pts[33] +=-0.180193099610473, -0.180193099610473;
932  pts[34] +=-0.635706815999634, -0.380906991836065;
933  pts[35] += 0.016613807835700, -0.635706815999634;
934  pts[36] +=-0.380906991836065, 0.016613807835700;
935  pts[37] +=-0.635706815999634, 0.016613807835700;
936  pts[38] += 0.016613807835700, -0.380906991836065;
937  pts[39] +=-0.512270446598166, 0.024540893196332;
938  pts[40] += 0.024540893196332, -0.512270446598166;
939  pts[41] +=-0.750619748986711, -0.242142213764944;
940  pts[42] +=-0.007238037248346, -0.750619748986711;
941  pts[43] +=-0.242142213764944, -0.007238037248346;
942  pts[44] +=-0.750619748986711, -0.007238037248346;
943  pts[45] +=-0.007238037248346, -0.242142213764944;
944  pts[46] +=-0.764111722863127, -0.426216871527756;
945  pts[47] += 0.190328594390883, -0.764111722863127;
946  pts[48] +=-0.426216871527756, 0.190328594390883;
947  pts[49] +=-0.764111722863127, 0.190328594390883;
948  pts[50] += 0.190328594390883, -0.426216871527756;
949  pts[51] +=-0.672116309193513, -0.559026266119071;
950  pts[52] += 0.231142575312584, -0.672116309193513;
951  pts[53] +=-0.559026266119071, 0.231142575312584;
952  pts[54] +=-0.672116309193513, 0.231142575312584;
953  pts[55] += 0.231142575312584, -0.559026266119071;
954  pts[56] +=-0.697487089299080, 0.394974178598160;
955  pts[57] += 0.394974178598160, -0.697487089299080;
956  pts[58] +=-0.837862101308069, -0.081068949345966;
957  pts[59] +=-0.081068949345966, -0.081068949345966;
958  pts[60] +=-0.851490067387505, -0.293493269298788;
959  pts[61] += 0.144983336686293, -0.851490067387505;
960  pts[62] +=-0.293493269298788, 0.144983336686293;
961  pts[63] +=-0.851490067387505, 0.144983336686293;
962  pts[64] += 0.144983336686293, -0.293493269298788;
963  pts[65] +=-0.812436645793173, -0.561603804138562;
964  pts[66] += 0.374040449931736, -0.812436645793173;
965  pts[67] +=-0.561603804138562, 0.374040449931736;
966  pts[68] +=-0.812436645793173, 0.374040449931736;
967  pts[69] += 0.374040449931736, -0.561603804138562;
968  pts[70] +=-0.821809722624405, -0.710745308672525;
969  pts[71] += 0.532555031296929, -0.821809722624405;
970  pts[72] +=-0.710745308672525, 0.532555031296929;
971  pts[73] +=-0.821809722624405, 0.532555031296929;
972  pts[74] += 0.532555031296929, -0.710745308672525;
973  pts[75] +=-0.833448470288251, 0.666896940576502;
974  pts[76] += 0.666896940576502, -0.833448470288251;
975  pts[77] +=-0.918186951448195, -0.127891272883473;
976  pts[78] += 0.046078224331668, -0.918186951448195;
977  pts[79] +=-0.127891272883473, 0.046078224331668;
978  pts[80] +=-0.918186951448195, 0.046078224331668;
979  pts[81] += 0.046078224331668, -0.127891272883473;
980  pts[82] +=-0.902264822053879, -0.440803029204592;
981  pts[83] += 0.343067851258471, -0.902264822053879;
982  pts[84] +=-0.440803029204592, 0.343067851258471;
983  pts[85] +=-0.902264822053879, 0.343067851258471;
984  pts[86] += 0.343067851258471, -0.440803029204592;
985  pts[87] +=-0.907931574540618, -0.593157770542283;
986  pts[88] += 0.501089345082902, -0.907931574540618;
987  pts[89] +=-0.593157770542283, 0.501089345082902;
988  pts[90] +=-0.907931574540618, 0.501089345082902;
989  pts[91] += 0.501089345082902, -0.593157770542283;
990  pts[92] +=-0.915862562521078, -0.728191943973380;
991  pts[93] += 0.644054506494458, -0.915862562521078;
992  pts[94] +=-0.728191943973380, 0.644054506494458;
993  pts[95] +=-0.915862562521078, 0.644054506494458;
994  pts[96] += 0.644054506494458, -0.728191943973380;
995  pts[97] +=-0.926186882686440, 0.852373765372881;
996  pts[98] += 0.852373765372881, -0.926186882686440;
997  pts[99] +=-0.976724412008478, -0.132621542700647;
998  pts[100] += 0.109345954709125, -0.976724412008478;
999  pts[101] +=-0.132621542700647, 0.109345954709125;
1000  pts[102] +=-0.976724412008478, 0.109345954709125;
1001  pts[103] += 0.109345954709125, -0.132621542700647;
1002  pts[104] +=-0.940187562507177, -0.282882435206159;
1003  pts[105] += 0.223069997713336, -0.940187562507177;
1004  pts[106] +=-0.282882435206159, 0.223069997713336;
1005  pts[107] +=-0.940187562507177, 0.223069997713336;
1006  pts[108] += 0.223069997713336, -0.282882435206159;
1007  pts[109] +=-0.973537374255463, -0.406379266660819;
1008  pts[110] += 0.379916640916282, -0.973537374255463;
1009  pts[111] +=-0.406379266660819, 0.379916640916282;
1010  pts[112] +=-0.973537374255463, 0.379916640916282;
1011  pts[113] += 0.379916640916282, -0.406379266660819;
1012  pts[114] +=-0.972780306197722, -0.589944148624057;
1013  pts[115] += 0.562724454821779, -0.972780306197722;
1014  pts[116] +=-0.589944148624057, 0.562724454821779;
1015  pts[117] +=-0.972780306197722, 0.562724454821779;
1016  pts[118] += 0.562724454821779, -0.589944148624057;
1017  pts[119] +=-0.975026063234546, -0.753570755371218;
1018  pts[120] += 0.728596818605764, -0.975026063234546;
1019  pts[121] +=-0.753570755371218, 0.728596818605764;
1020  pts[122] +=-0.975026063234546, 0.728596818605764;
1021  pts[123] += 0.728596818605764, -0.753570755371218;
1022  pts[124] +=-0.926960440578635, -0.838829021310763;
1023  pts[125] += 0.765789461889398, -0.926960440578635;
1024  pts[126] +=-0.838829021310763, 0.765789461889398;
1025  pts[127] +=-0.926960440578635, 0.765789461889398;
1026  pts[128] += 0.765789461889398, -0.838829021310763;
1027  pts[129] +=-0.976272446974781, -0.889023739684485;
1028  pts[130] += 0.865296186659265, -0.976272446974781;
1029  pts[131] +=-0.889023739684485, 0.865296186659265;
1030  pts[132] +=-0.976272446974781, 0.865296186659265;
1031  pts[133] += 0.865296186659265, -0.889023739684485;
1032  pts[134] +=-0.970085029900325, 0.940170059800650;
1033  pts[135] += 0.940170059800650, -0.970085029900325;
1034  break;
1035  }
1036 
1037  case 19:
1038  {
1039  pts[0] +=-0.287000355881118, -0.425999288237764;
1040  pts[1] +=-0.206758293148238, -0.586483413703523;
1041  pts[2] +=-0.389224594690171, -0.516424689183957;
1042  pts[3] +=-0.310764541061254, -0.657966548675822;
1043  pts[4] +=-0.480302382494788, -0.613218952389985;
1044  pts[5] +=-0.624981326354916, -0.624981326354917;
1045  pts[6] +=-0.128321805315155, -0.743356389369689;
1046  pts[7] +=-0.323351460920740, -0.766969030527911;
1047  pts[8] +=-0.497244231750085, -0.746567934356032;
1048  pts[9] +=-0.643816871049108, -0.758951147831367;
1049  pts[10] +=-0.770126681161834, -0.770126681161834;
1050  pts[11] +=-0.170097600290176, -0.844942783021920;
1051  pts[12] +=-0.357925049990872, -0.857114592267436;
1052  pts[13] +=-0.533042015447951, -0.851309640748108;
1053  pts[14] +=-0.699217252744167, -0.856334228586824;
1054  pts[15] +=-0.841136978797186, -0.841136978797186;
1055  pts[16] +=-0.037328752151830, -0.925342495696341;
1056  pts[17] +=-0.222195753165427, -0.925717377197022;
1057  pts[18] +=-0.420154075742092, -0.925542373085800;
1058  pts[19] +=-0.603685694381808, -0.923025153620202;
1059  pts[20] +=-0.747149943107145, -0.927211175398458;
1060  pts[21] +=-0.854489586141069, -0.927618164018200;
1061  pts[22] +=-0.933895989466742, -0.933895989466742;
1062  pts[23] +=-0.114781279448575, -0.976416029994295;
1063  pts[24] +=-0.310533830593028, -0.974760850589475;
1064  pts[25] +=-0.485753632927623, -0.974389077853428;
1065  pts[26] +=-0.642843887255066, -0.975894779040898;
1066  pts[27] +=-0.783926073185151, -0.977387818113720;
1067  pts[28] +=-0.897917737079264, -0.978019404606716;
1068  pts[29] +=-0.972658489043534, -0.972658489043534;
1069  pts[30] +=-0.425999288237764, -0.287000355881118;
1070  pts[31] +=-0.287000355881118, -0.287000355881118;
1071  pts[32] +=-0.586483413703523, -0.206758293148238;
1072  pts[33] +=-0.206758293148238, -0.206758293148238;
1073  pts[34] +=-0.516424689183957, -0.389224594690171;
1074  pts[35] +=-0.094350716125871, -0.516424689183957;
1075  pts[36] +=-0.389224594690171, -0.094350716125871;
1076  pts[37] +=-0.516424689183957, -0.094350716125871;
1077  pts[38] +=-0.094350716125871, -0.389224594690171;
1078  pts[39] +=-0.657966548675822, -0.310764541061254;
1079  pts[40] +=-0.031268910262925, -0.657966548675822;
1080  pts[41] +=-0.310764541061254, -0.031268910262925;
1081  pts[42] +=-0.657966548675822, -0.031268910262925;
1082  pts[43] +=-0.031268910262925, -0.310764541061254;
1083  pts[44] +=-0.613218952389985, -0.480302382494788;
1084  pts[45] += 0.093521334884772, -0.613218952389985;
1085  pts[46] +=-0.480302382494788, 0.093521334884772;
1086  pts[47] +=-0.613218952389985, 0.093521334884772;
1087  pts[48] += 0.093521334884772, -0.480302382494788;
1088  pts[49] +=-0.624981326354917, 0.249962652709833;
1089  pts[50] += 0.249962652709833, -0.624981326354916;
1090  pts[51] +=-0.743356389369689, -0.128321805315155;
1091  pts[52] +=-0.128321805315155, -0.128321805315155;
1092  pts[53] +=-0.766969030527911, -0.323351460920740;
1093  pts[54] += 0.090320491448651, -0.766969030527911;
1094  pts[55] +=-0.323351460920740, 0.090320491448651;
1095  pts[56] +=-0.766969030527911, 0.090320491448651;
1096  pts[57] += 0.090320491448651, -0.323351460920740;
1097  pts[58] +=-0.746567934356032, -0.497244231750085;
1098  pts[59] += 0.243812166106117, -0.746567934356032;
1099  pts[60] +=-0.497244231750085, 0.243812166106117;
1100  pts[61] +=-0.746567934356032, 0.243812166106117;
1101  pts[62] += 0.243812166106117, -0.497244231750085;
1102  pts[63] +=-0.758951147831367, -0.643816871049108;
1103  pts[64] += 0.402768018880476, -0.758951147831367;
1104  pts[65] +=-0.643816871049108, 0.402768018880476;
1105  pts[66] +=-0.758951147831367, 0.402768018880476;
1106  pts[67] += 0.402768018880476, -0.643816871049108;
1107  pts[68] +=-0.770126681161834, 0.540253362323669;
1108  pts[69] += 0.540253362323669, -0.770126681161834;
1109  pts[70] +=-0.844942783021920, -0.170097600290176;
1110  pts[71] += 0.015040383312096, -0.844942783021920;
1111  pts[72] +=-0.170097600290176, 0.015040383312096;
1112  pts[73] +=-0.844942783021920, 0.015040383312096;
1113  pts[74] += 0.015040383312096, -0.170097600290176;
1114  pts[75] +=-0.857114592267436, -0.357925049990872;
1115  pts[76] += 0.215039642258308, -0.857114592267436;
1116  pts[77] +=-0.357925049990872, 0.215039642258308;
1117  pts[78] +=-0.857114592267436, 0.215039642258308;
1118  pts[79] += 0.215039642258308, -0.357925049990872;
1119  pts[80] +=-0.851309640748108, -0.533042015447951;
1120  pts[81] += 0.384351656196059, -0.851309640748108;
1121  pts[82] +=-0.533042015447951, 0.384351656196059;
1122  pts[83] +=-0.851309640748108, 0.384351656196059;
1123  pts[84] += 0.384351656196059, -0.533042015447951;
1124  pts[85] +=-0.856334228586824, -0.699217252744167;
1125  pts[86] += 0.555551481330991, -0.856334228586824;
1126  pts[87] +=-0.699217252744167, 0.555551481330991;
1127  pts[88] +=-0.856334228586824, 0.555551481330991;
1128  pts[89] += 0.555551481330991, -0.699217252744167;
1129  pts[90] +=-0.841136978797186, 0.682273957594371;
1130  pts[91] += 0.682273957594371, -0.841136978797186;
1131  pts[92] +=-0.925342495696341, -0.037328752151830;
1132  pts[93] +=-0.037328752151830, -0.037328752151830;
1133  pts[94] +=-0.925717377197022, -0.222195753165427;
1134  pts[95] += 0.147913130362450, -0.925717377197022;
1135  pts[96] +=-0.222195753165427, 0.147913130362450;
1136  pts[97] +=-0.925717377197022, 0.147913130362450;
1137  pts[98] += 0.147913130362450, -0.222195753165427;
1138  pts[99] +=-0.925542373085800, -0.420154075742092;
1139  pts[100] += 0.345696448827892, -0.925542373085800;
1140  pts[101] +=-0.420154075742092, 0.345696448827892;
1141  pts[102] +=-0.925542373085800, 0.345696448827892;
1142  pts[103] += 0.345696448827892, -0.420154075742092;
1143  pts[104] +=-0.923025153620202, -0.603685694381808;
1144  pts[105] += 0.526710848002010, -0.923025153620202;
1145  pts[106] +=-0.603685694381808, 0.526710848002010;
1146  pts[107] +=-0.923025153620202, 0.526710848002010;
1147  pts[108] += 0.526710848002010, -0.603685694381808;
1148  pts[109] +=-0.927211175398458, -0.747149943107145;
1149  pts[110] += 0.674361118505603, -0.927211175398458;
1150  pts[111] +=-0.747149943107145, 0.674361118505603;
1151  pts[112] +=-0.927211175398458, 0.674361118505603;
1152  pts[113] += 0.674361118505603, -0.747149943107145;
1153  pts[114] +=-0.927618164018200, -0.854489586141069;
1154  pts[115] += 0.782107750159270, -0.927618164018200;
1155  pts[116] +=-0.854489586141069, 0.782107750159270;
1156  pts[117] +=-0.927618164018200, 0.782107750159270;
1157  pts[118] += 0.782107750159270, -0.854489586141069;
1158  pts[119] +=-0.933895989466742, 0.867791978933485;
1159  pts[120] += 0.867791978933485, -0.933895989466742;
1160  pts[121] +=-0.976416029994295, -0.114781279448575;
1161  pts[122] += 0.091197309442870, -0.976416029994295;
1162  pts[123] +=-0.114781279448575, 0.091197309442870;
1163  pts[124] +=-0.976416029994295, 0.091197309442870;
1164  pts[125] += 0.091197309442870, -0.114781279448575;
1165  pts[126] +=-0.974760850589475, -0.310533830593028;
1166  pts[127] += 0.285294681182503, -0.974760850589475;
1167  pts[128] +=-0.310533830593028, 0.285294681182503;
1168  pts[129] +=-0.974760850589475, 0.285294681182503;
1169  pts[130] += 0.285294681182503, -0.310533830593028;
1170  pts[131] +=-0.974389077853428, -0.485753632927623;
1171  pts[132] += 0.460142710781051, -0.974389077853428;
1172  pts[133] +=-0.485753632927623, 0.460142710781051;
1173  pts[134] +=-0.974389077853428, 0.460142710781051;
1174  pts[135] += 0.460142710781051, -0.485753632927623;
1175  pts[136] +=-0.975894779040898, -0.642843887255066;
1176  pts[137] += 0.618738666295964, -0.975894779040898;
1177  pts[138] +=-0.642843887255066, 0.618738666295964;
1178  pts[139] +=-0.975894779040898, 0.618738666295964;
1179  pts[140] += 0.618738666295964, -0.642843887255066;
1180  pts[141] +=-0.977387818113720, -0.783926073185151;
1181  pts[142] += 0.761313891298871, -0.977387818113720;
1182  pts[143] +=-0.783926073185151, 0.761313891298871;
1183  pts[144] +=-0.977387818113720, 0.761313891298871;
1184  pts[145] += 0.761313891298871, -0.783926073185151;
1185  pts[146] +=-0.978019404606716, -0.897917737079264;
1186  pts[147] += 0.875937141685979, -0.978019404606716;
1187  pts[148] +=-0.897917737079264, 0.875937141685979;
1188  pts[149] +=-0.978019404606716, 0.875937141685979;
1189  pts[150] += 0.875937141685979, -0.897917737079264;
1190  pts[151] +=-0.972658489043534, 0.945316978087067;
1191  pts[152] += 0.945316978087067, -0.972658489043534;
1192  break;
1193  }
1194 
1195  default:
1196  {
1197  }
1198  }
1199 
1200  for ( int32_type i = 0; i<nbPtsPerFace; ++i )
1201  {
1202  inner_pts( 0,i ) = pts[i][0];
1203  inner_pts( 1,i ) = pts[i][1];
1204  }
1205 
1206 
1207  return inner_pts;
1208  }
1209 
1210  points_type putInPointset ( points_type final_pts, points_type pts, std::pair<uint16_type, uint16_type> position )
1211  {
1212  ublas::subrange( final_pts, 0, 2, position.first, position.second ) = pts;
1213 
1214  return final_pts;
1215  }
1216 
1217  template<int n>
1218  static bool order( vector_type a, vector_type b )
1219  {
1220  return a( n ) < b( n );
1221  }
1222 
1223  points_type orderInteriorFace( points_type pts )
1224  {
1225  std::vector<vector_type> aux( pts.size2() );
1226 
1227  for ( uint16_type i=0; i<pts.size2(); i++ )
1228  aux[i] = ublas::column( pts, i );
1229 
1230  std::sort( aux.begin(), aux.end(), &order<1> );
1231 
1232  for ( uint16_type p=0, i=Order-3; i>0; i-- )
1233  {
1234  std::sort( aux.begin()+p, aux.begin()+p+i+1, &order<0> );
1235  p += i+1;
1236  }
1237 
1238  for ( uint16_type i=0; i<pts.size2(); i++ )
1239  ublas::column( pts, i ) = aux[i];
1240 
1241  return pts;
1242  }
1243 };
1244 
1248 template< class Convex,
1249  uint16_type Order,
1250  typename T = double >
1251 class PointSetFekete : public mpl::if_<mpl::or_<mpl::equal_to<mpl::bool_<Convex::is_hypercube>, mpl::bool_<true> >,
1252  mpl::equal_to<mpl::int_<Convex::nDim>, mpl::int_<1> > >,
1253  mpl::identity<PointSetGaussLobatto<Convex,Order,T> >,
1254  typename mpl::if_<mpl::equal_to<mpl::int_<Convex::nDim>, mpl::int_<3> >,
1255  mpl::identity<PointSetWarpBlend<Convex,Order,T> >,
1256  mpl::identity<PointSetFeketeSimplex<Convex,Order,T> > >::type >::type::type
1257 {
1258  typedef typename mpl::if_<mpl::or_<mpl::equal_to<mpl::bool_<Convex::is_hypercube>, mpl::bool_<true> >,
1259  mpl::equal_to<mpl::int_<Convex::nDim>, mpl::int_<1> > >,
1260  mpl::identity<PointSetGaussLobatto<Convex,Order,T> >,
1261  typename mpl::if_<mpl::equal_to<mpl::int_<Convex::nDim>, mpl::int_<3> >,
1262  mpl::identity<PointSetWarpBlend<Convex,Order,T> >,
1263  mpl::identity<PointSetFeketeSimplex<Convex,Order,T> > >::type>::type::type super;
1264 public:
1265  PointSetFekete( int interior = 0 ) : super( interior ) {}
1266 };
1267 
1268 } // Feel
1269 #endif /* __Fekete_H */

Generated on Sun Oct 20 2013 08:24:57 for Feel++ by doxygen 1.8.4