All Projects → ekrich → sblas

ekrich / sblas

Licence: other
Scala Native BLAS (Basic Linear Algebra Subprograms) supporting Linux and macOS

Programming Languages

scala
5932 projects
shell
77523 projects

Projects that are alternatives of or similar to sblas

mathcore
Advanced .NET math library (.NET Standard).
Stars: ✭ 24 (-4%)
Mutual labels:  math, linear-algebra
Mathematics for Machine Learning
Learn mathematics behind machine learning and explore different mathematics in machine learning.
Stars: ✭ 28 (+12%)
Mutual labels:  math, linear-algebra
linnea
Linnea is an experimental tool for the automatic generation of optimized code for linear algebra problems.
Stars: ✭ 60 (+140%)
Mutual labels:  linear-algebra, blas
Mir
Mir (backports): Sparse tensors, Hoffman
Stars: ✭ 204 (+716%)
Mutual labels:  math, blas
zalgebra
Linear algebra library for games and real-time graphics.
Stars: ✭ 129 (+416%)
Mutual labels:  math, linear-algebra
Tutorials
AI-related tutorials. Access any of them for free → https://towardsai.net/editorial
Stars: ✭ 204 (+716%)
Mutual labels:  math, linear-algebra
Linear-Algebra-and-Its-Applications-notes
《线性代数及其应用》笔记
Stars: ✭ 196 (+684%)
Mutual labels:  math, linear-algebra
Aardvark.base
Aardvark is an open-source platform for visual computing, real-time graphics and visualization. This repository is the basis for most platform libraries and provides basic functionality such as data-structures, math and much more.
Stars: ✭ 117 (+368%)
Mutual labels:  math, linear-algebra
Tensor
A library and extension that provides objects for scientific computing in PHP.
Stars: ✭ 146 (+484%)
Mutual labels:  math, linear-algebra
mfi
Modern Fortran Interfaces to BLAS and LAPACK
Stars: ✭ 31 (+24%)
Mutual labels:  linear-algebra, blas
Numerix
A collection of useful mathematical functions in Elixir with a slant towards statistics, linear algebra and machine learning
Stars: ✭ 159 (+536%)
Mutual labels:  math, linear-algebra
fml
Fused Matrix Library
Stars: ✭ 24 (-4%)
Mutual labels:  linear-algebra, blas
Math Php
Powerful modern math library for PHP: Features descriptive statistics and regressions; Continuous and discrete probability distributions; Linear algebra with matrices and vectors, Numerical analysis; special mathematical functions; Algebra
Stars: ✭ 2,009 (+7936%)
Mutual labels:  math, linear-algebra
Mathnet Numerics
Math.NET Numerics
Stars: ✭ 2,688 (+10652%)
Mutual labels:  math, linear-algebra
Numphp
Mathematical PHP library for scientific computing
Stars: ✭ 120 (+380%)
Mutual labels:  math, linear-algebra
topologic
Visualiser for basic geometric primitives and fractals in arbitrary-dimensional spaces
Stars: ✭ 39 (+56%)
Mutual labels:  math, linear-algebra
Swix
Swift Matrix Library
Stars: ✭ 581 (+2224%)
Mutual labels:  math, linear-algebra
Notecalc3
NoteCalc is a handy calculator trying to bring the advantages of Soulver to the web.
Stars: ✭ 879 (+3416%)
Mutual labels:  math, linear-algebra
lubeck
High level linear algebra library for Dlang
Stars: ✭ 57 (+128%)
Mutual labels:  linear-algebra, blas
pyGameMath
Math library for game programming in python.
Stars: ✭ 20 (-20%)
Mutual labels:  math, linear-algebra

sblas - Scala Native BLAS

CI

This library implements BLAS (Basic Linear Algebra Subprograms) in the form of CBLAS for the Scala Native platform. Scala Native is a unique platform that marries the high level language of Scala but compiles to native code with a lightweight managed runtime which includes a state of the art garbage collector. The combination allows for great programming and the ability to use high performance C language libraries like CBLAS.

Scala Native uses the Scala compiler to produce NIR (Native Intermediate Representation) that is optimized and then converted to LLVM IR. Finally LLVM code is optimized and compiled by Clang to produce a native executable.

Getting started

Maven Central

If you are already familiar with Scala Native you can jump right in by adding the following dependency in your sbt build file.

libraryDependencies += "org.ekrich" %%% "sblas" % "x.y.z"

To use in sbt, replace x.y.z with the version from Maven Central badge above. All available versions can be seen at the Maven Repository.

Otherwise follow the Getting Started instructions for Scala Native if you are not already setup.

Additional libraries that need to be installed on you system are as follows:

  • Linux/Ubuntu you need to install ATLAS for CBLAS support.
$ sudo apt-get install libatlas-base-dev
  • macOS has CBLAS pre-installed as part of the Accelerate Framework.

  • Other OSes need to have libcblas available on the system.

Scala Build Versions

Scala Version Native (0.4.0) Native (0.4.3+)
2.11.x
2.12.x
2.13.x
3.x.x

Use version sblas 0.3.0 for Scala Native 0.4.0. Use version sblas 0.4.0 for Scala Native 0.4.3 with Scala 3 support.

Usage and Help

scaladoc Join chat https://gitter.im/ekrich/sblas

Reference the link above for Scaladoc. The documentation is a little sparse but hopefully will improve with time.

After sbt is installed and any other Scala Native prerequisites are met you can use the following Gitter G8 template instructions to get a fully functional Scala Native application with a couple of BLAS examples in the body of the main program.

$ sbt new ekrich/sblas.g8
$ cd <directory entered after the prompt>
$ sbt run

In addition, look at the sblas unit tests for other examples of usage.

BLAS References and External Documentation

Some useful links are as follows which are also in the LICENSE.md file as some of the Scaladoc was sourced from these references:

Wikipedia Website:

Netlib Website:

Apple Website:

Intel Website:

IBM Website:

Versions

Release 0.4.0 - (2022-02-01)
Release 0.3.0 - (2021-03-20)
Release 0.2.0 - (2019-12-05)
Release 0.1.1 - (2019-05-01)

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].