bitslice

package
v0.0.0-...-e3ece56 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Oct 8, 2024 License: Apache-2.0 Imports: 6 Imported by: 0

Documentation

Overview

Package bitslice allows partitioning variables.

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

func GetHints

func GetHints() []solver.Hint

func Partition

func Partition(api frontend.API, v frontend.Variable, split uint, opts ...Option) (lower, upper frontend.Variable)

Partition partitions v into two parts splitted at bit numbered split. The following holds

v = lower + 2^split * upper.

The method enforces that lower < 2^split and upper < 2^split', where split'=nbScalar-split. When giving the option WithNbDigits, we instead use the bound split'=nbDigits-split.

Types

type Option

type Option func(*opt) error

Option allows to customize the behavior of functions in this package. See WithNbDigits and WithUnconstrainedOutputs for examples.

func WithNbDigits

func WithNbDigits(nbDigits int) Option

WithNbDigits sets the bound on the number of digits the input can have. If this is not set, then we use standard binary decomposition of the input. If it is set and it is less than the width of the native field, then we use lookup table based method for bounding the inputs which is more efficient.

func WithUnconstrainedOutputs

func WithUnconstrainedOutputs() Option

WithUnconstrainedOutputs allows to skip the output decomposition and outputs width checks. Can be used when these are performed by the caller.

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL