Data Structures | |
| class | BaseMatrix |
| Generic matrix API, allowing to fill and use a matrix independently of the linear algebra library in use. More... | |
| class | BaseVector |
| Generic vector API, allowing to fill and use a vector independently of the linear algebra library in use. More... | |
| class | DataTypeInfo |
| class | DataTypeInfo< double > |
| class | DataTypeInfo< float > |
| class | Frame |
| The affine transformation of points and vectors from a coordinate system (the local frame) to another (the reference frame). More... | |
| class | LaparoscopicRigid3Types |
| class | DataTypeInfo< LaparoscopicRigidTypes::Coord > |
| class | DataTypeInfo< LaparoscopicRigidTypes::Deriv > |
| class | Mat |
| class | MatNoInit |
| Same as Mat except the values are not initialized by default. More... | |
| class | RigidDeriv< 3, real > |
| Degrees of freedom of 3D rigid bodies. More... | |
| class | RigidCoord< 3, real > |
| class | RigidMass< 3, real > |
| class | StdRigidTypes< 3, real > |
| class | RigidDeriv< 2, real > |
| class | RigidCoord< 2, real > |
| class | RigidMass< 2, real > |
| class | StdRigidTypes< 2, real > |
| Degrees of freedom of 2D rigid bodies. More... | |
| class | SolidTypes |
| Base types for the ArticulatedSolid: position, orientation, velocity, angular velocity, etc. More... | |
| class | Vec |
| class | VecNoInit |
| Same as Vec except the values are not initialized by default. More... | |
| class | StdVectorTypes |
| class | ExtVectorAllocator |
| Custom vector allocator class allowing data to be allocated at a specific location (such as for transmission through DMA, PCI-Express, Shared Memory, Network). More... | |
| class | ExtVector |
| Custom vector class. More... | |
| class | DefaultAllocator |
| class | ResizableExtVector |
| Resizable custom vector class using DefaultAllocator. More... | |
| class | ExtVectorTypes |
Typedefs | |
| typedef LaparoscopicRigid3Types | LaparoscopicRigidTypes |
| Alias. | |
| typedef Mat< 2, 2, float > | Mat2x2f |
| typedef Mat< 2, 2, double > | Mat2x2d |
| typedef Mat< 3, 3, float > | Mat3x3f |
| typedef Mat< 3, 3, double > | Mat3x3d |
| typedef Mat< 3, 4, float > | Mat3x4f |
| typedef Mat< 3, 4, double > | Mat3x4d |
| typedef Mat< 4, 4, float > | Mat4x4f |
| typedef Mat< 4, 4, double > | Mat4x4d |
| typedef Mat2x2d | Matrix2 |
| typedef Mat3x3d | Matrix3 |
| typedef Mat4x4d | Matrix4 |
| typedef helper::Quater< double > | Quatd |
| alias | |
| typedef helper::Quater< float > | Quatf |
| alias | |
| typedef Quatd | Quat |
| alias | |
| typedef Quat | Quaternion |
| alias | |
| typedef StdRigidTypes< 3, double > | Rigid3dTypes |
| typedef StdRigidTypes< 3, float > | Rigid3fTypes |
| typedef RigidMass< 3, double > | Rigid3dMass |
| typedef RigidMass< 3, float > | Rigid3fMass |
| typedef Rigid3dTypes | Rigid3Types |
| typedef Rigid3dMass | Rigid3Mass |
| typedef Rigid3Types | RigidTypes |
| typedef StdRigidTypes< 2, double > | Rigid2dTypes |
| typedef StdRigidTypes< 2, float > | Rigid2fTypes |
| typedef RigidMass< 2, double > | Rigid2dMass |
| typedef RigidMass< 2, float > | Rigid2fMass |
| typedef Rigid2dTypes | Rigid2Types |
| typedef Rigid2dMass | Rigid2Mass |
| typedef Vec< 1, float > | Vec1f |
| typedef Vec< 1, double > | Vec1d |
| typedef Vec< 2, float > | Vec2f |
| typedef Vec< 2, double > | Vec2d |
| typedef Vec< 3, float > | Vec3f |
| typedef Vec< 3, double > | Vec3d |
| typedef Vec< 4, float > | Vec4f |
| typedef Vec< 4, double > | Vec4d |
| typedef Vec< 6, float > | Vec6f |
| typedef Vec< 6, double > | Vec6d |
| typedef Vec1d | Vector1 |
| alias | |
| typedef Vec2d | Vector2 |
| alias | |
| typedef Vec3d | Vector3 |
| alias | |
| typedef Vec4d | Vector4 |
| alias | |
| typedef Vec6d | Vector6 |
| alias | |
| typedef StdVectorTypes< Vec3d, Vec3d, double > | Vec3dTypes |
| 3D DOFs, double precision | |
| typedef StdVectorTypes< Vec3f, Vec3f, float > | Vec3fTypes |
| 3D DOFs, single precision | |
| typedef ExtVectorTypes< Vec3d, Vec3d, double > | ExtVec3dTypes |
| 3D external DOFs, double precision | |
| typedef ExtVectorTypes< Vec3f, Vec3f, float > | ExtVec3fTypes |
| 3D external DOFs, single precision | |
| typedef StdVectorTypes< Vec2d, Vec2d, double > | Vec2dTypes |
| 2D DOFs, double precision | |
| typedef StdVectorTypes< Vec2f, Vec2f, float > | Vec2fTypes |
| 2D DOFs, single precision | |
| typedef ExtVectorTypes< Vec2d, Vec2d, double > | ExtVec2dTypes |
| 2D external DOFs, double precision | |
| typedef ExtVectorTypes< Vec2f, Vec2f, float > | ExtVec2fTypes |
| 2D external DOFs, single precision | |
| typedef StdVectorTypes< Vec1d, Vec1d, double > | Vec1dTypes |
| 1D DOFs, double precision | |
| typedef StdVectorTypes< Vec1f, Vec1f, float > | Vec1fTypes |
| 1D DOFs, single precision | |
| typedef ExtVectorTypes< Vec1d, Vec1d, double > | ExtVec1dTypes |
| 1D external DOFs, double precision | |
| typedef ExtVectorTypes< Vec1f, Vec1f, float > | ExtVec1fTypes |
| 1D external DOFs, single precision | |
| typedef StdVectorTypes< Vec6d, Vec6d, double > | Vec6dTypes |
| 6D DOFs, double precision | |
| typedef StdVectorTypes< Vec6f, Vec6f, float > | Vec6fTypes |
| 6D DOFs, single precision | |
| typedef ExtVectorTypes< Vec6d, Vec6d, double > | ExtVec6dTypes |
| 6D external DOFs, double precision | |
| typedef ExtVectorTypes< Vec6f, Vec6f, float > | ExtVec6fTypes |
| 6D external DOFs, single precision | |
| typedef Vec6dTypes | Vec6Types |
| 6D DOFs, double precision (default) | |
| typedef Vec3dTypes | Vec3Types |
| 3D DOFs, double precision (default) | |
| typedef Vec2dTypes | Vec2Types |
| 2D DOFs, double precision (default) | |
| typedef Vec1dTypes | Vec1Types |
| 1D DOFs, double precision (default) | |
| typedef ExtVec6dTypes | ExtVec6Types |
| 6D external DOFs, double precision (default) | |
| typedef ExtVec3dTypes | ExtVec3Types |
| 3D external DOFs, double precision (default) | |
| typedef ExtVec2dTypes | ExtVec2Types |
| 2D external DOFs, double precision (default) | |
| typedef ExtVec1dTypes | ExtVec1Types |
| 1D external DOFs, double precision (default) | |
Enumerations | |
| enum | NoInit { NOINIT } |
Functions | |
| std::ostream & | operator<< (std::ostream &out, const sofa::defaulttype::Frame &c) |
| LaparoscopicRigid3Types::Deriv | operator* (const LaparoscopicRigid3Types::Deriv &d, const Rigid3Mass &m) |
| LaparoscopicRigid3Types::Deriv | operator/ (const LaparoscopicRigid3Types::Deriv &d, const Rigid3Mass &m) |
| template<class real > | |
| real | determinant (const Mat< 3, 3, real > &m) |
| Determinant of a 3x3 matrix. | |
| template<class real > | |
| real | determinant (const Mat< 2, 2, real > &m) |
| Determinant of a 2x2 matrix. | |
| template<int S, class real > | |
| bool | invertMatrix (Mat< S, S, real > &dest, const Mat< S, S, real > &from) |
| Matrix inversion (general case). | |
| template<class real > | |
| bool | invertMatrix (Mat< 3, 3, real > &dest, const Mat< 3, 3, real > &from) |
| Matrix inversion (special case 3x3). | |
| template<class real > | |
| bool | invertMatrix (Mat< 2, 2, real > &dest, const Mat< 2, 2, real > &from) |
| Matrix inversion (special case 2x2). | |
| template<int L, int C, typename real > | |
| std::ostream & | operator<< (std::ostream &o, const Mat< L, C, real > &m) |
| template<int L, int C, typename real > | |
| std::istream & | operator>> (std::istream &in, sofa::defaulttype::Mat< L, C, real > &m) |
| template<class T1 , class T2 > | |
| const T1 | S_MAX (const T1 &a, const T2 &b) |
| return the max of two values | |
| template<class T1 , class T2 > | |
| const T1 | S_MIN (const T1 &a, const T2 &b) |
| return the min of two values | |
| template<class T1 , class T2 > | |
| const T1 | S_SIGN (const T1 &a, const T2 &b) |
| template<class T > | |
| const T | S_SQR (const T a) |
| template<class T1 , class T2 > | |
| T1 | pythag (const T1 a, const T2 b) |
| Computes sqrt(aČ + bČ) without destructive underflow or overflow. | |
| template<int m, int n, typename Real > | |
| void | svddcmp (Mat< m, n, Real > &a, Vec< n, Real > &w, Mat< n, m, Real > &v) |
| Compute the SVD decomposition of matrix a (from nr). a is replaced by its pivoted LU decomposition. indx stores pivoting indices. | |
| template<int m, int n, typename Real > | |
| Real | cond (Mat< m, n, Real > &a) |
| return the condition number of the matrix a following the euclidian norm (using the svd decomposition to find singular values) | |
| template<int n, typename Real > | |
| void | ludcmp (Mat< n, n, Real > &a, Vec< n, int > &indx) |
| Compute the LU decomposition of matrix a. a is replaced by its pivoted LU decomposition. indx stores pivoting indices. | |
| template<int n, typename Real > | |
| void | lubksb (const Mat< n, n, Real > &a, const Vec< n, int > &indx, Vec< n, Real > &b) |
| Compute the solution of Mx=b. b is replaced by x. a and indx together represent the LU decomposition of m, as given my method ludcmp. | |
| template<int n, typename Real > | |
| void | luinv (Mat< n, n, Real > &inv, Mat< n, n, Real > &m) |
| Compute the inverse of matrix m. | |
| template<int L, int C, typename T > | |
| Mat< L, C, T > | dyad (const Vec< L, T > &u, const Vec< C, T > &v) |
Create a matrix as . | |
| template<int N, typename real > | |
| RigidDeriv< N, real > | operator* (const RigidDeriv< N, real > &d, const RigidMass< N, real > &m) |
| template<int N, typename real > | |
| RigidDeriv< N, real > | operator/ (const RigidDeriv< N, real > &d, const RigidMass< N, real > &m) |
| template<int N, typename Real > | |
| std::istream & | operator>> (std::istream &in, Vec< N, Real > &v) |
| Read from an input stream. | |
| template<int N, typename Real > | |
| std::ostream & | operator<< (std::ostream &out, const Vec< N, Real > &v) |
| Write to an output stream. | |
| template<typename real > | |
| Vec< 3, real > | cross (const Vec< 3, real > &a, const Vec< 3, real > &b) |
| Cross product for 3-elements vectors. | |
| template<typename real > | |
| real | cross (const defaulttype::Vec< 2, real > &a, const defaulttype::Vec< 2, real > &b) |
| Cross product for 2-elements vectors. | |
| template<int N, typename real > | |
| real | dot (const Vec< N, real > &a, const Vec< N, real > &b) |
| Dot product (alias for operator*). | |
Users can define other types, but it is best to try to use these when applicable, as many components are already instanciated with them. It is however not a requirement (nothing prevents a user to define his own Vec3 class for instance).
| typedef ExtVectorTypes<Vec1d,Vec1d,double> sofa::defaulttype::ExtVec1dTypes |
| typedef ExtVectorTypes<Vec1f,Vec1f,float> sofa::defaulttype::ExtVec1fTypes |
| typedef ExtVectorTypes<Vec2d,Vec2d,double> sofa::defaulttype::ExtVec2dTypes |
| typedef ExtVectorTypes<Vec2f,Vec2f,float> sofa::defaulttype::ExtVec2fTypes |
| typedef ExtVectorTypes<Vec3d,Vec3d,double> sofa::defaulttype::ExtVec3dTypes |
| typedef ExtVectorTypes<Vec3f,Vec3f,float> sofa::defaulttype::ExtVec3fTypes |
| typedef ExtVectorTypes<Vec6d,Vec6d,double> sofa::defaulttype::ExtVec6dTypes |
| typedef ExtVectorTypes<Vec6f,Vec6f,float> sofa::defaulttype::ExtVec6fTypes |
| typedef Mat<2,2,double> sofa::defaulttype::Mat2x2d |
| typedef Mat<2,2,float> sofa::defaulttype::Mat2x2f |
| typedef Mat<3,3,double> sofa::defaulttype::Mat3x3d |
| typedef Mat<3,3,float> sofa::defaulttype::Mat3x3f |
| typedef Mat<3,4,double> sofa::defaulttype::Mat3x4d |
| typedef Mat<3,4,float> sofa::defaulttype::Mat3x4f |
| typedef Mat<4,4,double> sofa::defaulttype::Mat4x4d |
| typedef Mat<4,4,float> sofa::defaulttype::Mat4x4f |
| typedef Mat2x2d sofa::defaulttype::Matrix2 |
| typedef Mat3x3d sofa::defaulttype::Matrix3 |
| typedef Mat4x4d sofa::defaulttype::Matrix4 |
| typedef Quatd sofa::defaulttype::Quat |
| typedef helper::Quater<double> sofa::defaulttype::Quatd |
| typedef Quat sofa::defaulttype::Quaternion |
| typedef helper::Quater<float> sofa::defaulttype::Quatf |
| typedef RigidMass<2,double> sofa::defaulttype::Rigid2dMass |
Definition at line 1185 of file RigidTypes.h.
| typedef StdRigidTypes<2,double> sofa::defaulttype::Rigid2dTypes |
Definition at line 1182 of file RigidTypes.h.
| typedef RigidMass<2,float> sofa::defaulttype::Rigid2fMass |
Definition at line 1186 of file RigidTypes.h.
| typedef StdRigidTypes<2,float> sofa::defaulttype::Rigid2fTypes |
Definition at line 1183 of file RigidTypes.h.
Definition at line 1196 of file RigidTypes.h.
Definition at line 1195 of file RigidTypes.h.
| typedef RigidMass<3,double> sofa::defaulttype::Rigid3dMass |
Definition at line 648 of file RigidTypes.h.
| typedef StdRigidTypes<3,double> sofa::defaulttype::Rigid3dTypes |
Definition at line 645 of file RigidTypes.h.
| typedef RigidMass<3,float> sofa::defaulttype::Rigid3fMass |
Definition at line 649 of file RigidTypes.h.
| typedef StdRigidTypes<3,float> sofa::defaulttype::Rigid3fTypes |
Definition at line 646 of file RigidTypes.h.
Definition at line 666 of file RigidTypes.h.
Definition at line 665 of file RigidTypes.h.
Definition at line 668 of file RigidTypes.h.
| typedef Vec<1,double> sofa::defaulttype::Vec1d |
| typedef StdVectorTypes<Vec1d,Vec1d,double> sofa::defaulttype::Vec1dTypes |
| typedef Vec<1,float> sofa::defaulttype::Vec1f |
| typedef StdVectorTypes<Vec1f,Vec1f,float> sofa::defaulttype::Vec1fTypes |
| typedef Vec<2,double> sofa::defaulttype::Vec2d |
| typedef StdVectorTypes<Vec2d,Vec2d,double> sofa::defaulttype::Vec2dTypes |
| typedef Vec<2,float> sofa::defaulttype::Vec2f |
| typedef StdVectorTypes<Vec2f,Vec2f,float> sofa::defaulttype::Vec2fTypes |
| typedef Vec<3,double> sofa::defaulttype::Vec3d |
| typedef StdVectorTypes<Vec3d,Vec3d,double> sofa::defaulttype::Vec3dTypes |
| typedef Vec<3,float> sofa::defaulttype::Vec3f |
| typedef StdVectorTypes<Vec3f,Vec3f,float> sofa::defaulttype::Vec3fTypes |
| typedef Vec<4,double> sofa::defaulttype::Vec4d |
| typedef Vec<4,float> sofa::defaulttype::Vec4f |
| typedef Vec<6,double> sofa::defaulttype::Vec6d |
| typedef StdVectorTypes<Vec6d,Vec6d,double> sofa::defaulttype::Vec6dTypes |
| typedef Vec<6,float> sofa::defaulttype::Vec6f |
| typedef StdVectorTypes<Vec6f,Vec6f,float> sofa::defaulttype::Vec6fTypes |
| typedef Vec1d sofa::defaulttype::Vector1 |
| typedef Vec2d sofa::defaulttype::Vector2 |
| typedef Vec3d sofa::defaulttype::Vector3 |
| typedef Vec4d sofa::defaulttype::Vector4 |
| typedef Vec6d sofa::defaulttype::Vector6 |
| Real sofa::defaulttype::cond | ( | Mat< m, n, Real > & | a | ) | [inline] |
| real sofa::defaulttype::cross | ( | const defaulttype::Vec< 2, real > & | a, | |
| const defaulttype::Vec< 2, real > & | b | |||
| ) | [inline] |
| Vec<3,real> sofa::defaulttype::cross | ( | const Vec< 3, real > & | a, | |
| const Vec< 3, real > & | b | |||
| ) | [inline] |
Cross product for 3-elements vectors.
Definition at line 529 of file Vec.h.
References sofa::defaulttype::Vec< N, real >::x(), sofa::defaulttype::Vec< N, real >::y(), and sofa::defaulttype::Vec< N, real >::z().
Referenced by sofa::defaulttype::SolidTypes< R >::SpatialVector::cross(), sofa::defaulttype::SolidTypes< R >::RigidInertia::operator*(), and sofa::defaulttype::SolidTypes< R >::Transform::operator*().
| real sofa::defaulttype::determinant | ( | const Mat< 2, 2, real > & | m | ) | [inline] |
Determinant of a 2x2 matrix.
Definition at line 528 of file Mat.h.
Referenced by sofa::component::forcefield::HexahedronFEMForceField< DataTypes >::computeElementStiffness(), sofa::component::collision::MinProximityIntersection::computeIntersection(), sofa::component::collision::LocalMinDistance::computeIntersection(), sofa::component::forcefield::TriangularFEMForceField< DataTypes >::computeStrainDisplacement(), sofa::component::forcefield::TriangleFEMForceField< DataTypes >::computeStrainDisplacement(), sofa::component::collision::NewProximityIntersection::doIntersectionLineLine(), sofa::component::collision::NewProximityIntersection::doIntersectionTrianglePoint(), sofa::component::collision::MinProximityIntersection::testIntersection(), and sofa::component::collision::LocalMinDistance::testIntersection().
| real sofa::defaulttype::determinant | ( | const Mat< 3, 3, real > & | m | ) | [inline] |
| real sofa::defaulttype::dot | ( | const Vec< N, real > & | a, | |
| const Vec< N, real > & | b | |||
| ) | [inline] |
| bool sofa::defaulttype::invertMatrix | ( | Mat< 2, 2, real > & | dest, | |
| const Mat< 2, 2, real > & | from | |||
| ) | [inline] |
Matrix inversion (special case 2x2).
Definition at line 626 of file Mat.h.
References determinant(), and real.
Referenced by sofa::component::forcefield::JointSpringForceField< DataTypes >::addSpringDForce(), sofa::component::forcefield::FrameSpringForceField< DataTypes >::addSpringDForce(), sofa::component::forcefield::JointSpringForceField< DataTypes >::addSpringForce(), and sofa::component::forcefield::FrameSpringForceField< DataTypes >::addSpringForce().
| bool sofa::defaulttype::invertMatrix | ( | Mat< 3, 3, real > & | dest, | |
| const Mat< 3, 3, real > & | from | |||
| ) | [inline] |
Matrix inversion (special case 3x3).
Definition at line 604 of file Mat.h.
References determinant(), and real.
| bool sofa::defaulttype::invertMatrix | ( | Mat< S, S, real > & | dest, | |
| const Mat< S, S, real > & | from | |||
| ) | [inline] |
Matrix inversion (general case).
Definition at line 536 of file Mat.h.
References sofa::defaulttype::Mat< L, C, real >::identity(), and real.
Referenced by sofa::defaulttype::Mat< 6, 6, Coord::value_type >::invert().
| void sofa::defaulttype::lubksb | ( | const Mat< n, n, Real > & | a, | |
| const Vec< n, int > & | indx, | |||
| Vec< n, Real > & | b | |||
| ) | [inline] |
| void sofa::defaulttype::ludcmp | ( | Mat< n, n, Real > & | a, | |
| Vec< n, int > & | indx | |||
| ) | [inline] |
| void sofa::defaulttype::luinv | ( | Mat< n, n, Real > & | inv, | |
| Mat< n, n, Real > & | m | |||
| ) | [inline] |
| RigidDeriv<N,real> sofa::defaulttype::operator* | ( | const RigidDeriv< N, real > & | d, | |
| const RigidMass< N, real > & | m | |||
| ) | [inline] |
Definition at line 492 of file RigidTypes.h.
| LaparoscopicRigid3Types::Deriv sofa::defaulttype::operator* | ( | const LaparoscopicRigid3Types::Deriv & | d, | |
| const Rigid3Mass & | m | |||
| ) | [inline] |
Definition at line 323 of file LaparoscopicRigidTypes.h.
References sofa::defaulttype::LaparoscopicRigid3Types::Deriv::getVOrientation(), and sofa::defaulttype::LaparoscopicRigid3Types::Deriv::getVTranslation().
| RigidDeriv<N, real> sofa::defaulttype::operator/ | ( | const RigidDeriv< N, real > & | d, | |
| const RigidMass< N, real > & | m | |||
| ) | [inline] |
Definition at line 501 of file RigidTypes.h.
| LaparoscopicRigid3Types::Deriv sofa::defaulttype::operator/ | ( | const LaparoscopicRigid3Types::Deriv & | d, | |
| const Rigid3Mass & | m | |||
| ) | [inline] |
Definition at line 331 of file LaparoscopicRigidTypes.h.
References sofa::defaulttype::LaparoscopicRigid3Types::Deriv::getVOrientation(), and sofa::defaulttype::LaparoscopicRigid3Types::Deriv::getVTranslation().
| std::ostream& sofa::defaulttype::operator<< | ( | std::ostream & | out, | |
| const Vec< N, Real > & | v | |||
| ) | [inline] |
| std::ostream& sofa::defaulttype::operator<< | ( | std::ostream & | o, | |
| const Mat< L, C, real > & | m | |||
| ) | [inline] |
| std::ostream& sofa::defaulttype::operator<< | ( | std::ostream & | out, | |
| const sofa::defaulttype::Frame & | c | |||
| ) |
Definition at line 184 of file Frame.cpp.
References sofa::defaulttype::Frame::getBasis(), and sofa::defaulttype::Frame::getOrigin().
| std::istream& sofa::defaulttype::operator>> | ( | std::istream & | in, | |
| Vec< N, Real > & | v | |||
| ) | [inline] |
| std::istream& sofa::defaulttype::operator>> | ( | std::istream & | in, | |
| sofa::defaulttype::Mat< L, C, real > & | m | |||
| ) | [inline] |
| T1 sofa::defaulttype::pythag | ( | const T1 | a, | |
| const T2 | b | |||
| ) | [inline] |
| const T1 sofa::defaulttype::S_MAX | ( | const T1 & | a, | |
| const T2 & | b | |||
| ) | [inline] |
| const T1 sofa::defaulttype::S_MIN | ( | const T1 & | a, | |
| const T2 & | b | |||
| ) | [inline] |
| const T1 sofa::defaulttype::S_SIGN | ( | const T1 & | a, | |
| const T2 & | b | |||
| ) | [inline] |
| void sofa::defaulttype::svddcmp | ( | Mat< m, n, Real > & | a, | |
| Vec< n, Real > & | w, | |||
| Mat< n, m, Real > & | v | |||
| ) | [inline] |
Compute the SVD decomposition of matrix a (from nr). a is replaced by its pivoted LU decomposition. indx stores pivoting indices.
SVD decomposition a = u.w.vt
w: diagonal vector
v: matrix
Definition at line 748 of file Mat.h.
References pythag(), S_MAX(), S_MIN(), and S_SIGN().
Referenced by cond().
1.5.7.1