A numerical processing library for Scala, providing generic, clean, and powerful linear algebra and scientific computing capabilities.
Breeze is a numerical processing library for Scala that provides linear algebra, scientific computing, and data analysis capabilities. It offers generic and type-safe APIs for vectors, matrices, and numerical operations, serving as a foundational tool for machine learning and data science workflows in Scala.
Scala developers working on scientific computing, machine learning, data analysis, or numerical simulation projects who need efficient linear algebra and numerical processing libraries.
Developers choose Breeze for its clean, generic design that balances abstraction with performance, its comprehensive linear algebra support, and its integration with optimized native libraries like Netlib and OpenBLAS for efficient computation.
Breeze is/was a numerical processing library for Scala.
Open-Awesome is built by the community, for the community. Submit a project, suggest an awesome list, or help improve the catalog on GitHub.
Breeze provides clean, generic APIs that work across different numeric types and data structures, offering a type-safe foundation for numerical processing as highlighted in its generic design philosophy.
It leverages optimized native libraries like Netlib and OpenBLAS for efficient linear algebra operations, ensuring good performance for scientific computing tasks.
The library includes extensive support for vectors, matrices, and linear algebra operations, making it a foundational tool for machine learning and data analysis in Scala.
Breeze-viz is a separate library for plotting and data representation, enhancing data analysis workflows with visualization capabilities.
The project is described as 'mostly retired,' with only bug fix PRs being reviewed, meaning no new features or active maintenance, which limits its future viability.
The README admits that Scaladoc is 'horribly out of date' and not a good learning resource, making it difficult for users to get started or find accurate information.
On Linux, segmentation faults and crashes can occur due to OpenBLAS threading, requiring complex workarounds like setting OPENBLAS_NUM_THREADS=1 or compiling custom versions, as noted in the common issues section.
Being retired, Breeze may not integrate well with newer Scala tools or libraries, reducing its usefulness in modern data science or machine learning stacks that require active community support.