Files
concrete/compiler/lib/Support/V0Parameters.cpp

180 lines
11 KiB
C++

// Part of the Concrete Compiler Project, under the BSD3 License with Zama
// Exceptions. See
// https://github.com/zama-ai/concrete-compiler-internal/blob/master/LICENSE.txt
// for license information.
/// 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 "concretelang/Support/V0Parameters.h"
namespace mlir {
namespace concretelang {
using namespace std;
const int NORM2_MAX = 31;
const int P_MAX = 8;
const static 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(1, 13, 869, 1, 23, 6, 3),
V0Parameter(1, 14, 933, 2, 15, 6, 3)},
{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, 832, 1, 23, 4, 4),
V0Parameter(1, 13, 860, 2, 15, 6, 3),
V0Parameter(1, 14, 934, 2, 15, 6, 3)},
{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, 842, 1, 23, 4, 4),
V0Parameter(1, 13, 860, 2, 15, 6, 3),
V0Parameter(1, 14, 934, 2, 15, 6, 3)},
{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(1, 13, 860, 2, 15, 6, 3),
V0Parameter(1, 14, 934, 2, 15, 6, 3)},
{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, 692, 1, 23, 4, 3),
V0Parameter(1, 11, 751, 1, 23, 5, 3), V0Parameter(1, 12, 806, 2, 15, 5, 3),
V0Parameter(1, 13, 860, 2, 16, 6, 3),
V0Parameter(1, 14, 936, 2, 15, 6, 3)},
{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, 700, 1, 23, 4, 3),
V0Parameter(1, 11, 736, 2, 15, 5, 3), V0Parameter(1, 12, 806, 2, 16, 5, 3),
V0Parameter(1, 13, 860, 2, 16, 6, 3),
V0Parameter(1, 14, 958, 2, 15, 5, 4)},
{V0Parameter(1, 11, 563, 1, 23, 3, 3), V0Parameter(1, 11, 599, 1, 23, 4, 3),
V0Parameter(1, 11, 644, 1, 23, 4, 3), V0Parameter(1, 11, 742, 1, 23, 5, 3),
V0Parameter(1, 11, 736, 2, 15, 5, 3), V0Parameter(1, 12, 806, 2, 15, 5, 3),
V0Parameter(1, 13, 861, 2, 15, 6, 3),
V0Parameter(1, 14, 957, 2, 15, 7, 3)},
{V0Parameter(1, 11, 564, 1, 23, 3, 3), V0Parameter(1, 11, 603, 1, 23, 4, 3),
V0Parameter(1, 11, 683, 1, 23, 4, 3), V0Parameter(1, 11, 689, 2, 16, 4, 3),
V0Parameter(1, 11, 736, 2, 15, 5, 3), V0Parameter(1, 12, 807, 2, 16, 5, 3),
V0Parameter(1, 13, 866, 2, 15, 6, 3),
V0Parameter(1, 14, 936, 3, 12, 6, 3)},
{V0Parameter(1, 11, 570, 1, 23, 3, 3), V0Parameter(1, 11, 629, 1, 23, 4, 3),
V0Parameter(1, 11, 638, 2, 16, 4, 3), V0Parameter(1, 11, 689, 2, 15, 4, 3),
V0Parameter(1, 11, 736, 2, 16, 5, 3), V0Parameter(1, 12, 809, 2, 15, 5, 3),
V0Parameter(1, 13, 914, 2, 15, 6, 3),
V0Parameter(1, 14, 928, 3, 12, 7, 3)},
{V0Parameter(1, 11, 560, 1, 23, 5, 2), V0Parameter(1, 11, 579, 2, 16, 5, 2),
V0Parameter(1, 11, 638, 2, 15, 4, 3), V0Parameter(1, 11, 689, 2, 15, 4, 3),
V0Parameter(1, 11, 737, 2, 16, 5, 3), V0Parameter(1, 12, 819, 2, 15, 5, 3),
V0Parameter(1, 13, 861, 3, 12, 6, 3),
V0Parameter(1, 14, 964, 3, 12, 7, 3)},
{V0Parameter(1, 11, 532, 2, 15, 5, 2), V0Parameter(1, 11, 579, 2, 16, 5, 2),
V0Parameter(1, 11, 638, 2, 16, 4, 3), V0Parameter(1, 11, 690, 2, 15, 4, 3),
V0Parameter(1, 11, 738, 2, 15, 5, 3), V0Parameter(1, 12, 807, 3, 12, 5, 3),
V0Parameter(1, 13, 864, 3, 12, 6, 3), V0Parameter(1, 14, 924, 4, 9, 7, 3)},
{V0Parameter(1, 11, 532, 2, 15, 5, 2), V0Parameter(1, 11, 579, 2, 15, 5, 2),
V0Parameter(1, 11, 639, 2, 16, 4, 3), V0Parameter(1, 11, 691, 2, 15, 4, 3),
V0Parameter(1, 11, 747, 2, 16, 5, 3), V0Parameter(1, 12, 808, 3, 12, 5, 3),
V0Parameter(1, 13, 890, 3, 12, 6, 3), V0Parameter(1, 14, 932, 4, 9, 7, 3)},
{V0Parameter(1, 11, 532, 2, 15, 5, 2), V0Parameter(1, 11, 580, 2, 15, 5, 2),
V0Parameter(1, 11, 639, 2, 15, 4, 3), V0Parameter(1, 11, 698, 2, 15, 4, 3),
V0Parameter(1, 11, 736, 3, 12, 5, 3), V0Parameter(1, 12, 813, 3, 12, 5, 3),
V0Parameter(1, 13, 862, 4, 9, 6, 3), V0Parameter(1, 14, 905, 5, 8, 10, 2)},
{V0Parameter(1, 11, 533, 2, 16, 5, 2), V0Parameter(1, 11, 581, 2, 15, 5, 2),
V0Parameter(1, 11, 643, 2, 16, 4, 3), V0Parameter(1, 11, 713, 2, 16, 5, 3),
V0Parameter(1, 11, 737, 3, 12, 5, 3), V0Parameter(1, 12, 795, 3, 12, 8, 2),
V0Parameter(1, 13, 869, 4, 9, 6, 3), V0Parameter(1, 14, 907, 6, 7, 10, 2)},
{V0Parameter(1, 11, 533, 2, 16, 5, 2), V0Parameter(1, 11, 585, 2, 15, 5, 2),
V0Parameter(1, 11, 665, 2, 16, 4, 3), V0Parameter(1, 11, 665, 3, 12, 6, 2),
V0Parameter(1, 11, 740, 3, 12, 5, 3), V0Parameter(1, 12, 775, 4, 9, 8, 2),
V0Parameter(1, 13, 842, 5, 8, 9, 2), V0Parameter(1, 14, 910, 7, 6, 10, 2)},
{V0Parameter(1, 11, 536, 2, 15, 5, 2), V0Parameter(1, 11, 618, 2, 16, 4, 3),
V0Parameter(1, 11, 614, 3, 12, 6, 2), V0Parameter(1, 11, 667, 3, 12, 6, 2),
V0Parameter(1, 11, 754, 3, 12, 5, 3), V0Parameter(1, 12, 784, 4, 9, 8, 2),
V0Parameter(1, 13, 844, 6, 7, 9, 2), V0Parameter(1, 14, 916, 8, 5, 10, 2)},
{V0Parameter(1, 11, 551, 2, 16, 5, 2), V0Parameter(1, 11, 580, 3, 12, 5, 2),
V0Parameter(1, 11, 615, 3, 12, 6, 2), V0Parameter(1, 11, 664, 3, 12, 7, 2),
V0Parameter(1, 11, 716, 4, 9, 7, 2), V0Parameter(1, 12, 780, 5, 8, 8, 2),
V0Parameter(1, 13, 846, 7, 6, 9, 2),
V0Parameter(1, 14, 945, 10, 4, 10, 2)},
{V0Parameter(1, 11, 533, 3, 12, 5, 2), V0Parameter(1, 11, 581, 3, 12, 5, 2),
V0Parameter(1, 11, 620, 3, 12, 6, 2), V0Parameter(1, 11, 658, 4, 9, 7, 2),
V0Parameter(1, 11, 728, 4, 9, 7, 2), V0Parameter(1, 12, 781, 6, 7, 8, 2),
V0Parameter(1, 13, 852, 8, 5, 9, 2),
V0Parameter(1, 14, 908, 21, 2, 10, 2)},
{V0Parameter(1, 11, 534, 3, 12, 5, 2), V0Parameter(1, 11, 588, 3, 12, 5, 2),
V0Parameter(1, 11, 665, 3, 12, 7, 2), V0Parameter(1, 11, 663, 4, 9, 7, 2),
V0Parameter(1, 11, 719, 5, 8, 7, 2), V0Parameter(1, 12, 783, 7, 6, 8, 2),
V0Parameter(1, 13, 895, 10, 4, 10, 2),
V0Parameter(1, 14, 915, 43, 1, 20, 1)},
{V0Parameter(1, 11, 538, 3, 12, 5, 2), V0Parameter(1, 11, 613, 3, 12, 6, 2),
V0Parameter(1, 11, 619, 4, 9, 6, 2), V0Parameter(1, 11, 710, 4, 9, 7, 2),
V0Parameter(1, 11, 750, 5, 8, 8, 2), V0Parameter(1, 12, 792, 8, 5, 8, 2),
V0Parameter(1, 13, 880, 14, 3, 10, 2), V0Parameter(0, 0, 0, 0, 0, 0, 0)},
{V0Parameter(1, 11, 571, 3, 12, 5, 2), V0Parameter(1, 11, 578, 4, 9, 6, 2),
V0Parameter(1, 11, 654, 4, 9, 6, 2), V0Parameter(1, 11, 670, 5, 8, 7, 2),
V0Parameter(1, 11, 722, 7, 6, 7, 2), V0Parameter(1, 12, 792, 11, 4, 8, 2),
V0Parameter(1, 13, 849, 43, 1, 18, 1), V0Parameter(0, 0, 0, 0, 0, 0, 0)},
{V0Parameter(1, 11, 537, 4, 9, 5, 2), V0Parameter(1, 11, 602, 4, 9, 6, 2),
V0Parameter(1, 11, 626, 5, 8, 6, 2), V0Parameter(1, 11, 673, 6, 7, 7, 2),
V0Parameter(1, 11, 732, 8, 5, 8, 2), V0Parameter(1, 12, 811, 14, 3, 9, 2),
V0Parameter(0, 0, 0, 0, 0, 0, 0), V0Parameter(0, 0, 0, 0, 0, 0, 0)},
{V0Parameter(1, 11, 560, 4, 9, 5, 2), V0Parameter(1, 11, 583, 5, 8, 6, 2),
V0Parameter(1, 11, 629, 6, 7, 6, 2), V0Parameter(1, 11, 678, 7, 6, 7, 2),
V0Parameter(1, 11, 729, 11, 4, 7, 2),
V0Parameter(1, 12, 785, 43, 1, 17, 1), V0Parameter(0, 0, 0, 0, 0, 0, 0),
V0Parameter(0, 0, 0, 0, 0, 0, 0)},
{V0Parameter(1, 11, 542, 5, 8, 5, 2), V0Parameter(1, 11, 586, 6, 7, 6, 2),
V0Parameter(1, 11, 633, 7, 6, 6, 2), V0Parameter(1, 11, 690, 9, 5, 7, 2),
V0Parameter(1, 11, 751, 14, 3, 8, 2), 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, 544, 6, 7, 5, 2), V0Parameter(1, 11, 589, 7, 6, 6, 2),
V0Parameter(1, 11, 642, 9, 5, 6, 2), V0Parameter(1, 11, 724, 11, 4, 7, 2),
V0Parameter(1, 11, 761, 22, 2, 16, 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, 547, 7, 6, 5, 2), V0Parameter(1, 11, 595, 9, 5, 6, 2),
V0Parameter(1, 11, 652, 11, 4, 7, 2), V0Parameter(1, 11, 673, 22, 2, 7, 2),
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, 586, 8, 5, 6, 2), V0Parameter(1, 11, 604, 11, 4, 6, 2),
V0Parameter(1, 11, 628, 22, 2, 6, 2),
V0Parameter(1, 11, 732, 45, 1, 16, 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, 563, 11, 4, 5, 2),
V0Parameter(1, 11, 597, 21, 2, 12, 1),
V0Parameter(1, 11, 656, 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(0, 0, 0, 0, 0, 0, 0), V0Parameter(0, 0, 0, 0, 0, 0, 0)},
{V0Parameter(1, 11, 579, 15, 3, 11, 1),
V0Parameter(1, 11, 603, 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(0, 0, 0, 0, 0, 0, 0),
V0Parameter(0, 0, 0, 0, 0, 0, 0)},
{V0Parameter(1, 11, 556, 44, 1, 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), 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), V0Parameter(0, 0, 0, 0, 0, 0, 0),
V0Parameter(0, 0, 0, 0, 0, 0, 0), V0Parameter(0, 0, 0, 0, 0, 0, 0)}};
const V0Parameter *getV0Parameter(V0FHEConstraint constraint) {
if (constraint.norm2 > NORM2_MAX) {
return nullptr;
}
if (constraint.p > P_MAX) {
return nullptr;
}
// - 1 is an offset as p is in [1, ...] and not [0, ...]
auto param = &parameters[constraint.norm2][constraint.p - 1];
if (param->glweDimension == 0) {
return nullptr;
}
return param;
}
} // namespace concretelang
} // namespace mlir