{"payload":{"feedbackUrl":"https://github.com/orgs/community/discussions/53140","repo":{"id":71323151,"defaultBranch":"master","name":"Multicore-TSNE","ownerLogin":"DmitryUlyanov","currentUserCanPush":false,"isFork":false,"isEmpty":false,"createdAt":"2016-10-19T05:46:52.000Z","ownerAvatar":"https://avatars.githubusercontent.com/u/6727524?v=4","public":true,"private":false,"isOrgOwned":false},"refInfo":{"name":"","listCacheKey":"v0:1545731220.0","currentOid":""},"activityList":{"items":[{"before":"eee533ae2c455c1d4c28da3172d439cce45144c2","after":"c1dbf84eb550980876d8ed822af4e9dfd21c5e05","ref":"refs/heads/master","pushedAt":"2024-02-06T10:59:55.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"DmitryUlyanov","name":"Dmitry Ulyanov","path":"/DmitryUlyanov","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/6727524?s=80&v=4"},"commit":{"message":"make shared again","shortMessageHtmlLink":"make shared again"}},{"before":"422a73e2341a1480e849419e65dc1955716dc2c0","after":"eee533ae2c455c1d4c28da3172d439cce45144c2","ref":"refs/heads/master","pushedAt":"2024-01-12T11:22:59.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"DmitryUlyanov","name":"Dmitry Ulyanov","path":"/DmitryUlyanov","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/6727524?s=80&v=4"},"commit":{"message":"Improve README.md","shortMessageHtmlLink":"Improve README.md"}},{"before":"fe449552089824c2672667a85f22bdfbe6917485","after":"422a73e2341a1480e849419e65dc1955716dc2c0","ref":"refs/heads/master","pushedAt":"2024-01-12T10:27:52.000Z","pushType":"push","commitsCount":2,"pusher":{"login":"DmitryUlyanov","name":"Dmitry Ulyanov","path":"/DmitryUlyanov","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/6727524?s=80&v=4"},"commit":{"message":"Merge branch 'master' of https://github.com/DmitryUlyanov/Multicore-TSNE","shortMessageHtmlLink":"Merge branch 'master' of https://github.com/DmitryUlyanov/Multicore-TSNE"}},{"before":"d3661ba5eb58429f04febcb82122280274957dd2","after":"fe449552089824c2672667a85f22bdfbe6917485","ref":"refs/heads/master","pushedAt":"2024-01-12T10:23:18.000Z","pushType":"pr_merge","commitsCount":1,"pusher":{"login":"DmitryUlyanov","name":"Dmitry Ulyanov","path":"/DmitryUlyanov","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/6727524?s=80&v=4"},"commit":{"message":"Assorted cleanups (#83)\n\n* Fix typo in header include guard\r\n\r\n* Make tsne_multicore a static library\r\n\r\nThis allows easier consumption of the library from CMake projects.\r\nWe can now just link to it directly, instead of having to rely\r\non dlopen at runtime.\r\n\r\n* Modernize CMake build script\r\n\r\nAdd tsne_multicore::tsne_multicore alias target and setup the\r\ntarget include directories to allow easier consumption of this\r\nlibrary - just link to the alias target.\r\n\r\nAlso don't use GLOB but isntead list the sources directly. This\r\nis best-practice, globing woudl fail to pick up new files that\r\nget added without force-running cmake manually.\r\n\r\n* Link against OpenMP::OpenMP_CXX target\r\n\r\nNow that we depend on CMake 3.9 we can simplify OpenMP consumption.\r\nJust link against the alias target which will pull everything needed\r\nin. See also:\r\nhttps://cliutils.gitlab.io/modern-cmake/chapters/packages/OpenMP.html\r\n\r\n* Do not link against libc++ and libstdc++\r\n\r\nThis should not be needed on macOS and hints at an issue at the\r\nconsumer side. Most notably note that it is usually a very bad\r\nidea to link libc++ _and_ libstdc++ into the same TU.\r\n\r\nKeep libm, but use target_link_libraries for that purpose.\r\n\r\n* Remove useless CMAKE_MODULE_PATH\r\n\r\nThere is no cmake subfolder, so this is not needed.\r\n\r\n* Modernize cmake: use target properties\r\n\r\nLeverage CMake to set -fPIC in a platform agnostic way and\r\nset target_compile_options with generator expressions. Do not\r\noverride -O, just use the default of Release or RelWithDebInfo.\r\n\r\n* cmake: make it possible to install multicore_tsne\r\n\r\nThis allows the library to be consumed via find_package from another\r\nproject. The CMake script now creates a Config.cmake file which will\r\nthen be found which makes the tsne_multicore::tsne_multicore target\r\navailable, together with its interface variables, most notably the\r\ninclude path.\r\n\r\n* Forward-declare DataPoint from vptree in tsne.h to fix compile error\r\n\r\nFixes the following error when one is just including tsne.h.\r\nGenerally it's considered best-practice to have headers be\r\nfully self-contained.\r\n\r\n```\r\n../3rdParty/multicore_tsne/multicore_tsne/tsne.h:18:49: error: ‘DataPoint’ does not name a type\r\n 18 | template \r\n | ^~~~~~~~~\r\n```\r\n\r\n* Use std::numeric_limits::max instead of DBL_MAX\r\n\r\nFixes compile error when cfloat wasn't included yet:\r\n```\r\n../3rdParty/multicore_tsne/multicore_tsne/vptree.h: In member function ‘void VpTree::search(const T&, int, std::vector*, std::vector*)’:\r\n../3rdParty/multicore_tsne/multicore_tsne/vptree.h:103:22: error: ‘DBL_MAX’ was not declared in this scope\r\n 103 | double tau = DBL_MAX;\r\n | ^~~~~~~\r\n../3rdParty/multicore_tsne/multicore_tsne/vptree.h:17:1: note: ‘DBL_MAX’ is defined in header ‘’; did you forget to ‘#include ’?\r\n```\r\n\r\n* Inline euclidean_distance_squared\r\n\r\nFixes linker error about ODR violation when linking:\r\n```\r\nld.lld: error: duplicate symbol: euclidean_distance_squared(DataPoint const&, DataPoint const&)\r\n>>> defined at vptree.h:62 (../3rdParty/multicore_tsne/multicore_tsne/vptree.h:62)\r\n>>> KDAB/features/CMakeFiles/QiTissue_Features.dir/tsnedatagenerator.cpp.o:(euclidean_distance_squared(DataPoint const&, DataPoint const&))\r\n>>> defined at vptree.h:62 (../3rdParty/multicore_tsne/multicore_tsne/vptree.h:62)\r\n>>> tsne.cpp.o:(.text+0x4B) in archive lib/libtsne_multicore.a\r\n```\r\n\r\n* Initialize variable to prevent compiler warning\r\n\r\nFixes:\r\n```\r\n../3rdParty/multicore_tsne/multicore_tsne/tsne.cpp:431:22: warning: ‘sum_P’ may be used uninitialized in this function [-Wmaybe-uninitialized]\r\n 431 | cur_P[m] /= sum_P;\r\n../3rdParty/multicore_tsne/multicore_tsne/tsne.cpp:384:30: note: ‘sum_P’ was declared here\r\n 384 | int iter = 0; double sum_P;\r\n | ^~~~~\r\n```\r\n\r\n* Do not call exit() when memory allocation fails\r\n\r\nWhen tsne_multicore is used as a library in a larger application,\r\none does not want to kill the whole application when tsne fails to\r\nallocate some memory. Handle this more gracefully by just returning\r\nwhen an error occurs.\r\n\r\n* Don't crash when running on all-zero data\r\n\r\nIn such a case the code would try a division by zero which would\r\nthen crash.","shortMessageHtmlLink":"Assorted cleanups (#83)"}},{"before":"fcd3a8d2a6c996af9fc692eab14a1affab522ed9","after":"d3661ba5eb58429f04febcb82122280274957dd2","ref":"refs/heads/master","pushedAt":"2024-01-12T10:10:33.000Z","pushType":"pr_merge","commitsCount":2,"pusher":{"login":"DmitryUlyanov","name":"Dmitry Ulyanov","path":"/DmitryUlyanov","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/6727524?s=80&v=4"},"commit":{"message":"Merge pull request #82 from KDAB/upstream/license-clarification\n\nClarify LICENSE.txt","shortMessageHtmlLink":"Merge pull request #82 from KDAB/upstream/license-clarification"}},{"before":"89b8ce5b1911b024eeaf6b7f1083da3c30ad5e7c","after":"fcd3a8d2a6c996af9fc692eab14a1affab522ed9","ref":"refs/heads/master","pushedAt":"2024-01-12T10:05:03.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"DmitryUlyanov","name":"Dmitry Ulyanov","path":"/DmitryUlyanov","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/6727524?s=80&v=4"},"commit":{"message":"remove Torch bindings, update mnist downloader, improve readme a bit","shortMessageHtmlLink":"remove Torch bindings, update mnist downloader, improve readme a bit"}},{"before":"ce78343091319cbd7adfd8f7705d9960e905f557","after":"89b8ce5b1911b024eeaf6b7f1083da3c30ad5e7c","ref":"refs/heads/master","pushedAt":"2023-05-26T18:23:38.030Z","pushType":"pr_merge","commitsCount":2,"pusher":{"login":"jorvis","name":"Joshua Orvis","path":"/jorvis","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/330899?s=80&v=4"},"commit":{"message":"Merge pull request #95 from ecederstrand/patch-2\n\nMake 'packaging' a setup requirement","shortMessageHtmlLink":"Merge pull request #95 from ecederstrand/patch-2"}},{"before":"443731a47134d14653cfea526227a27cc3b38702","after":"ce78343091319cbd7adfd8f7705d9960e905f557","ref":"refs/heads/master","pushedAt":"2023-05-17T15:43:54.686Z","pushType":"pr_merge","commitsCount":2,"pusher":{"login":"DmitryUlyanov","name":"Dmitry Ulyanov","path":"/DmitryUlyanov","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/6727524?s=80&v=4"},"commit":{"message":"Merge pull request #92 from jorvis/master\n\nFixes issue where setup was failing on cmake >= 3.22.0. Works with ve…","shortMessageHtmlLink":"Merge pull request #92 from jorvis/master"}}],"hasNextPage":false,"hasPreviousPage":false,"activityType":"all","actor":null,"timePeriod":"all","sort":"DESC","perPage":30,"cursor":"djE6ks8AAAAD8z47ZAA","startCursor":null,"endCursor":null}},"title":"Activity · DmitryUlyanov/Multicore-TSNE"}