官术网_书友最值得收藏!

Numerical computing packages for Scala

Let's now look through linear algebra and numerical computing software that is available for Scala. A linear algebra software package would involve being able to perform operations on matrices and vectors, solving linear systems of equations, finding the determinant, and performing other operations associated with the discipline of linear algebra in the field of mathematics.

MATLAB started as a linear algebra package and evolved into a whole programming language and interactive computing environment. The NumPy library for Python can do most of the things expected from a linear algebra package and a lot more. In this section, we will provide an overview of what is available in Scala in this regard. We will examine the packages briefly, tell you where to get them, how actively they are developed, and very briefly discuss the main functionality available in them.

Scalala

Scalala is a linear algebra package for Scala. It is currently not actively maintained, having been superseded by Breeze. It can be found at the following website:

https://github.com/scalala/Scalala

It is right now mostly of historic interest; however, Scalala has rich MATLAB-like operators on vectors and matrices and a library of numerical routines. It also has basic support for plotting.

Breeze

Breeze is the biggest and best maintained numerical computing library for Scala. It can be found at the ScalaNLP website:

http://www.scalanlp.org/

It is developed along with Epic and Puck, the former of which is a powerful statistical parser and the latter is a GPU-powered parser for natural languages. These two later libraries will be of less concern to us. Breeze, however, is a big part of this book. It provide functionality that is roughly equivalent to the famous and widely used NumPy package for Python. It is actively maintained and is likely to remain so in the near future.

Breeze is modeled on Scalala, which was mentioned previously. It supports all the matrix and vector operations you would expect. It provides a large number of probability distributions. It also provides routines for optimization and linear equation solving as well as routines for plotting. In a later chapter, we will introduce Breeze in detail and explain to readers how to do things they have grown accustomed to in other systems in Breeze.

ScalaLab

ScalaLab is a numerical computing environment aiming to replicate the functionality of MATLAB. The website is given here:

https://code.google.com/p/scalalab/

ScalaLab will be discussed in a section dedicated to it. It supports Scala-based scripting and is written mostly in Java with some speed-critical sections written in C/C++. It allows you to access the results of MATLAB scripts. It can use dozens of Scala and Java libraries for scientific computing. There is a basic support for plotting:

ScalaLab

The ScalaLab window with a plotting example

主站蜘蛛池模板: 清原| 南陵县| 黄石市| 克东县| 安宁市| 临高县| 静宁县| 大同市| 五原县| 沁水县| 迁西县| 丰原市| 瑞丽市| 泗水县| 凭祥市| 来凤县| 海口市| 东莞市| 介休市| 达州市| 泰州市| 星座| 三台县| 新河县| 延津县| 内丘县| 绥宁县| 东港市| 兴城市| 蒙自县| 苍南县| 普安县| 容城县| 新沂市| 威远县| 丁青县| 永年县| 尚志市| 永川市| 合水县| 辽阳市|