{"payload":{"feedbackUrl":"https://github.com/orgs/community/discussions/53140","repo":{"id":41615082,"defaultBranch":"master","name":"easel","ownerLogin":"EddyRivasLab","currentUserCanPush":false,"isFork":false,"isEmpty":false,"createdAt":"2015-08-30T03:11:41.000Z","ownerAvatar":"https://avatars.githubusercontent.com/u/13962260?v=4","public":true,"private":false,"isOrgOwned":true},"refInfo":{"name":"","listCacheKey":"v0:1701908167.0","currentOid":""},"activityList":{"items":[{"before":"139e6563d2c2348c2333ace3971bb9ebea9845fa","after":"ccdc32a720d6328b81baf479217d8dbd819d6f1a","ref":"refs/heads/develop","pushedAt":"2024-05-02T21:50:14.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"npcarter","name":"Nick Carter","path":"/npcarter","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/4624612?s=80&v=4"},"commit":{"message":"added avx and avx-512 versions of vector expf and logf functions.","shortMessageHtmlLink":"added avx and avx-512 versions of vector expf and logf functions."}},{"before":"5928a3c35c458c8b6061da761f495026ecea0f81","after":"139e6563d2c2348c2333ace3971bb9ebea9845fa","ref":"refs/heads/develop","pushedAt":"2024-03-21T21:34:04.000Z","pushType":"push","commitsCount":2,"pusher":{"login":"cryptogenomicon","name":"Sean Eddy","path":"/cryptogenomicon","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/13557645?s=80&v=4"},"commit":{"message":"Merge branch 'develop' of https://github.com/EddyRivasLab/easel into develop","shortMessageHtmlLink":"Merge branch 'develop' of https://github.com/EddyRivasLab/easel into …"}},{"before":"74ea570b78f8f8c4557885f33fdc17f89df5b006","after":"5928a3c35c458c8b6061da761f495026ecea0f81","ref":"refs/heads/develop","pushedAt":"2024-03-20T18:38:02.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"npcarter","name":"Nick Carter","path":"/npcarter","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/4624612?s=80&v=4"},"commit":{"message":"Fixed length-checking bug in esl_sq_Serialize","shortMessageHtmlLink":"Fixed length-checking bug in esl_sq_Serialize"}},{"before":"3fd1f3f1d5e0055cead2ae0d306132b3cc66da2b","after":"74ea570b78f8f8c4557885f33fdc17f89df5b006","ref":"refs/heads/develop","pushedAt":"2024-03-18T23:08:04.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"npcarter","name":"Nick Carter","path":"/npcarter","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/4624612?s=80&v=4"},"commit":{"message":"added serialize and deserialize routines for ESL_SQ","shortMessageHtmlLink":"added serialize and deserialize routines for ESL_SQ"}},{"before":"f5876b9375873ed09b17c2dbae711ec78a2d37cc","after":"3fd1f3f1d5e0055cead2ae0d306132b3cc66da2b","ref":"refs/heads/develop","pushedAt":"2024-02-17T23:20:13.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"cryptogenomicon","name":"Sean Eddy","path":"/cryptogenomicon","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/13557645?s=80&v=4"},"commit":{"message":"Did some additional tidying around just-committed PR #75","shortMessageHtmlLink":"Did some additional tidying around just-committed PR #75"}},{"before":"dfd555b93cbfe8bdfff16fca4166ae9689e5dc43","after":"f5876b9375873ed09b17c2dbae711ec78a2d37cc","ref":"refs/heads/develop","pushedAt":"2024-02-17T23:12:14.000Z","pushType":"pr_merge","commitsCount":2,"pusher":{"login":"cryptogenomicon","name":"Sean Eddy","path":"/cryptogenomicon","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/13557645?s=80&v=4"},"commit":{"message":"Merge pull request #75 from althonos/fix-sq-copy\n\nFix faulty `xr_tag` allocation in `esl_sq_Copy`","shortMessageHtmlLink":"Merge pull request #75 from althonos/fix-sq-copy"}},{"before":"03834e6cf409446ea0d97d5a347e86dcccd5d98c","after":"dfd555b93cbfe8bdfff16fca4166ae9689e5dc43","ref":"refs/heads/develop","pushedAt":"2024-01-31T15:29:16.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"cryptogenomicon","name":"Sean Eddy","path":"/cryptogenomicon","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/13557645?s=80&v=4"},"commit":{"message":"esl_dsq_Create() replaced; previous version renamed to esl_dsq_Build()\n\nesl_dsq_Create() now just allocates a new ESL_DSQ of length L.\nesl_dsq_Build() allocates and digitizes a text sequence using an ESL_ALPHABET.\n\nPreviously I would malloc() to allocate a dsq, but it's convenient to\nhave a _Create() wrapper around this malloc to catch any failure.\n\nThese two functions now obey Easel code standards, whereas the\nprevious esl_dsq_Create() did not. _Create() functions allocate and\ninitialize, returning a ptr to a new object; they may not fail for any\nother reason than malloc() failure. Whenever the allocation and\ninitialization of a new object is more complicated than this, and\nother sorts of failures can happen (requiring specific error codes or\nmessages), we use _Build().","shortMessageHtmlLink":"esl_dsq_Create() replaced; previous version renamed to esl_dsq_Build()"}},{"before":"a287de2e96d84c5bb86ba84fccfe21aaee5fd63d","after":"03834e6cf409446ea0d97d5a347e86dcccd5d98c","ref":"refs/heads/develop","pushedAt":"2023-12-30T10:35:19.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"cryptogenomicon","name":"Sean Eddy","path":"/cryptogenomicon","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/13557645?s=80&v=4"},"commit":{"message":"Adds --enable-msan to ./configure, to enable memory sanitizer\n\nA third sanitizer option, along with the thread and address\nsanitizers. Unlike the thread sanitizer (--enable-tsan) and the\naddress sanitizer (--enable-asan), the memory sanitizer is only\nsupported on clang and Linux, not gcc or MacOS.\n\nCC has to be set to clang too to use this. I didn't want to change the\norder that we do things in the configure script, and we select and\ntest the compiler before setting sanitizer flags. So to use MSAN you\nwould do:\n\n ./configure CC=clang --enable-msan\n\nI'm not checking for Linux and clang when --enable-msan is set;\ncompilation will just fail instead.","shortMessageHtmlLink":"Adds --enable-msan to ./configure, to enable memory sanitizer"}},{"before":"bfe84772cbac6fd9a38edd368bdbe6735ae43a70","after":"a287de2e96d84c5bb86ba84fccfe21aaee5fd63d","ref":"refs/heads/develop","pushedAt":"2023-12-14T19:28:02.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"cryptogenomicon","name":"Sean Eddy","path":"/cryptogenomicon","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/13557645?s=80&v=4"},"commit":{"message":"Fixes a missing \\0 (detected by --enable-asan)","shortMessageHtmlLink":"Fixes a missing \\0 (detected by --enable-asan)"}},{"before":"f47cc60350257f789b3f4a11f1c8d23673566fdb","after":"bfe84772cbac6fd9a38edd368bdbe6735ae43a70","ref":"refs/heads/develop","pushedAt":"2023-12-13T14:48:12.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"cryptogenomicon","name":"Sean Eddy","path":"/cryptogenomicon","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/13557645?s=80&v=4"},"commit":{"message":"Updates codestyle doc: don't assume char is signed (or unsigned)\n\n[xref EddyRivasLab/hmmer#318]","shortMessageHtmlLink":"Updates codestyle doc: don't assume char is signed (or unsigned)"}},{"before":"6628aa45e36825e2ca734e20f76bfa0a56dbaa53","after":"f47cc60350257f789b3f4a11f1c8d23673566fdb","ref":"refs/heads/develop","pushedAt":"2023-12-08T15:57:14.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"cryptogenomicon","name":"Sean Eddy","path":"/cryptogenomicon","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/13557645?s=80&v=4"},"commit":{"message":"Fixes issue with truncated option lists in esl_getopts error messages.\n\nThis is the fix for HMMER issue 317, from Nick.\n\nIf incompatible options are used, and if the list of incompatible\noptions is long, the error message formatted by esl_getopts may be\ntruncated. (Similarly, if a required option is missing, with a long\nlist of required options, though that would probably be rarer.)\n\nThe limitation here is that ESL_FAIL error messages have a fixed max\nlength of eslERRBUFSIZE-1, i.e. 127. We have to be stingy in how we\ninclude any long strings (file paths; option lists) in formatted error\nmessages.\n\n- Change error messages for required/incompat opts to print just the\n one conflicting required/incompat option name, rather than the entire\n list (which could be quite long).\n\n- Document that max option name length is 24, in esl_getopts.md\n\n- Add optname length check in esl_getopts_Create()","shortMessageHtmlLink":"Fixes issue with truncated option lists in esl_getopts error messages."}},{"before":"eacd370758beff914d5f2b3987e2bd793055b38f","after":"6628aa45e36825e2ca734e20f76bfa0a56dbaa53","ref":"refs/heads/develop","pushedAt":"2023-12-08T15:50:35.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"cryptogenomicon","name":"Sean Eddy","path":"/cryptogenomicon","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/13557645?s=80&v=4"},"commit":{"message":"esl_dsq_utest was leaving some tmpfiles around; have it clean up properly.","shortMessageHtmlLink":"esl_dsq_utest was leaving some tmpfiles around; have it clean up prop…"}},{"before":"0272b71556cdde6c34a9de6c7e451a3e219852f1","after":"eacd370758beff914d5f2b3987e2bd793055b38f","ref":"refs/heads/develop","pushedAt":"2023-12-08T15:30:05.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"cryptogenomicon","name":"Sean Eddy","path":"/cryptogenomicon","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/13557645?s=80&v=4"},"commit":{"message":"Updates list of man pages in configure.ac\n\nconfigure.ac has a list of man pages that need to be configured with\nversion/release info, so as I replace esl-foo.man miniapp pages with\neasel-foo.man pages for `easel foo` subcommands, I need to keep this\nlist up to date. HMMER, Infernal configure.ac's also have lists that\nwill also need to keep up to date.","shortMessageHtmlLink":"Updates list of man pages in configure.ac"}},{"before":"a5c2c56421099d3eaa77a9ee2004323c038c8701","after":"0272b71556cdde6c34a9de6c7e451a3e219852f1","ref":"refs/heads/develop","pushedAt":"2023-12-08T15:21:06.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"cryptogenomicon","name":"Sean Eddy","path":"/cryptogenomicon","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/13557645?s=80&v=4"},"commit":{"message":"Switches integrated test from esl-translate to easel translate\n\nThe new itest is easel-translate-itest.py.\n\nRemoves the old itest esl-translate.itest.pl, and the old man\npage. esl-translate has already been replaced by `easel translate`\nwith the new itest.py (in Python, as we work toward replacing Perl),\nand a new man page.","shortMessageHtmlLink":"Switches integrated test from esl-translate to easel translate"}},{"before":null,"after":"a5c2c56421099d3eaa77a9ee2004323c038c8701","ref":"refs/heads/miniapp-reorg","pushedAt":"2023-12-07T00:16:07.000Z","pushType":"branch_creation","commitsCount":0,"pusher":{"login":"cryptogenomicon","name":"Sean Eddy","path":"/cryptogenomicon","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/13557645?s=80&v=4"},"commit":{"message":"Oops. Fixing the previous commit that had fixed the commit before that.\n\nIn the last commit, I inadvertently picked up some changes that were\nin progress in miniapps/easel, that made it uncompilable; pulled them\nback out.","shortMessageHtmlLink":"Oops. Fixing the previous commit that had fixed the commit before that."}},{"before":"14574ddb832126bfa778327abb6d335f333a2d20","after":"a5c2c56421099d3eaa77a9ee2004323c038c8701","ref":"refs/heads/develop","pushedAt":"2023-12-01T13:43:13.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"cryptogenomicon","name":"Sean Eddy","path":"/cryptogenomicon","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/13557645?s=80&v=4"},"commit":{"message":"Oops. Fixing the previous commit that had fixed the commit before that.\n\nIn the last commit, I inadvertently picked up some changes that were\nin progress in miniapps/easel, that made it uncompilable; pulled them\nback out.","shortMessageHtmlLink":"Oops. Fixing the previous commit that had fixed the commit before that."}},{"before":"c603ff0e55fb29a146047357846d4d1ad7081414","after":"14574ddb832126bfa778327abb6d335f333a2d20","ref":"refs/heads/develop","pushedAt":"2023-12-01T13:38:50.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"cryptogenomicon","name":"Sean Eddy","path":"/cryptogenomicon","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/13557645?s=80&v=4"},"commit":{"message":"Several changes were left out of previous commit.\n\n(I must have done `git commit` instead of `git commit -a`.)","shortMessageHtmlLink":"Several changes were left out of previous commit."}},{"before":"ccfb49c23fa4386be944f073aa92bf8543bda8a6","after":"c603ff0e55fb29a146047357846d4d1ad7081414","ref":"refs/heads/develop","pushedAt":"2023-11-28T16:03:57.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"cryptogenomicon","name":"Sean Eddy","path":"/cryptogenomicon","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/13557645?s=80&v=4"},"commit":{"message":"Removes esl_gencode_Workstate* and esl_gencode_Process* six-frame translation tools\n\nSix-frame translation is now provided by esl_orfreader, so I'm\ndeleting the previous support. The previous support was too complex\n(compared to calling `esl_orfreader_Read()`); undocumented; had no\nunit testing; required an SSI index and could not be used on\nnonrewindable inputs; and depended on esl_getopts with particular\ncommandline option names too deep inside the code.\n\nesl-translate miniapp moved to `easel translate` as a subcommand of\nthe easel miniapp driver. (I need to move all the miniapps to this new\nstyle.)\n\nAdded easel-translate.man.in, the man page for `easel translate`.\n\nAdded easel-translate-itest.py, the start of an integration test for\n`easel translate`. Holding off on writing more in it until I have\n`esl-shuffle` moved over to `easel shuffle`.\n\nSimplified the way we keep the NCBI translation tables in esl_gencode.\n\nAdded several new codes from NCBI's \"Genetic Codes\" dataset. These alt\ncodes, alas, include three that use context-dependent decoding of\ncertain codons as either sense or stop, including one code that has no\nnormal terminators at all. We can't decode context-dependent codons.\nEasel will treat them as terminators. Documented this.\n\nRemoved esl_gencode_SetInitiatorAny() and slightly changed how we\ntranslate codons containing ambiguity codes. Previously, we decoded\nNNN as X to elongate an ORF, but did not allow NNN to initiate an ORF\neven if we weren't requiring initiation codons. Now we only check for\ninitiation codons if the `-m` or `-M` options are on (the\n`require_init` flag in ESL_ORFREADER); if a codon contains ambiguity\ncodes, all compatible codons must be initiators. (Thus HUG works in\nthe \"standard\" NCBI code with AUG|CUG|UUG initiators, but NUG does\nnot.) The default is to not require initiation codon to start an ORF,\nand now NNN translates to X even at the start. This new behavior\nrequired a change in one of the unit tests.\n\nAdds utest_altcodes and utest_ambiguity unit tests to esl_orfreader,\ntaking them from the previous Perl itest for esl-translate.\n\n[xref SRE:2023/1124-esl-gencode-revision]","shortMessageHtmlLink":"Removes esl_gencode_Workstate* and esl_gencode_Process* six-frame tra…"}},{"before":"64158a0f99dcf9fca7ef370b0b82c813925b7b65","after":"ccfb49c23fa4386be944f073aa92bf8543bda8a6","ref":"refs/heads/develop","pushedAt":"2023-11-24T13:07:35.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"cryptogenomicon","name":"Sean Eddy","path":"/cryptogenomicon","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/13557645?s=80&v=4"},"commit":{"message":"Adds esl_orfreader: six-frame translation of DNA sequence input\n\n creates an ESL_ORFREADER that wraps an\nESL_SQFILE input and an ESL_GENCODE genetic code;\n reads one translated ORF per call as it sweeps\nacross a DNA sequence input.\n\nSequence input is windowed, so input DNA sequence lengths are\neffectively unlimited.\n\nCodons containing ambiguity codes are decoded to correct amino acids\nwhen the ambiguity is across synonymous codons (GGN, GGR are decoded\nto glycine, for example).\n\nThe ESL_ORFREADER can be configured with options to control minimum\nORF length, watson (fwd) or crick (rev) strand reading only, and to\nforce ORFs to start with an initiation codon (as defined by the\nprovided ESL_GENCODE genetic code table).\n\nThe six-frame translation is done in a single pass, one nucleotide at\na time, maintaining six states for the six possible frames. (The DNA\nsequence doesn't need to be reverse complemented to get the reverse\nframes.) The ORFs therefore come out in left-to-right order by their\nrightmost coordinate: end coord (for fwd strand ORFs) or start coord\n(for rev strand ORFs).\n\nesl_orfreader_example is an example driver that's a simple version of\nesl-translate.\n\nesl_orfreader_utest implements the \"seven orfs\" unit test, an\nelaborate and a-little-too-much-fun synthetic sequence concoction.","shortMessageHtmlLink":"Adds esl_orfreader: six-frame translation of DNA sequence input"}},{"before":"367f817bbf983d8aa40d18e6331b2fafbdacd801","after":"64158a0f99dcf9fca7ef370b0b82c813925b7b65","ref":"refs/heads/develop","pushedAt":"2023-11-18T20:00:23.000Z","pushType":"push","commitsCount":2,"pusher":{"login":"cryptogenomicon","name":"Sean Eddy","path":"/cryptogenomicon","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/13557645?s=80&v=4"},"commit":{"message":"Merge branch 'develop' of https://github.com/EddyRivasLab/easel into develop","shortMessageHtmlLink":"Merge branch 'develop' of https://github.com/EddyRivasLab/easel into …"}},{"before":"afe779c315e679e2b9a99f6e88281c1d9494e752","after":"367f817bbf983d8aa40d18e6331b2fafbdacd801","ref":"refs/heads/develop","pushedAt":"2023-09-21T22:04:37.000Z","pushType":"pr_merge","commitsCount":2,"pusher":{"login":"cryptogenomicon","name":"Sean Eddy","path":"/cryptogenomicon","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/13557645?s=80&v=4"},"commit":{"message":"Merge pull request #73 from mr-c/cppflags\n\npropagate CPPFLAGS","shortMessageHtmlLink":"Merge pull request #73 from mr-c/cppflags"}},{"before":"27053ba296c30877afa388214fa1d0d3385378c7","after":"afe779c315e679e2b9a99f6e88281c1d9494e752","ref":"refs/heads/develop","pushedAt":"2023-09-21T22:02:07.000Z","pushType":"pr_merge","commitsCount":4,"pusher":{"login":"cryptogenomicon","name":"Sean Eddy","path":"/cryptogenomicon","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/13557645?s=80&v=4"},"commit":{"message":"Merge pull request #74 from mr-c/spelling\n\nfix typos","shortMessageHtmlLink":"Merge pull request #74 from mr-c/spelling"}},{"before":"09d1115490da96ebee46feea3dabd829bcece9e6","after":"27053ba296c30877afa388214fa1d0d3385378c7","ref":"refs/heads/develop","pushedAt":"2023-09-10T15:21:45.000Z","pushType":"push","commitsCount":3,"pusher":{"login":"cryptogenomicon","name":"Sean Eddy","path":"/cryptogenomicon","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/13557645?s=80&v=4"},"commit":{"message":"Cosmetic changes to Eric's leak fix in esl-construct.\n\nWe don't need to check for non-NULL ptrs when using Easel `_Destroy()`\nroutines, because a `_Destroy()` routine itself already checks for it. So\nsomething like `if (abc != NULL) esl_alphabet_Destroy(abc)` can just\nbe `esl_alphabet_Destroy(abc)`.\n\nSame goes for free() itself, in C99-compliant code (C99 7.20.3.2/2).","shortMessageHtmlLink":"Cosmetic changes to Eric's leak fix in esl-construct."}},{"before":"86934e4ee5933967719480fbb8e45a15325f683f","after":"09d1115490da96ebee46feea3dabd829bcece9e6","ref":"refs/heads/develop","pushedAt":"2023-09-08T16:38:47.000Z","pushType":"push","commitsCount":2,"pusher":{"login":"nawrockie","name":"Eric Nawrocki","path":"/nawrockie","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/739302?s=80&v=4"},"commit":{"message":"Merges construct-memleak branch into develop","shortMessageHtmlLink":"Merges construct-memleak branch into develop"}},{"before":"fb6dbac381a50633387e99592f388c95310f2fdc","after":null,"ref":"refs/heads/release-0.48","pushedAt":"2023-08-15T19:08:59.000Z","pushType":"branch_deletion","commitsCount":0,"pusher":{"login":"cryptogenomicon","name":"Sean Eddy","path":"/cryptogenomicon","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/13557645?s=80&v=4"}},{"before":"281c81377595ef781dff962d9572240406a5e364","after":"07ca83ba9ef0414dba9ce0a9331d465b5eb58f2b","ref":"refs/heads/master","pushedAt":"2023-08-15T19:03:21.000Z","pushType":"push","commitsCount":96,"pusher":{"login":"cryptogenomicon","name":"Sean Eddy","path":"/cryptogenomicon","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/13557645?s=80&v=4"},"commit":{"message":"Merging release-0.49 branch back to master.","shortMessageHtmlLink":"Merging release-0.49 branch back to master."}},{"before":"fce9d5ba13902483d33d0df5a21dc6f118ff0dab","after":"86934e4ee5933967719480fbb8e45a15325f683f","ref":"refs/heads/develop","pushedAt":"2023-08-13T08:15:30.000Z","pushType":"push","commitsCount":3,"pusher":{"login":"cryptogenomicon","name":"Sean Eddy","path":"/cryptogenomicon","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/13557645?s=80&v=4"},"commit":{"message":"Release notes added for 0.49","shortMessageHtmlLink":"Release notes added for 0.49"}},{"before":null,"after":"86934e4ee5933967719480fbb8e45a15325f683f","ref":"refs/heads/release-0.49","pushedAt":"2023-08-13T08:12:34.000Z","pushType":"branch_creation","commitsCount":0,"pusher":{"login":"cryptogenomicon","name":"Sean Eddy","path":"/cryptogenomicon","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/13557645?s=80&v=4"},"commit":{"message":"Release notes added for 0.49","shortMessageHtmlLink":"Release notes added for 0.49"}},{"before":"8103652510e0f28afb5353dee1c26fcc618c9ca1","after":"fce9d5ba13902483d33d0df5a21dc6f118ff0dab","ref":"refs/heads/develop","pushedAt":"2023-08-08T17:17:22.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"cryptogenomicon","name":"Sean Eddy","path":"/cryptogenomicon","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/13557645?s=80&v=4"},"commit":{"message":"Fixes icc/mpicc warning about underflow from \"tiny*tiny* in esl_stats_erfc()\n\nThe esl_stats_erfc() function is a backup for systems that don't\nprovide erfc() even though erfc() required by C99 standard. I cribbed\nit, with attribution, from a 1993 open source Sun Microsystems\nimplementation. It defines constants tiny=1e-300 and two=2.0, and for\nvery large or small input x, it returns tiny*tiny or two-tiny,\nrespectively.\n\nI had a compiler warn about underflow on the \"tiny*tiny\" and no duh, I\nagree with the compiler, I'm pretty sure that's a silly\nconstruction. The smallest representable (subnormal) double is\n2^{-1074} ~ 10^{-323}; 10^-{600} must underflow to zero. two-tiny is\nalso silly because 10^-300 is way smaller than DBL_EPSILON, so\ntwo-tiny is 2. And while we're at it, I'm also pretty sure that\ndefining constants like \"one = 1.00000000000000000000e+00\" is silly\ntoo. 1.0, 2.0, and 0.5 are all exactly representable in IEEE754. Maybe\nSun was trying to work around non-IEEE754 representations at the time?\n\nReplaced those returns with 0.0, 2.0.\nReplaced unnecessary constants \"tiny\", \"half\", \"one\", and \"two\".","shortMessageHtmlLink":"Fixes icc/mpicc warning about underflow from \"tiny*tiny* in esl_stats…"}},{"before":"63296453615f3d4dd93909f62a63111d2b708651","after":"8103652510e0f28afb5353dee1c26fcc618c9ca1","ref":"refs/heads/develop","pushedAt":"2023-08-08T13:06:10.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"cryptogenomicon","name":"Sean Eddy","path":"/cryptogenomicon","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/13557645?s=80&v=4"},"commit":{"message":"Fixes a 5% probability esl_graph_utest failure caused by esl_rnd_Roll(rng, 0)\n\nA recent improvement to esl_rnd_Roll() (c3c149cf, Aug 1) also made it\nrighteously intolerant of n=0 as an argument; you can't roll a 0-sided\ndie. It requires n>=1.\n\nI do seem to have some code that sloppily assumes that\nesl_rnd_Roll(rng, 0) returns 0, which was how the previous macro\nimplementation behaved. Turns out an example was in a\nesl_graph::utest_perfect(), where we do sample a random number of\nextra bipartite graph edges with esl_rnd_Roll(rng, m*m-m), and m can\nsometimes (1/20 probability) be 1. The fix is just to special case\nm==1 there.","shortMessageHtmlLink":"Fixes a 5% probability esl_graph_utest failure caused by esl_rnd_Roll…"}}],"hasNextPage":true,"hasPreviousPage":false,"activityType":"all","actor":null,"timePeriod":"all","sort":"DESC","perPage":30,"cursor":"djE6ks8AAAAEQD2S9gA","startCursor":null,"endCursor":null}},"title":"Activity · EddyRivasLab/easel"}