Bonjour !
Dans cet article, je partagerai une bibliothèque C que j'ai créée : Advanced Math Library, ou libamath. Il s'agit d'une bibliothèque C qui centralise certaines de mes implémentations mathématiques, en se concentrant sur les performances et le multithreading.
libamath comprend des algorithmes tels que la corrélation de Kendall, des algorithmes génétiques d'optimisation, des transformations de Fourier et divers calculs statistiques tels que la moyenne, la médiane et l'écart type. Je prévois également d'ajouter la prise en charge de la factorielle BigInt, qui offrira une plus grande précision pour la distribution de Poisson et d'autres calculs avancés. Beaucoup de ces fonctions sont optimisées avec la prise en charge multithread pour gérer des tâches de calcul intensives.
Voici quelques exemples de la façon dont vous pouvez utiliser libamath :
double data1[] = {1.0, 2.0, 3.0}; double data2[] = {3.0, 2.0, 1.0}; double tau = amath_kcorr(data1, data2, 3); printf("Kendall's Tau: %f\n", tau);
void *fitness_function(Individuals *individuals) { // Define fitness logic return NULL; } Individuals *pop = amath_generate_individuals(100, 0.05, 0.001, 0.25, 4, 0.0, 1.0); for (int i = 0; i < 1000; i++) { amath_fit(pop, fitness_function); amath_mutate(pop); amath_reproduce(pop); } amath_destroy_individuals(pop);
double complex data[] = {1.0, 2.0, 3.0, 4.0}; amath_dft(data, 4, 2); // Perform DFT using 2 threads
double data[] = {1.0, 2.0, 3.0}; double mean_value = amath_mean(data, 3); printf("Mean: %f\n", mean_value);
Pour ceux qui connaissent mes référentiels précédents, libamath rassemble à la fois la corrélation Kendall (maintenant avec des améliorations de performances) et les implémentations de l'algorithme génétique en un seul endroit. Cela facilitera l’expansion et la gestion des outils au fil du temps.
Pendant mon temps libre, j'ai l'intention d'ajouter encore plus de fonctionnalités, notamment :
C'est quelque chose que j'ai construit il y a quelque temps, car j'utilise souvent ces fonctions dans mon travail, et j'ai décidé de le partager au cas où quelqu'un d'autre le trouverait utile.
Vous pouvez consulter le projet et contribuer ici : https://github.com/ariasdiniz/advanced_math_lib
Comme toujours, les suggestions et les commentaires sont les bienvenus !
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!