not the same behavior in trunk. SequentialAccessVector.iterator seems to behave properly there.
On Mon, Jan 14, 2013 at 3:07 PM, Koert Kuipers <[email protected]> wrote: > sorry yes i meant 0.7 > > On Mon, Jan 14, 2013 at 12:58 PM, Jake Mannix <[email protected]>wrote: > >> I think you mean 0.7, right? Can you see if you get the same behavior in >> svn trunk? >> >> >> On Mon, Jan 14, 2013 at 9:21 AM, Koert Kuipers <[email protected]> wrote: >> >> > i am using version mahout 7.0 >> > >> > On Mon, Jan 14, 2013 at 10:15 AM, Ted Dunning <[email protected]> >> > wrote: >> > >> > > Which version are you using? >> > > >> > > (this misbehavior sounds familiar) >> > > >> > > iterator() should return all values. >> > > >> > > iterateNonZero() is allowed to skip zeros. >> > > >> > > On Mon, Jan 14, 2013 at 6:11 AM, Koert Kuipers <[email protected]> >> > wrote: >> > > >> > > > i am looking at the iterators for DenseVector, >> > RandomAcccessSparseVector >> > > > and SequentialAccessSparseVector. >> > > > >> > > > for both DenseVector and RandomAcccessSparseVector the iterator >> seems >> > to >> > > > return all values, including the missing zero values. >> > > > for SequentialAccessSparseVector the iterator also returns all >> values, >> > > but >> > > > only up to the last non-missing value! >> > > > >> > > > is this by design? what is a vector iterator supposed to return >> > exactly? >> > > i >> > > > can't see a logical pattern/consistency. see examples below. >> > > > thanks! koert >> > > > >> > > > scala> val x = new >> org.apache.mahout.math.RandomAccessSparseVector(5) >> > > > x: org.apache.mahout.math.RandomAccessSparseVector = {} >> > > > >> > > > scala> x.set(3, 1.0) >> > > > >> > > > scala> for (item <- x.iterator.asScala) println((item.index, >> item.get)) >> > > > (0,0.0) >> > > > (1,0.0) >> > > > (2,0.0) >> > > > (3,1.0) >> > > > (4,0.0) >> > > > >> > > > scala> val y = new >> > org.apache.mahout.math.SequentialAccessSparseVector(5) >> > > > y: org.apache.mahout.math.SequentialAccessSparseVector = { >> > > > >> > > > scala> y.set(3, 1.0) >> > > > >> > > > scala> for (item <- y.iterator.asScala) println((item.index, >> item.get)) >> > > > (0,0.0) >> > > > (1,0.0) >> > > > (2,0.0) >> > > > (3,1.0) >> > > > >> > > >> > >> >> >> >> -- >> >> -jake >> > >
