Popularity
2.6
Growing
Activity
0.0
-
4
1
1

Monthly Downloads: 5
Programming language: Haskell
License: BSD 3-clause "New" or "Revised" License
Tags: Math    

qlinear alternatives and similar packages

Based on the "Math" category.
Alternatively, view qlinear alternatives based on common mentions on social networks and blogs.

Do you think we are missing an alternative of qlinear or a related project?

Add another 'Math' Package

README

QLinear

QLinear is type safe library for linear algebra based on "macro-constructors"

Constructors:

  • matrix

    [matrix| a b ; c d |] builds matrix 2x2 [ [a, b], [c, d] ]

    Example:

    [matrix| 1 2; 3 4 |] ~+~ [matrix| 2 3; 4 5 |] == [matrix| 3 5; 7 9 |] 
    

    Also you can't, for example, add two matrix with different size.

    [matrix| 1 2; 3 4 |] ~+~ [matrix| 1 2 3; 4 5 6; 7 8 9 |] -- will not be compiled
    
    • vector > [vector| a b c d |] builds matrix 4x1 [ [a], [b], [c], [d] ]
  • operator

    [operator| (x, y) => (y, x) |] builds matrix 2x2 of operator [ [0, 1], [1, 0] ] that swaps coodrinates
    [operator| (x, y) => (2 * x, y) |] builds matrix 2x2 of operator [ [2, 0], [0, 1] ] that doubles x coordinate

Example: haskell [operator| (x, y) => (3 * y, x / 2) |] ~*~ [vector| 2 8 |] == [vector| 24 1 |]

Syntax:

  • matrix: val11 val12 .. val1n; val21 val22 .. val2n; ..; valm1 valm2 .. valmn
  • vector: val1 val2 .. valn
  • operator: (var1, var2, .., varn) => (exp1, exp2, .., expn)
    where
    • val is number literal, variable or any Haskell expression between ( and )
    • var is Haskell variable

    * exp is any Haskell expression

    Also there are basic operations as determinant, transposition, etc.