This repository serve as a backup for my Maxwell-TD code
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 
 
 

195 lines
38 KiB

#include "../dgtd-performance.hpp"
#ifndef TRI_ELEMP2_H
#define TRI_ELEMP2_H
static int DNUM = 720;
static int T2D00[8][8] =
{
{30,30,30,120,0,-120,48,24},
{30,90,30,120,0,-120,72,36},
{30,30,30,120,0,-120,48,24},
{120,120,120,480,0,-480,192,96},
{0,0,0,0,480,0,0,-48},
{-120,-120,-120,-480,0,480,-192,-96},
{48,72,48,192,0,-192,96,48},
{24,36,24,96,-48,-96,48,32}
};
static int T2D01[8][8] =
{
{45,15,-15,60,60,-60,24,-12},
{75,45,-45,-60,180,-180,36,-48},
{45,15,-15,60,60,-60,24,-12},
{180,60,-60,240,240,-240,96,-48},
{-60,60,-60,240,240,-240,48,0},
{-180,-60,60,-240,-240,240,-96,48},
{84,36,-36,48,144,-144,48,-32},
{48,12,-12,0,48,-48,16,-16}
};
static int T2D10[8][8] =
{
{45,75,45,180,-60,-180,84,48},
{15,45,15,60,60,-60,36,12},
{-15,-45,-15,-60,-60,60,-36,-12},
{60,-60,60,240,240,-240,48,0},
{60,180,60,240,240,-240,144,48},
{-60,-180,-60,-240,-240,240,-144,-48},
{24,36,24,96,48,-96,48,16},
{-12,-48,-12,-48,0,48,-32,-16}
};
static int T2D11[8][8] =
{
{90,30,-30,0,120,-120,36,-36},
{30,30,-30,0,120,-120,24,-24},
{-30,-30,30,0,-120,120,-24,24},
{0,0,0,480,0,0,48,48},
{120,120,-120,0,480,-480,96,-96},
{-120,-120,120,0,-480,480,-96,96},
{36,24,-24,48,96,-96,32,-16},
{-36,-24,24,48,-96,96,-16,32}
};
const fp_t T2D00_P2_old[12][12] = {
{ 4.166758333424991e-02, 4.166850000183317e-02, 4.166758333424991e-02, 1.666703333369995e-01, 0.000000000000000e+00, -1.666703333370002e-01, 6.666911111355520e-02, 3.333455555677779e-02, 3.333211110988882e-02, -2.444446888835716e-06, 3.333211110988889e-02, 0.000000000000000e+00},
{ 4.166850000183327e-02, 1.250036666703332e-01, 4.166850000183320e-02, 1.666740000073329e-01, 0.000000000000000e+00, -1.666740000073335e-01, 1.000048888937776e-01, 5.000244444688866e-02, -3.333577778022220e-02, -4.888893777595105e-06, -3.333577778022211e-02, 0.000000000000000e+00},
{ 4.166758333424992e-02, 4.166850000183318e-02, 4.166758333424990e-02, 1.666703333369997e-01, 0.000000000000000e+00, -1.666703333369995e-01, 6.666911111355533e-02, 3.333455555677754e-02, 3.333211110988885e-02, -2.444446889002250e-06, 3.333211110988898e-02, 0.000000000000000e+00},
{ 1.666703333370002e-01, 1.666740000073329e-01, 1.666703333369997e-01, 6.666813333479983e-01, 0.000000000000000e+00, -6.666813333480005e-01, 2.666764444542217e-01, 1.333382222271104e-01, 1.333284444395555e-01, -9.777787556120021e-06, 1.333284444395554e-01, 0.000000000000000e+00},
{ 0.000000000000000e+00, 0.000000000000000e+00, 0.000000000000000e+00, 0.000000000000000e+00, 6.666666666666665e-01, 0.000000000000000e+00, 0.000000000000000e+00, -6.666666666666674e-02, 1.333333333333327e-01, 0.000000000000000e+00, -1.333333333333329e-01, 2.666666666666653e-01},
{ -1.666703333369999e-01, -1.666740000073328e-01, -1.666703333370000e-01, -6.666813333479971e-01, 0.000000000000000e+00, 6.666813333479988e-01, -2.666764444542211e-01, -1.333382222271110e-01, -1.333284444395556e-01, 9.777787556286555e-06, -1.333284444395554e-01, 0.000000000000000e+00},
{ 6.666911111355536e-02, 1.000048888937777e-01, 6.666911111355539e-02, 2.666764444542215e-01, 0.000000000000000e+00, -2.666764444542217e-01, 1.333398518583703e-01, 6.666992592918493e-02, -3.259262518519324e-06, -6.518525037003953e-06, -3.259262518598253e-06, 0.000000000000000e+00},
{ 3.333455555677765e-02, 5.000244444688880e-02, 3.333455555677768e-02, 1.333382222271104e-01, -6.666666666666597e-02, -1.333382222271105e-01, 6.666992592918491e-02, 4.444607407570347e-02, -2.222385185348140e-02, -3.259262518508915e-06, 2.222059259096287e-02, -4.444444444444418e-02},
{ 3.333211110988873e-02, -3.333577778022207e-02, 3.333211110988892e-02, 1.333284444395564e-01, 1.333333333333329e-01, -1.333284444395556e-01, -3.259262518591315e-06, -2.222385185348135e-02, 1.777794074090369e-01, 3.259262518769124e-06, 8.889051852014826e-02, 8.888888888888888e-02},
{ -2.444446888964086e-06, -4.888893777681841e-06, -2.444446888953677e-06, -9.777787555564910e-06, 0.000000000000000e+00, 9.777787555578787e-06, -6.518525037009157e-06, -3.259262518495905e-06, 3.259262518498507e-06, 2.666731851917032e-01, 3.259262518085643e-06, 0.000000000000000e+00},
{ 3.333211110988880e-02, -3.333577778022220e-02, 3.333211110988893e-02, 1.333284444395550e-01, -1.333333333333329e-01, -1.333284444395556e-01, -3.259262518536671e-06, 2.222059259096290e-02, 8.889051852014805e-02, 3.259262518061357e-06, 1.777794074090367e-01, -8.888888888888888e-02},
{ 0.000000000000000e+00, 0.000000000000000e+00, 0.000000000000000e+00, 0.000000000000000e+00, 2.666666666666666e-01, 0.000000000000000e+00, 0.000000000000000e+00, -4.444444444444449e-02, 8.888888888888888e-02, 0.000000000000000e+00, -8.888888888888888e-02, 1.777777777777778e-01}
};
const fp_t T2D01_P2_old[12][12] = {
{ 6.250183333516654e-02, 2.083425000091661e-02, -2.083425000091661e-02, 8.333333333333322e-02, 8.333700000366638e-02, -8.333700000366649e-02, 3.333455555677765e-02, -1.666788889011106e-02, -2.444446888811430e-06, -1.222223444438675e-06, 3.333455555677768e-02, 3.333333333333319e-02},
{ 1.041703333369998e-01, 6.250183333516654e-02, -6.250183333516654e-02, -8.333333333333320e-02, 2.500073333406661e-01, -2.500073333406662e-01, 5.000244444688875e-02, -6.666911111355536e-02, -4.888893777746026e-06, -2.444446888814900e-06, -3.333088888644442e-02, -3.333333333333322e-02},
{ 6.250183333516654e-02, 2.083425000091661e-02, -2.083425000091662e-02, 8.333333333333320e-02, 8.333700000366648e-02, -8.333700000366639e-02, 3.333455555677767e-02, -1.666788889011107e-02, -2.444446888814900e-06, -1.222223444445614e-06, 3.333455555677768e-02, 3.333333333333321e-02},
{ 2.500073333406662e-01, 8.333700000366641e-02, -8.333700000366646e-02, 3.333333333333325e-01, 3.333480000146659e-01, -3.333480000146660e-01, 1.333382222271107e-01, -6.667155556044427e-02, -9.777787555283884e-06, -4.888893777921233e-06, 1.333382222271107e-01, 1.333333333333329e-01},
{ -8.333333333333320e-02, 8.333333333333322e-02, -8.333333333333323e-02, 3.333333333333330e-01, 3.333333333333326e-01, -3.333333333333328e-01, 6.666666666666644e-02, 0.000000000000000e+00, 0.000000000000000e+00, 2.666666666666661e-01, -1.333333333333333e-01, 1.333333333333328e-01},
{ -2.500073333406662e-01, -8.333700000366645e-02, 8.333700000366648e-02, -3.333333333333326e-01, -3.333480000146656e-01, 3.333480000146660e-01, -1.333382222271106e-01, 6.667155556044424e-02, 9.777787555242251e-06, 4.888893777948988e-06, -1.333382222271108e-01, -1.333333333333328e-01},
{ 1.166715555604441e-01, 5.000244444688875e-02, -5.000244444688876e-02, 6.666666666666643e-02, 2.000097777875549e-01, -2.000097777875550e-01, 6.666992592918500e-02, -4.444770370696281e-02, -4.445096296948136e-02, -3.259262518536671e-06, 4.444770370696284e-02, 4.444444444444428e-02},
{ 6.666911111355536e-02, 1.666788889011106e-02, -1.666788889011108e-02, 0.000000000000000e+00, 6.667155556044432e-02, -6.667155556044425e-02, 2.222385185348140e-02, -2.222385185348140e-02, -4.444770370696283e-02, -2.222385185348141e-02, 2.222385185348140e-02, 0.000000000000000e+00},
{ -2.444446888818369e-06, -1.222223444434338e-06, 1.222223444456022e-06, 2.666666666666662e-01, -4.888893777865722e-06, 4.888893777792863e-06, 2.222059259096286e-02, 2.222385185348141e-02, 1.333365925958516e-01, 4.444607407570357e-02, 4.444281481318503e-02, 8.888888888888888e-02},
{ -4.888893777775516e-06, -2.444446888814900e-06, 2.444446888794083e-06, 0.000000000000000e+00, -9.777787555162454e-06, 9.777787555231843e-06, -3.259262518526262e-06, 4.444770370696286e-02, 4.445096296948167e-02, 1.333365925958517e-01, -4.444770370696318e-02, 8.888888888888888e-02},
{ 3.333088888644441e-02, -3.333455555677766e-02, 3.333455555677765e-02, 1.333333333333332e-01, -1.333382222271106e-01, 1.333382222271107e-01, -2.222385185348141e-02, 2.222385185348140e-02, 4.444770370696313e-02, -4.444281481318497e-02, 4.444281481318493e-02, 0.000000000000000e+00},
{ -3.333333333333323e-02, 3.333333333333321e-02, -3.333333333333324e-02, 1.333333333333329e-01, 1.333333333333329e-01, -1.333333333333329e-01, 4.444444444444428e-02, 0.000000000000000e+00, 8.888888888888888e-02, 8.888888888888888e-02, 0.000000000000000e+00, 8.888888888888888e-02}
};
const fp_t T2D10_P2_old[12][12] = {
{ 6.250183333516653e-02, 1.041703333369998e-01, 6.250183333516653e-02, 2.500073333406661e-01, -8.333333333333316e-02, -2.500073333406661e-01, 1.166715555604441e-01, 6.666911111355535e-02, -2.444446888831922e-06, -4.888893777728678e-06, 3.333088888644439e-02, -3.333333333333323e-02},
{ 2.083425000091662e-02, 6.250183333516651e-02, 2.083425000091664e-02, 8.333700000366645e-02, 8.333333333333316e-02, -8.333700000366646e-02, 5.000244444688873e-02, 1.666788889011106e-02, -1.222223444456889e-06, -2.444446888827910e-06, -3.333455555677767e-02, 3.333333333333321e-02},
{ -2.083425000091661e-02, -6.250183333516653e-02, -2.083425000091663e-02, -8.333700000366649e-02, -8.333333333333320e-02, 8.333700000366648e-02, -5.000244444688874e-02, -1.666788889011107e-02, 1.222223444453528e-06, 2.444446888815767e-06, 3.333455555677770e-02, -3.333333333333322e-02},
{ 8.333333333333319e-02, -8.333333333333318e-02, 8.333333333333322e-02, 3.333333333333327e-01, 3.333333333333328e-01, -3.333333333333328e-01, 6.666666666666642e-02, 0.000000000000000e+00, 2.666666666666661e-01, 0.000000000000000e+00, 1.333333333333332e-01, 1.333333333333328e-01},
{ 8.333700000366645e-02, 2.500073333406661e-01, 8.333700000366651e-02, 3.333480000146658e-01, 3.333333333333327e-01, -3.333480000146659e-01, 2.000097777875550e-01, 6.667155556044436e-02, -4.888893777864421e-06, -9.777787555252659e-06, -1.333382222271108e-01, 1.333333333333328e-01},
{ -8.333700000366649e-02, -2.500073333406660e-01, -8.333700000366644e-02, -3.333480000146657e-01, -3.333333333333328e-01, 3.333480000146659e-01, -2.000097777875549e-01, -6.667155556044423e-02, 4.888893777836231e-06, 9.777787555266537e-06, 1.333382222271107e-01, -1.333333333333329e-01},
{ 3.333455555677767e-02, 5.000244444688873e-02, 3.333455555677767e-02, 1.333382222271107e-01, 6.666666666666640e-02, -1.333382222271107e-01, 6.666992592918497e-02, 2.222385185348141e-02, 2.222059259096286e-02, -3.259262518551416e-06, -2.222385185348144e-02, 4.444444444444427e-02},
{ -1.666788889011106e-02, -6.666911111355533e-02, -1.666788889011108e-02, -6.667155556044423e-02, 0.000000000000000e+00, 6.667155556044425e-02, -4.444770370696281e-02, -2.222385185348142e-02, 2.222385185348141e-02, 4.444770370696285e-02, 2.222385185348141e-02, 0.000000000000000e+00},
{ -2.444446888808720e-06, -4.888893777750037e-06, -2.444446888826717e-06, -9.777787555335926e-06, 0.000000000000000e+00, 9.777787555262200e-06, -4.445096296948141e-02, -4.444770370696287e-02, 1.333365925958518e-01, 4.445096296948165e-02, 4.444770370696313e-02, 8.888888888888888e-02},
{ -1.222223444449083e-06, -2.444446888831379e-06, -1.222223444451685e-06, -4.888893777855313e-06, 2.666666666666662e-01, 4.888893777855313e-06, -3.259262518546212e-06, -2.222385185348140e-02, 4.444607407570354e-02, 1.333365925958517e-01, -4.444281481318501e-02, 8.888888888888888e-02},
{ 3.333455555677767e-02, -3.333088888644439e-02, 3.333455555677770e-02, 1.333382222271107e-01, -1.333333333333332e-01, -1.333382222271107e-01, 4.444770370696283e-02, 2.222385185348142e-02, 4.444281481318497e-02, -4.444770370696317e-02, 4.444281481318498e-02, 0.000000000000000e+00},
{ 3.333333333333321e-02, -3.333333333333321e-02, 3.333333333333324e-02, 1.333333333333329e-01, 1.333333333333328e-01, -1.333333333333329e-01, 4.444444444444429e-02, 0.000000000000000e+00, 8.888888888888888e-02, 8.888888888888888e-02, 0.000000000000000e+00, 8.888888888888888e-02}
};
const fp_t T2D11_P2_old[12][12] = {
{ 1.250036666703331e-01, 4.166850000183324e-02, -4.166850000183322e-02, 0.000000000000000e+00, 1.666740000073329e-01, -1.666740000073329e-01, 5.000244444688873e-02, -5.000244444688873e-02, -4.888893777647038e-06, -3.333577778022213e-02, 3.333577778022213e-02, 0.000000000000000e+00},
{ 4.166850000183323e-02, 4.166758333424990e-02, -4.166758333424990e-02, 0.000000000000000e+00, 1.666703333369997e-01, -1.666703333369997e-01, 3.333455555677767e-02, -3.333455555677767e-02, -2.444446888908629e-06, 3.333211110988885e-02, -3.333211110988886e-02, 0.000000000000000e+00},
{ -4.166850000183323e-02, -4.166758333424991e-02, 4.166758333424991e-02, 0.000000000000000e+00, -1.666703333369997e-01, 1.666703333369997e-01, -3.333455555677768e-02, 3.333455555677768e-02, 2.444446888910851e-06, -3.333211110988884e-02, 3.333211110988885e-02, 0.000000000000000e+00},
{ 0.000000000000000e+00, 0.000000000000000e+00, 0.000000000000000e+00, 6.666666666666655e-01, 0.000000000000000e+00, 0.000000000000000e+00, 6.666666666666637e-02, 6.666666666666646e-02, 0.000000000000000e+00, 1.333333333333329e-01, 1.333333333333329e-01, 2.666666666666657e-01},
{ 1.666740000073328e-01, 1.666703333369996e-01, -1.666703333369996e-01, 0.000000000000000e+00, 6.666813333479984e-01, -6.666813333479986e-01, 1.333382222271106e-01, -1.333382222271106e-01, -9.777787555666391e-06, 1.333284444395554e-01, -1.333284444395554e-01, 0.000000000000000e+00},
{ -1.666740000073329e-01, -1.666703333369997e-01, 1.666703333369997e-01, 0.000000000000000e+00, -6.666813333479986e-01, 6.666813333479987e-01, -1.333382222271107e-01, 1.333382222271107e-01, 9.777787555661187e-06, -1.333284444395554e-01, 1.333284444395555e-01, 0.000000000000000e+00},
{ 5.000244444688874e-02, 3.333455555677765e-02, -3.333455555677767e-02, 6.666666666666642e-02, 1.333382222271106e-01, -1.333382222271107e-01, 4.444607407570352e-02, -2.222385185348139e-02, -3.259262518544911e-06, 2.222059259096285e-02, 2.222385185348142e-02, 4.444444444444426e-02},
{ -5.000244444688874e-02, -3.333455555677769e-02, 3.333455555677767e-02, 6.666666666666644e-02, -1.333382222271107e-01, 1.333382222271107e-01, -2.222385185348141e-02, 4.444607407570355e-02, 3.259262518540574e-06, 2.222385185348143e-02, 2.222059259096287e-02, 4.444444444444428e-02},
{ -4.888893777629582e-06, -2.444446888905132e-06, 2.444446888913833e-06, 0.000000000000000e+00, -9.777787555685581e-06, 9.777787555657392e-06, -3.259262518551199e-06, 3.259262518529840e-06, 2.666731851917034e-01, 3.259262518553584e-06, -3.259262518566595e-06, 0.000000000000000e+00},
{ -3.333577778022213e-02, 3.333211110988884e-02, -3.333211110988884e-02, 1.333333333333328e-01, 1.333284444395554e-01, -1.333284444395554e-01, 2.222059259096285e-02, 2.222385185348141e-02, 3.259262518571799e-06, 1.777794074090367e-01, -8.889051852014807e-02, 8.888888888888888e-02},
{ 3.333577778022214e-02, -3.333211110988885e-02, 3.333211110988885e-02, 1.333333333333329e-01, -1.333284444395554e-01, 1.333284444395554e-01, 2.222385185348143e-02, 2.222059259096286e-02, -3.259262518564860e-06, -8.889051852014809e-02, 1.777794074090367e-01, 8.888888888888888e-02},
{ 0.000000000000000e+00, 0.000000000000000e+00, 0.000000000000000e+00, 2.666666666666658e-01, 0.000000000000000e+00, 0.000000000000000e+00, 4.444444444444426e-02, 4.444444444444431e-02, 0.000000000000000e+00, 8.888888888888888e-02, 8.888888888888888e-02, 1.777777777777771e-01}
};
// New Universal Matrices
const fp_t T2D00_P2[15][15] = {
{ 4.166666666666667e-02, 4.166666666666667e-02, 4.166666666666667e-02, 1.666666666666514e-01, 0.000000000000000e+00, -1.666666666666513e-01, 6.666666666665985e-02, 3.333333333333333e-02, 3.333333333333333e-02, 0.000000000000000e+00, 3.333333333333333e-02, 0.000000000000000e+00, 1.111111111111111e-02, 3.333333333333333e-02, 1.111111111111111e-02},
{ 4.166666666666667e-02, 1.250000000000000e-01, 4.166666666666667e-02, 1.666666666666487e-01, 0.000000000000000e+00, -1.666666666666485e-01, 1.000000000000000e-01, 5.000000000000000e-02, -3.333333333333333e-02, 0.000000000000000e+00, -3.333333333333333e-02, 0.000000000000000e+00, 2.222222222222222e-02, 3.333333333333333e-02, 2.222222222222222e-02},
{ 4.166666666666667e-02, 4.166666666666667e-02, 4.166666666666667e-02, 1.666666666666514e-01, 0.000000000000000e+00, -1.666666666666513e-01, 6.666666666665984e-02, 3.333333333333333e-02, 3.333333333333333e-02, 0.000000000000000e+00, 3.333333333333333e-02, 0.000000000000000e+00, 1.111111111111111e-02, 3.333333333333333e-02, 1.111111111111111e-02},
{ 1.666666666666514e-01, 1.666666666666485e-01, 1.666666666666667e-01, 6.666666666666667e-01, 0.000000000000000e+00, -6.666666666666667e-01, 2.666666666666667e-01, 1.333333333333333e-01, 1.333333333333333e-01, 0.000000000000000e+00, 1.333333333333333e-01, 0.000000000000000e+00, 4.444444444444444e-02, 1.333333333333333e-01, 4.444444444444444e-02},
{ 0.000000000000000e+00, 0.000000000000000e+00, 0.000000000000000e+00, 0.000000000000000e+00, 6.666666666666667e-01, 0.000000000000000e+00, 0.000000000000000e+00, -6.666666666666667e-02, 1.333333333333333e-01, 0.000000000000000e+00, -1.333333333333333e-01, 2.666666666666667e-01, 4.444444444444444e-02, 0.000000000000000e+00, -4.444444444444444e-02},
{ -1.666666666666667e-01, -1.666666666666667e-01, -1.666666666666667e-01, -6.666666666666667e-01, 0.000000000000000e+00, 6.666666666666667e-01, -2.666666666666667e-01, -1.333333333333333e-01, -1.333333333333333e-01, 0.000000000000000e+00, -1.333333333333333e-01, 0.000000000000000e+00, -4.444444444444444e-02, -1.333333333333333e-01, -4.444444444444444e-02},
{ 6.666666666666667e-02, 1.000000000000000e-01, 6.666666666666667e-02, 2.666666666666667e-01, 0.000000000000000e+00, -2.666666666666667e-01, 1.333333333333333e-01, 6.666666666666667e-02, 0.000000000000000e+00, 0.000000000000000e+00, 0.000000000000000e+00, 0.000000000000000e+00, 2.539682539682307e-02, 5.714285714285138e-02, 2.539682539682307e-02},
{ 3.333333333333333e-02, 5.000000000000000e-02, 3.333333333333333e-02, 1.333333333333333e-01, -6.666666666666667e-02, -1.333333333333333e-01, 6.666666666666667e-02, 4.444444444444444e-02, -2.222222222222222e-02, 0.000000000000000e+00, 2.222222222222222e-02, -4.444444444444444e-02, 6.349206349205549e-03, 2.857142857142568e-02, 1.904761904761752e-02},
{ 3.333333333333333e-02, -3.333333333333333e-02, 3.333333333333333e-02, 1.333333333333333e-01, 1.333333333333333e-01, -1.333333333333333e-01, 0.000000000000000e+00, -2.222222222222222e-02, 1.777777777777778e-01, 0.000000000000000e+00, 8.888888888888888e-02, 8.888888888888888e-02, 6.349206349206434e-03, 1.904761904761697e-02, -1.904761904761752e-02},
{ 0.000000000000000e+00, 0.000000000000000e+00, 0.000000000000000e+00, 0.000000000000000e+00, 0.000000000000000e+00, 0.000000000000000e+00, 0.000000000000000e+00, 0.000000000000000e+00, 0.000000000000000e+00, 2.666666666666667e-01, 0.000000000000000e+00, 0.000000000000000e+00, 6.349206349207057e-03, 0.000000000000000e+00, 6.349206349207054e-03},
{ 3.333333333333333e-02, -3.333333333333333e-02, 3.333333333333333e-02, 1.333333333333333e-01, -1.333333333333333e-01, -1.333333333333333e-01, 0.000000000000000e+00, 2.222222222222222e-02, 8.888888888888888e-02, 0.000000000000000e+00, 1.777777777777778e-01, -8.888888888888888e-02, -1.904761904761751e-02, 1.904761904761697e-02, 6.349206349206430e-03},
{ 0.000000000000000e+00, 0.000000000000000e+00, 0.000000000000000e+00, 0.000000000000000e+00, 2.666666666666667e-01, 0.000000000000000e+00, 0.000000000000000e+00, -4.444444444444444e-02, 8.888888888888888e-02, 0.000000000000000e+00, -8.888888888888888e-02, 1.777777777777778e-01, 2.539682539682394e-02, 0.000000000000000e+00, -2.539682539682396e-02},
{ 1.111111111111111e-02, 2.222222222222222e-02, 1.111111111111111e-02, 4.444444444444444e-02, 4.444444444444444e-02, -4.444444444444444e-02, 2.539682539682305e-02, 6.349206349205548e-03, 6.349206349206431e-03, 6.349206349207064e-03, -1.904761904761753e-02, 2.539682539682397e-02, 9.523809523808730e-03, 9.523809523808780e-03, 1.587301587301388e-03},
{ 3.333333333333333e-02, 3.333333333333333e-02, 3.333333333333333e-02, 1.333333333333333e-01, 0.000000000000000e+00, -1.333333333333333e-01, 5.714285714285138e-02, 2.857142857142569e-02, 1.904761904761696e-02, 0.000000000000000e+00, 1.904761904761696e-02, 0.000000000000000e+00, 9.523809523808782e-03, 2.857142857142549e-02, 9.523809523808779e-03},
{ 1.111111111111111e-02, 2.222222222222222e-02, 1.111111111111111e-02, 4.444444444444444e-02, -4.444444444444444e-02, -4.444444444444444e-02, 2.539682539682308e-02, 1.904761904761752e-02, -1.904761904761752e-02, 6.349206349207054e-03, 6.349206349206433e-03, -2.539682539682395e-02, 1.587301587301388e-03, 9.523809523808786e-03, 9.523809523808746e-03}
};
const fp_t T2D01_P2[15][15] = {
{ 6.250000000000000e-02, 2.083333333333333e-02, -2.083333333333333e-02, 8.333333333333333e-02, 8.333333333333333e-02, -8.333333333333333e-02, 3.333333333333333e-02, -1.666666666666667e-02, 0.000000000000000e+00, 0.000000000000000e+00, 3.333333333333333e-02, 3.333333333333333e-02, 1.666666666666667e-02, 1.666666666666667e-02, -5.555555555555556e-03},
{ 1.041666666666667e-01, 6.250000000000000e-02, -6.250000000000000e-02, -8.333333333333333e-02, 2.500000000000000e-01, -2.500000000000000e-01, 5.000000000000000e-02, -6.666666666666667e-02, 0.000000000000000e+00, 0.000000000000000e+00, -3.333333333333333e-02, -3.333333333333333e-02, 5.000000000000000e-02, 1.666666666666667e-02, -2.777777777777778e-02},
{ 6.250000000000000e-02, 2.083333333333333e-02, -2.083333333333333e-02, 8.333333333333333e-02, 8.333333333333333e-02, -8.333333333333333e-02, 3.333333333333333e-02, -1.666666666666667e-02, 0.000000000000000e+00, 0.000000000000000e+00, 3.333333333333333e-02, 3.333333333333333e-02, 1.666666666666667e-02, 1.666666666666667e-02, -5.555555555555556e-03},
{ 2.500000000000000e-01, 8.333333333333333e-02, -8.333333333333333e-02, 3.333333333333333e-01, 3.333333333333333e-01, -3.333333333333333e-01, 1.333333333333333e-01, -6.666666666666667e-02, 0.000000000000000e+00, 0.000000000000000e+00, 1.333333333333333e-01, 1.333333333333333e-01, 6.666666666666667e-02, 6.666666666666667e-02, -2.222222222222222e-02},
{ -8.333333333333333e-02, 8.333333333333333e-02, -8.333333333333333e-02, 3.333333333333333e-01, 3.333333333333333e-01, -3.333333333333333e-01, 6.666666666666667e-02, 0.000000000000000e+00, 0.000000000000000e+00, 2.666666666666667e-01, -1.333333333333333e-01, 1.333333333333333e-01, 6.666666666666667e-02, 2.222222222222222e-02, 2.222222222222222e-02},
{ -2.500000000000000e-01, -8.333333333333333e-02, 8.333333333333333e-02, -3.333333333333333e-01, -3.333333333333333e-01, 3.333333333333333e-01, -1.333333333333333e-01, 6.666666666666667e-02, 0.000000000000000e+00, 0.000000000000000e+00, -1.333333333333333e-01, -1.333333333333333e-01, -6.666666666666667e-02, -6.666666666666667e-02, 2.222222222222222e-02},
{ 1.166666666666667e-01, 5.000000000000000e-02, -5.000000000000000e-02, 6.666666666666667e-02, 2.000000000000000e-01, -2.000000000000000e-01, 6.666666666666667e-02, -4.444444444444444e-02, -4.444444444444444e-02, 0.000000000000000e+00, 4.444444444444444e-02, 4.444444444444444e-02, 4.126984126983674e-02, 2.857142857142564e-02, -1.587301587301373e-02},
{ 6.666666666666667e-02, 1.666666666666667e-02, -1.666666666666667e-02, 0.000000000000000e+00, 6.666666666666667e-02, -6.666666666666667e-02, 2.222222222222222e-02, -2.222222222222222e-02, -4.444444444444444e-02, -2.222222222222222e-02, 2.222222222222222e-02, 0.000000000000000e+00, 1.269841269841107e-02, 9.523809523808185e-03, -9.523809523808144e-03},
{ 0.000000000000000e+00, 0.000000000000000e+00, 0.000000000000000e+00, 2.666666666666667e-01, 0.000000000000000e+00, 0.000000000000000e+00, 2.222222222222222e-02, 2.222222222222222e-02, 1.333333333333333e-01, 4.444444444444444e-02, 4.444444444444444e-02, 8.888888888888888e-02, 0.000000000000000e+00, 1.904761904761781e-02, 1.269841269841077e-02},
{ 0.000000000000000e+00, 0.000000000000000e+00, 0.000000000000000e+00, 0.000000000000000e+00, 0.000000000000000e+00, 0.000000000000000e+00, 0.000000000000000e+00, 4.444444444444444e-02, 4.444444444444444e-02, 1.333333333333333e-01, -4.444444444444444e-02, 8.888888888888888e-02, -1.269841269841134e-02, 0.000000000000000e+00, 1.904761904761842e-02},
{ 3.333333333333333e-02, -3.333333333333333e-02, 3.333333333333333e-02, 1.333333333333333e-01, -1.333333333333333e-01, 1.333333333333333e-01, -2.222222222222222e-02, 2.222222222222222e-02, 4.444444444444444e-02, -4.444444444444444e-02, 4.444444444444444e-02, 0.000000000000000e+00, -3.174603174602826e-02, 0.000000000000000e+00, 6.349206349205549e-03},
{ -3.333333333333333e-02, 3.333333333333333e-02, -3.333333333333333e-02, 1.333333333333333e-01, 1.333333333333333e-01, -1.333333333333333e-01, 4.444444444444444e-02, 0.000000000000000e+00, 8.888888888888888e-02, 8.888888888888888e-02, 0.000000000000000e+00, 8.888888888888888e-02, 3.174603174602919e-02, 1.904761904761870e-02, 6.349206349205279e-03},
{ 1.666666666666667e-02, 1.666666666666667e-02, -1.666666666666667e-02, 2.222222222222222e-02, 6.666666666666667e-02, -6.666666666666667e-02, 1.904761904761750e-02, -9.523809523808175e-03, 0.000000000000000e+00, 1.904761904761782e-02, 0.000000000000000e+00, 1.904761904761866e-02, 1.428571428571272e-02, 7.142857142856701e-03, -2.380952380952090e-03},
{ 5.000000000000000e-02, 1.666666666666667e-02, -1.666666666666667e-02, 6.666666666666667e-02, 6.666666666666667e-02, -6.666666666666667e-02, 2.857142857142567e-02, -1.269841269841106e-02, -1.269841269841136e-02, 0.000000000000000e+00, 3.174603174602825e-02, 3.174603174602918e-02, 1.349206349206224e-02, 1.428571428571272e-02, -3.968253968253465e-03},
{ 2.777777777777778e-02, 5.555555555555556e-03, -5.555555555555556e-03, -2.222222222222222e-02, 2.222222222222222e-02, -2.222222222222222e-02, 6.349206349205494e-03, -9.523809523808144e-03, -1.904761904761841e-02, -1.269841269841077e-02, 6.349206349205536e-03, -6.349206349205209e-03, 3.968253968253456e-03, 2.380952380952074e-03, -4.761904761904016e-03}
};
const fp_t T2D10_P2[15][15] = {
{ 6.250000000000000e-02, 1.041666666666667e-01, 6.250000000000000e-02, 2.500000000000000e-01, -8.333333333333333e-02, -2.500000000000000e-01, 1.166666666666667e-01, 6.666666666666667e-02, 0.000000000000000e+00, 0.000000000000000e+00, 3.333333333333333e-02, -3.333333333333333e-02, 1.666666666666667e-02, 5.000000000000000e-02, 2.777777777777778e-02},
{ 2.083333333333333e-02, 6.250000000000000e-02, 2.083333333333333e-02, 8.333333333333333e-02, 8.333333333333333e-02, -8.333333333333333e-02, 5.000000000000000e-02, 1.666666666666667e-02, 0.000000000000000e+00, 0.000000000000000e+00, -3.333333333333333e-02, 3.333333333333333e-02, 1.666666666666667e-02, 1.666666666666667e-02, 5.555555555555556e-03},
{ -2.083333333333333e-02, -6.250000000000000e-02, -2.083333333333333e-02, -8.333333333333333e-02, -8.333333333333333e-02, 8.333333333333333e-02, -5.000000000000000e-02, -1.666666666666667e-02, 0.000000000000000e+00, 0.000000000000000e+00, 3.333333333333333e-02, -3.333333333333333e-02, -1.666666666666667e-02, -1.666666666666667e-02, -5.555555555555556e-03},
{ 8.333333333333333e-02, -8.333333333333333e-02, 8.333333333333333e-02, 3.333333333333333e-01, 3.333333333333333e-01, -3.333333333333333e-01, 6.666666666666667e-02, 0.000000000000000e+00, 2.666666666666667e-01, 0.000000000000000e+00, 1.333333333333333e-01, 1.333333333333333e-01, 2.222222222222222e-02, 6.666666666666667e-02, -2.222222222222222e-02},
{ 8.333333333333333e-02, 2.500000000000000e-01, 8.333333333333333e-02, 3.333333333333333e-01, 3.333333333333333e-01, -3.333333333333333e-01, 2.000000000000000e-01, 6.666666666666667e-02, 0.000000000000000e+00, 0.000000000000000e+00, -1.333333333333333e-01, 1.333333333333333e-01, 6.666666666666667e-02, 6.666666666666667e-02, 2.222222222222222e-02},
{ -8.333333333333333e-02, -2.500000000000000e-01, -8.333333333333333e-02, -3.333333333333333e-01, -3.333333333333333e-01, 3.333333333333333e-01, -2.000000000000000e-01, -6.666666666666667e-02, 0.000000000000000e+00, 0.000000000000000e+00, 1.333333333333333e-01, -1.333333333333333e-01, -6.666666666666667e-02, -6.666666666666667e-02, -2.222222222222222e-02},
{ 3.333333333333333e-02, 5.000000000000000e-02, 3.333333333333333e-02, 1.333333333333333e-01, 6.666666666666667e-02, -1.333333333333333e-01, 6.666666666666667e-02, 2.222222222222222e-02, 2.222222222222222e-02, 0.000000000000000e+00, -2.222222222222222e-02, 4.444444444444444e-02, 1.904761904761754e-02, 2.857142857142564e-02, 6.349206349205563e-03},
{ -1.666666666666667e-02, -6.666666666666667e-02, -1.666666666666667e-02, -6.666666666666667e-02, 0.000000000000000e+00, 6.666666666666667e-02, -4.444444444444444e-02, -2.222222222222222e-02, 2.222222222222222e-02, 4.444444444444444e-02, 2.222222222222222e-02, 0.000000000000000e+00, -9.523809523808175e-03, -1.269841269841111e-02, -9.523809523808133e-03},
{ 0.000000000000000e+00, 0.000000000000000e+00, 0.000000000000000e+00, 0.000000000000000e+00, 0.000000000000000e+00, 0.000000000000000e+00, -4.444444444444444e-02, -4.444444444444444e-02, 1.333333333333333e-01, 4.444444444444444e-02, 4.444444444444444e-02, 8.888888888888888e-02, 0.000000000000000e+00, -1.269841269841134e-02, -1.904761904761841e-02},
{ 0.000000000000000e+00, 0.000000000000000e+00, 0.000000000000000e+00, 0.000000000000000e+00, 2.666666666666667e-01, 0.000000000000000e+00, 0.000000000000000e+00, -2.222222222222222e-02, 4.444444444444444e-02, 1.333333333333333e-01, -4.444444444444444e-02, 8.888888888888888e-02, 1.904761904761784e-02, 0.000000000000000e+00, -1.269841269841077e-02},
{ 3.333333333333333e-02, -3.333333333333333e-02, 3.333333333333333e-02, 1.333333333333333e-01, -1.333333333333333e-01, -1.333333333333333e-01, 4.444444444444444e-02, 2.222222222222222e-02, 4.444444444444444e-02, -4.444444444444444e-02, 4.444444444444444e-02, 0.000000000000000e+00, 0.000000000000000e+00, 3.174603174602829e-02, 6.349206349205549e-03},
{ 3.333333333333333e-02, -3.333333333333333e-02, 3.333333333333333e-02, 1.333333333333333e-01, 1.333333333333333e-01, -1.333333333333333e-01, 4.444444444444444e-02, 0.000000000000000e+00, 8.888888888888888e-02, 8.888888888888888e-02, 0.000000000000000e+00, 8.888888888888888e-02, 1.904761904761875e-02, 3.174603174602916e-02, -6.349206349205234e-03},
{ 1.666666666666667e-02, 5.000000000000000e-02, 1.666666666666667e-02, 6.666666666666667e-02, 6.666666666666667e-02, -6.666666666666667e-02, 4.126984126983681e-02, 1.269841269841107e-02, 0.000000000000000e+00, -1.269841269841133e-02, -3.174603174602827e-02, 3.174603174602915e-02, 1.428571428571277e-02, 1.349206349206224e-02, 3.968253968253461e-03},
{ 1.666666666666667e-02, 1.666666666666667e-02, 1.666666666666667e-02, 6.666666666666667e-02, 2.222222222222222e-02, -6.666666666666667e-02, 2.857142857142564e-02, 9.523809523808133e-03, 1.904761904761785e-02, 0.000000000000000e+00, 0.000000000000000e+00, 1.904761904761872e-02, 7.142857142856706e-03, 1.428571428571270e-02, 2.380952380952101e-03},
{ -5.555555555555556e-03, -2.777777777777778e-02, -5.555555555555556e-03, -2.222222222222222e-02, 2.222222222222222e-02, 2.222222222222222e-02, -1.587301587301370e-02, -9.523809523808161e-03, 1.269841269841077e-02, 1.904761904761841e-02, 6.349206349205532e-03, 6.349206349205242e-03, -2.380952380952081e-03, -3.968253968253467e-03, -4.761904761904008e-03}
};
const fp_t T2D11_P2[15][15] = {
{ 1.250000000000000e-01, 4.166666666666667e-02, -4.166666666666667e-02, 0.000000000000000e+00, 1.666666666666667e-01, -1.666666666666667e-01, 5.000000000000000e-02, -5.000000000000000e-02, 0.000000000000000e+00, -3.333333333333333e-02, 3.333333333333333e-02, 0.000000000000000e+00, 3.333333333333333e-02, 2.222222222222222e-02, -2.222222222222222e-02},
{ 4.166666666666667e-02, 4.166666666666667e-02, -4.166666666666667e-02, 0.000000000000000e+00, 1.666666666666667e-01, -1.666666666666667e-01, 3.333333333333333e-02, -3.333333333333333e-02, 0.000000000000000e+00, 3.333333333333333e-02, -3.333333333333333e-02, 0.000000000000000e+00, 3.333333333333333e-02, 1.111111111111111e-02, -1.111111111111111e-02},
{ -4.166666666666667e-02, -4.166666666666667e-02, 4.166666666666667e-02, 0.000000000000000e+00, -1.666666666666667e-01, 1.666666666666667e-01, -3.333333333333333e-02, 3.333333333333333e-02, 0.000000000000000e+00, -3.333333333333333e-02, 3.333333333333333e-02, 0.000000000000000e+00, -3.333333333333333e-02, -1.111111111111111e-02, 1.111111111111111e-02},
{ 0.000000000000000e+00, 0.000000000000000e+00, 0.000000000000000e+00, 6.666666666666667e-01, 0.000000000000000e+00, 0.000000000000000e+00, 6.666666666666667e-02, 6.666666666666667e-02, 0.000000000000000e+00, 1.333333333333333e-01, 1.333333333333333e-01, 2.666666666666667e-01, 0.000000000000000e+00, 4.444444444444444e-02, 4.444444444444444e-02},
{ 1.666666666666667e-01, 1.666666666666667e-01, -1.666666666666667e-01, 0.000000000000000e+00, 6.666666666666667e-01, -6.666666666666667e-01, 1.333333333333333e-01, -1.333333333333333e-01, 0.000000000000000e+00, 1.333333333333333e-01, -1.333333333333333e-01, 0.000000000000000e+00, 1.333333333333333e-01, 4.444444444444444e-02, -4.444444444444444e-02},
{ -1.666666666666667e-01, -1.666666666666667e-01, 1.666666666666667e-01, 0.000000000000000e+00, -6.666666666666667e-01, 6.666666666666667e-01, -1.333333333333333e-01, 1.333333333333333e-01, 0.000000000000000e+00, -1.333333333333333e-01, 1.333333333333333e-01, 0.000000000000000e+00, -1.333333333333333e-01, -4.444444444444444e-02, 4.444444444444444e-02},
{ 5.000000000000000e-02, 3.333333333333333e-02, -3.333333333333333e-02, 6.666666666666667e-02, 1.333333333333333e-01, -1.333333333333333e-01, 4.444444444444444e-02, -2.222222222222222e-02, 0.000000000000000e+00, 2.222222222222222e-02, 2.222222222222222e-02, 4.444444444444444e-02, 2.857142857142567e-02, 1.904761904761747e-02, -6.349206349205584e-03},
{ -5.000000000000000e-02, -3.333333333333333e-02, 3.333333333333333e-02, 6.666666666666667e-02, -1.333333333333333e-01, 1.333333333333333e-01, -2.222222222222222e-02, 4.444444444444444e-02, 0.000000000000000e+00, 2.222222222222222e-02, 2.222222222222222e-02, 4.444444444444444e-02, -2.857142857142569e-02, -6.349206349205543e-03, 1.904761904761752e-02},
{ 0.000000000000000e+00, 0.000000000000000e+00, 0.000000000000000e+00, 0.000000000000000e+00, 0.000000000000000e+00, 0.000000000000000e+00, 0.000000000000000e+00, 0.000000000000000e+00, 2.666666666666667e-01, 0.000000000000000e+00, 0.000000000000000e+00, 0.000000000000000e+00, 0.000000000000000e+00, 6.349206349207027e-03, -6.349206349207055e-03},
{ -3.333333333333333e-02, 3.333333333333333e-02, -3.333333333333333e-02, 1.333333333333333e-01, 1.333333333333333e-01, -1.333333333333333e-01, 2.222222222222222e-02, 2.222222222222222e-02, 0.000000000000000e+00, 1.777777777777778e-01, -8.888888888888888e-02, 8.888888888888888e-02, 1.904761904761696e-02, 6.349206349206436e-03, 1.904761904761754e-02},
{ 3.333333333333333e-02, -3.333333333333333e-02, 3.333333333333333e-02, 1.333333333333333e-01, -1.333333333333333e-01, 1.333333333333333e-01, 2.222222222222222e-02, 2.222222222222222e-02, 0.000000000000000e+00, -8.888888888888888e-02, 1.777777777777778e-01, 8.888888888888888e-02, -1.904761904761694e-02, 1.904761904761747e-02, 6.349206349206436e-03},
{ 0.000000000000000e+00, 0.000000000000000e+00, 0.000000000000000e+00, 2.666666666666667e-01, 0.000000000000000e+00, 0.000000000000000e+00, 4.444444444444444e-02, 4.444444444444444e-02, 0.000000000000000e+00, 8.888888888888888e-02, 8.888888888888888e-02, 1.777777777777778e-01, 0.000000000000000e+00, 2.539682539682394e-02, 2.539682539682399e-02},
{ 3.333333333333333e-02, 3.333333333333333e-02, -3.333333333333333e-02, 0.000000000000000e+00, 1.333333333333333e-01, -1.333333333333333e-01, 2.857142857142569e-02, -2.857142857142569e-02, 0.000000000000000e+00, 1.904761904761694e-02, -1.904761904761693e-02, 0.000000000000000e+00, 2.857142857142548e-02, 9.523809523808779e-03, -9.523809523808789e-03},
{ 2.222222222222222e-02, 1.111111111111111e-02, -1.111111111111111e-02, 4.444444444444444e-02, 4.444444444444444e-02, -4.444444444444444e-02, 1.904761904761745e-02, -6.349206349205536e-03, 6.349206349207027e-03, 6.349206349206440e-03, 1.904761904761750e-02, 2.539682539682396e-02, 9.523809523808775e-03, 9.523809523808692e-03, -1.587301587301382e-03},
{ -2.222222222222222e-02, -1.111111111111111e-02, 1.111111111111111e-02, 4.444444444444444e-02, -4.444444444444444e-02, 4.444444444444444e-02, -6.349206349205591e-03, 1.904761904761752e-02, -6.349206349207066e-03, 1.904761904761752e-02, 6.349206349206420e-03, 2.539682539682397e-02, -9.523809523808786e-03, -1.587301587301391e-03, 9.523809523808716e-03}
};
#endif