Presentación del toolbox Galois Fields: campos finitos GF(p) y GF(p^n)
El toolbox galois_fields trabaja con campos finitos (de Galois) GF(p) y GF(p^n), y con polinomios sobre GF(p). Ofrece:
creación de campos a partir de polinomios primitivos: gf_create_field;
aritmética entre elementos del campo: gf_add, gf_subtract, gf_multiply, gf_divide, gf_power;
aritmética de polinomios sobre GF(p): gf_poly_add, gf_poly_subtract, gf_poly_multiply, gf_poly_divide, gf_poly_power;
polinomios primitivos y mínimos: gf_default_primitive_polynomial, gf_is_primitive_polynomial, gf_primitive_polynomials, gf_minimal_polynomial;
elementos primitivos: gf_primitive_elements;
tablas de operaciones de campos primos: gf_addition_table, gf_subtraction_table, gf_multiplication_table, gf_division_table;
conversiones entre notación polinómica y exponencial: gf_to_exponential, gf_to_polynomial, gf_elements.
Los campos de orden p^n se construyen a partir de un polinomio primitivo f de grado n sobre GF(p). Si α es una raíz de f, todo elemento no nulo del campo es una potencia α^k, 0 ≤ k ≤ p^n - 2, y también un polinomio en α de grado < n con coeficientes en GF(p).
Los polinomios sobre GF(p) son vectores fila de coeficientes enteros en 0 .. p-1, empezando por el término constante: [1 1 0 0 1] es 1 + x + x⁴. Las funciones que devuelven polinomios los recortan a su grado y devuelven el polinomio cero como 0.
Un campo es la lista que devuelve gf_create_field: list(p, n, f, elements), donde f es el polinomio primitivo (n + 1 coeficientes) y elements la tabla de todos los elementos del campo.
Los elementos de GF(p) son enteros 0 .. p-1. Los elementos de GF(p^n), n > 1, son filas de n coeficientes (polinomios en α, empezando por el término constante). Las funciones sobre elementos aceptan varios elementos a la vez: una matriz para n = 1, un elemento por fila para n > 1.
En la tabla de elementos de GF(p^n), n > 1, la fila 1 es el elemento cero y la fila k + 2 es α^k (orden exponencial). Para n = 1 la tabla es 0:p-1.
El orden del campo p^n puede ser como máximo 2^20 (1 048 576) y el grado n como máximo 20. Las tablas de elementos tienen p^n filas, por lo que los campos grandes usan memoria en proporción.
Ejecute exec builder.sce una vez en la carpeta del toolbox (se necesita un compilador de C) y luego exec loader.sce en cada sesión en que se necesite el toolbox. Las páginas de ayuda solo se compilan cuando Scilab se ejecuta con su interfaz Java (no con scilab-cli).
| Version | Description |
| 2.0.0 | Refactorización de la función/toolbox. |