Breeze is currently the most actively maintained and feature-rich numerical computing library available for Scala. It has data structures for vectors and matrices with real elements and efficient common matrix arithmetic operations. Breeze is similar in scope and purpose to MATLAB's data structures as well as the classes provided by the NumPy library for Python.
You can do basic matrix multiplication, inversion, dot products, determinants, and other operations expected from such a package. It also has a statistics package that contains common statistical distributions and other functions related to probability and statistics, such as Markov chain models. It includes several optimization algorithms. Functions useful for signal processing, such as Fourier transforms, convolution, and various filters are available.
It can also perform basic plotting. In this chapter, you will learn how to use this functionality to write programs for number crunching...