Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/polinasavelyeva/finitefields
C library for working with elements of finite fields
https://github.com/polinasavelyeva/finitefields
c finite-fields
Last synced: about 2 months ago
JSON representation
C library for working with elements of finite fields
- Host: GitHub
- URL: https://github.com/polinasavelyeva/finitefields
- Owner: PolinaSavelyeva
- License: gpl-3.0
- Created: 2024-03-05T13:03:16.000Z (10 months ago)
- Default Branch: main
- Last Pushed: 2024-03-28T20:50:07.000Z (9 months ago)
- Last Synced: 2024-03-28T21:53:51.100Z (9 months ago)
- Topics: c, finite-fields
- Language: C
- Homepage:
- Size: 33.2 KB
- Stars: 0
- Watchers: 1
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# FiniteFields
C library for working with elements of finite fields.
## Main Features
- `ff_get_zero`: Returns the zero element of the finite field.
- `ff_get_identity`: Returns the identity element of the finite field.
- `ff_inv_add`: Calculates the inverse element under addition.
- `ff_inv_mult`: Calculates the inverse element under multiplication.Operations under elements of the same finite field:
- `ff_add`: Performs addition of two elements.
- `ff_sub`: Calculates the difference between two elements.
- `ff_mult`: Multiplies two elements.
- `ff_div`: Divides one element of the finite field by another.Other helpful features:
- `ff_2_8_init_elem` `ff_2_16_init_elem` `ff_2_32_init_elem`: Initializes an element of the finite field of the order 2^N from uintN_t.
## Building
To build the FiniteFields library, follow these steps:
1. Clone the repository:
```
git clone https://github.com/PolinaSavelyeva/FiniteFields.git
```2. Navigate to the FiniteFields directory:
```
cd FiniteFields
```3. Build the library using CMake:
```
cmake .
make
```## Build Requirements
- CMake (version 3.10 or higher)
- clang compiler supporting C11 standard
- valgrind