Files
concrete/compiler/lib/Support/V0Parameters.cpp
2021-09-27 13:37:11 +02:00

113 lines
6.3 KiB
C++

/// DO NOT MANUALLY EDIT THIS FILE.
/// This file was generated thanks the "parameters optimizer".
/// We should include this in our build system, but for moment it is just a cc
/// from the optimizer output.
#include "zamalang/Support/V0Parameters.h"
namespace mlir {
namespace zamalang {
using namespace std;
const int NORM2_MAX = 20;
const int P_MAX = 7;
V0Parameter parameters[NORM2_MAX][P_MAX] = {
{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(0, 0, 0, 0, 0, 0, 0)},
{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(0, 0, 0, 0, 0, 0, 0)},
{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(0, 0, 0, 0, 0, 0, 0)},
{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, 15, 5, 3),
V0Parameter(0, 0, 0, 0, 0, 0, 0)},
{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(0, 0, 0, 0, 0, 0, 0)},
{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, 16, 5, 3),
V0Parameter(0, 0, 0, 0, 0, 0, 0)},
{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(0, 0, 0, 0, 0, 0, 0)},
{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, 16, 5, 3),
V0Parameter(0, 0, 0, 0, 0, 0, 0)},
{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, 15, 4, 3),
V0Parameter(1, 11, 736, 2, 15, 5, 3), V0Parameter(1, 12, 809, 2, 15, 5, 3),
V0Parameter(0, 0, 0, 0, 0, 0, 0)},
{V0Parameter(1, 11, 555, 1, 23, 5, 2), V0Parameter(1, 11, 579, 2, 15, 5, 2),
V0Parameter(1, 11, 638, 2, 16, 4, 3), V0Parameter(1, 11, 689, 2, 15, 4, 3),
V0Parameter(1, 11, 737, 2, 16, 5, 3), V0Parameter(1, 12, 818, 2, 15, 5, 3),
V0Parameter(0, 0, 0, 0, 0, 0, 0)},
{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, 16, 5, 3), V0Parameter(1, 12, 832, 2, 15, 9, 2),
V0Parameter(0, 0, 0, 0, 0, 0, 0)},
{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(0, 0, 0, 0, 0, 0, 0)},
{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(0, 0, 0, 0, 0, 0, 0)},
{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(0, 0, 0, 0, 0, 0, 0)},
{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(0, 0, 0, 0, 0, 0, 0)},
{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(0, 0, 0, 0, 0, 0, 0)},
{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(0, 0, 0, 0, 0, 0, 0)},
{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(0, 0, 0, 0, 0, 0, 0)},
{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(0, 0, 0, 0, 0, 0, 0)},
{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(0, 0, 0, 0, 0, 0, 0)}};
V0Parameter *getV0Parameter(V0FHEConstraint constraint) {
if (constraint.norm2 > NORM2_MAX) {
return nullptr;
}
if (constraint.p > P_MAX) {
return nullptr;
}
// - 1 is an offset as norm and p are in [1, ...] and not [0, ...]
auto param = &parameters[constraint.norm2 - 1][constraint.p - 1];
if (param->k == 0) {
return nullptr;
}
return param;
}
} // namespace zamalang
} // namespace mlir