fix(compiler): polynomialSize from logPolynomialSize

The polynomialSize is currently holding its log2 instead of the actual
value. This should be fixed later, but in the meantime, we need to
compute it from log2
This commit is contained in:
youben11
2021-08-27 15:22:23 +01:00
committed by Quentin Bourgerie
parent 50d2ff82af
commit d1332dfd9a
2 changed files with 5 additions and 2 deletions

View File

@@ -26,6 +26,7 @@ struct V0Parameter {
: k(k), polynomialSize(polynomialSize), nSmall(nSmall), brLevel(brLevel),
brLogBase(brLogBase), ksLevel(ksLevel), ksLogBase(ksLogBase) {}
// TODO remove the shift when we have true polynomial size
size_t getNBigGlweSize() { return k * (1 << polynomialSize); }
};

View File

@@ -104,7 +104,8 @@ struct MidLFHEApplyLookupTableParametrizationPattern
rewriter.getI32IntegerAttr(v0Parameter.k)),
mlir::NamedAttribute(
rewriter.getIdentifier("polynomialSize"),
rewriter.getI32IntegerAttr(v0Parameter.polynomialSize)),
// TODO remove the shift when we have true polynomial size
rewriter.getI32IntegerAttr(1 << v0Parameter.polynomialSize)),
mlir::NamedAttribute(rewriter.getIdentifier("levelKS"),
rewriter.getI32IntegerAttr(v0Parameter.ksLevel)),
mlir::NamedAttribute(rewriter.getIdentifier("baseLogKS"),
@@ -145,7 +146,8 @@ void populateWithMidLFHEApplyLookupTableParametrizationPattern(
target.addDynamicallyLegalOp<mlir::zamalang::MidLFHE::ApplyLookupTable>(
[&](mlir::zamalang::MidLFHE::ApplyLookupTable op) {
if (op.k() != v0Parameter.k ||
op.polynomialSize() != v0Parameter.polynomialSize ||
// TODO remove the shift when we have true polynomial size
op.polynomialSize() != (1 << v0Parameter.polynomialSize) ||
op.levelKS() != v0Parameter.ksLevel ||
op.baseLogKS() != v0Parameter.ksLogBase ||
op.levelBS() != v0Parameter.brLevel ||