fhelium.backend.rns.parameters
Device-resident parameter tables for RNS operations.
RnsRowParameters
class View source
RnsRowParameters(prime_ids: tuple[int, ...], parameter_row_start: int, native_parameters: torch.Tensor, modulus_tensor: torch.Tensor, montgomery_reduction_parameters: tuple[torch.Tensor, torch.Tensor, torch.Tensor, torch.Tensor], montgomery_r2: torch.Tensor, scaled_montgomery_r2: torch.Tensor, twice_modulus: torch.Tensor, moduli: tuple[int, ...], mixed_radix_normalizers: torch.Tensor | None = None, basis_extension_coefficients: torch.Tensor | None = None, mixed_radix_propagation_coefficients: torch.Tensor | None = None)Device tables for one contiguous prime_ids interval.
Every tensor is integral on one execution device. One-dimensional tables have shape [limb] in prime_ids order. montgomery_r2[j] is scaled_montgomery_r2[j] is twice_modulus[j] is i=prime_ids[j]. The four reduction vectors are respectively the low and high split words of
Mixed-radix tables exist only for multi-row source digits. Normalizers have shape [digit - 1]; propagation coefficients have shape [digit - 1, digit]; basis-extension coefficients have shape [digit - 1, destination_limb] in depth-zero QP destination order. Their entries include the Montgomery factors required by their native consumers.
parameter_row_start identifies the first row in the context's depth-zero QP order. native_parameters is the cached zero-copy [parameter, limb] view consumed by native RNS kernels.
Attributes
| Name | Type | Default/value |
|---|---|---|
prime_ids | tuple[int, ...] | |
parameter_row_start | int | |
native_parameters | torch.Tensor | |
modulus_tensor | torch.Tensor | |
montgomery_reduction_parameters | tuple[torch.Tensor, torch.Tensor, torch.Tensor, torch.Tensor] | |
montgomery_r2 | torch.Tensor | |
scaled_montgomery_r2 | torch.Tensor | |
twice_modulus | torch.Tensor | |
moduli | tuple[int, ...] | |
mixed_radix_normalizers | torch.Tensor | None | None |
basis_extension_coefficients | torch.Tensor | None | None |
mixed_radix_propagation_coefficients | torch.Tensor | None | None |
parameter_row_stop
property
parameter_row_stop: intExclusive end of this parameter-row interval.
RnsParameterStore
class View source
RnsParameterStore(*, rns_layout: RnsLayout, montgomery_parameters: MontgomeryParameters, device: torch.device, torch_dtype: torch.dtype, montgomery_reduction_parameter_tables: tuple[torch.Tensor, torch.Tensor, torch.Tensor, torch.Tensor], native_parameter_tensor: torch.Tensor, modulus_tensor: torch.Tensor, montgomery_r2: torch.Tensor, scaled_montgomery_r2: torch.Tensor, twice_modulus: torch.Tensor, moduli: list[int])Build context-owned parameter views for RNS basis extension.
Each store belongs to one device-local context with [Q | P] prime order. The configured depth-group boundaries select active Q suffixes; a QP basis appends the fixed P suffix. Views retain the source table storage and preserve its row order.
row_parameters
method
def row_parameters(key) -> RnsRowParameters: ...basis_parameters
method
def basis_parameters(depth: int, *, include_p: bool=False) -> RnsRowParameters: ...twice_modulus_for_basis
method
def twice_modulus_for_basis(depth: int, *, include_p: bool=False) -> torch.Tensor: ...moduli_for_basis
method
def moduli_for_basis(depth: int, *, include_p: bool=False) -> list[int]: ...