• Expression evaluation: | Expression evaluation order | |
• Index placeholders: | Index placeholders | |
• Math functions 1: | Single-argument math functions | |
• Math functions 2: | Two-argument math functions | |
• User et: | Declaring your own math functions on arrays | |
• Where expr: | where statements |
Array expressions in Blitz++ are implemented using the expression templates technique. Unless otherwise noted, expression evaluation will never generate temporaries or multiple loops; an expression such as
Array<int,1> A, B, C, D; // ... A = B + C + D;
will result in code similar to
for (int i=A.lbound(firstDim); i <= A.ubound(firstDim); ++i) A[i] = B[i] + C[i] + D[i];