Archive for the 'MathelSharp' Category

MathelSharp, Librería Matemática en C# (1)

Tuesday, July 28th, 2015

En este año comencé a revisar el tema Machine Learning más en detalle (ver Sobre Machine Learning) y me encontré con abundante uso de lenguaje R, MathLab y temas relacionados. Para seguir practicando TDD (Test-Driven Development) cada día, creé el proyecto:

https://github.com/ajlopez/MathelSharp

En C# (también tengo uno similar en JavaScript/NodeJS, https://github.com/ajlopez/MathelJS pero será tema de otro post), con licencia MIT.

La idea inicial es implementar las operaciones básicas de vectores (suma, resta, inversión, producto interno, multiplicación por un escalar) usando como “cuerpo de escalares” a double. Más adelante veré la conveniencia o no de incorporar números complejos. Luego implementar las operaciones de matrices (suma, resta, inversión, producto, determinante, cálculo de la inversa, traspuesta, etc), de nuevo sobre números reales implementados usando double de C#/.NET.

Como es una librería, esta funcionalidad se puede usar desde cualquier programa C#. Igual, el próximo paso es exponerlo con un lenguaje de programación “ad-hoc” como tiene MathLab, y poder escribir programas en ese lenguaje interpretado, tener un REPL y todo lo habitual para estas librerías. Me parece más interesante que implementar el lenguaje R, que me parece que tiene muchos bordes ásperos.

Y el último paso, si es necesario, es implementar los algoritmos y funciones habituales para este tipo de librerías. Veremos si hace falta para el uso que le voy a hacer, pero podría llegar a completar la librería con más funciones. Tengo las funciones de MathLab como ejemplo, ver el README.md del proyecto.

Como siempre, lo estoy programando paso a paso, en mi escaso tiempo libre, siguiendo el flujo de trabajo de TDD, que pueden comprobar viendo la historia de commits del proyecto.

Nos leemos!

Angel “Java” Lopez
http://www.ajlopez.com
http://twitter.com/ajlopez