mathic 0.2.0

A compiler with builtin support of symbolic operations, built with LLVM/MLIR
1
2
3
4
5
6
7
8
9
10
11
12
13
14
df main() i32 {
    sym x: expr<i32>;

    let a: expr<i32> = x + 5;
    let r1: i32 = eval(a, x, 10);

    let b: expr<i32> = 3 * x;
    let r2: i32 = eval(b, x, 10);

    let c: expr<i32> = 2 * x + 1;
    let r3: i32 = eval(c, x, 10);

    return r1 + r2 + r3;
}