1#ifndef SimTK_SimTKCOMMON_SERIALIZE_H_
2#define SimTK_SimTKCOMMON_SERIALIZE_H_
75template <
class T>
inline void
81template <
class T>
inline void
87template <
class T>
inline void
93template <
class T>
inline void
101template <
int M,
class E,
int S>
inline void
103 for (
int i=0; i < M; ++i) {
104 if (i != 0) o <<
" ";
111template <
int N,
class E,
int S>
inline void
118template <
int M,
int N,
class E,
int CS,
int RS>
inline void
120 for (
int i=0; i < M; ++i) {
121 if (i != 0) o << std::endl;
129template <
int M,
class E,
int RS>
inline void
131 for (
int i=0; i < M; ++i) {
132 if (i != 0) o << std::endl;
161 if (!in.good()) {in.setstate(std::ios::failbit);
return false;}
164 if (!in.good()) {in.setstate(std::ios::failbit);
return false;}
165 in >> token;
if (in.fail())
return false;
166 if (token.empty()) {in.setstate(std::ios_base::failbit);
return false;}
175template <
class T>
inline bool
180 { in.setstate(std::ios::failbit);
return false; }
185template <
class T>
inline bool
193template <
class T>
inline bool
203template <
class T>
inline bool
211template <>
inline bool
219template <
int M,
class E,
int S>
inline bool
221 for (
int i=0; i < M; ++i)
229template <
int N,
class E,
int S>
inline bool
235template <
int M,
int N,
class E,
int CS,
int RS>
inline bool
237 for (
int i=0; i < M; ++i)
248template <
int M,
class E,
int RS>
inline bool
252 in.setstate(std::ios::failbit);
285template <
class T>
inline void
308template <
class T>
inline bool
This file contains macros which are convenient to use for sprinkling error checking around liberally ...
Mandatory first inclusion for any Simbody source or header file.
This class represents a small matrix whose size is known at compile time, containing elements of any ...
Definition: Mat.h:97
bool isNumericallySymmetric(double tol=getDefaultTolerance()) const
A Matrix is symmetric (actually Hermitian) if it is square and each element (i,j) is the Hermitian tr...
Definition: Mat.h:1174
This is a fixed-length row vector designed for no-overhead inline computation.
Definition: Row.h:132
SimTK::String is a plug-compatible std::string replacement (plus some additional functionality) inten...
Definition: String.h:62
bool tryConvertTo(T &out) const
Attempt to convert this String to an object of type T, returning a status value to indicate success o...
Definition: String.h:445
This is a small, fixed-size symmetric or Hermitian matrix designed for no-overhead inline computation...
Definition: SymMat.h:87
SymMat & setFromSymmetric(const Mat< M, M, EE, CSS, RSS > &m)
Create a new SymMat of this type from a square Mat of the right size, that is expected to be symmetri...
Definition: SymMat.h:317
This is a fixed-length column vector designed for no-overhead inline computation.
Definition: Vec.h:184
SimTK::conjugate<R> should be instantiated only for float, double.
Definition: conjugate.h:178
negator<N>, where N is a number type (real, complex, conjugate), is represented in memory identically...
Definition: negator.h:75
bool readUnformatted< String >(std::istream &in, String &v)
Specialization for SimTK::String (just read token).
Definition: Serialize.h:212
bool readUnformatted(std::istream &in, Row< N, E, S > &v)
Specialize for Row<N,E,S> to delegate to element type E, with spaces separating the elements; format ...
Definition: Serialize.h:230
bool readUnformatted(std::istream &in, SymMat< M, E, RS > &v)
Specialize for SymMat<M,E,RS>.
Definition: Serialize.h:249
bool readUnformatted(std::istream &in, T &v)
The default implementation of readUnformatted<T> reads in the next whitespace-separated token and the...
Definition: Serialize.h:176
bool readUnformatted(std::istream &in, Vec< M, E, S > &v)
Specialize for Vec<M,E,S> to delegate to element type E, with spaces separating the elements.
Definition: Serialize.h:220
bool readOneTokenUnformatted(std::istream &in, String &token)
Read in the next whitespace-delimited token as a String, ignoring leading whitespace.
Definition: Serialize.h:159
bool readUnformatted(std::istream &in, Mat< M, N, E, CS, RS > &v)
Specialize for Mat<M,N,E,CS,RS> delegating to Row<N,E,RS>.
Definition: Serialize.h:236
This is the top-level SimTK namespace into which all SimTK names are placed to avoid collision with o...
Definition: Assembler.h:37
const float & real(const conjugate< float > &c)
Definition: conjugate.h:482
const negator< float > & imag(const conjugate< float > &c)
Definition: conjugate.h:483