{"action":"created","issue":{"url":"https://api.github.com/repos/StrikeNP/trac_test/issues/358","repository_url":"https://api.github.com/repos/StrikeNP/trac_test","labels_url":"https://api.github.com/repos/StrikeNP/trac_test/issues/358/labels{/name}","comments_url":"https://api.github.com/repos/StrikeNP/trac_test/issues/358/comments","events_url":"https://api.github.com/repos/StrikeNP/trac_test/issues/358/events","html_url":"https://github.com/StrikeNP/trac_test/issues/358","id":330445150,"node_id":"MDU6SXNzdWUzMzA0NDUxNTA=","number":358,"title":"Latin hypercube: Use modified Cholesky decomposition (Trac #358)","user":{"login":"StrikeNP","id":2577059,"node_id":"MDQ6VXNlcjI1NzcwNTk=","avatar_url":"https://avatars0.githubusercontent.com/u/2577059?v=4","gravatar_id":"","url":"https://api.github.com/users/StrikeNP","html_url":"https://github.com/StrikeNP","followers_url":"https://api.github.com/users/StrikeNP/followers","following_url":"https://api.github.com/users/StrikeNP/following{/other_user}","gists_url":"https://api.github.com/users/StrikeNP/gists{/gist_id}","starred_url":"https://api.github.com/users/StrikeNP/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/StrikeNP/subscriptions","organizations_url":"https://api.github.com/users/StrikeNP/orgs","repos_url":"https://api.github.com/users/StrikeNP/repos","events_url":"https://api.github.com/users/StrikeNP/events{/privacy}","received_events_url":"https://api.github.com/users/StrikeNP/received_events","type":"User","site_admin":false},"labels":[{"id":958019852,"node_id":"MDU6TGFiZWw5NTgwMTk4NTI=","url":"https://api.github.com/repos/StrikeNP/trac_test/labels/Migrated%20from%20Trac","name":"Migrated from Trac","color":"FFFFFF","default":false},{"id":958042830,"node_id":"MDU6TGFiZWw5NTgwNDI4MzA=","url":"https://api.github.com/repos/StrikeNP/trac_test/labels/clubb_src","name":"clubb_src","color":"FFFFFF","default":false},{"id":958042829,"node_id":"MDU6TGFiZWw5NTgwNDI4Mjk=","url":"https://api.github.com/repos/StrikeNP/trac_test/labels/dschanen@uwm.edu","name":"dschanen@uwm.edu","color":"FFFFFF","default":false},{"id":958019578,"node_id":"MDU6TGFiZWw5NTgwMTk1Nzg=","url":"https://api.github.com/repos/StrikeNP/trac_test/labels/enhancement","name":"enhancement","color":"a2eeef","default":true}],"state":"open","locked":false,"assignee":null,"assignees":[],"milestone":{"url":"https://api.github.com/repos/StrikeNP/trac_test/milestones/8","html_url":"https://github.com/StrikeNP/trac_test/milestone/8","labels_url":"https://api.github.com/repos/StrikeNP/trac_test/milestones/8/labels","id":3408876,"node_id":"MDk6TWlsZXN0b25lMzQwODg3Ng==","number":8,"title":"Improve SILHS","description":null,"creator":{"login":"StrikeNP","id":2577059,"node_id":"MDQ6VXNlcjI1NzcwNTk=","avatar_url":"https://avatars0.githubusercontent.com/u/2577059?v=4","gravatar_id":"","url":"https://api.github.com/users/StrikeNP","html_url":"https://github.com/StrikeNP","followers_url":"https://api.github.com/users/StrikeNP/followers","following_url":"https://api.github.com/users/StrikeNP/following{/other_user}","gists_url":"https://api.github.com/users/StrikeNP/gists{/gist_id}","starred_url":"https://api.github.com/users/StrikeNP/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/StrikeNP/subscriptions","organizations_url":"https://api.github.com/users/StrikeNP/orgs","repos_url":"https://api.github.com/users/StrikeNP/repos","events_url":"https://api.github.com/users/StrikeNP/events{/privacy}","received_events_url":"https://api.github.com/users/StrikeNP/received_events","type":"User","site_admin":false},"open_issues":58,"closed_issues":23,"state":"open","created_at":"2018-06-07T19:59:06Z","updated_at":"2018-06-08T18:30:06Z","due_on":null,"closed_at":null},"comments":20,"created_at":"2018-06-07T21:38:10Z","updated_at":"2018-06-08T21:19:52Z","closed_at":null,"author_association":"OWNER","body":"'''Introduction'''\n\ngaus_condt is too slow.  Therefore, we'd like to replace it with gaus_condt_cholesky, which implements a Cholesky decomposition and is much faster (https://github.com/larson-group/clubb/issues/327).  \n\nHowever, the gaus_condt_cholesky seems to produce noisy values of lh_thlm even when the covariance matrix is positive definite.  To avoid this, we could try rescaling the covariance matrix. That is, we could put s_mellor and t_mellor in g/kg.  One way to do this would involve multiplying the first two rows and first two columns of the covariance matrix by 1000, and then dividing the sample point values of s_mellor and t_mellor by 1000.  However, this would be expensive.  It might be less expensive to make the inputs to Latin hypercube in g/kg; but this might be confusing because the units would change midstream.  I'm not sure which is better from a coding standpoint.\n\nAnd sometimes, the covariance matrix is not positive definite.  To avoid this, we could 1) use a modified Cholesky decomposition, 2) compute the eigenvalues and eigenvectors, make the negative eigenvalues positive, and transform back, or 3) use gaus_condt as a backup when this happens.\n\n'''Technical spec'''\n\nLet's try scaling s_mellor and t_mellor first.\n\nWe should implement gaus_condt_cholesky so that gaus_condt can be run simultaneously in an offline mode.  That way we can compare outputs using print statements or the debugger. \n\n\nAttachments:\n\nhttp://carson.math.uwm.edu/trac/clubb/attachment/ticket/358/rrainm.png\n\nMigrated from http://carson.math.uwm.edu/trac/clubb/ticket/358\n```json\n{\n    \"status\": \"closed\", \n    \"changetime\": \"2010-09-22T21:35:39\", \n    \"description\": \"'''Introduction'''\\n\\ngaus_condt is too slow.  Therefore, we'd like to replace it with gaus_condt_cholesky, which implements a Cholesky decomposition and is much faster (comment:5:ticket:327).  \\n\\nHowever, the gaus_condt_cholesky seems to produce noisy values of lh_thlm even when the covariance matrix is positive definite.  To avoid this, we could try rescaling the covariance matrix. That is, we could put s_mellor and t_mellor in g/kg.  One way to do this would involve multiplying the first two rows and first two columns of the covariance matrix by 1000, and then dividing the sample point values of s_mellor and t_mellor by 1000.  However, this would be expensive.  It might be less expensive to make the inputs to Latin hypercube in g/kg; but this might be confusing because the units would change midstream.  I'm not sure which is better from a coding standpoint.\\n\\nAnd sometimes, the covariance matrix is not positive definite.  To avoid this, we could 1) use a modified Cholesky decomposition, 2) compute the eigenvalues and eigenvectors, make the negative eigenvalues positive, and transform back, or 3) use gaus_condt as a backup when this happens.\\n\\n'''Technical spec'''\\n\\nLet's try scaling s_mellor and t_mellor first.\\n\\nWe should implement gaus_condt_cholesky so that gaus_condt can be run simultaneously in an offline mode.  That way we can compare outputs using print statements or the debugger. \\n\", \n    \"reporter\": \"vlarson@uwm.edu\", \n    \"cc\": \"vlarson@uwm.edu\", \n    \"resolution\": \"Verified by V. Larson\", \n    \"_ts\": \"1285191339000000\", \n    \"component\": \"clubb_src\", \n    \"summary\": \"Latin hypercube: Use modified Cholesky decomposition\", \n    \"priority\": \"major\", \n    \"keywords\": \"\", \n    \"time\": \"2010-09-01T18:36:46\", \n    \"milestone\": \"Improve SILHS\", \n    \"owner\": \"dschanen@uwm.edu\", \n    \"type\": \"enhancement\"\n}\n```\n"},"comment":{"url":"https://api.github.com/repos/StrikeNP/trac_test/issues/comments/395893379","html_url":"https://github.com/StrikeNP/trac_test/issues/358#issuecomment-395893379","issue_url":"https://api.github.com/repos/StrikeNP/trac_test/issues/358","id":395893379,"node_id":"MDEyOklzc3VlQ29tbWVudDM5NTg5MzM3OQ==","user":{"login":"StrikeNP","id":2577059,"node_id":"MDQ6VXNlcjI1NzcwNTk=","avatar_url":"https://avatars0.githubusercontent.com/u/2577059?v=4","gravatar_id":"","url":"https://api.github.com/users/StrikeNP","html_url":"https://github.com/StrikeNP","followers_url":"https://api.github.com/users/StrikeNP/followers","following_url":"https://api.github.com/users/StrikeNP/following{/other_user}","gists_url":"https://api.github.com/users/StrikeNP/gists{/gist_id}","starred_url":"https://api.github.com/users/StrikeNP/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/StrikeNP/subscriptions","organizations_url":"https://api.github.com/users/StrikeNP/orgs","repos_url":"https://api.github.com/users/StrikeNP/repos","events_url":"https://api.github.com/users/StrikeNP/events{/privacy}","received_events_url":"https://api.github.com/users/StrikeNP/received_events","type":"User","site_admin":false},"created_at":"2018-06-08T21:19:52Z","updated_at":"2018-06-08T21:19:52Z","author_association":"OWNER","body":"Trac update at 2010/09/09 at 20:32\n\ndschanen@uwm.edu commented:\n\nGoing on the assumption that the problem has something to do with the equilibration of the Sigma matrix I've been looking at a LAPACK subroutine [http://www.netlib.org/lapack/explore-html/a00860.html here]. As a side note, that call tree diagram is really cool. I wonder if doxygen can generate those automatically?\nIf the problem is an issue of the accuracy, I think one of these subroutines might be a good place to start.\n\n"}}
{"actor":{"display_login":"StrikeNP"}}