diff --git a/LICENSE.txt b/LICENSE.txt new file mode 100644 index 0000000..ef9a54a --- /dev/null +++ b/LICENSE.txt @@ -0,0 +1,28 @@ +Copyright (c) 2015- John Kerl + +All rights reserved. + +Redistribution and use in source and binary forms, with or without +modification, are permitted provided that the following conditions are met: + +* Redistributions of source code must retain the above copyright notice, this + list of conditions and the following disclaimer. + +* Redistributions in binary form must reproduce the above copyright notice, + this list of conditions and the following disclaimer in the documentation + and/or other materials provided with the distribution. + +This software is provided by the copyright holders and contributors "as is" and +any express or implied warranties, including, but not limited to, the implied +warranties of merchantability and fitness for a particular purpose are +disclaimed. In no event shall the copyright holder or contributors be liable +for any direct, indirect, incidental, special, exemplary, or consequential +damages (including, but not limited to, procurement of substitute goods or +services; loss of use, data, or profits; or business interruption) however +caused and on any theory of liability, whether in contract, strict liability, +or tort (including negligence or otherwise) arising in any way out of the use +of this software, even if advised of the possibility of such damage. + +I am providing code in this repository to you under an open-source license. +Because this is my personal repository, the license you receive to my code is +from me and not from my employer. diff --git a/README.md b/README.md index fa4aca6..9e5a21a 100644 --- a/README.md +++ b/README.md @@ -1,4 +1,8 @@ -For documentation please see https://github.com/johnkerl/spffl/wiki +# SPFFL + +SPFFL (pronounced _spiffle_) is a small-prime finite-field library, where small means 32 bits or less. Polynomials may have arbitrary degree, as limited by machine resources. Residue field and quotient fields are supported. In addition to the C++ library, there is a command-line tool, named `spiff`, for convenient interactive use. + +For more information please see the **[SPFFL wiki page](https://github.com/johnkerl/spffl/wiki/SPFFL-documentation)**. # Setup disclaimer diff --git a/cli/misc/misc_main.cpp b/cli/misc/misc_main.cpp index ee028d4..da326b4 100644 --- a/cli/misc/misc_main.cpp +++ b/cli/misc/misc_main.cpp @@ -1,5 +1,5 @@ // ================================================================ -// Copyright (c) 2004 John Kerl. +// Copyright (c) 2004, 2023 John Kerl. // kerl.john.r@gmail.com // Please see LICENSE.txt. // ================================================================ diff --git a/cli/spiff/build/CMakeFiles/3.24.2/CMakeSystem.cmake b/cli/spiff/build/CMakeFiles/3.24.2/CMakeSystem.cmake deleted file mode 100644 index caf845f..0000000 --- a/cli/spiff/build/CMakeFiles/3.24.2/CMakeSystem.cmake +++ /dev/null @@ -1,15 +0,0 @@ -set(CMAKE_HOST_SYSTEM "Darwin-22.4.0") -set(CMAKE_HOST_SYSTEM_NAME "Darwin") -set(CMAKE_HOST_SYSTEM_VERSION "22.4.0") -set(CMAKE_HOST_SYSTEM_PROCESSOR "x86_64") - - - -set(CMAKE_SYSTEM "Darwin-22.4.0") -set(CMAKE_SYSTEM_NAME "Darwin") -set(CMAKE_SYSTEM_VERSION "22.4.0") -set(CMAKE_SYSTEM_PROCESSOR "x86_64") - -set(CMAKE_CROSSCOMPILING "FALSE") - -set(CMAKE_SYSTEM_LOADED 1) diff --git a/cli/spiff/build/CMakeFiles/CMakeOutput.log b/cli/spiff/build/CMakeFiles/CMakeOutput.log deleted file mode 100644 index 4783000..0000000 --- a/cli/spiff/build/CMakeFiles/CMakeOutput.log +++ /dev/null @@ -1 +0,0 @@ -The system is: Darwin - 22.4.0 - x86_64 diff --git a/cli/spiff/f2_poly_handlers.cpp b/cli/spiff/f2_poly_handlers.cpp index e9d9038..0b99410 100644 --- a/cli/spiff/f2_poly_handlers.cpp +++ b/cli/spiff/f2_poly_handlers.cpp @@ -1,5 +1,5 @@ // ================================================================ -// Copyright (c) 2004 John Kerl. +// Copyright (c) 2004, 2023 John Kerl. // kerl.john.r@gmail.com // Please see LICENSE.txt. // ================================================================ diff --git a/cli/spiff/f2_poly_handlers.h b/cli/spiff/f2_poly_handlers.h index 6c03742..04bfee2 100644 --- a/cli/spiff/f2_poly_handlers.h +++ b/cli/spiff/f2_poly_handlers.h @@ -1,5 +1,5 @@ // ================================================================ -// Copyright (c) 2004 John Kerl. +// Copyright (c) 2004, 2023 John Kerl. // kerl.john.r@gmail.com // Please see LICENSE.txt. // ================================================================ diff --git a/cli/spiff/spiff_main.cpp b/cli/spiff/spiff_main.cpp index 19f7b61..7be8929 100644 --- a/cli/spiff/spiff_main.cpp +++ b/cli/spiff/spiff_main.cpp @@ -1,12 +1,12 @@ // ================================================================ -// Copyright (c) 2004 John Kerl. +// Copyright (c) 2004, 2023 John Kerl. // kerl.john.r@gmail.com // Please see LICENSE.txt. // ================================================================ #include -#include -#include +#include +#include #include "base/spffl_exception.h" @@ -37,205 +37,245 @@ #include "fpn_polymod_handlers.h" // ---------------------------------------------------------------- -// TODO: add another level here - typedef struct _lookup_t { - const char *name; + std::string name; main_t *pmain; usage_t *pusage; } lookup_t; -lookup_t lookups[] = { - - {"z_op", z_op_main, 0 /*z_op_usage*/}, {"z_gcd", z_gcd_main, z_gcd_usage}, - {"z_lcm", z_lcm_main, z_lcm_usage}, - {"z_totient", z_totient_main, z_totient_usage}, - {"z_test_prime", z_test_prime_main, z_test_prime_usage}, - {"spffl::intmath::nth_prime", nth_prime_main, nth_prime_usage}, - {"z_list", z_list_main, z_list_usage}, - {"z_factor", z_factor_main, z_factor_usage}, - {"z_divisors", z_divisors_main, z_divisors_usage}, - {"z_mat_op", z_mat_op_main, 0 /*z_mat_op_usage*/}, - - {"q_op", q_op_main, 0 /*q_op_usage*/}, - {"q_vec_op", q_vec_op_main, 0 /*q_vec_op_usage*/}, - {"q_mat_op", q_mat_op_main, 0 /*q_mat_op_usage*/}, - - {"q_cyclotomic", q_cyclo_main, q_cyclo_usage}, - {"q_p_op", q_p_op_main, 0 /*q_p_op_usage*/}, - - {"f2_op", f2_op_main, 0 /*f2op_usage*/}, - {"f2_random", f2_random_main, f2_random_usage}, - - {"f2_vec_op", f2_vec_op_main, 0 /*f2vecop_usage*/}, - {"f2_mat_op", f2_mat_op_main, 0 /*f2matop_usage*/}, - {"f2_mat_ch_pol", f2_mat_ch_pol_main, f2_mat_ch_pol_usage}, - {"f2_mat_ord", f2_mat_ord_main, f2_mat_ord_usage}, - {"f2_mat_random", f2_mat_random_main, f2_mat_random_usage}, - - {"f2_p_list", f2_p_list_main, f2_p_list_usage}, - {"f2_p_op", f2_p_op_main, 0 /*f2pop_usage*/}, - {"f2_p_deg", f2_p_deg_main, f2_p_deg_usage}, - {"f2_p_gcd", f2_p_gcd_main, f2_p_gcd_usage}, - {"f2_p_lcm", f2_p_lcm_main, f2_p_lcm_usage}, - {"f2_p_totient", f2_p_totient_main, f2_p_totient_usage}, - {"f2_p_test", f2_p_test_main, f2_p_test_usage}, - {"f2_p_find", f2_p_find_main, f2_p_find_usage}, - {"f2_p_period", f2_p_period_main, f2_p_period_usage}, - {"f2_p_factor", f2_p_factor_main, f2_p_factor_usage}, - {"f2_p_divisors", f2_p_divisors_main, f2_p_divisors_usage}, - {"f2_p_eval", f2_p_eval_main, f2_p_eval_usage}, - {"f2_p_random", f2_p_random_main, f2_p_random_usage}, - {"f2_p_qp", f2_p_qp_main, f2_p_qp_usage}, - {"f2_p_mat_op", f2_p_mat_op_main, 0 /*f2pmatop_usage*/}, - {"f2_p_comp_mx", f2_p_comp_mx_main, f2_p_comp_mx_usage}, - - {"f2_pm_list", f2_pm_list_main, f2_pm_list_usage}, - {"f2_pm_op", f2_pm_op_main, f2_pm_op_usage}, - {"f2_pm_tbl", f2_pm_tbl_main, f2_pm_tbl_usage}, - {"f2_pm_ord", f2_pm_ord_main, f2_pm_ord_usage}, - {"f2_pm_find_gen", f2_pm_find_gen_main, f2_pm_find_gen_usage}, - {"f2_pm_log", f2_pm_log_main, f2_pm_log_usage}, - {"f2_pm_ch_pol", f2_pm_ch_pol_main, f2_pm_ch_pol_usage}, - {"f2_pm_min_pol", f2_pm_min_pol_main, f2_pm_min_pol_usage}, - {"f2_pm_convert", f2_pm_convert_main, f2_pm_convert_usage}, - {"f2_pm_random", f2_pm_random_main, f2_pm_random_usage}, - - {"f2_pm_mat_op", f2_pm_mat_op_main, f2_pm_mat_op_usage}, - {"f2_pm_vec_op", f2_pm_vec_op_main, f2_pm_vec_op_usage}, - {"f2_pm_mat_solve", f2_pm_mat_solve_main, f2_pm_mat_solve_usage}, - {"f2_pm_mat_ch_pol", f2_pm_mat_ch_pol_main, f2_pm_mat_ch_pol_usage}, - {"f2_pm_mat_diagonalizable", f2_pm_mat_diagonalizable_main, - f2_pm_mat_diagonalizable_usage}, - {"f2_pm_mat_ord", f2_pm_mat_ord_main, f2_pm_mat_ord_usage}, - {"f2_pm_mat_random", f2_pm_mat_random_main, f2_pm_mat_random_usage}, - - {"f2_pr_op", f2_pr_op_main, 0 /*f2prop_usage*/}, - {"f2_pr_random", f2_pr_random_main, f2_pr_random_usage}, - {"f2_pr_mat_op", f2_pr_mat_op_main, 0 /*f2prmatop_usage*/}, - {"f2_pr_mat_random", f2_pr_mat_random_main, f2_pr_mat_random_usage}, - - {"f2n_p_list", f2n_p_list_main, f2n_p_list_usage}, - {"f2n_p_op", f2n_p_op_main, f2n_p_op_usage}, - {"f2n_p_mat_op", f2n_p_mat_op_main, f2n_p_mat_op_usage}, - {"f2n_p_deg", f2n_p_deg_main, f2n_p_deg_usage}, - {"f2n_p_gcd", f2n_p_gcd_main, f2n_p_gcd_usage}, - {"f2n_p_lcm", f2n_p_lcm_main, f2n_p_lcm_usage}, - {"f2n_p_totient", f2n_p_totient_main, f2n_p_totient_usage}, - {"f2n_p_test", f2n_p_test_main, f2n_p_test_usage}, - {"f2n_p_find", f2n_p_find_main, f2n_p_find_usage}, - {"f2n_p_factor", f2n_p_factor_main, f2n_p_factor_usage}, - {"f2n_p_divisors", f2n_p_divisors_main, f2n_p_divisors_usage}, - {"f2n_p_eval", f2n_p_eval_main, f2n_p_eval_usage}, - {"f2n_p_random", f2n_p_random_main, f2n_p_random_usage}, - {"f2n_p_comp_mx", f2n_p_comp_mx_main, f2n_p_comp_mx_usage}, - - {"f2n_pm_list", f2n_pm_list_main, f2n_pm_list_usage}, - {"f2n_pm_op", f2n_pm_op_main, f2n_pm_op_usage}, - {"f2n_pm_tbl", f2n_pm_tbl_main, f2n_pm_tbl_usage}, - {"f2n_pm_ord", f2n_pm_ord_main, f2n_pm_ord_usage}, - {"f2n_pm_find_gen", f2n_pm_find_gen_main, f2n_pm_find_gen_usage}, - {"f2n_pm_log", f2n_pm_log_main, f2n_pm_log_usage}, - {"f2n_pm_ch_pol", f2n_pm_ch_pol_main, f2n_pm_ch_pol_usage}, - {"f2n_pm_min_pol", f2n_pm_min_pol_main, f2n_pm_min_pol_usage}, - {"f2n_pm_random", f2n_pm_random_main, f2n_pm_random_usage}, - {"f2n_p_qp", f2n_p_qp_main, f2n_p_qp_usage}, - - {"f2n_pm_mat_op", f2n_pm_mat_op_main, f2n_pm_mat_op_usage}, - {"f2n_pm_vec_op", f2n_pm_vec_op_main, f2n_pm_vec_op_usage}, - {"f2n_pm_mat_random", f2n_pm_mat_random_main, f2n_pm_mat_random_usage}, - - {"f2n_pr_op", f2n_pr_op_main, f2n_pr_op_usage}, - {"f2n_pr_mat_op", f2n_pr_mat_op_main, f2n_pr_mat_op_usage}, - - {"fp_list", fp_list_main, fp_list_usage}, - {"fp_op", fp_op_main, fp_op_usage}, {"fp_tbl", fp_tbl_main, fp_tbl_usage}, - {"fp_ord", fp_ord_main, fp_ord_usage}, - {"fp_max_ord", fp_max_ord_main, fp_max_ord_usage}, - {"fp_orbit", fp_orbit_main, fp_orbit_usage}, - {"fp_find_gen", fp_find_gen_main, fp_find_gen_usage}, - {"fp_log", fp_log_main, fp_log_usage}, - {"fp_random", fp_random_main, fp_random_usage}, - - {"fp_mat_op", fp_mat_op_main, fp_mat_op_usage}, - {"fp_vec_op", fp_vec_op_main, fp_vec_op_usage}, - {"fp_mat_ch_pol", fp_mat_ch_pol_main, fp_mat_ch_pol_usage}, - {"fp_mat_ord", fp_mat_ord_main, fp_mat_ord_usage}, - {"fp_mat_random", fp_mat_random_main, fp_mat_random_usage}, - - {"fp_p_list", fp_p_list_main, fp_p_list_usage}, - {"fp_p_op", fp_p_op_main, fp_p_op_usage}, - {"fp_p_mat_op", fp_p_mat_op_main, fp_p_mat_op_usage}, - {"fp_p_comp_mx", fp_p_comp_mx_main, fp_p_comp_mx_usage}, - {"fp_p_deg", fp_p_deg_main, fp_p_deg_usage}, - {"fp_p_gcd", fp_p_gcd_main, fp_p_gcd_usage}, - {"fp_p_lcm", fp_p_lcm_main, fp_p_lcm_usage}, - {"fp_p_totient", fp_p_totient_main, fp_p_totient_usage}, - {"fp_p_test", fp_p_test_main, fp_p_test_usage}, - {"fp_p_find", fp_p_find_main, fp_p_find_usage}, - {"fp_p_factor", fp_p_factor_main, fp_p_factor_usage}, - {"fp_p_divisors", fp_p_divisors_main, fp_p_divisors_usage}, - {"fp_p_eval", fp_p_eval_main, fp_p_eval_usage}, - {"fp_p_random", fp_p_random_main, fp_p_random_usage}, - {"fp_p_qp", fp_p_qp_main, fp_p_qp_usage}, - - {"fp_pm_list", fp_pm_list_main, fp_pm_list_usage}, - {"fp_pm_op", fp_pm_op_main, fp_pm_op_usage}, - {"fp_pm_tbl", fp_pm_tbl_main, fp_pm_tbl_usage}, - {"fp_pm_ord", fp_pm_ord_main, fp_pm_ord_usage}, - {"fp_pm_ch_pol", fp_pm_ch_pol_main, fp_pm_ch_pol_usage}, - {"fp_pm_min_pol", fp_pm_min_pol_main, fp_pm_min_pol_usage}, - {"fp_pm_random", fp_pm_random_main, fp_pm_random_usage}, - - {"fp_pm_mat_op", fp_pm_mat_op_main, 0 /*fppmmatop_usage*/}, - {"fp_pm_vecop", fp_pm_vecop_main, 0 /*fppmvecop_usage*/}, - {"fp_pm_mat_ord", fp_pm_mat_ord_main, fp_pm_mat_ord_usage}, - {"fp_pm_mat_random", fp_pm_mat_random_main, fp_pm_mat_random_usage}, - - {"fp_pr_op", fp_pr_op_main, fp_pr_op_usage}, - {"fp_pr_mat_op", fp_pr_mat_op_main, fp_pr_mat_op_usage}, - - {"fpn_p_op", fpn_p_op_main, fpn_p_op_usage}, - {"fpn_p_mat_op", fpn_p_mat_op_main, fpn_p_mat_op_usage}, - {"fpn_p_gcd", fpn_p_gcd_main, fpn_p_gcd_usage}, - {"fpn_p_qp", fpn_p_qp_main, fpn_p_qp_usage}, - - // To do: - //{"fpn_p_list", fpn_p_list_main, fpn_p_list_usage}, - //{"fpn_p_comp_mx", fpn_p_comp_mx_main, fpn_p_comp_mx_usage}, - //{"fpn_p_deg", fpn_p_deg_main, fpn_p_deg_usage}, - //{"fpn_p_lcm", fpn_p_lcm_main, fpn_p_lcm_usage}, - //{"fpn_p_totient", fpn_p_totient_main, fpn_p_totient_usage}, - //{"fpn_p_test", fpn_p_test_main, fpn_p_test_usage}, - //{"fpn_p_find", fpn_p_find_main, fpn_p_find_usage}, - //{"fpn_p_factor", fpn_p_factor_main, fpn_p_factor_usage}, - //{"fpn_p_divisors", fpn_p_divisors_main, fpn_p_divisors_usage}, - //{"fpn_p_eval", fpn_p_eval_main, fpn_p_eval_usage}, - //{"fpn_p_random", fpn_p_random_main, fpn_p_random_usage}, - - {"fpn_pm_op", fpn_pm_op_main, fpn_pm_op_usage}, - {"fpn_pm_mat_op", fpn_pm_mat_op_main, fpn_pm_mat_op_usage}, - - // To do: - //{"fpn_pm_list", fpn_pm_list_main, fpn_pm_list_usage}, - //{"fpn_pm_tbl", fpn_pm_tbl_main, fpn_pm_tbl_usage}, - //{"fpn_pm_ord", fpn_pm_ord_main, fpn_pm_ord_usage}, - //{"fpn_pm_ch_pol", fpn_pm_ch_pol_main, fpn_pm_ch_pol_usage}, - //{"fpn_pm_min_pol", fpn_pm_min_pol_main, fpn_pm_min_pol_usage}, - //{"fpn_pm_random", fpn_pm_random_main, fpn_pm_random_usage}, - //{"fpn_pm_mat_random", fpn_pm_mat_random_main, fpn_pm_mat_random_usage}, - - {0, 0, 0} // MUST be null-terminated. +// clang-format off +std::vector z_lookups { + {"z_op", z_op_main, nullptr}, + {"z_gcd", z_gcd_main, z_gcd_usage}, + {"z_lcm", z_lcm_main, z_lcm_usage}, + {"z_totient", z_totient_main, z_totient_usage}, + {"z_test_prime", z_test_prime_main, z_test_prime_usage}, + {"spffl::intmath::nth_prime", nth_prime_main, nth_prime_usage}, + {"z_list", z_list_main, z_list_usage}, + {"z_factor", z_factor_main, z_factor_usage}, + {"z_divisors", z_divisors_main, z_divisors_usage}, + {"z_mat_op", z_mat_op_main, nullptr}, +}; + +std::vector q_lookups { + {"q_op", q_op_main, nullptr/*q_op_usage*/}, + {"q_vec_op", q_vec_op_main, nullptr/*q_vec_op_usage*/}, + {"q_mat_op", q_mat_op_main, nullptr/*q_mat_op_usage*/}, + {"q_cyclotomic", q_cyclo_main, q_cyclo_usage}, + {"q_p_op", q_p_op_main, nullptr/*q_p_op_usage*/}, +}; + +std::vector f2_lookups { + {"f2_op", f2_op_main, nullptr/*f2op_usage*/}, + {"f2_random", f2_random_main, f2_random_usage}, + {"f2_vec_op", f2_vec_op_main, nullptr/*f2vecop_usage*/}, + {"f2_mat_op", f2_mat_op_main, nullptr/*f2matop_usage*/}, + {"f2_mat_ch_pol", f2_mat_ch_pol_main, f2_mat_ch_pol_usage}, + {"f2_mat_ord", f2_mat_ord_main, f2_mat_ord_usage}, + {"f2_mat_random", f2_mat_random_main, f2_mat_random_usage}, +}; + +std::vector f2_p_lookups { + {"f2_p_list", f2_p_list_main, f2_p_list_usage}, + {"f2_p_op", f2_p_op_main, nullptr/*f2pop_usage*/}, + {"f2_p_deg", f2_p_deg_main, f2_p_deg_usage}, + {"f2_p_gcd", f2_p_gcd_main, f2_p_gcd_usage}, + {"f2_p_lcm", f2_p_lcm_main, f2_p_lcm_usage}, + {"f2_p_totient", f2_p_totient_main, f2_p_totient_usage}, + {"f2_p_test", f2_p_test_main, f2_p_test_usage}, + {"f2_p_find", f2_p_find_main, f2_p_find_usage}, + {"f2_p_period", f2_p_period_main, f2_p_period_usage}, + {"f2_p_factor", f2_p_factor_main, f2_p_factor_usage}, + {"f2_p_divisors", f2_p_divisors_main, f2_p_divisors_usage}, + {"f2_p_eval", f2_p_eval_main, f2_p_eval_usage}, + {"f2_p_random", f2_p_random_main, f2_p_random_usage}, + {"f2_p_qp", f2_p_qp_main, f2_p_qp_usage}, + {"f2_p_mat_op", f2_p_mat_op_main, nullptr/*f2pmatop_usage*/}, + {"f2_p_comp_mx", f2_p_comp_mx_main, f2_p_comp_mx_usage}, +}; + +std::vector f2_pm_lookups { + {"f2_pm_list", f2_pm_list_main, f2_pm_list_usage}, + {"f2_pm_op", f2_pm_op_main, f2_pm_op_usage}, + {"f2_pm_tbl", f2_pm_tbl_main, f2_pm_tbl_usage}, + {"f2_pm_ord", f2_pm_ord_main, f2_pm_ord_usage}, + {"f2_pm_find_gen", f2_pm_find_gen_main, f2_pm_find_gen_usage}, + {"f2_pm_log", f2_pm_log_main, f2_pm_log_usage}, + {"f2_pm_ch_pol", f2_pm_ch_pol_main, f2_pm_ch_pol_usage}, + {"f2_pm_min_pol", f2_pm_min_pol_main, f2_pm_min_pol_usage}, + {"f2_pm_convert", f2_pm_convert_main, f2_pm_convert_usage}, + {"f2_pm_random", f2_pm_random_main, f2_pm_random_usage}, + {"f2_pm_mat_op", f2_pm_mat_op_main, f2_pm_mat_op_usage}, + {"f2_pm_vec_op", f2_pm_vec_op_main, f2_pm_vec_op_usage}, + {"f2_pm_mat_solve", f2_pm_mat_solve_main, f2_pm_mat_solve_usage}, + {"f2_pm_mat_ch_pol", f2_pm_mat_ch_pol_main, f2_pm_mat_ch_pol_usage}, + {"f2_pm_mat_diagonalizable", f2_pm_mat_diagonalizable_main, f2_pm_mat_diagonalizable_usage}, + {"f2_pm_mat_ord", f2_pm_mat_ord_main, f2_pm_mat_ord_usage}, + {"f2_pm_mat_random", f2_pm_mat_random_main, f2_pm_mat_random_usage}, +}; + +std::vector f2_pr_lookups { + {"f2_pr_op", f2_pr_op_main, nullptr/*f2prop_usage*/}, + {"f2_pr_random", f2_pr_random_main, f2_pr_random_usage}, + {"f2_pr_mat_op", f2_pr_mat_op_main, nullptr/*f2prmatop_usage*/}, + {"f2_pr_mat_random", f2_pr_mat_random_main, f2_pr_mat_random_usage}, +}; + +std::vector f2n_p_lookups { + {"f2n_p_list", f2n_p_list_main, f2n_p_list_usage}, + {"f2n_p_op", f2n_p_op_main, f2n_p_op_usage}, + {"f2n_p_mat_op", f2n_p_mat_op_main, f2n_p_mat_op_usage}, + {"f2n_p_deg", f2n_p_deg_main, f2n_p_deg_usage}, + {"f2n_p_gcd", f2n_p_gcd_main, f2n_p_gcd_usage}, + {"f2n_p_lcm", f2n_p_lcm_main, f2n_p_lcm_usage}, + {"f2n_p_totient", f2n_p_totient_main, f2n_p_totient_usage}, + {"f2n_p_test", f2n_p_test_main, f2n_p_test_usage}, + {"f2n_p_find", f2n_p_find_main, f2n_p_find_usage}, + {"f2n_p_factor", f2n_p_factor_main, f2n_p_factor_usage}, + {"f2n_p_divisors", f2n_p_divisors_main, f2n_p_divisors_usage}, + {"f2n_p_eval", f2n_p_eval_main, f2n_p_eval_usage}, + {"f2n_p_random", f2n_p_random_main, f2n_p_random_usage}, + {"f2n_p_comp_mx", f2n_p_comp_mx_main, f2n_p_comp_mx_usage}, +}; + +std::vector f2n_pm_lookups { + {"f2n_pm_list", f2n_pm_list_main, f2n_pm_list_usage}, + {"f2n_pm_op", f2n_pm_op_main, f2n_pm_op_usage}, + {"f2n_pm_tbl", f2n_pm_tbl_main, f2n_pm_tbl_usage}, + {"f2n_pm_ord", f2n_pm_ord_main, f2n_pm_ord_usage}, + {"f2n_pm_find_gen", f2n_pm_find_gen_main, f2n_pm_find_gen_usage}, + {"f2n_pm_log", f2n_pm_log_main, f2n_pm_log_usage}, + {"f2n_pm_ch_pol", f2n_pm_ch_pol_main, f2n_pm_ch_pol_usage}, + {"f2n_pm_min_pol", f2n_pm_min_pol_main, f2n_pm_min_pol_usage}, + {"f2n_pm_random", f2n_pm_random_main, f2n_pm_random_usage}, + {"f2n_p_qp", f2n_p_qp_main, f2n_p_qp_usage}, + {"f2n_pm_mat_op", f2n_pm_mat_op_main, f2n_pm_mat_op_usage}, + {"f2n_pm_vec_op", f2n_pm_vec_op_main, f2n_pm_vec_op_usage}, + {"f2n_pm_mat_random", f2n_pm_mat_random_main, f2n_pm_mat_random_usage}, +}; + +std::vector f2n_pr_lookups { + {"f2n_pr_op", f2n_pr_op_main, f2n_pr_op_usage}, + {"f2n_pr_mat_op", f2n_pr_mat_op_main, f2n_pr_mat_op_usage}, +}; + +std::vector fp_lookups { + {"fp_list", fp_list_main, fp_list_usage}, + {"fp_op", fp_op_main, fp_op_usage}, + {"fp_tbl", fp_tbl_main, fp_tbl_usage}, + {"fp_ord", fp_ord_main, fp_ord_usage}, + {"fp_max_ord", fp_max_ord_main, fp_max_ord_usage}, + {"fp_orbit", fp_orbit_main, fp_orbit_usage}, + {"fp_find_gen", fp_find_gen_main, fp_find_gen_usage}, + {"fp_log", fp_log_main, fp_log_usage}, + {"fp_random", fp_random_main, fp_random_usage}, + {"fp_mat_op", fp_mat_op_main, fp_mat_op_usage}, + {"fp_vec_op", fp_vec_op_main, fp_vec_op_usage}, + {"fp_mat_ch_pol", fp_mat_ch_pol_main, fp_mat_ch_pol_usage}, + {"fp_mat_ord", fp_mat_ord_main, fp_mat_ord_usage}, + {"fp_mat_random", fp_mat_random_main, fp_mat_random_usage}, +}; + +std::vector fp_p_lookups { + {"fp_p_list", fp_p_list_main, fp_p_list_usage}, + {"fp_p_op", fp_p_op_main, fp_p_op_usage}, + {"fp_p_mat_op", fp_p_mat_op_main, fp_p_mat_op_usage}, + {"fp_p_comp_mx", fp_p_comp_mx_main, fp_p_comp_mx_usage}, + {"fp_p_deg", fp_p_deg_main, fp_p_deg_usage}, + {"fp_p_gcd", fp_p_gcd_main, fp_p_gcd_usage}, + {"fp_p_lcm", fp_p_lcm_main, fp_p_lcm_usage}, + {"fp_p_totient", fp_p_totient_main, fp_p_totient_usage}, + {"fp_p_test", fp_p_test_main, fp_p_test_usage}, + {"fp_p_find", fp_p_find_main, fp_p_find_usage}, + {"fp_p_factor", fp_p_factor_main, fp_p_factor_usage}, + {"fp_p_divisors", fp_p_divisors_main, fp_p_divisors_usage}, + {"fp_p_eval", fp_p_eval_main, fp_p_eval_usage}, + {"fp_p_random", fp_p_random_main, fp_p_random_usage}, + {"fp_p_qp", fp_p_qp_main, fp_p_qp_usage}, +}; + +std::vector fp_pm_lookups { + {"fp_pm_list", fp_pm_list_main, fp_pm_list_usage}, + {"fp_pm_op", fp_pm_op_main, fp_pm_op_usage}, + {"fp_pm_tbl", fp_pm_tbl_main, fp_pm_tbl_usage}, + {"fp_pm_ord", fp_pm_ord_main, fp_pm_ord_usage}, + {"fp_pm_ch_pol", fp_pm_ch_pol_main, fp_pm_ch_pol_usage}, + {"fp_pm_min_pol", fp_pm_min_pol_main, fp_pm_min_pol_usage}, + {"fp_pm_random", fp_pm_random_main, fp_pm_random_usage}, + {"fp_pm_mat_op", fp_pm_mat_op_main, nullptr/*fppmmatop_usage*/}, + {"fp_pm_vecop", fp_pm_vecop_main, nullptr/*fppmvecop_usage*/}, + {"fp_pm_mat_ord", fp_pm_mat_ord_main, fp_pm_mat_ord_usage}, + {"fp_pm_mat_random", fp_pm_mat_random_main, fp_pm_mat_random_usage}, +}; + +std::vector fp_pr_lookups { + {"fp_pr_op", fp_pr_op_main, fp_pr_op_usage}, + {"fp_pr_mat_op", fp_pr_mat_op_main, fp_pr_mat_op_usage}, +}; + +std::vector fpn_p_lookups { + {"fpn_p_op", fpn_p_op_main, fpn_p_op_usage}, + {"fpn_p_mat_op", fpn_p_mat_op_main, fpn_p_mat_op_usage}, + {"fpn_p_gcd", fpn_p_gcd_main, fpn_p_gcd_usage}, + {"fpn_p_qp", fpn_p_qp_main, fpn_p_qp_usage}, + // To do: + //{"fpn_p_list", fpn_p_list_main, fpn_p_list_usage}, + //{"fpn_p_comp_mx", fpn_p_comp_mx_main, fpn_p_comp_mx_usage}, + //{"fpn_p_deg", fpn_p_deg_main, fpn_p_deg_usage}, + //{"fpn_p_lcm", fpn_p_lcm_main, fpn_p_lcm_usage}, + //{"fpn_p_totient", fpn_p_totient_main, fpn_p_totient_usage}, + //{"fpn_p_test", fpn_p_test_main, fpn_p_test_usage}, + //{"fpn_p_find", fpn_p_find_main, fpn_p_find_usage}, + //{"fpn_p_factor", fpn_p_factor_main, fpn_p_factor_usage}, + //{"fpn_p_divisors", fpn_p_divisors_main, fpn_p_divisors_usage}, + //{"fpn_p_eval", fpn_p_eval_main, fpn_p_eval_usage}, + //{"fpn_p_random", fpn_p_random_main, fpn_p_random_usage}, }; +std::vector fpn_pm_lookups { + {"fpn_pm_op", fpn_pm_op_main, fpn_pm_op_usage}, + {"fpn_pm_mat_op", fpn_pm_mat_op_main, fpn_pm_mat_op_usage}, + // To do: + //{"fpn_pm_list", fpn_pm_list_main, fpn_pm_list_usage}, + //{"fpn_pm_tbl", fpn_pm_tbl_main, fpn_pm_tbl_usage}, + //{"fpn_pm_ord", fpn_pm_ord_main, fpn_pm_ord_usage}, + //{"fpn_pm_ch_pol", fpn_pm_ch_pol_main, fpn_pm_ch_pol_usage}, + //{"fpn_pm_min_pol", fpn_pm_min_pol_main, fpn_pm_min_pol_usage}, + //{"fpn_pm_random", fpn_pm_random_main, fpn_pm_random_usage}, + //{"fpn_pm_mat_random", fpn_pm_mat_random_main, fpn_pm_mat_random_usage}, +}; +// clang-format off + +// ---------------------------------------------------------------- +typedef struct _lookup_group_t { + std::string name; + std::vector lookups; +} lookup_group_t; + +// clang-format off +std::vector lookup_groups { + {"Integers", z_lookups}, + {"Quotient field of integers", q_lookups}, + {"F2 (bits)", f2_lookups}, + {"Polynomials over F2", f2_p_lookups}, + {"Residue field of F2 polynomials (F2^n)", f2_pm_lookups}, + {"Quotient field of F2 polynomials", f2_pr_lookups}, + {"Polynomials of F2^n", f2n_p_lookups}, + {"Residue field of F2^n polynomials", f2n_pm_lookups}, + {"Quotient field of F2^n polynomials", f2n_pr_lookups}, + {"Fp (modular arithmetic)", fp_lookups}, + {"Polynomials over Fp", fp_p_lookups}, + {"Residue field of Fp polynomials", fp_pm_lookups}, + {"Quotient field of Fp polynomials", fp_pr_lookups}, + {"Polynomials over Fp^n", fpn_p_lookups}, + {"Residue field of Fp^n polynomials", fpn_pm_lookups}, +}; +// clang-format on + // ---------------------------------------------------------------- void main_usage(char *argv0) { - std::cerr << "Usage: " << argv0 - << " {cmd} {command-specific arguments ...}\n"; - for (int i = 0; lookups[i].name; i++) { - std::cerr << " " << lookups[i].name; - } - std::cerr << "\n"; + std::cerr << "Usage: " << argv0 << " {command} {command-specific arguments ...}\n"; + std::cerr << "Use " << argv0 << " -l to list available commands.\n"; exit(1); } @@ -252,20 +292,25 @@ static int try_main(int argc, char **argv) { } if (strcmp(argv[0], "-l") == 0) { - for (int i = 0; lookups[i].name; i++) { - if (i > 0) { - std::cout << " "; + for (auto it = lookup_groups.begin(); it != lookup_groups.end(); it++) { + std::cout << it->name << ":\n"; + auto lookups = it->lookups; + for (auto it2 = lookups.begin(); it2 != lookups.end(); it2++) { + std::cout << " " << it2->name << "\n"; } - std::cout << lookups[i].name; } - std::cout << "\n"; - exit(1); + exit(0); } - for (int i = 0; lookups[i].name; i++) { - if (strcmp(argv[0], lookups[i].name) == 0) { - return lookups[i].pmain(argc, argv, lookups[i].pusage); + + for (auto it = lookup_groups.begin(); it != lookup_groups.end(); it++) { + auto lookups = it->lookups; + for (auto it2 = lookups.begin(); it2 != lookups.end(); it2++) { + if (std::string(argv[0]) == it2->name) { + return it2->pmain(argc, argv, it2->pusage); + } } } + std::cerr << exename << ": subcommand \"" << argv[0] << "\" not found.\n"; return 1; } @@ -276,4 +321,5 @@ int main(int argc, char **argv) { } catch (spffl::exception_t e) { std::cerr << e.what() << "\n"; } + return 0; } diff --git a/cli/spiff/z_handlers.cpp b/cli/spiff/z_handlers.cpp index a879a1f..d91f6aa 100644 --- a/cli/spiff/z_handlers.cpp +++ b/cli/spiff/z_handlers.cpp @@ -1,5 +1,5 @@ // ================================================================ -// Copyright (c) 2004 John Kerl. +// Copyright (c) 2004, 2023 John Kerl. // kerl.john.r@gmail.com // Please see LICENSE.txt. // ================================================================ diff --git a/cli/spiff/z_handlers.h b/cli/spiff/z_handlers.h index 386dc0f..1b2fed9 100644 --- a/cli/spiff/z_handlers.h +++ b/cli/spiff/z_handlers.h @@ -1,5 +1,5 @@ // ================================================================ -// Copyright (c) 2004 John Kerl. +// Copyright (c) 2004, 2023 John Kerl. // kerl.john.r@gmail.com // Please see LICENSE.txt. // ================================================================ diff --git a/pre-cmake/classes/teiginfo.h b/pre-cmake/classes/teiginfo.h index 2db04dc..54a1a8b 100644 --- a/pre-cmake/classes/teiginfo.h +++ b/pre-cmake/classes/teiginfo.h @@ -1,5 +1,5 @@ // ================================================================ -// Copyright (c) 2004 John Kerl. +// Copyright (c) 2004, 2023 John Kerl. // kerl.john.r@gmail.com // Please see LICENSE.txt. // ================================================================ diff --git a/pre-cmake/classes/tmvpoly.h b/pre-cmake/classes/tmvpoly.h index bf35ebe..8bc3b51 100644 --- a/pre-cmake/classes/tmvpoly.h +++ b/pre-cmake/classes/tmvpoly.h @@ -1,5 +1,5 @@ // ================================================================ -// Copyright (c) 2004 John Kerl. +// Copyright (c) 2004, 2023 John Kerl. // kerl.john.r@gmail.com // Please see LICENSE.txt. // ================================================================ diff --git a/pre-cmake/classes/tmvrat.h b/pre-cmake/classes/tmvrat.h index e934df0..26bd774 100644 --- a/pre-cmake/classes/tmvrat.h +++ b/pre-cmake/classes/tmvrat.h @@ -1,5 +1,5 @@ // ================================================================ -// Copyright (c) 2004 John Kerl. +// Copyright (c) 2004, 2023 John Kerl. // kerl.john.r@gmail.com // Please see LICENSE.txt. // ================================================================ diff --git a/pre-cmake/tools/chpols-2-4-4.cpp b/pre-cmake/tools/chpols-2-4-4.cpp index 7bbfd7f..998fc83 100644 --- a/pre-cmake/tools/chpols-2-4-4.cpp +++ b/pre-cmake/tools/chpols-2-4-4.cpp @@ -1,5 +1,5 @@ // ================================================================ -// Copyright (c) 2004 John Kerl. +// Copyright (c) 2004, 2023 John Kerl. // kerl.john.r@gmail.com // Please see LICENSE.txt. // ================================================================ diff --git a/pre-cmake/tools/f2pmchart.cpp b/pre-cmake/tools/f2pmchart.cpp index af21088..8f7ec10 100644 --- a/pre-cmake/tools/f2pmchart.cpp +++ b/pre-cmake/tools/f2pmchart.cpp @@ -1,5 +1,5 @@ // ================================================================ -// Copyright (c) 2004 John Kerl. +// Copyright (c) 2004, 2023 John Kerl. // kerl.john.r@gmail.com // Please see LICENSE.txt. // ================================================================ diff --git a/pre-cmake/tools/fppmchart.cpp b/pre-cmake/tools/fppmchart.cpp index 82dc0c0..94a16ee 100644 --- a/pre-cmake/tools/fppmchart.cpp +++ b/pre-cmake/tools/fppmchart.cpp @@ -1,5 +1,5 @@ // ================================================================ -// Copyright (c) 2004 John Kerl. +// Copyright (c) 2004, 2023 John Kerl. // kerl.john.r@gmail.com // Please see LICENSE.txt. // ================================================================ diff --git a/pre-cmake/tools/single.cpp b/pre-cmake/tools/single.cpp index 3e0336c..5293aba 100644 --- a/pre-cmake/tools/single.cpp +++ b/pre-cmake/tools/single.cpp @@ -1,5 +1,5 @@ // ================================================================ -// Copyright (c) 2004 John Kerl. +// Copyright (c) 2004, 2023 John Kerl. // kerl.john.r@gmail.com // Please see LICENSE.txt. // ================================================================ diff --git a/pre-cmake/tools/solve_unique.cpp b/pre-cmake/tools/solve_unique.cpp index 2331871..4671d86 100644 --- a/pre-cmake/tools/solve_unique.cpp +++ b/pre-cmake/tools/solve_unique.cpp @@ -1,5 +1,5 @@ // ================================================================ -// Copyright (c) 2004 John Kerl. +// Copyright (c) 2004, 2023 John Kerl. // kerl.john.r@gmail.com // Please see LICENSE.txt. // ================================================================ diff --git a/pre-cmake/utils/moebius.cpp b/pre-cmake/utils/moebius.cpp index 423ae56..01d241c 100644 --- a/pre-cmake/utils/moebius.cpp +++ b/pre-cmake/utils/moebius.cpp @@ -1,5 +1,5 @@ // ================================================================ -// Copyright (c) 2004 John Kerl. +// Copyright (c) 2004, 2023 John Kerl. // kerl.john.r@gmail.com // Please see LICENSE.txt. // ================================================================ diff --git a/pre-cmake/utils/moebius.h b/pre-cmake/utils/moebius.h index 3db1d7e..a41986b 100644 --- a/pre-cmake/utils/moebius.h +++ b/pre-cmake/utils/moebius.h @@ -1,5 +1,5 @@ // ================================================================ -// Copyright (c) 2004 John Kerl. +// Copyright (c) 2004, 2023 John Kerl. // kerl.john.r@gmail.com // Please see LICENSE.txt. // ================================================================ diff --git a/spffl/base/cmps.h b/spffl/base/cmps.h index 4b1e844..2776fa9 100644 --- a/spffl/base/cmps.h +++ b/spffl/base/cmps.h @@ -1,5 +1,5 @@ // ================================================================ -// Copyright (c) 2004 John Kerl. +// Copyright (c) 2004, 2023 John Kerl. // kerl.john.r@gmail.com // Please see LICENSE.txt. // ================================================================ diff --git a/spffl/base/line_scan.cpp b/spffl/base/line_scan.cpp index eee8ca2..5b68530 100644 --- a/spffl/base/line_scan.cpp +++ b/spffl/base/line_scan.cpp @@ -1,5 +1,5 @@ // ================================================================ -// Copyright (c) 2004 John Kerl. +// Copyright (c) 2004, 2023 John Kerl. // kerl.john.r@gmail.com // Please see LICENSE.txt. // ================================================================ diff --git a/spffl/base/line_scan.h b/spffl/base/line_scan.h index 0ce960a..520a308 100644 --- a/spffl/base/line_scan.h +++ b/spffl/base/line_scan.h @@ -1,5 +1,5 @@ // ================================================================ -// Copyright (c) 2004 John Kerl. +// Copyright (c) 2004, 2023 John Kerl. // kerl.john.r@gmail.com // Please see LICENSE.txt. // ================================================================ diff --git a/spffl/base/tokenize.cpp b/spffl/base/tokenize.cpp index cd7bc5a..21a8d57 100644 --- a/spffl/base/tokenize.cpp +++ b/spffl/base/tokenize.cpp @@ -1,5 +1,5 @@ // ================================================================ -// Copyright (c) 2004 John Kerl. +// Copyright (c) 2004, 2023 John Kerl. // kerl.john.r@gmail.com // Please see LICENSE.txt. // ================================================================ diff --git a/spffl/base/tokenize.h b/spffl/base/tokenize.h index 7f8e264..e7aa124 100644 --- a/spffl/base/tokenize.h +++ b/spffl/base/tokenize.h @@ -1,5 +1,5 @@ // ================================================================ -// Copyright (c) 2004 John Kerl. +// Copyright (c) 2004, 2023 John Kerl. // kerl.john.r@gmail.com // Please see LICENSE.txt. // ================================================================ diff --git a/spffl/bitrand/psdes.cpp b/spffl/bitrand/psdes.cpp index ca8b9d9..4bfbaaf 100644 --- a/spffl/bitrand/psdes.cpp +++ b/spffl/bitrand/psdes.cpp @@ -1,5 +1,5 @@ // ================================================================ -// Copyright (c) 2004 John Kerl. +// Copyright (c) 2004, 2023 John Kerl. // kerl.john.r@gmail.com // Please see LICENSE.txt. // ================================================================ diff --git a/spffl/bitrand/psdes.h b/spffl/bitrand/psdes.h index 47a9b66..e8cf3d4 100644 --- a/spffl/bitrand/psdes.h +++ b/spffl/bitrand/psdes.h @@ -1,5 +1,5 @@ // ================================================================ -// Copyright (c) 2004 John Kerl. +// Copyright (c) 2004, 2023 John Kerl. // kerl.john.r@gmail.com // Please see LICENSE.txt. // ================================================================ diff --git a/spffl/bits/bit_matrix_t.cpp b/spffl/bits/bit_matrix_t.cpp index 50e473a..acc30c6 100644 --- a/spffl/bits/bit_matrix_t.cpp +++ b/spffl/bits/bit_matrix_t.cpp @@ -1,5 +1,5 @@ // ================================================================ -// Copyright (c) 2004 John Kerl. +// Copyright (c) 2004, 2023 John Kerl. // kerl.john.r@gmail.com // Please see LICENSE.txt. // ================================================================ diff --git a/spffl/bits/bit_matrix_t.h b/spffl/bits/bit_matrix_t.h index a3e3833..afad397 100644 --- a/spffl/bits/bit_matrix_t.h +++ b/spffl/bits/bit_matrix_t.h @@ -1,5 +1,5 @@ // ================================================================ -// Copyright (c) 2004 John Kerl. +// Copyright (c) 2004, 2023 John Kerl. // kerl.john.r@gmail.com // Please see LICENSE.txt. // ================================================================ diff --git a/spffl/bits/bit_t.cpp b/spffl/bits/bit_t.cpp index 9c5d775..6da10ee 100644 --- a/spffl/bits/bit_t.cpp +++ b/spffl/bits/bit_t.cpp @@ -1,5 +1,5 @@ // ================================================================ -// Copyright (c) 2004 John Kerl. +// Copyright (c) 2004, 2023 John Kerl. // kerl.john.r@gmail.com // Please see LICENSE.txt. // ================================================================ diff --git a/spffl/bits/bit_t.h b/spffl/bits/bit_t.h index 36898da..5c1e598 100644 --- a/spffl/bits/bit_t.h +++ b/spffl/bits/bit_t.h @@ -1,5 +1,5 @@ // ================================================================ -// Copyright (c) 2004 John Kerl. +// Copyright (c) 2004, 2023 John Kerl. // kerl.john.r@gmail.com // Please see LICENSE.txt. // ================================================================ diff --git a/spffl/bits/bit_vector_t.cpp b/spffl/bits/bit_vector_t.cpp index a406384..3284f65 100644 --- a/spffl/bits/bit_vector_t.cpp +++ b/spffl/bits/bit_vector_t.cpp @@ -1,5 +1,5 @@ // ================================================================ -// Copyright (c) 2004 John Kerl. +// Copyright (c) 2004, 2023 John Kerl. // kerl.john.r@gmail.com // Please see LICENSE.txt. // ================================================================ diff --git a/spffl/bits/bit_vector_t.h b/spffl/bits/bit_vector_t.h index 39e4cc1..68133b0 100644 --- a/spffl/bits/bit_vector_t.h +++ b/spffl/bits/bit_vector_t.h @@ -1,5 +1,5 @@ // ================================================================ -// Copyright (c) 2004 John Kerl. +// Copyright (c) 2004, 2023 John Kerl. // kerl.john.r@gmail.com // Please see LICENSE.txt. // ================================================================ diff --git a/spffl/bits/count_bits.cpp b/spffl/bits/count_bits.cpp index f2a5e6c..b23edd7 100644 --- a/spffl/bits/count_bits.cpp +++ b/spffl/bits/count_bits.cpp @@ -1,5 +1,5 @@ // ================================================================ -// Copyright (c) 2004 John Kerl. +// Copyright (c) 2004, 2023 John Kerl. // kerl.john.r@gmail.com // Please see LICENSE.txt. // ================================================================ diff --git a/spffl/bits/count_bits.h b/spffl/bits/count_bits.h index dd1f9c4..cb7d5ad 100644 --- a/spffl/bits/count_bits.h +++ b/spffl/bits/count_bits.h @@ -1,5 +1,5 @@ // ================================================================ -// Copyright (c) 2004 John Kerl. +// Copyright (c) 2004, 2023 John Kerl. // kerl.john.r@gmail.com // Please see LICENSE.txt. // ================================================================ diff --git a/spffl/cli_parser/cmd_line_matrix_ops.h b/spffl/cli_parser/cmd_line_matrix_ops.h index f9daa92..c6d50b4 100644 --- a/spffl/cli_parser/cmd_line_matrix_ops.h +++ b/spffl/cli_parser/cmd_line_matrix_ops.h @@ -1,5 +1,5 @@ // ================================================================ -// Copyright (c) 2004 John Kerl. +// Copyright (c) 2004, 2023 John Kerl. // kerl.john.r@gmail.com // Please see LICENSE.txt. // ================================================================ diff --git a/spffl/cli_parser/cmd_line_ops.h b/spffl/cli_parser/cmd_line_ops.h index 02ad38d..5cd5b98 100644 --- a/spffl/cli_parser/cmd_line_ops.h +++ b/spffl/cli_parser/cmd_line_ops.h @@ -1,5 +1,5 @@ // ================================================================ -// Copyright (c) 2004 John Kerl. +// Copyright (c) 2004, 2023 John Kerl. // kerl.john.r@gmail.com // Please see LICENSE.txt. // ================================================================ diff --git a/spffl/cli_parser/cmd_line_vector_ops.h b/spffl/cli_parser/cmd_line_vector_ops.h index 4f53703..c4e9463 100644 --- a/spffl/cli_parser/cmd_line_vector_ops.h +++ b/spffl/cli_parser/cmd_line_vector_ops.h @@ -1,5 +1,5 @@ // ================================================================ -// Copyright (c) 2004 John Kerl. +// Copyright (c) 2004, 2023 John Kerl. // kerl.john.r@gmail.com // Please see LICENSE.txt. // ================================================================ diff --git a/spffl/containers/tfacinfo.h b/spffl/containers/tfacinfo.h index 54421f2..a325e18 100644 --- a/spffl/containers/tfacinfo.h +++ b/spffl/containers/tfacinfo.h @@ -1,5 +1,5 @@ // ================================================================ -// Copyright (c) 2004 John Kerl. +// Copyright (c) 2004, 2023 John Kerl. // kerl.john.r@gmail.com // Please see LICENSE.txt. // ================================================================ diff --git a/spffl/containers/tmatrix.h b/spffl/containers/tmatrix.h index 08f2ae0..dec8ebc 100644 --- a/spffl/containers/tmatrix.h +++ b/spffl/containers/tmatrix.h @@ -1,5 +1,5 @@ // ================================================================ -// Copyright (c) 2004 John Kerl. +// Copyright (c) 2004, 2023 John Kerl. // kerl.john.r@gmail.com // Please see LICENSE.txt. // ================================================================ diff --git a/spffl/containers/tstack.h b/spffl/containers/tstack.h index 8eddfee..f0a0804 100644 --- a/spffl/containers/tstack.h +++ b/spffl/containers/tstack.h @@ -1,5 +1,5 @@ // ================================================================ -// Copyright (c) 2004 John Kerl. +// Copyright (c) 2004, 2023 John Kerl. // kerl.john.r@gmail.com // Please see LICENSE.txt. // ================================================================ diff --git a/spffl/containers/tvector.h b/spffl/containers/tvector.h index 2784cd0..502a4f2 100644 --- a/spffl/containers/tvector.h +++ b/spffl/containers/tvector.h @@ -1,5 +1,5 @@ // ================================================================ -// Copyright (c) 2004 John Kerl. +// Copyright (c) 2004, 2023 John Kerl. // kerl.john.r@gmail.com // Please see LICENSE.txt. // ================================================================ diff --git a/spffl/factorization/f2_poly_factor.cpp b/spffl/factorization/f2_poly_factor.cpp index 9e636d0..6e62587 100644 --- a/spffl/factorization/f2_poly_factor.cpp +++ b/spffl/factorization/f2_poly_factor.cpp @@ -1,5 +1,5 @@ // ================================================================ -// Copyright (c) 2004 John Kerl. +// Copyright (c) 2004, 2023 John Kerl. // kerl.john.r@gmail.com // Please see LICENSE.txt. // ================================================================ diff --git a/spffl/factorization/f2_poly_factor.h b/spffl/factorization/f2_poly_factor.h index 4fc4252..91edaae 100644 --- a/spffl/factorization/f2_poly_factor.h +++ b/spffl/factorization/f2_poly_factor.h @@ -1,5 +1,5 @@ // ================================================================ -// Copyright (c) 2004 John Kerl. +// Copyright (c) 2004, 2023 John Kerl. // kerl.john.r@gmail.com // Please see LICENSE.txt. // ================================================================ diff --git a/spffl/factorization/f2_poly_totient.cpp b/spffl/factorization/f2_poly_totient.cpp index 8af2d66..1e49324 100644 --- a/spffl/factorization/f2_poly_totient.cpp +++ b/spffl/factorization/f2_poly_totient.cpp @@ -1,5 +1,5 @@ // ================================================================ -// Copyright (c) 2004 John Kerl. +// Copyright (c) 2004, 2023 John Kerl. // kerl.john.r@gmail.com // Please see LICENSE.txt. // ================================================================ diff --git a/spffl/factorization/f2_poly_totient.h b/spffl/factorization/f2_poly_totient.h index 06c8e9e..f8dd624 100644 --- a/spffl/factorization/f2_poly_totient.h +++ b/spffl/factorization/f2_poly_totient.h @@ -1,5 +1,5 @@ // ================================================================ -// Copyright (c) 2004 John Kerl. +// Copyright (c) 2004, 2023 John Kerl. // kerl.john.r@gmail.com // Please see LICENSE.txt. // ================================================================ diff --git a/spffl/factorization/f2n_poly_factor.cpp b/spffl/factorization/f2n_poly_factor.cpp index a28777e..6366e1c 100644 --- a/spffl/factorization/f2n_poly_factor.cpp +++ b/spffl/factorization/f2n_poly_factor.cpp @@ -1,5 +1,5 @@ // ================================================================ -// Copyright (c) 2004 John Kerl. +// Copyright (c) 2004, 2023 John Kerl. // kerl.john.r@gmail.com // Please see LICENSE.txt. // ================================================================ diff --git a/spffl/factorization/f2n_poly_factor.h b/spffl/factorization/f2n_poly_factor.h index e212e20..c532d29 100644 --- a/spffl/factorization/f2n_poly_factor.h +++ b/spffl/factorization/f2n_poly_factor.h @@ -1,5 +1,5 @@ // ================================================================ -// Copyright (c) 2004 John Kerl. +// Copyright (c) 2004, 2023 John Kerl. // kerl.john.r@gmail.com // Please see LICENSE.txt. // ================================================================ diff --git a/spffl/factorization/f2n_poly_totient.cpp b/spffl/factorization/f2n_poly_totient.cpp index fce5a62..b0df3ed 100644 --- a/spffl/factorization/f2n_poly_totient.cpp +++ b/spffl/factorization/f2n_poly_totient.cpp @@ -1,5 +1,5 @@ // ================================================================ -// Copyright (c) 2004 John Kerl. +// Copyright (c) 2004, 2023 John Kerl. // kerl.john.r@gmail.com // Please see LICENSE.txt. // ================================================================ diff --git a/spffl/factorization/f2n_poly_totient.h b/spffl/factorization/f2n_poly_totient.h index 40a0ea0..3e62a92 100644 --- a/spffl/factorization/f2n_poly_totient.h +++ b/spffl/factorization/f2n_poly_totient.h @@ -1,5 +1,5 @@ // ================================================================ -// Copyright (c) 2004 John Kerl. +// Copyright (c) 2004, 2023 John Kerl. // kerl.john.r@gmail.com // Please see LICENSE.txt. // ================================================================ diff --git a/spffl/factorization/fp_poly_factor.cpp b/spffl/factorization/fp_poly_factor.cpp index e7649aa..ac57f5d 100644 --- a/spffl/factorization/fp_poly_factor.cpp +++ b/spffl/factorization/fp_poly_factor.cpp @@ -1,5 +1,5 @@ // ================================================================ -// Copyright (c) 2004 John Kerl. +// Copyright (c) 2004, 2023 John Kerl. // kerl.john.r@gmail.com // Please see LICENSE.txt. // ================================================================ diff --git a/spffl/factorization/fp_poly_factor.h b/spffl/factorization/fp_poly_factor.h index fe35068..ece2d54 100644 --- a/spffl/factorization/fp_poly_factor.h +++ b/spffl/factorization/fp_poly_factor.h @@ -1,5 +1,5 @@ // ================================================================ -// Copyright (c) 2004 John Kerl. +// Copyright (c) 2004, 2023 John Kerl. // kerl.john.r@gmail.com // Please see LICENSE.txt. // ================================================================ diff --git a/spffl/factorization/fp_poly_totient.cpp b/spffl/factorization/fp_poly_totient.cpp index 5ec35a6..574fbd2 100644 --- a/spffl/factorization/fp_poly_totient.cpp +++ b/spffl/factorization/fp_poly_totient.cpp @@ -1,5 +1,5 @@ // ================================================================ -// Copyright (c) 2004 John Kerl. +// Copyright (c) 2004, 2023 John Kerl. // kerl.john.r@gmail.com // Please see LICENSE.txt. // ================================================================ diff --git a/spffl/factorization/fp_poly_totient.h b/spffl/factorization/fp_poly_totient.h index b76c0f1..23d0269 100644 --- a/spffl/factorization/fp_poly_totient.h +++ b/spffl/factorization/fp_poly_totient.h @@ -1,5 +1,5 @@ // ================================================================ -// Copyright (c) 2004 John Kerl. +// Copyright (c) 2004, 2023 John Kerl. // kerl.john.r@gmail.com // Please see LICENSE.txt. // ================================================================ diff --git a/spffl/factorization/int_factor.cpp b/spffl/factorization/int_factor.cpp index fae20b7..0542918 100644 --- a/spffl/factorization/int_factor.cpp +++ b/spffl/factorization/int_factor.cpp @@ -1,5 +1,5 @@ // ================================================================ -// Copyright (c) 2004 John Kerl. +// Copyright (c) 2004, 2023 John Kerl. // kerl.john.r@gmail.com // Please see LICENSE.txt. // ================================================================ diff --git a/spffl/factorization/int_factor.h b/spffl/factorization/int_factor.h index ebbeb72..ba31caa 100644 --- a/spffl/factorization/int_factor.h +++ b/spffl/factorization/int_factor.h @@ -1,5 +1,5 @@ // ================================================================ -// Copyright (c) 2004 John Kerl. +// Copyright (c) 2004, 2023 John Kerl. // kerl.john.r@gmail.com // Please see LICENSE.txt. // ================================================================ diff --git a/spffl/intmath/int_gcd.cpp b/spffl/intmath/int_gcd.cpp index 522c4fe..508a3f7 100644 --- a/spffl/intmath/int_gcd.cpp +++ b/spffl/intmath/int_gcd.cpp @@ -1,5 +1,5 @@ // ================================================================ -// Copyright (c) 2004 John Kerl. +// Copyright (c) 2004, 2023 John Kerl. // kerl.john.r@gmail.com // Please see LICENSE.txt. // ================================================================ diff --git a/spffl/intmath/int_gcd.h b/spffl/intmath/int_gcd.h index 42cb17e..8a633c3 100644 --- a/spffl/intmath/int_gcd.h +++ b/spffl/intmath/int_gcd.h @@ -1,5 +1,5 @@ // ================================================================ -// Copyright (c) 2004 John Kerl. +// Copyright (c) 2004, 2023 John Kerl. // kerl.john.r@gmail.com // Please see LICENSE.txt. // ================================================================ diff --git a/spffl/intmath/int_power.cpp b/spffl/intmath/int_power.cpp index 20b0f92..161fbe9 100644 --- a/spffl/intmath/int_power.cpp +++ b/spffl/intmath/int_power.cpp @@ -1,5 +1,5 @@ // ================================================================ -// Copyright (c) 2004 John Kerl. +// Copyright (c) 2004, 2023 John Kerl. // kerl.john.r@gmail.com // Please see LICENSE.txt. // ================================================================ diff --git a/spffl/intmath/int_power.h b/spffl/intmath/int_power.h index 4163e87..06b715b 100644 --- a/spffl/intmath/int_power.h +++ b/spffl/intmath/int_power.h @@ -1,5 +1,5 @@ // ================================================================ -// Copyright (c) 2004 John Kerl. +// Copyright (c) 2004, 2023 John Kerl. // kerl.john.r@gmail.com // Please see LICENSE.txt. // ================================================================ diff --git a/spffl/intmath/int_sqrt.cpp b/spffl/intmath/int_sqrt.cpp index 8881819..14abe55 100644 --- a/spffl/intmath/int_sqrt.cpp +++ b/spffl/intmath/int_sqrt.cpp @@ -1,5 +1,5 @@ // ================================================================ -// Copyright (c) 2004 John Kerl. +// Copyright (c) 2004, 2023 John Kerl. // kerl.john.r@gmail.com // Please see LICENSE.txt. // ================================================================ diff --git a/spffl/intmath/int_sqrt.h b/spffl/intmath/int_sqrt.h index ce01018..d0f80a2 100644 --- a/spffl/intmath/int_sqrt.h +++ b/spffl/intmath/int_sqrt.h @@ -1,5 +1,5 @@ // ================================================================ -// Copyright (c) 2004 John Kerl. +// Copyright (c) 2004, 2023 John Kerl. // kerl.john.r@gmail.com // Please see LICENSE.txt. // ================================================================ diff --git a/spffl/intmath/int_totient.cpp b/spffl/intmath/int_totient.cpp index a2edf12..2195899 100644 --- a/spffl/intmath/int_totient.cpp +++ b/spffl/intmath/int_totient.cpp @@ -1,5 +1,5 @@ // ================================================================ -// Copyright (c) 2004 John Kerl. +// Copyright (c) 2004, 2023 John Kerl. // kerl.john.r@gmail.com // Please see LICENSE.txt. // ================================================================ diff --git a/spffl/intmath/int_totient.h b/spffl/intmath/int_totient.h index cc1e77b..dc27c48 100644 --- a/spffl/intmath/int_totient.h +++ b/spffl/intmath/int_totient.h @@ -1,5 +1,5 @@ // ================================================================ -// Copyright (c) 2004 John Kerl. +// Copyright (c) 2004, 2023 John Kerl. // kerl.john.r@gmail.com // Please see LICENSE.txt. // ================================================================ diff --git a/spffl/intmath/intmod_t.cpp b/spffl/intmath/intmod_t.cpp index 03668c3..482d5e2 100644 --- a/spffl/intmath/intmod_t.cpp +++ b/spffl/intmath/intmod_t.cpp @@ -1,5 +1,5 @@ // ================================================================ -// Copyright (c) 2004 John Kerl. +// Copyright (c) 2004, 2023 John Kerl. // kerl.john.r@gmail.com // Please see LICENSE.txt. // ================================================================ diff --git a/spffl/intmath/intmod_t.h b/spffl/intmath/intmod_t.h index 7544527..3b3888f 100644 --- a/spffl/intmath/intmod_t.h +++ b/spffl/intmath/intmod_t.h @@ -1,5 +1,5 @@ // ================================================================ -// Copyright (c) 2004 John Kerl. +// Copyright (c) 2004, 2023 John Kerl. // kerl.john.r@gmail.com // Please see LICENSE.txt. // ================================================================ diff --git a/spffl/intmath/intrat_t.cpp b/spffl/intmath/intrat_t.cpp index 4cd05c1..1f8012b 100644 --- a/spffl/intmath/intrat_t.cpp +++ b/spffl/intmath/intrat_t.cpp @@ -1,5 +1,5 @@ // ================================================================ -// Copyright (c) 2004 John Kerl. +// Copyright (c) 2004, 2023 John Kerl. // kerl.john.r@gmail.com // Please see LICENSE.txt. // ================================================================ diff --git a/spffl/intmath/intrat_t.h b/spffl/intmath/intrat_t.h index 405e6a1..1e0e85f 100644 --- a/spffl/intmath/intrat_t.h +++ b/spffl/intmath/intrat_t.h @@ -1,5 +1,5 @@ // ================================================================ -// Copyright (c) 2004 John Kerl. +// Copyright (c) 2004, 2023 John Kerl. // kerl.john.r@gmail.com // Please see LICENSE.txt. // ================================================================ diff --git a/spffl/intmath/is_prime.cpp b/spffl/intmath/is_prime.cpp index 24295b4..9923d46 100644 --- a/spffl/intmath/is_prime.cpp +++ b/spffl/intmath/is_prime.cpp @@ -1,5 +1,5 @@ // ================================================================ -// Copyright (c) 2004 John Kerl. +// Copyright (c) 2004, 2023 John Kerl. // kerl.john.r@gmail.com // Please see LICENSE.txt. // ================================================================ diff --git a/spffl/intmath/is_prime.h b/spffl/intmath/is_prime.h index ee4cc8e..e5fcabb 100644 --- a/spffl/intmath/is_prime.h +++ b/spffl/intmath/is_prime.h @@ -1,5 +1,5 @@ // ================================================================ -// Copyright (c) 2004 John Kerl. +// Copyright (c) 2004, 2023 John Kerl. // kerl.john.r@gmail.com // Please see LICENSE.txt. // ================================================================ diff --git a/spffl/intmath/log2.cpp b/spffl/intmath/log2.cpp index 860534b..85c23b2 100644 --- a/spffl/intmath/log2.cpp +++ b/spffl/intmath/log2.cpp @@ -1,5 +1,5 @@ // ================================================================ -// Copyright (c) 2004 John Kerl. +// Copyright (c) 2004, 2023 John Kerl. // kerl.john.r@gmail.com // Please see LICENSE.txt. // ================================================================ diff --git a/spffl/intmath/log2.cpp.table b/spffl/intmath/log2.cpp.table index 96363ee..190a6e8 100644 --- a/spffl/intmath/log2.cpp.table +++ b/spffl/intmath/log2.cpp.table @@ -1,5 +1,5 @@ // ================================================================ -// Copyright (c) 2004 John Kerl. +// Copyright (c) 2004, 2023 John Kerl. // kerl.john.r@gmail.com // Please see LICENSE.txt. // ================================================================ diff --git a/spffl/intmath/log2.h b/spffl/intmath/log2.h index 001b5c7..d64bccb 100644 --- a/spffl/intmath/log2.h +++ b/spffl/intmath/log2.h @@ -1,5 +1,5 @@ // ================================================================ -// Copyright (c) 2004 John Kerl. +// Copyright (c) 2004, 2023 John Kerl. // kerl.john.r@gmail.com // Please see LICENSE.txt. // ================================================================ diff --git a/spffl/intmath/primes_16.cpp b/spffl/intmath/primes_16.cpp index 192740d..eb939b9 100644 --- a/spffl/intmath/primes_16.cpp +++ b/spffl/intmath/primes_16.cpp @@ -1,5 +1,5 @@ // ================================================================ -// Copyright (c) 2004 John Kerl. +// Copyright (c) 2004, 2023 John Kerl. // kerl.john.r@gmail.com // Please see LICENSE.txt. // ================================================================ diff --git a/spffl/intmath/primes_16.h b/spffl/intmath/primes_16.h index 5bb0416..6fd388b 100644 --- a/spffl/intmath/primes_16.h +++ b/spffl/intmath/primes_16.h @@ -1,5 +1,5 @@ // ================================================================ -// Copyright (c) 2004 John Kerl. +// Copyright (c) 2004, 2023 John Kerl. // kerl.john.r@gmail.com // Please see LICENSE.txt. // ================================================================ diff --git a/spffl/linalg/f2_linear_algebra.cpp b/spffl/linalg/f2_linear_algebra.cpp index 4592989..200e25f 100644 --- a/spffl/linalg/f2_linear_algebra.cpp +++ b/spffl/linalg/f2_linear_algebra.cpp @@ -1,5 +1,5 @@ // ================================================================ -// Copyright (c) 2004 John Kerl. +// Copyright (c) 2004, 2023 John Kerl. // kerl.john.r@gmail.com // Please see LICENSE.txt. // ================================================================ diff --git a/spffl/linalg/f2_linear_algebra.h b/spffl/linalg/f2_linear_algebra.h index 4313ec5..20288c6 100644 --- a/spffl/linalg/f2_linear_algebra.h +++ b/spffl/linalg/f2_linear_algebra.h @@ -1,5 +1,5 @@ // ================================================================ -// Copyright (c) 2004 John Kerl. +// Copyright (c) 2004, 2023 John Kerl. // kerl.john.r@gmail.com // Please see LICENSE.txt. // ================================================================ diff --git a/spffl/linalg/f2_polymod_convert.cpp b/spffl/linalg/f2_polymod_convert.cpp index 16d2557..dc0415d 100644 --- a/spffl/linalg/f2_polymod_convert.cpp +++ b/spffl/linalg/f2_polymod_convert.cpp @@ -1,5 +1,5 @@ // ================================================================ -// Copyright (c) 2004 John Kerl. +// Copyright (c) 2004, 2023 John Kerl. // kerl.john.r@gmail.com // Please see LICENSE.txt. // ================================================================ diff --git a/spffl/linalg/f2_polymod_convert.h b/spffl/linalg/f2_polymod_convert.h index 9688ff0..e5d79c8 100644 --- a/spffl/linalg/f2_polymod_convert.h +++ b/spffl/linalg/f2_polymod_convert.h @@ -1,5 +1,5 @@ // ================================================================ -// Copyright (c) 2004 John Kerl. +// Copyright (c) 2004, 2023 John Kerl. // kerl.john.r@gmail.com // Please see LICENSE.txt. // ================================================================ diff --git a/spffl/linalg/f2_polymod_linear_algebra.cpp b/spffl/linalg/f2_polymod_linear_algebra.cpp index fbc1e55..16edae8 100644 --- a/spffl/linalg/f2_polymod_linear_algebra.cpp +++ b/spffl/linalg/f2_polymod_linear_algebra.cpp @@ -1,5 +1,5 @@ // ================================================================ -// Copyright (c) 2004 John Kerl. +// Copyright (c) 2004, 2023 John Kerl. // kerl.john.r@gmail.com // Please see LICENSE.txt. // ================================================================ diff --git a/spffl/linalg/f2_polymod_linear_algebra.h b/spffl/linalg/f2_polymod_linear_algebra.h index 7e68f7d..a7108ea 100644 --- a/spffl/linalg/f2_polymod_linear_algebra.h +++ b/spffl/linalg/f2_polymod_linear_algebra.h @@ -1,5 +1,5 @@ // ================================================================ -// Copyright (c) 2004 John Kerl. +// Copyright (c) 2004, 2023 John Kerl. // kerl.john.r@gmail.com // Please see LICENSE.txt. // ================================================================ diff --git a/spffl/linalg/fp_linear_algebra.cpp b/spffl/linalg/fp_linear_algebra.cpp index c616021..9892daf 100644 --- a/spffl/linalg/fp_linear_algebra.cpp +++ b/spffl/linalg/fp_linear_algebra.cpp @@ -1,5 +1,5 @@ // ================================================================ -// Copyright (c) 2004 John Kerl. +// Copyright (c) 2004, 2023 John Kerl. // kerl.john.r@gmail.com // Please see LICENSE.txt. // ================================================================ diff --git a/spffl/linalg/fp_linear_algebra.h b/spffl/linalg/fp_linear_algebra.h index 6644eb9..cbfe715 100644 --- a/spffl/linalg/fp_linear_algebra.h +++ b/spffl/linalg/fp_linear_algebra.h @@ -1,5 +1,5 @@ // ================================================================ -// Copyright (c) 2004 John Kerl. +// Copyright (c) 2004, 2023 John Kerl. // kerl.john.r@gmail.com // Please see LICENSE.txt. // ================================================================ diff --git a/spffl/linalg/min_char_polys.cpp b/spffl/linalg/min_char_polys.cpp index 0260874..87306cf 100644 --- a/spffl/linalg/min_char_polys.cpp +++ b/spffl/linalg/min_char_polys.cpp @@ -1,5 +1,5 @@ // ================================================================ -// Copyright (c) 2004 John Kerl. +// Copyright (c) 2004, 2023 John Kerl. // kerl.john.r@gmail.com // Please see LICENSE.txt. // ================================================================ diff --git a/spffl/linalg/min_char_polys.h b/spffl/linalg/min_char_polys.h index c5d866d..9bf9ca1 100644 --- a/spffl/linalg/min_char_polys.h +++ b/spffl/linalg/min_char_polys.h @@ -1,5 +1,5 @@ // ================================================================ -// Copyright (c) 2004 John Kerl. +// Copyright (c) 2004, 2023 John Kerl. // kerl.john.r@gmail.com // Please see LICENSE.txt. // ================================================================ diff --git a/spffl/list/list_elements.cpp b/spffl/list/list_elements.cpp index 838f69c..b7f271d 100644 --- a/spffl/list/list_elements.cpp +++ b/spffl/list/list_elements.cpp @@ -1,5 +1,5 @@ // ================================================================ -// Copyright (c) 2004 John Kerl. +// Copyright (c) 2004, 2023 John Kerl. // kerl.john.r@gmail.com // Please see LICENSE.txt. // ================================================================ diff --git a/spffl/list/list_elements.h b/spffl/list/list_elements.h index 693052c..d4bd194 100644 --- a/spffl/list/list_elements.h +++ b/spffl/list/list_elements.h @@ -1,5 +1,5 @@ // ================================================================ -// Copyright (c) 2004 John Kerl. +// Copyright (c) 2004, 2023 John Kerl. // kerl.john.r@gmail.com // Please see LICENSE.txt. // ================================================================ diff --git a/spffl/polynomials/f2_poly_t.cpp b/spffl/polynomials/f2_poly_t.cpp index 5e9d3df..6b9d2ef 100644 --- a/spffl/polynomials/f2_poly_t.cpp +++ b/spffl/polynomials/f2_poly_t.cpp @@ -1,5 +1,5 @@ // ================================================================ -// Copyright (c) 2004 John Kerl. +// Copyright (c) 2004, 2023 John Kerl. // kerl.john.r@gmail.com // Please see LICENSE.txt. // ================================================================ diff --git a/spffl/polynomials/f2_poly_t.h b/spffl/polynomials/f2_poly_t.h index 3b2a06e..4df94ca 100644 --- a/spffl/polynomials/f2_poly_t.h +++ b/spffl/polynomials/f2_poly_t.h @@ -1,5 +1,5 @@ // ================================================================ -// Copyright (c) 2004 John Kerl. +// Copyright (c) 2004, 2023 John Kerl. // kerl.john.r@gmail.com // Please see LICENSE.txt. // ================================================================ diff --git a/spffl/polynomials/f2_polymod_t.cpp b/spffl/polynomials/f2_polymod_t.cpp index d892014..7ddc5ab 100644 --- a/spffl/polynomials/f2_polymod_t.cpp +++ b/spffl/polynomials/f2_polymod_t.cpp @@ -1,5 +1,5 @@ // ================================================================ -// Copyright (c) 2004 John Kerl. +// Copyright (c) 2004, 2023 John Kerl. // kerl.john.r@gmail.com // Please see LICENSE.txt. // ================================================================ diff --git a/spffl/polynomials/f2_polymod_t.h b/spffl/polynomials/f2_polymod_t.h index c314886..eba519b 100644 --- a/spffl/polynomials/f2_polymod_t.h +++ b/spffl/polynomials/f2_polymod_t.h @@ -1,5 +1,5 @@ // ================================================================ -// Copyright (c) 2004 John Kerl. +// Copyright (c) 2004, 2023 John Kerl. // kerl.john.r@gmail.com // Please see LICENSE.txt. // ================================================================ diff --git a/spffl/polynomials/f2n_poly_t.cpp b/spffl/polynomials/f2n_poly_t.cpp index 81be53d..dea5b9f 100644 --- a/spffl/polynomials/f2n_poly_t.cpp +++ b/spffl/polynomials/f2n_poly_t.cpp @@ -1,5 +1,5 @@ // ================================================================ -// Copyright (c) 2004 John Kerl. +// Copyright (c) 2004, 2023 John Kerl. // kerl.john.r@gmail.com // Please see LICENSE.txt. // ================================================================ diff --git a/spffl/polynomials/f2n_poly_t.h b/spffl/polynomials/f2n_poly_t.h index b6cbb86..b29ffcd 100644 --- a/spffl/polynomials/f2n_poly_t.h +++ b/spffl/polynomials/f2n_poly_t.h @@ -1,5 +1,5 @@ // ================================================================ -// Copyright (c) 2004 John Kerl. +// Copyright (c) 2004, 2023 John Kerl. // kerl.john.r@gmail.com // Please see LICENSE.txt. // ================================================================ diff --git a/spffl/polynomials/f2n_polymod_t.cpp b/spffl/polynomials/f2n_polymod_t.cpp index 0042d39..10447c0 100644 --- a/spffl/polynomials/f2n_polymod_t.cpp +++ b/spffl/polynomials/f2n_polymod_t.cpp @@ -1,5 +1,5 @@ // ================================================================ -// Copyright (c) 2004 John Kerl. +// Copyright (c) 2004, 2023 John Kerl. // kerl.john.r@gmail.com // Please see LICENSE.txt. // ================================================================ diff --git a/spffl/polynomials/f2n_polymod_t.h b/spffl/polynomials/f2n_polymod_t.h index 5bc6673..a8d1692 100644 --- a/spffl/polynomials/f2n_polymod_t.h +++ b/spffl/polynomials/f2n_polymod_t.h @@ -1,5 +1,5 @@ // ================================================================ -// Copyright (c) 2004 John Kerl. +// Copyright (c) 2004, 2023 John Kerl. // kerl.john.r@gmail.com // Please see LICENSE.txt. // ================================================================ diff --git a/spffl/polynomials/fp_poly_t.cpp b/spffl/polynomials/fp_poly_t.cpp index bfe9dcd..84ac126 100644 --- a/spffl/polynomials/fp_poly_t.cpp +++ b/spffl/polynomials/fp_poly_t.cpp @@ -1,5 +1,5 @@ // ================================================================ -// Copyright (c) 2004 John Kerl. +// Copyright (c) 2004, 2023 John Kerl. // kerl.john.r@gmail.com // Please see LICENSE.txt. // ================================================================ diff --git a/spffl/polynomials/fp_poly_t.h b/spffl/polynomials/fp_poly_t.h index e2b4f49..fa373f6 100644 --- a/spffl/polynomials/fp_poly_t.h +++ b/spffl/polynomials/fp_poly_t.h @@ -1,5 +1,5 @@ // ================================================================ -// Copyright (c) 2004 John Kerl. +// Copyright (c) 2004, 2023 John Kerl. // kerl.john.r@gmail.com // Please see LICENSE.txt. // ================================================================ diff --git a/spffl/polynomials/fp_polymod_t.cpp b/spffl/polynomials/fp_polymod_t.cpp index dd52779..93f0a93 100644 --- a/spffl/polynomials/fp_polymod_t.cpp +++ b/spffl/polynomials/fp_polymod_t.cpp @@ -1,5 +1,5 @@ // ================================================================ -// Copyright (c) 2004 John Kerl. +// Copyright (c) 2004, 2023 John Kerl. // kerl.john.r@gmail.com // Please see LICENSE.txt. // ================================================================ diff --git a/spffl/polynomials/fp_polymod_t.h b/spffl/polynomials/fp_polymod_t.h index 512f0e8..61eaf82 100644 --- a/spffl/polynomials/fp_polymod_t.h +++ b/spffl/polynomials/fp_polymod_t.h @@ -1,5 +1,5 @@ // ================================================================ -// Copyright (c) 2004 John Kerl. +// Copyright (c) 2004, 2023 John Kerl. // kerl.john.r@gmail.com // Please see LICENSE.txt. // ================================================================ diff --git a/spffl/polynomials/fpn_poly_t.cpp b/spffl/polynomials/fpn_poly_t.cpp index 03d62d0..4451f2e 100644 --- a/spffl/polynomials/fpn_poly_t.cpp +++ b/spffl/polynomials/fpn_poly_t.cpp @@ -1,5 +1,5 @@ // ================================================================ -// Copyright (c) 2004 John Kerl. +// Copyright (c) 2004, 2023 John Kerl. // kerl.john.r@gmail.com // Please see LICENSE.txt. // ================================================================ diff --git a/spffl/polynomials/fpn_poly_t.h b/spffl/polynomials/fpn_poly_t.h index 7019895..a6310d1 100644 --- a/spffl/polynomials/fpn_poly_t.h +++ b/spffl/polynomials/fpn_poly_t.h @@ -1,5 +1,5 @@ // ================================================================ -// Copyright (c) 2004 John Kerl. +// Copyright (c) 2004, 2023 John Kerl. // kerl.john.r@gmail.com // Please see LICENSE.txt. // ================================================================ diff --git a/spffl/polynomials/fpn_polymod_t.cpp b/spffl/polynomials/fpn_polymod_t.cpp index d99d0db..459dcb2 100644 --- a/spffl/polynomials/fpn_polymod_t.cpp +++ b/spffl/polynomials/fpn_polymod_t.cpp @@ -1,5 +1,5 @@ // ================================================================ -// Copyright (c) 2004 John Kerl. +// Copyright (c) 2004, 2023 John Kerl. // kerl.john.r@gmail.com // Please see LICENSE.txt. // ================================================================ diff --git a/spffl/polynomials/fpn_polymod_t.h b/spffl/polynomials/fpn_polymod_t.h index 83ad674..ff7cb3d 100644 --- a/spffl/polynomials/fpn_polymod_t.h +++ b/spffl/polynomials/fpn_polymod_t.h @@ -1,5 +1,5 @@ // ================================================================ -// Copyright (c) 2004 John Kerl. +// Copyright (c) 2004, 2023 John Kerl. // kerl.john.r@gmail.com // Please see LICENSE.txt. // ================================================================ diff --git a/spffl/polynomials/q_poly_t.cpp b/spffl/polynomials/q_poly_t.cpp index 9aa4efc..b5bc424 100644 --- a/spffl/polynomials/q_poly_t.cpp +++ b/spffl/polynomials/q_poly_t.cpp @@ -1,5 +1,5 @@ // ================================================================ -// Copyright (c) 2004 John Kerl. +// Copyright (c) 2004, 2023 John Kerl. // kerl.john.r@gmail.com // Please see LICENSE.txt. // ================================================================ diff --git a/spffl/polynomials/q_poly_t.h b/spffl/polynomials/q_poly_t.h index 748eb87..a255ec3 100644 --- a/spffl/polynomials/q_poly_t.h +++ b/spffl/polynomials/q_poly_t.h @@ -1,5 +1,5 @@ // ================================================================ -// Copyright (c) 2004 John Kerl. +// Copyright (c) 2004, 2023 John Kerl. // kerl.john.r@gmail.com // Please see LICENSE.txt. // ================================================================ diff --git a/spffl/random/f2_poly_random.cpp b/spffl/random/f2_poly_random.cpp index 2942213..d17f70d 100644 --- a/spffl/random/f2_poly_random.cpp +++ b/spffl/random/f2_poly_random.cpp @@ -1,5 +1,5 @@ // ================================================================ -// Copyright (c) 2004 John Kerl. +// Copyright (c) 2004, 2023 John Kerl. // kerl.john.r@gmail.com // Please see LICENSE.txt. // ================================================================ diff --git a/spffl/random/f2_poly_random.h b/spffl/random/f2_poly_random.h index 0fc17c8..85b9e9d 100644 --- a/spffl/random/f2_poly_random.h +++ b/spffl/random/f2_poly_random.h @@ -1,5 +1,5 @@ // ================================================================ -// Copyright (c) 2004 John Kerl. +// Copyright (c) 2004, 2023 John Kerl. // kerl.john.r@gmail.com // Please see LICENSE.txt. // ================================================================ diff --git a/spffl/random/f2_polymod_random.cpp b/spffl/random/f2_polymod_random.cpp index 109e369..fe20e93 100644 --- a/spffl/random/f2_polymod_random.cpp +++ b/spffl/random/f2_polymod_random.cpp @@ -1,5 +1,5 @@ // ================================================================ -// Copyright (c) 2004 John Kerl. +// Copyright (c) 2004, 2023 John Kerl. // kerl.john.r@gmail.com // Please see LICENSE.txt. // ================================================================ diff --git a/spffl/random/f2_polymod_random.h b/spffl/random/f2_polymod_random.h index 0397002..a21b16f 100644 --- a/spffl/random/f2_polymod_random.h +++ b/spffl/random/f2_polymod_random.h @@ -1,5 +1,5 @@ // ================================================================ -// Copyright (c) 2004 John Kerl. +// Copyright (c) 2004, 2023 John Kerl. // kerl.john.r@gmail.com // Please see LICENSE.txt. // ================================================================ diff --git a/spffl/random/f2n_poly_random.cpp b/spffl/random/f2n_poly_random.cpp index 171fcdb..148d053 100644 --- a/spffl/random/f2n_poly_random.cpp +++ b/spffl/random/f2n_poly_random.cpp @@ -1,5 +1,5 @@ // ================================================================ -// Copyright (c) 2004 John Kerl. +// Copyright (c) 2004, 2023 John Kerl. // kerl.john.r@gmail.com // Please see LICENSE.txt. // ================================================================ diff --git a/spffl/random/f2n_poly_random.h b/spffl/random/f2n_poly_random.h index d2a33cc..5e679da 100644 --- a/spffl/random/f2n_poly_random.h +++ b/spffl/random/f2n_poly_random.h @@ -1,5 +1,5 @@ // ================================================================ -// Copyright (c) 2004 John Kerl. +// Copyright (c) 2004, 2023 John Kerl. // kerl.john.r@gmail.com // Please see LICENSE.txt. // ================================================================ diff --git a/spffl/random/f2n_polymod_random.cpp b/spffl/random/f2n_polymod_random.cpp index 13ce9c7..a826e30 100644 --- a/spffl/random/f2n_polymod_random.cpp +++ b/spffl/random/f2n_polymod_random.cpp @@ -1,5 +1,5 @@ // ================================================================ -// Copyright (c) 2004 John Kerl. +// Copyright (c) 2004, 2023 John Kerl. // kerl.john.r@gmail.com // Please see LICENSE.txt. // ================================================================ diff --git a/spffl/random/f2n_polymod_random.h b/spffl/random/f2n_polymod_random.h index 30cfd21..225221f 100644 --- a/spffl/random/f2n_polymod_random.h +++ b/spffl/random/f2n_polymod_random.h @@ -1,5 +1,5 @@ // ================================================================ -// Copyright (c) 2004 John Kerl. +// Copyright (c) 2004, 2023 John Kerl. // kerl.john.r@gmail.com // Please see LICENSE.txt. // ================================================================ diff --git a/spffl/random/fp_poly_random.cpp b/spffl/random/fp_poly_random.cpp index 2362a5a..91d6b61 100644 --- a/spffl/random/fp_poly_random.cpp +++ b/spffl/random/fp_poly_random.cpp @@ -1,5 +1,5 @@ // ================================================================ -// Copyright (c) 2004 John Kerl. +// Copyright (c) 2004, 2023 John Kerl. // kerl.john.r@gmail.com // Please see LICENSE.txt. // ================================================================ diff --git a/spffl/random/fp_poly_random.h b/spffl/random/fp_poly_random.h index d43f772..c86d73c 100644 --- a/spffl/random/fp_poly_random.h +++ b/spffl/random/fp_poly_random.h @@ -1,5 +1,5 @@ // ================================================================ -// Copyright (c) 2004 John Kerl. +// Copyright (c) 2004, 2023 John Kerl. // kerl.john.r@gmail.com // Please see LICENSE.txt. // ================================================================ diff --git a/spffl/random/fp_polymod_random.cpp b/spffl/random/fp_polymod_random.cpp index c33aaec..1b056b5 100644 --- a/spffl/random/fp_polymod_random.cpp +++ b/spffl/random/fp_polymod_random.cpp @@ -1,5 +1,5 @@ // ================================================================ -// Copyright (c) 2004 John Kerl. +// Copyright (c) 2004, 2023 John Kerl. // kerl.john.r@gmail.com // Please see LICENSE.txt. // ================================================================ diff --git a/spffl/random/fp_polymod_random.h b/spffl/random/fp_polymod_random.h index 81d09e0..4602b21 100644 --- a/spffl/random/fp_polymod_random.h +++ b/spffl/random/fp_polymod_random.h @@ -1,5 +1,5 @@ // ================================================================ -// Copyright (c) 2004 John Kerl. +// Copyright (c) 2004, 2023 John Kerl. // kerl.john.r@gmail.com // Please see LICENSE.txt. // ================================================================ diff --git a/spffl/random/int_random.cpp b/spffl/random/int_random.cpp index 01d4399..510b763 100644 --- a/spffl/random/int_random.cpp +++ b/spffl/random/int_random.cpp @@ -1,5 +1,5 @@ // ================================================================ -// Copyright (c) 2004 John Kerl. +// Copyright (c) 2004, 2023 John Kerl. // kerl.john.r@gmail.com // Please see LICENSE.txt. // ================================================================ diff --git a/spffl/random/int_random.h b/spffl/random/int_random.h index 0ee7496..bcad1cc 100644 --- a/spffl/random/int_random.h +++ b/spffl/random/int_random.h @@ -1,5 +1,5 @@ // ================================================================ -// Copyright (c) 2004 John Kerl. +// Copyright (c) 2004, 2023 John Kerl. // kerl.john.r@gmail.com // Please see LICENSE.txt. // ================================================================ diff --git a/spffl/random/intmod_random.cpp b/spffl/random/intmod_random.cpp index 8fbb88a..6a22f7f 100644 --- a/spffl/random/intmod_random.cpp +++ b/spffl/random/intmod_random.cpp @@ -1,5 +1,5 @@ // ================================================================ -// Copyright (c) 2004 John Kerl. +// Copyright (c) 2004, 2023 John Kerl. // kerl.john.r@gmail.com // Please see LICENSE.txt. // ================================================================ diff --git a/spffl/random/intmod_random.h b/spffl/random/intmod_random.h index 07e16cd..10e1a82 100644 --- a/spffl/random/intmod_random.h +++ b/spffl/random/intmod_random.h @@ -1,5 +1,5 @@ // ================================================================ -// Copyright (c) 2004 John Kerl. +// Copyright (c) 2004, 2023 John Kerl. // kerl.john.r@gmail.com // Please see LICENSE.txt. // ================================================================ diff --git a/spffl/rationals/f2_polyrat_t.cpp b/spffl/rationals/f2_polyrat_t.cpp index 7c0b733..9a51763 100644 --- a/spffl/rationals/f2_polyrat_t.cpp +++ b/spffl/rationals/f2_polyrat_t.cpp @@ -1,5 +1,5 @@ // ================================================================ -// Copyright (c) 2004 John Kerl. +// Copyright (c) 2004, 2023 John Kerl. // kerl.john.r@gmail.com // Please see LICENSE.txt. // ================================================================ diff --git a/spffl/rationals/f2_polyrat_t.h b/spffl/rationals/f2_polyrat_t.h index e2ed83f..bdad46a 100644 --- a/spffl/rationals/f2_polyrat_t.h +++ b/spffl/rationals/f2_polyrat_t.h @@ -1,5 +1,5 @@ // ================================================================ -// Copyright (c) 2004 John Kerl. +// Copyright (c) 2004, 2023 John Kerl. // kerl.john.r@gmail.com // Please see LICENSE.txt. // ================================================================ diff --git a/spffl/rationals/f2n_polyrat_t.cpp b/spffl/rationals/f2n_polyrat_t.cpp index a6ec7ee..a5ce7ee 100644 --- a/spffl/rationals/f2n_polyrat_t.cpp +++ b/spffl/rationals/f2n_polyrat_t.cpp @@ -1,5 +1,5 @@ // ================================================================ -// Copyright (c) 2004 John Kerl. +// Copyright (c) 2004, 2023 John Kerl. // kerl.john.r@gmail.com // Please see LICENSE.txt. // ================================================================ diff --git a/spffl/rationals/f2n_polyrat_t.h b/spffl/rationals/f2n_polyrat_t.h index e6ddf74..8876303 100644 --- a/spffl/rationals/f2n_polyrat_t.h +++ b/spffl/rationals/f2n_polyrat_t.h @@ -1,5 +1,5 @@ // ================================================================ -// Copyright (c) 2004 John Kerl. +// Copyright (c) 2004, 2023 John Kerl. // kerl.john.r@gmail.com // Please see LICENSE.txt. // ================================================================ diff --git a/spffl/rationals/fp_polyrat_t.cpp b/spffl/rationals/fp_polyrat_t.cpp index b072483..efea880 100644 --- a/spffl/rationals/fp_polyrat_t.cpp +++ b/spffl/rationals/fp_polyrat_t.cpp @@ -1,5 +1,5 @@ // ================================================================ -// Copyright (c) 2004 John Kerl. +// Copyright (c) 2004, 2023 John Kerl. // kerl.john.r@gmail.com // Please see LICENSE.txt. // ================================================================ diff --git a/spffl/rationals/fp_polyrat_t.h b/spffl/rationals/fp_polyrat_t.h index 9a12b30..255bdbe 100644 --- a/spffl/rationals/fp_polyrat_t.h +++ b/spffl/rationals/fp_polyrat_t.h @@ -1,5 +1,5 @@ // ================================================================ -// Copyright (c) 2004 John Kerl. +// Copyright (c) 2004, 2023 John Kerl. // kerl.john.r@gmail.com // Please see LICENSE.txt. // ================================================================ diff --git a/spffl/units/f2_polymod_units.cpp b/spffl/units/f2_polymod_units.cpp index cf469f2..009b44e 100644 --- a/spffl/units/f2_polymod_units.cpp +++ b/spffl/units/f2_polymod_units.cpp @@ -1,5 +1,5 @@ // ================================================================ -// Copyright (c) 2004 John Kerl. +// Copyright (c) 2004, 2023 John Kerl. // kerl.john.r@gmail.com // Please see LICENSE.txt. // ================================================================ diff --git a/spffl/units/f2_polymod_units.h b/spffl/units/f2_polymod_units.h index f2881dc..4129675 100644 --- a/spffl/units/f2_polymod_units.h +++ b/spffl/units/f2_polymod_units.h @@ -1,5 +1,5 @@ // ================================================================ -// Copyright (c) 2004 John Kerl. +// Copyright (c) 2004, 2023 John Kerl. // kerl.john.r@gmail.com // Please see LICENSE.txt. // ================================================================ diff --git a/spffl/units/f2n_polymod_units.cpp b/spffl/units/f2n_polymod_units.cpp index a018785..80e1d74 100644 --- a/spffl/units/f2n_polymod_units.cpp +++ b/spffl/units/f2n_polymod_units.cpp @@ -1,5 +1,5 @@ // ================================================================ -// Copyright (c) 2004 John Kerl. +// Copyright (c) 2004, 2023 John Kerl. // kerl.john.r@gmail.com // Please see LICENSE.txt. // ================================================================ diff --git a/spffl/units/f2n_polymod_units.h b/spffl/units/f2n_polymod_units.h index 18502aa..97698ca 100644 --- a/spffl/units/f2n_polymod_units.h +++ b/spffl/units/f2n_polymod_units.h @@ -1,5 +1,5 @@ // ================================================================ -// Copyright (c) 2004 John Kerl. +// Copyright (c) 2004, 2023 John Kerl. // kerl.john.r@gmail.com // Please see LICENSE.txt. // ================================================================ diff --git a/spffl/units/fp_units.cpp b/spffl/units/fp_units.cpp index babe36d..278cc89 100644 --- a/spffl/units/fp_units.cpp +++ b/spffl/units/fp_units.cpp @@ -1,5 +1,5 @@ // ================================================================ -// Copyright (c) 2004 John Kerl. +// Copyright (c) 2004, 2023 John Kerl. // kerl.john.r@gmail.com // Please see LICENSE.txt. // ================================================================ diff --git a/spffl/units/fp_units.h b/spffl/units/fp_units.h index e96e53e..f0a0fcb 100644 --- a/spffl/units/fp_units.h +++ b/spffl/units/fp_units.h @@ -1,5 +1,5 @@ // ================================================================ -// Copyright (c) 2004 John Kerl. +// Copyright (c) 2004, 2023 John Kerl. // kerl.john.r@gmail.com // Please see LICENSE.txt. // ================================================================ diff --git a/todo.txt b/todo.txt index 564e58c..ecebe8d 100644 --- a/todo.txt +++ b/todo.txt @@ -7,8 +7,11 @@ - or, just build both o install our CMakeList.txt o try to get lib sources from globbing + o segv: spiff typo1 { typo2 4 } ! pre-cmake content +* nested handler-structs in spiff + * char* vs string literals * more std::string all around * int -> bool pass