GithubHelp home page GithubHelp logo

mbsim-env / fmatvec Goto Github PK

View Code? Open in Web Editor NEW
10.0 10.0 5.0 1.5 MB

A fast vector/matrix library

Home Page: https://www.mbsim-env.de

License: GNU Lesser General Public License v2.1

C++ 95.95% Makefile 0.46% M4 0.19% Python 1.38% CMake 2.03%
lapack matrices atlas vector blas matrix-library c-plus-plus linear-algebra matrix

fmatvec's Introduction

Dashboard

Current Daily Build Status of the MBSim-Environment

Build Type Variant Failed
linux64-dailydebug build image / image
linux64-dailydebug examples image / image
linux64-dailydebug coverage image
linux64-dailydebug examples-valgrind image / image
linux64-dailydebug coverage-valgrind image
linux64-dailyrelease build image / image
linux64-dailyrelease examples image / image
win64-dailyrelease build image / image
win64-dailyrelease examples image / image
- manuals image / image

fmatvec (Fast Matrix-Vector Library)

The purpose of this project is to provide a C++-library for high performance matrix-vector computations. The software has an object oriented design allowing the use of matrices and vectors in a comfortable way. One of the main tasks ist storing and managing of data types. For most of the computations ATLAS (Automatically Tuned Linear Algebra Software) is used providing C and Fortran77 interfaces to a portably efficient BLAS implementation, as well as a few routines from LAPACK. For a full linear algebra package the original LAPACK library is required as well.

The library supports vectors, general matrices, symmetric matrices, banded matrices as well as sparse matrices. Computations with dimensionless matrices and vectors are possible. It makes use of the template mechanism in order to provide matrices and vectors of any type like int, double, complex, etc..

Requirements

Installation

  1. Install ATLAS with full LAPACK support, if necessary. For more details see http://math-atlas.sourceforge.net/faq.html. Alternatively, use fmatvec without ATLAS and install the reference libraries of BLAS and LAPACK from http://www.netlib.org/lapack.

  2. Run aclocal, autoheader, autoconf, libtoolize und automake, if necessary:

    aclocal
    autoheader
    autoconf
    libtoolize
    automake -a
    
  3. Run configure

    ./configure

    Hereby, the following options are important:

    --prefix=PFX (prefix, where the library will be installed).

    --enable-atlas (use ATLAS)

    --with-blas-lib-prefix=PFX (prefix, where the BLAS lib is installed, when ATLAS is not used)

    --with-lapack-lib-prefix=PFX (prefix, where the LAPACK lib is installed, when ATLAS is not used)

    --with-atlas-inc-prefix=PFX (prefix, where the ATLAS includes are installed, when ATLAS is used)

    --with-atlas-lib-prefix=PFX (prefix, where the ATLAS libs are installed, when ATLAS is used)

  4. Run make in order to build the shared library libfmatvec.so.

    make

  5. Run make install in order to install the library libfmatvec.so.

    make install

Usage

  1. To compile a program that includes the fmatvec headers use

    pkg-config --cflags fmatvec

  2. To link a program against the fmatvec library use

    pkg-config --libs fmatvec

Documentation

See the doxygen documentation. Use

make doc

to create this documentation.

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.