Changeset 293
- Timestamp:
- 06/09/11 23:15:34 (1 year ago)
- Files:
-
- trunk/base.d (modified) (2 diffs)
- trunk/cor.d (modified) (1 diff)
- trunk/summary.d (modified) (3 diffs)
Legend:
- Unmodified
- Added
- Removed
- Modified
- Copied
- Moved
trunk/base.d
r290 r293 38 38 39 39 import std.math, std.traits, std.typecons, std.algorithm, std.range, 40 std.exception, std.conv, std.functional ;40 std.exception, std.conv, std.functional, std.typetuple; 41 41 42 42 import dstats.alloc, dstats.sort; … … 1578 1578 } 1579 1579 1580 // Used for ILP optimizations. 1581 package template StaticIota(size_t upTo) { 1582 static if(upTo == 0) { 1583 alias TypeTuple!() StaticIota; 1584 } else { 1585 alias TypeTuple!(StaticIota!(upTo - 1), upTo - 1) StaticIota; 1586 } 1587 } 1588 1580 1589 // Verify that there are no TempAlloc memory leaks anywhere in the code covered 1581 1590 // by the unittest. This should always be the last unittest of the module. trunk/cor.d
r258 r293 86 86 immutable kNeg1 = 1 / ++_k; 87 87 88 foreach(j; 0..nILP) {88 foreach(j; StaticIota!nILP) { 89 89 immutable double delta1 = input1[i + j] - _mean1[j]; 90 90 immutable double delta2 = input2[i + j] - _mean2[j]; trunk/summary.d
r289 r293 394 394 immutable kNeg1 = 1 / ++k; 395 395 396 foreach(j; 0..nILP) {396 foreach(j; StaticIota!nILP) { 397 397 means[j] += (data[i + j] - means[j]) * kNeg1; 398 398 } … … 514 514 515 515 for(; i + nILP < data.length; i += nILP) { 516 foreach(j; 0..nILP) {516 foreach(j; StaticIota!nILP) { 517 517 sum[j] += data[i + j]; 518 518 } … … 712 712 immutable kNeg1 = 1 / ++k; 713 713 714 foreach(j; 0..nILP) {714 foreach(j; StaticIota!nILP) { 715 715 immutable double delta = data[i + j] - means[j]; 716 716 immutable deltaN = delta * kNeg1;
