Abstract class for projecting reference solution onto the coarse mesh. More...
#include <proj.h>
Inherited by H1Projection, and ProjectionIpol.
Public Member Functions | |
| Projection (Solution *afn, Element *e, Shapeset *ss) | |
| virtual | ~Projection () |
| virtual double | get_error (int split, int son, const order3_t &order)=0 |
Protected Member Functions | |
| Trf * | get_trf (int trf) |
| virtual void | calc_projection (int split, int son, const order3_t &order)=0 |
Protected Attributes | |
| order3_t | order |
| Mesh * | mesh |
| Solution * | sln |
| Element * | base_elem |
| Quad3D * | quad |
| Shapeset * | ss |
| ShapeFunction * | fu |
| ShapeFunction * | fv |
| int | n_fns |
| int * | fn_idx |
| double * | proj_coef |
Static Protected Attributes | |
| static const int | NUM_TRF = 27 |
| static int | vtx_son [NUM_TRF][8] |
| static int | edge_son [NUM_TRF][Hex::NUM_EDGES][2] |
| static int | face_son [NUM_TRF][Hex::NUM_FACES][4] |
| static int | int_son [NUM_TRF][8] |
| static int | edge_ns [8][Hex::NUM_EDGES] |
| static int | face_ns [8][Hex::NUM_FACES] |
| static int | int_ns [8] = { 8, 4, 4, 4, 2, 2, 2, 1 } |
| static int | edge_trf [8][Hex::NUM_EDGES][2] |
| static int | face_trf [8][Hex::NUM_FACES][4] |
| static int | int_trf [8][8] |
| static double | mdx [8] = { 2, 1, 2, 2, 1, 1, 2, 1 } |
| static double | mdy [8] = { 2, 2, 1, 2, 1, 2, 1, 1 } |
| static double | mdz [8] = { 2, 2, 2, 1, 2, 1, 1, 1 } |
Abstract class for projecting reference solution onto the coarse mesh.
NOTE: hex-specific
| Projection::~Projection | ( | ) | [virtual] |
| virtual void Projection::calc_projection | ( | int | split, | |
| int | son, | |||
| const order3_t & | order | |||
| ) | [protected, pure virtual] |
Implemented in H1Projection, and ProjectionIpol.
| virtual double Projection::get_error | ( | int | split, | |
| int | son, | |||
| const order3_t & | order | |||
| ) | [pure virtual] |
Implemented in H1Projection, H1ProjectionIpol, and ProjectionIpol.
| Trf * Projection::get_trf | ( | int | trf | ) | [protected] |
Element* Projection::base_elem [protected] |
int Projection::edge_ns [static, protected] |
{
{ 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2 },
{ 1, 2, 1, 2, 2, 2, 2, 2, 1, 2, 1, 2 },
{ 2, 1, 2, 1, 2, 2, 2, 2, 2, 1, 2, 1 },
{ 2, 2, 2, 2, 1, 1, 1, 1, 2, 2, 2, 2 },
{ 1, 1, 1, 1, 2, 2, 2, 2, 1, 1, 1, 1 },
{ 1, 2, 1, 2, 1, 1, 1, 1, 1, 2, 1, 2 },
{ 2, 1, 2, 1, 1, 1, 1, 1, 2, 1, 2, 1 },
{ 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1 },
}
int Projection::edge_son [static, protected] |
{
{ { 0, 1 }, { 1, 2 }, { 2, 3 }, { 3, 0 }, { 0, 4 }, { 1, 5 }, { 2, 6 }, { 3, 7 }, { 4, 5 }, { 5, 6 }, { 6, 7 }, { 7, 4 } },
{ { 0,-1 }, { 0,-1 }, { 0,-1 }, { 0,-1 }, { 0,-1 }, { 0,-1 }, { 0,-1 }, { 0,-1 }, { 0,-1 }, { 0,-1 }, { 0,-1 }, { 0,-1 } },
{ { 1,-1 }, { 1,-1 }, { 1,-1 }, { 1,-1 }, { 1,-1 }, { 1,-1 }, { 1,-1 }, { 1,-1 }, { 1,-1 }, { 1,-1 }, { 1,-1 }, { 1,-1 } },
{ { 2,-1 }, { 2,-1 }, { 2,-1 }, { 2,-1 }, { 2,-1 }, { 2,-1 }, { 2,-1 }, { 2,-1 }, { 2,-1 }, { 2,-1 }, { 2,-1 }, { 2,-1 } },
{ { 3,-1 }, { 3,-1 }, { 3,-1 }, { 3,-1 }, { 3,-1 }, { 3,-1 }, { 3,-1 }, { 3,-1 }, { 3,-1 }, { 3,-1 }, { 3,-1 }, { 3,-1 } },
{ { 4,-1 }, { 4,-1 }, { 4,-1 }, { 4,-1 }, { 4,-1 }, { 4,-1 }, { 4,-1 }, { 4,-1 }, { 4,-1 }, { 4,-1 }, { 4,-1 }, { 4,-1 } },
{ { 5,-1 }, { 5,-1 }, { 5,-1 }, { 5,-1 }, { 5,-1 }, { 5,-1 }, { 5,-1 }, { 5,-1 }, { 5,-1 }, { 5,-1 }, { 5,-1 }, { 5,-1 } },
{ { 6,-1 }, { 6,-1 }, { 6,-1 }, { 6,-1 }, { 6,-1 }, { 6,-1 }, { 6,-1 }, { 6,-1 }, { 6,-1 }, { 6,-1 }, { 6,-1 }, { 6,-1 } },
{ { 7,-1 }, { 7,-1 }, { 7,-1 }, { 7,-1 }, { 7,-1 }, { 7,-1 }, { 7,-1 }, { 7,-1 }, { 7,-1 }, { 7,-1 }, { 7,-1 }, { 7,-1 } },
{ { 0,-1 }, { 0,-1 }, { 0,-1 }, { 0,-1 }, { 0, 4 }, { 0, 4 }, { 0, 4 }, { 0, 4 }, { 4,-1 }, { 4,-1 }, { 4,-1 }, { 4,-1 } },
{ { 1,-1 }, { 1,-1 }, { 1,-1 }, { 1,-1 }, { 1, 5 }, { 1, 5 }, { 1, 5 }, { 1, 5 }, { 5,-1 }, { 5,-1 }, { 5,-1 }, { 5,-1 } },
{ { 2,-1 }, { 2,-1 }, { 2,-1 }, { 2,-1 }, { 2, 6 }, { 2, 6 }, { 2, 6 }, { 2, 6 }, { 6,-1 }, { 6,-1 }, { 6,-1 }, { 6,-1 } },
{ { 3,-1 }, { 3,-1 }, { 3,-1 }, { 3,-1 }, { 3, 7 }, { 3, 7 }, { 3, 7 }, { 3, 7 }, { 7,-1 }, { 7,-1 }, { 7,-1 }, { 7,-1 } },
{ { 0,-1 }, { 0, 3 }, { 3,-1 }, { 3, 0 }, { 0,-1 }, { 0,-1 }, { 3,-1 }, { 3,-1 }, { 0,-1 }, { 0, 3 }, { 3,-1 }, { 3, 0 } },
{ { 1,-1 }, { 1, 2 }, { 2,-1 }, { 2, 1 }, { 1,-1 }, { 1,-1 }, { 2,-1 }, { 2,-1 }, { 1,-1 }, { 1, 2 }, { 2,-1 }, { 2, 1 } },
{ { 5,-1 }, { 5, 6 }, { 6,-1 }, { 6, 5 }, { 5,-1 }, { 5,-1 }, { 6,-1 }, { 6,-1 }, { 5,-1 }, { 5, 6 }, { 6,-1 }, { 6, 5 } },
{ { 4,-1 }, { 4, 7 }, { 7,-1 }, { 7, 4 }, { 4,-1 }, { 4,-1 }, { 7,-1 }, { 7,-1 }, { 4,-1 }, { 4, 7 }, { 7,-1 }, { 7, 4 } },
{ { 0, 1 }, { 1,-1 }, { 1, 0 }, { 0,-1 }, { 0,-1 }, { 1,-1 }, { 1,-1 }, { 0,-1 }, { 0, 1 }, { 1,-1 }, { 1, 0 }, { 0,-1 } },
{ { 3, 2 }, { 2,-1 }, { 2, 3 }, { 3,-1 }, { 3,-1 }, { 2,-1 }, { 2,-1 }, { 3,-1 }, { 3, 2 }, { 2,-1 }, { 2, 3 }, { 3,-1 } },
{ { 7, 6 }, { 6,-1 }, { 6, 7 }, { 7,-1 }, { 7,-1 }, { 6,-1 }, { 6,-1 }, { 7,-1 }, { 7, 6 }, { 6,-1 }, { 6, 7 }, { 7,-1 } },
{ { 4, 5 }, { 5,-1 }, { 5, 4 }, { 4,-1 }, { 4,-1 }, { 5,-1 }, { 5,-1 }, { 4,-1 }, { 4, 5 }, { 5,-1 }, { 5, 4 }, { 4,-1 } },
{ { 0,-1 }, { 0, 3 }, { 3,-1 }, { 3, 0 }, { 0, 4 }, { 0, 4 }, { 3, 7 }, { 3, 7 }, { 4,-1 }, { 4, 7 }, { 7,-1 }, { 7, 4 } },
{ { 1,-1 }, { 1, 2 }, { 2,-1 }, { 2, 1 }, { 1, 5 }, { 1, 5 }, { 2, 6 }, { 2, 6 }, { 5,-1 }, { 5, 6 }, { 6,-1 }, { 6, 5 } },
{ { 0, 1 }, { 1,-1 }, { 1, 0 }, { 0,-1 }, { 0, 4 }, { 1, 5 }, { 1, 5 }, { 0, 4 }, { 4, 5 }, { 5,-1 }, { 5, 4 }, { 4,-1 } },
{ { 3, 2 }, { 2,-1 }, { 2, 3 }, { 3,-1 }, { 3, 7 }, { 2, 6 }, { 2, 6 }, { 3, 7 }, { 7, 6 }, { 6,-1 }, { 6, 7 }, { 7,-1 } },
{ { 0, 1 }, { 1, 2 }, { 2, 3 }, { 3, 0 }, { 0,-1 }, { 1,-1 }, { 2,-1 }, { 3,-1 }, { 0, 1 }, { 1, 2 }, { 2, 3 }, { 3, 0 } },
{ { 4, 5 }, { 5, 6 }, { 6, 7 }, { 7, 4 }, { 4,-1 }, { 5,-1 }, { 6,-1 }, { 7,-1 }, { 4, 5 }, { 5, 6 }, { 6, 7 }, { 7, 4 } },
}
int Projection::edge_trf [static, protected] |
{
{ { 0, 1 }, { 1, 2 }, { 2, 3 }, { 3, 0 }, { 0, 4 }, { 1, 5 }, { 2, 6 }, { 3, 7 }, { 4, 5 }, { 5, 6 }, { 6, 7 }, { 7, 4 } },
{ { 16, -1 }, { 16, 17 }, { 17, -1 }, { 17, 16 }, { 16, 19 }, { 16, 19 }, { 17, 18 }, { 17, 18 }, { 19, -1 }, { 19, 18 }, { 18, -1 }, { 18, 19 } },
{ { 12, 13 }, { 13, -1 }, { 13, 12 }, { 12, -1 }, { 12, 15 }, { 13, 14 }, { 13, 14 }, { 12, 15 }, { 15, 14 }, { 14, -1 }, { 14, 15 }, { 15, -1 } },
{ { 8, 9 }, { 9, 10 }, { 10, 11 }, { 11, 8 }, { 8, -1 }, { 9, -1 }, { 10, -1 }, { 11, -1 }, { 8, 9 }, { 9, 10 }, { 10, 11 }, { 11, 8 } },
{ { 24, -1 }, { 24, -1 }, { 24, -1 }, { 24, -1 }, { 24, 25 }, { 24, 25 }, { 24, 25 }, { 24, 25 }, { 25, -1 }, { 25, -1 }, { 25, -1 }, { 25, -1 } },
{ { 22, -1 }, { 22, 23 }, { 23, -1 }, { 23, 22 }, { 22, -1 }, { 22, -1 }, { 23, -1 }, { 23, -1 }, { 22, -1 }, { 22, 23 }, { 23, -1 }, { 23, 22 } },
{ { 20, 21 }, { 21, -1 }, { 21, 20 }, { 20, -1 }, { 20, -1 }, { 21, -1 }, { 21, -1 }, { 20, -1 }, { 20, 21 }, { 21, -1 }, { 21, 20 }, { 20, -1 } },
{ { -1, -1 }, { -1, -1 }, { -1, -1 }, { -1, -1 }, { -1, -1 }, { -1, -1 }, { -1, -1 }, { -1, -1 }, { -1, -1 }, { -1, -1 }, { -1, -1 }, { -1, -1 } },
}
int Projection::face_ns [static, protected] |
{
{ 4, 4, 4, 4, 4, 4 },
{ 4, 4, 2, 2, 2, 2 },
{ 2, 2, 4, 4, 2, 2 },
{ 2, 2, 2, 2, 4, 4 },
{ 2, 2, 2, 2, 1, 1 },
{ 2, 2, 1, 1, 2, 2 },
{ 1, 1, 2, 2, 2, 2 },
{ 1, 1, 1, 1, 1, 1 },
}
int Projection::face_son [static, protected] |
{
{ { 0, 3, 7, 4 }, { 1, 2, 6, 5 }, { 0, 1, 5, 4 }, { 3, 2, 6, 7 }, { 0, 1, 2, 3 }, { 4, 5, 6, 7 } },
{ { 0,-1,-1,-1 }, { 0,-1,-1,-1 }, { 0,-1,-1,-1 }, { 0,-1,-1,-1 }, { 0,-1,-1,-1 }, { 0,-1,-1,-1 } },
{ { 1,-1,-1,-1 }, { 1,-1,-1,-1 }, { 1,-1,-1,-1 }, { 1,-1,-1,-1 }, { 1,-1,-1,-1 }, { 1,-1,-1,-1 } },
{ { 2,-1,-1,-1 }, { 2,-1,-1,-1 }, { 2,-1,-1,-1 }, { 2,-1,-1,-1 }, { 2,-1,-1,-1 }, { 2,-1,-1,-1 } },
{ { 3,-1,-1,-1 }, { 3,-1,-1,-1 }, { 3,-1,-1,-1 }, { 3,-1,-1,-1 }, { 3,-1,-1,-1 }, { 3,-1,-1,-1 } },
{ { 4,-1,-1,-1 }, { 4,-1,-1,-1 }, { 4,-1,-1,-1 }, { 4,-1,-1,-1 }, { 4,-1,-1,-1 }, { 4,-1,-1,-1 } },
{ { 5,-1,-1,-1 }, { 5,-1,-1,-1 }, { 5,-1,-1,-1 }, { 5,-1,-1,-1 }, { 5,-1,-1,-1 }, { 5,-1,-1,-1 } },
{ { 6,-1,-1,-1 }, { 6,-1,-1,-1 }, { 6,-1,-1,-1 }, { 6,-1,-1,-1 }, { 6,-1,-1,-1 }, { 6,-1,-1,-1 } },
{ { 7,-1,-1,-1 }, { 7,-1,-1,-1 }, { 7,-1,-1,-1 }, { 7,-1,-1,-1 }, { 7,-1,-1,-1 }, { 7,-1,-1,-1 } },
{ { 0, 4,-1,-1 }, { 0, 4,-1,-1 }, { 0, 4,-1,-1 }, { 0, 4,-1,-1 }, { 0,-1,-1,-1 }, { 4,-1,-1,-1 } },
{ { 1, 5,-1,-1 }, { 1, 5,-1,-1 }, { 1, 5,-1,-1 }, { 1, 5,-1,-1 }, { 1,-1,-1,-1 }, { 5,-1,-1,-1 } },
{ { 2, 6,-1,-1 }, { 2, 6,-1,-1 }, { 2, 6,-1,-1 }, { 2, 6,-1,-1 }, { 2,-1,-1,-1 }, { 6,-1,-1,-1 } },
{ { 3, 7,-1,-1 }, { 3, 7,-1,-1 }, { 3, 7,-1,-1 }, { 3, 7,-1,-1 }, { 3,-1,-1,-1 }, { 7,-1,-1,-1 } },
{ { 0, 3,-1,-1 }, { 0, 3,-1,-1 }, { 0,-1,-1,-1 }, { 3,-1,-1,-1 }, { 0, 3,-1,-1 }, { 0, 3,-1,-1 } },
{ { 1, 2,-1,-1 }, { 1, 2,-1,-1 }, { 1,-1,-1,-1 }, { 2,-1,-1,-1 }, { 1, 2,-1,-1 }, { 1, 2,-1,-1 } },
{ { 5, 6,-1,-1 }, { 5, 6,-1,-1 }, { 5,-1,-1,-1 }, { 6,-1,-1,-1 }, { 5, 6,-1,-1 }, { 5, 6,-1,-1 } },
{ { 4, 7,-1,-1 }, { 4, 7,-1,-1 }, { 4,-1,-1,-1 }, { 7,-1,-1,-1 }, { 4, 7,-1,-1 }, { 4, 7,-1,-1 } },
{ { 0,-1,-1,-1 }, { 1,-1,-1,-1 }, { 0, 1,-1,-1 }, { 0, 1,-1,-1 }, { 0, 1,-1,-1 }, { 0, 1,-1,-1 } },
{ { 3,-1,-1,-1 }, { 2,-1,-1,-1 }, { 3, 2,-1,-1 }, { 3, 2,-1,-1 }, { 3, 2,-1,-1 }, { 3, 2,-1,-1 } },
{ { 7,-1,-1,-1 }, { 6,-1,-1,-1 }, { 7, 6,-1,-1 }, { 7, 6,-1,-1 }, { 7, 6,-1,-1 }, { 7, 6,-1,-1 } },
{ { 4,-1,-1,-1 }, { 5,-1,-1,-1 }, { 4, 5,-1,-1 }, { 4, 5,-1,-1 }, { 4, 5,-1,-1 }, { 4, 5,-1,-1 } },
{ { 0, 3, 7, 4 }, { 0, 3, 7, 4 }, { 0, 4,-1,-1 }, { 3, 7,-1,-1 }, { 0, 3,-1,-1 }, { 4, 7,-1,-1 } },
{ { 1, 2, 6, 5 }, { 1, 2, 6, 5 }, { 1, 5,-1,-1 }, { 2, 6,-1,-1 }, { 1, 2,-1,-1 }, { 5, 6,-1,-1 } },
{ { 0, 4,-1,-1 }, { 1, 5,-1,-1 }, { 0, 1, 5, 4 }, { 0, 1, 5, 4 }, { 0, 1,-1,-1 }, { 4, 5,-1,-1 } },
{ { 3, 7,-1,-1 }, { 2, 6,-1,-1 }, { 3, 2, 6, 7 }, { 3, 2, 6, 7 }, { 3, 2,-1,-1 }, { 7, 6,-1,-1 } },
{ { 0, 3,-1,-1 }, { 1, 2,-1,-1 }, { 0, 1,-1,-1 }, { 3, 2,-1,-1 }, { 0, 1, 2, 3 }, { 0, 1, 2, 3 } },
{ { 4, 7,-1,-1 }, { 5, 6,-1,-1 }, { 4, 5,-1,-1 }, { 7, 6,-1,-1 }, { 4, 5, 6, 7 }, { 4, 5, 6, 7 } },
}
int Projection::face_trf [static, protected] |
{
{ { 0, 3, 7, 4 }, { 1, 2, 6, 5 }, { 0, 1, 5, 4 }, { 3, 2, 6, 7 }, { 0, 1, 2, 3 }, { 4, 5, 6, 7 } },
{ { 16, 17, 18, 19 }, { 16, 17, 18, 19 }, { 16, 19, -1, -1 }, { 17, 18, -1, -1 }, { 16, 17, -1, -1 }, { 19, 18, -1, -1 } },
{ { 12, 15, -1, -1 }, { 13, 14, -1, -1 }, { 12, 13, 14, 15 }, { 12, 13, 14, 15 }, { 12, 13, -1, -1 }, { 15, 14, -1, -1 } },
{ { 8, 11, -1, -1 }, { 9, 10, -1, -1 }, { 8, 9, -1, -1 }, { 11, 10, -1, -1 }, { 8, 9, 10, 11 }, { 8, 9, 10, 11 } },
{ { 24, 25, -1, -1 }, { 24, 25, -1, -1 }, { 24, 25, -1, -1 }, { 24, 25, -1, -1 }, { 24, -1, -1, -1 }, { 25, -1, -1, -1 } },
{ { 22, 23, -1, -1 }, { 22, 23, -1, -1 }, { 22, -1, -1, -1 }, { 23, -1, -1, -1 }, { 22, 23, -1, -1 }, { 22, 23, -1, -1 } },
{ { 20, -1, -1, -1 }, { 21, -1, -1, -1 }, { 20, 21, -1, -1 }, { 20, 21, -1, -1 }, { 20, 21, -1, -1 }, { 20, 21, -1, -1 } },
{ { -1, -1, -1, -1 }, { -1, -1, -1, -1 }, { -1, -1, -1, -1 }, { -1, -1, -1, -1 }, { -1, -1, -1, -1 }, { -1, -1, -1, -1 } },
}
int* Projection::fn_idx [protected] |
ShapeFunction* Projection::fu [protected] |
ShapeFunction* Projection::fv [protected] |
int Projection::int_ns = { 8, 4, 4, 4, 2, 2, 2, 1 } [static, protected] |
int Projection::int_son [static, protected] |
{
{ 0, 1, 2, 3, 4, 5, 6, 7 },
{ 0, -1, -1, -1, -1, -1, -1, -1 },
{ 1, -1, -1, -1, -1, -1, -1, -1 },
{ 2, -1, -1, -1, -1, -1, -1, -1 },
{ 3, -1, -1, -1, -1, -1, -1, -1 },
{ 4, -1, -1, -1, -1, -1, -1, -1 },
{ 5, -1, -1, -1, -1, -1, -1, -1 },
{ 6, -1, -1, -1, -1, -1, -1, -1 },
{ 7, -1, -1, -1, -1, -1, -1, -1 },
{ 0, 4, -1, -1, -1, -1, -1, -1 },
{ 1, 5, -1, -1, -1, -1, -1, -1 },
{ 2, 6, -1, -1, -1, -1, -1, -1 },
{ 3, 7, -1, -1, -1, -1, -1, -1 },
{ 0, 3, -1, -1, -1, -1, -1, -1 },
{ 1, 2, -1, -1, -1, -1, -1, -1 },
{ 5, 6, -1, -1, -1, -1, -1, -1 },
{ 4, 7, -1, -1, -1, -1, -1, -1 },
{ 0, 1, -1, -1, -1, -1, -1, -1 },
{ 3, 2, -1, -1, -1, -1, -1, -1 },
{ 7, 6, -1, -1, -1, -1, -1, -1 },
{ 4, 5, -1, -1, -1, -1, -1, -1 },
{ 0, 3, 7, 4, -1, -1, -1, -1 },
{ 1, 2, 6, 5, -1, -1, -1, -1 },
{ 0, 1, 5, 4, -1, -1, -1, -1 },
{ 3, 2, 6, 7, -1, -1, -1, -1 },
{ 0, 1, 2, 3, -1, -1, -1, -1 },
{ 4, 5, 6, 7, -1, -1, -1, -1 },
}
int Projection::int_trf [static, protected] |
{
{ 0, 1, 2, 3, 4, 5, 6, 7 },
{ 16, 17, 18, 19, -1, -1, -1, -1 },
{ 12, 13, 14, 15, -1, -1, -1, -1 },
{ 8, 9, 10, 11, -1, -1, -1, -1 },
{ 24, 25, -1, -1, -1, -1, -1, -1 },
{ 22, 23, -1, -1, -1, -1, -1, -1 },
{ 20, 21, -1, -1, -1, -1, -1, -1 },
{ -1, -1, -1, -1, -1, -1, -1, -1 },
}
double Projection::mdx = { 2, 1, 2, 2, 1, 1, 2, 1 } [static, protected] |
double Projection::mdy = { 2, 2, 1, 2, 1, 2, 1, 1 } [static, protected] |
double Projection::mdz = { 2, 2, 2, 1, 2, 1, 1, 1 } [static, protected] |
Mesh* Projection::mesh [protected] |
int Projection::n_fns [protected] |
const int Projection::NUM_TRF = 27 [static, protected] |
order3_t Projection::order [protected] |
double* Projection::proj_coef [protected] |
Quad3D* Projection::quad [protected] |
Solution* Projection::sln [protected] |
Shapeset* Projection::ss [protected] |
int Projection::vtx_son [static, protected] |
{
{ 0, 1, 2, 3, 4, 5, 6, 7 },
{ 0, 0, 0, 0, 0, 0, 0, 0 },
{ 1, 1, 1, 1, 1, 1, 1, 1 },
{ 2, 2, 2, 2, 2, 2, 2, 2 },
{ 3, 3, 3, 3, 3, 3, 3, 3 },
{ 4, 4, 4, 4, 4, 4, 4, 4 },
{ 5, 5, 5, 5, 5, 5, 5, 5 },
{ 6, 6, 6, 6, 6, 6, 6, 6 },
{ 7, 7, 7, 7, 7, 7, 7, 7 },
{ 0, 0, 0, 0, 4, 4, 4, 4 },
{ 1, 1, 1, 1, 5, 5, 5, 5 },
{ 2, 2, 2, 2, 6, 6, 6, 6 },
{ 3, 3, 3, 3, 7, 7, 7, 7 },
{ 0, 0, 3, 3, 0, 0, 3, 3 },
{ 1, 1, 2, 2, 1, 1, 2, 2 },
{ 5, 5, 6, 6, 5, 5, 6, 6 },
{ 4, 4, 7, 7, 4, 4, 7, 7 },
{ 0, 1, 1, 0, 0, 1, 1, 0 },
{ 3, 2, 2, 3, 3, 2, 2, 3 },
{ 7, 6, 6, 7, 7, 6, 6, 7 },
{ 4, 5, 5, 4, 4, 5, 5, 4 },
{ 0, 0, 3, 3, 4, 4, 7, 7 },
{ 1, 1, 2, 2, 5, 5, 6, 6 },
{ 0, 1, 1, 0, 4, 5, 5, 4 },
{ 3, 2, 2, 3, 7, 6, 6, 7 },
{ 0, 1, 2, 3, 0, 1, 2, 3 },
{ 4, 5, 6, 7, 4, 5, 6, 7 }
}
1.6.3