order of execution. If there is no order specified, of course the compiler

can choose any one that is efficient or maybe even distribute the code and

execute it in parallel.

Here is some examples.

Adding a scalar to a vector.

[i in 0..l](a[i]+=0.5)

Finding size of a vector.

size=sqrt(sum([i in 0..l](a[i]*a[i])));

Finding dot-product;

dot=sum([i in 0..l](a[i]*b[i]));

Matrix vector multiplication.

[i in 0..l](r[i]=sum([j in 0..m](a[i,j]*v[j])));

Calculating the trace of a matrix

res=sum([i in 0..l](a[i,i]));

Taylor expansion on every element in a vector

[i in 0..l](r[i]=sum([j in 0..m](a[j]*pow(v[i],j))));

Calculating Fourier series.

f=sum([j in 0..m](a[j]*cos(j*pi*x/2)+b[j]*sin(j*pi*x/2)))+c;

Calculating (A+I)*v using the Kronecker delta-tensor : delta(i,j)={i=j ? 1 : 0}

[i in 0..l](r[i]=sum([j in 0..m]((a[i,j]+delta(i,j))*v[j])));

Calculating cross product of two 3d vectors using the

antisymmetric tensor/Permutation Tensor/Levi-Civita tensor

[i in 0..3](r[i]=sum([j in 0..3,k in 0..3](anti(i,j,k)*a[i]*b[k])));

Calculating determinant of a 4x4 matrix using the antisymmetric tensor

det=sum([i in 0..4,j in 0..4,k in 0..4,l in 0..4]

(anti(i,j,k,l)*a[0,i]*a[1,j]*a[2,k]*a[3,l]));

Report this item for cleanup