commons-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Bill Barker" <>
Subject Re: [math] Questions about sparse implementations
Date Wed, 28 Jan 2009 02:40:46 GMT

"Phil Steitz" <> wrote in message
> Bill Barker wrote:
>> I've been working on a SparseRealVector that implements RealVector but is 
>> backed by OpenIntToDoubleHashMap.  Unlike SparseRealMatrix, the goal is 
>> more speed than space.  Mostly it is going well, but running into a few 
>> problems where some RealVector methods are almost nonsensical for sparse 
>> vectors (e.g. mapInvToSelf).
>> Since the default value of OpenIntToDoubleHashMap is final, this means 
>> that I currently have to replace the map in this case (so it really isn't 
>> 'self' afterwards).  So what i'm asking is if it is better to have the 
>> default value mutable or to allow the backing to be replaced in a 
>> "*ToSelf" method.
> I don't understand the question.  Is it that different *ToSelf methods 
> require different missingEntries values?  I don't follow how that could be 
> the case.  In any case, the question has me thinking that at least 
> OpenIntToDoubleHashMap should expose a getter for missingEntries.  I agree 
> with Luc though that this field should not be mutable.

Well, to preserve sparseness, mapInvToSelf (x -> 1/x) should be infinity, 
mapLogToSelf should be -infinity, mapCosToSelf should be 1, etc.

However, the more I think about it, preserving sparseness is looking like 
more trouble than it is worth to support methods that don't make sense if 
you are using a sparse vector in the first place.  I'll probably just cause 
the vector to become dense for these methods.

I'm +1 for OpenInToDoubleHashMap exposing a getter for missingEntries, but 
it doesn't look like my class will have a use case for it.

> Phil
>> ---------------------------------------------------------------------
>> To unsubscribe, e-mail:
>> For additional commands, e-mail:

To unsubscribe, e-mail:
For additional commands, e-mail:

View raw message