[
https://issues.apache.org/jira/browse/MATH-314?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=12794776#action_12794776
]
Jake Mannix commented on MATH-314:
----------------------------------
Sure thing, let me make sure it's up-to-date and works in the general case. I
see there are some more RealVector methods which could be implemented in
AbstractRealVector to cut down on cutting and pasting (isInfiniite(), isNan(),
ebeXXX, projection, the norms).
These are folded that into this patch, because otherwise all those methods are
basically copy/pasted from the other vectors (they just use the iterators,
which allows them to live in AbstractRealVector).
My current patch for this isn't fully tested for all the mutating methods (in
particular, growing efficiently is moderately nontrivial), but I'll try to whip
it into shape.
> New sparse vector implementation: int[] indices; double[] values;
> -----------------------------------------------------------------
>
> Key: MATH-314
> URL: https://issues.apache.org/jira/browse/MATH-314
> Project: Commons Math
> Issue Type: New Feature
> Affects Versions: 2.0
> Environment: all
> Reporter: Jake Mannix
> Priority: Minor
> Fix For: 2.1
>
>
> OpenMapRealVector is nice for fast random access, but if all you do with your
> sparse vectors is dot them together, add them onto dense vectors, and so
> forth, the representation as just an array of indices and an array of values
> is more compact, and faster (for these operations).
> It becomes prohibitive to do modification, however, so the usual thing is to
> have them be immutable - use an OpenMapRealVector while modifing, then seal
> them up into the constructor for an IntDoubleArrayVector form for fast
> iteration and so forth.
--
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.