Giter Club home page Giter Club logo

solvant's People

Contributors

codacy-badger avatar llyr-who avatar

Stargazers

 avatar  avatar

Watchers

 avatar

solvant's Issues

"remove" or "relax" limit imposed by using std::array

Problem

std::array is quite limited, in terms of size. On my machine (relative high end XPS), anything beyond a 500x500 matrix causes a seg fault. I think this is because we went beyond what is allowed on the stack. Can we split it up? Can we do something smart? Or shall we resort to a raw memory? (vectors are bad, we are already wrapping them so we can provide some safety)

Suggested Solution

One SS could be to split this up into matrix and tiny_matrix. tiny_matrix will continue to use std::array<T,N>'s and matrix would use T*. Note that we can use std array instead of C-style array because std::array is identical in performance and nicer to use. So use it.

Acceptance Criteria.

  • Careful well-reasoned/justified implementation
  • testing
  • benchmarking

Add more working examples

Problem

There is no quick and easy way to get used of the solvant workflow. The only example available is very simple.

Suggested Solution

Add more examples to the examples folder in the root directory.

Acceptance Criteria

  • A handful of executing working examples that "showcase" solvant

Optimise ge.hpp

Problem

Guassian elimination is pretty weak as it is (complexity speaking). We need to look at the implementation and see if we can coax vectorisation. Or even get MPI/std::thread for sufficient problem sizes.

Acceptance Criteria

  • clear benchmark improvements on original implemention

Clean up and comment CMake usage

Problem

The way in which cmake has been used in solvant, georhiau and qsts (and some others) is very messy and undocumented.

Acceptance Criteria

  • "Improve/modernise" workflow, then
  • Embellish CMakeLists.txt's with more comments so that future devs understand the why's etc.

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.