Fix type-related issues in dependent code. Remove hardcoded mjUSEDOUBLE. Add mjUSESINGLE compiler flag.

This CL does not change the default build behavior of MuJoCo. To use single-precision floating-point, build MuJoCo with `-DmjUSESINGLE`.

PiperOrigin-RevId: 644782648
Change-Id: Ie815df9916798ca8054306437b39a33f84ce9e08
This commit is contained in:
Yuval Tassa
2024-06-19 10:51:17 -07:00
committed by Copybara-Service
parent 7bd7065e0e
commit 3f3b39bbb1
14 changed files with 62 additions and 44 deletions
+2 -1
View File
@@ -12,6 +12,7 @@
// See the License for the specific language governing permissions and
// limitations under the License.
#include <cerrno>
#include <chrono>
#include <cstdint>
#include <cstdio>
@@ -334,7 +335,7 @@ void PhysicsLoop(mj::Simulate& sim) {
// misalignment condition: distance from target sim time is bigger than syncmisalign
bool misaligned =
mju_abs(Seconds(elapsedCPU).count()/slowdown - elapsedSim) > syncMisalign;
std::abs(Seconds(elapsedCPU).count()/slowdown - elapsedSim) > syncMisalign;
// out-of-sync (for any reason): reset sync times, step
if (elapsedSim < 0 || elapsedCPU.count() < 0 || syncCPU.time_since_epoch().count() == 0 ||
+3 -1
View File
@@ -1165,7 +1165,9 @@ void CopyPose(mj::Simulate* sim, const mjModel* m, const mjData* d) {
// millisecond timer, for MuJoCo built-in profiler
mjtNum Timer() {
return Milliseconds(mj::Simulate::Clock::now().time_since_epoch()).count();
static auto start = mj::Simulate::Clock::now();
auto elapsed = Milliseconds(mj::Simulate::Clock::now() - start);
return elapsed.count();
}
// clear all times