simit
simit copied to clipboard
A language for computing on sparse systems
The following code: ``` func asm(e : Edge, v : (Vertex*2)) -> K : matrix[V,V](matrix[2, 2](int)) K(v(0),v(0))(0, 0) = 1; % error because we're assigning to component end ``` triggers...
It would be great if someone could develop a visualizer (or integrate an existing one). Our current visualizer has gone unused and experienced code rot. I also believe it uses...
This was added in 6eac2fbd9c8157a924e1bbb864ec0d0807d5b3f1 to make EV matrices work, since we don't have codegen machinery to compute with elpack indices yet. When we get this machinery it should be...
Let's add bulk assignment to tensors using square bracket tensor literal syntax: ``` var A : matrix[2,2](float) = [expr0, expr1; expr2, expr3]; ``` , where the expri is any expression....
Assembly functions currently use `=` to assign to their element matrix. This causes issue with code generation, because our current backends rewrites the assignments to plus-assign directly into the system...
Let's add an intrinsic for 2x2 and 3x3 SVD. For the 3x3 SVD we can consider using the following code, although I think it only works for single precision floating...
According to e95fae8557a3 the CSR sinks of indices assembled from stencils are not ordered. If this is true then element wise operations on these matrices will not work, since the...
`apps/fem/fem.cpp` is not self contained as it requires the existence of mesh files to run. These files are simply referred to as `*.node` and `*.ele`, but their structure is not...
Back end currently does not support calling functions with matrix or vector parameters that have set dimensions, e.g. ``` extern points : set{Point}; func foo(M : matrix[points,points](float)) % Do something...
It is often convenient to assemble element matrices in assemblies. For example, to compute the `vertices*vertices` element stiffness matrix K_1, it can be convenient to compute the `vertices*edges` element matrix...