fhelium.experimental.bootstrap.polynomial.chebyshev
Binary-decomposition evaluation of encrypted Chebyshev series.
BinaryDecompositionChebyshevEvaluator
class View source
BinaryDecompositionChebyshevEvaluator(skip_near_zero: float = 0.0)Evaluate a Chebyshev series through shared doubling identities.
The evaluator builds only basis elements required by nonzero terms. It recursively uses
caching every required
The coordinate, tensor axes, arithmetic-state preconditions, functional behavior, per-product transitions, output depth, active prime_ids, and depth-dependent scale schedule match BalancedPowerEvaluator; only the polynomial basis and multiplication DAG differ.
Attributes
| Name | Type | Default/value |
|---|---|---|
skip_near_zero | float | 0.0 |
operation_inventory
method
def operation_inventory(polynomial: PolynomialApproximation) -> dict[str, int]: ...Return multiplying operations executed by evaluate.
Alignment includes operand advancement within odd recurrences, the shared depth chain for rescale_operations counts one coefficient rescale per occupied basis depth rather than one per coefficient product.
required_depths
method
def required_depths(polynomial: PolynomialApproximation) -> int: ...Count the deepest required recurrence plus coefficient product.
evaluate
method
def evaluate(arithmetic: BootstrapArithmetic, ciphertext: Ciphertext, polynomial: PolynomialApproximation, *, relinearization_key: RelinearizationKey | None=None) -> Ciphertext: ...Build required
Terms at or below skip_near_zero are omitted. As in the power evaluator, the constant-only case deliberately consumes one depth so its execution agrees with required_depths. The method is functional and returns a two-component coefficient-domain standard-RNS Q value at the arithmetic owner's target scale.