Jet  v1.3.3
Classes | Typedefs | Enumerations | Functions | Variables
jet Namespace Reference

Classes

class  AdvectionSolver2
 Abstract based class for 2-D grid-based advection solver. More...
 
class  AdvectionSolver3
 Abstract based class for 3-D grid-based advection solver. More...
 
class  Animation
 Abstract base class for animation-related class. More...
 
class  AnisotropicPointsToImplicit2
 2-D points-to-implicit converter using Anisotropic kernels. More...
 
class  AnisotropicPointsToImplicit3
 3-D points-to-implicit converter using Anisotropic kernels. More...
 
class  ApicSolver2
 2-D Affine Particle-in-Cell (APIC) implementation More...
 
class  ApicSolver3
 3-D Affine Particle-in-Cell (APIC) implementation More...
 
class  Array
 Generic N-dimensional array class interface. More...
 
class  Array< T, 1 >
 1-D array class. More...
 
class  Array< T, 2 >
 2-D array class. More...
 
class  Array< T, 3 >
 3-D array class. More...
 
class  ArrayAccessor
 Generic N-dimensional array accessor class interface. More...
 
class  ArrayAccessor< T, 1 >
 1-D array accessor class. More...
 
class  ArrayAccessor< T, 2 >
 2-D array accessor class. More...
 
class  ArrayAccessor< T, 3 >
 3-D array accessor class. More...
 
class  BccLatticePointGenerator
 Body-centered lattice points generator. More...
 
struct  Blas
 Generic BLAS operator wrapper class. More...
 
class  BoundingBox
 Generic N-D axis-aligned bounding box class. More...
 
class  BoundingBox< T, 2 >
 2-D axis-aligned bounding box class. More...
 
class  BoundingBox< T, 3 >
 3-D axis-aligned bounding box class. More...
 
struct  BoundingBoxRayIntersection2
 2-D box-ray intersection result. More...
 
struct  BoundingBoxRayIntersection3
 3-D box-ray intersection result. More...
 
class  Box2
 2-D box geometry. More...
 
class  Box3
 3-D box geometry. More...
 
class  Bvh2
 Bounding Volume Hierarchy (BVH) in 2D. More...
 
class  Bvh3
 Bounding Volume Hierarchy (BVH) in 3D. More...
 
class  CellCenteredScalarGrid2
 2-D Cell-centered scalar grid structure. More...
 
class  CellCenteredScalarGrid3
 3-D Cell-centered scalar grid structure. More...
 
class  CellCenteredVectorGrid2
 2-D Cell-centered vector grid structure. More...
 
class  CellCenteredVectorGrid3
 3-D Cell-centered vector grid structure. More...
 
struct  ClosestIntersectionQueryResult2
 Closest intersection query result. More...
 
struct  ClosestIntersectionQueryResult3
 Closest intersection query result. More...
 
class  Collider2
 Abstract base class for generic collider object. More...
 
class  Collider3
 Abstract base class for generic collider object. More...
 
class  ColliderSet2
 Collection of 2-D colliders. More...
 
class  ColliderSet3
 Collection of 3-D colliders. More...
 
class  CollocatedVectorGrid2
 Abstract base class for 2-D collocated vector grid structure. More...
 
class  CollocatedVectorGrid3
 Abstract base class for 3-D collocated vector grid structure. More...
 
class  ConstantScalarField2
 2-D constant scalar field. More...
 
class  ConstantScalarField3
 3-D constant scalar field. More...
 
class  ConstantVectorField2
 2-D constant vector field. More...
 
class  ConstantVectorField3
 3-D constant vector field. More...
 
class  ConstArrayAccessor
 Generic N-dimensional read-only array accessor class interface. More...
 
class  ConstArrayAccessor< T, 1 >
 1-D read-only array accessor class. More...
 
class  ConstArrayAccessor< T, 2 >
 2-D read-only array accessor class. More...
 
class  ConstArrayAccessor< T, 3 >
 3-D read-only array accessor class. More...
 
class  CubicArraySampler
 Generic N-D cubic array sampler class. More...
 
class  CubicArraySampler< T, R, 1 >
 1-D cubic array sampler class. More...
 
class  CubicArraySampler< T, R, 2 >
 2-D cubic array sampler class. More...
 
class  CubicArraySampler< T, R, 3 >
 3-D cubic array sampler class. More...
 
class  CubicSemiLagrangian2
 Implementation of 2-D cubic semi-Lagrangian advection solver. More...
 
class  CubicSemiLagrangian3
 Implementation of 3-D cubic semi-Lagrangian advection solver. More...
 
class  CustomImplicitSurface2
 Custom 2-D implicit surface using arbitrary function. More...
 
class  CustomImplicitSurface3
 Custom 3-D implicit surface using arbitrary function. More...
 
class  CustomScalarField2
 2-D scalar field with custom field function. More...
 
class  CustomScalarField3
 3-D scalar field with custom field function. More...
 
class  CustomVectorField2
 2-D vector field with custom field function. More...
 
class  CustomVectorField3
 3-D vector field with custom field function. More...
 
class  Cylinder3
 3-D cylinder geometry. More...
 
class  EnoLevelSetSolver2
 Two-dimensional third-order ENO-based iterative level set solver. More...
 
class  EnoLevelSetSolver3
 Three-dimensional third-order ENO-based iterative level set solver. More...
 
class  FaceCenteredGrid2
 2-D face-centered (a.k.a MAC or staggered) grid. More...
 
class  FaceCenteredGrid3
 3-D face-centered (a.k.a MAC or staggered) grid. More...
 
class  FccLatticePointGenerator
 Face-centered lattice points generator. More...
 
struct  FdmBlas2
 BLAS operator wrapper for 2-D finite differencing. More...
 
struct  FdmBlas3
 BLAS operator wrapper for 3-D finite differencing. More...
 
class  FdmCgSolver2
 2-D finite difference-type linear system solver using conjugate gradient. More...
 
class  FdmCgSolver3
 3-D finite difference-type linear system solver using conjugate gradient. More...
 
struct  FdmCompressedBlas2
 BLAS operator wrapper for compressed 2-D finite differencing. More...
 
struct  FdmCompressedBlas3
 BLAS operator wrapper for compressed 3-D finite differencing. More...
 
struct  FdmCompressedLinearSystem2
 Compressed linear system (Ax=b) for 2-D finite differencing. More...
 
struct  FdmCompressedLinearSystem3
 Compressed linear system (Ax=b) for 3-D finite differencing. More...
 
class  FdmGaussSeidelSolver2
 2-D finite difference-type linear system solver using Gauss-Seidel method. More...
 
class  FdmGaussSeidelSolver3
 3-D finite difference-type linear system solver using Gauss-Seidel method. More...
 
class  FdmIccgSolver2
 2-D finite difference-type linear system solver using incomplete Cholesky conjugate gradient (ICCG). More...
 
class  FdmIccgSolver3
 3-D finite difference-type linear system solver using incomplete Cholesky conjugate gradient (ICCG). More...
 
class  FdmJacobiSolver2
 2-D finite difference-type linear system solver using Jacobi method. More...
 
class  FdmJacobiSolver3
 3-D finite difference-type linear system solver using Jacobi method. More...
 
struct  FdmLinearSystem2
 Linear system (Ax=b) for 2-D finite differencing. More...
 
struct  FdmLinearSystem3
 Linear system (Ax=b) for 3-D finite differencing. More...
 
class  FdmLinearSystemSolver2
 Abstract base class for 2-D finite difference-type linear system solver. More...
 
class  FdmLinearSystemSolver3
 Abstract base class for 3-D finite difference-type linear system solver. More...
 
struct  FdmMatrixRow2
 The row of FdmMatrix2 where row corresponds to (i, j) grid point. More...
 
struct  FdmMatrixRow3
 The row of FdmMatrix3 where row corresponds to (i, j, k) grid point. More...
 
struct  FdmMgLinearSystem2
 Multigrid-syle 2-D linear system. More...
 
struct  FdmMgLinearSystem3
 Multigrid-syle 3-D linear system. More...
 
class  FdmMgpcgSolver2
 2-D finite difference-type linear system solver using Multigrid Preconditioned conjugate gradient (MGPCG). More...
 
class  FdmMgpcgSolver3
 3-D finite difference-type linear system solver using Multigrid Preconditioned conjugate gradient (MGPCG). More...
 
class  FdmMgSolver2
 2-D finite difference-type linear system solver using Multigrid. More...
 
class  FdmMgSolver3
 3-D finite difference-type linear system solver using Multigrid. More...
 
class  FdmMgUtils2
 Multigrid utilities for 2-D FDM system. More...
 
class  FdmMgUtils3
 Multigrid utilities for 2-D FDM system. More...
 
class  Field2
 Abstract base class for 2-D fields. More...
 
class  Field3
 Abstract base class for 3-D fields. More...
 
class  FlipSolver2
 2-D Fluid-Implicit Particle (FLIP) implementation. More...
 
class  FlipSolver3
 3-D Fluid-Implicit Particle (FLIP) implementation. More...
 
class  FmmLevelSetSolver2
 Two-dimensional fast marching method (FMM) implementation. More...
 
class  FmmLevelSetSolver3
 Three-dimensional fast marching method (FMM) implementation. More...
 
struct  Frame
 Representation of an animation frame. More...
 
class  Grid2
 Abstract base class for 2-D cartesian grid structure. More...
 
class  Grid3
 Abstract base class for 3-D cartesian grid structure. More...
 
class  GridBackwardEulerDiffusionSolver2
 2-D grid-based backward Euler diffusion solver. More...
 
class  GridBackwardEulerDiffusionSolver3
 3-D grid-based backward Euler diffusion solver. More...
 
class  GridBlockedBoundaryConditionSolver2
 Blocked 2-D boundary condition solver for grids. More...
 
class  GridBlockedBoundaryConditionSolver3
 Blocked 3-D boundary condition solver for grids. More...
 
class  GridBoundaryConditionSolver2
 Abstract base class for 2-D boundary condition solver for grids. More...
 
class  GridBoundaryConditionSolver3
 Abstract base class for 3-D boundary condition solver for grids. More...
 
class  GridDiffusionSolver2
 Abstract base class for 2-D grid-based diffusion equation solver. More...
 
class  GridDiffusionSolver3
 Abstract base class for 3-D grid-based diffusion equation solver. More...
 
class  GridEmitter2
 Abstract base class for 2-D grid-based emitters. More...
 
class  GridEmitter3
 Abstract base class for 3-D grid-based emitters. More...
 
class  GridEmitterSet2
 2-D grid-based emitter set. More...
 
class  GridEmitterSet3
 3-D grid-based emitter set. More...
 
class  GridFluidSolver2
 Abstract base class for grid-based 2-D fluid solver. More...
 
class  GridFluidSolver3
 Abstract base class for grid-based 3-D fluid solver. More...
 
class  GridFluidSolverBuilderBase2
 Base class for grid-based fluid solver builder. More...
 
class  GridFluidSolverBuilderBase3
 Base class for grid-based fluid solver builder. More...
 
class  GridForwardEulerDiffusionSolver2
 2-D grid-based forward Euler diffusion solver. More...
 
class  GridForwardEulerDiffusionSolver3
 3-D grid-based forward Euler diffusion solver. More...
 
class  GridFractionalBoundaryConditionSolver2
 Fractional 2-D boundary condition solver for grids. More...
 
class  GridFractionalBoundaryConditionSolver3
 Fractional 3-D boundary condition solver for grids. More...
 
class  GridFractionalSinglePhasePressureSolver2
 2-D fractional single-phase pressure solver. More...
 
class  GridFractionalSinglePhasePressureSolver3
 3-D fractional single-phase pressure solver. More...
 
class  GridPointGenerator2
 2-D regular-grid point generator. More...
 
class  GridPointGenerator3
 3-D regular-grid point generator. More...
 
class  GridPressureSolver2
 Abstract base class for 2-D grid-based pressure solver. More...
 
class  GridPressureSolver3
 Abstract base class for 3-D grid-based pressure solver. More...
 
class  GridSinglePhasePressureSolver2
 2-D single-phase pressure solver. More...
 
class  GridSinglePhasePressureSolver3
 3-D single-phase pressure solver. More...
 
class  GridSmokeSolver2
 2-D grid-based smoke solver. More...
 
class  GridSmokeSolver3
 3-D grid-based smoke solver. More...
 
class  GridSystemData2
 2-D grid system data. More...
 
class  GridSystemData3
 3-D grid system data. More...
 
class  ImplicitSurface2
 Abstract base class for 2-D implicit surface. More...
 
class  ImplicitSurface3
 Abstract base class for 3-D implicit surface. More...
 
class  ImplicitSurfaceSet2
 2-D implicit surface set. More...
 
class  ImplicitSurfaceSet3
 3-D implicit surface set. More...
 
class  ImplicitTriangleMesh3
 TriangleMesh3 to ImplicitSurface3 converter. More...
 
class  IntersectionQueryEngine2
 Abstract base class for 2-D intersection test query engine. More...
 
class  IntersectionQueryEngine3
 Abstract base class for 3-D intersection test query engine. More...
 
class  IterativeLevelSetSolver2
 Abstract base class for 2-D PDE-based iterative level set solver. More...
 
class  IterativeLevelSetSolver3
 Abstract base class for 3-D PDE-based iterative level set solver. More...
 
class  KdTree
 Generic k-d tree structure. More...
 
class  LevelSetLiquidSolver2
 Level set based 2-D liquid solver. More...
 
class  LevelSetLiquidSolver3
 Level set based 3-D liquid solver. More...
 
class  LevelSetSolver2
 Abstract base class for 2-D level set solver. More...
 
class  LevelSetSolver3
 Abstract base class for 3-D level set solver. More...
 
class  LinearArraySampler
 Generic N-D linear array sampler class. More...
 
class  LinearArraySampler< T, R, 1 >
 1-D linear array sampler class. More...
 
class  LinearArraySampler< T, R, 2 >
 2-D linear array sampler class. More...
 
class  LinearArraySampler< T, R, 3 >
 2-D linear array sampler class. More...
 
class  ListQueryEngine2
 Ad-hoc list-based 2-D intersection/nearest-neighbor query engine. More...
 
class  ListQueryEngine3
 Ad-hoc list-based 3-D intersection/nearest-neighbor query engine. More...
 
class  Logger
 Super simple logger implementation. More...
 
class  Logging
 Helper class for logging. More...
 
class  Matrix
 Static-sized M x N matrix class. More...
 
class  Matrix< T, 2, 2 >
 2-D matrix class. More...
 
class  Matrix< T, 3, 3 >
 3-D matrix class. More...
 
class  Matrix< T, 4, 4 >
 4-D matrix class. More...
 
class  MatrixBinaryOp
 Matrix expression for binary operation. More...
 
class  MatrixConstant
 Constant matrix expression. More...
 
class  MatrixCsr
 Compressed Sparse Row (CSR) matrix class. More...
 
class  MatrixCsrMatrixMul
 Matrix expression for CSR matrix-matrix multiplication. More...
 
class  MatrixCsrVectorMul
 Vector expression for CSR matrix-vector multiplication. More...
 
class  MatrixDiagonal
 Diagonal matrix expression. More...
 
class  MatrixExpression
 Base class for matrix expression. More...
 
class  MatrixIdentity
 Identity matrix expression. More...
 
class  MatrixMul
 Matrix expression for matrix-matrix multiplication. More...
 
class  MatrixMxN
 M x N matrix class. More...
 
class  MatrixScalarBinaryOp
 Matrix expression for matrix-scalar binary operation. More...
 
class  MatrixTriangular
 Triangular matrix expression. More...
 
class  MatrixUnaryOp
 Matrix expression for unary operation. More...
 
class  MatrixVectorMul
 Vector expression for matrix-vector multiplication. More...
 
struct  MgMatrix
 Multigrid matrix wrapper. More...
 
struct  MgParameters
 Multigrid input parameter set. More...
 
struct  MgResult
 Multigrid result type. More...
 
struct  MgVector
 Multigrid vector wrapper. More...
 
class  NearestArraySampler
 Generic N-D nearest array sampler class. More...
 
class  NearestArraySampler< T, R, 1 >
 1-D nearest array sampler class. More...
 
class  NearestArraySampler< T, R, 2 >
 2-D nearest array sampler class. More...
 
class  NearestArraySampler< T, R, 3 >
 3-D nearest array sampler class. More...
 
class  NearestNeighborQueryEngine2
 Abstract base class for 2-D nearest neigbor query engine. More...
 
class  NearestNeighborQueryEngine3
 Abstract base class for 3-D nearest neigbor query engine. More...
 
struct  NearestNeighborQueryResult2
 Nearest neighbor query result. More...
 
struct  NearestNeighborQueryResult3
 Nearest neighbor query result. More...
 
struct  NullCgPreconditioner
 No-op preconditioner for conjugate gradient. More...
 
class  Octree
 Generic octree data structure. More...
 
class  ParticleEmitter2
 Abstract base class for 2-D particle emitter. More...
 
class  ParticleEmitter3
 Abstract base class for 3-D particle emitter. More...
 
class  ParticleEmitterSet2
 2-D particle-based emitter set. More...
 
class  ParticleEmitterSet3
 3-D particle-based emitter set. More...
 
class  ParticleSystemData2
 2-D particle system data. More...
 
class  ParticleSystemData3
 3-D particle system data. More...
 
class  ParticleSystemSolver2
 Basic 2-D particle system solver. More...
 
class  ParticleSystemSolver3
 Basic 3-D particle system solver. More...
 
class  ParticleSystemSolverBuilderBase2
 Base class for particle-based solver builder. More...
 
class  ParticleSystemSolverBuilderBase3
 Base class for particle-based solver builder. More...
 
class  PciSphSolver2
 2-D PCISPH solver. More...
 
class  PciSphSolver3
 3-D PCISPH solver. More...
 
class  PhysicsAnimation
 Abstract base class for physics-based animation. More...
 
class  PicSolver2
 2-D Particle-in-Cell (PIC) implementation. More...
 
class  PicSolver3
 3-D Particle-in-Cell (PIC) implementation. More...
 
class  Plane2
 2-D plane geometry. More...
 
class  Plane3
 3-D plane geometry. More...
 
class  Point
 Generic N-D point class. More...
 
class  Point< T, 2 >
 2-D point class. More...
 
class  Point< T, 3 >
 3-D point class. More...
 
class  PointGenerator2
 Abstract base class for 2-D point generator. More...
 
class  PointGenerator3
 Abstract base class for 3-D point generator. More...
 
class  PointHashGridSearcher2
 Hash grid-based 2-D point searcher. More...
 
class  PointHashGridSearcher3
 Hash grid-based 3-D point searcher. More...
 
class  PointKdTreeSearcher2
 KdTree-based 2-D point searcher. More...
 
class  PointKdTreeSearcher3
 KdTree-based 3-D point searcher. More...
 
class  PointNeighborSearcher2
 Abstract base class for 2-D neighbor point searcher. More...
 
class  PointNeighborSearcher3
 Abstract base class for 3-D neighbor point searcher. More...
 
class  PointNeighborSearcherBuilder2
 Abstract base class for 2-D point neighbor searcher builders. More...
 
class  PointNeighborSearcherBuilder3
 Abstract base class for 3-D point neighbor searcher builders. More...
 
class  PointParallelHashGridSearcher2
 Parallel version of hash grid-based 2-D point searcher. More...
 
class  PointParallelHashGridSearcher3
 Parallel version of hash grid-based 3-D point searcher. More...
 
class  PointParticleEmitter2
 2-D point particle emitter. More...
 
class  PointParticleEmitter3
 3-D point particle emitter. More...
 
class  PointSimpleListSearcher2
 Simple ad-hoc 2-D point searcher. More...
 
class  PointSimpleListSearcher3
 Simple ad-hoc 3-D point searcher. More...
 
class  PointsToImplicit2
 Abstract base class for 2-D points-to-implicit converters. More...
 
class  PointsToImplicit3
 Abstract base class for 3-D points-to-implicit converters. More...
 
class  Quadtree
 Generic quadtree data structure. More...
 
class  Quaternion
 Quaternion class defined as q = w + xi + yj + zk. More...
 
class  Ray
 Class for ray. More...
 
class  Ray< T, 2 >
 Class for 2-D ray. More...
 
class  Ray< T, 3 >
 Class for 2-D ray. More...
 
struct  RDivides
 Reverse divides operator. More...
 
class  RigidBodyCollider2
 2-D rigid body collider class. More...
 
class  RigidBodyCollider3
 3-D rigid body collider class. More...
 
struct  RMinus
 Reverse minus operator. More...
 
class  ScalarField2
 Abstract base class for 2-D scalar field. More...
 
class  ScalarField3
 Abstract base class for 3-D scalar field. More...
 
class  ScalarGrid2
 Abstract base class for 2-D scalar grid structure. More...
 
class  ScalarGrid3
 Abstract base class for 3-D scalar grid structure. More...
 
class  ScalarGridBuilder2
 Abstract base class for 2-D scalar grid builder. More...
 
class  ScalarGridBuilder3
 Abstract base class for 3-D scalar grid builder. More...
 
struct  ScalarType
 Returns the type of the value itself. More...
 
struct  ScalarType< Vector2< T > >
 Returns the type of the value itself. More...
 
struct  ScalarType< Vector3< T > >
 Returns the type of the value itself. More...
 
struct  ScalarType< Vector4< T > >
 Returns the type of the value itself. More...
 
struct  ScalarType< Vector< T, N > >
 Returns the type of the value. More...
 
class  SemiLagrangian2
 Implementation of 2-D semi-Lagrangian advection solver. More...
 
class  SemiLagrangian3
 Implementation of 3-D semi-Lagrangian advection solver. More...
 
class  Serializable
 Abstract base class for any serializable class. More...
 
class  Size2
 2-D size class. More...
 
class  Size3
 3-D size class. More...
 
class  Sphere2
 2-D sphere geometry. More...
 
class  Sphere3
 3-D sphere geometry. More...
 
class  SphericalPointsToImplicit2
 2-D points-to-implicit converter based on simple sphere model. More...
 
class  SphericalPointsToImplicit3
 3-D points-to-implicit converter based on simple sphere model. More...
 
class  SphPointsToImplicit2
 2-D points-to-implicit converter based on standard SPH kernel. More...
 
class  SphPointsToImplicit3
 3-D points-to-implicit converter based on standard SPH kernel. More...
 
class  SphSolver2
 2-D SPH solver. More...
 
class  SphSolver3
 3-D SPH solver. More...
 
class  SphSolverBuilderBase2
 Base class for SPH-based fluid solver builder. More...
 
class  SphSolverBuilderBase3
 Base class for SPH-based fluid solver builder. More...
 
struct  SphSpikyKernel2
 Spiky 2-D SPH kernel function object. More...
 
struct  SphSpikyKernel3
 Spiky 3-D SPH kernel function object. More...
 
struct  SphStdKernel2
 Standard 2-D SPH kernel function object. More...
 
struct  SphStdKernel3
 Standard 3-D SPH kernel function object. More...
 
class  SphSystemData2
 2-D SPH particle system data. More...
 
class  SphSystemData3
 3-D SPH particle system data. More...
 
class  Surface2
 Abstract base class for 2-D surface. More...
 
class  Surface3
 Abstract base class for 3-D surface. More...
 
class  SurfaceBuilderBase2
 Base class for 2-D surface builder. More...
 
class  SurfaceBuilderBase3
 Base class for 3-D surface builder. More...
 
struct  SurfaceRayIntersection2
 Struct that represents ray-surface intersection point. More...
 
struct  SurfaceRayIntersection3
 Struct that represents ray-surface intersection point. More...
 
class  SurfaceSet2
 2-D surface set. More...
 
class  SurfaceSet3
 3-D surface set. More...
 
class  SurfaceToImplicit2
 2-D implicit surface wrapper for generic Surface2 instance. More...
 
class  SurfaceToImplicit3
 3-D implicit surface wrapper for generic Surface3 instance. More...
 
class  Timer
 Simple timer class. More...
 
class  Transform2
 Represents 2-D rigid body transform. More...
 
class  Transform3
 Represents 3-D rigid body transform. More...
 
class  Triangle3
 3-D triangle geometry. More...
 
class  TriangleMesh3
 3-D triangle mesh geometry. More...
 
class  TrianglePointGenerator
 Right triangle point generator. More...
 
struct  TypeCast
 Type casting operator. More...
 
class  UpwindLevelSetSolver2
 Two-dimensional first-order upwind-based iterative level set solver. More...
 
class  UpwindLevelSetSolver3
 Three-dimensional first-order upwind-based iterative level set solver. More...
 
class  Vector
 Generic statically-sized N-D vector class. More...
 
class  Vector< T, 2 >
 2-D vector class. More...
 
class  Vector< T, 3 >
 3-D vector class. More...
 
class  Vector< T, 4 >
 4-D vector class. More...
 
class  VectorBinaryOp
 Vector expression for binary operation. More...
 
class  VectorExpression
 Base class for vector expression. More...
 
class  VectorField2
 Abstract base class for 2-D vector field. More...
 
class  VectorField3
 Abstract base class for 3-D vector field. More...
 
class  VectorGrid2
 Abstract base class for 2-D vector grid structure. More...
 
class  VectorGrid3
 Abstract base class for 3-D vector grid structure. More...
 
class  VectorGridBuilder2
 Abstract base class for 2-D vector grid builder. More...
 
class  VectorGridBuilder3
 Abstract base class for 3-D vector grid builder. More...
 
class  VectorN
 General purpose dynamically-sizedN-D vector class. More...
 
class  VectorScalarBinaryOp
 Vector expression for matrix-scalar binary operation. More...
 
class  VectorUnaryOp
 Vector expression for unary operation. More...
 
class  VertexCenteredScalarGrid2
 2-D Vertex-centered scalar grid structure. More...
 
class  VertexCenteredScalarGrid3
 3-D Vertex-centered scalar grid structure. More...
 
class  VertexCenteredVectorGrid2
 2-D Vertex-centered vector grid structure. More...
 
class  VertexCenteredVectorGrid3
 3-D Vertex-centered vector grid structure. More...
 
class  VolumeGridEmitter2
 2-D grid-based volumetric emitter. More...
 
class  VolumeGridEmitter3
 3-D grid-based volumetric emitter. More...
 
class  VolumeParticleEmitter2
 2-D volumetric particle emitter. More...
 
class  VolumeParticleEmitter3
 3-D volumetric particle emitter. More...
 
class  ZhuBridsonPointsToImplicit2
 2-D points-to-implicit converter based on Zhu and Bridson's method. More...
 
class  ZhuBridsonPointsToImplicit3
 3-D points-to-implicit converter based on Zhu and Bridson's method. More...
 

Typedefs

typedef std::shared_ptr< AdvectionSolver2AdvectionSolver2Ptr
 Shared pointer type for the 2-D advection solver. More...
 
typedef std::shared_ptr< AdvectionSolver3AdvectionSolver3Ptr
 Shared pointer type for the 3-D advection solver. More...
 
typedef std::shared_ptr< AnimationAnimationPtr
 Shared pointer for the Animation type. More...
 
typedef std::shared_ptr< AnisotropicPointsToImplicit2AnisotropicPointsToImplicit2Ptr
 Shared pointer for the AnisotropicPointsToImplicit2 type. More...
 
typedef std::shared_ptr< AnisotropicPointsToImplicit3AnisotropicPointsToImplicit3Ptr
 Shared pointer for the AnisotropicPointsToImplicit3 type. More...
 
typedef std::shared_ptr< ApicSolver2ApicSolver2Ptr
 Shared pointer type for the ApicSolver2. More...
 
typedef std::shared_ptr< ApicSolver3ApicSolver3Ptr
 Shared pointer type for the ApicSolver3. More...
 
template<typename T >
using Array1 = Array< T, 1 >
 Type alias for 1-D array. More...
 
template<typename T >
using Array2 = Array< T, 2 >
 Type alias for 2-D array. More...
 
template<typename T >
using Array3 = Array< T, 3 >
 Type alias for 3-D array. More...
 
template<typename T >
using ArrayAccessor1 = ArrayAccessor< T, 1 >
 Type alias for 1-D array accessor. More...
 
template<typename T >
using ConstArrayAccessor1 = ConstArrayAccessor< T, 1 >
 Type alias for 1-D const array accessor. More...
 
template<typename T >
using ArrayAccessor2 = ArrayAccessor< T, 2 >
 Type alias for 2-D array accessor. More...
 
template<typename T >
using ConstArrayAccessor2 = ConstArrayAccessor< T, 2 >
 Type alias for 2-D const array accessor. More...
 
template<typename T >
using ArrayAccessor3 = ArrayAccessor< T, 3 >
 Type alias for 3-D array accessor. More...
 
template<typename T >
using ConstArrayAccessor3 = ConstArrayAccessor< T, 3 >
 Type alias for 3-D const array accessor. More...
 
template<typename T , typename R >
using NearestArraySampler1 = NearestArraySampler< T, R, 1 >
 Type alias for 1-D nearest array sampler. More...
 
template<typename T , typename R >
using LinearArraySampler1 = LinearArraySampler< T, R, 1 >
 Type alias for 1-D linear array sampler. More...
 
template<typename T , typename R >
using CubicArraySampler1 = CubicArraySampler< T, R, 1 >
 Type alias for 1-D cubic array sampler. More...
 
template<typename T , typename R >
using NearestArraySampler2 = NearestArraySampler< T, R, 2 >
 Type alias for 2-D nearest array sampler. More...
 
template<typename T , typename R >
using LinearArraySampler2 = LinearArraySampler< T, R, 2 >
 Type alias for 2-D linear array sampler. More...
 
template<typename T , typename R >
using CubicArraySampler2 = CubicArraySampler< T, R, 2 >
 Type alias for 2-D cubic array sampler. More...
 
template<typename T , typename R >
using NearestArraySampler3 = NearestArraySampler< T, R, 3 >
 Type alias for 3-D nearest array sampler. More...
 
template<typename T , typename R >
using LinearArraySampler3 = LinearArraySampler< T, R, 3 >
 Type alias for 3-D linear array sampler. More...
 
template<typename T , typename R >
using CubicArraySampler3 = CubicArraySampler< T, R, 3 >
 Type alias for 3-D cubic array sampler. More...
 
typedef std::shared_ptr< BccLatticePointGeneratorBccLatticePointGeneratorPtr
 Shared pointer type for the BccLatticePointGenerator. More...
 
template<typename T >
using BoundingBox2 = BoundingBox< T, 2 >
 Type alias for 2-D BoundingBox. More...
 
typedef BoundingBox2< float > BoundingBox2F
 Float-type 2-D BoundingBox. More...
 
typedef BoundingBox2< double > BoundingBox2D
 Double-type 2-D BoundingBox. More...
 
typedef BoundingBoxRayIntersection2< float > BoundingBoxRayIntersection2F
 Float-type 2-D box-ray intersection result. More...
 
typedef BoundingBoxRayIntersection2< double > BoundingBoxRayIntersection2D
 Double-type 2-D box-ray intersection result. More...
 
template<typename T >
using BoundingBox3 = BoundingBox< T, 3 >
 Type alias for 3-D BoundingBox. More...
 
typedef BoundingBox3< float > BoundingBox3F
 Float-type 3-D BoundingBox. More...
 
typedef BoundingBox3< double > BoundingBox3D
 Double-type 3-D BoundingBox. More...
 
typedef BoundingBoxRayIntersection3< float > BoundingBoxRayIntersection3F
 Float-type 3-D box-ray intersection result. More...
 
typedef BoundingBoxRayIntersection3< double > BoundingBoxRayIntersection3D
 Double-type 3-D box-ray intersection result. More...
 
typedef std::shared_ptr< Box2Box2Ptr
 Shared pointer type for the Box2. More...
 
typedef std::shared_ptr< Box3Box3Ptr
 Shared pointer type for the Box3. More...
 
typedef std::shared_ptr< CellCenteredScalarGrid2CellCenteredScalarGrid2Ptr
 Shared pointer for the CellCenteredScalarGrid2 type. More...
 
typedef std::shared_ptr< CellCenteredScalarGrid3CellCenteredScalarGrid3Ptr
 Shared pointer for the CellCenteredScalarGrid3 type. More...
 
typedef std::shared_ptr< CellCenteredVectorGrid2CellCenteredVectorGrid2Ptr
 Shared pointer for the CellCenteredVectorGrid2 type. More...
 
typedef std::shared_ptr< CellCenteredVectorGrid3CellCenteredVectorGrid3Ptr
 Shared pointer for the CellCenteredVectorGrid3 type. More...
 
typedef std::shared_ptr< Collider2Collider2Ptr
 Shared pointer type for the Collider2. More...
 
typedef std::shared_ptr< Collider3Collider3Ptr
 Shared pointer type for the Collider2. More...
 
typedef std::shared_ptr< ColliderSet2ColliderSet2Ptr
 Shared pointer for the ColliderSet2 type. More...
 
typedef std::shared_ptr< ColliderSet3ColliderSet3Ptr
 Shared pointer for the ColliderSet3 type. More...
 
typedef std::shared_ptr< CollocatedVectorGrid2CollocatedVectorGrid2Ptr
 Shared pointer for the CollocatedVectorGrid2 type. More...
 
typedef std::shared_ptr< CollocatedVectorGrid3CollocatedVectorGrid3Ptr
 Shared pointer for the CollocatedVectorGrid3 type. More...
 
typedef std::shared_ptr< ConstantScalarField2ConstantScalarField2Ptr
 Shared pointer for the ConstantScalarField2 type. More...
 
typedef std::shared_ptr< ConstantScalarField3ConstantScalarField3Ptr
 Shared pointer for the ConstantScalarField3 type. More...
 
typedef std::shared_ptr< ConstantVectorField2ConstantVectorField2Ptr
 Shared pointer for the ConstantVectorField2 type. More...
 
typedef std::shared_ptr< ConstantVectorField3ConstantVectorField3Ptr
 Shared pointer for the ConstantVectorField3 type. More...
 
typedef std::shared_ptr< CubicSemiLagrangian2CubicSemiLagrangian2Ptr
 
typedef std::shared_ptr< CubicSemiLagrangian3CubicSemiLagrangian3Ptr
 
typedef std::shared_ptr< CustomImplicitSurface2CustomImplicitSurface2Ptr
 Shared pointer type for the CustomImplicitSurface2. More...
 
typedef std::shared_ptr< CustomImplicitSurface3CustomImplicitSurface3Ptr
 Shared pointer type for the CustomImplicitSurface3. More...
 
typedef std::shared_ptr< CustomScalarField2CustomScalarField2Ptr
 Shared pointer type for the CustomScalarField2. More...
 
typedef std::shared_ptr< CustomScalarField3CustomScalarField3Ptr
 Shared pointer type for the CustomScalarField3. More...
 
typedef std::shared_ptr< CustomVectorField2CustomVectorField2Ptr
 Shared pointer type for the CustomVectorField2. More...
 
typedef std::shared_ptr< CustomVectorField3CustomVectorField3Ptr
 Shared pointer type for the CustomVectorField3. More...
 
typedef std::shared_ptr< Cylinder3Cylinder3Ptr
 Shared pointer type for the Cylinder3. More...
 
typedef std::shared_ptr< EnoLevelSetSolver2EnoLevelSetSolver2Ptr
 
typedef std::shared_ptr< EnoLevelSetSolver3EnoLevelSetSolver3Ptr
 
typedef std::shared_ptr< FaceCenteredGrid2FaceCenteredGrid2Ptr
 Shared pointer type for the FaceCenteredGrid2. More...
 
typedef std::shared_ptr< FaceCenteredGrid3FaceCenteredGrid3Ptr
 Shared pointer type for the FaceCenteredGrid3. More...
 
typedef std::shared_ptr< FccLatticePointGeneratorFccLatticePointGeneratorPtr
 Shared pointer type for the FccLatticePointGenerator. More...
 
typedef std::shared_ptr< FdmCgSolver2FdmCgSolver2Ptr
 Shared pointer type for the FdmCgSolver2. More...
 
typedef std::shared_ptr< FdmCgSolver3FdmCgSolver3Ptr
 Shared pointer type for the FdmCgSolver3. More...
 
typedef std::shared_ptr< FdmGaussSeidelSolver2FdmGaussSeidelSolver2Ptr
 Shared pointer type for the FdmGaussSeidelSolver2. More...
 
typedef std::shared_ptr< FdmGaussSeidelSolver3FdmGaussSeidelSolver3Ptr
 Shared pointer type for the FdmGaussSeidelSolver3. More...
 
typedef std::shared_ptr< FdmIccgSolver2FdmIccgSolver2Ptr
 Shared pointer type for the FdmIccgSolver2. More...
 
typedef std::shared_ptr< FdmIccgSolver3FdmIccgSolver3Ptr
 Shared pointer type for the FdmIccgSolver3. More...
 
typedef std::shared_ptr< FdmJacobiSolver2FdmJacobiSolver2Ptr
 Shared pointer type for the FdmJacobiSolver2. More...
 
typedef std::shared_ptr< FdmJacobiSolver3FdmJacobiSolver3Ptr
 Shared pointer type for the FdmJacobiSolver3. More...
 
typedef Array2< double > FdmVector2
 Vector type for 2-D finite differencing. More...
 
typedef Array2< FdmMatrixRow2FdmMatrix2
 Matrix type for 2-D finite differencing. More...
 
typedef Array3< double > FdmVector3
 Vector type for 3-D finite differencing. More...
 
typedef Array3< FdmMatrixRow3FdmMatrix3
 Matrix type for 3-D finite differencing. More...
 
typedef std::shared_ptr< FdmLinearSystemSolver2FdmLinearSystemSolver2Ptr
 Shared pointer type for the FdmLinearSystemSolver2. More...
 
typedef std::shared_ptr< FdmLinearSystemSolver3FdmLinearSystemSolver3Ptr
 Shared pointer type for the FdmLinearSystemSolver3. More...
 
typedef MgMatrix< FdmBlas2FdmMgMatrix2
 Multigrid-style 2-D FDM matrix. More...
 
typedef MgVector< FdmBlas2FdmMgVector2
 Multigrid-style 2-D FDM vector. More...
 
typedef MgMatrix< FdmBlas3FdmMgMatrix3
 Multigrid-style 3-D FDM matrix. More...
 
typedef MgVector< FdmBlas3FdmMgVector3
 Multigrid-style 3-D FDM vector. More...
 
typedef std::shared_ptr< FdmMgSolver2FdmMgSolver2Ptr
 Shared pointer type for the FdmMgSolver2. More...
 
typedef std::shared_ptr< FdmMgSolver3FdmMgSolver3Ptr
 Shared pointer type for the FdmMgSolver3. More...
 
typedef std::shared_ptr< FdmMgpcgSolver2FdmMgpcgSolver2Ptr
 Shared pointer type for the FdmMgpcgSolver2. More...
 
typedef std::shared_ptr< FdmMgpcgSolver3FdmMgpcgSolver3Ptr
 Shared pointer type for the FdmMgpcgSolver3. More...
 
typedef std::shared_ptr< Field2Field2Ptr
 
typedef std::shared_ptr< Field3Field3Ptr
 
typedef std::shared_ptr< FlipSolver2FlipSolver2Ptr
 Shared pointer type for the FlipSolver2. More...
 
typedef std::shared_ptr< FlipSolver3FlipSolver3Ptr
 Shared pointer type for the FlipSolver3. More...
 
typedef std::shared_ptr< FmmLevelSetSolver2FmmLevelSetSolver2Ptr
 Shared pointer type for the FmmLevelSetSolver2. More...
 
typedef std::shared_ptr< FmmLevelSetSolver3FmmLevelSetSolver3Ptr
 Shared pointer type for the FmmLevelSetSolver3. More...
 
typedef std::shared_ptr< Grid2Grid2Ptr
 
typedef std::shared_ptr< Grid3Grid3Ptr
 
typedef std::shared_ptr< GridBackwardEulerDiffusionSolver2GridBackwardEulerDiffusionSolver2Ptr
 Shared pointer type for the GridBackwardEulerDiffusionSolver2. More...
 
typedef std::shared_ptr< GridBackwardEulerDiffusionSolver3GridBackwardEulerDiffusionSolver3Ptr
 Shared pointer type for the GridBackwardEulerDiffusionSolver3. More...
 
typedef std::shared_ptr< GridBlockedBoundaryConditionSolver2GridBlockedBoundaryConditionSolver2Ptr
 Shared pointer type for the GridBlockedBoundaryConditionSolver2. More...
 
typedef std::shared_ptr< GridBlockedBoundaryConditionSolver3GridBlockedBoundaryConditionSolver3Ptr
 Shared pointer type for the GridBlockedBoundaryConditionSolver3. More...
 
typedef std::shared_ptr< GridBoundaryConditionSolver2GridBoundaryConditionSolver2Ptr
 Shared pointer type for the GridBoundaryConditionSolver2. More...
 
typedef std::shared_ptr< GridBoundaryConditionSolver3GridBoundaryConditionSolver3Ptr
 Shared pointer type for the GridBoundaryConditionSolver3. More...
 
typedef std::shared_ptr< GridDiffusionSolver2GridDiffusionSolver2Ptr
 Shared pointer type for the GridDiffusionSolver2. More...
 
typedef std::shared_ptr< GridDiffusionSolver3GridDiffusionSolver3Ptr
 Shared pointer type for the GridDiffusionSolver3. More...
 
typedef std::shared_ptr< GridEmitter2GridEmitter2Ptr
 Shared pointer type for the GridEmitter2. More...
 
typedef std::shared_ptr< GridEmitter3GridEmitter3Ptr
 Shared pointer type for the GridEmitter3. More...
 
typedef std::shared_ptr< GridEmitterSet2GridEmitterSet2Ptr
 Shared pointer type for the GridEmitterSet2. More...
 
typedef std::shared_ptr< GridEmitterSet3GridEmitterSet3Ptr
 Shared pointer type for the GridEmitterSet3. More...
 
typedef std::shared_ptr< GridFluidSolver2GridFluidSolver2Ptr
 Shared pointer type for the GridFluidSolver2. More...
 
typedef std::shared_ptr< GridFluidSolver3GridFluidSolver3Ptr
 Shared pointer type for the GridFluidSolver3. More...
 
typedef std::shared_ptr< GridForwardEulerDiffusionSolver2GridForwardEulerDiffusionSolver2Ptr
 Shared pointer type for the GridForwardEulerDiffusionSolver2. More...
 
typedef std::shared_ptr< GridForwardEulerDiffusionSolver3GridForwardEulerDiffusionSolver3Ptr
 Shared pointer type for the GridForwardEulerDiffusionSolver3. More...
 
typedef std::shared_ptr< GridFractionalBoundaryConditionSolver2GridFractionalBoundaryConditionSolver2Ptr
 Shared pointer type for the GridFractionalBoundaryConditionSolver2. More...
 
typedef std::shared_ptr< GridFractionalBoundaryConditionSolver3GridFractionalBoundaryConditionSolver3Ptr
 Shared pointer type for the GridFractionalBoundaryConditionSolver3. More...
 
typedef std::shared_ptr< GridFractionalSinglePhasePressureSolver2GridFractionalSinglePhasePressureSolver2Ptr
 Shared pointer type for the GridFractionalSinglePhasePressureSolver2. More...
 
typedef std::shared_ptr< GridFractionalSinglePhasePressureSolver3GridFractionalSinglePhasePressureSolver3Ptr
 Shared pointer type for the GridFractionalSinglePhasePressureSolver3. More...
 
typedef std::shared_ptr< GridPointGenerator2GridPointGenerator2Ptr
 Shared pointer type for the GridPointGenerator2. More...
 
typedef std::shared_ptr< GridPointGenerator3GridPointGenerator3Ptr
 Shared pointer type for the GridPointGenerator3. More...
 
typedef std::shared_ptr< GridPressureSolver2GridPressureSolver2Ptr
 Shared pointer type for the GridPressureSolver2. More...
 
typedef std::shared_ptr< GridPressureSolver3GridPressureSolver3Ptr
 Shared pointer type for the GridPressureSolver3. More...
 
typedef std::shared_ptr< GridSinglePhasePressureSolver2GridSinglePhasePressureSolver2Ptr
 Shared pointer type for the GridSinglePhasePressureSolver2. More...
 
typedef std::shared_ptr< GridSinglePhasePressureSolver3GridSinglePhasePressureSolver3Ptr
 Shared pointer type for the GridSinglePhasePressureSolver3. More...
 
typedef std::shared_ptr< GridSmokeSolver2GridSmokeSolver2Ptr
 Shared pointer type for the GridSmokeSolver2. More...
 
typedef std::shared_ptr< GridSmokeSolver3GridSmokeSolver3Ptr
 Shared pointer type for the GridSmokeSolver3. More...
 
typedef std::shared_ptr< GridSystemData2GridSystemData2Ptr
 Shared pointer type of GridSystemData2. More...
 
typedef std::shared_ptr< GridSystemData3GridSystemData3Ptr
 Shared pointer type of GridSystemData3. More...
 
typedef std::shared_ptr< ImplicitSurface2ImplicitSurface2Ptr
 Shared pointer type for the ImplicitSurface2. More...
 
typedef std::shared_ptr< ImplicitSurface3ImplicitSurface3Ptr
 Shared pointer type for the ImplicitSurface3. More...
 
typedef std::shared_ptr< ImplicitSurfaceSet2ImplicitSurfaceSet2Ptr
 Shared pointer type for the ImplicitSurfaceSet2. More...
 
typedef std::shared_ptr< ImplicitSurfaceSet3ImplicitSurfaceSet3Ptr
 Shared pointer type for the ImplicitSurfaceSet3. More...
 
typedef std::shared_ptr< ImplicitTriangleMesh3ImplicitTriangleMesh3Ptr
 Shared pointer for the ImplicitTriangleMesh3 type. More...
 
template<typename T >
using ClosestIntersectionDistanceFunc2 = std::function< double(const T &, const Vector2D &)>
 Closest intersection distance measure function. More...
 
template<typename T >
using BoxIntersectionTestFunc2 = std::function< bool(const T &, const BoundingBox2D &)>
 Box-item intersection test function. More...
 
template<typename T >
using RayIntersectionTestFunc2 = std::function< bool(const T &, const Ray2D &)>
 Ray-item intersection test function. More...
 
template<typename T >
using GetRayIntersectionFunc2 = std::function< double(const T &, const Ray2D &)>
 Ray-item closest intersection evaluation function. More...
 
template<typename T >
using IntersectionVisitorFunc2 = std::function< void(const T &)>
 Visitor function which is invoked for each intersecting item. More...
 
template<typename T >
using ClosestIntersectionDistanceFunc3 = std::function< double(const T &, const Vector3D &)>
 Closest intersection distance measure function. More...
 
template<typename T >
using BoxIntersectionTestFunc3 = std::function< bool(const T &, const BoundingBox3D &)>
 Box-item intersection test function. More...
 
template<typename T >
using RayIntersectionTestFunc3 = std::function< bool(const T &, const Ray3D &)>
 Ray-item intersection test function. More...
 
template<typename T >
using GetRayIntersectionFunc3 = std::function< double(const T &, const Ray3D &)>
 Ray-item closest intersection evaluation function. More...
 
template<typename T >
using IntersectionVisitorFunc3 = std::function< void(const T &)>
 Visitor function which is invoked for each intersecting item. More...
 
typedef std::shared_ptr< IterativeLevelSetSolver2IterativeLevelSetSolver2Ptr
 
typedef std::shared_ptr< IterativeLevelSetSolver3IterativeLevelSetSolver3Ptr
 
typedef std::shared_ptr< LevelSetLiquidSolver2LevelSetLiquidSolver2Ptr
 Shared pointer type for the LevelSetLiquidSolver2. More...
 
typedef std::shared_ptr< LevelSetLiquidSolver3LevelSetLiquidSolver3Ptr
 Shared pointer type for the LevelSetLiquidSolver3. More...
 
typedef std::shared_ptr< LevelSetSolver2LevelSetSolver2Ptr
 Shared pointer type for the LevelSetSolver2. More...
 
typedef std::shared_ptr< LevelSetSolver3LevelSetSolver3Ptr
 Shared pointer type for the LevelSetSolver3. More...
 
template<typename T >
using Matrix2x2 = Matrix< T, 2, 2 >
 Type alias for 2x2 matrix. More...
 
typedef Matrix2x2< float > Matrix2x2F
 Float-type 2x2 matrix. More...
 
typedef Matrix2x2< double > Matrix2x2D
 Double-type 2x2 matrix. More...
 
template<typename T >
using Matrix3x3 = Matrix< T, 3, 3 >
 Type alias for 3x3 matrix. More...
 
typedef Matrix3x3< float > Matrix3x3F
 Float-type 3x3 matrix. More...
 
typedef Matrix3x3< double > Matrix3x3D
 Double-type 3x3 matrix. More...
 
template<typename T >
using Matrix4x4 = Matrix< T, 4, 4 >
 Type alias for 4x4 matrix. More...
 
typedef Matrix4x4< float > Matrix4x4F
 Float-type 4x4 matrix. More...
 
typedef Matrix4x4< double > Matrix4x4D
 Double-type 4x4 matrix. More...
 
typedef MatrixCsr< float > MatrixCsrF
 Float-type CSR matrix. More...
 
typedef MatrixCsr< double > MatrixCsrD
 Double-type CSR matrix. More...
 
template<typename T , typename E , typename U >
using MatrixTypeCast = MatrixUnaryOp< T, E, TypeCast< U, T > >
 Matrix expression for type casting. More...
 
template<typename T , typename E1 , typename E2 >
using MatrixAdd = MatrixBinaryOp< T, E1, E2, std::plus< T > >
 Matrix-matrix addition expression. More...
 
template<typename T , typename E >
using MatrixScalarAdd = MatrixScalarBinaryOp< T, E, std::plus< T > >
 Matrix-scalar addition expression. More...
 
template<typename T , typename E1 , typename E2 >
using MatrixSub = MatrixBinaryOp< T, E1, E2, std::minus< T > >
 Matrix-matrix subtraction expression. More...
 
template<typename T , typename E >
using MatrixScalarSub = MatrixScalarBinaryOp< T, E, std::minus< T > >
 Matrix-scalar subtraction expression. More...
 
template<typename T , typename E >
using MatrixScalarRSub = MatrixScalarBinaryOp< T, E, RMinus< T > >
 Matrix-matrix subtraction expression with inversed order. More...
 
template<typename T , typename E >
using MatrixScalarMul = MatrixScalarBinaryOp< T, E, std::multiplies< T > >
 Matrix-scalar multiplication expression. More...
 
template<typename T , typename E >
using MatrixScalarDiv = MatrixScalarBinaryOp< T, E, std::divides< T > >
 Matrix-scalar division expression. More...
 
template<typename T , typename E >
using MatrixScalarRDiv = MatrixScalarBinaryOp< T, E, RDivides< T > >
 Matrix-scalar division expression with inversed order. More...
 
typedef MatrixMxN< float > MatrixMxNF
 Float-type M x N matrix. More...
 
typedef MatrixMxN< double > MatrixMxND
 Double-type M x N matrix. More...
 
template<typename BlasType >
using MgRelaxFunc = std::function< void(const typename BlasType::MatrixType &A, const typename BlasType::VectorType &b, unsigned int numberOfIterations, double maxTolerance, typename BlasType::VectorType *x, typename BlasType::VectorType *buffer)>
 Multigrid relax function type. More...
 
template<typename BlasType >
using MgRestrictFunc = std::function< void(const typename BlasType::VectorType &finer, typename BlasType::VectorType *coarser)>
 Multigrid restriction function type. More...
 
template<typename BlasType >
using MgCorrectFunc = std::function< void(const typename BlasType::VectorType &coarser, typename BlasType::VectorType *finer)>
 Multigrid correction function type. More...
 
template<typename T >
using NearestNeighborDistanceFunc2 = std::function< double(const T &, const Vector2D &)>
 Nearest neighbor distance measure function. More...
 
template<typename T >
using NearestNeighborDistanceFunc3 = std::function< double(const T &, const Vector3D &)>
 Nearest neighbor distance measure function. More...
 
typedef std::shared_ptr< ParticleEmitter2ParticleEmitter2Ptr
 Shared pointer for the ParticleEmitter2 type. More...
 
typedef std::shared_ptr< ParticleEmitter3ParticleEmitter3Ptr
 Shared pointer for the ParticleEmitter3 type. More...
 
typedef std::shared_ptr< ParticleEmitterSet2ParticleEmitterSet2Ptr
 Shared pointer type for the ParticleEmitterSet2. More...
 
typedef std::shared_ptr< ParticleEmitterSet3ParticleEmitterSet3Ptr
 Shared pointer type for the ParticleEmitterSet3. More...
 
typedef std::shared_ptr< ParticleSystemData2ParticleSystemData2Ptr
 Shared pointer type of ParticleSystemData2. More...
 
typedef std::shared_ptr< ParticleSystemData3ParticleSystemData3Ptr
 Shared pointer type of ParticleSystemData3. More...
 
typedef std::shared_ptr< ParticleSystemSolver2ParticleSystemSolver2Ptr
 Shared pointer type for the ParticleSystemSolver2. More...
 
typedef std::shared_ptr< ParticleSystemSolver3ParticleSystemSolver3Ptr
 Shared pointer type for the ParticleSystemSolver3. More...
 
typedef std::shared_ptr< PciSphSolver2PciSphSolver2Ptr
 Shared pointer type for the PciSphSolver2. More...
 
typedef std::shared_ptr< PciSphSolver3PciSphSolver3Ptr
 Shared pointer type for the PciSphSolver3. More...
 
typedef std::shared_ptr< PhysicsAnimationPhysicsAnimationPtr
 
typedef std::shared_ptr< PicSolver2PicSolver2Ptr
 Shared pointer type for the PicSolver2. More...
 
typedef std::shared_ptr< PicSolver3PicSolver3Ptr
 Shared pointer type for the PicSolver3. More...
 
typedef std::shared_ptr< Plane2Plane2Ptr
 Shared pointer for the Plane2 type. More...
 
typedef std::shared_ptr< Plane3Plane3Ptr
 Shared pointer for the Plane3 type. More...
 
template<typename T >
using Point2 = Point< T, 2 >
 Type alias for two dimensional point. More...
 
typedef Point2< float > Point2F
 Float-type 2D point. More...
 
typedef Point2< double > Point2D
 Double-type 2D point. More...
 
typedef Point2< ssize_t > Point2I
 Integer-type 2D point. More...
 
typedef Point2< size_t > Point2UI
 Unsigned integer-type 2D point. More...
 
template<typename T >
using Point3 = Point< T, 3 >
 Type alias for three dimensional point. More...
 
typedef Point3< float > Point3F
 Float-type 3D point. More...
 
typedef Point3< double > Point3D
 Double-type 3D point. More...
 
typedef Point3< ssize_t > Point3I
 Integer-type 3D point. More...
 
typedef Point3< size_t > Point3UI
 Unsigned integer-type 3D point. More...
 
typedef std::shared_ptr< PointGenerator2PointGenerator2Ptr
 Shared pointer for the PointGenerator2 type. More...
 
typedef std::shared_ptr< PointGenerator3PointGenerator3Ptr
 Shared pointer for the PointGenerator3 type. More...
 
typedef std::shared_ptr< PointHashGridSearcher2PointHashGridSearcher2Ptr
 Shared pointer for the PointHashGridSearcher2 type. More...
 
typedef std::shared_ptr< PointHashGridSearcher3PointHashGridSearcher3Ptr
 Shared pointer for the PointHashGridSearcher3 type. More...
 
typedef std::shared_ptr< PointKdTreeSearcher2PointKdTreeSearcher2Ptr
 Shared pointer for the PointKdTreeSearcher2 type. More...
 
typedef std::shared_ptr< PointKdTreeSearcher3PointKdTreeSearcher3Ptr
 Shared pointer for the PointKdTreeSearcher3 type. More...
 
typedef std::shared_ptr< PointNeighborSearcher2PointNeighborSearcher2Ptr
 Shared pointer for the PointNeighborSearcher2 type. More...
 
typedef std::shared_ptr< PointNeighborSearcherBuilder2PointNeighborSearcherBuilder2Ptr
 Shared pointer for the PointNeighborSearcherBuilder2 type. More...
 
typedef std::shared_ptr< PointNeighborSearcher3PointNeighborSearcher3Ptr
 Shared pointer for the PointNeighborSearcher3 type. More...
 
typedef std::shared_ptr< PointNeighborSearcherBuilder3PointNeighborSearcherBuilder3Ptr
 Shared pointer for the PointNeighborSearcherBuilder3 type. More...
 
typedef std::shared_ptr< PointParallelHashGridSearcher2PointParallelHashGridSearcher2Ptr
 Shared pointer for the PointParallelHashGridSearcher2 type. More...
 
typedef std::shared_ptr< PointParallelHashGridSearcher3PointParallelHashGridSearcher3Ptr
 Shared pointer for the PointParallelHashGridSearcher3 type. More...
 
typedef std::shared_ptr< PointParticleEmitter2PointParticleEmitter2Ptr
 Shared pointer for the PointParticleEmitter2 type. More...
 
typedef std::shared_ptr< PointParticleEmitter3PointParticleEmitter3Ptr
 Shared pointer for the PointParticleEmitter3 type. More...
 
typedef std::shared_ptr< PointSimpleListSearcher2PointSimpleListSearcher2Ptr
 Shared pointer for the PointSimpleListSearcher2 type. More...
 
typedef std::shared_ptr< PointSimpleListSearcher3PointSimpleListSearcher3Ptr
 Shared pointer for the PointSimpleListSearcher3 type. More...
 
typedef std::shared_ptr< PointsToImplicit2PointsToImplicit2Ptr
 Shared pointer for the PointsToImplicit2 type. More...
 
typedef std::shared_ptr< PointsToImplicit3PointsToImplicit3Ptr
 Shared pointer for the PointsToImplicit3 type. More...
 
typedef Quaternion< float > QuaternionF
 Float-type quaternion. More...
 
typedef Quaternion< double > QuaternionD
 Double-type quaternion. More...
 
template<typename T >
using Ray2 = Ray< T, 2 >
 Type alias for 2-D ray. More...
 
typedef Ray2< float > Ray2F
 Float-type 2-D ray. More...
 
typedef Ray2< double > Ray2D
 Double-type 2-D ray. More...
 
template<typename T >
using Ray3 = Ray< T, 3 >
 Type alias for 3-D ray. More...
 
typedef Ray3< float > Ray3F
 Float-type 3-D ray. More...
 
typedef Ray3< double > Ray3D
 Double-type 3-D ray. More...
 
typedef std::shared_ptr< RigidBodyCollider2RigidBodyCollider2Ptr
 Shared pointer for the RigidBodyCollider2 type. More...
 
typedef std::shared_ptr< RigidBodyCollider3RigidBodyCollider3Ptr
 Shared pointer for the RigidBodyCollider3 type. More...
 
typedef std::shared_ptr< ScalarField2ScalarField2Ptr
 Shared pointer for the ScalarField2 type. More...
 
typedef std::shared_ptr< ScalarField3ScalarField3Ptr
 Shared pointer for the ScalarField3 type. More...
 
typedef std::shared_ptr< ScalarGrid2ScalarGrid2Ptr
 Shared pointer for the ScalarGrid2 type. More...
 
typedef std::shared_ptr< ScalarGridBuilder2ScalarGridBuilder2Ptr
 Shared pointer for the ScalarGridBuilder2 type. More...
 
typedef std::shared_ptr< ScalarGrid3ScalarGrid3Ptr
 Shared pointer for the ScalarGrid3 type. More...
 
typedef std::shared_ptr< ScalarGridBuilder3ScalarGridBuilder3Ptr
 Shared pointer for the ScalarGridBuilder3 type. More...
 
typedef std::shared_ptr< SemiLagrangian2SemiLagrangian2Ptr
 
typedef std::shared_ptr< SemiLagrangian3SemiLagrangian3Ptr
 
template<size_t N>
using Size = Point< size_t, N >
 N-D size type. More...
 
typedef std::shared_ptr< SphPointsToImplicit2SphPointsToImplicit2Ptr
 Shared pointer type for SphPointsToImplicit2 class. More...
 
typedef std::shared_ptr< SphPointsToImplicit3SphPointsToImplicit3Ptr
 Shared pointer type for SphPointsToImplicit3 class. More...
 
typedef std::shared_ptr< SphSolver2SphSolver2Ptr
 Shared pointer type for the SphSolver2. More...
 
typedef std::shared_ptr< SphSolver3SphSolver3Ptr
 Shared pointer type for the SphSolver3. More...
 
typedef std::shared_ptr< SphSystemData2SphSystemData2Ptr
 Shared pointer for the SphSystemData2 type. More...
 
typedef std::shared_ptr< SphSystemData3SphSystemData3Ptr
 Shared pointer for the SphSystemData3 type. More...
 
typedef std::shared_ptr< Sphere2Sphere2Ptr
 Shared pointer for the Sphere2 type. More...
 
typedef std::shared_ptr< Sphere3Sphere3Ptr
 Shared pointer for the Sphere3 type. More...
 
typedef std::shared_ptr< SphericalPointsToImplicit2SphericalPointsToImplicit2Ptr
 Shared pointer type for SphericalPointsToImplicit2. More...
 
typedef std::shared_ptr< SphericalPointsToImplicit3SphericalPointsToImplicit3Ptr
 Shared pointer type for SphericalPointsToImplicit3. More...
 
typedef std::shared_ptr< Surface2Surface2Ptr
 Shared pointer for the Surface2 type. More...
 
typedef std::shared_ptr< Surface3Surface3Ptr
 Shared pointer for the Surface3 type. More...
 
typedef std::shared_ptr< SurfaceSet2SurfaceSet2Ptr
 Shared pointer for the SurfaceSet2 type. More...
 
typedef std::shared_ptr< SurfaceSet3SurfaceSet3Ptr
 Shared pointer for the SurfaceSet3 type. More...
 
typedef std::shared_ptr< SurfaceToImplicit2SurfaceToImplicit2Ptr
 Shared pointer for the SurfaceToImplicit2 type. More...
 
typedef std::shared_ptr< SurfaceToImplicit3SurfaceToImplicit3Ptr
 Shared pointer for the SurfaceToImplicit3 type. More...
 
typedef std::shared_ptr< Triangle3Triangle3Ptr
 Shared pointer for the Triangle3 type. More...
 
typedef std::shared_ptr< TriangleMesh3TriangleMesh3Ptr
 Shared pointer for the TriangleMesh3 type. More...
 
typedef std::shared_ptr< TrianglePointGeneratorTrianglePointGeneratorPtr
 
typedef std::shared_ptr< UpwindLevelSetSolver2UpwindLevelSetSolver2Ptr
 
typedef std::shared_ptr< UpwindLevelSetSolver3UpwindLevelSetSolver3Ptr
 
template<typename T >
using Vector2 = Vector< T, 2 >
 Type alias for two dimensional vector. More...
 
typedef Vector2< float > Vector2F
 Float-type 2D vector. More...
 
typedef Vector2< double > Vector2D
 Double-type 2D vector. More...
 
template<typename T >
using Vector3 = Vector< T, 3 >
 Type alias for three dimensional vector. More...
 
typedef Vector3< float > Vector3F
 Float-type 3D vector. More...
 
typedef Vector3< double > Vector3D
 Double-type 3D vector. More...
 
template<typename T >
using Vector4 = Vector< T, 4 >
 Type alias for four dimensional vector. More...
 
typedef Vector4< float > Vector4F
 Float-type 4D vector. More...
 
typedef Vector4< double > Vector4D
 Double-type 4D vector. More...
 
template<typename T , typename E , typename U >
using VectorTypeCast = VectorUnaryOp< T, E, TypeCast< U, T > >
 Matrix expression for type casting. More...
 
template<typename T , typename E1 , typename E2 >
using VectorAdd = VectorBinaryOp< T, E1, E2, std::plus< T > >
 Vector-vector addition expression. More...
 
template<typename T , typename E >
using VectorScalarAdd = VectorScalarBinaryOp< T, E, std::plus< T > >
 Vector-scalar addition expression. More...
 
template<typename T , typename E1 , typename E2 >
using VectorSub = VectorBinaryOp< T, E1, E2, std::minus< T > >
 Vector-vector addition expression. More...
 
template<typename T , typename E >
using VectorScalarSub = VectorScalarBinaryOp< T, E, std::minus< T > >
 Vector-scalar subtraction expression. More...
 
template<typename T , typename E >
using VectorScalarRSub = VectorScalarBinaryOp< T, E, RMinus< T > >
 Scalar-vector subtraction expression. More...
 
template<typename T , typename E1 , typename E2 >
using VectorMul = VectorBinaryOp< T, E1, E2, std::multiplies< T > >
 Element-wise vector-vector multiplication expression. More...
 
template<typename T , typename E >
using VectorScalarMul = VectorScalarBinaryOp< T, E, std::multiplies< T > >
 Vector-scalar multiplication expression. More...
 
template<typename T , typename E1 , typename E2 >
using VectorDiv = VectorBinaryOp< T, E1, E2, std::divides< T > >
 Element-wise vector-vector division expression. More...
 
template<typename T , typename E >
using VectorScalarDiv = VectorScalarBinaryOp< T, E, std::divides< T > >
 Vector-scalar division expression. More...
 
template<typename T , typename E >
using VectorScalarRDiv = VectorScalarBinaryOp< T, E, RDivides< T > >
 Scalar-vector division expression. More...
 
typedef std::shared_ptr< VectorField2VectorField2Ptr
 Shared pointer for the VectorField2 type. More...
 
typedef std::shared_ptr< VectorField3VectorField3Ptr
 Shared pointer for the VectorField3 type. More...
 
typedef std::shared_ptr< VectorGrid2VectorGrid2Ptr
 Shared pointer for the VectorGrid2 type. More...
 
typedef std::shared_ptr< VectorGridBuilder2VectorGridBuilder2Ptr
 Shared pointer for the VectorGridBuilder2 type. More...
 
typedef std::shared_ptr< VectorGrid3VectorGrid3Ptr
 Shared pointer for the VectorGrid3 type. More...
 
typedef std::shared_ptr< VectorGridBuilder3VectorGridBuilder3Ptr
 Shared pointer for the VectorGridBuilder3 type. More...
 
typedef VectorN< float > VectorNF
 Float-type N-D vector. More...
 
typedef VectorN< double > VectorND
 Double-type N-D vector. More...
 
typedef std::shared_ptr< VertexCenteredScalarGrid2VertexCenteredScalarGrid2Ptr
 Shared pointer for the VertexCenteredScalarGrid2 type. More...
 
typedef std::shared_ptr< VertexCenteredScalarGrid3VertexCenteredScalarGrid3Ptr
 Shared pointer for the VertexCenteredScalarGrid3 type. More...
 
typedef std::shared_ptr< VertexCenteredVectorGrid2VertexCenteredVectorGrid2Ptr
 Shared pointer for the VertexCenteredVectorGrid2 type. More...
 
typedef std::shared_ptr< VertexCenteredVectorGrid3VertexCenteredVectorGrid3Ptr
 Shared pointer for the VertexCenteredVectorGrid3 type. More...
 
typedef std::shared_ptr< VolumeGridEmitter2VolumeGridEmitter2Ptr
 Shared pointer type for the VolumeGridEmitter2. More...
 
typedef std::shared_ptr< VolumeGridEmitter3VolumeGridEmitter3Ptr
 Shared pointer type for the VolumeGridEmitter3. More...
 
typedef std::shared_ptr< VolumeParticleEmitter2VolumeParticleEmitter2Ptr
 Shared pointer for the VolumeParticleEmitter2 type. More...
 
typedef std::shared_ptr< VolumeParticleEmitter3VolumeParticleEmitter3Ptr
 Shared pointer for the VolumeParticleEmitter3 type. More...
 
typedef std::shared_ptr< ZhuBridsonPointsToImplicit2ZhuBridsonPointsToImplicit2Ptr
 Shared pointer type for ZhuBridsonPointsToImplicit2 class. More...
 
typedef std::shared_ptr< ZhuBridsonPointsToImplicit3ZhuBridsonPointsToImplicit3Ptr
 Shared pointer type for ZhuBridsonPointsToImplicit3 class. More...
 

Enumerations

enum  LoggingLevel : uint8_t {
  LoggingLevel::All = 0, LoggingLevel::Debug = 1, LoggingLevel::Info = 2, LoggingLevel::Warn = 3,
  LoggingLevel::Error = 4, LoggingLevel::Off = 5
}
 
enum  ExecutionPolicy { ExecutionPolicy::kSerial, ExecutionPolicy::kParallel }
 Execution policy tag. More...
 

Functions

template<typename ArrayType , typename T >
void setRange1 (size_t size, const T &value, ArrayType *output)
 Assigns value to 1-D array output with size. More...
 
template<typename ArrayType , typename T >
void setRange1 (size_t begin, size_t end, const T &value, ArrayType *output)
 Assigns value to 1-D array output from begin to end. More...
 
template<typename ArrayType1 , typename ArrayType2 >
void copyRange1 (const ArrayType1 &input, size_t size, ArrayType2 *output)
 Copies input array to output array with size. More...
 
template<typename ArrayType1 , typename ArrayType2 >
void copyRange1 (const ArrayType1 &input, size_t begin, size_t end, ArrayType2 *output)
 Copies input array to output array from begin to end. More...
 
template<typename ArrayType1 , typename ArrayType2 >
void copyRange2 (const ArrayType1 &input, size_t sizeX, size_t sizeY, ArrayType2 *output)
 Copies 2-D input array to output array with sizeX and sizeY. More...
 
template<typename ArrayType1 , typename ArrayType2 >
void copyRange2 (const ArrayType1 &input, size_t beginX, size_t endX, size_t beginY, size_t endY, ArrayType2 *output)
 Copies 2-D input array to output array from (beginX, beginY) to (endX, endY). More...
 
template<typename ArrayType1 , typename ArrayType2 >
void copyRange3 (const ArrayType1 &input, size_t sizeX, size_t sizeY, size_t sizeZ, ArrayType2 *output)
 Copies 3-D input array to output array with sizeX and sizeY. More...
 
template<typename ArrayType1 , typename ArrayType2 >
void copyRange3 (const ArrayType1 &input, size_t beginX, size_t endX, size_t beginY, size_t endY, size_t beginZ, size_t endZ, ArrayType2 *output)
 Copies 3-D input array to output array from (beginX, beginY, beginZ) to (endX, endY, endZ). More...
 
template<typename T >
void extrapolateToRegion (const ConstArrayAccessor2< T > &input, const ConstArrayAccessor2< char > &valid, unsigned int numberOfIterations, ArrayAccessor2< T > output)
 Extrapolates 2-D input data from 'valid' (1) to 'invalid' (0) region. More...
 
template<typename T >
void extrapolateToRegion (const ConstArrayAccessor3< T > &input, const ConstArrayAccessor3< char > &valid, unsigned int numberOfIterations, ArrayAccessor3< T > output)
 Extrapolates 3-D input data from 'valid' (1) to 'invalid' (0) region. More...
 
template<typename ArrayType >
void convertToCsv (const ArrayType &data, std::ostream *strm)
 Converts 2-D array to Comma Separated Value (CSV) stream. More...
 
template<typename BlasType >
void cg (const typename BlasType::MatrixType &A, const typename BlasType::VectorType &b, unsigned int maxNumberOfIterations, double tolerance, typename BlasType::VectorType *x, typename BlasType::VectorType *r, typename BlasType::VectorType *d, typename BlasType::VectorType *q, typename BlasType::VectorType *s, unsigned int *lastNumberOfIterations, double *lastResidualNorm)
 Solves conjugate gradient. More...
 
template<typename BlasType , typename PrecondType >
void pcg (const typename BlasType::MatrixType &A, const typename BlasType::VectorType &b, unsigned int maxNumberOfIterations, double tolerance, PrecondType *M, typename BlasType::VectorType *x, typename BlasType::VectorType *r, typename BlasType::VectorType *d, typename BlasType::VectorType *q, typename BlasType::VectorType *s, unsigned int *lastNumberOfIterations, double *lastResidualNorm)
 Solves pre-conditioned conjugate gradient. More...
 
template<typename T >
constexpr T zero ()
 Zero for type T. More...
 
template<>
constexpr float zero< float > ()
 Zero for float. More...
 
template<>
constexpr double zero< double > ()
 Zero for double. More...
 
template<typename T >
constexpr T one ()
 One for type T. More...
 
template<>
constexpr float one< float > ()
 One for float. More...
 
template<>
constexpr double one< double > ()
 One for double. More...
 
template<typename T >
constexpr T pi ()
 Pi for type T. More...
 
template<>
constexpr float pi< float > ()
 Pi for float. More...
 
template<>
constexpr double pi< double > ()
 Pi for double. More...
 
template<typename T >
constexpr T halfPi ()
 Pi/2 for type T. More...
 
template<>
constexpr float halfPi< float > ()
 Pi/2 for float. More...
 
template<>
constexpr double halfPi< double > ()
 Pi/2 for double. More...
 
template<typename T >
constexpr T quarterPi ()
 Pi/4 for type T. More...
 
template<>
constexpr float quarterPi< float > ()
 Pi/2 for float. More...
 
template<>
constexpr double quarterPi< double > ()
 Pi/2 for double. More...
 
template<typename T >
constexpr T twoPi ()
 2*pi for type T. More...
 
template<>
constexpr float twoPi< float > ()
 2*pi for float. More...
 
template<>
constexpr double twoPi< double > ()
 2*pi for double. More...
 
template<typename T >
constexpr T fourPi ()
 4*pi for type T. More...
 
template<>
constexpr float fourPi< float > ()
 4*pi for float. More...
 
template<>
constexpr double fourPi< double > ()
 4*pi for double. More...
 
template<typename T >
constexpr T invPi ()
 1/pi for type T. More...
 
template<>
constexpr float invPi< float > ()
 1/pi for float. More...
 
template<>
constexpr double invPi< double > ()
 1/pi for double. More...
 
template<typename T >
constexpr T invTwoPi ()
 1/2*pi for type T. More...
 
template<>
constexpr float invTwoPi< float > ()
 1/2*pi for float. More...
 
template<>
constexpr double invTwoPi< double > ()
 1/2*pi for double. More...
 
template<typename T >
constexpr T invFourPi ()
 1/4*pi for type T. More...
 
template<>
constexpr float invFourPi< float > ()
 1/4*pi for float. More...
 
template<>
constexpr double invFourPi< double > ()
 1/4*pi for double. More...
 
template<class ForwardIt , class T , class Compare = std::less<T>>
ForwardIt binaryFind (ForwardIt first, ForwardIt last, const T &value, Compare comp={})
 
Vector2D gradient2 (const ConstArrayAccessor2< double > &data, const Vector2D &gridSpacing, size_t i, size_t j)
 Returns 2-D gradient vector from given 2-D scalar grid-like array data, gridSpacing, and array index (i, j). More...
 
std::array< Vector2D, 2 > gradient2 (const ConstArrayAccessor2< Vector2D > &data, const Vector2D &gridSpacing, size_t i, size_t j)
 Returns 2-D gradient vectors from given 2-D vector grid-like array data, gridSpacing, and array index (i, j). More...
 
Vector3D gradient3 (const ConstArrayAccessor3< double > &data, const Vector3D &gridSpacing, size_t i, size_t j, size_t k)
 Returns 3-D gradient vector from given 3-D scalar grid-like array data, gridSpacing, and array index (i, j, k). More...
 
std::array< Vector3D, 3 > gradient3 (const ConstArrayAccessor3< Vector3D > &data, const Vector3D &gridSpacing, size_t i, size_t j, size_t k)
 Returns 3-D gradient vectors from given 3-D vector grid-like array data, gridSpacing, and array index (i, j, k). More...
 
double laplacian2 (const ConstArrayAccessor2< double > &data, const Vector2D &gridSpacing, size_t i, size_t j)
 Returns Laplacian value from given 2-D scalar grid-like array data, gridSpacing, and array index (i, j). More...
 
Vector2D laplacian2 (const ConstArrayAccessor2< Vector2D > &data, const Vector2D &gridSpacing, size_t i, size_t j)
 Returns 2-D Laplacian vectors from given 2-D vector grid-like array data, gridSpacing, and array index (i, j). More...
 
double laplacian3 (const ConstArrayAccessor3< double > &data, const Vector3D &gridSpacing, size_t i, size_t j, size_t k)
 Returns Laplacian value from given 3-D scalar grid-like array data, gridSpacing, and array index (i, j, k). More...
 
Vector3D laplacian3 (const ConstArrayAccessor3< Vector3D > &data, const Vector3D &gridSpacing, size_t i, size_t j, size_t k)
 Returns 3-D Laplacian vectors from given 3-D vector grid-like array data, gridSpacing, and array index (i, j, k). More...
 
template<typename T >
bool isInsideSdf (T phi)
 Returns true if phi is inside the implicit surface (< 0). More...
 
template<typename T >
smearedHeavisideSdf (T phi)
 Returns smeared Heaviside function. More...
 
template<typename T >
smearedDeltaSdf (T phi)
 Returns smeared delta function. More...
 
template<typename T >
fractionInsideSdf (T phi0, T phi1)
 Returns the fraction occupied by the implicit surface. More...
 
template<typename T >
fractionInside (T phiBottomLeft, T phiBottomRight, T phiTopLeft, T phiTopRight)
 Returns the fraction occupied by the implicit surface. More...
 
void marchingCubes (const ConstArrayAccessor3< double > &grid, const Vector3D &gridSize, const Vector3D &origin, TriangleMesh3 *mesh, double isoValue=0, int bndClose=kDirectionAll, int bndConnectivity=kDirectionNone)
 Computes marching cubes and extract triangle mesh from grid. More...
 
template<typename T >
bool similar (T x, T y, T eps=std::numeric_limits< T >::epsilon())
 Returns true if x and y are similar. More...
 
template<typename T >
sign (T x)
 Returns the sign of the value. More...
 
template<typename T >
min3 (T x, T y, T z)
 Returns the minimum value among three inputs. More...
 
template<typename T >
max3 (T x, T y, T z)
 Returns the maximum value among three inputs. More...
 
template<typename T >
minn (const T *x, size_t n)
 Returns minimum among n-elements. More...
 
template<typename T >
maxn (const T *x, size_t n)
 Returns maximum among n-elements. More...
 
template<typename T >
absmin (T x, T y)
 Returns the absolute minimum value among the two inputs. More...
 
template<typename T >
absmax (T x, T y)
 Returns the absolute maximum value among the two inputs. More...
 
template<typename T >
absminn (const T *x, size_t n)
 Returns absolute minimum among n-elements. More...
 
template<typename T >
absmaxn (const T *x, size_t n)
 Returns absolute maximum among n-elements. More...
 
template<typename T >
size_t argmin2 (T x, T y)
 
template<typename T >
size_t argmax2 (T x, T y)
 
template<typename T >
size_t argmin3 (T x, T y, T z)
 
template<typename T >
size_t argmax3 (T x, T y, T z)
 
template<typename T >
square (T x)
 Returns the square of x. More...
 
template<typename T >
cubic (T x)
 Returns the cubic of x. More...
 
template<typename T >
clamp (T val, T low, T high)
 Returns the clamped value. More...
 
template<typename T >
degreesToRadians (T angleInDegrees)
 Converts degrees to radians. More...
 
template<typename T >
radiansToDegrees (T angleInRadians)
 Converts radians to degrees. More...
 
template<class T >
void getBarycentric (T x, ssize_t iLow, ssize_t iHigh, ssize_t *i, T *t)
 Gets the barycentric coordinate. More...
 
template<typename S , typename T >
lerp (const S &f0, const S &f1, T t)
 Computes linear interpolation. More...
 
template<typename S , typename T >
bilerp (const S &f00, const S &f10, const S &f01, const S &f11, T tx, T ty)
 Computes bilinear interpolation. More...
 
template<typename S , typename T >
trilerp (const S &f000, const S &f100, const S &f010, const S &f110, const S &f001, const S &f101, const S &f011, const S &f111, T tx, T ty, T tz)
 Computes trilinear interpolation. More...
 
template<typename S , typename T >
catmullRom (const S &f0, const S &f1, const S &f2, const S &f3, T t)
 Computes Catmull-Rom interpolation. More...
 
template<typename T >
monotonicCatmullRom (const T &f0, const T &f1, const T &f2, const T &f3, T t)
 Computes monotonic Catmull-Rom interpolation. More...
 
template<typename T >
Matrix2x2< T > operator- (const Matrix2x2< T > &a)
 Returns a matrix with opposite sign. More...
 
template<typename T >
Matrix2x2< T > operator+ (const Matrix2x2< T > &a, const Matrix2x2< T > &b)
 Returns a + b (element-size). More...
 
template<typename T >
Matrix2x2< T > operator+ (const Matrix2x2< T > &a, const T &b)
 Returns a + b', where every element of matrix b' is b. More...
 
template<typename T >
Matrix2x2< T > operator+ (const T &a, const Matrix2x2< T > &b)
 Returns a' + b, where every element of matrix a' is a. More...
 
template<typename T >
Matrix2x2< T > operator- (const Matrix2x2< T > &a, const Matrix2x2< T > &b)
 Returns a - b (element-size). More...
 
template<typename T >
Matrix2x2< T > operator- (const Matrix2x2< T > &a, T b)
 Returns a - b', where every element of matrix b' is b. More...
 
template<typename T >
Matrix2x2< T > operator- (T a, const Matrix2x2< T > &b)
 Returns a' - b, where every element of matrix a' is a. More...
 
template<typename T >
Matrix2x2< T > operator* (const Matrix2x2< T > &a, T b)
 Returns a * b', where every element of matrix b' is b. More...
 
template<typename T >
Matrix2x2< T > operator* (T a, const Matrix2x2< T > &b)
 Returns a' * b, where every element of matrix a' is a. More...
 
template<typename T >
Vector2< T > operator* (const Matrix2x2< T > &a, const Vector2< T > &b)
 Returns a * b. More...
 
template<typename T >
Matrix2x2< T > operator* (const Matrix2x2< T > &a, const Matrix2x2< T > &b)
 Returns a * b. More...
 
template<typename T >
Matrix2x2< T > operator/ (const Matrix2x2< T > &a, T b)
 Returns a' / b, where every element of matrix a' is a. More...
 
template<typename T >
Matrix2x2< T > operator/ (const T &a, const Matrix2x2< T > &b)
 Returns a / b', where every element of matrix b' is b. More...
 
template<typename T >
Matrix3x3< T > operator- (const Matrix3x3< T > &a)
 Returns a matrix with opposite sign. More...
 
template<typename T >
Matrix3x3< T > operator+ (const Matrix3x3< T > &a, const Matrix3x3< T > &b)
 Returns a + b (element-size). More...
 
template<typename T >
Matrix3x3< T > operator+ (const Matrix3x3< T > &a, T b)
 Returns a + b', where every element of matrix b' is b. More...
 
template<typename T >
Matrix3x3< T > operator+ (T a, const Matrix3x3< T > &b)
 Returns a' + b, where every element of matrix a' is a. More...
 
template<typename T >
Matrix3x3< T > operator- (const Matrix3x3< T > &a, const Matrix3x3< T > &b)
 Returns a - b (element-size). More...
 
template<typename T >
Matrix3x3< T > operator- (const Matrix3x3< T > &a, T b)
 Returns a - b', where every element of matrix b' is b. More...
 
template<typename T >
Matrix3x3< T > operator- (T a, const Matrix3x3< T > &b)
 Returns a' - b, where every element of matrix a' is a. More...
 
template<typename T >
Matrix3x3< T > operator* (const Matrix3x3< T > &a, T b)
 Returns a * b', where every element of matrix b' is b. More...
 
template<typename T >
Matrix3x3< T > operator* (T a, const Matrix3x3< T > &b)
 Returns a' * b, where every element of matrix a' is a. More...
 
template<typename T >
Vector3< T > operator* (const Matrix3x3< T > &a, const Vector3< T > &b)
 Returns a * b. More...
 
template<typename T >
Matrix3x3< T > operator* (const Matrix3x3< T > &a, const Matrix3x3< T > &b)
 Returns a * b. More...
 
template<typename T >
Matrix3x3< T > operator/ (const Matrix3x3< T > &a, T b)
 Returns a' / b, where every element of matrix a' is a. More...
 
template<typename T >
Matrix3x3< T > operator/ (T a, const Matrix3x3< T > &b)
 Returns a / b', where every element of matrix b' is b. More...
 
template<typename T >
Matrix4x4< T > operator- (const Matrix4x4< T > &a)
 Returns a matrix with opposite sign. More...
 
template<typename T >
Matrix4x4< T > operator+ (const Matrix4x4< T > &a, const Matrix4x4< T > &b)
 Returns a + b (element-size). More...
 
template<typename T >
Matrix4x4< T > operator+ (const Matrix4x4< T > &a, T b)
 Returns a + b', where every element of matrix b' is b. More...
 
template<typename T >
Matrix4x4< T > operator+ (T a, const Matrix4x4< T > &b)
 Returns a' + b, where every element of matrix a' is a. More...
 
template<typename T >
Matrix4x4< T > operator- (const Matrix4x4< T > &a, const Matrix4x4< T > &b)
 Returns a - b (element-size). More...
 
template<typename T >
Matrix4x4< T > operator- (const Matrix4x4< T > &a, T b)
 Returns a - b', where every element of matrix b' is b. More...
 
template<typename T >
Matrix4x4< T > operator- (T a, const Matrix4x4< T > &b)
 Returns a' - b, where every element of matrix a' is a. More...
 
template<typename T >
Matrix4x4< T > operator* (const Matrix4x4< T > &a, T b)
 Returns a * b', where every element of matrix b' is b. More...
 
template<typename T >
Matrix4x4< T > operator* (T a, const Matrix4x4< T > &b)
 Returns a' * b, where every element of matrix a' is a. More...
 
template<typename T >
Vector3< T > operator* (const Matrix4x4< T > &a, const Vector3< T > &b)
 Returns a * b. More...
 
template<typename T >
Vector4< T > operator* (const Matrix4x4< T > &a, const Vector4< T > &b)
 Returns a * b. More...
 
template<typename T >
Matrix4x4< T > operator* (const Matrix4x4< T > &a, const Matrix3x3< T > &b)
 Returns a * b. More...
 
template<typename T >
Matrix4x4< T > operator* (const Matrix3x3< T > &a, const Matrix4x4< T > &b)
 Returns a * b. More...
 
template<typename T >
Matrix4x4< T > operator* (const Matrix4x4< T > &a, const Matrix4x4< T > &b)
 Returns a * b. More...
 
template<typename T >
Matrix4x4< T > operator/ (const Matrix4x4< T > &a, T b)
 Returns a' / b, where every element of matrix a' is a. More...
 
template<typename T >
Matrix4x4< T > operator/ (const T &a, const Matrix4x4< T > &b)
 Returns a / b', where every element of matrix b' is b. More...
 
template<typename T , typename E >
MatrixScalarMul< T, E > operator- (const MatrixExpression< T, E > &a)
 Returns a matrix with opposite sign. More...
 
template<typename T , typename E1 , typename E2 >
MatrixAdd< T, E1, E2 > operator+ (const MatrixExpression< T, E1 > &a, const MatrixExpression< T, E2 > &b)
 Returns a + b (element-size). More...
 
template<typename T , typename E >
MatrixScalarAdd< T, E > operator+ (const MatrixExpression< T, E > &a, T b)
 Returns a + b', where every element of matrix b' is b. More...
 
template<typename T , typename E >
MatrixScalarAdd< T, E > operator+ (T a, const MatrixExpression< T, E > &b)
 Returns a' + b, where every element of matrix a' is a. More...
 
template<typename T , typename E1 , typename E2 >
MatrixSub< T, E1, E2 > operator- (const MatrixExpression< T, E1 > &a, const MatrixExpression< T, E2 > &b)
 Returns a - b (element-size). More...
 
template<typename T , typename E >
MatrixScalarSub< T, E > operator- (const MatrixExpression< T, E > &a, T b)
 Returns a - b', where every element of matrix b' is b. More...
 
template<typename T , typename E >
MatrixScalarRSub< T, E > operator- (T a, const MatrixExpression< T, E > &b)
 Returns a' - b, where every element of matrix a' is a. More...
 
template<typename T , typename E >
MatrixScalarMul< T, E > operator* (const MatrixExpression< T, E > &a, T b)
 Returns a * b', where every element of matrix b' is b. More...
 
template<typename T , typename E >
MatrixScalarMul< T, E > operator* (T a, const MatrixExpression< T, E > &b)
 Returns a' * b, where every element of matrix a' is a. More...
 
template<typename T , typename ME , typename VE >
MatrixVectorMul< T, ME, VE > operator* (const MatrixExpression< T, ME > &a, const VectorExpression< T, VE > &b)
 Returns a * b. More...
 
template<typename T , typename E1 , typename E2 >
MatrixMul< T, E1, E2 > operator* (const MatrixExpression< T, E1 > &a, const MatrixExpression< T, E2 > &b)
 Returns a * b. More...
 
template<typename T , typename E >
MatrixScalarDiv< T, E > operator/ (const MatrixExpression< T, E > &a, T b)
 Returns a' / b, where every element of matrix a' is a. More...
 
template<typename T , typename E >
MatrixScalarRDiv< T, E > operator/ (T a, const MatrixExpression< T, E > &b)
 Returns a / b', where every element of matrix b' is b. More...
 
template<typename BlasType >
MgResult mgVCycle (const MgMatrix< BlasType > &A, MgParameters< BlasType > params, MgVector< BlasType > *x, MgVector< BlasType > *b, MgVector< BlasType > *buffer)
 Performs Multigrid with V-cycle. More...
 
template<typename RandomIterator , typename T >
void parallelFill (const RandomIterator &begin, const RandomIterator &end, const T &value, ExecutionPolicy policy=ExecutionPolicy::kParallel)
 Fills from begin to end with value in parallel. More...
 
template<typename IndexType , typename Function >
void parallelFor (IndexType beginIndex, IndexType endIndex, const Function &function, ExecutionPolicy policy=ExecutionPolicy::kParallel)
 Makes a for-loop from beginIndex to endIndex in parallel. More...
 
template<typename IndexType , typename Function >
void parallelRangeFor (IndexType beginIndex, IndexType endIndex, const Function &function, ExecutionPolicy policy=ExecutionPolicy::kParallel)
 Makes a range-loop from beginIndex to endIndex in parallel. More...
 
template<typename IndexType , typename Function >
void parallelFor (IndexType beginIndexX, IndexType endIndexX, IndexType beginIndexY, IndexType endIndexY, const Function &function, ExecutionPolicy policy=ExecutionPolicy::kParallel)
 Makes a 2D nested for-loop in parallel. More...
 
template<typename IndexType , typename Function >
void parallelRangeFor (IndexType beginIndexX, IndexType endIndexX, IndexType beginIndexY, IndexType endIndexY, const Function &function, ExecutionPolicy policy=ExecutionPolicy::kParallel)
 Makes a 2D nested range-loop in parallel. More...
 
template<typename IndexType , typename Function >
void parallelFor (IndexType beginIndexX, IndexType endIndexX, IndexType beginIndexY, IndexType endIndexY, IndexType beginIndexZ, IndexType endIndexZ, const Function &function, ExecutionPolicy policy=ExecutionPolicy::kParallel)
 Makes a 3D nested for-loop in parallel. More...
 
template<typename IndexType , typename Function >
void parallelRangeFor (IndexType beginIndexX, IndexType endIndexX, IndexType beginIndexY, IndexType endIndexY, IndexType beginIndexZ, IndexType endIndexZ, const Function &function, ExecutionPolicy policy=ExecutionPolicy::kParallel)
 Makes a 3D nested range-loop in parallel. More...
 
template<typename IndexType , typename Value , typename Function , typename Reduce >
Value parallelReduce (IndexType beginIndex, IndexType endIndex, const Value &identity, const Function &func, const Reduce &reduce, ExecutionPolicy policy=ExecutionPolicy::kParallel)
 Performs reduce operation in parallel. More...
 
template<typename RandomIterator >
void parallelSort (RandomIterator begin, RandomIterator end, ExecutionPolicy policy=ExecutionPolicy::kParallel)
 Sorts a container in parallel. More...
 
template<typename RandomIterator , typename CompareFunction >
void parallelSort (RandomIterator begin, RandomIterator end, CompareFunction compare, ExecutionPolicy policy=ExecutionPolicy::kParallel)
 Sorts a container in parallel with a custom compare function. More...
 
void setMaxNumberOfThreads (unsigned int numThreads)
 Sets maximum number of threads to use. More...
 
unsigned int maxNumberOfThreads ()
 Returns maximum number of threads to use. More...
 
template<typename T >
std::array< T, 2 > upwind1 (T *D0, T dx)
 1-st order upwind differencing. D0[1] is the origin. More...
 
template<typename T >
upwind1 (T *D0, T dx, bool isDirectionPositive)
 1-st order upwind differencing. D0[1] is the origin. More...
 
template<typename T >
cd2 (T *D0, T dx)
 2nd-order central differencing. D0[1] is the origin. More...
 
template<typename T >
std::array< T, 2 > eno3 (T *D0, T dx)
 3rd-order ENO. D0[3] is the origin. More...
 
template<typename T >
eno3 (T *D0, T dx, bool isDirectionPositive)
 3rd-order ENO. D0[3] is the origin. More...
 
template<typename T >
std::array< T, 2 > weno5 (T *v, T h, T eps=1.0e-8)
 5th-order Weno. D0[3] is the origin. More...
 
template<typename T >
weno5 (T *v, T h, bool is_velocity_positive, T eps=1.0e-8)
 5th-order Weno. D0[3] is the origin. More...
 
template<typename T >
Point< T, 2 > operator+ (const Point< T, 2 > &a)
 Positive sign operator. More...
 
template<typename T >
Point2< T > operator- (const Point2< T > &a)
 Negative sign operator. More...
 
template<typename T >
Point2< T > operator+ (T a, const Point2< T > &b)
 Computes (a, a) + (b.x, b.y). More...
 
template<typename T >
Point2< T > operator+ (const Point2< T > &a, const Point2< T > &b)
 Computes (a.x, a.y) + (b.x, b.y). More...
 
template<typename T >
Point2< T > operator- (const Point2< T > &a, T b)
 Computes (a.x, a.y) - (b, b). More...
 
template<typename T >
Point2< T > operator- (T a, const Point2< T > &b)
 Computes (a, a) - (b.x, b.y). More...
 
template<typename T >
Point2< T > operator- (const Point2< T > &a, const Point2< T > &b)
 Computes (a.x, a.y) - (b.x, b.y). More...
 
template<typename T >
Point2< T > operator* (const Point2< T > &a, T b)
 Computes (a.x, a.y) * (b, b). More...
 
template<typename T >
Point2< T > operator* (T a, const Point2< T > &b)
 Computes (a, a) * (b.x, b.y). More...
 
template<typename T >
Point2< T > operator* (const Point2< T > &a, const Point2< T > &b)
 Computes (a.x, a.y) * (b.x, b.y). More...
 
template<typename T >
Point2< T > operator/ (const Point2< T > &a, T b)
 Computes (a.x, a.y) / (b, b). More...
 
template<typename T >
Point2< T > operator/ (T a, const Point2< T > &b)
 Computes (a, a) / (b.x, b.y). More...
 
template<typename T >
Point2< T > operator/ (const Point2< T > &a, const Point2< T > &b)
 Computes (a.x, a.y) / (b.x, b.y). More...
 
template<typename T >
Point2< T > min (const Point2< T > &a, const Point2< T > &b)
 Returns element-wise min point: (min(a.x, b.x), min(a.y, b.y)). More...
 
template<typename T >
Point2< T > max (const Point2< T > &a, const Point2< T > &b)
 Returns element-wise max point: (max(a.x, b.x), max(a.y, b.y)). More...
 
template<typename T >
Point2< T > clamp (const Point2< T > &v, const Point2< T > &low, const Point2< T > &high)
 Returns element-wise clamped point. More...
 
template<typename T >
Point2< T > ceil (const Point2< T > &a)
 Returns element-wise ceiled point. More...
 
template<typename T >
Point2< T > floor (const Point2< T > &a)
 Returns element-wise floored point. More...
 
template<typename T >
Point< T, 3 > operator+ (const Point< T, 3 > &a)
 Positive sign operator. More...
 
template<typename T >
Point3< T > operator- (const Point3< T > &a)
 Negative sign operator. More...
 
template<typename T >
Point3< T > operator+ (T a, const Point3< T > &b)
 Computes (a, a, a) + (b.x, b.y, b.z). More...
 
template<typename T >
Point3< T > operator+ (const Point3< T > &a, const Point3< T > &b)
 Computes (a.x, a.y, a.z) + (b.x, b.y, b.z). More...
 
template<typename T >
Point3< T > operator- (const Point3< T > &a, T b)
 Computes (a.x, a.y, a.z) - (b, b, b). More...
 
template<typename T >
Point3< T > operator- (T a, const Point3< T > &b)
 Computes (a, a, a) - (b.x, b.y, b.z). More...
 
template<typename T >
Point3< T > operator- (const Point3< T > &a, const Point3< T > &b)
 Computes (a.x, a.y, a.z) - (b.x, b.y, b.z). More...
 
template<typename T >
Point3< T > operator* (const Point3< T > &a, T b)
 Computes (a.x, a.y, a.z) * (b, b, b). More...
 
template<typename T >
Point3< T > operator* (T a, const Point3< T > &b)
 Computes (a, a, a) * (b.x, b.y, b.z). More...
 
template<typename T >
Point3< T > operator* (const Point3< T > &a, const Point3< T > &b)
 Computes (a.x, a.y, a.z) * (b.x, b.y, b.z). More...
 
template<typename T >
Point3< T > operator/ (const Point3< T > &a, T b)
 Computes (a.x, a.y, a.z) / (b, b, b). More...
 
template<typename T >
Point3< T > operator/ (T a, const Point3< T > &b)
 Computes (a, a, a) / (b.x, b.y, b.z). More...
 
template<typename T >
Point3< T > operator/ (const Point3< T > &a, const Point3< T > &b)
 Computes (a.x, a.y, a.z) / (b.x, b.y, b.z). More...
 
template<typename T >
Point3< T > min (const Point3< T > &a, const Point3< T > &b)
 Returns element-wise min point. More...
 
template<typename T >
Point3< T > max (const Point3< T > &a, const Point3< T > &b)
 Returns element-wise max point. More...
 
template<typename T >
Point3< T > clamp (const Point3< T > &v, const Point3< T > &low, const Point3< T > &high)
 Returns element-wise clamped point. More...
 
template<typename T >
Point3< T > ceil (const Point3< T > &a)
 Returns element-wise ceiled point. More...
 
template<typename T >
Point3< T > floor (const Point3< T > &a)
 Returns element-wise floored point. More...
 
template<typename T >
Quaternion< T > slerp (const Quaternion< T > &a, const Quaternion< T > &b, T t)
 Computes spherical linear interpolation. More...
 
template<typename T >
Vector< T, 3 > operator* (const Quaternion< T > &q, const Vector< T, 3 > &v)
 Returns quaternion q * vector v. More...
 
template<typename T >
Quaternion< T > operator* (const Quaternion< T > &a, const Quaternion< T > &b)
 Returns quaternion a times quaternion b. More...
 
template<typename T >
Vector3< T > uniformSampleCone (T u1, T u2, const Vector3< T > &axis, T angle)
 Returns randomly sampled direction within a cone. More...
 
template<typename T >
Vector3< T > uniformSampleHemisphere (T u1, T u2, const Vector3< T > &normal)
 Returns randomly sampled point within a unit hemisphere. More...
 
template<typename T >
Vector3< T > cosineWeightedSampleHemisphere (T u1, T u2, const Vector3< T > &normal)
 Returns weighted sampled point on a hemisphere. More...
 
template<typename T >
Vector3< T > uniformSampleSphere (T u1, T u2)
 Returns randomly a point on a sphere. More...
 
template<typename T >
Vector2< T > uniformSampleDisk (T u1, T u2)
 Returns randomly a point on a disk. More...
 
template<typename RandomIterator , typename T >
void serialFill (const RandomIterator &begin, const RandomIterator &end, const T &value)
 Fills from begin to end with value. More...
 
template<typename IndexType , typename Function >
void serialFor (IndexType beginIndex, IndexType endIndex, const Function &function)
 Makes a for-loop from beginIndex to endIndex. More...
 
template<typename IndexType , typename Function >
void serialFor (IndexType beginIndexX, IndexType endIndexX, IndexType beginIndexY, IndexType endIndexY, const Function &function)
 Makes a 2D nested for-loop. More...
 
template<typename IndexType , typename Function >
void serialFor (IndexType beginIndexX, IndexType endIndexX, IndexType beginIndexY, IndexType endIndexY, IndexType beginIndexZ, IndexType endIndexZ, const Function &function)
 Makes a 3D nested for-loop. More...
 
template<typename RandomIterator >
void serialSort (RandomIterator begin, RandomIterator end)
 Sorts a container. More...
 
template<typename RandomIterator , typename SortingFunction >
void serialSort (RandomIterator begin, RandomIterator end, const SortingFunction &sortingFunction)
 Sorts a container with a custom compare function. More...
 
void serialize (const Serializable *serializable, std::vector< uint8_t > *buffer)
 Serializes serializable object. More...
 
void serialize (const uint8_t *data, size_t size, std::vector< uint8_t > *buffer)
 Serializes data chunk using common schema. More...
 
template<typename T >
void serialize (const ConstArrayAccessor1< T > &array, std::vector< uint8_t > *buffer)
 Serializes data chunk using common schema. More...
 
void deserialize (const std::vector< uint8_t > &buffer, Serializable *serializable)
 Deserializes buffer to serializable object. More...
 
void deserialize (const std::vector< uint8_t > &buffer, std::vector< uint8_t > *data)
 Deserializes buffer to data chunk using common schema. More...
 
template<typename T >
void deserialize (const std::vector< uint8_t > &buffer, Array1< T > *array)
 Deserializes buffer to data chunk using common schema. More...
 
Size2 operator+ (const Size2 &a)
 Positive sign operator. More...
 
Size2 operator- (const Size2 &a)
 Negative sign operator. More...
 
Size2 operator+ (size_t a, const Size2 &b)
 Computes (a, a) + (b.x, b.y). More...
 
Size2 operator+ (const Size2 &a, const Size2 &b)
 Computes (a.x, a.y) + (b.x, b.y). More...
 
Size2 operator- (const Size2 &a, size_t b)
 Computes (a.x, a.y) - (b, b). More...
 
Size2 operator- (size_t a, const Size2 &b)
 Computes (a, a) - (b.x, b.y). More...
 
Size2 operator- (const Size2 &a, const Size2 &b)
 Computes (a.x, a.y) - (b.x, b.y). More...
 
Size2 operator* (const Size2 &a, size_t b)
 Computes (a.x, a.y) * (b, b). More...
 
Size2 operator* (size_t a, const Size2 &b)
 Computes (a, a) * (b.x, b.y). More...
 
Size2 operator* (const Size2 &a, const Size2 &b)
 Computes (a.x, a.y) * (b.x, b.y). More...
 
Size2 operator/ (const Size2 &a, size_t b)
 Computes (a.x, a.y) / (b, b). More...
 
Size2 operator/ (size_t a, const Size2 &b)
 Computes (a, a) / (b.x, b.y). More...
 
Size2 operator/ (const Size2 &a, const Size2 &b)
 Computes (a.x, a.y) / (b.x, b.y). More...
 
Size2 min (const Size2 &a, const Size2 &b)
 Returns element-wise min size: (min(a.x, b.x), min(a.y, b.y)). More...
 
Size2 max (const Size2 &a, const Size2 &b)
 Returns element-wise max size: (max(a.x, b.x), max(a.y, b.y)). More...
 
Size2 clamp (const Size2 &v, const Size2 &low, const Size2 &high)
 Returns element-wise clamped size. More...
 
Size2 ceil (const Size2 &a)
 Returns element-wise ceiled size. More...
 
Size2 floor (const Size2 &a)
 Returns element-wise floored size. More...
 
Size3 operator+ (const Size3 &a)
 Positive sign operator. More...
 
Size3 operator- (const Size3 &a)
 Negative sign operator. More...
 
Size3 operator+ (size_t a, const Size3 &b)
 Computes (a, a, a) + (b.x, b.y, b.z). More...
 
Size3 operator+ (const Size3 &a, const Size3 &b)
 Computes (a.x, a.y, a.z) + (b.x, b.y, b.z). More...
 
Size3 operator- (const Size3 &a, size_t b)
 Computes (a.x, a.y, a.z) - (b, b, b). More...
 
Size3 operator- (size_t a, const Size3 &b)
 Computes (a, a, a) - (b.x, b.y, b.z). More...
 
Size3 operator- (const Size3 &a, const Size3 &b)
 Computes (a.x, a.y, a.z) - (b.x, b.y, b.z). More...
 
Size3 operator* (const Size3 &a, size_t b)
 Computes (a.x, a.y, a.z) * (b, b, b). More...
 
Size3 operator* (size_t a, const Size3 &b)
 Computes (a, a, a) * (b.x, b.y, b.z). More...
 
Size3 operator* (const Size3 &a, const Size3 &b)
 Computes (a.x, a.y, a.z) * (b.x, b.y, b.z). More...
 
Size3 operator/ (const Size3 &a, size_t b)
 Computes (a.x, a.y, a.z) / (b, b, b). More...
 
Size3 operator/ (size_t a, const Size3 &b)
 Computes (a, a, a) / (b.x, b.y, b.z). More...
 
Size3 operator/ (const Size3 &a, const Size3 &b)
 Computes (a.x, a.y, a.z) / (b.x, b.y, b.z). More...
 
Size3 min (const Size3 &a, const Size3 &b)
 Returns element-wise min size. More...
 
Size3 max (const Size3 &a, const Size3 &b)
 Returns element-wise max size. More...
 
Size3 clamp (const Size3 &v, const Size3 &low, const Size3 &high)
 Returns element-wise clamped size. More...
 
Size3 ceil (const Size3 &a)
 Returns element-wise ceiled size. More...
 
Size3 floor (const Size3 &a)
 Returns element-wise floored size. More...
 
template<typename T >
void svd (const MatrixMxN< T > &a, MatrixMxN< T > &u, VectorN< T > &w, MatrixMxN< T > &v)
 Singular value decomposition (SVD). More...
 
template<typename T , size_t M, size_t N>
void svd (const Matrix< T, M, N > &a, Matrix< T, M, N > &u, Vector< T, N > &w, Matrix< T, N, N > &v)
 Singular value decomposition (SVD). More...
 
void triangleMeshToSdf (const TriangleMesh3 &mesh, ScalarGrid3 *sdf, const unsigned int exactBand=1)
 Generates signed-distance field out of given triangle mesh. More...
 
template<typename T >
Vector2< T > operator+ (const Vector2< T > &a)
 Positive sign operator. More...
 
template<typename T >
Vector2< T > operator- (const Vector2< T > &a)
 Negative sign operator. More...
 
template<typename T >
Vector2< T > operator+ (T a, const Vector2< T > &b)
 Computes (a, a) + (b.x, b.y). More...
 
template<typename T >
Vector2< T > operator+ (const Vector2< T > &a, const Vector2< T > &b)
 Computes (a.x, a.y) + (b.x, b.y). More...
 
template<typename T >
Vector2< T > operator- (const Vector2< T > &a, T b)
 Computes (a.x, a.y) - (b, b). More...
 
template<typename T >
Vector2< T > operator- (T a, const Vector2< T > &b)
 Computes (a, a) - (b.x, b.y). More...
 
template<typename T >
Vector2< T > operator- (const Vector2< T > &a, const Vector2< T > &b)
 Computes (a.x, a.y) - (b.x, b.y). More...
 
template<typename T >
Vector2< T > operator* (const Vector2< T > &a, T b)
 Computes (a.x, a.y) * (b, b). More...
 
template<typename T >
Vector2< T > operator* (T a, const Vector2< T > &b)
 Computes (a, a) * (b.x, b.y). More...
 
template<typename T >
Vector2< T > operator* (const Vector2< T > &a, const Vector2< T > &b)
 Computes (a.x, a.y) * (b.x, b.y). More...
 
template<typename T >
Vector2< T > operator/ (const Vector2< T > &a, T b)
 Computes (a.x, a.y) / (b, b). More...
 
template<typename T >
Vector2< T > operator/ (T a, const Vector2< T > &b)
 Computes (a, a) / (b.x, b.y). More...
 
template<typename T >
Vector2< T > operator/ (const Vector2< T > &a, const Vector2< T > &b)
 Computes (a.x, a.y) / (b.x, b.y). More...
 
template<typename T >
Vector2< T > min (const Vector2< T > &a, const Vector2< T > &b)
 Returns element-wise min vector: (min(a.x, b.x), min(a.y, b.y)). More...
 
template<typename T >
Vector2< T > max (const Vector2< T > &a, const Vector2< T > &b)
 Returns element-wise max vector: (max(a.x, b.x), max(a.y, b.y)). More...
 
template<typename T >
Vector2< T > clamp (const Vector2< T > &v, const Vector2< T > &low, const Vector2< T > &high)
 Returns element-wise clamped vector. More...
 
template<typename T >
Vector2< T > ceil (const Vector2< T > &a)
 Returns element-wise ceiled vector. More...
 
template<typename T >
Vector2< T > floor (const Vector2< T > &a)
 Returns element-wise floored vector. More...
 
template<>
constexpr Vector2F zero< Vector2F > ()
 Returns float-type zero vector. More...
 
template<>
constexpr Vector2D zero< Vector2D > ()
 Returns double-type zero vector. More...
 
template<typename T >
Vector2< T > monotonicCatmullRom (const Vector2< T > &v0, const Vector2< T > &v1, const Vector2< T > &v2, const Vector2< T > &v3, T f)
 Computes monotonic Catmull-Rom interpolation. More...
 
template<typename T >
Vector3< T > operator+ (const Vector3< T > &a)
 Positive sign operator. More...
 
template<typename T >
Vector3< T > operator- (const Vector3< T > &a)
 Negative sign operator. More...
 
template<typename T >
Vector3< T > operator+ (T a, const Vector3< T > &b)
 Computes (a, a, a) + (b.x, b.y, b.z). More...
 
template<typename T >
Vector3< T > operator+ (const Vector3< T > &a, const Vector3< T > &b)
 Computes (a.x, a.y, a.z) + (b.x, b.y, b.z). More...
 
template<typename T >
Vector3< T > operator- (const Vector3< T > &a, T b)
 Computes (a.x, a.y, a.z) - (b, b, b). More...
 
template<typename T >
Vector3< T > operator- (T a, const Vector3< T > &b)
 Computes (a, a, a) - (b.x, b.y, b.z). More...
 
template<typename T >
Vector3< T > operator- (const Vector3< T > &a, const Vector3< T > &b)
 Computes (a.x, a.y, a.z) - (b.x, b.y, b.z). More...
 
template<typename T >
Vector3< T > operator* (const Vector3< T > &a, T b)
 Computes (a.x, a.y, a.z) * (b, b, b). More...
 
template<typename T >
Vector3< T > operator* (T a, const Vector3< T > &b)
 Computes (a, a, a) * (b.x, b.y, b.z). More...
 
template<typename T >
Vector3< T > operator* (const Vector3< T > &a, const Vector3< T > &b)
 Computes (a.x, a.y, a.z) * (b.x, b.y, b.z). More...
 
template<typename T >
Vector3< T > operator/ (const Vector3< T > &a, T b)
 Computes (a.x, a.y, a.z) / (b, b, b). More...
 
template<typename T >
Vector3< T > operator/ (T a, const Vector3< T > &b)
 Computes (a, a, a) / (b.x, b.y, b.z). More...
 
template<typename T >
Vector3< T > operator/ (const Vector3< T > &a, const Vector3< T > &b)
 Computes (a.x, a.y, a.z) / (b.x, b.y, b.z). More...
 
template<typename T >
Vector3< T > min (const Vector3< T > &a, const Vector3< T > &b)
 Returns element-wise min vector. More...
 
template<typename T >
Vector3< T > max (const Vector3< T > &a, const Vector3< T > &b)
 Returns element-wise max vector. More...
 
template<typename T >
Vector3< T > clamp (const Vector3< T > &v, const Vector3< T > &low, const Vector3< T > &high)
 Returns element-wise clamped vector. More...
 
template<typename T >
Vector3< T > ceil (const Vector3< T > &a)
 Returns element-wise ceiled vector. More...
 
template<typename T >
Vector3< T > floor (const Vector3< T > &a)
 Returns element-wise floored vector. More...
 
template<>
constexpr Vector3F zero< Vector3F > ()
 Returns float-type zero vector. More...
 
template<>
constexpr Vector3D zero< Vector3D > ()
 Returns double-type zero vector. More...
 
template<typename T >
Vector3< T > monotonicCatmullRom (const Vector3< T > &v0, const Vector3< T > &v1, const Vector3< T > &v2, const Vector3< T > &v3, T f)
 Computes monotonic Catmull-Rom interpolation. More...
 
template<typename T >
Vector4< T > operator+ (const Vector4< T > &a)
 Positive sign operator. More...
 
template<typename T >
Vector4< T > operator- (const Vector4< T > &a)
 Negative sign operator. More...
 
template<typename T >
Vector4< T > operator+ (T a, const Vector4< T > &b)
 Computes (a, a, a, a) + (b.x, b.y, b.z, b.w). More...
 
template<typename T >
Vector4< T > operator+ (const Vector4< T > &a, T b)
 Computes (a.x, a.y, a.z, a.w) + (b, b, b, b). More...
 
template<typename T >
Vector4< T > operator+ (const Vector4< T > &a, const Vector4< T > &b)
 Computes (a.x, a.y, a.z, a.w) + (b.x, b.y, b.z, b.w). More...
 
template<typename T >
Vector4< T > operator- (const Vector4< T > &a, T b)
 Computes (a.x, a.y, a.z, a.w) - (b, b, b, b). More...
 
template<typename T >
Vector4< T > operator- (T a, const Vector4< T > &b)
 Computes (a, a, a, a) - (b.x, b.y, b.z, b.w). More...
 
template<typename T >
Vector4< T > operator- (const Vector4< T > &a, const Vector4< T > &b)
 Computes (a.x, a.y, a.z, a.w) - (b.x, b.y, b.z, b.w). More...
 
template<typename T >
Vector4< T > operator* (const Vector4< T > &a, T b)
 Computes (a.x, a.y, a.z, a.w) * (b, b, b, b). More...
 
template<typename T >
Vector4< T > operator* (T a, const Vector4< T > &b)
 Computes (a, a, a, a) * (b.x, b.y, b.z, b.w). More...
 
template<typename T >
Vector4< T > operator* (const Vector4< T > &a, const Vector4< T > &b)
 Computes (a.x, a.y, a.z, a.w) * (b.x, b.y, b.z, b.w). More...
 
template<typename T >
Vector4< T > operator/ (const Vector4< T > &a, T b)
 Computes (a.x, a.y, a.z, a.w) / (b, b, b, b). More...
 
template<typename T >
Vector4< T > operator/ (T a, const Vector4< T > &b)
 Computes (a, a, a, a) / (b.x, b.y, b.z, b.w). More...
 
template<typename T >
Vector4< T > operator/ (const Vector4< T > &a, const Vector4< T > &b)
 Computes (a.x, a.y, a.z, a.w) / (b.x, b.y, b.z, b.w). More...
 
template<typename T >
Vector4< T > min (const Vector4< T > &a, const Vector4< T > &b)
 Returns element-wise min vector. More...
 
template<typename T >
Vector4< T > max (const Vector4< T > &a, const Vector4< T > &b)
 Returns element-wise max vector. More...
 
template<typename T >
Vector4< T > clamp (const Vector4< T > &v, const Vector4< T > &low, const Vector4< T > &high)
 Returns element-wise clamped vector. More...
 
template<typename T >
Vector4< T > ceil (const Vector4< T > &a)
 Returns element-wise ceiled vector. More...
 
template<typename T >
Vector4< T > floor (const Vector4< T > &a)
 Returns element-wise floored vector. More...
 
template<>
constexpr Vector4F zero< Vector4F > ()
 Returns float-type zero vector. More...
 
template<>
constexpr Vector4D zero< Vector4D > ()
 Returns double-type zero vector. More...
 
template<typename T >
Vector4< T > monotonicCatmullRom (const Vector4< T > &v0, const Vector4< T > &v1, const Vector4< T > &v2, const Vector4< T > &v3, T f)
 Computes monotonic Catmull-Rom interpolation. More...
 
template<typename T , typename E >
VectorScalarAdd< T, E > operator+ (const T &a, const VectorExpression< T, E > &b)
 Scalar-vector addition operation. More...
 
template<typename T , typename E >
VectorScalarAdd< T, E > operator+ (const VectorExpression< T, E > &a, const T &b)
 Vector-scalar addition operation. More...
 
template<typename T , typename E1 , typename E2 >
VectorAdd< T, E1, E2 > operator+ (const VectorExpression< T, E1 > &a, const VectorExpression< T, E2 > &b)
 Vector-vector addition operation. More...
 
template<typename T , typename E >
VectorScalarRSub< T, E > operator- (const T &a, const VectorExpression< T, E > &b)
 Scalar-vector subtraction operation. More...
 
template<typename T , typename E >
VectorScalarSub< T, E > operator- (const VectorExpression< T, E > &a, const T &b)
 Scalar-vector addition operation. More...
 
template<typename T , typename E1 , typename E2 >
VectorSub< T, E1, E2 > operator- (const VectorExpression< T, E1 > &a, const VectorExpression< T, E2 > &b)
 Vector-vector addition operation. More...
 
template<typename T , typename E >
VectorScalarMul< T, E > operator* (const T &a, const VectorExpression< T, E > &b)
 Scalar-vector multiplication operation. More...
 
template<typename T , typename E >
VectorScalarMul< T, E > operator* (const VectorExpression< T, E > &a, const T &b)
 Vector-scalar multiplication operation. More...
 
template<typename T , typename E1 , typename E2 >
VectorMul< T, E1, E2 > operator* (const VectorExpression< T, E1 > &a, const VectorExpression< T, E2 > &b)
 Element-wise vector-vector multiplication operation. More...
 
template<typename T , typename E >
VectorScalarRDiv< T, E > operator/ (const T &a, const VectorExpression< T, E > &b)
 Scalar-vector division operation. More...
 
template<typename T , typename E >
VectorScalarDiv< T, E > operator/ (const VectorExpression< T, E > &a, const T &b)
 Vector-scalar division operation. More...
 
template<typename T , typename E1 , typename E2 >
VectorDiv< T, E1, E2 > operator/ (const VectorExpression< T, E1 > &a, const VectorExpression< T, E2 > &b)
 Element-wise vector-vector division operation. More...
 

Variables

constexpr size_t kZeroSize = 0
 Zero size_t. More...
 
constexpr ssize_t kZeroSSize = 0
 Zero ssize_t. More...
 
constexpr size_t kOneSize = 1
 One size_t. More...
 
constexpr ssize_t kOneSSize = 1
 One ssize_t. More...
 
constexpr float kEpsilonF = std::numeric_limits<float>::epsilon()
 Float-type epsilon. More...
 
constexpr double kEpsilonD = std::numeric_limits<double>::epsilon()
 Double-type epsilon. More...
 
constexpr size_t kMaxSize = std::numeric_limits<size_t>::max()
 Max size_t. More...
 
constexpr ssize_t kMaxSSize = std::numeric_limits<ssize_t>::max()
 Max ssize_t. More...
 
constexpr float kMaxF = std::numeric_limits<float>::max()
 Max float. More...
 
constexpr double kMaxD = std::numeric_limits<double>::max()
 Max double. More...
 
constexpr float kPiF = 3.14159265358979323846264338327950288f
 Float-type pi. More...
 
constexpr double kPiD = 3.14159265358979323846264338327950288
 Double-type pi. More...
 
constexpr float kHalfPiF = 1.57079632679489661923132169163975144f
 Float-type pi/2. More...
 
constexpr double kHalfPiD = 1.57079632679489661923132169163975144
 Double-type pi/2. More...
 
constexpr float kQuarterPiF = 0.785398163397448309615660845819875721f
 Float-type pi/4. More...
 
constexpr double kQuarterPiD = 0.785398163397448309615660845819875721
 Double-type pi/4. More...
 
constexpr float kTwoPiF = static_cast<float>(2.0 * kPiD)
 Float-type 2*pi. More...
 
constexpr double kTwoPiD = 2.0 * kPiD
 Double-type 2*pi. More...
 
constexpr float kFourPiF = static_cast<float>(4.0 * kPiD)
 Float-type 4*pi. More...
 
constexpr double kFourPiD = 4.0 * kPiD
 Double-type 4*pi. More...
 
constexpr float kInvPiF = static_cast<float>(1.0 / kPiD)
 Float-type 1/pi. More...
 
constexpr double kInvPiD = 1.0 / kPiD
 Double-type 1/pi. More...
 
constexpr float kInvTwoPiF = static_cast<float>(0.5 / kPiD)
 Float-type 1/2*pi. More...
 
constexpr double kInvTwoPiD = 0.5 / kPiD
 Double-type 1/2*pi. More...
 
constexpr float kInvFourPiF = static_cast<float>(0.25 / kPiD)
 Float-type 1/4*pi. More...
 
constexpr double kInvFourPiD = 0.25 / kPiD
 Double-type 1/4*pi. More...
 
constexpr double kGravity = -9.8
 Gravity. More...
 
constexpr double kWaterDensity = 1000.0
 Water density. More...
 
constexpr double kSpeedOfSoundInWater = 1482.0
 Speed of sound in water at 20 degrees celcius. More...
 
constexpr int kDirectionNone = 0
 No direction. More...
 
constexpr int kDirectionLeft = 1 << 0
 Left direction. More...
 
constexpr int kDirectionRight = 1 << 1
 RIght direction. More...
 
constexpr int kDirectionDown = 1 << 2
 Down direction. More...
 
constexpr int kDirectionUp = 1 << 3
 Up direction. More...
 
constexpr int kDirectionBack = 1 << 4
 Back direction. More...
 
constexpr int kDirectionFront = 1 << 5
 Front direction. More...
 
constexpr int kDirectionAll
 All direction. More...
 
Logger infoLogger
 Info-level logger. More...
 
Logger warnLogger
 Warn-level logger. More...
 
Logger errorLogger
 Error-level logger. More...
 
Logger debugLogger
 Debug-level logger. More...
 

Typedef Documentation

◆ AdvectionSolver2Ptr

typedef std::shared_ptr<AdvectionSolver2> jet::AdvectionSolver2Ptr

Shared pointer type for the 2-D advection solver.

◆ AdvectionSolver3Ptr

typedef std::shared_ptr<AdvectionSolver3> jet::AdvectionSolver3Ptr

Shared pointer type for the 3-D advection solver.

◆ AnimationPtr

typedef std::shared_ptr<Animation> jet::AnimationPtr

Shared pointer for the Animation type.

◆ AnisotropicPointsToImplicit2Ptr

Shared pointer for the AnisotropicPointsToImplicit2 type.

◆ AnisotropicPointsToImplicit3Ptr

Shared pointer for the AnisotropicPointsToImplicit3 type.

◆ ApicSolver2Ptr

typedef std::shared_ptr<ApicSolver2> jet::ApicSolver2Ptr

Shared pointer type for the ApicSolver2.

◆ ApicSolver3Ptr

typedef std::shared_ptr<ApicSolver3> jet::ApicSolver3Ptr

Shared pointer type for the ApicSolver3.

◆ Array1

template<typename T >
using jet::Array1 = typedef Array<T, 1>

Type alias for 1-D array.

◆ Array2

template<typename T >
using jet::Array2 = typedef Array<T, 2>

Type alias for 2-D array.

◆ Array3

template<typename T >
using jet::Array3 = typedef Array<T, 3>

Type alias for 3-D array.

◆ ArrayAccessor1

template<typename T >
using jet::ArrayAccessor1 = typedef ArrayAccessor<T, 1>

Type alias for 1-D array accessor.

◆ ArrayAccessor2

template<typename T >
using jet::ArrayAccessor2 = typedef ArrayAccessor<T, 2>

Type alias for 2-D array accessor.

◆ ArrayAccessor3

template<typename T >
using jet::ArrayAccessor3 = typedef ArrayAccessor<T, 3>

Type alias for 3-D array accessor.

◆ BccLatticePointGeneratorPtr

Shared pointer type for the BccLatticePointGenerator.

◆ BoundingBox2

template<typename T >
using jet::BoundingBox2 = typedef BoundingBox<T, 2>

Type alias for 2-D BoundingBox.

◆ BoundingBox2D

Double-type 2-D BoundingBox.

◆ BoundingBox2F

Float-type 2-D BoundingBox.

◆ BoundingBox3

template<typename T >
using jet::BoundingBox3 = typedef BoundingBox<T, 3>

Type alias for 3-D BoundingBox.

◆ BoundingBox3D

Double-type 3-D BoundingBox.

◆ BoundingBox3F

Float-type 3-D BoundingBox.

◆ BoundingBoxRayIntersection2D

Double-type 2-D box-ray intersection result.

◆ BoundingBoxRayIntersection2F

Float-type 2-D box-ray intersection result.

◆ BoundingBoxRayIntersection3D

Double-type 3-D box-ray intersection result.

◆ BoundingBoxRayIntersection3F

Float-type 3-D box-ray intersection result.

◆ Box2Ptr

typedef std::shared_ptr<Box2> jet::Box2Ptr

Shared pointer type for the Box2.

◆ Box3Ptr

typedef std::shared_ptr<Box3> jet::Box3Ptr

Shared pointer type for the Box3.

◆ BoxIntersectionTestFunc2

template<typename T >
using jet::BoxIntersectionTestFunc2 = typedef std::function<bool(const T&, const BoundingBox2D&)>

Box-item intersection test function.

◆ BoxIntersectionTestFunc3

template<typename T >
using jet::BoxIntersectionTestFunc3 = typedef std::function<bool(const T&, const BoundingBox3D&)>

Box-item intersection test function.

◆ CellCenteredScalarGrid2Ptr

Shared pointer for the CellCenteredScalarGrid2 type.

◆ CellCenteredScalarGrid3Ptr

Shared pointer for the CellCenteredScalarGrid3 type.

◆ CellCenteredVectorGrid2Ptr

Shared pointer for the CellCenteredVectorGrid2 type.

◆ CellCenteredVectorGrid3Ptr

Shared pointer for the CellCenteredVectorGrid3 type.

◆ ClosestIntersectionDistanceFunc2

template<typename T >
using jet::ClosestIntersectionDistanceFunc2 = typedef std::function<double(const T&, const Vector2D&)>

Closest intersection distance measure function.

◆ ClosestIntersectionDistanceFunc3

template<typename T >
using jet::ClosestIntersectionDistanceFunc3 = typedef std::function<double(const T&, const Vector3D&)>

Closest intersection distance measure function.

◆ Collider2Ptr

typedef std::shared_ptr<Collider2> jet::Collider2Ptr

Shared pointer type for the Collider2.

◆ Collider3Ptr

typedef std::shared_ptr<Collider3> jet::Collider3Ptr

Shared pointer type for the Collider2.

◆ ColliderSet2Ptr

typedef std::shared_ptr<ColliderSet2> jet::ColliderSet2Ptr

Shared pointer for the ColliderSet2 type.

◆ ColliderSet3Ptr

typedef std::shared_ptr<ColliderSet3> jet::ColliderSet3Ptr

Shared pointer for the ColliderSet3 type.

◆ CollocatedVectorGrid2Ptr

Shared pointer for the CollocatedVectorGrid2 type.

◆ CollocatedVectorGrid3Ptr

Shared pointer for the CollocatedVectorGrid3 type.

◆ ConstantScalarField2Ptr

Shared pointer for the ConstantScalarField2 type.

◆ ConstantScalarField3Ptr

Shared pointer for the ConstantScalarField3 type.

◆ ConstantVectorField2Ptr

Shared pointer for the ConstantVectorField2 type.

◆ ConstantVectorField3Ptr

Shared pointer for the ConstantVectorField3 type.

◆ ConstArrayAccessor1

template<typename T >
using jet::ConstArrayAccessor1 = typedef ConstArrayAccessor<T, 1>

Type alias for 1-D const array accessor.

◆ ConstArrayAccessor2

template<typename T >
using jet::ConstArrayAccessor2 = typedef ConstArrayAccessor<T, 2>

Type alias for 2-D const array accessor.

◆ ConstArrayAccessor3

template<typename T >
using jet::ConstArrayAccessor3 = typedef ConstArrayAccessor<T, 3>

Type alias for 3-D const array accessor.

◆ CubicArraySampler1

template<typename T , typename R >
using jet::CubicArraySampler1 = typedef CubicArraySampler<T, R, 1>

Type alias for 1-D cubic array sampler.

◆ CubicArraySampler2

template<typename T , typename R >
using jet::CubicArraySampler2 = typedef CubicArraySampler<T, R, 2>

Type alias for 2-D cubic array sampler.

◆ CubicArraySampler3

template<typename T , typename R >
using jet::CubicArraySampler3 = typedef CubicArraySampler<T, R, 3>

Type alias for 3-D cubic array sampler.

◆ CubicSemiLagrangian2Ptr

◆ CubicSemiLagrangian3Ptr

◆ CustomImplicitSurface2Ptr

Shared pointer type for the CustomImplicitSurface2.

◆ CustomImplicitSurface3Ptr

Shared pointer type for the CustomImplicitSurface3.

◆ CustomScalarField2Ptr

Shared pointer type for the CustomScalarField2.

◆ CustomScalarField3Ptr

Shared pointer type for the CustomScalarField3.

◆ CustomVectorField2Ptr

Shared pointer type for the CustomVectorField2.

◆ CustomVectorField3Ptr

Shared pointer type for the CustomVectorField3.

◆ Cylinder3Ptr

typedef std::shared_ptr<Cylinder3> jet::Cylinder3Ptr

Shared pointer type for the Cylinder3.

◆ EnoLevelSetSolver2Ptr

◆ EnoLevelSetSolver3Ptr

◆ FaceCenteredGrid2Ptr

typedef std::shared_ptr<FaceCenteredGrid2> jet::FaceCenteredGrid2Ptr

Shared pointer type for the FaceCenteredGrid2.

◆ FaceCenteredGrid3Ptr

typedef std::shared_ptr<FaceCenteredGrid3> jet::FaceCenteredGrid3Ptr

Shared pointer type for the FaceCenteredGrid3.

◆ FccLatticePointGeneratorPtr

Shared pointer type for the FccLatticePointGenerator.

◆ FdmCgSolver2Ptr

typedef std::shared_ptr<FdmCgSolver2> jet::FdmCgSolver2Ptr

Shared pointer type for the FdmCgSolver2.

◆ FdmCgSolver3Ptr

typedef std::shared_ptr<FdmCgSolver3> jet::FdmCgSolver3Ptr

Shared pointer type for the FdmCgSolver3.

◆ FdmGaussSeidelSolver2Ptr

Shared pointer type for the FdmGaussSeidelSolver2.

◆ FdmGaussSeidelSolver3Ptr

Shared pointer type for the FdmGaussSeidelSolver3.

◆ FdmIccgSolver2Ptr

typedef std::shared_ptr<FdmIccgSolver2> jet::FdmIccgSolver2Ptr

Shared pointer type for the FdmIccgSolver2.

◆ FdmIccgSolver3Ptr

typedef std::shared_ptr<FdmIccgSolver3> jet::FdmIccgSolver3Ptr

Shared pointer type for the FdmIccgSolver3.

◆ FdmJacobiSolver2Ptr

typedef std::shared_ptr<FdmJacobiSolver2> jet::FdmJacobiSolver2Ptr

Shared pointer type for the FdmJacobiSolver2.

◆ FdmJacobiSolver3Ptr

typedef std::shared_ptr<FdmJacobiSolver3> jet::FdmJacobiSolver3Ptr

Shared pointer type for the FdmJacobiSolver3.

◆ FdmLinearSystemSolver2Ptr

Shared pointer type for the FdmLinearSystemSolver2.

◆ FdmLinearSystemSolver3Ptr

Shared pointer type for the FdmLinearSystemSolver3.

◆ FdmMatrix2

Matrix type for 2-D finite differencing.

◆ FdmMatrix3

Matrix type for 3-D finite differencing.

◆ FdmMgMatrix2

Multigrid-style 2-D FDM matrix.

◆ FdmMgMatrix3

Multigrid-style 3-D FDM matrix.

◆ FdmMgpcgSolver2Ptr

typedef std::shared_ptr<FdmMgpcgSolver2> jet::FdmMgpcgSolver2Ptr

Shared pointer type for the FdmMgpcgSolver2.

◆ FdmMgpcgSolver3Ptr

typedef std::shared_ptr<FdmMgpcgSolver3> jet::FdmMgpcgSolver3Ptr

Shared pointer type for the FdmMgpcgSolver3.

◆ FdmMgSolver2Ptr

typedef std::shared_ptr<FdmMgSolver2> jet::FdmMgSolver2Ptr

Shared pointer type for the FdmMgSolver2.

◆ FdmMgSolver3Ptr

typedef std::shared_ptr<FdmMgSolver3> jet::FdmMgSolver3Ptr

Shared pointer type for the FdmMgSolver3.

◆ FdmMgVector2

Multigrid-style 2-D FDM vector.

◆ FdmMgVector3

Multigrid-style 3-D FDM vector.

◆ FdmVector2

typedef Array2<double> jet::FdmVector2

Vector type for 2-D finite differencing.

◆ FdmVector3

typedef Array3<double> jet::FdmVector3

Vector type for 3-D finite differencing.

◆ Field2Ptr

typedef std::shared_ptr<Field2> jet::Field2Ptr

◆ Field3Ptr

typedef std::shared_ptr<Field3> jet::Field3Ptr

◆ FlipSolver2Ptr

typedef std::shared_ptr<FlipSolver2> jet::FlipSolver2Ptr

Shared pointer type for the FlipSolver2.

◆ FlipSolver3Ptr

typedef std::shared_ptr<FlipSolver3> jet::FlipSolver3Ptr

Shared pointer type for the FlipSolver3.

◆ FmmLevelSetSolver2Ptr

Shared pointer type for the FmmLevelSetSolver2.

◆ FmmLevelSetSolver3Ptr

Shared pointer type for the FmmLevelSetSolver3.

◆ GetRayIntersectionFunc2

template<typename T >
using jet::GetRayIntersectionFunc2 = typedef std::function<double(const T&, const Ray2D&)>

Ray-item closest intersection evaluation function.

◆ GetRayIntersectionFunc3

template<typename T >
using jet::GetRayIntersectionFunc3 = typedef std::function<double(const T&, const Ray3D&)>

Ray-item closest intersection evaluation function.

◆ Grid2Ptr

typedef std::shared_ptr<Grid2> jet::Grid2Ptr

◆ Grid3Ptr

typedef std::shared_ptr<Grid3> jet::Grid3Ptr

◆ GridBackwardEulerDiffusionSolver2Ptr

Shared pointer type for the GridBackwardEulerDiffusionSolver2.

◆ GridBackwardEulerDiffusionSolver3Ptr

Shared pointer type for the GridBackwardEulerDiffusionSolver3.

◆ GridBlockedBoundaryConditionSolver2Ptr

Shared pointer type for the GridBlockedBoundaryConditionSolver2.

◆ GridBlockedBoundaryConditionSolver3Ptr

Shared pointer type for the GridBlockedBoundaryConditionSolver3.

◆ GridBoundaryConditionSolver2Ptr

Shared pointer type for the GridBoundaryConditionSolver2.

◆ GridBoundaryConditionSolver3Ptr

Shared pointer type for the GridBoundaryConditionSolver3.

◆ GridDiffusionSolver2Ptr

Shared pointer type for the GridDiffusionSolver2.

◆ GridDiffusionSolver3Ptr

Shared pointer type for the GridDiffusionSolver3.

◆ GridEmitter2Ptr

typedef std::shared_ptr<GridEmitter2> jet::GridEmitter2Ptr

Shared pointer type for the GridEmitter2.

◆ GridEmitter3Ptr

typedef std::shared_ptr<GridEmitter3> jet::GridEmitter3Ptr

Shared pointer type for the GridEmitter3.

◆ GridEmitterSet2Ptr

typedef std::shared_ptr<GridEmitterSet2> jet::GridEmitterSet2Ptr

Shared pointer type for the GridEmitterSet2.

◆ GridEmitterSet3Ptr

typedef std::shared_ptr<GridEmitterSet3> jet::GridEmitterSet3Ptr

Shared pointer type for the GridEmitterSet3.

◆ GridFluidSolver2Ptr

typedef std::shared_ptr<GridFluidSolver2> jet::GridFluidSolver2Ptr

Shared pointer type for the GridFluidSolver2.

◆ GridFluidSolver3Ptr

typedef std::shared_ptr<GridFluidSolver3> jet::GridFluidSolver3Ptr

Shared pointer type for the GridFluidSolver3.

◆ GridForwardEulerDiffusionSolver2Ptr

Shared pointer type for the GridForwardEulerDiffusionSolver2.

◆ GridForwardEulerDiffusionSolver3Ptr

Shared pointer type for the GridForwardEulerDiffusionSolver3.

◆ GridFractionalBoundaryConditionSolver2Ptr

Shared pointer type for the GridFractionalBoundaryConditionSolver2.

◆ GridFractionalBoundaryConditionSolver3Ptr

Shared pointer type for the GridFractionalBoundaryConditionSolver3.

◆ GridFractionalSinglePhasePressureSolver2Ptr

Shared pointer type for the GridFractionalSinglePhasePressureSolver2.

◆ GridFractionalSinglePhasePressureSolver3Ptr

Shared pointer type for the GridFractionalSinglePhasePressureSolver3.

◆ GridPointGenerator2Ptr

Shared pointer type for the GridPointGenerator2.

◆ GridPointGenerator3Ptr

Shared pointer type for the GridPointGenerator3.

◆ GridPressureSolver2Ptr

Shared pointer type for the GridPressureSolver2.

◆ GridPressureSolver3Ptr

Shared pointer type for the GridPressureSolver3.

◆ GridSinglePhasePressureSolver2Ptr

Shared pointer type for the GridSinglePhasePressureSolver2.

◆ GridSinglePhasePressureSolver3Ptr

Shared pointer type for the GridSinglePhasePressureSolver3.

◆ GridSmokeSolver2Ptr

typedef std::shared_ptr<GridSmokeSolver2> jet::GridSmokeSolver2Ptr

Shared pointer type for the GridSmokeSolver2.

◆ GridSmokeSolver3Ptr

typedef std::shared_ptr<GridSmokeSolver3> jet::GridSmokeSolver3Ptr

Shared pointer type for the GridSmokeSolver3.

◆ GridSystemData2Ptr

typedef std::shared_ptr<GridSystemData2> jet::GridSystemData2Ptr

Shared pointer type of GridSystemData2.

◆ GridSystemData3Ptr

typedef std::shared_ptr<GridSystemData3> jet::GridSystemData3Ptr

Shared pointer type of GridSystemData3.

◆ ImplicitSurface2Ptr

typedef std::shared_ptr<ImplicitSurface2> jet::ImplicitSurface2Ptr

Shared pointer type for the ImplicitSurface2.

◆ ImplicitSurface3Ptr

typedef std::shared_ptr<ImplicitSurface3> jet::ImplicitSurface3Ptr

Shared pointer type for the ImplicitSurface3.

◆ ImplicitSurfaceSet2Ptr

Shared pointer type for the ImplicitSurfaceSet2.

◆ ImplicitSurfaceSet3Ptr

Shared pointer type for the ImplicitSurfaceSet3.

◆ ImplicitTriangleMesh3Ptr

Shared pointer for the ImplicitTriangleMesh3 type.

◆ IntersectionVisitorFunc2

template<typename T >
using jet::IntersectionVisitorFunc2 = typedef std::function<void(const T&)>

Visitor function which is invoked for each intersecting item.

◆ IntersectionVisitorFunc3

template<typename T >
using jet::IntersectionVisitorFunc3 = typedef std::function<void(const T&)>

Visitor function which is invoked for each intersecting item.

◆ IterativeLevelSetSolver2Ptr

◆ IterativeLevelSetSolver3Ptr

◆ LevelSetLiquidSolver2Ptr

Shared pointer type for the LevelSetLiquidSolver2.

◆ LevelSetLiquidSolver3Ptr

Shared pointer type for the LevelSetLiquidSolver3.

◆ LevelSetSolver2Ptr

typedef std::shared_ptr<LevelSetSolver2> jet::LevelSetSolver2Ptr

Shared pointer type for the LevelSetSolver2.

◆ LevelSetSolver3Ptr

typedef std::shared_ptr<LevelSetSolver3> jet::LevelSetSolver3Ptr

Shared pointer type for the LevelSetSolver3.

◆ LinearArraySampler1

template<typename T , typename R >
using jet::LinearArraySampler1 = typedef LinearArraySampler<T, R, 1>

Type alias for 1-D linear array sampler.

◆ LinearArraySampler2

template<typename T , typename R >
using jet::LinearArraySampler2 = typedef LinearArraySampler<T, R, 2>

Type alias for 2-D linear array sampler.

◆ LinearArraySampler3

template<typename T , typename R >
using jet::LinearArraySampler3 = typedef LinearArraySampler<T, R, 3>

Type alias for 3-D linear array sampler.

◆ Matrix2x2

template<typename T >
using jet::Matrix2x2 = typedef Matrix<T, 2, 2>

Type alias for 2x2 matrix.

◆ Matrix2x2D

typedef Matrix2x2<double> jet::Matrix2x2D

Double-type 2x2 matrix.

◆ Matrix2x2F

typedef Matrix2x2<float> jet::Matrix2x2F

Float-type 2x2 matrix.

◆ Matrix3x3

template<typename T >
using jet::Matrix3x3 = typedef Matrix<T, 3, 3>

Type alias for 3x3 matrix.

◆ Matrix3x3D

typedef Matrix3x3<double> jet::Matrix3x3D

Double-type 3x3 matrix.

◆ Matrix3x3F

typedef Matrix3x3<float> jet::Matrix3x3F

Float-type 3x3 matrix.

◆ Matrix4x4

template<typename T >
using jet::Matrix4x4 = typedef Matrix<T, 4, 4>

Type alias for 4x4 matrix.

◆ Matrix4x4D

typedef Matrix4x4<double> jet::Matrix4x4D

Double-type 4x4 matrix.

◆ Matrix4x4F

typedef Matrix4x4<float> jet::Matrix4x4F

Float-type 4x4 matrix.

◆ MatrixAdd

template<typename T , typename E1 , typename E2 >
using jet::MatrixAdd = typedef MatrixBinaryOp<T, E1, E2, std::plus<T> >

Matrix-matrix addition expression.

◆ MatrixCsrD

typedef MatrixCsr<double> jet::MatrixCsrD

Double-type CSR matrix.

◆ MatrixCsrF

typedef MatrixCsr<float> jet::MatrixCsrF

Float-type CSR matrix.

◆ MatrixMxND

typedef MatrixMxN<double> jet::MatrixMxND

Double-type M x N matrix.

◆ MatrixMxNF

typedef MatrixMxN<float> jet::MatrixMxNF

Float-type M x N matrix.

◆ MatrixScalarAdd

template<typename T , typename E >
using jet::MatrixScalarAdd = typedef MatrixScalarBinaryOp<T, E, std::plus<T> >

Matrix-scalar addition expression.

◆ MatrixScalarDiv

template<typename T , typename E >
using jet::MatrixScalarDiv = typedef MatrixScalarBinaryOp<T, E, std::divides<T> >

Matrix-scalar division expression.

◆ MatrixScalarMul

template<typename T , typename E >
using jet::MatrixScalarMul = typedef MatrixScalarBinaryOp<T, E, std::multiplies<T> >

Matrix-scalar multiplication expression.

◆ MatrixScalarRDiv

template<typename T , typename E >
using jet::MatrixScalarRDiv = typedef MatrixScalarBinaryOp<T, E, RDivides<T> >

Matrix-scalar division expression with inversed order.

◆ MatrixScalarRSub

template<typename T , typename E >
using jet::MatrixScalarRSub = typedef MatrixScalarBinaryOp<T, E, RMinus<T> >

Matrix-matrix subtraction expression with inversed order.

◆ MatrixScalarSub

template<typename T , typename E >
using jet::MatrixScalarSub = typedef MatrixScalarBinaryOp<T, E, std::minus<T> >

Matrix-scalar subtraction expression.

◆ MatrixSub

template<typename T , typename E1 , typename E2 >
using jet::MatrixSub = typedef MatrixBinaryOp<T, E1, E2, std::minus<T> >

Matrix-matrix subtraction expression.

◆ MatrixTypeCast

template<typename T , typename E , typename U >
using jet::MatrixTypeCast = typedef MatrixUnaryOp<T, E, TypeCast<U, T> >

Matrix expression for type casting.

◆ MgCorrectFunc

template<typename BlasType >
using jet::MgCorrectFunc = typedef std::function<void(const typename BlasType::VectorType& coarser, typename BlasType::VectorType* finer)>

Multigrid correction function type.

◆ MgRelaxFunc

template<typename BlasType >
using jet::MgRelaxFunc = typedef std::function<void( const typename BlasType::MatrixType& A, const typename BlasType::VectorType& b, unsigned int numberOfIterations, double maxTolerance, typename BlasType::VectorType* x, typename BlasType::VectorType* buffer)>

Multigrid relax function type.

◆ MgRestrictFunc

template<typename BlasType >
using jet::MgRestrictFunc = typedef std::function<void(const typename BlasType::VectorType& finer, typename BlasType::VectorType* coarser)>

Multigrid restriction function type.

◆ NearestArraySampler1

template<typename T , typename R >
using jet::NearestArraySampler1 = typedef NearestArraySampler<T, R, 1>

Type alias for 1-D nearest array sampler.

◆ NearestArraySampler2

template<typename T , typename R >
using jet::NearestArraySampler2 = typedef NearestArraySampler<T, R, 2>

Type alias for 2-D nearest array sampler.

◆ NearestArraySampler3

template<typename T , typename R >
using jet::NearestArraySampler3 = typedef NearestArraySampler<T, R, 3>

Type alias for 3-D nearest array sampler.

◆ NearestNeighborDistanceFunc2

template<typename T >
using jet::NearestNeighborDistanceFunc2 = typedef std::function<double(const T&, const Vector2D&)>

Nearest neighbor distance measure function.

◆ NearestNeighborDistanceFunc3

template<typename T >
using jet::NearestNeighborDistanceFunc3 = typedef std::function<double(const T&, const Vector3D&)>

Nearest neighbor distance measure function.

◆ ParticleEmitter2Ptr

typedef std::shared_ptr<ParticleEmitter2> jet::ParticleEmitter2Ptr

Shared pointer for the ParticleEmitter2 type.

◆ ParticleEmitter3Ptr

typedef std::shared_ptr<ParticleEmitter3> jet::ParticleEmitter3Ptr

Shared pointer for the ParticleEmitter3 type.

◆ ParticleEmitterSet2Ptr

Shared pointer type for the ParticleEmitterSet2.

◆ ParticleEmitterSet3Ptr

Shared pointer type for the ParticleEmitterSet3.

◆ ParticleSystemData2Ptr

Shared pointer type of ParticleSystemData2.

◆ ParticleSystemData3Ptr

Shared pointer type of ParticleSystemData3.

◆ ParticleSystemSolver2Ptr

Shared pointer type for the ParticleSystemSolver2.

◆ ParticleSystemSolver3Ptr

Shared pointer type for the ParticleSystemSolver3.

◆ PciSphSolver2Ptr

typedef std::shared_ptr<PciSphSolver2> jet::PciSphSolver2Ptr

Shared pointer type for the PciSphSolver2.

◆ PciSphSolver3Ptr

typedef std::shared_ptr<PciSphSolver3> jet::PciSphSolver3Ptr

Shared pointer type for the PciSphSolver3.

◆ PhysicsAnimationPtr

typedef std::shared_ptr<PhysicsAnimation> jet::PhysicsAnimationPtr

◆ PicSolver2Ptr

typedef std::shared_ptr<PicSolver2> jet::PicSolver2Ptr

Shared pointer type for the PicSolver2.

◆ PicSolver3Ptr

typedef std::shared_ptr<PicSolver3> jet::PicSolver3Ptr

Shared pointer type for the PicSolver3.

◆ Plane2Ptr

typedef std::shared_ptr<Plane2> jet::Plane2Ptr

Shared pointer for the Plane2 type.

◆ Plane3Ptr

typedef std::shared_ptr<Plane3> jet::Plane3Ptr

Shared pointer for the Plane3 type.

◆ Point2

template<typename T >
using jet::Point2 = typedef Point<T, 2>

Type alias for two dimensional point.

◆ Point2D

typedef Point2<double> jet::Point2D

Double-type 2D point.

◆ Point2F

typedef Point2<float> jet::Point2F

Float-type 2D point.

◆ Point2I

typedef Point2<ssize_t> jet::Point2I

Integer-type 2D point.

◆ Point2UI

typedef Point2<size_t> jet::Point2UI

Unsigned integer-type 2D point.

◆ Point3

template<typename T >
using jet::Point3 = typedef Point<T, 3>

Type alias for three dimensional point.

◆ Point3D

typedef Point3<double> jet::Point3D

Double-type 3D point.

◆ Point3F

typedef Point3<float> jet::Point3F

Float-type 3D point.

◆ Point3I

typedef Point3<ssize_t> jet::Point3I

Integer-type 3D point.

◆ Point3UI

typedef Point3<size_t> jet::Point3UI

Unsigned integer-type 3D point.

◆ PointGenerator2Ptr

typedef std::shared_ptr<PointGenerator2> jet::PointGenerator2Ptr

Shared pointer for the PointGenerator2 type.

◆ PointGenerator3Ptr

typedef std::shared_ptr<PointGenerator3> jet::PointGenerator3Ptr

Shared pointer for the PointGenerator3 type.

◆ PointHashGridSearcher2Ptr

Shared pointer for the PointHashGridSearcher2 type.

◆ PointHashGridSearcher3Ptr

Shared pointer for the PointHashGridSearcher3 type.

◆ PointKdTreeSearcher2Ptr

Shared pointer for the PointKdTreeSearcher2 type.

◆ PointKdTreeSearcher3Ptr

Shared pointer for the PointKdTreeSearcher3 type.

◆ PointNeighborSearcher2Ptr

Shared pointer for the PointNeighborSearcher2 type.

◆ PointNeighborSearcher3Ptr

Shared pointer for the PointNeighborSearcher3 type.

◆ PointNeighborSearcherBuilder2Ptr

Shared pointer for the PointNeighborSearcherBuilder2 type.

◆ PointNeighborSearcherBuilder3Ptr

Shared pointer for the PointNeighborSearcherBuilder3 type.

◆ PointParallelHashGridSearcher2Ptr

Shared pointer for the PointParallelHashGridSearcher2 type.

◆ PointParallelHashGridSearcher3Ptr

Shared pointer for the PointParallelHashGridSearcher3 type.

◆ PointParticleEmitter2Ptr

Shared pointer for the PointParticleEmitter2 type.

◆ PointParticleEmitter3Ptr

Shared pointer for the PointParticleEmitter3 type.

◆ PointSimpleListSearcher2Ptr

Shared pointer for the PointSimpleListSearcher2 type.

◆ PointSimpleListSearcher3Ptr

Shared pointer for the PointSimpleListSearcher3 type.

◆ PointsToImplicit2Ptr

typedef std::shared_ptr<PointsToImplicit2> jet::PointsToImplicit2Ptr

Shared pointer for the PointsToImplicit2 type.

◆ PointsToImplicit3Ptr

typedef std::shared_ptr<PointsToImplicit3> jet::PointsToImplicit3Ptr

Shared pointer for the PointsToImplicit3 type.

◆ QuaternionD

typedef Quaternion<double> jet::QuaternionD

Double-type quaternion.

◆ QuaternionF

typedef Quaternion<float> jet::QuaternionF

Float-type quaternion.

◆ Ray2

template<typename T >
using jet::Ray2 = typedef Ray<T, 2>

Type alias for 2-D ray.

◆ Ray2D

typedef Ray2<double> jet::Ray2D

Double-type 2-D ray.

◆ Ray2F

typedef Ray2<float> jet::Ray2F

Float-type 2-D ray.

◆ Ray3

template<typename T >
using jet::Ray3 = typedef Ray<T, 3>

Type alias for 3-D ray.

◆ Ray3D

typedef Ray3<double> jet::Ray3D

Double-type 3-D ray.

◆ Ray3F

typedef Ray3<float> jet::Ray3F

Float-type 3-D ray.

◆ RayIntersectionTestFunc2

template<typename T >
using jet::RayIntersectionTestFunc2 = typedef std::function<bool(const T&, const Ray2D&)>

Ray-item intersection test function.

◆ RayIntersectionTestFunc3

template<typename T >
using jet::RayIntersectionTestFunc3 = typedef std::function<bool(const T&, const Ray3D&)>

Ray-item intersection test function.

◆ RigidBodyCollider2Ptr

Shared pointer for the RigidBodyCollider2 type.

◆ RigidBodyCollider3Ptr

Shared pointer for the RigidBodyCollider3 type.

◆ ScalarField2Ptr

typedef std::shared_ptr<ScalarField2> jet::ScalarField2Ptr

Shared pointer for the ScalarField2 type.

◆ ScalarField3Ptr

typedef std::shared_ptr<ScalarField3> jet::ScalarField3Ptr

Shared pointer for the ScalarField3 type.

◆ ScalarGrid2Ptr

typedef std::shared_ptr<ScalarGrid2> jet::ScalarGrid2Ptr

Shared pointer for the ScalarGrid2 type.

◆ ScalarGrid3Ptr

typedef std::shared_ptr<ScalarGrid3> jet::ScalarGrid3Ptr

Shared pointer for the ScalarGrid3 type.

◆ ScalarGridBuilder2Ptr

Shared pointer for the ScalarGridBuilder2 type.

◆ ScalarGridBuilder3Ptr

Shared pointer for the ScalarGridBuilder3 type.

◆ SemiLagrangian2Ptr

typedef std::shared_ptr<SemiLagrangian2> jet::SemiLagrangian2Ptr

◆ SemiLagrangian3Ptr

typedef std::shared_ptr<SemiLagrangian3> jet::SemiLagrangian3Ptr

◆ Size

template<size_t N>
using jet::Size = typedef Point<size_t, N>

N-D size type.

◆ Sphere2Ptr

typedef std::shared_ptr<Sphere2> jet::Sphere2Ptr

Shared pointer for the Sphere2 type.

◆ Sphere3Ptr

typedef std::shared_ptr<Sphere3> jet::Sphere3Ptr

Shared pointer for the Sphere3 type.

◆ SphericalPointsToImplicit2Ptr

Shared pointer type for SphericalPointsToImplicit2.

◆ SphericalPointsToImplicit3Ptr

Shared pointer type for SphericalPointsToImplicit3.

◆ SphPointsToImplicit2Ptr

Shared pointer type for SphPointsToImplicit2 class.

◆ SphPointsToImplicit3Ptr

Shared pointer type for SphPointsToImplicit3 class.

◆ SphSolver2Ptr

typedef std::shared_ptr<SphSolver2> jet::SphSolver2Ptr

Shared pointer type for the SphSolver2.

◆ SphSolver3Ptr

typedef std::shared_ptr<SphSolver3> jet::SphSolver3Ptr

Shared pointer type for the SphSolver3.

◆ SphSystemData2Ptr

typedef std::shared_ptr<SphSystemData2> jet::SphSystemData2Ptr

Shared pointer for the SphSystemData2 type.

◆ SphSystemData3Ptr

typedef std::shared_ptr<SphSystemData3> jet::SphSystemData3Ptr

Shared pointer for the SphSystemData3 type.

◆ Surface2Ptr

typedef std::shared_ptr<Surface2> jet::Surface2Ptr

Shared pointer for the Surface2 type.

◆ Surface3Ptr

typedef std::shared_ptr<Surface3> jet::Surface3Ptr

Shared pointer for the Surface3 type.

◆ SurfaceSet2Ptr

typedef std::shared_ptr<SurfaceSet2> jet::SurfaceSet2Ptr

Shared pointer for the SurfaceSet2 type.

◆ SurfaceSet3Ptr

typedef std::shared_ptr<SurfaceSet3> jet::SurfaceSet3Ptr

Shared pointer for the SurfaceSet3 type.

◆ SurfaceToImplicit2Ptr

Shared pointer for the SurfaceToImplicit2 type.

◆ SurfaceToImplicit3Ptr

Shared pointer for the SurfaceToImplicit3 type.

◆ Triangle3Ptr

typedef std::shared_ptr<Triangle3> jet::Triangle3Ptr

Shared pointer for the Triangle3 type.

◆ TriangleMesh3Ptr

typedef std::shared_ptr<TriangleMesh3> jet::TriangleMesh3Ptr

Shared pointer for the TriangleMesh3 type.

◆ TrianglePointGeneratorPtr

◆ UpwindLevelSetSolver2Ptr

◆ UpwindLevelSetSolver3Ptr

◆ Vector2

template<typename T >
using jet::Vector2 = typedef Vector<T, 2>

Type alias for two dimensional vector.

◆ Vector2D

typedef Vector2<double> jet::Vector2D

Double-type 2D vector.

◆ Vector2F

typedef Vector2<float> jet::Vector2F

Float-type 2D vector.

◆ Vector3

template<typename T >
using jet::Vector3 = typedef Vector<T, 3>

Type alias for three dimensional vector.

◆ Vector3D

typedef Vector3<double> jet::Vector3D

Double-type 3D vector.

◆ Vector3F

typedef Vector3<float> jet::Vector3F

Float-type 3D vector.

◆ Vector4

template<typename T >
using jet::Vector4 = typedef Vector<T, 4>

Type alias for four dimensional vector.

◆ Vector4D

typedef Vector4<double> jet::Vector4D

Double-type 4D vector.

◆ Vector4F

typedef Vector4<float> jet::Vector4F

Float-type 4D vector.

◆ VectorAdd

template<typename T , typename E1 , typename E2 >
using jet::VectorAdd = typedef VectorBinaryOp<T, E1, E2, std::plus<T> >

Vector-vector addition expression.

◆ VectorDiv

template<typename T , typename E1 , typename E2 >
using jet::VectorDiv = typedef VectorBinaryOp<T, E1, E2, std::divides<T> >

Element-wise vector-vector division expression.

◆ VectorField2Ptr

typedef std::shared_ptr<VectorField2> jet::VectorField2Ptr

Shared pointer for the VectorField2 type.

◆ VectorField3Ptr

typedef std::shared_ptr<VectorField3> jet::VectorField3Ptr

Shared pointer for the VectorField3 type.

◆ VectorGrid2Ptr

typedef std::shared_ptr<VectorGrid2> jet::VectorGrid2Ptr

Shared pointer for the VectorGrid2 type.

◆ VectorGrid3Ptr

typedef std::shared_ptr<VectorGrid3> jet::VectorGrid3Ptr

Shared pointer for the VectorGrid3 type.

◆ VectorGridBuilder2Ptr

Shared pointer for the VectorGridBuilder2 type.

◆ VectorGridBuilder3Ptr

Shared pointer for the VectorGridBuilder3 type.

◆ VectorMul

template<typename T , typename E1 , typename E2 >
using jet::VectorMul = typedef VectorBinaryOp<T, E1, E2, std::multiplies<T> >

Element-wise vector-vector multiplication expression.

◆ VectorND

typedef VectorN<double> jet::VectorND

Double-type N-D vector.

◆ VectorNF

typedef VectorN<float> jet::VectorNF

Float-type N-D vector.

◆ VectorScalarAdd

template<typename T , typename E >
using jet::VectorScalarAdd = typedef VectorScalarBinaryOp<T, E, std::plus<T> >

Vector-scalar addition expression.

◆ VectorScalarDiv

template<typename T , typename E >
using jet::VectorScalarDiv = typedef VectorScalarBinaryOp<T, E, std::divides<T> >

Vector-scalar division expression.

◆ VectorScalarMul

template<typename T , typename E >
using jet::VectorScalarMul = typedef VectorScalarBinaryOp<T, E, std::multiplies<T> >

Vector-scalar multiplication expression.

◆ VectorScalarRDiv

template<typename T , typename E >
using jet::VectorScalarRDiv = typedef VectorScalarBinaryOp<T, E, RDivides<T> >

Scalar-vector division expression.

◆ VectorScalarRSub

template<typename T , typename E >
using jet::VectorScalarRSub = typedef VectorScalarBinaryOp<T, E, RMinus<T> >

Scalar-vector subtraction expression.

◆ VectorScalarSub

template<typename T , typename E >
using jet::VectorScalarSub = typedef VectorScalarBinaryOp<T, E, std::minus<T> >

Vector-scalar subtraction expression.

◆ VectorSub

template<typename T , typename E1 , typename E2 >
using jet::VectorSub = typedef VectorBinaryOp<T, E1, E2, std::minus<T> >

Vector-vector addition expression.

◆ VectorTypeCast

template<typename T , typename E , typename U >
using jet::VectorTypeCast = typedef VectorUnaryOp<T, E, TypeCast<U, T> >

Matrix expression for type casting.

◆ VertexCenteredScalarGrid2Ptr

Shared pointer for the VertexCenteredScalarGrid2 type.

◆ VertexCenteredScalarGrid3Ptr

Shared pointer for the VertexCenteredScalarGrid3 type.

◆ VertexCenteredVectorGrid2Ptr

Shared pointer for the VertexCenteredVectorGrid2 type.

◆ VertexCenteredVectorGrid3Ptr

Shared pointer for the VertexCenteredVectorGrid3 type.

◆ VolumeGridEmitter2Ptr

Shared pointer type for the VolumeGridEmitter2.

◆ VolumeGridEmitter3Ptr

Shared pointer type for the VolumeGridEmitter3.

◆ VolumeParticleEmitter2Ptr

Shared pointer for the VolumeParticleEmitter2 type.

◆ VolumeParticleEmitter3Ptr

Shared pointer for the VolumeParticleEmitter3 type.

◆ ZhuBridsonPointsToImplicit2Ptr

Shared pointer type for ZhuBridsonPointsToImplicit2 class.

◆ ZhuBridsonPointsToImplicit3Ptr

Shared pointer type for ZhuBridsonPointsToImplicit3 class.

Enumeration Type Documentation

◆ ExecutionPolicy

enum jet::ExecutionPolicy
strong

Execution policy tag.

Enumerator
kSerial 
kParallel 

◆ LoggingLevel

enum jet::LoggingLevel : uint8_t
strong

Level of the logging. All < Debug < Info < Warn < Error < Off.

Enumerator
All 
Debug 
Info 
Warn 
Error 
Off 

Function Documentation

◆ absmax()

template<typename T >
T jet::absmax ( x,
y 
)
inline

Returns the absolute maximum value among the two inputs.

Parameters
[in]xThe first value.
[in]yThe second value.
Template Parameters
TValue type.
Returns
The absolute maximum.

◆ absmaxn()

template<typename T >
T jet::absmaxn ( const T *  x,
size_t  n 
)
inline

Returns absolute maximum among n-elements.

◆ absmin()

template<typename T >
T jet::absmin ( x,
y 
)
inline

Returns the absolute minimum value among the two inputs.

Parameters
[in]xThe first value.
[in]yThe second value.
Template Parameters
TValue type.
Returns
The absolute minimum.

◆ absminn()

template<typename T >
T jet::absminn ( const T *  x,
size_t  n 
)
inline

Returns absolute minimum among n-elements.

◆ argmax2()

template<typename T >
size_t jet::argmax2 ( x,
y 
)
inline

◆ argmax3()

template<typename T >
size_t jet::argmax3 ( x,
y,
z 
)
inline

◆ argmin2()

template<typename T >
size_t jet::argmin2 ( x,
y 
)
inline

◆ argmin3()

template<typename T >
size_t jet::argmin3 ( x,
y,
z 
)
inline

◆ bilerp()

template<typename S , typename T >
S jet::bilerp ( const S &  f00,
const S &  f10,
const S &  f01,
const S &  f11,
tx,
ty 
)
inline

Computes bilinear interpolation.

◆ binaryFind()

template<class ForwardIt , class T , class Compare = std::less<T>>
ForwardIt jet::binaryFind ( ForwardIt  first,
ForwardIt  last,
const T &  value,
Compare  comp = {} 
)

◆ catmullRom()

template<typename S , typename T >
S jet::catmullRom ( const S &  f0,
const S &  f1,
const S &  f2,
const S &  f3,
t 
)
inline

Computes Catmull-Rom interpolation.

◆ cd2()

template<typename T >
T jet::cd2 ( T *  D0,
dx 
)

2nd-order central differencing. D0[1] is the origin.

|------|------|
D0[0] D0[1] D0[2]

◆ ceil() [1/7]

template<typename T >
Point2<T> jet::ceil ( const Point2< T > &  a)

Returns element-wise ceiled point.

◆ ceil() [2/7]

template<typename T >
Point3<T> jet::ceil ( const Point3< T > &  a)

Returns element-wise ceiled point.

◆ ceil() [3/7]

Size2 jet::ceil ( const Size2 a)

Returns element-wise ceiled size.

◆ ceil() [4/7]

Size3 jet::ceil ( const Size3 a)

Returns element-wise ceiled size.

◆ ceil() [5/7]

template<typename T >
Vector2<T> jet::ceil ( const Vector2< T > &  a)

Returns element-wise ceiled vector.

◆ ceil() [6/7]

template<typename T >
Vector3<T> jet::ceil ( const Vector3< T > &  a)

Returns element-wise ceiled vector.

◆ ceil() [7/7]

template<typename T >
Vector4<T> jet::ceil ( const Vector4< T > &  a)

Returns element-wise ceiled vector.

◆ cg()

template<typename BlasType >
void jet::cg ( const typename BlasType::MatrixType &  A,
const typename BlasType::VectorType &  b,
unsigned int  maxNumberOfIterations,
double  tolerance,
typename BlasType::VectorType *  x,
typename BlasType::VectorType *  r,
typename BlasType::VectorType *  d,
typename BlasType::VectorType *  q,
typename BlasType::VectorType *  s,
unsigned int *  lastNumberOfIterations,
double *  lastResidualNorm 
)

Solves conjugate gradient.

◆ clamp() [1/8]

template<typename T >
Point2<T> jet::clamp ( const Point2< T > &  v,
const Point2< T > &  low,
const Point2< T > &  high 
)

Returns element-wise clamped point.

◆ clamp() [2/8]

template<typename T >
Point3<T> jet::clamp ( const Point3< T > &  v,
const Point3< T > &  low,
const Point3< T > &  high 
)

Returns element-wise clamped point.

◆ clamp() [3/8]

Size2 jet::clamp ( const Size2 v,
const Size2 low,
const Size2 high 
)

Returns element-wise clamped size.

◆ clamp() [4/8]

Size3 jet::clamp ( const Size3 v,
const Size3 low,
const Size3 high 
)

Returns element-wise clamped size.

◆ clamp() [5/8]

template<typename T >
Vector2<T> jet::clamp ( const Vector2< T > &  v,
const Vector2< T > &  low,
const Vector2< T > &  high 
)

Returns element-wise clamped vector.

◆ clamp() [6/8]

template<typename T >
Vector3<T> jet::clamp ( const Vector3< T > &  v,
const Vector3< T > &  low,
const Vector3< T > &  high 
)

Returns element-wise clamped vector.

◆ clamp() [7/8]

template<typename T >
Vector4<T> jet::clamp ( const Vector4< T > &  v,
const Vector4< T > &  low,
const Vector4< T > &  high 
)

Returns element-wise clamped vector.

◆ clamp() [8/8]

template<typename T >
T jet::clamp ( val,
low,
high 
)
inline

Returns the clamped value.

Parameters
[in]valThe value.
[in]lowThe low value.
[in]highThe high value.
Template Parameters
TValue type.
Returns
The clamped value.

◆ convertToCsv()

template<typename ArrayType >
void jet::convertToCsv ( const ArrayType &  data,
std::ostream *  strm 
)

Converts 2-D array to Comma Separated Value (CSV) stream.

Parameters
data- data to convert
strm- stream object to write CSV

◆ copyRange1() [1/2]

template<typename ArrayType1 , typename ArrayType2 >
void jet::copyRange1 ( const ArrayType1 &  input,
size_t  begin,
size_t  end,
ArrayType2 *  output 
)

Copies input array to output array from begin to end.

This function copies input array to output array from begin to end. The input and output array must support random access operator [].

◆ copyRange1() [2/2]

template<typename ArrayType1 , typename ArrayType2 >
void jet::copyRange1 ( const ArrayType1 &  input,
size_t  size,
ArrayType2 *  output 
)

Copies input array to output array with size.

This function copies input array to output array with size. The input and output array must support random access operator [].

◆ copyRange2() [1/2]

template<typename ArrayType1 , typename ArrayType2 >
void jet::copyRange2 ( const ArrayType1 &  input,
size_t  beginX,
size_t  endX,
size_t  beginY,
size_t  endY,
ArrayType2 *  output 
)

Copies 2-D input array to output array from (beginX, beginY) to (endX, endY).

This function copies 2-D input array to output array from (beginX, beginY) to (endX, endY). The input and output array must support 2-D random access operator (i, j).

◆ copyRange2() [2/2]

template<typename ArrayType1 , typename ArrayType2 >
void jet::copyRange2 ( const ArrayType1 &  input,
size_t  sizeX,
size_t  sizeY,
ArrayType2 *  output 
)

Copies 2-D input array to output array with sizeX and sizeY.

This function copies 2-D input array to output array with sizeX and sizeY. The input and output array must support 2-D random access operator (i, j).

◆ copyRange3() [1/2]

template<typename ArrayType1 , typename ArrayType2 >
void jet::copyRange3 ( const ArrayType1 &  input,
size_t  beginX,
size_t  endX,
size_t  beginY,
size_t  endY,
size_t  beginZ,
size_t  endZ,
ArrayType2 *  output 
)

Copies 3-D input array to output array from (beginX, beginY, beginZ) to (endX, endY, endZ).

This function copies 3-D input array to output array from (beginX, beginY, beginZ) to (endX, endY, endZ). The input and output array must support 3-D random access operator (i, j, k).

◆ copyRange3() [2/2]

template<typename ArrayType1 , typename ArrayType2 >
void jet::copyRange3 ( const ArrayType1 &  input,
size_t  sizeX,
size_t  sizeY,
size_t  sizeZ,
ArrayType2 *  output 
)

Copies 3-D input array to output array with sizeX and sizeY.

This function copies 3-D input array to output array with sizeX and sizeY. The input and output array must support 3-D random access operator (i, j, k).

◆ cosineWeightedSampleHemisphere()

template<typename T >
Vector3<T> jet::cosineWeightedSampleHemisphere ( u1,
u2,
const Vector3< T > &  normal 
)
inline

Returns weighted sampled point on a hemisphere.

For a given hemisphere, defined by center normal vector, this function returns a point on the hemisphere, where the probability is consine-weighted.

Parameters
[in]u1First random sample.
[in]u2Second random sample.
[in]normalThe center normal of the hemisphere.
Template Parameters
TReal number type.
Returns
Sampled point.

◆ cubic()

template<typename T >
T jet::cubic ( x)
inline

Returns the cubic of x.

Parameters
[in]xThe input.
Template Parameters
TValue type.
Returns
The cubic of x.

◆ degreesToRadians()

template<typename T >
T jet::degreesToRadians ( angleInDegrees)
inline

Converts degrees to radians.

Parameters
[in]angleInDegreesThe angle in degrees.
Template Parameters
TValue type.
Returns
Angle in radians.

◆ deserialize() [1/3]

template<typename T >
void jet::deserialize ( const std::vector< uint8_t > &  buffer,
Array1< T > *  array 
)

Deserializes buffer to data chunk using common schema.

◆ deserialize() [2/3]

void jet::deserialize ( const std::vector< uint8_t > &  buffer,
Serializable serializable 
)

Deserializes buffer to serializable object.

◆ deserialize() [3/3]

void jet::deserialize ( const std::vector< uint8_t > &  buffer,
std::vector< uint8_t > *  data 
)

Deserializes buffer to data chunk using common schema.

◆ eno3() [1/2]

template<typename T >
std::array<T, 2> jet::eno3 ( T *  D0,
dx 
)

3rd-order ENO. D0[3] is the origin.

|------|------|------|------|------|------|
D0[0] D0[1] D0[2] D0[3] D0[4] D0[5] D0[6]

Returns two solutions for each side.

◆ eno3() [2/2]

template<typename T >
T jet::eno3 ( T *  D0,
dx,
bool  isDirectionPositive 
)

3rd-order ENO. D0[3] is the origin.

|------|------|------|------|------|------|
D0[0] D0[1] D0[2] D0[3] D0[4] D0[5] D0[6]

◆ extrapolateToRegion() [1/2]

template<typename T >
void jet::extrapolateToRegion ( const ConstArrayAccessor2< T > &  input,
const ConstArrayAccessor2< char > &  valid,
unsigned int  numberOfIterations,
ArrayAccessor2< T >  output 
)

Extrapolates 2-D input data from 'valid' (1) to 'invalid' (0) region.

This function extrapolates 2-D input data from 'valid' (1) to 'invalid' (0) region. It iterates multiple times to propagate the 'valid' values to nearby 'invalid' region. The maximum distance of the propagation is equal to numberOfIterations. The input parameters 'valid' and 'data' should be collocated.

Parameters
input- data to extrapolate
valid- set 1 if valid, else 0.
numberOfIterations- number of iterations for propagation
output- extrapolated output

◆ extrapolateToRegion() [2/2]

template<typename T >
void jet::extrapolateToRegion ( const ConstArrayAccessor3< T > &  input,
const ConstArrayAccessor3< char > &  valid,
unsigned int  numberOfIterations,
ArrayAccessor3< T >  output 
)

Extrapolates 3-D input data from 'valid' (1) to 'invalid' (0) region.

This function extrapolates 3-D input data from 'valid' (1) to 'invalid' (0) region. It iterates multiple times to propagate the 'valid' values to nearby 'invalid' region. The maximum distance of the propagation is equal to numberOfIterations. The input parameters 'valid' and 'data' should be collocated.

Parameters
input- data to extrapolate
valid- set 1 if valid, else 0.
numberOfIterations- number of iterations for propagation
output- extrapolated output

◆ floor() [1/7]

template<typename T >
Point2<T> jet::floor ( const Point2< T > &  a)

Returns element-wise floored point.

◆ floor() [2/7]

template<typename T >
Point3<T> jet::floor ( const Point3< T > &  a)

Returns element-wise floored point.

◆ floor() [3/7]

Size2 jet::floor ( const Size2 a)

Returns element-wise floored size.

◆ floor() [4/7]

Size3 jet::floor ( const Size3 a)

Returns element-wise floored size.

◆ floor() [5/7]

template<typename T >
Vector2<T> jet::floor ( const Vector2< T > &  a)

Returns element-wise floored vector.

◆ floor() [6/7]

template<typename T >
Vector3<T> jet::floor ( const Vector3< T > &  a)

Returns element-wise floored vector.

◆ floor() [7/7]

template<typename T >
Vector4<T> jet::floor ( const Vector4< T > &  a)

Returns element-wise floored vector.

◆ fourPi()

template<typename T >
constexpr T jet::fourPi ( )
constexpr

4*pi for type T.

◆ fourPi< double >()

template<>
constexpr double jet::fourPi< double > ( )
constexpr

4*pi for double.

◆ fourPi< float >()

template<>
constexpr float jet::fourPi< float > ( )
constexpr

4*pi for float.

◆ fractionInside()

template<typename T >
T jet::fractionInside ( phiBottomLeft,
phiBottomRight,
phiTopLeft,
phiTopRight 
)

Returns the fraction occupied by the implicit surface.

Given four signed distance values (square corners), determine what fraction of the square is "inside". The original implementation can be found from Christopher Batty's variational fluid code at https://github.com/christopherbatty/Fluid3D.

Template Parameters
TValue type.
Parameters
phiBottomLeftThe level set value on the bottom-left corner.
phiBottomRightThe level set value on the bottom-right corner.
phiTopLeftThe level set value on the top-left corner.
phiTopRightThe level set value on the top-right corner.
Returns
The fraction occupied by the implicit surface.

◆ fractionInsideSdf()

template<typename T >
T jet::fractionInsideSdf ( phi0,
phi1 
)

Returns the fraction occupied by the implicit surface.

The input parameters, phi0 and phi1, are the level set values, measured from two nearby points. This function computes how much the implicit surface occupies the line between two points. For example, if both phi0 and phi1 are negative, it means the points are both inside the surface, thus the function will return 1. If both are positive, it will return 0 because both are outside the surface. If the signs are different, then only one of the points is inside the surface and the function will return a value between 0 and 1.

Parameters
[in]phi0The level set value from the first point.
[in]phi1The level set value from the second point.
Template Parameters
TValue type.
Returns
The fraction occupied by the implicit surface.

◆ getBarycentric()

template<class T >
void jet::getBarycentric ( x,
ssize_t  iLow,
ssize_t  iHigh,
ssize_t *  i,
T *  t 
)
inline

Gets the barycentric coordinate.

Parameters
[in]xThe input value.
[in]iLowThe lowest index.
[in]iHighThe highest index.
iThe output index.
tThe offset from i.
Template Parameters
TValue type.

◆ gradient2() [1/2]

Vector2D jet::gradient2 ( const ConstArrayAccessor2< double > &  data,
const Vector2D gridSpacing,
size_t  i,
size_t  j 
)

Returns 2-D gradient vector from given 2-D scalar grid-like array data, gridSpacing, and array index (i, j).

◆ gradient2() [2/2]

std::array<Vector2D, 2> jet::gradient2 ( const ConstArrayAccessor2< Vector2D > &  data,
const Vector2D gridSpacing,
size_t  i,
size_t  j 
)

Returns 2-D gradient vectors from given 2-D vector grid-like array data, gridSpacing, and array index (i, j).

◆ gradient3() [1/2]

Vector3D jet::gradient3 ( const ConstArrayAccessor3< double > &  data,
const Vector3D gridSpacing,
size_t  i,
size_t  j,
size_t  k 
)

Returns 3-D gradient vector from given 3-D scalar grid-like array data, gridSpacing, and array index (i, j, k).

◆ gradient3() [2/2]

std::array<Vector3D, 3> jet::gradient3 ( const ConstArrayAccessor3< Vector3D > &  data,
const Vector3D gridSpacing,
size_t  i,
size_t  j,
size_t  k 
)

Returns 3-D gradient vectors from given 3-D vector grid-like array data, gridSpacing, and array index (i, j, k).

◆ halfPi()

template<typename T >
constexpr T jet::halfPi ( )
constexpr

Pi/2 for type T.

◆ halfPi< double >()

template<>
constexpr double jet::halfPi< double > ( )
constexpr

Pi/2 for double.

◆ halfPi< float >()

template<>
constexpr float jet::halfPi< float > ( )
constexpr

Pi/2 for float.

◆ invFourPi()

template<typename T >
constexpr T jet::invFourPi ( )
constexpr

1/4*pi for type T.

◆ invFourPi< double >()

template<>
constexpr double jet::invFourPi< double > ( )
constexpr

1/4*pi for double.

◆ invFourPi< float >()

template<>
constexpr float jet::invFourPi< float > ( )
constexpr

1/4*pi for float.

◆ invPi()

template<typename T >
constexpr T jet::invPi ( )
constexpr

1/pi for type T.

◆ invPi< double >()

template<>
constexpr double jet::invPi< double > ( )
constexpr

1/pi for double.

◆ invPi< float >()

template<>
constexpr float jet::invPi< float > ( )
constexpr

1/pi for float.

◆ invTwoPi()

template<typename T >
constexpr T jet::invTwoPi ( )
constexpr

1/2*pi for type T.

◆ invTwoPi< double >()

template<>
constexpr double jet::invTwoPi< double > ( )
constexpr

1/2*pi for double.

◆ invTwoPi< float >()

template<>
constexpr float jet::invTwoPi< float > ( )
constexpr

1/2*pi for float.

◆ isInsideSdf()

template<typename T >
bool jet::isInsideSdf ( phi)

Returns true if phi is inside the implicit surface (< 0).

Parameters
[in]phiThe level set value.
Template Parameters
TValue type.
Returns
True if inside the implicit surface, false otherwise.

◆ laplacian2() [1/2]

double jet::laplacian2 ( const ConstArrayAccessor2< double > &  data,
const Vector2D gridSpacing,
size_t  i,
size_t  j 
)

Returns Laplacian value from given 2-D scalar grid-like array data, gridSpacing, and array index (i, j).

◆ laplacian2() [2/2]

Vector2D jet::laplacian2 ( const ConstArrayAccessor2< Vector2D > &  data,
const Vector2D gridSpacing,
size_t  i,
size_t  j 
)

Returns 2-D Laplacian vectors from given 2-D vector grid-like array data, gridSpacing, and array index (i, j).

◆ laplacian3() [1/2]

double jet::laplacian3 ( const ConstArrayAccessor3< double > &  data,
const Vector3D gridSpacing,
size_t  i,
size_t  j,
size_t  k 
)

Returns Laplacian value from given 3-D scalar grid-like array data, gridSpacing, and array index (i, j, k).

◆ laplacian3() [2/2]

Vector3D jet::laplacian3 ( const ConstArrayAccessor3< Vector3D > &  data,
const Vector3D gridSpacing,
size_t  i,
size_t  j,
size_t  k 
)

Returns 3-D Laplacian vectors from given 3-D vector grid-like array data, gridSpacing, and array index (i, j, k).

◆ lerp()

template<typename S , typename T >
S jet::lerp ( const S &  f0,
const S &  f1,
t 
)
inline

Computes linear interpolation.

Parameters
[in]f0The first value.
[in]f1The second value.
[in]tRelative offset [0, 1] from the first value.
Template Parameters
SInput value type.
TOffset type.
Returns
The interpolated value.

◆ marchingCubes()

void jet::marchingCubes ( const ConstArrayAccessor3< double > &  grid,
const Vector3D gridSize,
const Vector3D origin,
TriangleMesh3 mesh,
double  isoValue = 0,
int  bndClose = kDirectionAll,
int  bndConnectivity = kDirectionNone 
)

Computes marching cubes and extract triangle mesh from grid.

This function computes the marching cube algorithm to extract triangle mesh from the scalar grid field. The triangle mesh will be the iso surface, and the iso value can be specified. For the boundaries (the walls), it can be specified whether to close or open with bndClose (default: close all). Another boundary flag bndConnectivity can be used for specifying topological connectivity of the boundary meshes (default: disconnect all).

Parameters
[in]gridThe grid.
[in]gridSizeThe grid size.
[in]originThe origin.
[out]meshThe output triangle mesh.
[in]isoValueThe iso-surface value.
[in]bndCloseThe boundary open flag.
[in]bndConnectivityThe boundary connectivity flag.

◆ max() [1/7]

template<typename T >
Point2<T> jet::max ( const Point2< T > &  a,
const Point2< T > &  b 
)

Returns element-wise max point: (max(a.x, b.x), max(a.y, b.y)).

◆ max() [2/7]

template<typename T >
Point3<T> jet::max ( const Point3< T > &  a,
const Point3< T > &  b 
)

Returns element-wise max point.

◆ max() [3/7]

Size2 jet::max ( const Size2 a,
const Size2 b 
)

Returns element-wise max size: (max(a.x, b.x), max(a.y, b.y)).

◆ max() [4/7]

Size3 jet::max ( const Size3 a,
const Size3 b 
)

Returns element-wise max size.

◆ max() [5/7]

template<typename T >
Vector2<T> jet::max ( const Vector2< T > &  a,
const Vector2< T > &  b 
)

Returns element-wise max vector: (max(a.x, b.x), max(a.y, b.y)).

◆ max() [6/7]

template<typename T >
Vector3<T> jet::max ( const Vector3< T > &  a,
const Vector3< T > &  b 
)

Returns element-wise max vector.

◆ max() [7/7]

template<typename T >
Vector4<T> jet::max ( const Vector4< T > &  a,
const Vector4< T > &  b 
)

Returns element-wise max vector.

◆ max3()

template<typename T >
T jet::max3 ( x,
y,
z 
)
inline

Returns the maximum value among three inputs.

Parameters
[in]xThe first value.
[in]yThe second value.
[in]zThe three value.
Template Parameters
TValue type.
Returns
The maximum value.

◆ maxn()

template<typename T >
T jet::maxn ( const T *  x,
size_t  n 
)
inline

Returns maximum among n-elements.

◆ maxNumberOfThreads()

unsigned int jet::maxNumberOfThreads ( )

Returns maximum number of threads to use.

◆ mgVCycle()

template<typename BlasType >
MgResult jet::mgVCycle ( const MgMatrix< BlasType > &  A,
MgParameters< BlasType >  params,
MgVector< BlasType > *  x,
MgVector< BlasType > *  b,
MgVector< BlasType > *  buffer 
)

Performs Multigrid with V-cycle.

For given linear system matrix A and RHS vector b, this function computes the solution x using Multigrid method with V-cycle.

◆ min() [1/7]

template<typename T >
Point2<T> jet::min ( const Point2< T > &  a,
const Point2< T > &  b 
)

Returns element-wise min point: (min(a.x, b.x), min(a.y, b.y)).

◆ min() [2/7]

template<typename T >
Point3<T> jet::min ( const Point3< T > &  a,
const Point3< T > &  b 
)

Returns element-wise min point.

◆ min() [3/7]

Size2 jet::min ( const Size2 a,
const Size2 b 
)

Returns element-wise min size: (min(a.x, b.x), min(a.y, b.y)).

◆ min() [4/7]

Size3 jet::min ( const Size3 a,
const Size3 b 
)

Returns element-wise min size.

◆ min() [5/7]

template<typename T >
Vector2<T> jet::min ( const Vector2< T > &  a,
const Vector2< T > &  b 
)

Returns element-wise min vector: (min(a.x, b.x), min(a.y, b.y)).

◆ min() [6/7]

template<typename T >
Vector3<T> jet::min ( const Vector3< T > &  a,
const Vector3< T > &  b 
)

Returns element-wise min vector.

◆ min() [7/7]

template<typename T >
Vector4<T> jet::min ( const Vector4< T > &  a,
const Vector4< T > &  b 
)

Returns element-wise min vector.

◆ min3()

template<typename T >
T jet::min3 ( x,
y,
z 
)
inline

Returns the minimum value among three inputs.

Parameters
[in]xThe first value.
[in]yThe second value.
[in]zThe three value.
Template Parameters
TValue type.
Returns
The minimum value.

◆ minn()

template<typename T >
T jet::minn ( const T *  x,
size_t  n 
)
inline

Returns minimum among n-elements.

◆ monotonicCatmullRom() [1/4]

template<typename T >
T jet::monotonicCatmullRom ( const T &  f0,
const T &  f1,
const T &  f2,
const T &  f3,
t 
)
inline

Computes monotonic Catmull-Rom interpolation.

◆ monotonicCatmullRom() [2/4]

template<typename T >
Vector2<T> jet::monotonicCatmullRom ( const Vector2< T > &  v0,
const Vector2< T > &  v1,
const Vector2< T > &  v2,
const Vector2< T > &  v3,
f 
)

Computes monotonic Catmull-Rom interpolation.

◆ monotonicCatmullRom() [3/4]

template<typename T >
Vector3<T> jet::monotonicCatmullRom ( const Vector3< T > &  v0,
const Vector3< T > &  v1,
const Vector3< T > &  v2,
const Vector3< T > &  v3,
f 
)

Computes monotonic Catmull-Rom interpolation.

◆ monotonicCatmullRom() [4/4]

template<typename T >
Vector4<T> jet::monotonicCatmullRom ( const Vector4< T > &  v0,
const Vector4< T > &  v1,
const Vector4< T > &  v2,
const Vector4< T > &  v3,
f 
)

Computes monotonic Catmull-Rom interpolation.

◆ one()

template<typename T >
constexpr T jet::one ( )
constexpr

One for type T.

◆ one< double >()

template<>
constexpr double jet::one< double > ( )
constexpr

One for double.

◆ one< float >()

template<>
constexpr float jet::one< float > ( )
constexpr

One for float.

◆ operator*() [1/45]

template<typename T >
Matrix2x2<T> jet::operator* ( const Matrix2x2< T > &  a,
const Matrix2x2< T > &  b 
)

Returns a * b.

◆ operator*() [2/45]

template<typename T >
Vector2<T> jet::operator* ( const Matrix2x2< T > &  a,
const Vector2< T > &  b 
)

Returns a * b.

◆ operator*() [3/45]

template<typename T >
Matrix2x2<T> jet::operator* ( const Matrix2x2< T > &  a,
b 
)

Returns a * b', where every element of matrix b' is b.

◆ operator*() [4/45]

template<typename T >
Matrix3x3<T> jet::operator* ( const Matrix3x3< T > &  a,
const Matrix3x3< T > &  b 
)

Returns a * b.

◆ operator*() [5/45]

template<typename T >
Matrix4x4<T> jet::operator* ( const Matrix3x3< T > &  a,
const Matrix4x4< T > &  b 
)

Returns a * b.

◆ operator*() [6/45]

template<typename T >
Vector3<T> jet::operator* ( const Matrix3x3< T > &  a,
const Vector3< T > &  b 
)

Returns a * b.

◆ operator*() [7/45]

template<typename T >
Matrix3x3<T> jet::operator* ( const Matrix3x3< T > &  a,
b 
)

Returns a * b', where every element of matrix b' is b.

◆ operator*() [8/45]

template<typename T >
Matrix4x4<T> jet::operator* ( const Matrix4x4< T > &  a,
const Matrix3x3< T > &  b 
)

Returns a * b.

◆ operator*() [9/45]

template<typename T >
Matrix4x4<T> jet::operator* ( const Matrix4x4< T > &  a,
const Matrix4x4< T > &  b 
)

Returns a * b.

◆ operator*() [10/45]

template<typename T >
Vector3<T> jet::operator* ( const Matrix4x4< T > &  a,
const Vector3< T > &  b 
)

Returns a * b.

◆ operator*() [11/45]

template<typename T >
Vector4<T> jet::operator* ( const Matrix4x4< T > &  a,
const Vector4< T > &  b 
)

Returns a * b.

◆ operator*() [12/45]

template<typename T >
Matrix4x4<T> jet::operator* ( const Matrix4x4< T > &  a,
b 
)

Returns a * b', where every element of matrix b' is b.

◆ operator*() [13/45]

template<typename T , typename E >
MatrixScalarMul<T, E> jet::operator* ( const MatrixExpression< T, E > &  a,
b 
)

Returns a * b', where every element of matrix b' is b.

◆ operator*() [14/45]

template<typename T , typename E1 , typename E2 >
MatrixMul<T, E1, E2> jet::operator* ( const MatrixExpression< T, E1 > &  a,
const MatrixExpression< T, E2 > &  b 
)

Returns a * b.

◆ operator*() [15/45]

template<typename T , typename ME , typename VE >
MatrixVectorMul<T, ME, VE> jet::operator* ( const MatrixExpression< T, ME > &  a,
const VectorExpression< T, VE > &  b 
)

Returns a * b.

◆ operator*() [16/45]

template<typename T >
Point2<T> jet::operator* ( const Point2< T > &  a,
const Point2< T > &  b 
)

Computes (a.x, a.y) * (b.x, b.y).

◆ operator*() [17/45]

template<typename T >
Point2<T> jet::operator* ( const Point2< T > &  a,
b 
)

Computes (a.x, a.y) * (b, b).

◆ operator*() [18/45]

template<typename T >
Point3<T> jet::operator* ( const Point3< T > &  a,
const Point3< T > &  b 
)

Computes (a.x, a.y, a.z) * (b.x, b.y, b.z).

◆ operator*() [19/45]

template<typename T >
Point3<T> jet::operator* ( const Point3< T > &  a,
b 
)

Computes (a.x, a.y, a.z) * (b, b, b).

◆ operator*() [20/45]

template<typename T >
Quaternion<T> jet::operator* ( const Quaternion< T > &  a,
const Quaternion< T > &  b 
)

Returns quaternion a times quaternion b.

◆ operator*() [21/45]

template<typename T >
Vector<T, 3> jet::operator* ( const Quaternion< T > &  q,
const Vector< T, 3 > &  v 
)

Returns quaternion q * vector v.

◆ operator*() [22/45]

Size2 jet::operator* ( const Size2 a,
const Size2 b 
)

Computes (a.x, a.y) * (b.x, b.y).

◆ operator*() [23/45]

Size2 jet::operator* ( const Size2 a,
size_t  b 
)

Computes (a.x, a.y) * (b, b).

◆ operator*() [24/45]

Size3 jet::operator* ( const Size3 a,
const Size3 b 
)

Computes (a.x, a.y, a.z) * (b.x, b.y, b.z).

◆ operator*() [25/45]

Size3 jet::operator* ( const Size3 a,
size_t  b 
)

Computes (a.x, a.y, a.z) * (b, b, b).

◆ operator*() [26/45]

template<typename T , typename E >
VectorScalarMul<T, E> jet::operator* ( const T &  a,
const VectorExpression< T, E > &  b 
)

Scalar-vector multiplication operation.

◆ operator*() [27/45]

template<typename T >
Vector2<T> jet::operator* ( const Vector2< T > &  a,
const Vector2< T > &  b 
)

Computes (a.x, a.y) * (b.x, b.y).

◆ operator*() [28/45]

template<typename T >
Vector2<T> jet::operator* ( const Vector2< T > &  a,
b 
)

Computes (a.x, a.y) * (b, b).

◆ operator*() [29/45]

template<typename T >
Vector3<T> jet::operator* ( const Vector3< T > &  a,
const Vector3< T > &  b 
)

Computes (a.x, a.y, a.z) * (b.x, b.y, b.z).

◆ operator*() [30/45]

template<typename T >
Vector3<T> jet::operator* ( const Vector3< T > &  a,
b 
)

Computes (a.x, a.y, a.z) * (b, b, b).

◆ operator*() [31/45]

template<typename T >
Vector4<T> jet::operator* ( const Vector4< T > &  a,
const Vector4< T > &  b 
)

Computes (a.x, a.y, a.z, a.w) * (b.x, b.y, b.z, b.w).

◆ operator*() [32/45]

template<typename T >
Vector4<T> jet::operator* ( const Vector4< T > &  a,
b 
)

Computes (a.x, a.y, a.z, a.w) * (b, b, b, b).

◆ operator*() [33/45]

template<typename T , typename E >
VectorScalarMul<T, E> jet::operator* ( const VectorExpression< T, E > &  a,
const T &  b 
)

Vector-scalar multiplication operation.

◆ operator*() [34/45]

template<typename T , typename E1 , typename E2 >
VectorMul<T, E1, E2> jet::operator* ( const VectorExpression< T, E1 > &  a,
const VectorExpression< T, E2 > &  b 
)

Element-wise vector-vector multiplication operation.

◆ operator*() [35/45]

Size2 jet::operator* ( size_t  a,
const Size2 b 
)

Computes (a, a) * (b.x, b.y).

◆ operator*() [36/45]

Size3 jet::operator* ( size_t  a,
const Size3 b 
)

Computes (a, a, a) * (b.x, b.y, b.z).

◆ operator*() [37/45]

template<typename T >
Matrix2x2<T> jet::operator* ( a,
const Matrix2x2< T > &  b 
)

Returns a' * b, where every element of matrix a' is a.

◆ operator*() [38/45]

template<typename T >
Matrix3x3<T> jet::operator* ( a,
const Matrix3x3< T > &  b 
)

Returns a' * b, where every element of matrix a' is a.

◆ operator*() [39/45]

template<typename T >
Matrix4x4<T> jet::operator* ( a,
const Matrix4x4< T > &  b 
)

Returns a' * b, where every element of matrix a' is a.

◆ operator*() [40/45]

template<typename T , typename E >
MatrixScalarMul<T, E> jet::operator* ( a,
const MatrixExpression< T, E > &  b 
)

Returns a' * b, where every element of matrix a' is a.

◆ operator*() [41/45]

template<typename T >
Point2<T> jet::operator* ( a,
const Point2< T > &  b 
)

Computes (a, a) * (b.x, b.y).

◆ operator*() [42/45]

template<typename T >
Point3<T> jet::operator* ( a,
const Point3< T > &  b 
)

Computes (a, a, a) * (b.x, b.y, b.z).

◆ operator*() [43/45]

template<typename T >
Vector2<T> jet::operator* ( a,
const Vector2< T > &  b 
)

Computes (a, a) * (b.x, b.y).

◆ operator*() [44/45]

template<typename T >
Vector3<T> jet::operator* ( a,
const Vector3< T > &  b 
)

Computes (a, a, a) * (b.x, b.y, b.z).

◆ operator*() [45/45]

template<typename T >
Vector4<T> jet::operator* ( a,
const Vector4< T > &  b 
)

Computes (a, a, a, a) * (b.x, b.y, b.z, b.w).

◆ operator+() [1/37]

template<typename T >
Matrix2x2<T> jet::operator+ ( const Matrix2x2< T > &  a,
const Matrix2x2< T > &  b 
)

Returns a + b (element-size).

◆ operator+() [2/37]

template<typename T >
Matrix2x2<T> jet::operator+ ( const Matrix2x2< T > &  a,
const T &  b 
)

Returns a + b', where every element of matrix b' is b.

◆ operator+() [3/37]

template<typename T >
Matrix3x3<T> jet::operator+ ( const Matrix3x3< T > &  a,
const Matrix3x3< T > &  b 
)

Returns a + b (element-size).

◆ operator+() [4/37]

template<typename T >
Matrix3x3<T> jet::operator+ ( const Matrix3x3< T > &  a,
b 
)

Returns a + b', where every element of matrix b' is b.

◆ operator+() [5/37]

template<typename T >
Matrix4x4<T> jet::operator+ ( const Matrix4x4< T > &  a,
const Matrix4x4< T > &  b 
)

Returns a + b (element-size).

◆ operator+() [6/37]

template<typename T >
Matrix4x4<T> jet::operator+ ( const Matrix4x4< T > &  a,
b 
)

Returns a + b', where every element of matrix b' is b.

◆ operator+() [7/37]

template<typename T , typename E >
MatrixScalarAdd<T, E> jet::operator+ ( const MatrixExpression< T, E > &  a,
b 
)

Returns a + b', where every element of matrix b' is b.

◆ operator+() [8/37]

template<typename T , typename E1 , typename E2 >
MatrixAdd<T, E1, E2> jet::operator+ ( const MatrixExpression< T, E1 > &  a,
const MatrixExpression< T, E2 > &  b 
)

Returns a + b (element-size).

◆ operator+() [9/37]

template<typename T >
Point2<T> jet::operator+ ( const Point2< T > &  a,
const Point2< T > &  b 
)

Computes (a.x, a.y) + (b.x, b.y).

◆ operator+() [10/37]

template<typename T >
Point3<T> jet::operator+ ( const Point3< T > &  a,
const Point3< T > &  b 
)

Computes (a.x, a.y, a.z) + (b.x, b.y, b.z).

◆ operator+() [11/37]

template<typename T >
Point<T, 2> jet::operator+ ( const Point< T, 2 > &  a)

Positive sign operator.

◆ operator+() [12/37]

template<typename T >
Point<T, 3> jet::operator+ ( const Point< T, 3 > &  a)

Positive sign operator.

◆ operator+() [13/37]

Size2 jet::operator+ ( const Size2 a)

Positive sign operator.

◆ operator+() [14/37]

Size2 jet::operator+ ( const Size2 a,
const Size2 b 
)

Computes (a.x, a.y) + (b.x, b.y).

◆ operator+() [15/37]

Size3 jet::operator+ ( const Size3 a)

Positive sign operator.

◆ operator+() [16/37]

Size3 jet::operator+ ( const Size3 a,
const Size3 b 
)

Computes (a.x, a.y, a.z) + (b.x, b.y, b.z).

◆ operator+() [17/37]

template<typename T >
Matrix2x2<T> jet::operator+ ( const T &  a,
const Matrix2x2< T > &  b 
)

Returns a' + b, where every element of matrix a' is a.

◆ operator+() [18/37]

template<typename T , typename E >
VectorScalarAdd<T, E> jet::operator+ ( const T &  a,
const VectorExpression< T, E > &  b 
)

Scalar-vector addition operation.

◆ operator+() [19/37]

template<typename T >
Vector2<T> jet::operator+ ( const Vector2< T > &  a)

Positive sign operator.

◆ operator+() [20/37]

template<typename T >
Vector2<T> jet::operator+ ( const Vector2< T > &  a,
const Vector2< T > &  b 
)

Computes (a.x, a.y) + (b.x, b.y).

◆ operator+() [21/37]

template<typename T >
Vector3<T> jet::operator+ ( const Vector3< T > &  a)

Positive sign operator.

◆ operator+() [22/37]

template<typename T >
Vector3<T> jet::operator+ ( const Vector3< T > &  a,
const Vector3< T > &  b 
)

Computes (a.x, a.y, a.z) + (b.x, b.y, b.z).

◆ operator+() [23/37]

template<typename T >
Vector4<T> jet::operator+ ( const Vector4< T > &  a)

Positive sign operator.

◆ operator+() [24/37]

template<typename T >
Vector4<T> jet::operator+ ( const Vector4< T > &  a,
const Vector4< T > &  b 
)

Computes (a.x, a.y, a.z, a.w) + (b.x, b.y, b.z, b.w).

◆ operator+() [25/37]

template<typename T >
Vector4<T> jet::operator+ ( const Vector4< T > &  a,
b 
)

Computes (a.x, a.y, a.z, a.w) + (b, b, b, b).

◆ operator+() [26/37]

template<typename T , typename E >
VectorScalarAdd<T, E> jet::operator+ ( const VectorExpression< T, E > &  a,
const T &  b 
)

Vector-scalar addition operation.

◆ operator+() [27/37]

template<typename T , typename E1 , typename E2 >
VectorAdd<T, E1, E2> jet::operator+ ( const VectorExpression< T, E1 > &  a,
const VectorExpression< T, E2 > &  b 
)

Vector-vector addition operation.

◆ operator+() [28/37]

Size2 jet::operator+ ( size_t  a,
const Size2 b 
)

Computes (a, a) + (b.x, b.y).

◆ operator+() [29/37]

Size3 jet::operator+ ( size_t  a,
const Size3 b 
)

Computes (a, a, a) + (b.x, b.y, b.z).

◆ operator+() [30/37]

template<typename T >
Matrix3x3<T> jet::operator+ ( a,
const Matrix3x3< T > &  b 
)

Returns a' + b, where every element of matrix a' is a.

◆ operator+() [31/37]

template<typename T >
Matrix4x4<T> jet::operator+ ( a,
const Matrix4x4< T > &  b 
)

Returns a' + b, where every element of matrix a' is a.

◆ operator+() [32/37]

template<typename T , typename E >
MatrixScalarAdd<T, E> jet::operator+ ( a,
const MatrixExpression< T, E > &  b 
)

Returns a' + b, where every element of matrix a' is a.

◆ operator+() [33/37]

template<typename T >
Point2<T> jet::operator+ ( a,
const Point2< T > &  b 
)

Computes (a, a) + (b.x, b.y).

◆ operator+() [34/37]

template<typename T >
Point3<T> jet::operator+ ( a,
const Point3< T > &  b 
)

Computes (a, a, a) + (b.x, b.y, b.z).

◆ operator+() [35/37]

template<typename T >
Vector2<T> jet::operator+ ( a,
const Vector2< T > &  b 
)

Computes (a, a) + (b.x, b.y).

◆ operator+() [36/37]

template<typename T >
Vector3<T> jet::operator+ ( a,
const Vector3< T > &  b 
)

Computes (a, a, a) + (b.x, b.y, b.z).

◆ operator+() [37/37]

template<typename T >
Vector4<T> jet::operator+ ( a,
const Vector4< T > &  b 
)

Computes (a, a, a, a) + (b.x, b.y, b.z, b.w).

◆ operator-() [1/47]

template<typename T >
Matrix2x2<T> jet::operator- ( const Matrix2x2< T > &  a)

Returns a matrix with opposite sign.

◆ operator-() [2/47]

template<typename T >
Matrix2x2<T> jet::operator- ( const Matrix2x2< T > &  a,
const Matrix2x2< T > &  b 
)

Returns a - b (element-size).

◆ operator-() [3/47]

template<typename T >
Matrix2x2<T> jet::operator- ( const Matrix2x2< T > &  a,
b 
)

Returns a - b', where every element of matrix b' is b.

◆ operator-() [4/47]

template<typename T >
Matrix3x3<T> jet::operator- ( const Matrix3x3< T > &  a)

Returns a matrix with opposite sign.

◆ operator-() [5/47]

template<typename T >
Matrix3x3<T> jet::operator- ( const Matrix3x3< T > &  a,
const Matrix3x3< T > &  b 
)

Returns a - b (element-size).

◆ operator-() [6/47]

template<typename T >
Matrix3x3<T> jet::operator- ( const Matrix3x3< T > &  a,
b 
)

Returns a - b', where every element of matrix b' is b.

◆ operator-() [7/47]

template<typename T >
Matrix4x4<T> jet::operator- ( const Matrix4x4< T > &  a)

Returns a matrix with opposite sign.

◆ operator-() [8/47]

template<typename T >
Matrix4x4<T> jet::operator- ( const Matrix4x4< T > &  a,
const Matrix4x4< T > &  b 
)

Returns a - b (element-size).

◆ operator-() [9/47]

template<typename T >
Matrix4x4<T> jet::operator- ( const Matrix4x4< T > &  a,
b 
)

Returns a - b', where every element of matrix b' is b.

◆ operator-() [10/47]

template<typename T , typename E >
MatrixScalarMul<T, E> jet::operator- ( const MatrixExpression< T, E > &  a)

Returns a matrix with opposite sign.

◆ operator-() [11/47]

template<typename T , typename E >
MatrixScalarSub<T, E> jet::operator- ( const MatrixExpression< T, E > &  a,
b 
)

Returns a - b', where every element of matrix b' is b.

◆ operator-() [12/47]

template<typename T , typename E1 , typename E2 >
MatrixSub<T, E1, E2> jet::operator- ( const MatrixExpression< T, E1 > &  a,
const MatrixExpression< T, E2 > &  b 
)

Returns a - b (element-size).

◆ operator-() [13/47]

template<typename T >
Point2<T> jet::operator- ( const Point2< T > &  a)

Negative sign operator.

◆ operator-() [14/47]

template<typename T >
Point2<T> jet::operator- ( const Point2< T > &  a,
const Point2< T > &  b 
)

Computes (a.x, a.y) - (b.x, b.y).

◆ operator-() [15/47]

template<typename T >
Point2<T> jet::operator- ( const Point2< T > &  a,
b 
)

Computes (a.x, a.y) - (b, b).

◆ operator-() [16/47]

template<typename T >
Point3<T> jet::operator- ( const Point3< T > &  a)

Negative sign operator.

◆ operator-() [17/47]

template<typename T >
Point3<T> jet::operator- ( const Point3< T > &  a,
const Point3< T > &  b 
)

Computes (a.x, a.y, a.z) - (b.x, b.y, b.z).

◆ operator-() [18/47]

template<typename T >
Point3<T> jet::operator- ( const Point3< T > &  a,
b 
)

Computes (a.x, a.y, a.z) - (b, b, b).

◆ operator-() [19/47]

Size2 jet::operator- ( const Size2 a)

Negative sign operator.

◆ operator-() [20/47]

Size2 jet::operator- ( const Size2 a,
const Size2 b 
)

Computes (a.x, a.y) - (b.x, b.y).

◆ operator-() [21/47]

Size2 jet::operator- ( const Size2 a,
size_t  b 
)

Computes (a.x, a.y) - (b, b).

◆ operator-() [22/47]

Size3 jet::operator- ( const Size3 a)

Negative sign operator.

◆ operator-() [23/47]

Size3 jet::operator- ( const Size3 a,
const Size3 b 
)

Computes (a.x, a.y, a.z) - (b.x, b.y, b.z).

◆ operator-() [24/47]

Size3 jet::operator- ( const Size3 a,
size_t  b 
)

Computes (a.x, a.y, a.z) - (b, b, b).

◆ operator-() [25/47]

template<typename T , typename E >
VectorScalarRSub<T, E> jet::operator- ( const T &  a,
const VectorExpression< T, E > &  b 
)

Scalar-vector subtraction operation.

◆ operator-() [26/47]

template<typename T >
Vector2<T> jet::operator- ( const Vector2< T > &  a)

Negative sign operator.

◆ operator-() [27/47]

template<typename T >
Vector2<T> jet::operator- ( const Vector2< T > &  a,
const Vector2< T > &  b 
)

Computes (a.x, a.y) - (b.x, b.y).

◆ operator-() [28/47]

template<typename T >
Vector2<T> jet::operator- ( const Vector2< T > &  a,
b 
)

Computes (a.x, a.y) - (b, b).

◆ operator-() [29/47]

template<typename T >
Vector3<T> jet::operator- ( const Vector3< T > &  a)

Negative sign operator.

◆ operator-() [30/47]

template<typename T >
Vector3<T> jet::operator- ( const Vector3< T > &  a,
const Vector3< T > &  b 
)

Computes (a.x, a.y, a.z) - (b.x, b.y, b.z).

◆ operator-() [31/47]

template<typename T >
Vector3<T> jet::operator- ( const Vector3< T > &  a,
b 
)

Computes (a.x, a.y, a.z) - (b, b, b).

◆ operator-() [32/47]

template<typename T >
Vector4<T> jet::operator- ( const Vector4< T > &  a)

Negative sign operator.

◆ operator-() [33/47]

template<typename T >
Vector4<T> jet::operator- ( const Vector4< T > &  a,
const Vector4< T > &  b 
)

Computes (a.x, a.y, a.z, a.w) - (b.x, b.y, b.z, b.w).

◆ operator-() [34/47]

template<typename T >
Vector4<T> jet::operator- ( const Vector4< T > &  a,
b 
)

Computes (a.x, a.y, a.z, a.w) - (b, b, b, b).

◆ operator-() [35/47]

template<typename T , typename E >
VectorScalarSub<T, E> jet::operator- ( const VectorExpression< T, E > &  a,
const T &  b 
)

Scalar-vector addition operation.

◆ operator-() [36/47]

template<typename T , typename E1 , typename E2 >
VectorSub<T, E1, E2> jet::operator- ( const VectorExpression< T, E1 > &  a,
const VectorExpression< T, E2 > &  b 
)

Vector-vector addition operation.

◆ operator-() [37/47]

Size2 jet::operator- ( size_t  a,
const Size2 b 
)

Computes (a, a) - (b.x, b.y).

◆ operator-() [38/47]

Size3 jet::operator- ( size_t  a,
const Size3 b 
)

Computes (a, a, a) - (b.x, b.y, b.z).

◆ operator-() [39/47]

template<typename T >
Matrix2x2<T> jet::operator- ( a,
const Matrix2x2< T > &  b 
)

Returns a' - b, where every element of matrix a' is a.

◆ operator-() [40/47]

template<typename T >
Matrix3x3<T> jet::operator- ( a,
const Matrix3x3< T > &  b 
)

Returns a' - b, where every element of matrix a' is a.

◆ operator-() [41/47]

template<typename T >
Matrix4x4<T> jet::operator- ( a,
const Matrix4x4< T > &  b 
)

Returns a' - b, where every element of matrix a' is a.

◆ operator-() [42/47]

template<typename T , typename E >
MatrixScalarRSub<T, E> jet::operator- ( a,
const MatrixExpression< T, E > &  b 
)

Returns a' - b, where every element of matrix a' is a.

◆ operator-() [43/47]

template<typename T >
Point2<T> jet::operator- ( a,
const Point2< T > &  b 
)

Computes (a, a) - (b.x, b.y).

◆ operator-() [44/47]

template<typename T >
Point3<T> jet::operator- ( a,
const Point3< T > &  b 
)

Computes (a, a, a) - (b.x, b.y, b.z).

◆ operator-() [45/47]

template<typename T >
Vector2<T> jet::operator- ( a,
const Vector2< T > &  b 
)

Computes (a, a) - (b.x, b.y).

◆ operator-() [46/47]

template<typename T >
Vector3<T> jet::operator- ( a,
const Vector3< T > &  b 
)

Computes (a, a, a) - (b.x, b.y, b.z).

◆ operator-() [47/47]

template<typename T >
Vector4<T> jet::operator- ( a,
const Vector4< T > &  b 
)

Computes (a, a, a, a) - (b.x, b.y, b.z, b.w).

◆ operator/() [1/32]

template<typename T >
Matrix2x2<T> jet::operator/ ( const Matrix2x2< T > &  a,
b 
)

Returns a' / b, where every element of matrix a' is a.

◆ operator/() [2/32]

template<typename T >
Matrix3x3<T> jet::operator/ ( const Matrix3x3< T > &  a,
b 
)

Returns a' / b, where every element of matrix a' is a.

◆ operator/() [3/32]

template<typename T >
Matrix4x4<T> jet::operator/ ( const Matrix4x4< T > &  a,
b 
)

Returns a' / b, where every element of matrix a' is a.

◆ operator/() [4/32]

template<typename T , typename E >
MatrixScalarDiv<T, E> jet::operator/ ( const MatrixExpression< T, E > &  a,
b 
)

Returns a' / b, where every element of matrix a' is a.

◆ operator/() [5/32]

template<typename T >
Point2<T> jet::operator/ ( const Point2< T > &  a,
const Point2< T > &  b 
)

Computes (a.x, a.y) / (b.x, b.y).

◆ operator/() [6/32]

template<typename T >
Point2<T> jet::operator/ ( const Point2< T > &  a,
b 
)

Computes (a.x, a.y) / (b, b).

◆ operator/() [7/32]

template<typename T >
Point3<T> jet::operator/ ( const Point3< T > &  a,
const Point3< T > &  b 
)

Computes (a.x, a.y, a.z) / (b.x, b.y, b.z).

◆ operator/() [8/32]

template<typename T >
Point3<T> jet::operator/ ( const Point3< T > &  a,
b 
)

Computes (a.x, a.y, a.z) / (b, b, b).

◆ operator/() [9/32]

Size2 jet::operator/ ( const Size2 a,
const Size2 b 
)

Computes (a.x, a.y) / (b.x, b.y).

◆ operator/() [10/32]

Size2 jet::operator/ ( const Size2 a,
size_t  b 
)

Computes (a.x, a.y) / (b, b).

◆ operator/() [11/32]

Size3 jet::operator/ ( const Size3 a,
const Size3 b 
)

Computes (a.x, a.y, a.z) / (b.x, b.y, b.z).

◆ operator/() [12/32]

Size3 jet::operator/ ( const Size3 a,
size_t  b 
)

Computes (a.x, a.y, a.z) / (b, b, b).

◆ operator/() [13/32]

template<typename T >
Matrix2x2<T> jet::operator/ ( const T &  a,
const Matrix2x2< T > &  b 
)

Returns a / b', where every element of matrix b' is b.

◆ operator/() [14/32]

template<typename T >
Matrix4x4<T> jet::operator/ ( const T &  a,
const Matrix4x4< T > &  b 
)

Returns a / b', where every element of matrix b' is b.

◆ operator/() [15/32]

template<typename T , typename E >
VectorScalarRDiv<T, E> jet::operator/ ( const T &  a,
const VectorExpression< T, E > &  b 
)

Scalar-vector division operation.

◆ operator/() [16/32]

template<typename T >
Vector2<T> jet::operator/ ( const Vector2< T > &  a,
const Vector2< T > &  b 
)

Computes (a.x, a.y) / (b.x, b.y).

◆ operator/() [17/32]

template<typename T >
Vector2<T> jet::operator/ ( const Vector2< T > &  a,
b 
)

Computes (a.x, a.y) / (b, b).

◆ operator/() [18/32]

template<typename T >
Vector3<T> jet::operator/ ( const Vector3< T > &  a,
const Vector3< T > &  b 
)

Computes (a.x, a.y, a.z) / (b.x, b.y, b.z).

◆ operator/() [19/32]

template<typename T >
Vector3<T> jet::operator/ ( const Vector3< T > &  a,
b 
)

Computes (a.x, a.y, a.z) / (b, b, b).

◆ operator/() [20/32]

template<typename T >
Vector4<T> jet::operator/ ( const Vector4< T > &  a,
const Vector4< T > &  b 
)

Computes (a.x, a.y, a.z, a.w) / (b.x, b.y, b.z, b.w).

◆ operator/() [21/32]

template<typename T >
Vector4<T> jet::operator/ ( const Vector4< T > &  a,
b 
)

Computes (a.x, a.y, a.z, a.w) / (b, b, b, b).

◆ operator/() [22/32]

template<typename T , typename E >
VectorScalarDiv<T, E> jet::operator/ ( const VectorExpression< T, E > &  a,
const T &  b 
)

Vector-scalar division operation.

◆ operator/() [23/32]

template<typename T , typename E1 , typename E2 >
VectorDiv<T, E1, E2> jet::operator/ ( const VectorExpression< T, E1 > &  a,
const VectorExpression< T, E2 > &  b 
)

Element-wise vector-vector division operation.

◆ operator/() [24/32]

Size2 jet::operator/ ( size_t  a,
const Size2 b 
)

Computes (a, a) / (b.x, b.y).

◆ operator/() [25/32]

Size3 jet::operator/ ( size_t  a,
const Size3 b 
)

Computes (a, a, a) / (b.x, b.y, b.z).

◆ operator/() [26/32]

template<typename T >
Matrix3x3<T> jet::operator/ ( a,
const Matrix3x3< T > &  b 
)

Returns a / b', where every element of matrix b' is b.

◆ operator/() [27/32]

template<typename T , typename E >
MatrixScalarRDiv<T, E> jet::operator/ ( a,
const MatrixExpression< T, E > &  b 
)

Returns a / b', where every element of matrix b' is b.

◆ operator/() [28/32]

template<typename T >
Point2<T> jet::operator/ ( a,
const Point2< T > &  b 
)

Computes (a, a) / (b.x, b.y).

◆ operator/() [29/32]

template<typename T >
Point3<T> jet::operator/ ( a,
const Point3< T > &  b 
)

Computes (a, a, a) / (b.x, b.y, b.z).

◆ operator/() [30/32]

template<typename T >
Vector2<T> jet::operator/ ( a,
const Vector2< T > &  b 
)

Computes (a, a) / (b.x, b.y).

◆ operator/() [31/32]

template<typename T >
Vector3<T> jet::operator/ ( a,
const Vector3< T > &  b 
)

Computes (a, a, a) / (b.x, b.y, b.z).

◆ operator/() [32/32]

template<typename T >
Vector4<T> jet::operator/ ( a,
const Vector4< T > &  b 
)

Computes (a, a, a, a) / (b.x, b.y, b.z, b.w).

◆ parallelFill()

template<typename RandomIterator , typename T >
void jet::parallelFill ( const RandomIterator &  begin,
const RandomIterator &  end,
const T &  value,
ExecutionPolicy  policy = ExecutionPolicy::kParallel 
)

Fills from begin to end with value in parallel.

This function fills a container specified by begin and end iterators in parallel. The order of the filling is not guaranteed due to the nature of parallel execution.

Parameters
[in]beginThe begin iterator of a container.
[in]endThe end iterator of a container.
[in]valueThe value to fill a container.
[in]policyThe execution policy (parallel or serial).
Template Parameters
RandomIteratorRandom iterator type.
TValue type of a container.

◆ parallelFor() [1/3]

template<typename IndexType , typename Function >
void jet::parallelFor ( IndexType  beginIndex,
IndexType  endIndex,
const Function &  function,
ExecutionPolicy  policy = ExecutionPolicy::kParallel 
)

Makes a for-loop from beginIndex to endIndex in parallel.

This function makes a for-loop specified by begin and end indices in parallel. The order of the visit is not guaranteed due to the nature of parallel execution.

Parameters
[in]beginIndexThe begin index.
[in]endIndexThe end index.
[in]functionThe function to call for each index.
[in]policyThe execution policy (parallel or serial).
Template Parameters
IndexTypeIndex type.
FunctionFunction type.

◆ parallelFor() [2/3]

template<typename IndexType , typename Function >
void jet::parallelFor ( IndexType  beginIndexX,
IndexType  endIndexX,
IndexType  beginIndexY,
IndexType  endIndexY,
const Function &  function,
ExecutionPolicy  policy = ExecutionPolicy::kParallel 
)

Makes a 2D nested for-loop in parallel.

This function makes a 2D nested for-loop specified by begin and end indices for each dimension. X will be the inner-most loop while Y is the outer-most. The order of the visit is not guaranteed due to the nature of parallel execution.

Parameters
[in]beginIndexXThe begin index in X dimension.
[in]endIndexXThe end index in X dimension.
[in]beginIndexYThe begin index in Y dimension.
[in]endIndexYThe end index in Y dimension.
[in]functionThe function to call for each index (i, j).
[in]policyThe execution policy (parallel or serial).
Template Parameters
IndexTypeIndex type.
FunctionFunction type.

◆ parallelFor() [3/3]

template<typename IndexType , typename Function >
void jet::parallelFor ( IndexType  beginIndexX,
IndexType  endIndexX,
IndexType  beginIndexY,
IndexType  endIndexY,
IndexType  beginIndexZ,
IndexType  endIndexZ,
const Function &  function,
ExecutionPolicy  policy = ExecutionPolicy::kParallel 
)

Makes a 3D nested for-loop in parallel.

This function makes a 3D nested for-loop specified by begin and end indices for each dimension. X will be the inner-most loop while Z is the outer-most. The order of the visit is not guaranteed due to the nature of parallel execution.

Parameters
[in]beginIndexXThe begin index in X dimension.
[in]endIndexXThe end index in X dimension.
[in]beginIndexYThe begin index in Y dimension.
[in]endIndexYThe end index in Y dimension.
[in]beginIndexZThe begin index in Z dimension.
[in]endIndexZThe end index in Z dimension.
[in]functionThe function to call for each index (i, j, k).
[in]policyThe execution policy (parallel or serial).
Template Parameters
IndexTypeIndex type.
FunctionFunction type.

◆ parallelRangeFor() [1/3]

template<typename IndexType , typename Function >
void jet::parallelRangeFor ( IndexType  beginIndex,
IndexType  endIndex,
const Function &  function,
ExecutionPolicy  policy = ExecutionPolicy::kParallel 
)

Makes a range-loop from beginIndex to endIndex in parallel.

This function makes a for-loop specified by begin and end indices in parallel. Unlike parallelFor function, the input function object takes range instead of single index. The order of the visit is not guaranteed due to the nature of parallel execution.

Parameters
[in]beginIndexThe begin index.
[in]endIndexThe end index.
[in]functionThe function to call for each index range.
[in]policyThe execution policy (parallel or serial).
Template Parameters
IndexTypeIndex type.
FunctionFunction type.

◆ parallelRangeFor() [2/3]

template<typename IndexType , typename Function >
void jet::parallelRangeFor ( IndexType  beginIndexX,
IndexType  endIndexX,
IndexType  beginIndexY,
IndexType  endIndexY,
const Function &  function,
ExecutionPolicy  policy = ExecutionPolicy::kParallel 
)

Makes a 2D nested range-loop in parallel.

This function makes a 2D nested for-loop specified by begin and end indices for each dimension. X will be the inner-most loop while Y is the outer-most. Unlike parallelFor function, the input function object takes range instead of single index. The order of the visit is not guaranteed due to the nature of parallel execution.

Parameters
[in]beginIndexXThe begin index in X dimension.
[in]endIndexXThe end index in X dimension.
[in]beginIndexYThe begin index in Y dimension.
[in]endIndexYThe end index in Y dimension.
[in]functionThe function to call for each index range.
[in]policyThe execution policy (parallel or serial).
Template Parameters
IndexTypeIndex type.
FunctionFunction type.

◆ parallelRangeFor() [3/3]

template<typename IndexType , typename Function >
void jet::parallelRangeFor ( IndexType  beginIndexX,
IndexType  endIndexX,
IndexType  beginIndexY,
IndexType  endIndexY,
IndexType  beginIndexZ,
IndexType  endIndexZ,
const Function &  function,
ExecutionPolicy  policy = ExecutionPolicy::kParallel 
)

Makes a 3D nested range-loop in parallel.

This function makes a 3D nested for-loop specified by begin and end indices for each dimension. X will be the inner-most loop while Z is the outer-most. Unlike parallelFor function, the input function object takes range instead of single index. The order of the visit is not guaranteed due to the nature of parallel execution.

Parameters
[in]beginIndexXThe begin index in X dimension.
[in]endIndexXThe end index in X dimension.
[in]beginIndexYThe begin index in Y dimension.
[in]endIndexYThe end index in Y dimension.
[in]beginIndexZThe begin index in Z dimension.
[in]endIndexZThe end index in Z dimension.
[in]functionThe function to call for each index (i, j, k).
[in]policyThe execution policy (parallel or serial).
Template Parameters
IndexTypeIndex type.
FunctionFunction type.

◆ parallelReduce()

template<typename IndexType , typename Value , typename Function , typename Reduce >
Value jet::parallelReduce ( IndexType  beginIndex,
IndexType  endIndex,
const Value &  identity,
const Function &  func,
const Reduce &  reduce,
ExecutionPolicy  policy = ExecutionPolicy::kParallel 
)

Performs reduce operation in parallel.

This function reduces the series of values into a single value using the provided reduce function.

Parameters
[in]beginIndexThe begin index.
[in]endIndexThe end index.
[in]identityIdentity value for the reduce operation.
[in]functionThe function for reducing subrange.
[in]reduceThe reduce operator.
[in]policyThe execution policy (parallel or serial).
Template Parameters
IndexTypeIndex type.
ValueValue type.
FunctionReduce function type.

◆ parallelSort() [1/2]

template<typename RandomIterator , typename CompareFunction >
void jet::parallelSort ( RandomIterator  begin,
RandomIterator  end,
CompareFunction  compare,
ExecutionPolicy  policy = ExecutionPolicy::kParallel 
)

Sorts a container in parallel with a custom compare function.

This function sorts a container specified by begin and end iterators. It takes extra compare function which returns true if the first argument is less than the second argument.

Parameters
[in]beginThe begin random access iterator.
[in]endThe end random access iterator.
[in]compareThe compare function.
[in]policyThe execution policy (parallel or serial).
Template Parameters
RandomIteratorIterator type.
CompareFunctionCompare function type.

◆ parallelSort() [2/2]

template<typename RandomIterator >
void jet::parallelSort ( RandomIterator  begin,
RandomIterator  end,
ExecutionPolicy  policy = ExecutionPolicy::kParallel 
)

Sorts a container in parallel.

This function sorts a container specified by begin and end iterators.

Parameters
[in]beginThe begin random access iterator.
[in]endThe end random access iterator.
[in]policyThe execution policy (parallel or serial).
Template Parameters
RandomIteratorIterator type.

◆ pcg()

template<typename BlasType , typename PrecondType >
void jet::pcg ( const typename BlasType::MatrixType &  A,
const typename BlasType::VectorType &  b,
unsigned int  maxNumberOfIterations,
double  tolerance,
PrecondType *  M,
typename BlasType::VectorType *  x,
typename BlasType::VectorType *  r,
typename BlasType::VectorType *  d,
typename BlasType::VectorType *  q,
typename BlasType::VectorType *  s,
unsigned int *  lastNumberOfIterations,
double *  lastResidualNorm 
)

Solves pre-conditioned conjugate gradient.

◆ pi()

template<typename T >
constexpr T jet::pi ( )
constexpr

Pi for type T.

◆ pi< double >()

template<>
constexpr double jet::pi< double > ( )
constexpr

Pi for double.

◆ pi< float >()

template<>
constexpr float jet::pi< float > ( )
constexpr

Pi for float.

◆ quarterPi()

template<typename T >
constexpr T jet::quarterPi ( )
constexpr

Pi/4 for type T.

◆ quarterPi< double >()

template<>
constexpr double jet::quarterPi< double > ( )
constexpr

Pi/2 for double.

◆ quarterPi< float >()

template<>
constexpr float jet::quarterPi< float > ( )
constexpr

Pi/2 for float.

◆ radiansToDegrees()

template<typename T >
T jet::radiansToDegrees ( angleInRadians)
inline

Converts radians to degrees.

Parameters
[in]angleInDegreesThe angle in radians.
Template Parameters
TValue type.
Returns
Angle in degrees.

◆ serialFill()

template<typename RandomIterator , typename T >
void jet::serialFill ( const RandomIterator &  begin,
const RandomIterator &  end,
const T &  value 
)

Fills from begin to end with value.

This function fills a container specified by begin and end iterators with single thread. The order of the filling is deterministic.

Parameters
[in]beginThe begin iterator of a container.
[in]endThe end iterator of a container.
[in]valueThe value to fill a container.
Template Parameters
RandomIteratorRandom iterator type.
TValue type of a container.

◆ serialFor() [1/3]

template<typename IndexType , typename Function >
void jet::serialFor ( IndexType  beginIndex,
IndexType  endIndex,
const Function &  function 
)

Makes a for-loop from beginIndex to endIndex.

This function makes a for-loop specified by begin and end indices with single thread. The order of the visit is deterministic.

Parameters
[in]beginIndexThe begin index.
[in]endIndexThe end index.
[in]functionThe function to call for each index.
Template Parameters
IndexTypeIndex type.
FunctionFunction type.

◆ serialFor() [2/3]

template<typename IndexType , typename Function >
void jet::serialFor ( IndexType  beginIndexX,
IndexType  endIndexX,
IndexType  beginIndexY,
IndexType  endIndexY,
const Function &  function 
)

Makes a 2D nested for-loop.

This function makes a 2D nested for-loop specified by begin and end indices for each dimension. X will be the inner-most loop while Y is the outer-most. The order of the visit is deterministic.

Parameters
[in]beginIndexXThe begin index in X dimension.
[in]endIndexXThe end index in X dimension.
[in]beginIndexYThe begin index in Y dimension.
[in]endIndexYThe end index in Y dimension.
[in]functionThe function to call for each index (i, j).
Template Parameters
IndexTypeIndex type.
FunctionFunction type.

◆ serialFor() [3/3]

template<typename IndexType , typename Function >
void jet::serialFor ( IndexType  beginIndexX,
IndexType  endIndexX,
IndexType  beginIndexY,
IndexType  endIndexY,
IndexType  beginIndexZ,
IndexType  endIndexZ,
const Function &  function 
)

Makes a 3D nested for-loop.

This function makes a 3D nested for-loop specified by begin and end indices for each dimension. X will be the inner-most loop while Z is the outer-most. The order of the visit is deterministic.

Parameters
[in]beginIndexXThe begin index in X dimension.
[in]endIndexXThe end index in X dimension.
[in]beginIndexYThe begin index in Y dimension.
[in]endIndexYThe end index in Y dimension.
[in]beginIndexZThe begin index in Z dimension.
[in]endIndexZThe end index in Z dimension.
[in]functionThe function to call for each index (i, j, k).
Template Parameters
IndexTypeIndex type.
FunctionFunction type.

◆ serialize() [1/3]

template<typename T >
void jet::serialize ( const ConstArrayAccessor1< T > &  array,
std::vector< uint8_t > *  buffer 
)

Serializes data chunk using common schema.

◆ serialize() [2/3]

void jet::serialize ( const Serializable serializable,
std::vector< uint8_t > *  buffer 
)

Serializes serializable object.

◆ serialize() [3/3]

void jet::serialize ( const uint8_t *  data,
size_t  size,
std::vector< uint8_t > *  buffer 
)

Serializes data chunk using common schema.

◆ serialSort() [1/2]

template<typename RandomIterator >
void jet::serialSort ( RandomIterator  begin,
RandomIterator  end 
)

Sorts a container.

This function sorts a container specified by begin and end iterators.

Parameters
[in]beginThe begin random access iterator.
[in]endThe end random access iterator.
Template Parameters
RandomIteratorIterator type.

◆ serialSort() [2/2]

template<typename RandomIterator , typename SortingFunction >
void jet::serialSort ( RandomIterator  begin,
RandomIterator  end,
const SortingFunction &  sortingFunction 
)

Sorts a container with a custom compare function.

This function sorts a container specified by begin and end iterators. It takes extra compare function which returns true if the first argument is less than the second argument.

Parameters
[in]beginThe begin random access iterator.
[in]endThe end random access iterator.
[in]compareThe compare function.
Template Parameters
RandomIteratorIterator type.
CompareFunctionCompare function type.

◆ setMaxNumberOfThreads()

void jet::setMaxNumberOfThreads ( unsigned int  numThreads)

Sets maximum number of threads to use.

◆ setRange1() [1/2]

template<typename ArrayType , typename T >
void jet::setRange1 ( size_t  begin,
size_t  end,
const T &  value,
ArrayType *  output 
)

Assigns value to 1-D array output from begin to end.

This function assigns value to 1-D array output from begin to end. The output array must support random access operator [].

◆ setRange1() [2/2]

template<typename ArrayType , typename T >
void jet::setRange1 ( size_t  size,
const T &  value,
ArrayType *  output 
)

Assigns value to 1-D array output with size.

This function assigns value to 1-D array output with size. The output array must support random access operator [].

◆ sign()

template<typename T >
T jet::sign ( x)
inline

Returns the sign of the value.

Parameters
[in]xInput value.
Template Parameters
TValue type.
Returns
The sign.

◆ similar()

template<typename T >
bool jet::similar ( x,
y,
eps = std::numeric_limits< T >::epsilon() 
)
inline

Returns true if x and y are similar.

Parameters
[in]xThe first value.
[in]yThe second value.
[in]epsThe tolerance.
Template Parameters
TValue type.
Returns
True if similar.

◆ slerp()

template<typename T >
Quaternion<T> jet::slerp ( const Quaternion< T > &  a,
const Quaternion< T > &  b,
t 
)

Computes spherical linear interpolation.

◆ smearedDeltaSdf()

template<typename T >
T jet::smearedDeltaSdf ( phi)

Returns smeared delta function.

This function returns smeared (or smooth) delta function between 0 and 1. If phi is less than -1.5, it will return 0. If phi is greater than 1.5, it will also return 0. Between -1.5 and 1.5, the function will return smooth delta function. Integral of this function is smearedHeavisideSdf.

Parameters
[in]phiThe level set value.
Template Parameters
TValue type.
Returns
Smeared delta function.

◆ smearedHeavisideSdf()

template<typename T >
T jet::smearedHeavisideSdf ( phi)

Returns smeared Heaviside function.

This function returns smeared (or smooth) Heaviside (or step) function between 0 and 1. If phi is less than -1.5, it will return 0. If phi is greater than 1.5, it will return 1. Between -1.5 and 1.5, the function will return smooth profile between 0 and 1. Derivative of this function is smearedDeltaSdf.

Parameters
[in]phiThe level set value.
Template Parameters
TValue type.
Returns
Smeared Heaviside function.

◆ square()

template<typename T >
T jet::square ( x)
inline

Returns the square of x.

Parameters
[in]xThe input.
Template Parameters
TValue type.
Returns
The squared value.

◆ svd() [1/2]

template<typename T , size_t M, size_t N>
void jet::svd ( const Matrix< T, M, N > &  a,
Matrix< T, M, N > &  u,
Vector< T, N > &  w,
Matrix< T, N, N > &  v 
)

Singular value decomposition (SVD).

This function decompose the input matrix a to u * w * v^T.

Template Parameters
TReal-value type.
Parameters
aThe input matrix to decompose.
uLeft-most output matrix.
wThe vector of singular values.
vRight-most output matrix.

◆ svd() [2/2]

template<typename T >
void jet::svd ( const MatrixMxN< T > &  a,
MatrixMxN< T > &  u,
VectorN< T > &  w,
MatrixMxN< T > &  v 
)

Singular value decomposition (SVD).

This function decompose the input matrix a to u * w * v^T.

Template Parameters
TReal-value type.
Parameters
aThe input matrix to decompose.
uLeft-most output matrix.
wThe vector of singular values.
vRight-most output matrix.

◆ triangleMeshToSdf()

void jet::triangleMeshToSdf ( const TriangleMesh3 mesh,
ScalarGrid3 sdf,
const unsigned int  exactBand = 1 
)

Generates signed-distance field out of given triangle mesh.

This function generates signed-distance field from a triangle mesh. The sign is determined by TriangleMesh3::isInside (negative means inside).

Warning
Parameter exactBand is no longer used and will be deprecated in next release (v2.x).
Parameters
[in]meshThe mesh.
[in,out]sdfThe output signed-distance field.
[in]exactBandThis parameter is no longer used.

◆ trilerp()

template<typename S , typename T >
S jet::trilerp ( const S &  f000,
const S &  f100,
const S &  f010,
const S &  f110,
const S &  f001,
const S &  f101,
const S &  f011,
const S &  f111,
tx,
ty,
tz 
)
inline

Computes trilinear interpolation.

◆ twoPi()

template<typename T >
constexpr T jet::twoPi ( )
constexpr

2*pi for type T.

◆ twoPi< double >()

template<>
constexpr double jet::twoPi< double > ( )
constexpr

2*pi for double.

◆ twoPi< float >()

template<>
constexpr float jet::twoPi< float > ( )
constexpr

2*pi for float.

◆ uniformSampleCone()

template<typename T >
Vector3<T> jet::uniformSampleCone ( u1,
u2,
const Vector3< T > &  axis,
angle 
)
inline

Returns randomly sampled direction within a cone.

For a given cone, defined by axis and angle, this function returns a sampled direction vector within the cone.

Parameters
[in]u1First random sample.
[in]u2Second random sample.
[in]axisThe axis of the cone.
[in]angleThe angle of the cone.
Template Parameters
TReal number type.
Returns
Sampled direction vector.

◆ uniformSampleDisk()

template<typename T >
Vector2<T> jet::uniformSampleDisk ( u1,
u2 
)
inline

Returns randomly a point on a disk.

For a given disk, this function returns a point on the disk.

Parameters
[in]u1First random sample.
[in]u2Second random sample.
Template Parameters
TReal number type.
Returns
Sampled point.

◆ uniformSampleHemisphere()

template<typename T >
Vector3<T> jet::uniformSampleHemisphere ( u1,
u2,
const Vector3< T > &  normal 
)
inline

Returns randomly sampled point within a unit hemisphere.

For a given unit hemisphere, defined by center normal vector, this function returns a point within the hemisphere.

Parameters
[in]u1First random sample.
[in]u2Second random sample.
[in]normalThe center normal of the hemisphere.
Template Parameters
TReal number type.
Returns
Sampled point.

◆ uniformSampleSphere()

template<typename T >
Vector3<T> jet::uniformSampleSphere ( u1,
u2 
)
inline

Returns randomly a point on a sphere.

For a given sphere, defined by center normal vector, this function returns a point on the sphere.

Parameters
[in]u1First random sample.
[in]u2Second random sample.
[in]axisThe axis of the cone.
[in]angleThe angle of the cone.
Template Parameters
TReal number type.
Returns
Sampled point.

◆ upwind1() [1/2]

template<typename T >
std::array<T, 2> jet::upwind1 ( T *  D0,
dx 
)

1-st order upwind differencing. D0[1] is the origin.

|------|------|
D0[0] D0[1] D0[2]

Returns two solutions for each side.

◆ upwind1() [2/2]

template<typename T >
T jet::upwind1 ( T *  D0,
dx,
bool  isDirectionPositive 
)

1-st order upwind differencing. D0[1] is the origin.

|------|------|
D0[0] D0[1] D0[2]

◆ weno5() [1/2]

template<typename T >
T jet::weno5 ( T *  v,
h,
bool  is_velocity_positive,
eps = 1.0e-8 
)

5th-order Weno. D0[3] is the origin.

|------|------|------|------|------|------|
D0[0] D0[1] D0[2] D0[3] D0[4] D0[5] D0[6]

◆ weno5() [2/2]

template<typename T >
std::array<T, 2> jet::weno5 ( T *  v,
h,
eps = 1.0e-8 
)

5th-order Weno. D0[3] is the origin.

|------|------|------|------|------|------|
D0[0] D0[1] D0[2] D0[3] D0[4] D0[5] D0[6]

Returns two solutions for each side.

◆ zero()

template<typename T >
constexpr T jet::zero ( )
constexpr

Zero for type T.

◆ zero< double >()

template<>
constexpr double jet::zero< double > ( )
constexpr

Zero for double.

◆ zero< float >()

template<>
constexpr float jet::zero< float > ( )
constexpr

Zero for float.

◆ zero< Vector2D >()

template<>
constexpr Vector2D jet::zero< Vector2D > ( )
constexpr

Returns double-type zero vector.

◆ zero< Vector2F >()

template<>
constexpr Vector2F jet::zero< Vector2F > ( )
constexpr

Returns float-type zero vector.

◆ zero< Vector3D >()

template<>
constexpr Vector3D jet::zero< Vector3D > ( )
constexpr

Returns double-type zero vector.

◆ zero< Vector3F >()

template<>
constexpr Vector3F jet::zero< Vector3F > ( )
constexpr

Returns float-type zero vector.

◆ zero< Vector4D >()

template<>
constexpr Vector4D jet::zero< Vector4D > ( )
constexpr

Returns double-type zero vector.

◆ zero< Vector4F >()

template<>
constexpr Vector4F jet::zero< Vector4F > ( )
constexpr

Returns float-type zero vector.

Variable Documentation

◆ debugLogger

Logger jet::debugLogger

Debug-level logger.

◆ errorLogger

Logger jet::errorLogger

Error-level logger.

◆ infoLogger

Logger jet::infoLogger

Info-level logger.

◆ kDirectionAll

constexpr int jet::kDirectionAll
constexpr

◆ kDirectionBack

constexpr int jet::kDirectionBack = 1 << 4
constexpr

Back direction.

◆ kDirectionDown

constexpr int jet::kDirectionDown = 1 << 2
constexpr

Down direction.

◆ kDirectionFront

constexpr int jet::kDirectionFront = 1 << 5
constexpr

Front direction.

◆ kDirectionLeft

constexpr int jet::kDirectionLeft = 1 << 0
constexpr

Left direction.

◆ kDirectionNone

constexpr int jet::kDirectionNone = 0
constexpr

No direction.

◆ kDirectionRight

constexpr int jet::kDirectionRight = 1 << 1
constexpr

RIght direction.

◆ kDirectionUp

constexpr int jet::kDirectionUp = 1 << 3
constexpr

Up direction.

◆ kEpsilonD

constexpr double jet::kEpsilonD = std::numeric_limits<double>::epsilon()
constexpr

Double-type epsilon.

◆ kEpsilonF

constexpr float jet::kEpsilonF = std::numeric_limits<float>::epsilon()
constexpr

Float-type epsilon.

◆ kFourPiD

constexpr double jet::kFourPiD = 4.0 * kPiD
constexpr

Double-type 4*pi.

◆ kFourPiF

constexpr float jet::kFourPiF = static_cast<float>(4.0 * kPiD)
constexpr

Float-type 4*pi.

◆ kGravity

constexpr double jet::kGravity = -9.8
constexpr

Gravity.

◆ kHalfPiD

constexpr double jet::kHalfPiD = 1.57079632679489661923132169163975144
constexpr

Double-type pi/2.

◆ kHalfPiF

constexpr float jet::kHalfPiF = 1.57079632679489661923132169163975144f
constexpr

Float-type pi/2.

◆ kInvFourPiD

constexpr double jet::kInvFourPiD = 0.25 / kPiD
constexpr

Double-type 1/4*pi.

◆ kInvFourPiF

constexpr float jet::kInvFourPiF = static_cast<float>(0.25 / kPiD)
constexpr

Float-type 1/4*pi.

◆ kInvPiD

constexpr double jet::kInvPiD = 1.0 / kPiD
constexpr

Double-type 1/pi.

◆ kInvPiF

constexpr float jet::kInvPiF = static_cast<float>(1.0 / kPiD)
constexpr

Float-type 1/pi.

◆ kInvTwoPiD

constexpr double jet::kInvTwoPiD = 0.5 / kPiD
constexpr

Double-type 1/2*pi.

◆ kInvTwoPiF

constexpr float jet::kInvTwoPiF = static_cast<float>(0.5 / kPiD)
constexpr

Float-type 1/2*pi.

◆ kMaxD

constexpr double jet::kMaxD = std::numeric_limits<double>::max()
constexpr

Max double.

◆ kMaxF

constexpr float jet::kMaxF = std::numeric_limits<float>::max()
constexpr

Max float.

◆ kMaxSize

constexpr size_t jet::kMaxSize = std::numeric_limits<size_t>::max()
constexpr

Max size_t.

◆ kMaxSSize

constexpr ssize_t jet::kMaxSSize = std::numeric_limits<ssize_t>::max()
constexpr

Max ssize_t.

◆ kOneSize

constexpr size_t jet::kOneSize = 1
constexpr

One size_t.

◆ kOneSSize

constexpr ssize_t jet::kOneSSize = 1
constexpr

One ssize_t.

◆ kPiD

constexpr double jet::kPiD = 3.14159265358979323846264338327950288
constexpr

Double-type pi.

◆ kPiF

constexpr float jet::kPiF = 3.14159265358979323846264338327950288f
constexpr

Float-type pi.

◆ kQuarterPiD

constexpr double jet::kQuarterPiD = 0.785398163397448309615660845819875721
constexpr

Double-type pi/4.

◆ kQuarterPiF

constexpr float jet::kQuarterPiF = 0.785398163397448309615660845819875721f
constexpr

Float-type pi/4.

◆ kSpeedOfSoundInWater

constexpr double jet::kSpeedOfSoundInWater = 1482.0
constexpr

Speed of sound in water at 20 degrees celcius.

◆ kTwoPiD

constexpr double jet::kTwoPiD = 2.0 * kPiD
constexpr

Double-type 2*pi.

◆ kTwoPiF

constexpr float jet::kTwoPiF = static_cast<float>(2.0 * kPiD)
constexpr

Float-type 2*pi.

◆ kWaterDensity

constexpr double jet::kWaterDensity = 1000.0
constexpr

Water density.

◆ kZeroSize

constexpr size_t jet::kZeroSize = 0
constexpr

Zero size_t.

◆ kZeroSSize

constexpr ssize_t jet::kZeroSSize = 0
constexpr

Zero ssize_t.

◆ warnLogger

Logger jet::warnLogger

Warn-level logger.

jet::kDirectionDown
constexpr int kDirectionDown
Down direction.
Definition: constants.h:321
jet::kDirectionLeft
constexpr int kDirectionLeft
Left direction.
Definition: constants.h:315
jet::kDirectionBack
constexpr int kDirectionBack
Back direction.
Definition: constants.h:327
jet::kDirectionFront
constexpr int kDirectionFront
Front direction.
Definition: constants.h:330
jet::kDirectionRight
constexpr int kDirectionRight
RIght direction.
Definition: constants.h:318
jet::kDirectionUp
constexpr int kDirectionUp
Up direction.
Definition: constants.h:324