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

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

主站蜘蛛池模板: 平顶山市| 信丰县| 云南省| 富蕴县| 方山县| 丰都县| 金塔县| 冕宁县| 驻马店市| 邵武市| 玛纳斯县| 云浮市| 洛浦县| 勐海县| 南安市| 秀山| 商河县| 集安市| 古蔺县| 三门县| 白河县| 吉木萨尔县| 德清县| 分宜县| 惠来县| 茶陵县| 响水县| 长乐市| 临沭县| 焦作市| 商城县| 东莞市| 兖州市| 蒙城县| 蕲春县| 石台县| 额尔古纳市| 临高县| 江达县| 石首市| 阜阳市|