GithubHelp home page GithubHelp logo

mathific / tense Goto Github PK

View Code? Open in Web Editor NEW
3.0 1.0 0.0 54 KB

Fast C++17 Header-Only Expression Template Matrix and Tensor Library

License: BSD 3-Clause "New" or "Revised" License

CMake 2.95% C++ 96.32% C 0.73%
cpp17 cxx17 header-only library expression-template matrix tensor linear-algebra blas lapack

tense's Introduction

Tense

Tense is a C++17 matrix and tensor library. It is a fast expression template library that uses auto-vectorization. It also uses CBLAS and LAPACKE for linear algebra operations.

Installation

You can install Tense system-wide by downloading the latest release. Make sure you have CMake, a C++ compiler (the newer version, the faster), CBLAS and LAPACKE available on your system. Then run these in repository directory:

mkdir build
cd build
cmake -DCMAKE_BUILD_TYPE=Release -DTENSE_NATIVE=ON -DTENSE_INSTALL=ON -DTENSE_TESTS=OFF -DTENSE_EXAMPLES=OFF -DCMAKE_INSTALL_PREFIX=/usr/local/ ..
sudo cmake --install .

The CMake options are:

  • TENSE_INSTALL: Create install for Tense.
  • TENSE_TESTS: Build the tests for Tense.
  • TENSE_EXAMPLES: Build the examples for Tense.
  • TENSE_NATIVE: Targets that link against Tense are specifically tuned for host CPU. This makes auto-vectorization possible.

Note that this installs BLASW library too. Then you can use it in CMake:

find_package(Tense REQUIRED)
add_executable(myexec main.cpp)
target_link_libraries(myexec Tense::Tense)

Or you can use Tense as a CMake subdirectory by cloning the repository and putting it in your source directory and use it in CMake:

add_subdirectory(Tense/)
add_executable(myexec main.cpp)
target_link_libraries(myexec Tense::Tense)

Usage

Documentation of Tense API is here.

Contributing

You can report bugs, ask questions and request features on issues page.

License

This library is licensed under BSD 3-Clause permissive license. You can read it here.

tense's People

Contributors

shahriarss avatar

Stargazers

 avatar  avatar  avatar

Watchers

 avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.