sblas

BLAS interface for Scala Native

License

License

Categories

Categories

Native Development Tools
GroupId

GroupId

org.ekrich
ArtifactId

ArtifactId

sblas_native0.3_2.11
Last Version

Last Version

0.1.1
Release Date

Release Date

Type

Type

jar
Description

Description

sblas
BLAS interface for Scala Native
Project URL

Project URL

https://github.com/ekrich/sblas
Project Organization

Project Organization

org.ekrich
Source Code Management

Source Code Management

https://github.com/ekrich/sblas

Download sblas_native0.3_2.11

How to add to project

<!-- https://jarcasting.com/artifacts/org.ekrich/sblas_native0.3_2.11/ -->
<dependency>
    <groupId>org.ekrich</groupId>
    <artifactId>sblas_native0.3_2.11</artifactId>
    <version>0.1.1</version>
</dependency>
// https://jarcasting.com/artifacts/org.ekrich/sblas_native0.3_2.11/
implementation 'org.ekrich:sblas_native0.3_2.11:0.1.1'
// https://jarcasting.com/artifacts/org.ekrich/sblas_native0.3_2.11/
implementation ("org.ekrich:sblas_native0.3_2.11:0.1.1")
'org.ekrich:sblas_native0.3_2.11:jar:0.1.1'
<dependency org="org.ekrich" name="sblas_native0.3_2.11" rev="0.1.1">
  <artifact name="sblas_native0.3_2.11" type="jar" />
</dependency>
@Grapes(
@Grab(group='org.ekrich', module='sblas_native0.3_2.11', version='0.1.1')
)
libraryDependencies += "org.ekrich" % "sblas_native0.3_2.11" % "0.1.1"
[org.ekrich/sblas_native0.3_2.11 "0.1.1"]

Dependencies

compile (5)

Group / Artifact Type Version
org.scala-lang : scala-library jar 2.11.12
org.scala-native : nativelib_native0.3_2.11 jar 0.3.8
org.scala-native : javalib_native0.3_2.11 jar 0.3.8
org.scala-native : auxlib_native0.3_2.11 jar 0.3.8
org.scala-native : scalalib_native0.3_2.11 jar 0.3.8

test (2)

Group / Artifact Type Version
org.scala-native : test-interface_native0.3_2.11 jar 0.3.8
com.lihaoyi : utest_native0.3_2.11 jar 0.6.7

Project Modules

There are no modules declared in this project.

sblas - Scala Native BLAS

Build Status

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.

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 --supershell=false 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.1.1 - (2019-05-01)
Release 0.2.0 - (2019-12-05)

Versions

Version
0.1.1