Welcome to the scala-au.id.cxd.math documentation wiki!
This is a hobby project consisting of a Scala library for statistical computing, machine learning, and mathematical operations.
Documentation in this wiki has been generated automatically with copilot, but gives the gist of how the library usage works.
Human written documentation can also be found here: https://cxd.github.io/scala-au.id.cxd.math/index.html
The library uses the matrix data type provided by Breeze Library: https://github.com/scalanlp/breeze
This library provides a wide range of mathematical and statistical tools implemented in Scala, including:
- Probability Distributions - Both continuous and discrete distributions with PDF, CDF, and random generation
- Statistical Tests - ANOVA, MANOVA, normality tests, and more
- Regression Methods - OLS, logistic regression, Bayesian regression
- Neural Networks - Feedforward networks with multiple activation functions
- Text Processing - Latent Semantic Indexing (LSI), TF-IDF, text preprocessing
- Multivariate Analysis - PCA, discriminant analysis, clustering
- Advanced Functions - Gamma, Beta, special functions, distance metrics
- Getting Started Guide - Installation, building, and first steps
- Quick Start Examples - Jump right in with code examples
- Probability Distributions - Complete guide to distributions
- Statistical Tests - Hypothesis testing and inference
- Regression Methods - Linear and logistic regression
- Neural Networks - Building and training neural networks
- Text Processing - NLP and text analysis tools
- Multivariate Analysis - PCA, discriminant analysis, clustering
- Data Processing - Data loading, preprocessing, and transformation
- API Quick Reference - Common operations and classes
- Examples Catalog - Complete list of working examples
- Mathematical Functions - Special functions and utilities
- Contributing Guidelines - How to contribute to the project
- Architecture Overview - Design patterns and structure
- MkDocs Usage - Build and serve documentation locally
This library is an experimental hobby project maintained by a single developer. It is:
- ✅ Great for learning and experimentation
- ✅ Useful for prototyping statistical algorithms
- ✅ Well-documented with examples
⚠️ Not recommended for production use⚠️ May have lower accuracy than mature libraries (R, SciPy, GSL)⚠️ Not actively maintained on a regular schedule
import au.id.cxd.math.probability.continuous.Normal
// Create a normal distribution
val normal = Normal(mu = 0.0, sigma = 1.0)
// Calculate probability density
val pdf = normal.pdf(1.5)
// Calculate cumulative probability
val cdf = normal.cdf(1.5)
// Generate random samples
val samples = normal.draw(1000)If you're using this library or have feedback, please open an issue on GitHub!
Note: This wiki can be browsed directly in the repository under /wiki-docs/ or copied to the GitHub wiki for easier navigation.