Para recuperar un poco el blog, que últimamente está muy mustio, voy a hablar de un par de desarrollos que he hecho y publicado en PHP. Los he llamado con el original nombre de Equation y Matrix.
Los tenía desde hace bastante tiempo, pero aprovechando que le estoy dando a TDD y a los testeos unitarios, los he adecentado y completado hasta ponerlos decentes para publicarlos y este es el resultado.
Equation
Es una sencilla clase que nos permite trabajar con una ecuación polinomial de grado n-ésimo mediante un objeto, facilitando el acceso a cada uno de los coeficientes así como una sencilla evaluación de la misma (basada en el método Horner).
Además, permite mostrar la ecuación renderizada al formato indicado de una forma muy sencilla. Actualmente en el paquete existe la opción de mostrarlo en formato HTML, cuyo resultado final sería algo del estilo: y = x3 + 7x2 + 10
El código completo, incluyendo ejemplos y test unitarios está publicado en github. También lo he publicado en phpclasses (sin test unitarios por lo engorroso que es subir cada fichero de forma individual).
Matrix
Este paquete consta de varias clases, la principal es Matrix que permite representar en un objeto una matriz matemática. Podemos además realizar distintas operaciones que a día de hoy son:
- suma de dos matrices
- resta de dos matrices
- multiplicación de dos matrices
- multiplicación de una matriz por un escalar
- multiplicación de una fila por un valor
- multiplicación de una columna por un valor
- cambiar dos filas
- cambiar dos columnas
- inversa de una matriz
- unir dos matrices compatibles
- trasponer una matriz
- eliminación de Gauss-Jordan (con el que poder obtener, por ejemplo, ajustes polinómicos de cualquier grado o inversas)
Las clases, con sus correspondientes test unitarios, están publicada en github.
Enlaces
Update 2010.08.01: PHPClasses acaba de avisarme que Equation está nominada al Innovation Award July 2010 🙂 A ver si hay suerte
Update 2010.09.01: Olé! Equation ha quedado 4ª en el Innovation Award July 2010 de PHPClasses