Fifi is a C++ library implementing arithmetics in finite fields. Finite fields are mathematical constructs with many uses, e.g. for erasure correcting codes and cryptography. The purpose of Fifi is to provide a fast implementation of commonly used finite fields on the most important hardware platforms and all relevant operating systems. Fifi is highly optimized, thoroughly and continuously tested and benchmarked on a range of platforms to ensure high and predictable performance.
fifi use cases
Fast erasure and error correcting codes
Error and erasure correcting codes (ECC) are widely used to increase the reliability and efficiency of both communication networks and storage systems. Most such codes are based on computations in finite fields which dominates the computational cost of the algorithms and thereby limits the total amount data which can be processed by the system.
The Fifi library provides the basic mathematical operations performed by most ECC algorithms which in many cases can directly replace an existing slower implementation.
The fundamental functionality of Fifi is field operations, e.g. multiplication and addition of finite field elements. Fifi supports a range of fields, generally smaller fields are faster, but for many applications a bigger field brings advantages and therefore choosing a finite field is generally a trade-off. To provide high performance, Fifi utilizes a wide range of hardware optimizations for the different fields, especially the SIMD instruction sets of modern CPUs.
The Documentation contains a quick start guide, examples of basic operations in the chosen finite field.
The following auxiliary projects are based on Fifi:
- fifi-python – Python language bindings
Contact us for information on technical evaluation options and pricing: email@example.com