Changeset 127
- Timestamp:
- 11/05/07 02:54:54 (1 year ago)
- Files:
-
- trunk/blade/BladeDemo.d (modified) (3 diffs)
Legend:
- Unmodified
- Added
- Removed
- Modified
- Copied
- Moved
trunk/blade/BladeDemo.d
r126 r127 1 // Written in the D programming language 1.0 1 // Written in the D programming language 1.0. 2 2 /** 3 3 * BLADE 0.3Alpha -- Basic Linear Algebra D Expressions … … 9 9 import std.stdio; 10 10 11 // Unfortunately static arrays in D aren't aligned to 128-bit boundaries yet.11 // Local arrays in D aren't aligned to 128-bit boundaries. 12 12 // In such cases, the library generates an 'SSE misalignment' assert error, 13 13 // to avoid segfaults. 14 // For now, only use heap arrays with SSE/SSE2. 14 // Use heap-allocated arrays, or static arrays (DMD 1.023 or later) 15 // cdouble[] always remains aligned, even when sliced. 15 16 16 17 void main() 17 18 { 18 19 19 auto z = [3.4, 565, 31.3];20 static z = [3.4, 565, 31.3, 0]; 20 21 double [] a = new double[4]; 21 double [] d = new double[4];22 double [] d = [17.0, 28.25, 1, 56.2]; 22 23 a[0..$] = [3.4, 565, 31.3, 41.8]; 23 d[0..$] = [17.0, 28.25, 1, 56.2];;24 24 auto w2=z.ptr; 25 25 float[] q = new float[4]; … … 32 32 } 33 33 34 mixin(vectorize(" a += d*2.01 "));34 mixin(vectorize(" a += d*2.01-z")); 35 35 mixin(vectorize(" a += r*2.01")); 36 36 mixin(vectorize(" q += q*2.01"));
