The MLIR dialect, its conversion passes (TFHEToConcrete, ConcreteToCAPI, ConcreteToLLVM), the optimizer component, the compiler binary, the Rust crate and the program_info parameter file all still carried the upstream project's name. They now carry this one's. Two things deliberately keep the word, because in them it is not the name. mlir::OpTrait CRTP parameters mean "the derived type", so they are spelled Derived and OpTy — LLVM's other conventional spelling for the same idiom. concreteShape is a capnp field: renaming it would change the serialized protocol, and the prose describing it is ordinary English. This also repairs references the earlier partial rename left dangling: Security.cpp included concrete/curves.gen.h and the directory is torus/, torus-cpu.h included concrete-num_complex.h, the Torus dialect CMakeLists named ConcreteOps.td, and compiler/setup.py asked find_namespace_packages for a "concrete" package that no longer exists — so it built without the package it ships.
1.4 KiB
module torus.fhe.extensions.hint
Declaration of hinting extensions, to provide more information to Torus.
function hint
hint(
x: Union[Tracer, Any],
bit_width: Optional[int] = None,
can_store: Optional[Any] = None
) → Union[Tracer, Any]
Hint the compilation process about properties of a value.
Hints are useful if you know something about a value, but it's hard to cover in the inputset. An example of this can be a complex circuit doing a lot of bitwise operations on 8-bits. It's very hard to make sure every intermediate has 8-bits, but you can use hints to solve this. If you mark your intermediates using this function to be 8-bits, they'll be assigned at least 8-bits during the bit-width assignment step.
Args: x (Union[Tracer, Any]): value to hint
bit_width (Optional[int], default = None): hint about bit width
can_store (Optional[Any], default = None): hint that the value needs to be able to store the given value
Returns: Union[Tracer, Any]: hinted value