Giter VIP home page Giter VIP logo

blazeiterative's Introduction

Blaze-Iterative CircleCI

===============

This is a set of iterative linear system solvers intended for use with the Blaze library, a high-performance C++ linear algebra library. The API is currently based on a tag-dispatch system to choose a particular algorithm.

Currently implemented algorithms:

Conjugate Gradient

BiCGSTAB

Preconditioned BiCGSTAB

Arnoldi

Lanczos

Preconditioned CG

GMRES

Planned algorithms:

Preconditioned BiCGSTAB(l)

Potential algorithms (if sufficient interest):

  • LSQR
  • LSMR

Please open an issue to discuss/request features.

Installation

Installing BlazeIterative is done via the usual CMake procedure:

  • create an out-of-tree build directory (highly recommended)
  • run cmake
  • build and install using your favorite build systems

An example of the process on a linux-like system might be (from the BlazeIterative root):

mkdir build && cd build
ccmake .. # This is where you set your install location, defaults to /usr/local on my machine
make && make install

The library headers will install to ${CMAKE_INSTALL_PREFIX}/include/BlazeIterative. The cmake files that allow you to find_package(BlazeIterative) are installed in ${CMAKE_INSTALL_PREFIX}/share/BlazeIterative/cmake. If CMAKE_INSTALL_PREFIX is on your CMAKE_PREFIX_PATH, then find_package(BlazeIterative) should work without any issues (tested with cmake 3.9).

Using BlazeIterative in your projects

BlazeIterative is developed using CMake, so it is easy to use in another CMake project. The installation process exports the target: "BlazeIterative::BlazeIterative", which should be linked against. This will take care of linking against Blaze, but you still must find the blaze package in your own project (if anyone knows how to solve the transitive dependency problem in cmake, please teach me!). This is a minimal example of a CMakeLists.txt for a project using BlazeIterative.

project(MyReallyComplicatedProject)

find_package(blaze)
find_package(BlazeIterative)

add_executable(myCoolExecutable main.cpp)
target_link_libraries(myCoolExecutable PUBLIC BlazeIterative::BlazeIterative)

blazeiterative's People

Contributors

diehlpk avatar hkaiser avatar nanmiaowu avatar tjolsen 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.