{"payload":{"feedbackUrl":"https://github.com/orgs/community/discussions/53140","repo":{"id":63992576,"defaultBranch":"master","name":"ProxImaL","ownerLogin":"comp-imaging","currentUserCanPush":false,"isFork":false,"isEmpty":false,"createdAt":"2016-07-23T01:12:16.000Z","ownerAvatar":"https://avatars.githubusercontent.com/u/20606219?v=4","public":true,"private":false,"isOrgOwned":true},"refInfo":{"name":"","listCacheKey":"v0:1696031027.0","currentOid":""},"activityList":{"items":[{"before":"84dcdb2728db6b00e928324ff76f6972cbae1110","after":"d88d4025018a6ad5e1f36bc53bc86a1d43be6b34","ref":"refs/heads/master","pushedAt":"2024-09-24T03:19:48.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"antonysigma","name":null,"path":"/antonysigma","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/12185630?s=80&v=4"},"commit":{"message":"Direct FFT method: resolve image boundary condition\n\nWhen FFT's W/H are larger than the image size, pad the space with zeros.\nAlso, if shiftx and shifty are non-zeros, resolve the W-by-H tile with\ncyclic boundary condition.","shortMessageHtmlLink":"Direct FFT method: resolve image boundary condition"}},{"before":"2ba692e3262733f5ea4c832acf81e3a6f95cb400","after":"84dcdb2728db6b00e928324ff76f6972cbae1110","ref":"refs/heads/master","pushedAt":"2024-08-04T23:18:26.000Z","pushType":"pr_merge","commitsCount":1,"pusher":{"login":"antonysigma","name":null,"path":"/antonysigma","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/12185630?s=80&v=4"},"commit":{"message":"Update flake8 rules\n\nEnsure flake8 rules are enabled on the CI runner. Use `ruff` to\naccelerate flake8 checking. Increase the McCabe max complexity score\nfrom 15 to 30 because `proximal/algorithms/pock_chambolle.py` contains\n`pycuda` code.","shortMessageHtmlLink":"Update flake8 rules"}},{"before":"a9b9a36b52bf8784aedd81cf4b478e9c02321059","after":"2ba692e3262733f5ea4c832acf81e3a6f95cb400","ref":"refs/heads/master","pushedAt":"2024-08-03T20:11:14.000Z","pushType":"pr_merge","commitsCount":1,"pusher":{"login":"antonysigma","name":null,"path":"/antonysigma","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/12185630?s=80&v=4"},"commit":{"message":"Check for FFT2 image size\n\nWhen the input image dimensions does not match that of the\nHalide-accelerated FFT2 input dimensions, print a warning message.\nSometimes, it is desirable to apply circular boundary conditions to fill\nthe missing input pixels.","shortMessageHtmlLink":"Check for FFT2 image size"}},{"before":"f76a9d004a08d482f47c67201882028ced6426fb","after":"a9b9a36b52bf8784aedd81cf4b478e9c02321059","ref":"refs/heads/master","pushedAt":"2024-07-18T02:47:26.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"antonysigma","name":null,"path":"/antonysigma","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/12185630?s=80&v=4"},"commit":{"message":"Lock to Numpy version 1.23\n\nNumpy 2.0 introduces a few breaking changes to Numexpr. Provide adhoc\nfix by locking to Numpy version 1.23.0\n\nUse uv to speed up pip install. Cache downlaoded wheels.","shortMessageHtmlLink":"Lock to Numpy version 1.23"}},{"before":"8d68f495ba121b067820869b48b5fd7a26026eee","after":"f76a9d004a08d482f47c67201882028ced6426fb","ref":"refs/heads/master","pushedAt":"2024-07-18T01:05:51.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"antonysigma","name":null,"path":"/antonysigma","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/12185630?s=80&v=4"},"commit":{"message":"Validate halide build on Windows\n\nConfigure meson build system to scan for msvc compiler toolchain.\nCompile everything. Run unit tests.","shortMessageHtmlLink":"Validate halide build on Windows"}},{"before":"b517540f28a753c1930669201b1ad1f42d7d824a","after":"8d68f495ba121b067820869b48b5fd7a26026eee","ref":"refs/heads/master","pushedAt":"2024-04-17T03:27:08.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"antonysigma","name":null,"path":"/antonysigma","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/12185630?s=80&v=4"},"commit":{"message":"Add example figures\n\nIn the example tab of the code documentation webpage, add the figures\nrepresenting the examples of Proximal reconstructions.","shortMessageHtmlLink":"Add example figures"}},{"before":"868186f1c229a21b362040c484747c457dfb8286","after":"b517540f28a753c1930669201b1ad1f42d7d824a","ref":"refs/heads/master","pushedAt":"2024-01-14T22:35:28.000Z","pushType":"pr_merge","commitsCount":1,"pusher":{"login":"antonysigma","name":null,"path":"/antonysigma","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/12185630?s=80&v=4"},"commit":{"message":"Present code examples on the official webpage\n\nUncomment the hyperlink to the CVX code examples in the Sphinx table of\ncontents (TOC). Remove automatic API documentation for the time being.\nRemove Travis CI button.\n\nPresent the problem formulation of some basic examples: TV denoise, TV\nregularized image deconvolution.","shortMessageHtmlLink":"Present code examples on the official webpage"}},{"before":"4ba04596a359620b103c7ff2dea6b4a783eda8f9","after":"868186f1c229a21b362040c484747c457dfb8286","ref":"refs/heads/master","pushedAt":"2023-11-29T15:45:13.000Z","pushType":"pr_merge","commitsCount":2,"pusher":{"login":"antonysigma","name":null,"path":"/antonysigma","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/12185630?s=80&v=4"},"commit":{"message":"ProxImaLGen: Unroll the L-ADMM algorithm by N-times\n\nExecute N iterations of the L-ADMM algorithm before checking the\nconvergence criteria. Use previous value of `v`.","shortMessageHtmlLink":"ProxImaLGen: Unroll the L-ADMM algorithm by N-times"}},{"before":"08acc8e4581b613f613fb32f28b775f09a0263f8","after":"4ba04596a359620b103c7ff2dea6b4a783eda8f9","ref":"refs/heads/master","pushedAt":"2023-11-10T21:09:54.000Z","pushType":"pr_merge","commitsCount":1,"pusher":{"login":"antonysigma","name":null,"path":"/antonysigma","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/12185630?s=80&v=4"},"commit":{"message":"Pass memoized_expr to least_square.solve()\n\nIn HQS and ADMM algorithms, disable the cache mechanism by passing new\nvalues to the `least_square.solve()` function.\n\nMark Ktb_cached as immutable, read only buffer.","shortMessageHtmlLink":"Pass memoized_expr to least_square.solve()"}},{"before":"644ad376d8d2deedb6ab2daa73e95ba5978bbbd9","after":"08acc8e4581b613f613fb32f28b775f09a0263f8","ref":"refs/heads/master","pushedAt":"2023-11-08T20:29:37.000Z","pushType":"pr_merge","commitsCount":1,"pusher":{"login":"antonysigma","name":null,"path":"/antonysigma","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/12185630?s=80&v=4"},"commit":{"message":"Spatially varying PSF deconvolutions\n\nDefine the blackbox linear operators `weights_then_convolve` and\n`convolve_then_weights` and then formulate the spatially varying image\ndeconvolution problem. Simulate the noisy image from either the\nNagyAndOLeary1998 model or the FlickerAndRigaut2005 models.","shortMessageHtmlLink":"Spatially varying PSF deconvolutions"}},{"before":"daad595ead9330c06eca5b24c3a8d606563f6eaf","after":"644ad376d8d2deedb6ab2daa73e95ba5978bbbd9","ref":"refs/heads/master","pushedAt":"2023-11-06T22:01:06.000Z","pushType":"pr_merge","commitsCount":1,"pusher":{"login":"antonysigma","name":null,"path":"/antonysigma","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/12185630?s=80&v=4"},"commit":{"message":"Cache Ktb in least_square\n\nRetrieve the pointer address of the offset buffer as hash. Pre-compute\nand cache the value of Ktb. Implement the feature `memoized_expr` to\ndelay computation of `offset + b` in least_square.prox() function.\n\nOn average, it cuts ~30% execution time per call (860ms -> 600ms) to\n`least_square.prox()` on x86_64 CPU having 8 logical cores.\n\nTODO(Antony): Too many level of caches already (offset, Ktb, F_Ktb).\nFlatten all in Halide.","shortMessageHtmlLink":"Cache Ktb in least_square"}},{"before":"ddae5ec9033ee252423f35b709abbe1f3773a948","after":"daad595ead9330c06eca5b24c3a8d606563f6eaf","ref":"refs/heads/master","pushedAt":"2023-10-31T22:50:43.000Z","pushType":"pr_merge","commitsCount":2,"pusher":{"login":"antonysigma","name":null,"path":"/antonysigma","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/12185630?s=80&v=4"},"commit":{"message":"Measure the compute time of Omega functions in L-ADMM","shortMessageHtmlLink":"Measure the compute time of Omega functions in L-ADMM"}},{"before":"00b57f19a0c0f8d1b7c875fd965bc3f445f61da7","after":"ddae5ec9033ee252423f35b709abbe1f3773a948","ref":"refs/heads/master","pushedAt":"2023-10-30T15:55:11.000Z","pushType":"pr_merge","commitsCount":1,"pusher":{"login":"antonysigma","name":null,"path":"/antonysigma","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/12185630?s=80&v=4"},"commit":{"message":"Compile Halide optimized pipelines on ARM64-Darwin environment\n\nAdd a warp file to describe where to download the Halide toolchain for\nMacOS OS on ARM64 processors. Exclude jpeg encoder and dependency requirement.","shortMessageHtmlLink":"Compile Halide optimized pipelines on ARM64-Darwin environment"}},{"before":"bcc5bf457f4c48f999bc970cf0319dad8509a069","after":"00b57f19a0c0f8d1b7c875fd965bc3f445f61da7","ref":"refs/heads/master","pushedAt":"2023-10-06T03:27:16.000Z","pushType":"pr_merge","commitsCount":1,"pusher":{"login":"antonysigma","name":null,"path":"/antonysigma","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/12185630?s=80&v=4"},"commit":{"message":"Copy GPU buffer data to host\n\nWhen Halide-accelerated lin_op and proximal functions are computed in\nGPUs, mark the input data as \"dirty\" pending data transfer from host.\nExplicitly copy the output data back to host.","shortMessageHtmlLink":"Copy GPU buffer data to host"}},{"before":"f38d691f0991942a6feaacce505f145a3c3ef7f7","after":null,"ref":"refs/heads/test","pushedAt":"2023-09-29T23:43:47.000Z","pushType":"branch_deletion","commitsCount":0,"pusher":{"login":"antonysigma","name":null,"path":"/antonysigma","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/12185630?s=80&v=4"}},{"before":"97908cf6ac3eafdba90547259d0e35b05a9464aa","after":"bcc5bf457f4c48f999bc970cf0319dad8509a069","ref":"refs/heads/master","pushedAt":"2023-09-26T18:04:15.000Z","pushType":"pr_merge","commitsCount":1,"pusher":{"login":"antonysigma","name":null,"path":"/antonysigma","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/12185630?s=80&v=4"},"commit":{"message":"Add optical flow example script\n\nAdded an example to compute the Horn-Schunck optical flow between two\nnoisy images.","shortMessageHtmlLink":"Add optical flow example script"}},{"before":"af047d6fcdb2f831c7ae3dff771b1de049265a2f","after":"97908cf6ac3eafdba90547259d0e35b05a9464aa","ref":"refs/heads/master","pushedAt":"2023-09-26T17:37:21.000Z","pushType":"pr_merge","commitsCount":6,"pusher":{"login":"antonysigma","name":null,"path":"/antonysigma","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/12185630?s=80&v=4"},"commit":{"message":"Hardcode shiftx,shifty in zero\n\nFor least square recovery of an image convolved with a 2D kernel, the\nrelative shifts of the kernel and the image is likely zero. Make it so\nto further optimize the Halide-accelerated pipeline.","shortMessageHtmlLink":"Hardcode shiftx,shifty in zero"}},{"before":"44eef8c95886d37f193e9a733e867910edf76c02","after":"af047d6fcdb2f831c7ae3dff771b1de049265a2f","ref":"refs/heads/master","pushedAt":"2023-09-13T21:27:42.000Z","pushType":"pr_merge","commitsCount":3,"pusher":{"login":"antonysigma","name":null,"path":"/antonysigma","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/12185630?s=80&v=4"},"commit":{"message":"Link the external NLM library to Python interface","shortMessageHtmlLink":"Link the external NLM library to Python interface"}},{"before":"3437814f70b45669aab5a44f7da02ee2da5751db","after":"44eef8c95886d37f193e9a733e867910edf76c02","ref":"refs/heads/master","pushedAt":"2023-09-04T23:20:26.000Z","pushType":"pr_merge","commitsCount":2,"pusher":{"login":"antonysigma","name":null,"path":"/antonysigma","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/12185630?s=80&v=4"},"commit":{"message":"Beautify test_deconv.py","shortMessageHtmlLink":"Beautify test_deconv.py"}},{"before":"fd360ebaf6b7113f174433ae47b464eec48e2524","after":"3437814f70b45669aab5a44f7da02ee2da5751db","ref":"refs/heads/master","pushedAt":"2023-08-09T18:16:14.000Z","pushType":"pr_merge","commitsCount":3,"pusher":{"login":"antonysigma","name":null,"path":"/antonysigma","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/12185630?s=80&v=4"},"commit":{"message":"Const RDom whenever possible","shortMessageHtmlLink":"Const RDom whenever possible"}},{"before":"7777c1526a220d5f1c4af217a6d847287365375a","after":"fd360ebaf6b7113f174433ae47b464eec48e2524","ref":"refs/heads/master","pushedAt":"2023-08-09T04:26:39.000Z","pushType":"pr_merge","commitsCount":2,"pusher":{"login":"antonysigma","name":null,"path":"/antonysigma","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/12185630?s=80&v=4"},"commit":{"message":"Avoid using Halide::sum to compute l2-norm\n\nUtilize Func::udpate() feature to accumulate the squared sum of each\nvariable in the FuncTuple list. This also simplifies the effort to\nimplement/schedule the GPU routine via `norm.update(i).rfactor(...)`.","shortMessageHtmlLink":"Avoid using Halide::sum to compute l2-norm"}},{"before":"dd3e46470e069e97aa684d0d5ff0dbe56958db00","after":"7777c1526a220d5f1c4af217a6d847287365375a","ref":"refs/heads/master","pushedAt":"2023-08-09T04:25:37.000Z","pushType":"pr_merge","commitsCount":3,"pusher":{"login":"antonysigma","name":null,"path":"/antonysigma","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/12185630?s=80&v=4"},"commit":{"message":"Mesonbuild 0.58.1 -> 1.2.1","shortMessageHtmlLink":"Mesonbuild 0.58.1 -> 1.2.1"}},{"before":"4c76ff994c904a6dc7da82ed6a741668af59ecff","after":"dd3e46470e069e97aa684d0d5ff0dbe56958db00","ref":"refs/heads/master","pushedAt":"2023-08-09T04:19:47.000Z","pushType":"pr_merge","commitsCount":1,"pusher":{"login":"antonysigma","name":null,"path":"/antonysigma","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/12185630?s=80&v=4"},"commit":{"message":"Avoid API breaking changes in Numexpr 2.8.5\n\nFallback to Numexpr version 2.8.4, such that the keyword argument:\n`numexpr.evaluate(..., global_dict={})` can capture user defined global\ndictionary.","shortMessageHtmlLink":"Avoid API breaking changes in Numexpr 2.8.5"}},{"before":"96031beb1b35b0d56b4f3c37d8eba1e83b2f9e82","after":"4c76ff994c904a6dc7da82ed6a741668af59ecff","ref":"refs/heads/master","pushedAt":"2023-07-27T21:14:50.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"SteveDiamond","name":"Steven Diamond","path":"/SteveDiamond","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/520736?s=80&v=4"},"commit":{"message":"Update README.md","shortMessageHtmlLink":"Update README.md"}},{"before":"13c3fcb9a461e22b98fb45e17e0104d180b9b06d","after":"96031beb1b35b0d56b4f3c37d8eba1e83b2f9e82","ref":"refs/heads/master","pushedAt":"2023-07-20T21:17:43.000Z","pushType":"pr_merge","commitsCount":5,"pusher":{"login":"antonysigma","name":null,"path":"/antonysigma","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/12185630?s=80&v=4"},"commit":{"message":"Cast Knorm to float\n\nNumpy deprecated the API: numpy.float(). Use the Python native casting\nfloat() instead.","shortMessageHtmlLink":"Cast Knorm to float"}},{"before":"e0bbeba432cbc11d4a6d871f8c81f54a6b2ba776","after":"13c3fcb9a461e22b98fb45e17e0104d180b9b06d","ref":"refs/heads/master","pushedAt":"2023-07-20T20:39:44.000Z","pushType":"pr_merge","commitsCount":3,"pusher":{"login":"antonysigma","name":null,"path":"/antonysigma","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/12185630?s=80&v=4"},"commit":{"message":"Disable Windows CI","shortMessageHtmlLink":"Disable Windows CI"}},{"before":"b2821ef7397ec4fc3956136df34231a7798cb2f4","after":"e0bbeba432cbc11d4a6d871f8c81f54a6b2ba776","ref":"refs/heads/master","pushedAt":"2023-07-14T18:18:19.000Z","pushType":"pr_merge","commitsCount":1,"pusher":{"login":"antonysigma","name":null,"path":"/antonysigma","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/12185630?s=80&v=4"},"commit":{"message":"Ensure Halide modules can build on MacOS\n\nGiven a matrix of OS and Python environments, checkout C++ source.\nDetect build dependencies. Compile everyting. Run the C++ test suite.","shortMessageHtmlLink":"Ensure Halide modules can build on MacOS"}},{"before":"42a437586bb9dee881e2db93678773b2cb3ec521","after":"b2821ef7397ec4fc3956136df34231a7798cb2f4","ref":"refs/heads/master","pushedAt":"2023-07-14T16:25:09.000Z","pushType":"pr_merge","commitsCount":2,"pusher":{"login":"antonysigma","name":null,"path":"/antonysigma","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/12185630?s=80&v=4"},"commit":{"message":"Resolve C++20 concepts syntax error\n\nMove function parameters types into requires(...) . Require function\nreturns to match Halide::Func .","shortMessageHtmlLink":"Resolve C++20 concepts syntax error"}},{"before":"c8063efc2962a697cd8a95992f49ffaa52f435da","after":"42a437586bb9dee881e2db93678773b2cb3ec521","ref":"refs/heads/master","pushedAt":"2023-07-13T18:03:12.000Z","pushType":"pr_merge","commitsCount":1,"pusher":{"login":"antonysigma","name":null,"path":"/antonysigma","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/12185630?s=80&v=4"},"commit":{"message":"Ensure Halide modules can build on Windows and Linux\n\nGiven a matrix of OS and Python environments, checkout C++ source.\nDetect build dependencies. Compile everyting. Run the C++ test suite.","shortMessageHtmlLink":"Ensure Halide modules can build on Windows and Linux"}},{"before":"8363e165a6d2e9c809e1cf4e605442e6ebafaf10","after":null,"ref":"refs/heads/update-docs","pushedAt":"2023-05-06T17:33:58.000Z","pushType":"branch_deletion","commitsCount":0,"pusher":{"login":"antonysigma","name":null,"path":"/antonysigma","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/12185630?s=80&v=4"}}],"hasNextPage":true,"hasPreviousPage":false,"activityType":"all","actor":null,"timePeriod":"all","sort":"DESC","perPage":30,"cursor":"Y3Vyc29yOnYyOpK7MjAyNC0wOS0yNFQwMzoxOTo0OC4wMDAwMDBazwAAAAS-paOQ","startCursor":"Y3Vyc29yOnYyOpK7MjAyNC0wOS0yNFQwMzoxOTo0OC4wMDAwMDBazwAAAAS-paOQ","endCursor":"Y3Vyc29yOnYyOpK7MjAyMy0wNS0wNlQxNzozMzo1OC4wMDAwMDBazwAAAAMnbpJT"}},"title":"Activity ยท comp-imaging/ProxImaL"}