Files
concrete/backends/concrete-cuda/implementation/parameters/parameters.cpp
2023-03-10 11:13:29 +01:00

381 lines
21 KiB
C++

#include <iostream>
using namespace std;
const int NORM2_MAX = 31;
const int P_MAX = 7;
typedef struct V0Parameter {
int k;
int polynomialSize;
int nSmall;
int brLevel;
int brLogBase;
int ksLevel;
int ksLogBase;
V0Parameter(int k_, int polynomialSize_, int nSmall_, int brLevel_,
int brLogBase_, int ksLevel_, int ksLogBase_) {
k = k_;
polynomialSize = polynomialSize_;
nSmall = nSmall_;
brLevel = brLevel_;
brLogBase = brLogBase_;
ksLevel = ksLevel_;
ksLogBase = ksLogBase_;
}
} V0Parameter;
typedef struct V0Variances {
float logstdEncrypt;
float logstdDecrypt;
V0Variances(float logstdEncrypt_, float logstdDecrypt_) {
logstdEncrypt = logstdEncrypt_;
logstdDecrypt = logstdDecrypt_;
}
} V0Variances;
V0Parameter parameters[NORM2_MAX][P_MAX] = {
{V0Parameter(1, 10, 472, 2, 8, 4, 2), V0Parameter(1, 10, 514, 2, 8, 5, 2),
V0Parameter(1, 10, 564, 2, 8, 5, 2), V0Parameter(1, 10, 599, 3, 6, 6, 2),
V0Parameter(1, 10, 686, 3, 6, 7, 2), V0Parameter(1, 11, 736, 1, 23, 5, 3),
V0Parameter(1, 12, 830, 1, 23, 4, 4)},
{V0Parameter(1, 10, 474, 2, 8, 4, 2), V0Parameter(1, 10, 519, 2, 8, 5, 2),
V0Parameter(1, 10, 558, 3, 6, 5, 2), V0Parameter(1, 10, 610, 3, 6, 6, 2),
V0Parameter(1, 11, 689, 1, 23, 4, 3), V0Parameter(1, 11, 736, 1, 23, 5, 3),
V0Parameter(1, 12, 831, 1, 23, 4, 4)},
{V0Parameter(1, 10, 479, 2, 8, 4, 2), V0Parameter(1, 10, 515, 3, 6, 5, 2),
V0Parameter(1, 10, 569, 3, 6, 5, 2), V0Parameter(1, 11, 638, 1, 23, 4, 3),
V0Parameter(1, 11, 689, 1, 23, 4, 3), V0Parameter(1, 11, 737, 1, 23, 5, 3),
V0Parameter(1, 12, 840, 1, 23, 4, 4)},
{V0Parameter(1, 10, 531, 2, 8, 5, 2), V0Parameter(1, 10, 523, 3, 6, 5, 2),
V0Parameter(1, 11, 598, 1, 23, 4, 3), V0Parameter(1, 11, 639, 1, 23, 4, 3),
V0Parameter(1, 11, 690, 1, 23, 4, 3), V0Parameter(1, 11, 739, 1, 23, 5, 3),
V0Parameter(1, 12, 806, 2, 16, 5, 3)},
{V0Parameter(1, 10, 483, 3, 6, 4, 2), V0Parameter(1, 11, 563, 1, 23, 3, 3),
V0Parameter(1, 11, 598, 1, 23, 4, 3), V0Parameter(1, 11, 639, 1, 23, 4, 3),
V0Parameter(1, 11, 691, 1, 23, 4, 3), V0Parameter(1, 11, 748, 1, 23, 5, 3),
V0Parameter(1, 12, 806, 2, 15, 5, 3)},
{V0Parameter(1, 11, 497, 1, 23, 4, 2), V0Parameter(1, 11, 563, 1, 23, 3, 3),
V0Parameter(1, 11, 598, 1, 23, 4, 3), V0Parameter(1, 11, 640, 1, 23, 4, 3),
V0Parameter(1, 11, 699, 1, 23, 4, 3), V0Parameter(1, 11, 736, 2, 15, 5, 3),
V0Parameter(1, 12, 806, 2, 15, 5, 3)},
{V0Parameter(1, 11, 497, 1, 23, 4, 2), V0Parameter(1, 11, 563, 1, 23, 3, 3),
V0Parameter(1, 11, 599, 1, 23, 4, 3), V0Parameter(1, 11, 643, 1, 23, 4, 3),
V0Parameter(1, 11, 721, 1, 23, 5, 3), V0Parameter(1, 11, 736, 2, 15, 5, 3),
V0Parameter(1, 12, 806, 2, 15, 5, 3)},
{V0Parameter(1, 11, 497, 1, 23, 4, 2), V0Parameter(1, 11, 564, 1, 23, 3, 3),
V0Parameter(1, 11, 602, 1, 23, 4, 3), V0Parameter(1, 11, 671, 1, 23, 4, 3),
V0Parameter(1, 11, 689, 2, 15, 4, 3), V0Parameter(1, 11, 736, 2, 15, 5, 3),
V0Parameter(1, 12, 807, 2, 15, 5, 3)},
{V0Parameter(1, 11, 498, 1, 23, 4, 2), V0Parameter(1, 11, 569, 1, 23, 3, 3),
V0Parameter(1, 11, 622, 1, 23, 4, 3), V0Parameter(1, 11, 638, 2, 15, 4, 3),
V0Parameter(1, 11, 689, 2, 16, 4, 3), V0Parameter(1, 11, 736, 2, 16, 5, 3),
V0Parameter(1, 12, 809, 2, 15, 5, 3)},
{V0Parameter(1, 11, 502, 1, 23, 4, 2), V0Parameter(1, 11, 555, 1, 23, 5, 2),
V0Parameter(1, 11, 579, 2, 15, 5, 2), V0Parameter(1, 11, 638, 2, 15, 4, 3),
V0Parameter(1, 11, 689, 2, 15, 4, 3), V0Parameter(1, 11, 737, 2, 15, 5, 3),
V0Parameter(1, 12, 818, 2, 15, 5, 3)},
{V0Parameter(1, 11, 537, 1, 23, 3, 3), V0Parameter(1, 11, 532, 2, 15, 5, 2),
V0Parameter(1, 11, 579, 2, 15, 5, 2), V0Parameter(1, 11, 638, 2, 15, 4, 3),
V0Parameter(1, 11, 690, 2, 15, 4, 3), V0Parameter(1, 11, 738, 2, 15, 5, 3),
V0Parameter(1, 12, 832, 2, 15, 9, 2)},
{V0Parameter(1, 11, 497, 2, 15, 4, 2), V0Parameter(1, 11, 532, 2, 15, 5, 2),
V0Parameter(1, 11, 579, 2, 15, 5, 2), V0Parameter(1, 11, 639, 2, 15, 4, 3),
V0Parameter(1, 11, 691, 2, 15, 4, 3), V0Parameter(1, 11, 743, 2, 16, 5, 3),
V0Parameter(1, 12, 807, 3, 12, 5, 3)},
{V0Parameter(1, 11, 497, 2, 15, 4, 2), V0Parameter(1, 11, 532, 2, 15, 5, 2),
V0Parameter(1, 11, 579, 2, 16, 5, 2), V0Parameter(1, 11, 639, 2, 15, 4, 3),
V0Parameter(1, 11, 695, 2, 16, 4, 3),
V0Parameter(1, 11, 757, 2, 16, 16, 1),
V0Parameter(1, 12, 811, 3, 12, 5, 3)},
{V0Parameter(1, 11, 497, 2, 16, 4, 2), V0Parameter(1, 11, 533, 2, 15, 5, 2),
V0Parameter(1, 11, 580, 2, 15, 5, 2), V0Parameter(1, 11, 641, 2, 16, 4, 3),
V0Parameter(1, 11, 699, 2, 16, 5, 3), V0Parameter(1, 11, 737, 3, 12, 5, 3),
V0Parameter(1, 12, 788, 3, 12, 8, 2)},
{V0Parameter(1, 11, 497, 2, 16, 4, 2), V0Parameter(1, 11, 533, 2, 15, 5, 2),
V0Parameter(1, 11, 583, 2, 16, 5, 2), V0Parameter(1, 11, 653, 2, 16, 4, 3),
V0Parameter(1, 11, 665, 3, 12, 6, 2), V0Parameter(1, 11, 738, 3, 12, 5, 3),
V0Parameter(1, 12, 775, 4, 9, 8, 2)},
{V0Parameter(1, 11, 498, 2, 15, 4, 2), V0Parameter(1, 11, 535, 2, 16, 5, 2),
V0Parameter(1, 11, 610, 2, 16, 4, 3), V0Parameter(1, 11, 614, 3, 12, 6, 2),
V0Parameter(1, 11, 666, 3, 12, 6, 2), V0Parameter(1, 11, 747, 3, 12, 5, 3),
V0Parameter(1, 12, 782, 4, 9, 8, 2)},
{V0Parameter(1, 11, 500, 2, 16, 4, 2), V0Parameter(1, 11, 544, 2, 16, 5, 2),
V0Parameter(1, 11, 580, 3, 12, 5, 2), V0Parameter(1, 11, 615, 3, 12, 6, 2),
V0Parameter(1, 11, 661, 3, 12, 7, 2), V0Parameter(1, 11, 715, 4, 9, 7, 2),
V0Parameter(1, 12, 778, 5, 8, 8, 2)},
{V0Parameter(1, 11, 513, 2, 16, 4, 2), V0Parameter(1, 11, 533, 3, 12, 5, 2),
V0Parameter(1, 11, 581, 3, 12, 5, 2), V0Parameter(1, 11, 618, 3, 12, 6, 2),
V0Parameter(1, 11, 687, 3, 12, 7, 2), V0Parameter(1, 11, 726, 4, 9, 7, 2),
V0Parameter(1, 12, 809, 5, 8, 8, 2)},
{V0Parameter(1, 11, 497, 3, 12, 4, 2), V0Parameter(1, 11, 533, 3, 12, 5, 2),
V0Parameter(1, 11, 585, 3, 12, 5, 2), V0Parameter(1, 11, 639, 3, 12, 6, 2),
V0Parameter(1, 11, 662, 4, 9, 7, 2), V0Parameter(1, 11, 717, 5, 8, 7, 2),
V0Parameter(1, 12, 820, 6, 7, 9, 2)},
{V0Parameter(1, 11, 498, 3, 12, 4, 2), V0Parameter(1, 11, 536, 3, 12, 5, 2),
V0Parameter(1, 11, 593, 3, 12, 6, 2), V0Parameter(1, 11, 619, 4, 9, 6, 2),
V0Parameter(1, 11, 693, 4, 9, 7, 2), V0Parameter(1, 11, 737, 5, 8, 7, 2),
V0Parameter(1, 12, 788, 8, 5, 8, 2)},
{V0Parameter(1, 11, 502, 3, 12, 4, 2), V0Parameter(1, 11, 552, 3, 12, 5, 2),
V0Parameter(1, 11, 585, 4, 9, 5, 2), V0Parameter(1, 11, 644, 4, 9, 6, 2),
V0Parameter(1, 11, 665, 5, 8, 7, 2), V0Parameter(1, 11, 736, 6, 7, 8, 2),
V0Parameter(1, 12, 786, 11, 4, 8, 2)},
{V0Parameter(1, 11, 508, 3, 12, 5, 2), V0Parameter(1, 11, 536, 4, 9, 5, 2),
V0Parameter(1, 11, 596, 4, 9, 6, 2), V0Parameter(1, 11, 621, 5, 8, 6, 2),
V0Parameter(1, 11, 667, 6, 7, 7, 2), V0Parameter(1, 11, 746, 7, 6, 8, 2),
V0Parameter(1, 12, 798, 14, 3, 9, 2)},
{V0Parameter(1, 11, 502, 4, 9, 4, 2), V0Parameter(1, 11, 555, 4, 9, 5, 2),
V0Parameter(1, 11, 580, 5, 8, 6, 2), V0Parameter(1, 11, 623, 6, 7, 6, 2),
V0Parameter(1, 11, 669, 7, 6, 7, 2), V0Parameter(1, 11, 723, 11, 4, 7, 2),
V0Parameter(1, 12, 814, 22, 2, 9, 2)},
{V0Parameter(1, 11, 510, 4, 9, 5, 2), V0Parameter(1, 11, 539, 5, 8, 5, 2),
V0Parameter(1, 11, 636, 5, 8, 6, 2), V0Parameter(1, 11, 625, 7, 6, 6, 2),
V0Parameter(1, 11, 674, 9, 5, 7, 2), V0Parameter(1, 11, 735, 14, 3, 8, 2),
V0Parameter(0, 0, 0, 0, 0, 0, 0)},
{V0Parameter(1, 11, 498, 5, 8, 5, 2), V0Parameter(1, 11, 579, 5, 8, 6, 2),
V0Parameter(1, 11, 583, 7, 6, 6, 2), V0Parameter(1, 11, 661, 8, 5, 7, 2),
V0Parameter(1, 11, 681, 11, 4, 7, 2), V0Parameter(1, 11, 736, 22, 2, 8, 2),
V0Parameter(0, 0, 0, 0, 0, 0, 0)},
{V0Parameter(1, 11, 530, 5, 8, 5, 2), V0Parameter(1, 11, 541, 7, 6, 5, 2),
V0Parameter(1, 11, 611, 8, 5, 6, 2), V0Parameter(1, 11, 635, 11, 4, 6, 2),
V0Parameter(1, 11, 704, 15, 3, 7, 2), V0Parameter(0, 0, 0, 0, 0, 0, 0),
V0Parameter(0, 0, 0, 0, 0, 0, 0)},
{V0Parameter(1, 11, 565, 6, 7, 5, 2), V0Parameter(1, 11, 569, 8, 5, 5, 2),
V0Parameter(1, 11, 590, 11, 4, 6, 2), V0Parameter(1, 11, 647, 15, 3, 7, 2),
V0Parameter(1, 11, 679, 44, 1, 14, 1), V0Parameter(0, 0, 0, 0, 0, 0, 0),
V0Parameter(0, 0, 0, 0, 0, 0, 0)},
{V0Parameter(1, 11, 520, 8, 5, 5, 2), V0Parameter(1, 11, 549, 11, 4, 5, 2),
V0Parameter(1, 11, 600, 15, 3, 6, 2),
V0Parameter(1, 11, 628, 44, 1, 13, 1), V0Parameter(0, 0, 0, 0, 0, 0, 0),
V0Parameter(0, 0, 0, 0, 0, 0, 0), V0Parameter(0, 0, 0, 0, 0, 0, 0)},
{V0Parameter(1, 11, 506, 11, 4, 5, 2), V0Parameter(1, 11, 559, 15, 3, 5, 2),
V0Parameter(1, 11, 584, 44, 1, 12, 1), V0Parameter(0, 0, 0, 0, 0, 0, 0),
V0Parameter(0, 0, 0, 0, 0, 0, 0), V0Parameter(0, 0, 0, 0, 0, 0, 0),
V0Parameter(0, 0, 0, 0, 0, 0, 0)},
{V0Parameter(1, 11, 503, 15, 3, 9, 1),
V0Parameter(1, 11, 594, 23, 2, 12, 1), V0Parameter(0, 0, 0, 0, 0, 0, 0),
V0Parameter(0, 0, 0, 0, 0, 0, 0), V0Parameter(0, 0, 0, 0, 0, 0, 0),
V0Parameter(0, 0, 0, 0, 0, 0, 0), V0Parameter(0, 0, 0, 0, 0, 0, 0)},
{V0Parameter(1, 11, 545, 22, 2, 11, 1), V0Parameter(0, 0, 0, 0, 0, 0, 0),
V0Parameter(0, 0, 0, 0, 0, 0, 0), V0Parameter(0, 0, 0, 0, 0, 0, 0),
V0Parameter(0, 0, 0, 0, 0, 0, 0), V0Parameter(0, 0, 0, 0, 0, 0, 0),
V0Parameter(0, 0, 0, 0, 0, 0, 0)}};
V0Variances variances[NORM2_MAX][P_MAX] = {
{V0Variances(-7.186489389863581, -8.186489389863581),
V0Variances(-7.124998639947563, -8.124998639947563),
V0Variances(-7.058035238345106, -8.058035238345106),
V0Variances(-8.771444355069676, -9.771444355069676),
V0Variances(-8.673618068377664, -9.673618068377664),
V0Variances(-14.282552902365403, -15.282552902365403),
V0Variances(-13.46973411689919, -14.46973411689919)},
{V0Variances(-6.183439290095372, -8.183439290095372),
V0Variances(-6.118015550365563, -8.118015550365563),
V0Variances(-7.822589795549476, -9.822589795549476),
V0Variances(-7.758317735238947, -9.758317735238947),
V0Variances(-13.330153794041763, -15.330153794041763),
V0Variances(-13.282552902365403, -15.282552902365403),
V0Variances(-12.468865546631157, -14.468865546631157)},
{V0Variances(-5.175869991676414, -8.175869991676414),
V0Variances(-6.8804361404287775, -9.880436140428777),
V0Variances(-6.808508030310776, -9.808508030310776),
V0Variances(-12.38562757351147, -15.38562757351147),
V0Variances(-12.330153794041763, -15.330153794041763),
V0Variances(-12.281573475846372, -15.281573475846372),
V0Variances(-11.46109512118327, -14.46109512118327)},
{V0Variances(-4.101526889142427, -8.101526889142427),
V0Variances(-5.869316883340595, -9.869316883340595),
V0Variances(-11.432333043294854, -15.432333043294854),
V0Variances(-11.384497819920412, -15.384497819920412),
V0Variances(-11.329107604561145, -15.329107604561145),
V0Variances(-11.279618603320834, -15.279618603320834),
V0Variances(-17.494100927447505, -21.494100927447505)},
{V0Variances(-4.926710762046184, -9.926710762046184),
V0Variances(-10.475838324353795, -15.475838324353795),
V0Variances(-10.432333043294854, -15.432333043294854),
V0Variances(-10.384497819920412, -15.384497819920412),
V0Variances(-10.328062930199778, -15.328062930199778),
V0Variances(-10.270886650450088, -15.270886650450088),
V0Variances(-16.68961710493341, -21.68961710493341)},
{V0Variances(-9.565782859612767, -15.565782859612767),
V0Variances(-9.475838324353795, -15.475838324353795),
V0Variances(-9.432333043294854, -15.432333043294854),
V0Variances(-9.38336983295023, -15.38336983295023),
V0Variances(-9.319759557706192, -15.319759557706192),
V0Variances(-16.395716120060897, -22.395716120060897),
V0Variances(-15.689617104933411, -21.68961710493341)},
{V0Variances(-8.565782859612767, -15.565782859612767),
V0Variances(-8.475838324353795, -15.475838324353795),
V0Variances(-8.431127783999514, -15.431127783999514),
V0Variances(-8.37999641672993, -15.37999641672993),
V0Variances(-8.297406155773494, -15.297406155773494),
V0Variances(-15.395716120060897, -22.395716120060897),
V0Variances(-14.689617104933411, -21.68961710493341)},
{V0Variances(-7.565782859612767, -15.565782859612767),
V0Variances(-7.4745582041945084, -15.474558204194508),
V0Variances(-7.427524042014056, -15.427524042014056),
V0Variances(-7.349249402293815, -15.349249402293815),
V0Variances(-14.443317011737257, -22.443317011737257),
V0Variances(-14.395716120060897, -22.395716120060897),
V0Variances(-13.688722687558503, -21.688722687558503)},
{V0Variances(-6.564332914359866, -15.564332914359866),
V0Variances(-6.4681914592406144, -15.468191459240614),
V0Variances(-6.403948495328606, -15.403948495328606),
V0Variances(-13.498790791206964, -22.498790791206964),
V0Variances(-13.669055725537874, -22.669055725537874),
V0Variances(-13.621454833861513, -22.621454833861513),
V0Variances(-12.686937172982404, -21.686937172982404)},
{V0Variances(-5.558562103418524, -15.558562103418524),
V0Variances(-5.486161899775176, -15.486161899775176),
V0Variances(-12.568787329094782, -22.568787329094782),
V0Variances(-12.498790791206964, -22.498790791206964),
V0Variances(-12.443317011737257, -22.443317011737257),
V0Variances(-12.394736693541866, -22.394736693541866),
V0Variances(-11.678956602726522, -21.678956602726522)},
{V0Variances(-4.509944741401199, -15.509944741401199),
V0Variances(-11.629855880338809, -22.62985588033881),
V0Variances(-11.568787329094782, -22.568787329094782),
V0Variances(-11.498790791206964, -22.498790791206964),
V0Variances(-11.442270822256638, -22.44227082225664),
V0Variances(-11.393758595059204, -22.393758595059204),
V0Variances(-10.66671526012685, -21.66671526012685)},
{V0Variances(-10.678946077308261, -22.67894607730826),
V0Variances(-10.629855880338809, -22.62985588033881),
V0Variances(-10.568787329094782, -22.568787329094782),
V0Variances(-10.497661037615906, -22.497661037615906),
V0Variances(-10.441226147895271, -22.44122614789527),
V0Variances(-10.614626611620722, -22.61462661162072),
V0Variances(-13.208593433538631, -25.20859343353863)},
{V0Variances(-9.678946077308261, -22.67894607730826),
V0Variances(-9.629855880338809, -22.62985588033881),
V0Variances(-9.794526042895399, -22.7945260428954),
V0Variances(-9.497661037615906, -22.497661037615906),
V0Variances(-9.662801228084582, -22.662801228084582),
V0Variances(-9.601161066897156, -22.601161066897156),
V0Variances(-12.205026813068883, -25.205026813068883)},
{V0Variances(-8.904684791108878, -22.904684791108878),
V0Variances(-8.628501236709816, -22.628501236709816),
V0Variances(-8.567542553081935, -22.567542553081935),
V0Variances(-8.72114553858065, -22.72114553858065),
V0Variances(-8.658661489202302, -22.658661489202302),
V0Variances(-12.345258643192501, -26.3452586431925),
V0Variances(-11.225779955449333, -25.225779955449333)},
{V0Variances(-7.904684791108878, -22.904684791108878),
V0Variances(-7.628501236709816, -22.628501236709816),
V0Variances(-7.789559775289774, -22.789559775289774),
V0Variances(-7.707766221116806, -22.707766221116806),
V0Variances(-11.41941378254576, -26.41941378254576),
V0Variances(-11.34428054470984, -26.34428054470984),
V0Variances(-12.519191629935513, -27.519191629935513)},
{V0Variances(-6.67749613205536, -22.67749613205536),
V0Variances(-6.851538271245765, -22.851538271245765),
V0Variances(-6.756903095664896, -22.756903095664896),
V0Variances(-10.476971625054944, -26.476971625054944),
V0Variances(-10.418329864204402, -26.418329864204402),
V0Variances(-10.335536831345415, -26.335536831345415),
V0Variances(-11.512705481362637, -27.512705481362637)},
{V0Variances(-5.900343669558978, -22.90034366955898),
V0Variances(-5.839504391264846, -22.839504391264846),
V0Variances(-9.518064502732571, -26.51806450273257),
V0Variances(-9.475797747626736, -26.475797747626736),
V0Variances(-9.42376581698619, -26.42376581698619),
V0Variances(-11.303434156979073, -28.303434156979073),
V0Variances(-11.872866817284404, -28.872866817284404)},
{V0Variances(-4.88182830408649, -22.88182830408649),
V0Variances(-8.579023186360452, -26.579023186360452),
V0Variances(-8.51682187103777, -26.51682187103777),
V0Variances(-8.47228753378785, -26.47228753378785),
V0Variances(-8.395935903330987, -26.395935903330987),
V0Variances(-10.292421003814077, -28.292421003814077),
V0Variances(-10.844682043562514, -28.844682043562514)},
{V0Variances(-7.629468026958897, -26.629468026958897),
V0Variances(-7.579023186360452, -26.579023186360452),
V0Variances(-7.511872640504656, -26.511872640504656),
V0Variances(-7.4481829872665415, -26.44818298726654),
V0Variances(-9.358990169408344, -28.358990169408344),
V0Variances(-11.010736901553656, -30.010736901553656),
V0Variances(-10.711045072243067, -29.711045072243067)},
{V0Variances(-6.628018081705996, -26.628018081705996),
V0Variances(-6.5749744525111495, -26.57497445251115),
V0Variances(-6.502074900467036, -26.502074900467036),
V0Variances(-8.40743607320482, -28.40743607320482),
V0Variances(-8.325978101743345, -28.325978101743345),
V0Variances(-9.990891151357076, -29.990891151357076),
V0Variances(-11.223620949776631, -31.22362094977663)},
{V0Variances(-5.622247270764653, -26.622247270764653),
V0Variances(-5.5537568193509514, -26.55375681935095),
V0Variances(-7.4481874655765665, -28.448187465576567),
V0Variances(-7.378875433754644, -28.378875433754644),
V0Variances(-9.065046290710335, -30.065046290710335),
V0Variances(-9.877481950164196, -30.877481950164196),
V0Variances(-11.301978588237922, -32.30197858823793)},
{V0Variances(-4.613676704353956, -26.613676704353956),
V0Variances(-6.511289277583067, -28.511289277583067),
V0Variances(-6.434749612580873, -28.434749612580873),
V0Variances(-8.114426826794364, -30.114426826794364),
V0Variances(-8.948491452600415, -30.948491452600415),
V0Variances(-9.745555749635251, -31.74555574963525),
V0Variances(-10.928045032645045, -32.928045032645045)},
{V0Variances(-5.558562095836564, -28.558562095836564),
V0Variances(-5.486161892193216, -28.486161892193216),
V0Variances(-7.163697010897138, -30.16369701089714),
V0Variances(-7.997718751680708, -30.997718751680708),
V0Variances(-8.824140459442134, -31.824140459442134),
V0Variances(-10.447705621458134, -33.447705621458134),
V0Variances(-10.746667774832375, -33.746667774832375)},
{V0Variances(-4.547157154382525, -28.547157154382525),
V0Variances(-6.216580824528357, -30.216580824528357),
V0Variances(-6.097210078262428, -30.097210078262428),
V0Variances(-7.873215469988139, -31.87321546998814),
V0Variances(-8.652284365210448, -32.65228436521045),
V0Variances(-9.889772718943199, -33.8897727189432), V0Variances(0, 0)},
{V0Variances(-5.27365058987057, -30.27365058987057),
V0Variances(-5.164941786909992, -30.164941786909992),
V0Variances(-6.9233956231626195, -31.92339562316262),
V0Variances(-7.176178241418846, -32.17617824141885),
V0Variances(-8.490876045927656, -33.490876045927656),
V0Variances(-9.868458351961102, -34.86845835196111), V0Variances(0, 0)},
{V0Variances(-4.228727281179324, -30.228727281179324),
V0Variances(-5.977329267849463, -31.977329267849463),
V0Variances(-6.232917187263332, -32.232917187263325),
V0Variances(-7.541325149103926, -33.541325149103926),
V0Variances(-8.245745876084897, -34.2457458760849), V0Variances(0, 0),
V0Variances(0, 0)},
{V0Variances(-4.068209399541431, -31.06820939954143),
V0Variances(-5.284289051019407, -32.2842890510194),
V0Variances(-6.59434596780909, -33.59434596780909),
V0Variances(-7.306650734407292, -34.30665073440729),
V0Variances(-8.356857016386314, -35.356857016386314), V0Variances(0, 0),
V0Variances(0, 0)},
{V0Variances(-4.349247565658466, -32.349247565658466),
V0Variances(-5.646300370431092, -33.64630037043109),
V0Variances(-6.361052340155609, -34.36105234015561),
V0Variances(-7.4131805240628665, -35.41318052406287), V0Variances(0, 0),
V0Variances(0, 0), V0Variances(0, 0)},
{V0Variances(-4.705134752586538, -33.70513475258654),
V0Variances(-5.412109448981951, -34.41210944898195),
V0Variances(-6.465578619068673, -35.46557861906867), V0Variances(0, 0),
V0Variances(0, 0), V0Variances(0, 0), V0Variances(0, 0)},
{V0Variances(-4.488254390500785, -34.488254390500785),
V0Variances(-5.062180911982956, -35.062180911982956), V0Variances(0, 0),
V0Variances(0, 0), V0Variances(0, 0), V0Variances(0, 0),
V0Variances(0, 0)},
{V0Variances(-4.085183120157467, -35.08518312015747), V0Variances(0, 0),
V0Variances(0, 0), V0Variances(0, 0), V0Variances(0, 0), V0Variances(0, 0),
V0Variances(0, 0)}};
extern "C" V0Parameter *get_parameters(int norm, int p) {
// - 1 is an offset as norm and p are in [1, ...] and not [0, ...]
return &parameters[norm - 1][p - 1];
}
extern "C" V0Variances *get_variances(int norm, int p) {
// - 1 is an offset as norm and p are in [1, ...] and not [0, ...]
return &variances[norm - 1][p - 1];
}