[jira] Commented: (MATH-323) Add Semivariance calculation
[ https://issues.apache.org/jira/browse/MATH-323?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=12795667#action_12795667 ] Larry Diamond commented on MATH-323: Thanks - I'll hopefully get this over the weekend. Those annoying people who pay me a salary have been actually consuming me time recently and I havent gotten done what I hoped. Clearly, step one is those "Documentation Goes Here" bits. Getting those in there would clarify your third point and I see is ***KEY*** to publicly reusable software. I agree with not using AbstractStorelessUnivariateStatistic - I have to read over AbstractUnivariateStatistic to make sure I can use it. I'd like to extend something in the package. I'll look at the UnivariateStatistic to see the constructors. I can see that you'd want to calculate Upward and Downward on the same data (and really the full variance too), although yeah, once you have one you automatically have the other (full - downward = upward). Clearly, those documentation bits would make what I'm talking about much clearer to all readers of this post. Thanks for the note on the not using boolean there. There was just no way that I could have people try to remember which direction was true and which direction was false. That's just silly and cruel. > Add Semivariance calculation > > > Key: MATH-323 > URL: https://issues.apache.org/jira/browse/MATH-323 > Project: Commons Math > Issue Type: New Feature >Affects Versions: 2.1 >Reporter: Larry Diamond >Assignee: Phil Steitz >Priority: Minor > Fix For: 2.1 > > Attachments: patch.txt, patch2.txt, SemiVariance.java, > SemiVarianceTest.java, StatUtils.java, StatUtils.java, StatUtilsTest.java, > StatUtilsTest.java > > > I've added semivariance calculations to my local build of commons-math and I > would like to contribute them. > Semivariance is described a little bit on > http://en.wikipedia.org/wiki/Semivariance , but a real reason you would use > them is in finance in order to compute the Sortino ratio rather than the > Sharpe ratio. > http://en.wikipedia.org/wiki/Sortino_ratio gives an explanation of the > Sortino ratio and why you would choose to use that rather than the Sharpe > ratio. (There are other ways to measure the performance of your portfolio, > but I wont bore everybody with that stuff) > I've already got the coding completed along with the test cases and building > using mvn site. > The only two files I've modified is > src/main/java/org/apache/commons/stat/StatUtils.java and > src/test/java/org/apache/commons/math/stat/StatUtilsTest.java -- This message is automatically generated by JIRA. - You can reply to this email to add a comment to the issue online.
[jira] Commented: (MATH-321) Support for Sparse (Thin) SVD
[ https://issues.apache.org/jira/browse/MATH-321?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=12795630#action_12795630 ] Luc Maisonobe commented on MATH-321: A partial fix as been committed in subversion repository as of r894908. The current implementation computes either the compact SVD (considering only positive singular values) or the truncated SVD (considering a user-specified maximal number of singular values). The issue is however not completely solved yet as the underlying eigendecomposition still computes all eigenvalues,. The SVD upper layer only truncates this computation afterwards. This means lots of things are computed just to be discarded later. I'll take care of this shortly. Also note that this implementation still considers only dense matrices, not sparse ones. Any contributions for sparse SVD is welcome! > Support for Sparse (Thin) SVD > - > > Key: MATH-321 > URL: https://issues.apache.org/jira/browse/MATH-321 > Project: Commons Math > Issue Type: New Feature >Reporter: David Jurgens > > Current the SingularValueDecomposition implementation computes the full SVD. > However, for some applications, e.g. LSA, vision applications, only the most > significant singular values are needed. For these applications, the full > decomposition is impractical, and for large matrices, computationally > infeasible. The sparse SVD avoids computing the unnecessary data, and more > importantly, has significantly lower computational complexity, which allows > it to scale to larger matrices. > Other linear algebra implementation have support for the sparse svd. Both > Matlab and Octave have the svds function. C has SVDLIBC. SVDPACK is also > available in Fortran and C. However, after extensive searching, I do not > believe there is any existing Java-based sparse SVD implementation. This > added functionality would be widely used for any pure Java application that > requires a sparse SVD, as the only current solution is to call out to a > library in another language. -- This message is automatically generated by JIRA. - You can reply to this email to add a comment to the issue online.
[jira] Resolved: (MATH-320) NaN singular value from SVD
[ https://issues.apache.org/jira/browse/MATH-320?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ] Luc Maisonobe resolved MATH-320. Resolution: Fixed This should be fixed in subversion repository now (r894908). Thanks for reporting the bug and sorry for the delay. > NaN singular value from SVD > --- > > Key: MATH-320 > URL: https://issues.apache.org/jira/browse/MATH-320 > Project: Commons Math > Issue Type: Bug >Affects Versions: 2.0 > Environment: Linux (Ubuntu 9.10) java version "1.6.0_16" >Reporter: Dieter Vandenbussche > > The following jython code > Start code > from org.apache.commons.math.linear import * > > Alist = [[1.0, 2.0, 3.0],[2.0,3.0,4.0],[3.0,5.0,7.0]] > > A = Array2DRowRealMatrix(Alist) > > decomp = SingularValueDecompositionImpl(A) > > print decomp.getSingularValues() > End code > prints > array('d', [11.218599757513008, 0.3781791648535976, nan]) > The last singular value should be something very close to 0 since the matrix > is rank deficient. When i use the result from getSolver() to solve a system, > i end > up with a bunch of NaNs in the solution. I assumed i would get back a least > squares solution. > Does this SVD implementation require that the matrix be full rank? If so, > then i would expect > an exception to be thrown from the constructor or one of the methods. -- This message is automatically generated by JIRA. - You can reply to this email to add a comment to the issue online.
[jira] Commented: (MATH-320) NaN singular value from SVD
[ https://issues.apache.org/jira/browse/MATH-320?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=12795606#action_12795606 ] Luc Maisonobe commented on MATH-320: Thanks for the hint Axel! The print statement is even not satisfying for testMath320A, the approximation is really too bad. I would expect about 13 exact figures, not 1 or 2. The problem seems to be related to matrix U which is not correct. In fact, it is even not unitary (i.e. U^T^.U is not the identity matrix). I'll look at this. > NaN singular value from SVD > --- > > Key: MATH-320 > URL: https://issues.apache.org/jira/browse/MATH-320 > Project: Commons Math > Issue Type: Bug >Affects Versions: 2.0 > Environment: Linux (Ubuntu 9.10) java version "1.6.0_16" >Reporter: Dieter Vandenbussche > > The following jython code > Start code > from org.apache.commons.math.linear import * > > Alist = [[1.0, 2.0, 3.0],[2.0,3.0,4.0],[3.0,5.0,7.0]] > > A = Array2DRowRealMatrix(Alist) > > decomp = SingularValueDecompositionImpl(A) > > print decomp.getSingularValues() > End code > prints > array('d', [11.218599757513008, 0.3781791648535976, nan]) > The last singular value should be something very close to 0 since the matrix > is rank deficient. When i use the result from getSolver() to solve a system, > i end > up with a bunch of NaNs in the solution. I assumed i would get back a least > squares solution. > Does this SVD implementation require that the matrix be full rank? If so, > then i would expect > an exception to be thrown from the constructor or one of the methods. -- This message is automatically generated by JIRA. - You can reply to this email to add a comment to the issue online.
[jira] Issue Comment Edited: (MATH-320) NaN singular value from SVD
[ https://issues.apache.org/jira/browse/MATH-320?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=12795591#action_12795591 ] Axel Kramer edited comment on MATH-320 at 12/31/09 12:01 PM: - This statement should print the values of the original matrix approximately: {code:java} System.out.println(svd.getU().multiply(svd.getS()).multiply(svd.getVT())); {code} This is true for {code:java} public void testMath320A() { {code} but not for {code:java} public void testMath320B() { {code} For reference valus try wolfram alpha: N[SingularValueDecomposition[{{1,2},{1,2}}]] was (Author: axelclk): This statement should print the values of the original matrix approximately: {code:java} System.out.println(svd.getU().multiply(svd.getS()).multiply(svd.getVT())); {code} This is true for {code:java} public void testMath320A() { {code} but not for {code:java} public void testMath320B() { {code} > NaN singular value from SVD > --- > > Key: MATH-320 > URL: https://issues.apache.org/jira/browse/MATH-320 > Project: Commons Math > Issue Type: Bug >Affects Versions: 2.0 > Environment: Linux (Ubuntu 9.10) java version "1.6.0_16" >Reporter: Dieter Vandenbussche > > The following jython code > Start code > from org.apache.commons.math.linear import * > > Alist = [[1.0, 2.0, 3.0],[2.0,3.0,4.0],[3.0,5.0,7.0]] > > A = Array2DRowRealMatrix(Alist) > > decomp = SingularValueDecompositionImpl(A) > > print decomp.getSingularValues() > End code > prints > array('d', [11.218599757513008, 0.3781791648535976, nan]) > The last singular value should be something very close to 0 since the matrix > is rank deficient. When i use the result from getSolver() to solve a system, > i end > up with a bunch of NaNs in the solution. I assumed i would get back a least > squares solution. > Does this SVD implementation require that the matrix be full rank? If so, > then i would expect > an exception to be thrown from the constructor or one of the methods. -- This message is automatically generated by JIRA. - You can reply to this email to add a comment to the issue online.
[jira] Issue Comment Edited: (MATH-320) NaN singular value from SVD
[ https://issues.apache.org/jira/browse/MATH-320?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=12795591#action_12795591 ] Axel Kramer edited comment on MATH-320 at 12/31/09 12:02 PM: - This statement should print the values of the original matrix approximately: {code:java} System.out.println(svd.getU().multiply(svd.getS()).multiply(svd.getVT())); {code} This is true for {code:java} public void testMath320A() { {code} but not for {code:java} public void testMath320B() { {code} For reference values try wolfram alpha: N[SingularValueDecomposition[{{1,2},{1,2}}]] was (Author: axelclk): This statement should print the values of the original matrix approximately: {code:java} System.out.println(svd.getU().multiply(svd.getS()).multiply(svd.getVT())); {code} This is true for {code:java} public void testMath320A() { {code} but not for {code:java} public void testMath320B() { {code} For reference valus try wolfram alpha: N[SingularValueDecomposition[{{1,2},{1,2}}]] > NaN singular value from SVD > --- > > Key: MATH-320 > URL: https://issues.apache.org/jira/browse/MATH-320 > Project: Commons Math > Issue Type: Bug >Affects Versions: 2.0 > Environment: Linux (Ubuntu 9.10) java version "1.6.0_16" >Reporter: Dieter Vandenbussche > > The following jython code > Start code > from org.apache.commons.math.linear import * > > Alist = [[1.0, 2.0, 3.0],[2.0,3.0,4.0],[3.0,5.0,7.0]] > > A = Array2DRowRealMatrix(Alist) > > decomp = SingularValueDecompositionImpl(A) > > print decomp.getSingularValues() > End code > prints > array('d', [11.218599757513008, 0.3781791648535976, nan]) > The last singular value should be something very close to 0 since the matrix > is rank deficient. When i use the result from getSolver() to solve a system, > i end > up with a bunch of NaNs in the solution. I assumed i would get back a least > squares solution. > Does this SVD implementation require that the matrix be full rank? If so, > then i would expect > an exception to be thrown from the constructor or one of the methods. -- This message is automatically generated by JIRA. - You can reply to this email to add a comment to the issue online.
[jira] Commented: (MATH-320) NaN singular value from SVD
[ https://issues.apache.org/jira/browse/MATH-320?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=12795591#action_12795591 ] Axel Kramer commented on MATH-320: -- This statement should print the values of the original matrix approximately: {code:java} System.out.println(svd.getU().multiply(svd.getS()).multiply(svd.getVT())); {code} This is true for {code:java} public void testMath320A() { {code} but not for {code:java} public void testMath320B() { {code} > NaN singular value from SVD > --- > > Key: MATH-320 > URL: https://issues.apache.org/jira/browse/MATH-320 > Project: Commons Math > Issue Type: Bug >Affects Versions: 2.0 > Environment: Linux (Ubuntu 9.10) java version "1.6.0_16" >Reporter: Dieter Vandenbussche > > The following jython code > Start code > from org.apache.commons.math.linear import * > > Alist = [[1.0, 2.0, 3.0],[2.0,3.0,4.0],[3.0,5.0,7.0]] > > A = Array2DRowRealMatrix(Alist) > > decomp = SingularValueDecompositionImpl(A) > > print decomp.getSingularValues() > End code > prints > array('d', [11.218599757513008, 0.3781791648535976, nan]) > The last singular value should be something very close to 0 since the matrix > is rank deficient. When i use the result from getSolver() to solve a system, > i end > up with a bunch of NaNs in the solution. I assumed i would get back a least > squares solution. > Does this SVD implementation require that the matrix be full rank? If so, > then i would expect > an exception to be thrown from the constructor or one of the methods. -- This message is automatically generated by JIRA. - You can reply to this email to add a comment to the issue online.
[jira] Closed: (IO-225) UTF-8 support on CSV
[ https://issues.apache.org/jira/browse/IO-225?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ] Joerg Schaible closed IO-225. - Resolution: Not A Problem Please ask questions on the user's list, you're welcome there. JIRA is a bug tracking system and not a communication forum. > UTF-8 support on CSV > > > Key: IO-225 > URL: https://issues.apache.org/jira/browse/IO-225 > Project: Commons IO > Issue Type: Bug > Components: Streams/Writers >Affects Versions: 1.4 > Environment: Windows/Linux >Reporter: Shibu Kumar Nair > > I have a struts 2 application from which user can download CSV file. > The problem is > I download the CSV on the website then save to desktop of my computer and > Open it on NOTEPAD... > that works fine I could still see all the utf-8 text OK with no problem, but > if I open the CSV file in Microsoft EXCEL, > all the utf-8 text are no longer readable. > Does any one have the solution for this, how could I make it readable in MS > Excel > I am using org.apache.commons.io.FileUtils > FileUtils.writeStringToFile(file, test); > i also tried it with > FileUtils.writeStringToFile(file, test,encoding) method > Still the problem exists -- This message is automatically generated by JIRA. - You can reply to this email to add a comment to the issue online.
[jira] Created: (IO-225) UTF-8 support on CSV
UTF-8 support on CSV Key: IO-225 URL: https://issues.apache.org/jira/browse/IO-225 Project: Commons IO Issue Type: Bug Components: Streams/Writers Affects Versions: 1.4 Environment: Windows/Linux Reporter: Shibu Kumar Nair I have a struts 2 application from which user can download CSV file. The problem is I download the CSV on the website then save to desktop of my computer and Open it on NOTEPAD... that works fine I could still see all the utf-8 text OK with no problem, but if I open the CSV file in Microsoft EXCEL, all the utf-8 text are no longer readable. Does any one have the solution for this, how could I make it readable in MS Excel I am using org.apache.commons.io.FileUtils FileUtils.writeStringToFile(file, test); i also tried it with FileUtils.writeStringToFile(file, test,encoding) method Still the problem exists -- This message is automatically generated by JIRA. - You can reply to this email to add a comment to the issue online.
[jira] Closed: (LANG-578) Problem while using simple quotes in ExtendedMessageFormat when a registry is specified
[ https://issues.apache.org/jira/browse/LANG-578?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ] Olivier TERRIEN closed LANG-578. Resolution: Duplicate Fix Version/s: 3.0 I downloaded the new version of ExtendedMessageFormat class. It runs. I'll use it by shadowing the ExtendedMessageFormat 2.4 by waiting the release 3.0. Thanks. > Problem while using simple quotes in ExtendedMessageFormat when a registry is > specified > --- > > Key: LANG-578 > URL: https://issues.apache.org/jira/browse/LANG-578 > Project: Commons Lang > Issue Type: Bug > Components: lang.text.* >Affects Versions: 2.4 >Reporter: Olivier TERRIEN > Fix For: 3.0 > > > This runs successfully : > {code:java} > ExtendedMessageFormat templateFormat = new ExtendedMessageFormat("''{0}''"); > System.out.println(templateFormat.format(new String[] { "MESSAGE" })); > {code} > The result is 'MESSAGE'. > This raises an error : > {code:java} > Map formatFactory = new HashMap FormatFactory>(); > formatFactory.put("formatDate", new FormatFactory() { > @SuppressWarnings("all") > public Format getFormat(String name, String arguments, Locale > locale) { > return new SimpleDateFormat(); > } > }); > ExtendedMessageFormat templateFormat = new ExtendedMessageFormat("''{0}''", , > formatFactory); > System.out.println(templateFormat.format(new String[] { "MESSAGE" })); > {code} > The result is an exception (java heap space). > *way* : In _appendQuotedString_ method the code above doesn't seem to > increment the index pos before returning -- This message is automatically generated by JIRA. - You can reply to this email to add a comment to the issue online.