Pitch: React Calculator EPX: atualização após 3 anos
Depois de aproximadamente três anos sem manutenção, decidi retomar e atualizar o React Calculator EPX, um pacote publicado no NPM voltado para operações matemáticas e utilitários numéricos em aplicações JavaScript e React.
Durante esse período, muita coisa mudou no ecossistema: novas versões do Node.js, evolução do TypeScript, mudanças nas práticas de distribuição de bibliotecas e uma maior preocupação com qualidade, testes e experiência do desenvolvedor. Revisitar um projeto antigo foi uma oportunidade interessante para aplicar aprendizados acumulados ao longo dos últimos anos.
Nessa grande atualização utilizei Claude Code em diversos trechos!
O pacote oferece funcionalidades matemáticas básicas e algumas operações mais avançadas, como:
Soma
Subtração
Multiplicação
Divisão
Fatorial
Sequência de Fibonacci.
Calculus — derivatives, integrals, limits
ComplexNumber — imaginary number arithmetic
Logarithm — ln, log2, log10, antilog, change of base
DiscreteMath — combinations, sets, binary, modular arithmetic
Algebra — Matrix — matrix operations, determinant, inverse, linear systems
Algebra — Polynomial — polynomial evaluation, derivative, root finding
Vector2D / Vector3D — vector arithmetic and geometry
AnalyticGeometry — points, lines, circles in the plane
SolidGeometry — volumes and surface areas of 3D solids
Statistics — mean, variance, correlation, quartiles
Exemplo de Uso:
import {
Calculator, Calculus, ComplexNumber, Logarithm,
DiscreteMath, Matrix, Polynomial,
Vector2D, Vector3D,
AnalyticGeometry, SolidGeometry, Statistics,
} from 'react-calculator-epx';
// Arithmetic
new Calculator({ num_1: 20, num_2: 10 }).sum() // 30
// Calculus
Calculus.derivative(x => x ** 2, 3) // ≈ 6
Calculus.integral(x => x ** 2, 0, 1) // ≈ 0.333
// Complex numbers
new ComplexNumber(3, 4).modulus() // 5
// Statistics
Statistics.mean([1, 2, 3, 4, 5]) // 3
Statistics.correlation([1,2,3], [1,2,3]) // 1
// 3D geometry
SolidGeometry.sphere(5) // { volume: 523.598, surfaceArea: 314.159 }
Para quem quiser conhecer o projeto: