▼Global Functions in the SimTK namespace | These are functions at the top level of the SimTK namespace, meaning that a function named funcName() is invoked as SimTK::funcName(), or just funcName() if there is a "using namespace SimTK;" statement in effect |
▼Bit-twiddling Functions | These functions perform highly optimized bit-twiddling operations on the built-in integral types, and sometimes on the representations of floating point types as well |
atMostOneBitIsSet() | |
exactlyOneBitIsSet() | exactlyOneBitIsSet(i) provides a very fast way to determine whether an integral type has exactly one bit set |
signBit() | signBit(i) provides a fast way to determine the value of the sign bit (as a bool) for integral and floating types |
▼Scalar Functions | These functions are overloaded to act on SimTK scalar types and C++ built-in types, including integral types when appropriate |
Elliptic integrals | Elliptic integrals arise occasionally in contexts relevant to us, particularly in geometric calculations involving ellipses or ellipsoids |
Smoothed step functions | Functions stepUp(), stepDown() and stepAny() provide smooth, S-shaped step functions that are useful for "softening" abrupt transitions between two values |
clamp(), clampInPlace() | Limit a numerical value so that it does not go outside a given range |
cube() | y=cube(x) returns the cube of the argument for any numeric type, integral or floating point |
isFinite() | isFinite(x) provides a reliable way to determine if x is a "normal" floating point number, meaning not a NaN or +/- Infinity |
isInf() | isInf(x) provides a reliable way to determine if x is one of the two infinities (either negative or positive) |
isNaN() | isNaN(x) provides a reliable way to determine if x is one of the "not a
number" floating point forms |
isNumericallyEqual() | isNumericallyEqual(x,y) compares two scalar types using a tolerance (default or explicitly specified) and returns true if they are close enough |
sign() | s=sign(n) returns int -1,0,1 according to n<0, n==0, n>0 for any integer or real numeric type, unsigned 0 or 1 for any unsigned argument |
square() | y=square(x) returns the square of the argument for any numeric type |
Spatial Algebra Utilities | These utility functions are used for manipulation of spatial quantities that are contained in SpatialVec or SpatialMat objects |
▼Timing Functions | These functions provide a convenient way to do high-precision timing, either for real time use or performance measurement, and to sleep for precise time intervals |
High-Resolution Elapsed Time Measurement and Sleep | |
Measuring CPU Time | |
Timespec/Nanosecond/Second Conversions | These inline functions provide a fast and convenient way for doing arithmetic with the ugly Posix timespec struct |
▼Utilities for De/serializing | These namespace-scope templatized utilities provide uniform serialization and deserialization behavior for built-in and SimTK-defined types |
readFormatted() | |
readUnformatted() | |
writeFormatted() | |
writeUnformatted() | Namespace-scope utility method SimTK::writeUnformatted<T>() writes a value of type T to an output stream as a space-separated series of tokens with no brackets, commas, semicolons or other formatting characters |
▼Matrix and Vector Utilities | |
▼Predefined typedefs | These typedefs provide convenient synonyms for common matrix and vector types |
Less commonly-used typedefs | |
▼Predefined Constants | |
Numerical Constants with Types | This is a set of predefined constants in the form of Real (SimTK default precision) symbols that are important for writing precision-independent numerical algorithms |
▼Preprocessor Macro Constants | These are preprocessor (#define) macros providing constants values at very high precision. See the discussion under the main Predefined Constants module heading |
Mathematical Constants | These are some common unitless numerical constants evaluated to 64 digits and written here in maximal (long double) precision |
Physical Constants | |
Unit Conversion Factors | |
SimTK Regression Testing | |
Type-Safe Integer Indices | |