This is possibly a bug. Let me check the code. On Fri, Jun 11, 2010 at 2:31 PM, zhao zhendong <[email protected]>wrote:
> Hi, > > One strange thing, SequentialAccessSparseVector.dot() seems does NOT work > correctly. When I change the Vector w = new > RandomAccessSparseVector(Integer.MAX_VALUE, 12); Then the code works well. > > I check the source code of SequentialAccessSparseVector.dot(), it checks > the > index of two Vectors(if both of them are instance of > SequentialAccessSparseVector), once they mis-match, it will return 0.0. > > *Why do we need such constrain? > * > In this case, what's the best way to get dot product between two > mis-matched > SequentialAccessSparseVector instances? > > Code: > Vector w = new SequentialAccessSparseVector(Integer.MAX_VALUE, 12); > w.set(1, 0.4); > w.set(2, 0.4); > w.set(3, -0.666666667); > > Vector v = new SequentialAccessSparseVector(Integer.MAX_VALUE, 12); > v.set(3, 1); > System.out.println(datastore.getFeatureRow(2).dot(w)); > > The result is 0.0 (should be -0.666666667). > > > -- > ------------------------------------------------------------- > > Zhen-Dong Zhao (Maxim) > > <><<><><><><><><><>><><><><><>>>>>> > > Department of Computer Science > School of Computing > National University of Singapore > > >>>>>>><><><><><><><><<><>><><<<<<< >
