Re: transversal sum

2014-11-07 Thread John Colvin via Digitalmars-d-learn
On Friday, 7 November 2014 at 10:58:58 UTC, Marc Schütz wrote: On Thursday, 6 November 2014 at 22:40:58 UTC, John Colvin wrote: this should be a textbook case for std.range.transposed, but I can't seem to get it to work. Ah, I didn't know this existed. Apparently it's not yet released, that's

Re: transversal sum

2014-11-07 Thread bearophile via Digitalmars-d-learn
Marc Schütz: auto sums = input .transposed .map!(a => a.sum); And that part is better written: .map!sum; I also suggest to align the leading dot to the precedent line: auto sums = input .transposed .map!

Re: transversal sum

2014-11-07 Thread bearophile via Digitalmars-d-learn
Marc Schütz: int[][] input = new int[][2]; input[0] = [1, 2, 3, 4]; input[1] = [5, 6, 7, 8]; writeln(input); auto sums = input .transposed .map!(a => a.sum); writeln(sums); } Output: [[1, 2, 3, 4], [5, 6,

Re: transversal sum

2014-11-07 Thread via Digitalmars-d-learn
On Thursday, 6 November 2014 at 22:40:58 UTC, John Colvin wrote: this should be a textbook case for std.range.transposed, but I can't seem to get it to work. Ah, I didn't know this existed. Apparently it's not yet released, that's why it's not in the official documentation. With DMD and Phob

Re: transversal sum

2014-11-06 Thread John Colvin via Digitalmars-d-learn
On Thursday, 6 November 2014 at 15:53:27 UTC, Jack Applegame wrote: I have rectangular forward range of forward ranges (not arrays): [ [a11, a12, ... a1N], [a21, a22, ... a2N], ... [aM1, aM2, ... aMN] ] I need lazy forward range: [ a11 + a21 + ... aM1, a12 + a22 + ... aM2, ... a1N +

Re: transversal sum

2014-11-06 Thread John Colvin via Digitalmars-d-learn
On Thursday, 6 November 2014 at 22:02:09 UTC, John Colvin wrote: On Thursday, 6 November 2014 at 15:53:27 UTC, Jack Applegame wrote: I have rectangular forward range of forward ranges (not arrays): [ [a11, a12, ... a1N], [a21, a22, ... a2N], ... [aM1, aM2, ... aMN] ] I need lazy forward ra

Re: transversal sum

2014-11-06 Thread John Colvin via Digitalmars-d-learn
On Thursday, 6 November 2014 at 15:53:27 UTC, Jack Applegame wrote: I have rectangular forward range of forward ranges (not arrays): [ [a11, a12, ... a1N], [a21, a22, ... a2N], ... [aM1, aM2, ... aMN] ] I need lazy forward range: [ a11 + a21 + ... aM1, a12 + a22 + ... aM2, ... a1N +

Re: transversal sum

2014-11-06 Thread John Colvin via Digitalmars-d-learn
On Thursday, 6 November 2014 at 15:53:27 UTC, Jack Applegame wrote: I have rectangular forward range of forward ranges (not arrays): [ [a11, a12, ... a1N], [a21, a22, ... a2N], ... [aM1, aM2, ... aMN] ] I need lazy forward range: [ a11 + a21 + ... aM1, a12 + a22 + ... aM2, ... a1N +

Re: transversal sum

2014-11-06 Thread Jack Applegame via Digitalmars-d-learn
void popFront() { foreach (ref r; rr) r.popFront(); } I think it should be void popFront() { foreach (ref r; rr.save) r.popFront(); } but I think OP wanted a ready-made phobos solution, w/o all the range boilerplate... exactly.

Re: transversal sum

2014-11-06 Thread Artur Skawina via Digitalmars-d-learn
On 11/06/14 18:32, bearophile via Digitalmars-d-learn wrote: > Marc Schütz: > >> We'd need something taking and returning a RoR that "mirrors" them >> diagonally. Then we could simply apply `map!(r => r.sum)` on the result. > > A simple solution is to create a row of values, and then sum them co

Re: transversal sum

2014-11-06 Thread bearophile via Digitalmars-d-learn
Marc Schütz: We'd need something taking and returning a RoR that "mirrors" them diagonally. Then we could simply apply `map!(r => r.sum)` on the result. A simple solution is to create a row of values, and then sum them correctly while you scan the rows. Bye, bearophile

Re: transversal sum

2014-11-06 Thread via Digitalmars-d-learn
On Thursday, 6 November 2014 at 17:08:23 UTC, Justin Whear wrote: This would sum along the wrong dimension. I think the correct solution will make use of std.range.frontTraversal, but it will be a bit more complex due to needing to sum every column. std.range.traversal would make it easy, b

Re: transversal sum

2014-11-06 Thread via Digitalmars-d-learn
On Thursday, 6 November 2014 at 16:57:50 UTC, Marc Schütz wrote: On Thursday, 6 November 2014 at 15:53:27 UTC, Jack Applegame wrote: I have rectangular forward range of forward ranges (not arrays): [ [a11, a12, ... a1N], [a21, a22, ... a2N], ... [aM1, aM2, ... aMN] ] I need lazy forward ra

Re: transversal sum

2014-11-06 Thread Justin Whear via Digitalmars-d-learn
On Thu, 06 Nov 2014 17:08:23 +, Justin Whear wrote: > I think the correct solution > will make use of std.range.frontTraversal, but it will be a bit more > complex due to needing to sum every column. std.range.traversal would > make it easy, but it requires random access. That should be std.

Re: transversal sum

2014-11-06 Thread Justin Whear via Digitalmars-d-learn
On Thu, 06 Nov 2014 16:57:48 +, Marc Schütz wrote: > On Thursday, 6 November 2014 at 15:53:27 UTC, Jack Applegame wrote: >> I have rectangular forward range of forward ranges (not arrays): >> [ >> [a11, a12, ... a1N], >> [a21, a22, ... a2N], >> ... >> [aM1, aM2, ... aMN] >> ] >> >> I n

Re: transversal sum

2014-11-06 Thread via Digitalmars-d-learn
On Thursday, 6 November 2014 at 15:53:27 UTC, Jack Applegame wrote: I have rectangular forward range of forward ranges (not arrays): [ [a11, a12, ... a1N], [a21, a22, ... a2N], ... [aM1, aM2, ... aMN] ] I need lazy forward range: [ a11 + a21 + ... aM1, a12 + a22 + ... aM2, ... a1N +

transversal sum

2014-11-06 Thread Jack Applegame via Digitalmars-d-learn
I have rectangular forward range of forward ranges (not arrays): [ [a11, a12, ... a1N], [a21, a22, ... a2N], ... [aM1, aM2, ... aMN] ] I need lazy forward range: [ a11 + a21 + ... aM1, a12 + a22 + ... aM2, ... a1N + a2N + ... aMN ] Range of sum elements of every columns; M, N - runti