{"payload":{"feedbackUrl":"https://github.com/orgs/community/discussions/53140","repo":{"id":12146969,"defaultBranch":"master","name":"simbody","ownerLogin":"simbody","currentUserCanPush":false,"isFork":false,"isEmpty":false,"createdAt":"2013-08-16T00:21:53.000Z","ownerAvatar":"https://avatars.githubusercontent.com/u/5199961?v=4","public":true,"private":false,"isOrgOwned":true},"refInfo":{"name":"","listCacheKey":"v0:1711838709.0","currentOid":""},"activityList":{"items":[{"before":"9b43796c4db6fc37c2543652b1e4e39ebe838b04","after":"d98f05fa1899633b544757e6c179562940f0849d","ref":"refs/heads/master","pushedAt":"2024-03-30T22:45:04.000Z","pushType":"pr_merge","commitsCount":1,"pusher":{"login":"sherm1","name":"Michael Sherman","path":"/sherm1","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/4088016?s=80&v=4"},"commit":{"message":"Adds the method calcForcesContributionSum() to GeneralForceSubsystem (#788)\n\nAlso upgrades Ubuntu GitHub Action runners to version 20.04","shortMessageHtmlLink":"Adds the method calcForcesContributionSum() to GeneralForceSubsystem (#…"}},{"before":"bd171213534e524da279d823a786f9c5c143ca2c","after":"9b43796c4db6fc37c2543652b1e4e39ebe838b04","ref":"refs/heads/master","pushedAt":"2024-03-27T15:01:06.000Z","pushType":"pr_merge","commitsCount":1,"pusher":{"login":"sherm1","name":"Michael Sherman","path":"/sherm1","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/4088016?s=80&v=4"},"commit":{"message":"Fixed LoneParticle bugs in getHCol() and getH_FMCol() (#786)","shortMessageHtmlLink":"Fixed LoneParticle bugs in getHCol() and getH_FMCol() (#786)"}},{"before":"2e133341c71e5b53eb9e8e5680660e837dbae0b4","after":"2d75f54e330a4aacb1dd10c46fc112ef1808d8e0","ref":"refs/heads/fix_lone_particle_H_errors","pushedAt":"2024-03-25T15:30:29.000Z","pushType":"force_push","commitsCount":0,"pusher":{"login":"sherm1","name":"Michael Sherman","path":"/sherm1","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/4088016?s=80&v=4"},"commit":{"message":"Fixed LoneParticle bugs in getHCol() and getH_FMCol()","shortMessageHtmlLink":"Fixed LoneParticle bugs in getHCol() and getH_FMCol()"}},{"before":"7a42ec82c98db4594bced6e80abdef07366d9799","after":"2e133341c71e5b53eb9e8e5680660e837dbae0b4","ref":"refs/heads/fix_lone_particle_H_errors","pushedAt":"2024-03-23T23:55:43.000Z","pushType":"force_push","commitsCount":0,"pusher":{"login":"sherm1","name":"Michael Sherman","path":"/sherm1","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/4088016?s=80&v=4"},"commit":{"message":"Fixed LoneParticle bugs in getHCol() and getH_FMCol()","shortMessageHtmlLink":"Fixed LoneParticle bugs in getHCol() and getH_FMCol()"}},{"before":null,"after":"7a42ec82c98db4594bced6e80abdef07366d9799","ref":"refs/heads/fix_lone_particle_H_errors","pushedAt":"2024-03-23T23:12:07.000Z","pushType":"branch_creation","commitsCount":0,"pusher":{"login":"sherm1","name":"Michael Sherman","path":"/sherm1","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/4088016?s=80&v=4"},"commit":{"message":"Fixed LoneParticle bugs in getHCol() and getH_FMCol()","shortMessageHtmlLink":"Fixed LoneParticle bugs in getHCol() and getH_FMCol()"}},{"before":"6e7913c3851105f3d24b3fad2fdc4a42a7d86f50","after":"bd171213534e524da279d823a786f9c5c143ca2c","ref":"refs/heads/master","pushedAt":"2024-03-12T00:44:47.000Z","pushType":"pr_merge","commitsCount":1,"pusher":{"login":"sherm1","name":"Michael Sherman","path":"/sherm1","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/4088016?s=80&v=4"},"commit":{"message":"Add methods for computing the Jacobian `PV = [P; V]` to SimbodyMatterSubsystem (#783)\n\nAdd methods for compute PV and its transpose to SimbodyMatterSubsystem","shortMessageHtmlLink":"Add methods for computing the Jacobian PV = [P; V] to SimbodyMatter…"}},{"before":"2b4aefbb43d8b55f3edc3bdfafa9636fb988ed3c","after":"6e7913c3851105f3d24b3fad2fdc4a42a7d86f50","ref":"refs/heads/master","pushedAt":"2024-03-06T17:34:29.000Z","pushType":"pr_merge","commitsCount":1,"pusher":{"login":"sherm1","name":"Michael Sherman","path":"/sherm1","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/4088016?s=80&v=4"},"commit":{"message":"Xml String Precision Bug Fix 2 (#781)\n\n* Removed \"precision\" as an optional argument.\n\nWith \"precision\" as an optional argument, variables of type bool were not being handled properly. In particular, calling either Xml::Element::Element(tagWord, value, precision) or Xml::Element::setValueAs(value, precision) for a value of type bool was causing the specialized constructor SimTK::String::String(bool b) to be sidestepped.\n\nThe cleanest solution was to remove \"precision\" as an optional argument, returning to the implementation prior to #776, and simply add three new methods to the API that include a non-optional \"precision\" argument.\n\nMethods prior to #776 ----\nString::String(const T& t)\nXml::Element(const String& tagWord, const T& value)\nXml::setValueAs(const T& value)\n\nAdded methods ----\nString::String(const T& t, int precision)\nXml::Element(const String& tagWord, const T& value, int precision)\nXml::setValueAs(const T& value, int precision)\n\nWith this approach, there are no changes in how existing code will run. Should a demand for a different number of significant figures than the default std::ostream value (i.e., 6) arise, users should simply call one of the new added methods with an appropriate value for the precision argument.\n\nA benefit of this approach is that the constant String::DefaultOutputPrecision, which was added in #776, could be removed.\n\nThe subunit test, Xml.cpp::TestXml::testOutputPrecision was updated to account for the above changes. In particular, all references to String::DefaultOuputPrecision were removed, and SimTK_TEST() calls for variables of type bool were added.\n\n* Updated the date of a comment.\n\n* Merge branch 'simbody:master' into xml_string_precision_fix\n\n* Bug Fix: enforce bounds on output precision\n\nIt was discovered that implementations of ostream::setprecision() may differ. See Issue #780.\n\nTo ensure consistent behavior of ostream::setprecision() across operating systems and whether a build is debug or release, precision is bounded in String::String(const T& t, int precision):\n\n1 <= precision <= SimTK::LosslessNumDigitsReal\n\nDocumentation and tests in TestXML.cpp have been updated.\n\n* Corrections to comments and documentation.","shortMessageHtmlLink":"Xml String Precision Bug Fix 2 (#781)"}},{"before":"0f0dcb9b214b2e7def038d50261c99f6eb4df166","after":"2b4aefbb43d8b55f3edc3bdfafa9636fb988ed3c","ref":"refs/heads/master","pushedAt":"2024-03-04T00:35:32.000Z","pushType":"pr_merge","commitsCount":1,"pusher":{"login":"sherm1","name":"Michael Sherman","path":"/sherm1","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/4088016?s=80&v=4"},"commit":{"message":"XML String Precision Bug Fix (#779)\n\n* Removed \"precision\" as an optional argument.\r\n\r\nWith \"precision\" as an optional argument, variables of type bool were not being handled properly. In particular, calling either Xml::Element::Element(tagWord, value, precision) or Xml::Element::setValueAs(value, precision) for a value of type bool was causing the specialized constructor SimTK::String::String(bool b) to be sidestepped.\r\n\r\nThe cleanest solution was to remove \"precision\" as an optional argument, returning to the implementation prior to #776, and simply add three new methods to the API that include a non-optional \"precision\" argument.\r\n\r\nMethods prior to #776 ----\r\nString::String(const T& t)\r\nXml::Element(const String& tagWord, const T& value)\r\nXml::setValueAs(const T& value)\r\n\r\nAdded methods ----\r\nString::String(const T& t, int precision)\r\nXml::Element(const String& tagWord, const T& value, int precision)\r\nXml::setValueAs(const T& value, int precision)\r\n\r\nWith this approach, there are no changes in how existing code will run. Should a demand for a different number of significant figures than the default std::ostream value (i.e., 6) arise, users should simply call one of the new added methods with an appropriate value for the precision argument.\r\n\r\nA benefit of this approach is that the constant String::DefaultOutputPrecision, which was added in #776, could be removed.\r\n\r\nThe subunit test, Xml.cpp::TestXml::testOutputPrecision was updated to account for the above changes. In particular, all references to String::DefaultOuputPrecision were removed, and SimTK_TEST() calls for variables of type bool were added.\r\n\r\n* Updated the date of a comment.\r\n\r\n---------\r\n\r\nCo-authored-by: Clay Anderson ","shortMessageHtmlLink":"XML String Precision Bug Fix (#779)"}},{"before":"589e931f4a127830a5876ee4dd8f327b47361504","after":"0f0dcb9b214b2e7def038d50261c99f6eb4df166","ref":"refs/heads/master","pushedAt":"2024-02-12T19:51:47.000Z","pushType":"pr_merge","commitsCount":1,"pusher":{"login":"sherm1","name":"Michael Sherman","path":"/sherm1","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/4088016?s=80&v=4"},"commit":{"message":"XML String Precision (#776)\n\n* Added precision argument to String(const T&)\n\nAdded an optional parameter, 'precision', to the templatized String constructor. It specifies the number of significant figures used to convert a numerical type to a String. The default value of the 'precision' is 6, which is typically the default precision of std::ostream.\n\nI also updated the Doxygen documentation for this constructor.\n\n* Added an optional precision argument\n\nI added an optional 'precision' parameter to three templatized methods:\n- String::String()\n- Xml::Element::Element()\n- Xml::Element::setValueAs()\n\nTo support the default value, I added the following constant:\nString::DefaultOutputPrecision{6}\n\nA value of 6 was chosen to agree with the default precision of std::ostream and so that the behavior of these methods after the additions will be the same as it was prior.\n\nI revised the documentation for the above methods and the constant.\n\n* Added a unit test for output precision.\n\nTo test the ability to modify the number of significant figures written to XML output, I added the subtest 'testOutputPrecision' to testXml.cpp.\n\nIn addition to Xml::Element::Element() and Xml::Element::setValueAs(), the subtest also tests String::String(), which is the low-level templatized String constructor where precision control is achieved.\n\n* Typo corrections and tweaks.\n\nI proofed the documentation and made a few minor changes.\n\n* More tweaks.\n\nJust some developer notes.\n\n* Simplified and refined developer notes.\n\nI removed any reference to \"API Adjustments\" but retained the list of methods where the constant String::DefaultOutputPrecision is used.\n\n* Corrected typos, removed dead code, improved name\n\n\"n\" --> \"num_precisions\"","shortMessageHtmlLink":"XML String Precision (#776)"}},{"before":"930ae0feff0adb5aec184af62d14f9d138cacd48","after":"589e931f4a127830a5876ee4dd8f327b47361504","ref":"refs/heads/master","pushedAt":"2023-12-12T15:22:05.000Z","pushType":"pr_merge","commitsCount":1,"pusher":{"login":"sherm1","name":"Michael Sherman","path":"/sherm1","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/4088016?s=80&v=4"},"commit":{"message":"Fix O(N^2) vector growth when reading mesh files (#773)","shortMessageHtmlLink":"Fix O(N^2) vector growth when reading mesh files (#773)"}},{"before":"24b5fa4abcc87d8ff0b5f889deab4ea3e42b6560","after":"930ae0feff0adb5aec184af62d14f9d138cacd48","ref":"refs/heads/master","pushedAt":"2023-12-06T15:52:01.000Z","pushType":"pr_merge","commitsCount":1,"pusher":{"login":"sherm1","name":"Michael Sherman","path":"/sherm1","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/4088016?s=80&v=4"},"commit":{"message":"Drop deprecated std::iterator usage from node_iterator (#772)","shortMessageHtmlLink":"Drop deprecated std::iterator usage from node_iterator (#772)"}},{"before":"99e19a293c39b3f24c24c610a05b2c83df199ed6","after":"24b5fa4abcc87d8ff0b5f889deab4ea3e42b6560","ref":"refs/heads/master","pushedAt":"2023-11-25T18:45:00.000Z","pushType":"pr_merge","commitsCount":1,"pusher":{"login":"sherm1","name":"Michael Sherman","path":"/sherm1","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/4088016?s=80&v=4"},"commit":{"message":"Ensure simbody links transitive DLLs (e.g. libgfortran) (#771)\n\n* Ensure simbody lists transitive DLLs (e.g. libgfortran) as dependencies for CMake\n\n* Ensure _all_ transitive dependencies are incorporated\n\n* Add comment explanation for transitive linking (#771)","shortMessageHtmlLink":"Ensure simbody links transitive DLLs (e.g. libgfortran) (#771)"}},{"before":"5743f707ff13795d685008678c0ed399947e308c","after":"99e19a293c39b3f24c24c610a05b2c83df199ed6","ref":"refs/heads/master","pushedAt":"2023-11-22T18:28:52.000Z","pushType":"pr_merge","commitsCount":1,"pusher":{"login":"sherm1","name":"Michael Sherman","path":"/sherm1","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/4088016?s=80&v=4"},"commit":{"message":"Replace std::iterator with std::iterator_traits-compatible equivalent (#770)","shortMessageHtmlLink":"Replace std::iterator with std::iterator_traits-compatible equivalent ("}},{"before":"1760946a42d2b5d4d6b2f3bbfaf1b8dbecf98641","after":null,"ref":"refs/heads/add_minor_test","pushedAt":"2023-11-13T19:21:50.000Z","pushType":"branch_deletion","commitsCount":0,"pusher":{"login":"sherm1","name":"Michael Sherman","path":"/sherm1","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/4088016?s=80&v=4"}},{"before":"f31933bcd056a62cc7b81679368dc437bde12d3e","after":"5743f707ff13795d685008678c0ed399947e308c","ref":"refs/heads/master","pushedAt":"2023-11-13T19:21:42.000Z","pushType":"pr_merge","commitsCount":1,"pusher":{"login":"sherm1","name":"Michael Sherman","path":"/sherm1","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/4088016?s=80&v=4"},"commit":{"message":"Added a small test (#769)","shortMessageHtmlLink":"Added a small test (#769)"}},{"before":null,"after":"1760946a42d2b5d4d6b2f3bbfaf1b8dbecf98641","ref":"refs/heads/add_minor_test","pushedAt":"2023-11-11T19:59:06.000Z","pushType":"branch_creation","commitsCount":0,"pusher":{"login":"sherm1","name":"Michael Sherman","path":"/sherm1","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/4088016?s=80&v=4"},"commit":{"message":"Added a small test","shortMessageHtmlLink":"Added a small test"}},{"before":"5c5437a2e22afbebd33dc38b1b008c7f984e7786","after":"f31933bcd056a62cc7b81679368dc437bde12d3e","ref":"refs/heads/master","pushedAt":"2023-11-04T16:33:08.000Z","pushType":"pr_merge","commitsCount":1,"pusher":{"login":"sherm1","name":"Michael Sherman","path":"/sherm1","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/4088016?s=80&v=4"},"commit":{"message":"Fix MultibodyGraphMaker declaration order to be C++20 compatible (#766) (#767)","shortMessageHtmlLink":"Fix MultibodyGraphMaker declaration order to be C++20 compatible (#766)…"}},{"before":"57cbf148ebe3a283b8495519d187c2cd14d72315","after":"5c5437a2e22afbebd33dc38b1b008c7f984e7786","ref":"refs/heads/master","pushedAt":"2023-09-21T15:55:27.000Z","pushType":"pr_merge","commitsCount":1,"pusher":{"login":"sherm1","name":"Michael Sherman","path":"/sherm1","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/4088016?s=80&v=4"},"commit":{"message":"Added access to State indices for ExponentialSpringForce (#763)\n\n* Added access to State indices for ExponentialSpringForce\r\n\r\nClass ExponentialSpringForce has 4 states:\r\n- Static coefficient of friction (discrete)\r\n- Kinetic coefficient of friction (discrete)\r\n- Sliding state (auto-update discrete)\r\n- Elastic anchor point (auto-update discrete)\r\n\r\nA typical user will not need the State indices of these states.\r\n\r\nAccess to the indices is provided so that other modeling frameworks written on top of Simbody, such as OpenSim, can get the values of a States in a generic way. Specifically, with the indices, the values can be obtained by calling\r\n\r\nSimTK::Subsystem::getDiscreteVariable(const State& s, DiscreteVariableIndex index)\r\n\r\nA few trailing white spaces were also removed.\r\n\r\n* Testing index accessors for exponential springs\r\n\r\nThe unit tests in TestExponentialSpring.cpp now include tests for\r\n- getMuStaticStateIndex()\r\n- getMuKineticStateIndex()\r\n- getSlidingStateIndex()\r\n- getAnchorPointStateIndex()\r\n\r\n* Shortened documentation for state index accessors.\r\n\r\n* Revamped documentation for state index accessors.\r\n\r\nAll state index accessors are now located at the end of ExponentialSpringForce.h and are collected under a Doxygen group named \"State Indices (Advanced)\". As a result, some repetition has been eliminated, and the clarity of the documentation improved.\r\n\r\n---------\r\n\r\nCo-authored-by: Clay Anderson ","shortMessageHtmlLink":"Added access to State indices for ExponentialSpringForce (#763)"}},{"before":"0d671660c4e97f26566da040eaa57089fab81192","after":"57cbf148ebe3a283b8495519d187c2cd14d72315","ref":"refs/heads/master","pushedAt":"2023-09-03T21:32:02.000Z","pushType":"pr_merge","commitsCount":1,"pusher":{"login":"sherm1","name":"Michael Sherman","path":"/sherm1","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/4088016?s=80&v=4"},"commit":{"message":"Precision set to LosslessNumDigitsReal in SimTK::String::String(const T&) (#762)\n\nPrecision set to LosslessNumDigitsReal in String::String(T)\r\n\r\nTo achieve lossless conversion, the ostringstream precision in SimTK::String::String(const T&) is now set to a value of SimTK::LosslessNumDigitsReal, which is typically 20. Documentation is updated.\r\n\r\nThis change affects SimTK::Xml::setValueAs(const T& value). Now, XML elements representing doubles will have ~20 significant digits instead of ~6, rendering class SimTK::Xml a viable framework for lossless serialization.\r\n\r\n---------\r\n\r\nCo-authored-by: Clay Anderson ","shortMessageHtmlLink":"Precision set to LosslessNumDigitsReal in SimTK::String::String(const…"}},{"before":"32f870c14ba731eee9369b3a84071be62bd102dd","after":"0d671660c4e97f26566da040eaa57089fab81192","ref":"refs/heads/master","pushedAt":"2023-08-31T16:51:49.000Z","pushType":"pr_merge","commitsCount":1,"pusher":{"login":"sherm1","name":"Michael Sherman","path":"/sherm1","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/4088016?s=80&v=4"},"commit":{"message":"Fixed size of string buffer in IpOptionsList.cpp (#761)\n\nRecently in PR #760, ```sprintf()```s were migrated to ```snprintf()```s. In IpOptionsList.cpp, the change to ```snprintf()``` was done correctly but the size of the ```buffer[256]``` array should have used the local variable '''const int n=256'' to specify the size of the buffer. That is, ```buffer[n]```.","shortMessageHtmlLink":"Fixed size of string buffer in IpOptionsList.cpp (#761)"}},{"before":"d6cb631a02de71e98532d72236b36e5515c75bdb","after":"32f870c14ba731eee9369b3a84071be62bd102dd","ref":"refs/heads/master","pushedAt":"2023-08-30T19:02:39.000Z","pushType":"pr_merge","commitsCount":1,"pusher":{"login":"sherm1","name":"Michael Sherman","path":"/sherm1","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/4088016?s=80&v=4"},"commit":{"message":"Migrate sprintf() to snprintf() (#760)\n\nReplaces deprecated sprintf()-like calls with safer snprintf()-like calls.\r\nAlso removes trailing whitespace.\r\n\r\n---------\r\n\r\nCo-authored-by: Clay Anderson ","shortMessageHtmlLink":"Migrate sprintf() to snprintf() (#760)"}},{"before":"252dfb5957b853e181555c63a546854a57ad267e","after":"d6cb631a02de71e98532d72236b36e5515c75bdb","ref":"refs/heads/master","pushedAt":"2023-08-29T00:23:15.000Z","pushType":"pr_merge","commitsCount":1,"pusher":{"login":"sherm1","name":"Michael Sherman","path":"/sherm1","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/4088016?s=80&v=4"},"commit":{"message":"Removed trailing whitespace in String.h and Xml.h. Changed sprintf() to snprintf(). (#759)\n\nRemoved trailing whitespace in String.h and Xml.h, and replaced sprintf() with snprintf() in String.h.\r\nStill some Mac failures due to other uses of sprintf().\r\n---------\r\n\r\nCo-authored-by: Clay Anderson ","shortMessageHtmlLink":"Removed trailing whitespace in String.h and Xml.h. Changed sprintf() …"}},{"before":"3c3ad5a50a6fdbf91a72ea3801b52ab43336243f","after":"252dfb5957b853e181555c63a546854a57ad267e","ref":"refs/heads/master","pushedAt":"2023-07-18T18:37:02.000Z","pushType":"pr_merge","commitsCount":1,"pusher":{"login":"sherm1","name":"Michael Sherman","path":"/sherm1","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/4088016?s=80&v=4"},"commit":{"message":"Fix PlatformFiles_subdir creating a dependency on a not-copied lib file (#757)\n\nFix PlatformFiles_subdir creating a dependency on a not-copied lib file","shortMessageHtmlLink":"Fix PlatformFiles_subdir creating a dependency on a not-copied lib fi…"}},{"before":"462b2a6dbb8794db2922d72f52b29b488a178ebc","after":"3c3ad5a50a6fdbf91a72ea3801b52ab43336243f","ref":"refs/heads/master","pushedAt":"2023-03-24T23:49:24.000Z","pushType":"pr_merge","commitsCount":1,"pusher":{"login":"sherm1","name":"Michael Sherman","path":"/sherm1","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/4088016?s=80&v=4"},"commit":{"message":"Removed NDEBUG-dependent SimTK::StateImpl members (#738)\n\nThis avoids changes to the ABI of simbody when compiling with/without NDEBUG, which can break builds that use different flags.","shortMessageHtmlLink":"Removed NDEBUG-dependent SimTK::StateImpl members (#738)"}}],"hasNextPage":false,"hasPreviousPage":false,"activityType":"all","actor":null,"timePeriod":"all","sort":"DESC","perPage":30,"cursor":"djE6ks8AAAAEI4WKbAA","startCursor":null,"endCursor":null}},"title":"Activity · simbody/simbody"}