Llamando a Python desde C: Una Guía Práctica

2025-05-29
Llamando a Python desde C: Una Guía Práctica

Este artículo proporciona una guía práctica paso a paso sobre cómo llamar a funciones de Python desde código C. Comenzando por lo básico, cubre la configuración del entorno en Linux/Mac, incluyendo la inclusión del encabezado Python.h, la compilación del código C y el uso de Py_Initialize y Py_Finalize para inicializar y finalizar el intérprete de Python. Se detalla cómo cargar módulos de Python, obtener atributos de función, llamar a funciones (tanto sin parámetros como con parámetros) y limpiar la memoria. A través de ejemplos de código concretos, los lectores aprenden a integrar funciones de Python en programas C, permitiendo una interacción fluida entre código C y Python.

Leer más

Introducción a la Programación para Particiones y Composiciones de Enteros

2025-05-18
Introducción a la Programación para Particiones y Composiciones de Enteros

LeetArxiv ha lanzado el Capítulo 1 de su nueva serie, "Lo que todo programador necesita saber sobre combinatoria enumerativa", una introducción a las particiones y composiciones de enteros. El artículo utiliza un enfoque accesible, guiando a los programadores a través de estos conceptos mediante la observación y el reconocimiento de patrones. Se proporciona código en C para generar composiciones débiles, enumerándolas eficientemente mediante coeficientes binomiales y búsqueda binaria.

Leer más
Desarrollo

LeetArxiv: Reimplementación de un algoritmo de factorización de enteros de 1931

2025-03-30
LeetArxiv: Reimplementación de un algoritmo de factorización de enteros de 1931

LeetArxiv recrea un algoritmo de factorización de enteros de 1931 de Lehmer y Powers, basado en fracciones continuas. El artículo explica meticulosamente el algoritmo, incluyendo el cálculo de la expansión de la fracción continua de una raíz cuadrada y el uso de los coeficientes resultantes (P y A) para la factorización. Un ejemplo paso a paso demuestra los detalles del algoritmo, factorizando con éxito el número 13290059. Este algoritmo, históricamente significativo, fue el primero en alcanzar un tiempo de factorización sub-exponencial.

Leer más

LeetArxiv: LeetCode para artículos de Arxiv - Guías de codificación práctica para la investigación

2025-02-24
LeetArxiv: LeetCode para artículos de Arxiv - Guías de codificación práctica para la investigación

LeetArxiv ofrece guías de codificación semanales y paso a paso basadas en artículos de Arxiv, dirigidas a programadores que están haciendo la transición a carreras de investigación. Un caso de estudio se centra en la implementación de la Transformada Discreta del Coseno (DCT) AAN de un artículo de 1981. La guía proporciona una implementación en C (fácilmente adaptable a otros lenguajes) detallando la ecuación DCT-II y las optimizaciones AAN: reducción de cálculos de coseno costosos, explotación de la simetría, uso de constantes precompiladas y habilitación del paralelismo. La presentación abarca el diagrama de flujo y el código del algoritmo, haciendo que la investigación compleja sea accesible a través de ejercicios prácticos de codificación.

Leer más

Emulando una GPU en una CPU usando Ensamblaje de Campo Finito

2025-01-17
Emulando una GPU en una CPU usando Ensamblaje de Campo Finito

Este artículo presenta Finite Field Assembly (FF-asm), un nuevo lenguaje de programación que permite la emulación de GPU en CPUs. FF-asm utiliza un paradigma de computación recursivo, eliminando la necesidad de vectorización SIMD o paralelismo OpenMP. Logra realizar grandes cálculos paralelos en una CPU creando un sistema matemático personalizado basado en la teoría de campos finitos y congruencias. El artículo proporciona ejemplos de código paso a paso que demuestran la suma y la multiplicación en FF-asm, mostrando su potencial para la emulación de GPU.

Leer más