* project: * add [codecov.io](https://codecove.io) to produce coverage reports in travis * use Visual Studio 2019 image in appveyor * [boost/ut](https://github.com/boost-experimental/ut): use boost.UT v1.1.6 * [fmtlib/fmt](https://fmt.dev/latest/index.html): bump to version v6.1.1 * optimizer: * use a evolutionary algorithm to init/reinit solver. In optimization mode, Baryonyx stores all solutions found during search. Two algorithms are used to initialize the X vector: * A crossover/mutation using two solutions is used to re-initialize the solver. * An improve mode using a dynamical kappa. * Quadratic objective function: Experimental support. * Z-coefficient: Enable the Z-coefficient solver. * random-solver: This solver is enabled with the `--random` command line option and in the `solver_parameters::solver_type`. It provides a pure random solver without any preference and Lagrangian relaxation. It is provided only for benchmark. * add Lagrangian multipliers sign change detection. * c++: * solvers: replace `fill` and `copy` with `fill_n` and `copy_n` equivalent. * solvers: replace `std::vector<T>` with a new `bit_array` to improve cache efficiency * main: fix signed/unsigned warning * solver * negative coefficient solvers: fix R access * add pi signed change detection * improve efficiency of random-solver * add reset function to reinit solver * solver: move normalized cost in thread part * optimizer: * replace time limit detection algorithm * add pi signed change detection to build a new constraint remaining list * benchmark: * fix sort functor behaviour * main: * fix time-limit parameter assignation * missing or malformed parameters equal error * fix infinity norm string * add a `--debug` mode. * CMake: * reduce warning level for msvc * use the BUILD_SHARED_LIBS CMake option to build share library. Default, a static library is build to enable all internal test that use private API.