Full Code of openxrlab/xrnerf for AI

main f8020561b91b cached
2000 files
15.8 MB
4.3M tokens
10809 symbols
1 requests
Copy disabled (too large) Download .txt
Showing preview only (17,055K chars total). Download the full file to get everything.
Repository: openxrlab/xrnerf
Branch: main
Commit: f8020561b91b
Files: 2000
Total size: 15.8 MB

Directory structure:
gitextract_oeikmd9e/

├── .github/
│   └── workflows/
│       ├── build.yml
│       └── lint.yml
├── .gitignore
├── .pre-commit-config.yaml
├── LICENSE
├── README.md
├── README_CN.md
├── configs/
│   ├── __init__.py
│   ├── _base_/
│   │   └── models/
│   │       └── nerf.py
│   ├── animatable_nerf/
│   │   ├── an_h36m_s11_novel_pose.py
│   │   ├── an_h36m_s11_train_pose.py
│   │   ├── an_h36m_s1_novel_pose.py
│   │   ├── an_h36m_s1_train_pose.py
│   │   ├── an_h36m_s5_novel_pose.py
│   │   ├── an_h36m_s5_train_pose.py
│   │   ├── an_h36m_s6_novel_pose.py
│   │   ├── an_h36m_s6_train_pose.py
│   │   ├── an_h36m_s7_novel_pose.py
│   │   ├── an_h36m_s7_train_pose.py
│   │   ├── an_h36m_s8_novel_pose.py
│   │   ├── an_h36m_s8_train_pose.py
│   │   ├── an_h36m_s9_novel_pose.py
│   │   ├── an_h36m_s9_render_train_pose.py
│   │   ├── an_h36m_s9_train_pose.py
│   │   ├── an_zjumocap_313_novel_pose.py
│   │   └── an_zjumocap_313_train_pose.py
│   ├── bungeenerf/
│   │   └── bungeenerf_multiscale_google.py
│   ├── gnr/
│   │   └── gnr_genebody.py
│   ├── instant_ngp/
│   │   └── nerf_blender_local01.py
│   ├── kilonerf/
│   │   ├── kilonerf_distill_BlendedMVS_base01.py
│   │   ├── kilonerf_distill_Synthetic_NeRF_base01.py
│   │   ├── kilonerf_finetune_BlendedMVS_base01.py
│   │   ├── kilonerf_finetune_Synthetic_NeRF_base01.py
│   │   ├── kilonerf_pretrain_BlendedMVS_base01.py
│   │   └── kilonerf_pretrain_Synthetic_NeRF_base01.py
│   ├── mipnerf/
│   │   ├── mipnerf_blender.py
│   │   └── mipnerf_multiscale.py
│   ├── nerf/
│   │   ├── nerf_blender_base01.py
│   │   └── nerf_llff_base01.py
│   └── neuralbody/
│       ├── nb_zjumocap_313.py
│       ├── nb_zjumocap_315.py
│       ├── nb_zjumocap_377.py
│       ├── nb_zjumocap_386.py
│       ├── nb_zjumocap_387.py
│       ├── nb_zjumocap_390.py
│       ├── nb_zjumocap_392.py
│       ├── nb_zjumocap_393.py
│       ├── nb_zjumocap_394.py
│       └── nb_zjumocap_render_313.py
├── docker/
│   ├── Dockerfile
│   ├── DockerfileCN
│   ├── daemon.json
│   └── sources.list
├── docs/
│   ├── en/
│   │   ├── CONTRIBUTING.md
│   │   ├── additional_licenses.md
│   │   ├── apis.md
│   │   ├── benchmark.md
│   │   ├── dataset_preparation.md
│   │   ├── faq.md
│   │   ├── get_started.md
│   │   ├── installation.md
│   │   └── tutorials/
│   │       ├── config.md
│   │       ├── data_pipeline.md
│   │       └── model.md
│   └── zh_cn/
│       ├── apis.md
│       ├── dataset_preparation.md
│       ├── get_started.md
│       ├── installation.md
│       └── tutorials/
│           ├── config.md
│           ├── data_pipeline.md
│           └── model.md
├── extensions/
│   ├── mesh_grid/
│   │   ├── README.md
│   │   ├── __init__.py
│   │   ├── matrix.h
│   │   ├── mesh_grid.cpp
│   │   ├── mesh_grid_kernel.cu
│   │   ├── mesh_grid_searcher.py
│   │   ├── render.cpp
│   │   ├── render.cu
│   │   ├── render.h
│   │   ├── setup.py
│   │   ├── surface_inside.cpp
│   │   └── test_mesh_grid.py
│   └── ngp_raymarch/
│       ├── README.md
│       ├── include/
│       │   ├── op_include/
│       │   │   ├── eigen/
│       │   │   │   ├── .gitignore
│       │   │   │   ├── .gitlab/
│       │   │   │   │   ├── issue_templates/
│       │   │   │   │   │   ├── Bug Report.md
│       │   │   │   │   │   └── Feature Request.md
│       │   │   │   │   └── merge_request_templates/
│       │   │   │   │       └── Merge Request Template.md
│       │   │   │   ├── .gitlab-ci.yml
│       │   │   │   ├── .hgeol
│       │   │   │   ├── COPYING.APACHE
│       │   │   │   ├── COPYING.BSD
│       │   │   │   ├── COPYING.GPL
│       │   │   │   ├── COPYING.LGPL
│       │   │   │   ├── COPYING.MINPACK
│       │   │   │   ├── COPYING.MPL2
│       │   │   │   ├── COPYING.README
│       │   │   │   ├── CTestConfig.cmake
│       │   │   │   ├── CTestCustom.cmake.in
│       │   │   │   ├── Eigen/
│       │   │   │   │   ├── Cholesky
│       │   │   │   │   ├── CholmodSupport
│       │   │   │   │   ├── Core
│       │   │   │   │   ├── Dense
│       │   │   │   │   ├── Eigen
│       │   │   │   │   ├── Eigenvalues
│       │   │   │   │   ├── Geometry
│       │   │   │   │   ├── Householder
│       │   │   │   │   ├── IterativeLinearSolvers
│       │   │   │   │   ├── Jacobi
│       │   │   │   │   ├── KLUSupport
│       │   │   │   │   ├── LU
│       │   │   │   │   ├── MetisSupport
│       │   │   │   │   ├── OrderingMethods
│       │   │   │   │   ├── PaStiXSupport
│       │   │   │   │   ├── PardisoSupport
│       │   │   │   │   ├── QR
│       │   │   │   │   ├── QtAlignedMalloc
│       │   │   │   │   ├── SPQRSupport
│       │   │   │   │   ├── SVD
│       │   │   │   │   ├── Sparse
│       │   │   │   │   ├── SparseCholesky
│       │   │   │   │   ├── SparseCore
│       │   │   │   │   ├── SparseLU
│       │   │   │   │   ├── SparseQR
│       │   │   │   │   ├── StdDeque
│       │   │   │   │   ├── StdList
│       │   │   │   │   ├── StdVector
│       │   │   │   │   ├── SuperLUSupport
│       │   │   │   │   ├── UmfPackSupport
│       │   │   │   │   └── src/
│       │   │   │   │       ├── Cholesky/
│       │   │   │   │       │   ├── InternalHeaderCheck.h
│       │   │   │   │       │   ├── LDLT.h
│       │   │   │   │       │   ├── LLT.h
│       │   │   │   │       │   └── LLT_LAPACKE.h
│       │   │   │   │       ├── CholmodSupport/
│       │   │   │   │       │   ├── CholmodSupport.h
│       │   │   │   │       │   └── InternalHeaderCheck.h
│       │   │   │   │       ├── Core/
│       │   │   │   │       │   ├── ArithmeticSequence.h
│       │   │   │   │       │   ├── Array.h
│       │   │   │   │       │   ├── ArrayBase.h
│       │   │   │   │       │   ├── ArrayWrapper.h
│       │   │   │   │       │   ├── Assign.h
│       │   │   │   │       │   ├── AssignEvaluator.h
│       │   │   │   │       │   ├── Assign_MKL.h
│       │   │   │   │       │   ├── BandMatrix.h
│       │   │   │   │       │   ├── Block.h
│       │   │   │   │       │   ├── BooleanRedux.h
│       │   │   │   │       │   ├── CommaInitializer.h
│       │   │   │   │       │   ├── ConditionEstimator.h
│       │   │   │   │       │   ├── CoreEvaluators.h
│       │   │   │   │       │   ├── CoreIterators.h
│       │   │   │   │       │   ├── CwiseBinaryOp.h
│       │   │   │   │       │   ├── CwiseNullaryOp.h
│       │   │   │   │       │   ├── CwiseTernaryOp.h
│       │   │   │   │       │   ├── CwiseUnaryOp.h
│       │   │   │   │       │   ├── CwiseUnaryView.h
│       │   │   │   │       │   ├── DenseBase.h
│       │   │   │   │       │   ├── DenseCoeffsBase.h
│       │   │   │   │       │   ├── DenseStorage.h
│       │   │   │   │       │   ├── Diagonal.h
│       │   │   │   │       │   ├── DiagonalMatrix.h
│       │   │   │   │       │   ├── DiagonalProduct.h
│       │   │   │   │       │   ├── Dot.h
│       │   │   │   │       │   ├── EigenBase.h
│       │   │   │   │       │   ├── ForceAlignedAccess.h
│       │   │   │   │       │   ├── Fuzzy.h
│       │   │   │   │       │   ├── GeneralProduct.h
│       │   │   │   │       │   ├── GenericPacketMath.h
│       │   │   │   │       │   ├── GlobalFunctions.h
│       │   │   │   │       │   ├── IO.h
│       │   │   │   │       │   ├── IndexedView.h
│       │   │   │   │       │   ├── InternalHeaderCheck.h
│       │   │   │   │       │   ├── Inverse.h
│       │   │   │   │       │   ├── Map.h
│       │   │   │   │       │   ├── MapBase.h
│       │   │   │   │       │   ├── MathFunctions.h
│       │   │   │   │       │   ├── MathFunctionsImpl.h
│       │   │   │   │       │   ├── Matrix.h
│       │   │   │   │       │   ├── MatrixBase.h
│       │   │   │   │       │   ├── NestByValue.h
│       │   │   │   │       │   ├── NoAlias.h
│       │   │   │   │       │   ├── NumTraits.h
│       │   │   │   │       │   ├── PartialReduxEvaluator.h
│       │   │   │   │       │   ├── PermutationMatrix.h
│       │   │   │   │       │   ├── PlainObjectBase.h
│       │   │   │   │       │   ├── Product.h
│       │   │   │   │       │   ├── ProductEvaluators.h
│       │   │   │   │       │   ├── Random.h
│       │   │   │   │       │   ├── Redux.h
│       │   │   │   │       │   ├── Ref.h
│       │   │   │   │       │   ├── Replicate.h
│       │   │   │   │       │   ├── Reshaped.h
│       │   │   │   │       │   ├── ReturnByValue.h
│       │   │   │   │       │   ├── Reverse.h
│       │   │   │   │       │   ├── Select.h
│       │   │   │   │       │   ├── SelfAdjointView.h
│       │   │   │   │       │   ├── SelfCwiseBinaryOp.h
│       │   │   │   │       │   ├── Solve.h
│       │   │   │   │       │   ├── SolveTriangular.h
│       │   │   │   │       │   ├── SolverBase.h
│       │   │   │   │       │   ├── StableNorm.h
│       │   │   │   │       │   ├── StlIterators.h
│       │   │   │   │       │   ├── Stride.h
│       │   │   │   │       │   ├── Swap.h
│       │   │   │   │       │   ├── Transpose.h
│       │   │   │   │       │   ├── Transpositions.h
│       │   │   │   │       │   ├── TriangularMatrix.h
│       │   │   │   │       │   ├── VectorBlock.h
│       │   │   │   │       │   ├── VectorwiseOp.h
│       │   │   │   │       │   ├── Visitor.h
│       │   │   │   │       │   ├── arch/
│       │   │   │   │       │   │   ├── AVX/
│       │   │   │   │       │   │   │   ├── Complex.h
│       │   │   │   │       │   │   │   ├── MathFunctions.h
│       │   │   │   │       │   │   │   ├── PacketMath.h
│       │   │   │   │       │   │   │   └── TypeCasting.h
│       │   │   │   │       │   │   ├── AVX512/
│       │   │   │   │       │   │   │   ├── Complex.h
│       │   │   │   │       │   │   │   ├── MathFunctions.h
│       │   │   │   │       │   │   │   ├── PacketMath.h
│       │   │   │   │       │   │   │   └── TypeCasting.h
│       │   │   │   │       │   │   ├── AltiVec/
│       │   │   │   │       │   │   │   ├── Complex.h
│       │   │   │   │       │   │   │   ├── MathFunctions.h
│       │   │   │   │       │   │   │   ├── MatrixProduct.h
│       │   │   │   │       │   │   │   ├── MatrixProductCommon.h
│       │   │   │   │       │   │   │   ├── MatrixProductMMA.h
│       │   │   │   │       │   │   │   └── PacketMath.h
│       │   │   │   │       │   │   ├── Default/
│       │   │   │   │       │   │   │   ├── BFloat16.h
│       │   │   │   │       │   │   │   ├── ConjHelper.h
│       │   │   │   │       │   │   │   ├── GenericPacketMathFunctions.h
│       │   │   │   │       │   │   │   ├── GenericPacketMathFunctionsFwd.h
│       │   │   │   │       │   │   │   ├── Half.h
│       │   │   │   │       │   │   │   ├── Settings.h
│       │   │   │   │       │   │   │   └── TypeCasting.h
│       │   │   │   │       │   │   ├── GPU/
│       │   │   │   │       │   │   │   ├── Complex.h
│       │   │   │   │       │   │   │   ├── MathFunctions.h
│       │   │   │   │       │   │   │   ├── PacketMath.h
│       │   │   │   │       │   │   │   ├── Tuple.h
│       │   │   │   │       │   │   │   └── TypeCasting.h
│       │   │   │   │       │   │   ├── HIP/
│       │   │   │   │       │   │   │   └── hcc/
│       │   │   │   │       │   │   │       └── math_constants.h
│       │   │   │   │       │   │   ├── MSA/
│       │   │   │   │       │   │   │   ├── Complex.h
│       │   │   │   │       │   │   │   ├── MathFunctions.h
│       │   │   │   │       │   │   │   └── PacketMath.h
│       │   │   │   │       │   │   ├── NEON/
│       │   │   │   │       │   │   │   ├── Complex.h
│       │   │   │   │       │   │   │   ├── GeneralBlockPanelKernel.h
│       │   │   │   │       │   │   │   ├── MathFunctions.h
│       │   │   │   │       │   │   │   ├── PacketMath.h
│       │   │   │   │       │   │   │   ├── TypeCasting.h
│       │   │   │   │       │   │   │   └── UnaryFunctors.h
│       │   │   │   │       │   │   ├── SSE/
│       │   │   │   │       │   │   │   ├── Complex.h
│       │   │   │   │       │   │   │   ├── MathFunctions.h
│       │   │   │   │       │   │   │   ├── PacketMath.h
│       │   │   │   │       │   │   │   └── TypeCasting.h
│       │   │   │   │       │   │   ├── SVE/
│       │   │   │   │       │   │   │   ├── MathFunctions.h
│       │   │   │   │       │   │   │   ├── PacketMath.h
│       │   │   │   │       │   │   │   └── TypeCasting.h
│       │   │   │   │       │   │   ├── SYCL/
│       │   │   │   │       │   │   │   ├── InteropHeaders.h
│       │   │   │   │       │   │   │   ├── MathFunctions.h
│       │   │   │   │       │   │   │   ├── PacketMath.h
│       │   │   │   │       │   │   │   ├── SyclMemoryModel.h
│       │   │   │   │       │   │   │   └── TypeCasting.h
│       │   │   │   │       │   │   └── ZVector/
│       │   │   │   │       │   │       ├── Complex.h
│       │   │   │   │       │   │       ├── MathFunctions.h
│       │   │   │   │       │   │       └── PacketMath.h
│       │   │   │   │       │   ├── functors/
│       │   │   │   │       │   │   ├── AssignmentFunctors.h
│       │   │   │   │       │   │   ├── BinaryFunctors.h
│       │   │   │   │       │   │   ├── NullaryFunctors.h
│       │   │   │   │       │   │   ├── StlFunctors.h
│       │   │   │   │       │   │   ├── TernaryFunctors.h
│       │   │   │   │       │   │   └── UnaryFunctors.h
│       │   │   │   │       │   ├── products/
│       │   │   │   │       │   │   ├── GeneralBlockPanelKernel.h
│       │   │   │   │       │   │   ├── GeneralMatrixMatrix.h
│       │   │   │   │       │   │   ├── GeneralMatrixMatrixTriangular.h
│       │   │   │   │       │   │   ├── GeneralMatrixMatrixTriangular_BLAS.h
│       │   │   │   │       │   │   ├── GeneralMatrixMatrix_BLAS.h
│       │   │   │   │       │   │   ├── GeneralMatrixVector.h
│       │   │   │   │       │   │   ├── GeneralMatrixVector_BLAS.h
│       │   │   │   │       │   │   ├── Parallelizer.h
│       │   │   │   │       │   │   ├── SelfadjointMatrixMatrix.h
│       │   │   │   │       │   │   ├── SelfadjointMatrixMatrix_BLAS.h
│       │   │   │   │       │   │   ├── SelfadjointMatrixVector.h
│       │   │   │   │       │   │   ├── SelfadjointMatrixVector_BLAS.h
│       │   │   │   │       │   │   ├── SelfadjointProduct.h
│       │   │   │   │       │   │   ├── SelfadjointRank2Update.h
│       │   │   │   │       │   │   ├── TriangularMatrixMatrix.h
│       │   │   │   │       │   │   ├── TriangularMatrixMatrix_BLAS.h
│       │   │   │   │       │   │   ├── TriangularMatrixVector.h
│       │   │   │   │       │   │   ├── TriangularMatrixVector_BLAS.h
│       │   │   │   │       │   │   ├── TriangularSolverMatrix.h
│       │   │   │   │       │   │   ├── TriangularSolverMatrix_BLAS.h
│       │   │   │   │       │   │   └── TriangularSolverVector.h
│       │   │   │   │       │   └── util/
│       │   │   │   │       │       ├── BlasUtil.h
│       │   │   │   │       │       ├── ConfigureVectorization.h
│       │   │   │   │       │       ├── Constants.h
│       │   │   │   │       │       ├── DisableStupidWarnings.h
│       │   │   │   │       │       ├── ForwardDeclarations.h
│       │   │   │   │       │       ├── IndexedViewHelper.h
│       │   │   │   │       │       ├── IntegralConstant.h
│       │   │   │   │       │       ├── MKL_support.h
│       │   │   │   │       │       ├── Macros.h
│       │   │   │   │       │       ├── Memory.h
│       │   │   │   │       │       ├── Meta.h
│       │   │   │   │       │       ├── NonMPL2.h
│       │   │   │   │       │       ├── ReenableStupidWarnings.h
│       │   │   │   │       │       ├── ReshapedHelper.h
│       │   │   │   │       │       ├── Serializer.h
│       │   │   │   │       │       ├── StaticAssert.h
│       │   │   │   │       │       ├── SymbolicIndex.h
│       │   │   │   │       │       └── XprHelper.h
│       │   │   │   │       ├── Eigenvalues/
│       │   │   │   │       │   ├── ComplexEigenSolver.h
│       │   │   │   │       │   ├── ComplexSchur.h
│       │   │   │   │       │   ├── ComplexSchur_LAPACKE.h
│       │   │   │   │       │   ├── EigenSolver.h
│       │   │   │   │       │   ├── GeneralizedEigenSolver.h
│       │   │   │   │       │   ├── GeneralizedSelfAdjointEigenSolver.h
│       │   │   │   │       │   ├── HessenbergDecomposition.h
│       │   │   │   │       │   ├── InternalHeaderCheck.h
│       │   │   │   │       │   ├── MatrixBaseEigenvalues.h
│       │   │   │   │       │   ├── RealQZ.h
│       │   │   │   │       │   ├── RealSchur.h
│       │   │   │   │       │   ├── RealSchur_LAPACKE.h
│       │   │   │   │       │   ├── SelfAdjointEigenSolver.h
│       │   │   │   │       │   ├── SelfAdjointEigenSolver_LAPACKE.h
│       │   │   │   │       │   └── Tridiagonalization.h
│       │   │   │   │       ├── Geometry/
│       │   │   │   │       │   ├── AlignedBox.h
│       │   │   │   │       │   ├── AngleAxis.h
│       │   │   │   │       │   ├── EulerAngles.h
│       │   │   │   │       │   ├── Homogeneous.h
│       │   │   │   │       │   ├── Hyperplane.h
│       │   │   │   │       │   ├── InternalHeaderCheck.h
│       │   │   │   │       │   ├── OrthoMethods.h
│       │   │   │   │       │   ├── ParametrizedLine.h
│       │   │   │   │       │   ├── Quaternion.h
│       │   │   │   │       │   ├── Rotation2D.h
│       │   │   │   │       │   ├── RotationBase.h
│       │   │   │   │       │   ├── Scaling.h
│       │   │   │   │       │   ├── Transform.h
│       │   │   │   │       │   ├── Translation.h
│       │   │   │   │       │   ├── Umeyama.h
│       │   │   │   │       │   └── arch/
│       │   │   │   │       │       └── Geometry_SIMD.h
│       │   │   │   │       ├── Householder/
│       │   │   │   │       │   ├── BlockHouseholder.h
│       │   │   │   │       │   ├── Householder.h
│       │   │   │   │       │   ├── HouseholderSequence.h
│       │   │   │   │       │   └── InternalHeaderCheck.h
│       │   │   │   │       ├── IterativeLinearSolvers/
│       │   │   │   │       │   ├── BasicPreconditioners.h
│       │   │   │   │       │   ├── BiCGSTAB.h
│       │   │   │   │       │   ├── ConjugateGradient.h
│       │   │   │   │       │   ├── IncompleteCholesky.h
│       │   │   │   │       │   ├── IncompleteLUT.h
│       │   │   │   │       │   ├── InternalHeaderCheck.h
│       │   │   │   │       │   ├── IterativeSolverBase.h
│       │   │   │   │       │   ├── LeastSquareConjugateGradient.h
│       │   │   │   │       │   └── SolveWithGuess.h
│       │   │   │   │       ├── Jacobi/
│       │   │   │   │       │   ├── InternalHeaderCheck.h
│       │   │   │   │       │   └── Jacobi.h
│       │   │   │   │       ├── KLUSupport/
│       │   │   │   │       │   ├── InternalHeaderCheck.h
│       │   │   │   │       │   └── KLUSupport.h
│       │   │   │   │       ├── LU/
│       │   │   │   │       │   ├── Determinant.h
│       │   │   │   │       │   ├── FullPivLU.h
│       │   │   │   │       │   ├── InternalHeaderCheck.h
│       │   │   │   │       │   ├── InverseImpl.h
│       │   │   │   │       │   ├── PartialPivLU.h
│       │   │   │   │       │   ├── PartialPivLU_LAPACKE.h
│       │   │   │   │       │   └── arch/
│       │   │   │   │       │       └── InverseSize4.h
│       │   │   │   │       ├── MetisSupport/
│       │   │   │   │       │   ├── InternalHeaderCheck.h
│       │   │   │   │       │   └── MetisSupport.h
│       │   │   │   │       ├── OrderingMethods/
│       │   │   │   │       │   ├── Amd.h
│       │   │   │   │       │   ├── Eigen_Colamd.h
│       │   │   │   │       │   ├── InternalHeaderCheck.h
│       │   │   │   │       │   └── Ordering.h
│       │   │   │   │       ├── PaStiXSupport/
│       │   │   │   │       │   ├── InternalHeaderCheck.h
│       │   │   │   │       │   └── PaStiXSupport.h
│       │   │   │   │       ├── PardisoSupport/
│       │   │   │   │       │   ├── InternalHeaderCheck.h
│       │   │   │   │       │   └── PardisoSupport.h
│       │   │   │   │       ├── QR/
│       │   │   │   │       │   ├── ColPivHouseholderQR.h
│       │   │   │   │       │   ├── ColPivHouseholderQR_LAPACKE.h
│       │   │   │   │       │   ├── CompleteOrthogonalDecomposition.h
│       │   │   │   │       │   ├── FullPivHouseholderQR.h
│       │   │   │   │       │   ├── HouseholderQR.h
│       │   │   │   │       │   ├── HouseholderQR_LAPACKE.h
│       │   │   │   │       │   └── InternalHeaderCheck.h
│       │   │   │   │       ├── SPQRSupport/
│       │   │   │   │       │   ├── InternalHeaderCheck.h
│       │   │   │   │       │   └── SuiteSparseQRSupport.h
│       │   │   │   │       ├── SVD/
│       │   │   │   │       │   ├── BDCSVD.h
│       │   │   │   │       │   ├── InternalHeaderCheck.h
│       │   │   │   │       │   ├── JacobiSVD.h
│       │   │   │   │       │   ├── JacobiSVD_LAPACKE.h
│       │   │   │   │       │   ├── SVDBase.h
│       │   │   │   │       │   └── UpperBidiagonalization.h
│       │   │   │   │       ├── SparseCholesky/
│       │   │   │   │       │   ├── InternalHeaderCheck.h
│       │   │   │   │       │   ├── SimplicialCholesky.h
│       │   │   │   │       │   └── SimplicialCholesky_impl.h
│       │   │   │   │       ├── SparseCore/
│       │   │   │   │       │   ├── AmbiVector.h
│       │   │   │   │       │   ├── CompressedStorage.h
│       │   │   │   │       │   ├── ConservativeSparseSparseProduct.h
│       │   │   │   │       │   ├── InternalHeaderCheck.h
│       │   │   │   │       │   ├── MappedSparseMatrix.h
│       │   │   │   │       │   ├── SparseAssign.h
│       │   │   │   │       │   ├── SparseBlock.h
│       │   │   │   │       │   ├── SparseColEtree.h
│       │   │   │   │       │   ├── SparseCompressedBase.h
│       │   │   │   │       │   ├── SparseCwiseBinaryOp.h
│       │   │   │   │       │   ├── SparseCwiseUnaryOp.h
│       │   │   │   │       │   ├── SparseDenseProduct.h
│       │   │   │   │       │   ├── SparseDiagonalProduct.h
│       │   │   │   │       │   ├── SparseDot.h
│       │   │   │   │       │   ├── SparseFuzzy.h
│       │   │   │   │       │   ├── SparseMap.h
│       │   │   │   │       │   ├── SparseMatrix.h
│       │   │   │   │       │   ├── SparseMatrixBase.h
│       │   │   │   │       │   ├── SparsePermutation.h
│       │   │   │   │       │   ├── SparseProduct.h
│       │   │   │   │       │   ├── SparseRedux.h
│       │   │   │   │       │   ├── SparseRef.h
│       │   │   │   │       │   ├── SparseSelfAdjointView.h
│       │   │   │   │       │   ├── SparseSolverBase.h
│       │   │   │   │       │   ├── SparseSparseProductWithPruning.h
│       │   │   │   │       │   ├── SparseTranspose.h
│       │   │   │   │       │   ├── SparseTriangularView.h
│       │   │   │   │       │   ├── SparseUtil.h
│       │   │   │   │       │   ├── SparseVector.h
│       │   │   │   │       │   ├── SparseView.h
│       │   │   │   │       │   └── TriangularSolver.h
│       │   │   │   │       ├── SparseLU/
│       │   │   │   │       │   ├── InternalHeaderCheck.h
│       │   │   │   │       │   ├── SparseLU.h
│       │   │   │   │       │   ├── SparseLUImpl.h
│       │   │   │   │       │   ├── SparseLU_Memory.h
│       │   │   │   │       │   ├── SparseLU_Structs.h
│       │   │   │   │       │   ├── SparseLU_SupernodalMatrix.h
│       │   │   │   │       │   ├── SparseLU_Utils.h
│       │   │   │   │       │   ├── SparseLU_column_bmod.h
│       │   │   │   │       │   ├── SparseLU_column_dfs.h
│       │   │   │   │       │   ├── SparseLU_copy_to_ucol.h
│       │   │   │   │       │   ├── SparseLU_gemm_kernel.h
│       │   │   │   │       │   ├── SparseLU_heap_relax_snode.h
│       │   │   │   │       │   ├── SparseLU_kernel_bmod.h
│       │   │   │   │       │   ├── SparseLU_panel_bmod.h
│       │   │   │   │       │   ├── SparseLU_panel_dfs.h
│       │   │   │   │       │   ├── SparseLU_pivotL.h
│       │   │   │   │       │   ├── SparseLU_pruneL.h
│       │   │   │   │       │   └── SparseLU_relax_snode.h
│       │   │   │   │       ├── SparseQR/
│       │   │   │   │       │   ├── InternalHeaderCheck.h
│       │   │   │   │       │   └── SparseQR.h
│       │   │   │   │       ├── StlSupport/
│       │   │   │   │       │   ├── StdDeque.h
│       │   │   │   │       │   ├── StdList.h
│       │   │   │   │       │   ├── StdVector.h
│       │   │   │   │       │   └── details.h
│       │   │   │   │       ├── SuperLUSupport/
│       │   │   │   │       │   ├── InternalHeaderCheck.h
│       │   │   │   │       │   └── SuperLUSupport.h
│       │   │   │   │       ├── UmfPackSupport/
│       │   │   │   │       │   ├── InternalHeaderCheck.h
│       │   │   │   │       │   └── UmfPackSupport.h
│       │   │   │   │       ├── misc/
│       │   │   │   │       │   ├── Image.h
│       │   │   │   │       │   ├── InternalHeaderCheck.h
│       │   │   │   │       │   ├── Kernel.h
│       │   │   │   │       │   ├── RealSvd2x2.h
│       │   │   │   │       │   ├── blas.h
│       │   │   │   │       │   ├── lapack.h
│       │   │   │   │       │   ├── lapacke.h
│       │   │   │   │       │   └── lapacke_mangling.h
│       │   │   │   │       └── plugins/
│       │   │   │   │           ├── ArrayCwiseBinaryOps.h
│       │   │   │   │           ├── ArrayCwiseUnaryOps.h
│       │   │   │   │           ├── BlockMethods.h
│       │   │   │   │           ├── CommonCwiseBinaryOps.h
│       │   │   │   │           ├── CommonCwiseUnaryOps.h
│       │   │   │   │           ├── IndexedViewMethods.h
│       │   │   │   │           ├── InternalHeaderCheck.h
│       │   │   │   │           ├── MatrixCwiseBinaryOps.h
│       │   │   │   │           ├── MatrixCwiseUnaryOps.h
│       │   │   │   │           └── ReshapedMethods.h
│       │   │   │   ├── INSTALL
│       │   │   │   ├── README.md
│       │   │   │   ├── bench/
│       │   │   │   │   ├── BenchSparseUtil.h
│       │   │   │   │   ├── BenchTimer.h
│       │   │   │   │   ├── BenchUtil.h
│       │   │   │   │   ├── analyze-blocking-sizes.cpp
│       │   │   │   │   ├── basicbench.cxxlist
│       │   │   │   │   ├── basicbenchmark.cpp
│       │   │   │   │   ├── basicbenchmark.h
│       │   │   │   │   ├── benchBlasGemm.cpp
│       │   │   │   │   ├── benchCholesky.cpp
│       │   │   │   │   ├── benchEigenSolver.cpp
│       │   │   │   │   ├── benchFFT.cpp
│       │   │   │   │   ├── benchGeometry.cpp
│       │   │   │   │   ├── benchVecAdd.cpp
│       │   │   │   │   ├── bench_gemm.cpp
│       │   │   │   │   ├── bench_move_semantics.cpp
│       │   │   │   │   ├── bench_multi_compilers.sh
│       │   │   │   │   ├── bench_norm.cpp
│       │   │   │   │   ├── bench_reverse.cpp
│       │   │   │   │   ├── bench_sum.cpp
│       │   │   │   │   ├── bench_unrolling
│       │   │   │   │   ├── benchmark-blocking-sizes.cpp
│       │   │   │   │   ├── benchmark.cpp
│       │   │   │   │   ├── benchmarkSlice.cpp
│       │   │   │   │   ├── benchmarkX.cpp
│       │   │   │   │   ├── benchmarkXcwise.cpp
│       │   │   │   │   ├── benchmark_suite
│       │   │   │   │   ├── btl/
│       │   │   │   │   │   ├── COPYING
│       │   │   │   │   │   ├── README
│       │   │   │   │   │   ├── actions/
│       │   │   │   │   │   │   ├── action_aat_product.hh
│       │   │   │   │   │   │   ├── action_ata_product.hh
│       │   │   │   │   │   │   ├── action_atv_product.hh
│       │   │   │   │   │   │   ├── action_axpby.hh
│       │   │   │   │   │   │   ├── action_axpy.hh
│       │   │   │   │   │   │   ├── action_cholesky.hh
│       │   │   │   │   │   │   ├── action_ger.hh
│       │   │   │   │   │   │   ├── action_hessenberg.hh
│       │   │   │   │   │   │   ├── action_lu_decomp.hh
│       │   │   │   │   │   │   ├── action_lu_solve.hh
│       │   │   │   │   │   │   ├── action_matrix_matrix_product.hh
│       │   │   │   │   │   │   ├── action_matrix_matrix_product_bis.hh
│       │   │   │   │   │   │   ├── action_matrix_vector_product.hh
│       │   │   │   │   │   │   ├── action_partial_lu.hh
│       │   │   │   │   │   │   ├── action_rot.hh
│       │   │   │   │   │   │   ├── action_symv.hh
│       │   │   │   │   │   │   ├── action_syr2.hh
│       │   │   │   │   │   │   ├── action_trisolve.hh
│       │   │   │   │   │   │   ├── action_trisolve_matrix.hh
│       │   │   │   │   │   │   ├── action_trmm.hh
│       │   │   │   │   │   │   └── basic_actions.hh
│       │   │   │   │   │   ├── cmake/
│       │   │   │   │   │   │   ├── FindACML.cmake
│       │   │   │   │   │   │   ├── FindATLAS.cmake
│       │   │   │   │   │   │   ├── FindBLAZE.cmake
│       │   │   │   │   │   │   ├── FindBlitz.cmake
│       │   │   │   │   │   │   ├── FindCBLAS.cmake
│       │   │   │   │   │   │   ├── FindGMM.cmake
│       │   │   │   │   │   │   ├── FindMKL.cmake
│       │   │   │   │   │   │   ├── FindMTL4.cmake
│       │   │   │   │   │   │   ├── FindOPENBLAS.cmake
│       │   │   │   │   │   │   ├── FindPackageHandleStandardArgs.cmake
│       │   │   │   │   │   │   ├── FindTvmet.cmake
│       │   │   │   │   │   │   └── MacroOptionalAddSubdirectory.cmake
│       │   │   │   │   │   ├── generic_bench/
│       │   │   │   │   │   │   ├── bench.hh
│       │   │   │   │   │   │   ├── bench_parameter.hh
│       │   │   │   │   │   │   ├── btl.hh
│       │   │   │   │   │   │   ├── init/
│       │   │   │   │   │   │   │   ├── init_function.hh
│       │   │   │   │   │   │   │   ├── init_matrix.hh
│       │   │   │   │   │   │   │   └── init_vector.hh
│       │   │   │   │   │   │   ├── static/
│       │   │   │   │   │   │   │   ├── bench_static.hh
│       │   │   │   │   │   │   │   ├── intel_bench_fixed_size.hh
│       │   │   │   │   │   │   │   └── static_size_generator.hh
│       │   │   │   │   │   │   ├── timers/
│       │   │   │   │   │   │   │   ├── STL_perf_analyzer.hh
│       │   │   │   │   │   │   │   ├── STL_timer.hh
│       │   │   │   │   │   │   │   ├── mixed_perf_analyzer.hh
│       │   │   │   │   │   │   │   ├── portable_perf_analyzer.hh
│       │   │   │   │   │   │   │   ├── portable_perf_analyzer_old.hh
│       │   │   │   │   │   │   │   ├── portable_timer.hh
│       │   │   │   │   │   │   │   ├── x86_perf_analyzer.hh
│       │   │   │   │   │   │   │   └── x86_timer.hh
│       │   │   │   │   │   │   └── utils/
│       │   │   │   │   │   │       ├── size_lin_log.hh
│       │   │   │   │   │   │       ├── size_log.hh
│       │   │   │   │   │   │       ├── utilities.h
│       │   │   │   │   │   │       └── xy_file.hh
│       │   │   │   │   │   └── libs/
│       │   │   │   │   │       ├── BLAS/
│       │   │   │   │   │       │   ├── blas.h
│       │   │   │   │   │       │   ├── blas_interface.hh
│       │   │   │   │   │       │   ├── blas_interface_impl.hh
│       │   │   │   │   │       │   ├── c_interface_base.h
│       │   │   │   │   │       │   └── main.cpp
│       │   │   │   │   │       ├── STL/
│       │   │   │   │   │       │   ├── STL_interface.hh
│       │   │   │   │   │       │   └── main.cpp
│       │   │   │   │   │       ├── blaze/
│       │   │   │   │   │       │   ├── blaze_interface.hh
│       │   │   │   │   │       │   └── main.cpp
│       │   │   │   │   │       ├── blitz/
│       │   │   │   │   │       │   ├── blitz_LU_solve_interface.hh
│       │   │   │   │   │       │   ├── blitz_interface.hh
│       │   │   │   │   │       │   ├── btl_blitz.cpp
│       │   │   │   │   │       │   ├── btl_tiny_blitz.cpp
│       │   │   │   │   │       │   └── tiny_blitz_interface.hh
│       │   │   │   │   │       ├── eigen2/
│       │   │   │   │   │       │   ├── btl_tiny_eigen2.cpp
│       │   │   │   │   │       │   ├── eigen2_interface.hh
│       │   │   │   │   │       │   ├── main_adv.cpp
│       │   │   │   │   │       │   ├── main_linear.cpp
│       │   │   │   │   │       │   ├── main_matmat.cpp
│       │   │   │   │   │       │   └── main_vecmat.cpp
│       │   │   │   │   │       ├── eigen3/
│       │   │   │   │   │       │   ├── btl_tiny_eigen3.cpp
│       │   │   │   │   │       │   ├── eigen3_interface.hh
│       │   │   │   │   │       │   ├── main_adv.cpp
│       │   │   │   │   │       │   ├── main_linear.cpp
│       │   │   │   │   │       │   ├── main_matmat.cpp
│       │   │   │   │   │       │   └── main_vecmat.cpp
│       │   │   │   │   │       ├── gmm/
│       │   │   │   │   │       │   ├── gmm_LU_solve_interface.hh
│       │   │   │   │   │       │   ├── gmm_interface.hh
│       │   │   │   │   │       │   └── main.cpp
│       │   │   │   │   │       ├── mtl4/
│       │   │   │   │   │       │   ├── .kdbgrc.main
│       │   │   │   │   │       │   ├── main.cpp
│       │   │   │   │   │       │   ├── mtl4_LU_solve_interface.hh
│       │   │   │   │   │       │   └── mtl4_interface.hh
│       │   │   │   │   │       ├── tensors/
│       │   │   │   │   │       │   ├── main_linear.cpp
│       │   │   │   │   │       │   ├── main_matmat.cpp
│       │   │   │   │   │       │   ├── main_vecmat.cpp
│       │   │   │   │   │       │   └── tensor_interface.hh
│       │   │   │   │   │       ├── tvmet/
│       │   │   │   │   │       │   ├── main.cpp
│       │   │   │   │   │       │   └── tvmet_interface.hh
│       │   │   │   │   │       └── ublas/
│       │   │   │   │   │           ├── main.cpp
│       │   │   │   │   │           └── ublas_interface.hh
│       │   │   │   │   ├── check_cache_queries.cpp
│       │   │   │   │   ├── dense_solvers.cpp
│       │   │   │   │   ├── eig33.cpp
│       │   │   │   │   ├── geometry.cpp
│       │   │   │   │   ├── perf_monitoring/
│       │   │   │   │   │   ├── gemm.cpp
│       │   │   │   │   │   ├── gemm_common.h
│       │   │   │   │   │   ├── gemv.cpp
│       │   │   │   │   │   ├── gemv_common.h
│       │   │   │   │   │   ├── gemvt.cpp
│       │   │   │   │   │   ├── lazy_gemm.cpp
│       │   │   │   │   │   ├── llt.cpp
│       │   │   │   │   │   ├── make_plot.sh
│       │   │   │   │   │   ├── resources/
│       │   │   │   │   │   │   ├── chart_footer.html
│       │   │   │   │   │   │   ├── chart_header.html
│       │   │   │   │   │   │   ├── footer.html
│       │   │   │   │   │   │   ├── header.html
│       │   │   │   │   │   │   ├── s1.js
│       │   │   │   │   │   │   └── s2.js
│       │   │   │   │   │   ├── run.sh
│       │   │   │   │   │   ├── runall.sh
│       │   │   │   │   │   ├── trmv_lo.cpp
│       │   │   │   │   │   ├── trmv_lot.cpp
│       │   │   │   │   │   ├── trmv_up.cpp
│       │   │   │   │   │   └── trmv_upt.cpp
│       │   │   │   │   ├── product_threshold.cpp
│       │   │   │   │   ├── quat_slerp.cpp
│       │   │   │   │   ├── quatmul.cpp
│       │   │   │   │   ├── sparse_cholesky.cpp
│       │   │   │   │   ├── sparse_dense_product.cpp
│       │   │   │   │   ├── sparse_lu.cpp
│       │   │   │   │   ├── sparse_product.cpp
│       │   │   │   │   ├── sparse_randomsetter.cpp
│       │   │   │   │   ├── sparse_setter.cpp
│       │   │   │   │   ├── sparse_transpose.cpp
│       │   │   │   │   ├── sparse_trisolver.cpp
│       │   │   │   │   ├── spbench/
│       │   │   │   │   │   ├── sp_solver.cpp
│       │   │   │   │   │   ├── spbench.dtd
│       │   │   │   │   │   ├── spbenchsolver.cpp
│       │   │   │   │   │   ├── spbenchsolver.h
│       │   │   │   │   │   ├── spbenchstyle.h
│       │   │   │   │   │   └── test_sparseLU.cpp
│       │   │   │   │   ├── spmv.cpp
│       │   │   │   │   ├── tensors/
│       │   │   │   │   │   ├── README
│       │   │   │   │   │   ├── benchmark.h
│       │   │   │   │   │   ├── benchmark_main.cc
│       │   │   │   │   │   ├── contraction_benchmarks_cpu.cc
│       │   │   │   │   │   ├── eigen_sycl_bench.sh
│       │   │   │   │   │   ├── eigen_sycl_bench_contract.sh
│       │   │   │   │   │   ├── tensor_benchmarks.h
│       │   │   │   │   │   ├── tensor_benchmarks_cpu.cc
│       │   │   │   │   │   ├── tensor_benchmarks_fp16_gpu.cu
│       │   │   │   │   │   ├── tensor_benchmarks_gpu.cu
│       │   │   │   │   │   ├── tensor_benchmarks_sycl.cc
│       │   │   │   │   │   └── tensor_contract_sycl_bench.cc
│       │   │   │   │   └── vdw_new.cpp
│       │   │   │   ├── blas/
│       │   │   │   │   ├── BandTriangularSolver.h
│       │   │   │   │   ├── GeneralRank1Update.h
│       │   │   │   │   ├── PackedSelfadjointProduct.h
│       │   │   │   │   ├── PackedTriangularMatrixVector.h
│       │   │   │   │   ├── PackedTriangularSolverVector.h
│       │   │   │   │   ├── Rank2Update.h
│       │   │   │   │   ├── common.h
│       │   │   │   │   ├── complex_double.cpp
│       │   │   │   │   ├── complex_single.cpp
│       │   │   │   │   ├── double.cpp
│       │   │   │   │   ├── f2c/
│       │   │   │   │   │   ├── chbmv.c
│       │   │   │   │   │   ├── chpmv.c
│       │   │   │   │   │   ├── complexdots.c
│       │   │   │   │   │   ├── ctbmv.c
│       │   │   │   │   │   ├── d_cnjg.c
│       │   │   │   │   │   ├── datatypes.h
│       │   │   │   │   │   ├── drotm.c
│       │   │   │   │   │   ├── drotmg.c
│       │   │   │   │   │   ├── dsbmv.c
│       │   │   │   │   │   ├── dspmv.c
│       │   │   │   │   │   ├── dtbmv.c
│       │   │   │   │   │   ├── lsame.c
│       │   │   │   │   │   ├── r_cnjg.c
│       │   │   │   │   │   ├── srotm.c
│       │   │   │   │   │   ├── srotmg.c
│       │   │   │   │   │   ├── ssbmv.c
│       │   │   │   │   │   ├── sspmv.c
│       │   │   │   │   │   ├── stbmv.c
│       │   │   │   │   │   ├── zhbmv.c
│       │   │   │   │   │   ├── zhpmv.c
│       │   │   │   │   │   └── ztbmv.c
│       │   │   │   │   ├── fortran/
│       │   │   │   │   │   └── complexdots.f
│       │   │   │   │   ├── level1_cplx_impl.h
│       │   │   │   │   ├── level1_impl.h
│       │   │   │   │   ├── level1_real_impl.h
│       │   │   │   │   ├── level2_cplx_impl.h
│       │   │   │   │   ├── level2_impl.h
│       │   │   │   │   ├── level2_real_impl.h
│       │   │   │   │   ├── level3_impl.h
│       │   │   │   │   ├── single.cpp
│       │   │   │   │   ├── testing/
│       │   │   │   │   │   ├── cblat1.f
│       │   │   │   │   │   ├── cblat2.f
│       │   │   │   │   │   ├── cblat3.f
│       │   │   │   │   │   ├── dblat1.f
│       │   │   │   │   │   ├── dblat2.f
│       │   │   │   │   │   ├── dblat3.f
│       │   │   │   │   │   ├── runblastest.sh
│       │   │   │   │   │   ├── sblat1.f
│       │   │   │   │   │   ├── sblat2.f
│       │   │   │   │   │   ├── sblat3.f
│       │   │   │   │   │   ├── zblat1.f
│       │   │   │   │   │   ├── zblat2.f
│       │   │   │   │   │   └── zblat3.f
│       │   │   │   │   └── xerbla.cpp
│       │   │   │   ├── ci/
│       │   │   │   │   ├── CTest2JUnit.xsl
│       │   │   │   │   ├── README.md
│       │   │   │   │   ├── smoketests.gitlab-ci.yml
│       │   │   │   │   └── test.gitlab-ci.yml
│       │   │   │   ├── cmake/
│       │   │   │   │   ├── ComputeCppCompilerChecks.cmake
│       │   │   │   │   ├── ComputeCppIRMap.cmake
│       │   │   │   │   ├── Eigen3Config.cmake.in
│       │   │   │   │   ├── EigenConfigureTesting.cmake
│       │   │   │   │   ├── EigenSmokeTestList.cmake
│       │   │   │   │   ├── EigenTesting.cmake
│       │   │   │   │   ├── EigenUninstall.cmake
│       │   │   │   │   ├── FindAdolc.cmake
│       │   │   │   │   ├── FindBLAS.cmake
│       │   │   │   │   ├── FindBLASEXT.cmake
│       │   │   │   │   ├── FindCHOLMOD.cmake
│       │   │   │   │   ├── FindComputeCpp.cmake
│       │   │   │   │   ├── FindFFTW.cmake
│       │   │   │   │   ├── FindGLEW.cmake
│       │   │   │   │   ├── FindGMP.cmake
│       │   │   │   │   ├── FindGSL.cmake
│       │   │   │   │   ├── FindGoogleHash.cmake
│       │   │   │   │   ├── FindHWLOC.cmake
│       │   │   │   │   ├── FindKLU.cmake
│       │   │   │   │   ├── FindLAPACK.cmake
│       │   │   │   │   ├── FindMPFR.cmake
│       │   │   │   │   ├── FindMPREAL.cmake
│       │   │   │   │   ├── FindMetis.cmake
│       │   │   │   │   ├── FindPASTIX.cmake
│       │   │   │   │   ├── FindPTSCOTCH.cmake
│       │   │   │   │   ├── FindSCOTCH.cmake
│       │   │   │   │   ├── FindSPQR.cmake
│       │   │   │   │   ├── FindStandardMathLibrary.cmake
│       │   │   │   │   ├── FindSuperLU.cmake
│       │   │   │   │   ├── FindTriSYCL.cmake
│       │   │   │   │   ├── FindUMFPACK.cmake
│       │   │   │   │   └── RegexUtils.cmake
│       │   │   │   ├── debug/
│       │   │   │   │   ├── gdb/
│       │   │   │   │   │   ├── __init__.py
│       │   │   │   │   │   └── printers.py
│       │   │   │   │   ├── lldb/
│       │   │   │   │   │   └── eigenlldb.py
│       │   │   │   │   └── msvc/
│       │   │   │   │       └── eigen.natvis
│       │   │   │   ├── demos/
│       │   │   │   │   ├── mandelbrot/
│       │   │   │   │   │   ├── README
│       │   │   │   │   │   ├── mandelbrot.cpp
│       │   │   │   │   │   └── mandelbrot.h
│       │   │   │   │   ├── mix_eigen_and_c/
│       │   │   │   │   │   ├── README
│       │   │   │   │   │   ├── binary_library.cpp
│       │   │   │   │   │   ├── binary_library.h
│       │   │   │   │   │   └── example.c
│       │   │   │   │   └── opengl/
│       │   │   │   │       ├── README
│       │   │   │   │       ├── camera.cpp
│       │   │   │   │       ├── camera.h
│       │   │   │   │       ├── gpuhelper.cpp
│       │   │   │   │       ├── gpuhelper.h
│       │   │   │   │       ├── icosphere.cpp
│       │   │   │   │       ├── icosphere.h
│       │   │   │   │       ├── quaternion_demo.cpp
│       │   │   │   │       ├── quaternion_demo.h
│       │   │   │   │       ├── trackball.cpp
│       │   │   │   │       └── trackball.h
│       │   │   │   ├── doc/
│       │   │   │   │   ├── B01_Experimental.dox
│       │   │   │   │   ├── ClassHierarchy.dox
│       │   │   │   │   ├── CoeffwiseMathFunctionsTable.dox
│       │   │   │   │   ├── CustomizingEigen_CustomScalar.dox
│       │   │   │   │   ├── CustomizingEigen_InheritingMatrix.dox
│       │   │   │   │   ├── CustomizingEigen_NullaryExpr.dox
│       │   │   │   │   ├── CustomizingEigen_Plugins.dox
│       │   │   │   │   ├── DenseDecompositionBenchmark.dox
│       │   │   │   │   ├── Doxyfile.in
│       │   │   │   │   ├── FixedSizeVectorizable.dox
│       │   │   │   │   ├── FunctionsTakingEigenTypes.dox
│       │   │   │   │   ├── HiPerformance.dox
│       │   │   │   │   ├── InplaceDecomposition.dox
│       │   │   │   │   ├── InsideEigenExample.dox
│       │   │   │   │   ├── LeastSquares.dox
│       │   │   │   │   ├── Manual.dox
│       │   │   │   │   ├── MatrixfreeSolverExample.dox
│       │   │   │   │   ├── NewExpressionType.dox
│       │   │   │   │   ├── Overview.dox
│       │   │   │   │   ├── PassingByValue.dox
│       │   │   │   │   ├── Pitfalls.dox
│       │   │   │   │   ├── PreprocessorDirectives.dox
│       │   │   │   │   ├── QuickReference.dox
│       │   │   │   │   ├── QuickStartGuide.dox
│       │   │   │   │   ├── SparseLinearSystems.dox
│       │   │   │   │   ├── SparseQuickReference.dox
│       │   │   │   │   ├── StlContainers.dox
│       │   │   │   │   ├── StorageOrders.dox
│       │   │   │   │   ├── StructHavingEigenMembers.dox
│       │   │   │   │   ├── TemplateKeyword.dox
│       │   │   │   │   ├── TopicAliasing.dox
│       │   │   │   │   ├── TopicAssertions.dox
│       │   │   │   │   ├── TopicCMakeGuide.dox
│       │   │   │   │   ├── TopicEigenExpressionTemplates.dox
│       │   │   │   │   ├── TopicLazyEvaluation.dox
│       │   │   │   │   ├── TopicLinearAlgebraDecompositions.dox
│       │   │   │   │   ├── TopicMultithreading.dox
│       │   │   │   │   ├── TopicResizing.dox
│       │   │   │   │   ├── TopicScalarTypes.dox
│       │   │   │   │   ├── TopicVectorization.dox
│       │   │   │   │   ├── TutorialAdvancedInitialization.dox
│       │   │   │   │   ├── TutorialArrayClass.dox
│       │   │   │   │   ├── TutorialBlockOperations.dox
│       │   │   │   │   ├── TutorialGeometry.dox
│       │   │   │   │   ├── TutorialLinearAlgebra.dox
│       │   │   │   │   ├── TutorialMapClass.dox
│       │   │   │   │   ├── TutorialMatrixArithmetic.dox
│       │   │   │   │   ├── TutorialMatrixClass.dox
│       │   │   │   │   ├── TutorialReductionsVisitorsBroadcasting.dox
│       │   │   │   │   ├── TutorialReshape.dox
│       │   │   │   │   ├── TutorialSTL.dox
│       │   │   │   │   ├── TutorialSlicingIndexing.dox
│       │   │   │   │   ├── TutorialSparse.dox
│       │   │   │   │   ├── TutorialSparse_example_details.dox
│       │   │   │   │   ├── UnalignedArrayAssert.dox
│       │   │   │   │   ├── UsingBlasLapackBackends.dox
│       │   │   │   │   ├── UsingIntelMKL.dox
│       │   │   │   │   ├── UsingNVCC.dox
│       │   │   │   │   ├── WrongStackAlignment.dox
│       │   │   │   │   ├── eigen_navtree_hacks.js
│       │   │   │   │   ├── eigendoxy.css
│       │   │   │   │   ├── eigendoxy_footer.html.in
│       │   │   │   │   ├── eigendoxy_header.html.in
│       │   │   │   │   ├── eigendoxy_layout.xml.in
│       │   │   │   │   ├── eigendoxy_tabs.css
│       │   │   │   │   ├── examples/
│       │   │   │   │   │   ├── .krazy
│       │   │   │   │   │   ├── CustomizingEigen_Inheritance.cpp
│       │   │   │   │   │   ├── Cwise_erf.cpp
│       │   │   │   │   │   ├── Cwise_erfc.cpp
│       │   │   │   │   │   ├── Cwise_lgamma.cpp
│       │   │   │   │   │   ├── DenseBase_middleCols_int.cpp
│       │   │   │   │   │   ├── DenseBase_middleRows_int.cpp
│       │   │   │   │   │   ├── DenseBase_template_int_middleCols.cpp
│       │   │   │   │   │   ├── DenseBase_template_int_middleRows.cpp
│       │   │   │   │   │   ├── QuickStart_example.cpp
│       │   │   │   │   │   ├── QuickStart_example2_dynamic.cpp
│       │   │   │   │   │   ├── QuickStart_example2_fixed.cpp
│       │   │   │   │   │   ├── TemplateKeyword_flexible.cpp
│       │   │   │   │   │   ├── TemplateKeyword_simple.cpp
│       │   │   │   │   │   ├── TutorialInplaceLU.cpp
│       │   │   │   │   │   ├── TutorialLinAlgComputeTwice.cpp
│       │   │   │   │   │   ├── TutorialLinAlgExComputeSolveError.cpp
│       │   │   │   │   │   ├── TutorialLinAlgExSolveColPivHouseholderQR.cpp
│       │   │   │   │   │   ├── TutorialLinAlgExSolveLDLT.cpp
│       │   │   │   │   │   ├── TutorialLinAlgInverseDeterminant.cpp
│       │   │   │   │   │   ├── TutorialLinAlgRankRevealing.cpp
│       │   │   │   │   │   ├── TutorialLinAlgSVDSolve.cpp
│       │   │   │   │   │   ├── TutorialLinAlgSelfAdjointEigenSolver.cpp
│       │   │   │   │   │   ├── TutorialLinAlgSetThreshold.cpp
│       │   │   │   │   │   ├── Tutorial_ArrayClass_accessors.cpp
│       │   │   │   │   │   ├── Tutorial_ArrayClass_addition.cpp
│       │   │   │   │   │   ├── Tutorial_ArrayClass_cwise_other.cpp
│       │   │   │   │   │   ├── Tutorial_ArrayClass_interop.cpp
│       │   │   │   │   │   ├── Tutorial_ArrayClass_interop_matrix.cpp
│       │   │   │   │   │   ├── Tutorial_ArrayClass_mult.cpp
│       │   │   │   │   │   ├── Tutorial_BlockOperations_block_assignment.cpp
│       │   │   │   │   │   ├── Tutorial_BlockOperations_colrow.cpp
│       │   │   │   │   │   ├── Tutorial_BlockOperations_corner.cpp
│       │   │   │   │   │   ├── Tutorial_BlockOperations_print_block.cpp
│       │   │   │   │   │   ├── Tutorial_BlockOperations_vector.cpp
│       │   │   │   │   │   ├── Tutorial_PartialLU_solve.cpp
│       │   │   │   │   │   ├── Tutorial_ReductionsVisitorsBroadcasting_broadcast_1nn.cpp
│       │   │   │   │   │   ├── Tutorial_ReductionsVisitorsBroadcasting_broadcast_simple.cpp
│       │   │   │   │   │   ├── Tutorial_ReductionsVisitorsBroadcasting_broadcast_simple_rowwise.cpp
│       │   │   │   │   │   ├── Tutorial_ReductionsVisitorsBroadcasting_colwise.cpp
│       │   │   │   │   │   ├── Tutorial_ReductionsVisitorsBroadcasting_maxnorm.cpp
│       │   │   │   │   │   ├── Tutorial_ReductionsVisitorsBroadcasting_reductions_bool.cpp
│       │   │   │   │   │   ├── Tutorial_ReductionsVisitorsBroadcasting_reductions_norm.cpp
│       │   │   │   │   │   ├── Tutorial_ReductionsVisitorsBroadcasting_reductions_operatornorm.cpp
│       │   │   │   │   │   ├── Tutorial_ReductionsVisitorsBroadcasting_rowwise.cpp
│       │   │   │   │   │   ├── Tutorial_ReductionsVisitorsBroadcasting_visitors.cpp
│       │   │   │   │   │   ├── Tutorial_simple_example_dynamic_size.cpp
│       │   │   │   │   │   ├── Tutorial_simple_example_fixed_size.cpp
│       │   │   │   │   │   ├── class_Block.cpp
│       │   │   │   │   │   ├── class_CwiseBinaryOp.cpp
│       │   │   │   │   │   ├── class_CwiseUnaryOp.cpp
│       │   │   │   │   │   ├── class_CwiseUnaryOp_ptrfun.cpp
│       │   │   │   │   │   ├── class_FixedBlock.cpp
│       │   │   │   │   │   ├── class_FixedReshaped.cpp
│       │   │   │   │   │   ├── class_FixedVectorBlock.cpp
│       │   │   │   │   │   ├── class_Reshaped.cpp
│       │   │   │   │   │   ├── class_VectorBlock.cpp
│       │   │   │   │   │   ├── function_taking_eigenbase.cpp
│       │   │   │   │   │   ├── function_taking_ref.cpp
│       │   │   │   │   │   ├── make_circulant.cpp
│       │   │   │   │   │   ├── make_circulant.cpp.entry
│       │   │   │   │   │   ├── make_circulant.cpp.evaluator
│       │   │   │   │   │   ├── make_circulant.cpp.expression
│       │   │   │   │   │   ├── make_circulant.cpp.main
│       │   │   │   │   │   ├── make_circulant.cpp.preamble
│       │   │   │   │   │   ├── make_circulant.cpp.traits
│       │   │   │   │   │   ├── make_circulant2.cpp
│       │   │   │   │   │   ├── matrixfree_cg.cpp
│       │   │   │   │   │   ├── nullary_indexing.cpp
│       │   │   │   │   │   ├── tut_arithmetic_add_sub.cpp
│       │   │   │   │   │   ├── tut_arithmetic_dot_cross.cpp
│       │   │   │   │   │   ├── tut_arithmetic_matrix_mul.cpp
│       │   │   │   │   │   ├── tut_arithmetic_redux_basic.cpp
│       │   │   │   │   │   ├── tut_arithmetic_scalar_mul_div.cpp
│       │   │   │   │   │   ├── tut_matrix_coefficient_accessors.cpp
│       │   │   │   │   │   ├── tut_matrix_resize.cpp
│       │   │   │   │   │   └── tut_matrix_resize_fixed_size.cpp
│       │   │   │   │   ├── snippets/
│       │   │   │   │   │   ├── .krazy
│       │   │   │   │   │   ├── AngleAxis_mimic_euler.cpp
│       │   │   │   │   │   ├── Array_initializer_list_23_cxx11.cpp
│       │   │   │   │   │   ├── Array_initializer_list_vector_cxx11.cpp
│       │   │   │   │   │   ├── Array_variadic_ctor_cxx11.cpp
│       │   │   │   │   │   ├── BiCGSTAB_simple.cpp
│       │   │   │   │   │   ├── BiCGSTAB_step_by_step.cpp
│       │   │   │   │   │   ├── ColPivHouseholderQR_solve.cpp
│       │   │   │   │   │   ├── ComplexEigenSolver_compute.cpp
│       │   │   │   │   │   ├── ComplexEigenSolver_eigenvalues.cpp
│       │   │   │   │   │   ├── ComplexEigenSolver_eigenvectors.cpp
│       │   │   │   │   │   ├── ComplexSchur_compute.cpp
│       │   │   │   │   │   ├── ComplexSchur_matrixT.cpp
│       │   │   │   │   │   ├── ComplexSchur_matrixU.cpp
│       │   │   │   │   │   ├── Cwise_abs.cpp
│       │   │   │   │   │   ├── Cwise_abs2.cpp
│       │   │   │   │   │   ├── Cwise_acos.cpp
│       │   │   │   │   │   ├── Cwise_arg.cpp
│       │   │   │   │   │   ├── Cwise_array_power_array.cpp
│       │   │   │   │   │   ├── Cwise_asin.cpp
│       │   │   │   │   │   ├── Cwise_atan.cpp
│       │   │   │   │   │   ├── Cwise_boolean_and.cpp
│       │   │   │   │   │   ├── Cwise_boolean_not.cpp
│       │   │   │   │   │   ├── Cwise_boolean_or.cpp
│       │   │   │   │   │   ├── Cwise_boolean_xor.cpp
│       │   │   │   │   │   ├── Cwise_ceil.cpp
│       │   │   │   │   │   ├── Cwise_cos.cpp
│       │   │   │   │   │   ├── Cwise_cosh.cpp
│       │   │   │   │   │   ├── Cwise_cube.cpp
│       │   │   │   │   │   ├── Cwise_equal_equal.cpp
│       │   │   │   │   │   ├── Cwise_exp.cpp
│       │   │   │   │   │   ├── Cwise_floor.cpp
│       │   │   │   │   │   ├── Cwise_greater.cpp
│       │   │   │   │   │   ├── Cwise_greater_equal.cpp
│       │   │   │   │   │   ├── Cwise_inverse.cpp
│       │   │   │   │   │   ├── Cwise_isFinite.cpp
│       │   │   │   │   │   ├── Cwise_isInf.cpp
│       │   │   │   │   │   ├── Cwise_isNaN.cpp
│       │   │   │   │   │   ├── Cwise_less.cpp
│       │   │   │   │   │   ├── Cwise_less_equal.cpp
│       │   │   │   │   │   ├── Cwise_log.cpp
│       │   │   │   │   │   ├── Cwise_log10.cpp
│       │   │   │   │   │   ├── Cwise_max.cpp
│       │   │   │   │   │   ├── Cwise_min.cpp
│       │   │   │   │   │   ├── Cwise_minus.cpp
│       │   │   │   │   │   ├── Cwise_minus_equal.cpp
│       │   │   │   │   │   ├── Cwise_not_equal.cpp
│       │   │   │   │   │   ├── Cwise_plus.cpp
│       │   │   │   │   │   ├── Cwise_plus_equal.cpp
│       │   │   │   │   │   ├── Cwise_pow.cpp
│       │   │   │   │   │   ├── Cwise_product.cpp
│       │   │   │   │   │   ├── Cwise_quotient.cpp
│       │   │   │   │   │   ├── Cwise_rint.cpp
│       │   │   │   │   │   ├── Cwise_round.cpp
│       │   │   │   │   │   ├── Cwise_scalar_power_array.cpp
│       │   │   │   │   │   ├── Cwise_sign.cpp
│       │   │   │   │   │   ├── Cwise_sin.cpp
│       │   │   │   │   │   ├── Cwise_sinh.cpp
│       │   │   │   │   │   ├── Cwise_slash_equal.cpp
│       │   │   │   │   │   ├── Cwise_sqrt.cpp
│       │   │   │   │   │   ├── Cwise_square.cpp
│       │   │   │   │   │   ├── Cwise_tan.cpp
│       │   │   │   │   │   ├── Cwise_tanh.cpp
│       │   │   │   │   │   ├── Cwise_times_equal.cpp
│       │   │   │   │   │   ├── DenseBase_LinSpaced.cpp
│       │   │   │   │   │   ├── DenseBase_LinSpacedInt.cpp
│       │   │   │   │   │   ├── DenseBase_LinSpaced_seq_deprecated.cpp
│       │   │   │   │   │   ├── DenseBase_setLinSpaced.cpp
│       │   │   │   │   │   ├── DirectionWise_hnormalized.cpp
│       │   │   │   │   │   ├── DirectionWise_replicate.cpp
│       │   │   │   │   │   ├── DirectionWise_replicate_int.cpp
│       │   │   │   │   │   ├── EigenSolver_EigenSolver_MatrixType.cpp
│       │   │   │   │   │   ├── EigenSolver_compute.cpp
│       │   │   │   │   │   ├── EigenSolver_eigenvalues.cpp
│       │   │   │   │   │   ├── EigenSolver_eigenvectors.cpp
│       │   │   │   │   │   ├── EigenSolver_pseudoEigenvectors.cpp
│       │   │   │   │   │   ├── FullPivHouseholderQR_solve.cpp
│       │   │   │   │   │   ├── FullPivLU_image.cpp
│       │   │   │   │   │   ├── FullPivLU_kernel.cpp
│       │   │   │   │   │   ├── FullPivLU_solve.cpp
│       │   │   │   │   │   ├── GeneralizedEigenSolver.cpp
│       │   │   │   │   │   ├── HessenbergDecomposition_compute.cpp
│       │   │   │   │   │   ├── HessenbergDecomposition_matrixH.cpp
│       │   │   │   │   │   ├── HessenbergDecomposition_packedMatrix.cpp
│       │   │   │   │   │   ├── HouseholderQR_householderQ.cpp
│       │   │   │   │   │   ├── HouseholderQR_solve.cpp
│       │   │   │   │   │   ├── HouseholderSequence_HouseholderSequence.cpp
│       │   │   │   │   │   ├── IOFormat.cpp
│       │   │   │   │   │   ├── JacobiSVD_basic.cpp
│       │   │   │   │   │   ├── Jacobi_makeGivens.cpp
│       │   │   │   │   │   ├── Jacobi_makeJacobi.cpp
│       │   │   │   │   │   ├── LLT_example.cpp
│       │   │   │   │   │   ├── LLT_solve.cpp
│       │   │   │   │   │   ├── LeastSquaresNormalEquations.cpp
│       │   │   │   │   │   ├── LeastSquaresQR.cpp
│       │   │   │   │   │   ├── Map_general_stride.cpp
│       │   │   │   │   │   ├── Map_inner_stride.cpp
│       │   │   │   │   │   ├── Map_outer_stride.cpp
│       │   │   │   │   │   ├── Map_placement_new.cpp
│       │   │   │   │   │   ├── Map_simple.cpp
│       │   │   │   │   │   ├── MatrixBase_adjoint.cpp
│       │   │   │   │   │   ├── MatrixBase_all.cpp
│       │   │   │   │   │   ├── MatrixBase_applyOnTheLeft.cpp
│       │   │   │   │   │   ├── MatrixBase_applyOnTheRight.cpp
│       │   │   │   │   │   ├── MatrixBase_array.cpp
│       │   │   │   │   │   ├── MatrixBase_array_const.cpp
│       │   │   │   │   │   ├── MatrixBase_asDiagonal.cpp
│       │   │   │   │   │   ├── MatrixBase_block_int_int.cpp
│       │   │   │   │   │   ├── MatrixBase_block_int_int_int_int.cpp
│       │   │   │   │   │   ├── MatrixBase_bottomLeftCorner_int_int.cpp
│       │   │   │   │   │   ├── MatrixBase_bottomRightCorner_int_int.cpp
│       │   │   │   │   │   ├── MatrixBase_bottomRows_int.cpp
│       │   │   │   │   │   ├── MatrixBase_cast.cpp
│       │   │   │   │   │   ├── MatrixBase_col.cpp
│       │   │   │   │   │   ├── MatrixBase_colwise.cpp
│       │   │   │   │   │   ├── MatrixBase_colwise_iterator_cxx11.cpp
│       │   │   │   │   │   ├── MatrixBase_computeInverseAndDetWithCheck.cpp
│       │   │   │   │   │   ├── MatrixBase_computeInverseWithCheck.cpp
│       │   │   │   │   │   ├── MatrixBase_cwiseAbs.cpp
│       │   │   │   │   │   ├── MatrixBase_cwiseAbs2.cpp
│       │   │   │   │   │   ├── MatrixBase_cwiseArg.cpp
│       │   │   │   │   │   ├── MatrixBase_cwiseEqual.cpp
│       │   │   │   │   │   ├── MatrixBase_cwiseInverse.cpp
│       │   │   │   │   │   ├── MatrixBase_cwiseMax.cpp
│       │   │   │   │   │   ├── MatrixBase_cwiseMin.cpp
│       │   │   │   │   │   ├── MatrixBase_cwiseNotEqual.cpp
│       │   │   │   │   │   ├── MatrixBase_cwiseProduct.cpp
│       │   │   │   │   │   ├── MatrixBase_cwiseQuotient.cpp
│       │   │   │   │   │   ├── MatrixBase_cwiseSign.cpp
│       │   │   │   │   │   ├── MatrixBase_cwiseSqrt.cpp
│       │   │   │   │   │   ├── MatrixBase_diagonal.cpp
│       │   │   │   │   │   ├── MatrixBase_diagonal_int.cpp
│       │   │   │   │   │   ├── MatrixBase_diagonal_template_int.cpp
│       │   │   │   │   │   ├── MatrixBase_eigenvalues.cpp
│       │   │   │   │   │   ├── MatrixBase_end_int.cpp
│       │   │   │   │   │   ├── MatrixBase_eval.cpp
│       │   │   │   │   │   ├── MatrixBase_fixedBlock_int_int.cpp
│       │   │   │   │   │   ├── MatrixBase_hnormalized.cpp
│       │   │   │   │   │   ├── MatrixBase_homogeneous.cpp
│       │   │   │   │   │   ├── MatrixBase_identity.cpp
│       │   │   │   │   │   ├── MatrixBase_identity_int_int.cpp
│       │   │   │   │   │   ├── MatrixBase_inverse.cpp
│       │   │   │   │   │   ├── MatrixBase_isDiagonal.cpp
│       │   │   │   │   │   ├── MatrixBase_isIdentity.cpp
│       │   │   │   │   │   ├── MatrixBase_isOnes.cpp
│       │   │   │   │   │   ├── MatrixBase_isOrthogonal.cpp
│       │   │   │   │   │   ├── MatrixBase_isUnitary.cpp
│       │   │   │   │   │   ├── MatrixBase_isZero.cpp
│       │   │   │   │   │   ├── MatrixBase_leftCols_int.cpp
│       │   │   │   │   │   ├── MatrixBase_noalias.cpp
│       │   │   │   │   │   ├── MatrixBase_ones.cpp
│       │   │   │   │   │   ├── MatrixBase_ones_int.cpp
│       │   │   │   │   │   ├── MatrixBase_ones_int_int.cpp
│       │   │   │   │   │   ├── MatrixBase_operatorNorm.cpp
│       │   │   │   │   │   ├── MatrixBase_prod.cpp
│       │   │   │   │   │   ├── MatrixBase_random.cpp
│       │   │   │   │   │   ├── MatrixBase_random_int.cpp
│       │   │   │   │   │   ├── MatrixBase_random_int_int.cpp
│       │   │   │   │   │   ├── MatrixBase_replicate.cpp
│       │   │   │   │   │   ├── MatrixBase_replicate_int_int.cpp
│       │   │   │   │   │   ├── MatrixBase_reshaped_auto.cpp
│       │   │   │   │   │   ├── MatrixBase_reshaped_fixed.cpp
│       │   │   │   │   │   ├── MatrixBase_reshaped_int_int.cpp
│       │   │   │   │   │   ├── MatrixBase_reshaped_to_vector.cpp
│       │   │   │   │   │   ├── MatrixBase_reverse.cpp
│       │   │   │   │   │   ├── MatrixBase_rightCols_int.cpp
│       │   │   │   │   │   ├── MatrixBase_row.cpp
│       │   │   │   │   │   ├── MatrixBase_rowwise.cpp
│       │   │   │   │   │   ├── MatrixBase_segment_int_int.cpp
│       │   │   │   │   │   ├── MatrixBase_select.cpp
│       │   │   │   │   │   ├── MatrixBase_selfadjointView.cpp
│       │   │   │   │   │   ├── MatrixBase_set.cpp
│       │   │   │   │   │   ├── MatrixBase_setIdentity.cpp
│       │   │   │   │   │   ├── MatrixBase_setOnes.cpp
│       │   │   │   │   │   ├── MatrixBase_setRandom.cpp
│       │   │   │   │   │   ├── MatrixBase_setZero.cpp
│       │   │   │   │   │   ├── MatrixBase_start_int.cpp
│       │   │   │   │   │   ├── MatrixBase_template_int_bottomRows.cpp
│       │   │   │   │   │   ├── MatrixBase_template_int_end.cpp
│       │   │   │   │   │   ├── MatrixBase_template_int_int_block_int_int_int_int.cpp
│       │   │   │   │   │   ├── MatrixBase_template_int_int_bottomLeftCorner.cpp
│       │   │   │   │   │   ├── MatrixBase_template_int_int_bottomLeftCorner_int_int.cpp
│       │   │   │   │   │   ├── MatrixBase_template_int_int_bottomRightCorner.cpp
│       │   │   │   │   │   ├── MatrixBase_template_int_int_bottomRightCorner_int_int.cpp
│       │   │   │   │   │   ├── MatrixBase_template_int_int_topLeftCorner.cpp
│       │   │   │   │   │   ├── MatrixBase_template_int_int_topLeftCorner_int_int.cpp
│       │   │   │   │   │   ├── MatrixBase_template_int_int_topRightCorner.cpp
│       │   │   │   │   │   ├── MatrixBase_template_int_int_topRightCorner_int_int.cpp
│       │   │   │   │   │   ├── MatrixBase_template_int_leftCols.cpp
│       │   │   │   │   │   ├── MatrixBase_template_int_rightCols.cpp
│       │   │   │   │   │   ├── MatrixBase_template_int_segment.cpp
│       │   │   │   │   │   ├── MatrixBase_template_int_start.cpp
│       │   │   │   │   │   ├── MatrixBase_template_int_topRows.cpp
│       │   │   │   │   │   ├── MatrixBase_topLeftCorner_int_int.cpp
│       │   │   │   │   │   ├── MatrixBase_topRightCorner_int_int.cpp
│       │   │   │   │   │   ├── MatrixBase_topRows_int.cpp
│       │   │   │   │   │   ├── MatrixBase_transpose.cpp
│       │   │   │   │   │   ├── MatrixBase_triangularView.cpp
│       │   │   │   │   │   ├── MatrixBase_zero.cpp
│       │   │   │   │   │   ├── MatrixBase_zero_int.cpp
│       │   │   │   │   │   ├── MatrixBase_zero_int_int.cpp
│       │   │   │   │   │   ├── Matrix_Map_stride.cpp
│       │   │   │   │   │   ├── Matrix_initializer_list_23_cxx11.cpp
│       │   │   │   │   │   ├── Matrix_initializer_list_vector_cxx11.cpp
│       │   │   │   │   │   ├── Matrix_resize_NoChange_int.cpp
│       │   │   │   │   │   ├── Matrix_resize_int.cpp
│       │   │   │   │   │   ├── Matrix_resize_int_NoChange.cpp
│       │   │   │   │   │   ├── Matrix_resize_int_int.cpp
│       │   │   │   │   │   ├── Matrix_setConstant_int.cpp
│       │   │   │   │   │   ├── Matrix_setConstant_int_int.cpp
│       │   │   │   │   │   ├── Matrix_setIdentity_int_int.cpp
│       │   │   │   │   │   ├── Matrix_setOnes_int.cpp
│       │   │   │   │   │   ├── Matrix_setOnes_int_int.cpp
│       │   │   │   │   │   ├── Matrix_setRandom_int.cpp
│       │   │   │   │   │   ├── Matrix_setRandom_int_int.cpp
│       │   │   │   │   │   ├── Matrix_setZero_int.cpp
│       │   │   │   │   │   ├── Matrix_setZero_int_int.cpp
│       │   │   │   │   │   ├── Matrix_variadic_ctor_cxx11.cpp
│       │   │   │   │   │   ├── PartialPivLU_solve.cpp
│       │   │   │   │   │   ├── PartialRedux_count.cpp
│       │   │   │   │   │   ├── PartialRedux_maxCoeff.cpp
│       │   │   │   │   │   ├── PartialRedux_minCoeff.cpp
│       │   │   │   │   │   ├── PartialRedux_norm.cpp
│       │   │   │   │   │   ├── PartialRedux_prod.cpp
│       │   │   │   │   │   ├── PartialRedux_squaredNorm.cpp
│       │   │   │   │   │   ├── PartialRedux_sum.cpp
│       │   │   │   │   │   ├── RealQZ_compute.cpp
│       │   │   │   │   │   ├── RealSchur_RealSchur_MatrixType.cpp
│       │   │   │   │   │   ├── RealSchur_compute.cpp
│       │   │   │   │   │   ├── SelfAdjointEigenSolver_SelfAdjointEigenSolver.cpp
│       │   │   │   │   │   ├── SelfAdjointEigenSolver_SelfAdjointEigenSolver_MatrixType.cpp
│       │   │   │   │   │   ├── SelfAdjointEigenSolver_SelfAdjointEigenSolver_MatrixType2.cpp
│       │   │   │   │   │   ├── SelfAdjointEigenSolver_compute_MatrixType.cpp
│       │   │   │   │   │   ├── SelfAdjointEigenSolver_compute_MatrixType2.cpp
│       │   │   │   │   │   ├── SelfAdjointEigenSolver_eigenvalues.cpp
│       │   │   │   │   │   ├── SelfAdjointEigenSolver_eigenvectors.cpp
│       │   │   │   │   │   ├── SelfAdjointEigenSolver_operatorInverseSqrt.cpp
│       │   │   │   │   │   ├── SelfAdjointEigenSolver_operatorSqrt.cpp
│       │   │   │   │   │   ├── SelfAdjointView_eigenvalues.cpp
│       │   │   │   │   │   ├── SelfAdjointView_operatorNorm.cpp
│       │   │   │   │   │   ├── Slicing_arrayexpr.cpp
│       │   │   │   │   │   ├── Slicing_custom_padding_cxx11.cpp
│       │   │   │   │   │   ├── Slicing_rawarray_cxx11.cpp
│       │   │   │   │   │   ├── Slicing_stdvector_cxx11.cpp
│       │   │   │   │   │   ├── SparseMatrix_coeffs.cpp
│       │   │   │   │   │   ├── TopicAliasing_block.cpp
│       │   │   │   │   │   ├── TopicAliasing_block_correct.cpp
│       │   │   │   │   │   ├── TopicAliasing_cwise.cpp
│       │   │   │   │   │   ├── TopicAliasing_mult1.cpp
│       │   │   │   │   │   ├── TopicAliasing_mult2.cpp
│       │   │   │   │   │   ├── TopicAliasing_mult3.cpp
│       │   │   │   │   │   ├── TopicAliasing_mult4.cpp
│       │   │   │   │   │   ├── TopicAliasing_mult5.cpp
│       │   │   │   │   │   ├── TopicStorageOrders_example.cpp
│       │   │   │   │   │   ├── Triangular_solve.cpp
│       │   │   │   │   │   ├── Tridiagonalization_Tridiagonalization_MatrixType.cpp
│       │   │   │   │   │   ├── Tridiagonalization_compute.cpp
│       │   │   │   │   │   ├── Tridiagonalization_decomposeInPlace.cpp
│       │   │   │   │   │   ├── Tridiagonalization_diagonal.cpp
│       │   │   │   │   │   ├── Tridiagonalization_householderCoefficients.cpp
│       │   │   │   │   │   ├── Tridiagonalization_packedMatrix.cpp
│       │   │   │   │   │   ├── Tutorial_AdvancedInitialization_Block.cpp
│       │   │   │   │   │   ├── Tutorial_AdvancedInitialization_CommaTemporary.cpp
│       │   │   │   │   │   ├── Tutorial_AdvancedInitialization_Join.cpp
│       │   │   │   │   │   ├── Tutorial_AdvancedInitialization_LinSpaced.cpp
│       │   │   │   │   │   ├── Tutorial_AdvancedInitialization_ThreeWays.cpp
│       │   │   │   │   │   ├── Tutorial_AdvancedInitialization_Zero.cpp
│       │   │   │   │   │   ├── Tutorial_Map_rowmajor.cpp
│       │   │   │   │   │   ├── Tutorial_Map_using.cpp
│       │   │   │   │   │   ├── Tutorial_ReshapeMat2Mat.cpp
│       │   │   │   │   │   ├── Tutorial_ReshapeMat2Vec.cpp
│       │   │   │   │   │   ├── Tutorial_SlicingCol.cpp
│       │   │   │   │   │   ├── Tutorial_SlicingVec.cpp
│       │   │   │   │   │   ├── Tutorial_commainit_01.cpp
│       │   │   │   │   │   ├── Tutorial_commainit_01b.cpp
│       │   │   │   │   │   ├── Tutorial_commainit_02.cpp
│       │   │   │   │   │   ├── Tutorial_range_for_loop_1d_cxx11.cpp
│       │   │   │   │   │   ├── Tutorial_range_for_loop_2d_cxx11.cpp
│       │   │   │   │   │   ├── Tutorial_reshaped_vs_resize_1.cpp
│       │   │   │   │   │   ├── Tutorial_reshaped_vs_resize_2.cpp
│       │   │   │   │   │   ├── Tutorial_solve_matrix_inverse.cpp
│       │   │   │   │   │   ├── Tutorial_solve_multiple_rhs.cpp
│       │   │   │   │   │   ├── Tutorial_solve_reuse_decomposition.cpp
│       │   │   │   │   │   ├── Tutorial_solve_singular.cpp
│       │   │   │   │   │   ├── Tutorial_solve_triangular.cpp
│       │   │   │   │   │   ├── Tutorial_solve_triangular_inplace.cpp
│       │   │   │   │   │   ├── Tutorial_std_sort.cpp
│       │   │   │   │   │   ├── Tutorial_std_sort_rows_cxx11.cpp
│       │   │   │   │   │   ├── VectorwiseOp_homogeneous.cpp
│       │   │   │   │   │   ├── Vectorwise_reverse.cpp
│       │   │   │   │   │   ├── class_FullPivLU.cpp
│       │   │   │   │   │   ├── compile_snippet.cpp.in
│       │   │   │   │   │   ├── tut_arithmetic_redux_minmax.cpp
│       │   │   │   │   │   ├── tut_arithmetic_transpose_aliasing.cpp
│       │   │   │   │   │   ├── tut_arithmetic_transpose_conjugate.cpp
│       │   │   │   │   │   ├── tut_arithmetic_transpose_inplace.cpp
│       │   │   │   │   │   └── tut_matrix_assignment_resizing.cpp
│       │   │   │   │   ├── special_examples/
│       │   │   │   │   │   ├── Tutorial_sparse_example.cpp
│       │   │   │   │   │   ├── Tutorial_sparse_example_details.cpp
│       │   │   │   │   │   └── random_cpp11.cpp
│       │   │   │   │   └── tutorial.cpp
│       │   │   │   ├── eigen3.pc.in
│       │   │   │   ├── failtest/
│       │   │   │   │   ├── bdcsvd_int.cpp
│       │   │   │   │   ├── block_nonconst_ctor_on_const_xpr_0.cpp
│       │   │   │   │   ├── block_nonconst_ctor_on_const_xpr_1.cpp
│       │   │   │   │   ├── block_nonconst_ctor_on_const_xpr_2.cpp
│       │   │   │   │   ├── block_on_const_type_actually_const_0.cpp
│       │   │   │   │   ├── block_on_const_type_actually_const_1.cpp
│       │   │   │   │   ├── colpivqr_int.cpp
│       │   │   │   │   ├── const_qualified_block_method_retval_0.cpp
│       │   │   │   │   ├── const_qualified_block_method_retval_1.cpp
│       │   │   │   │   ├── const_qualified_diagonal_method_retval.cpp
│       │   │   │   │   ├── const_qualified_transpose_method_retval.cpp
│       │   │   │   │   ├── cwiseunaryview_nonconst_ctor_on_const_xpr.cpp
│       │   │   │   │   ├── cwiseunaryview_on_const_type_actually_const.cpp
│       │   │   │   │   ├── diagonal_nonconst_ctor_on_const_xpr.cpp
│       │   │   │   │   ├── diagonal_on_const_type_actually_const.cpp
│       │   │   │   │   ├── eigensolver_cplx.cpp
│       │   │   │   │   ├── eigensolver_int.cpp
│       │   │   │   │   ├── failtest_sanity_check.cpp
│       │   │   │   │   ├── fullpivlu_int.cpp
│       │   │   │   │   ├── fullpivqr_int.cpp
│       │   │   │   │   ├── initializer_list_1.cpp
│       │   │   │   │   ├── initializer_list_2.cpp
│       │   │   │   │   ├── jacobisvd_int.cpp
│       │   │   │   │   ├── ldlt_int.cpp
│       │   │   │   │   ├── llt_int.cpp
│       │   │   │   │   ├── map_nonconst_ctor_on_const_ptr_0.cpp
│       │   │   │   │   ├── map_nonconst_ctor_on_const_ptr_1.cpp
│       │   │   │   │   ├── map_nonconst_ctor_on_const_ptr_2.cpp
│       │   │   │   │   ├── map_nonconst_ctor_on_const_ptr_3.cpp
│       │   │   │   │   ├── map_nonconst_ctor_on_const_ptr_4.cpp
│       │   │   │   │   ├── map_on_const_type_actually_const_0.cpp
│       │   │   │   │   ├── map_on_const_type_actually_const_1.cpp
│       │   │   │   │   ├── partialpivlu_int.cpp
│       │   │   │   │   ├── qr_int.cpp
│       │   │   │   │   ├── ref_1.cpp
│       │   │   │   │   ├── ref_2.cpp
│       │   │   │   │   ├── ref_3.cpp
│       │   │   │   │   ├── ref_4.cpp
│       │   │   │   │   ├── ref_5.cpp
│       │   │   │   │   ├── selfadjointview_nonconst_ctor_on_const_xpr.cpp
│       │   │   │   │   ├── selfadjointview_on_const_type_actually_const.cpp
│       │   │   │   │   ├── sparse_ref_1.cpp
│       │   │   │   │   ├── sparse_ref_2.cpp
│       │   │   │   │   ├── sparse_ref_3.cpp
│       │   │   │   │   ├── sparse_ref_4.cpp
│       │   │   │   │   ├── sparse_ref_5.cpp
│       │   │   │   │   ├── sparse_storage_mismatch.cpp
│       │   │   │   │   ├── swap_1.cpp
│       │   │   │   │   ├── swap_2.cpp
│       │   │   │   │   ├── ternary_1.cpp
│       │   │   │   │   ├── ternary_2.cpp
│       │   │   │   │   ├── transpose_nonconst_ctor_on_const_xpr.cpp
│       │   │   │   │   ├── transpose_on_const_type_actually_const.cpp
│       │   │   │   │   ├── triangularview_nonconst_ctor_on_const_xpr.cpp
│       │   │   │   │   └── triangularview_on_const_type_actually_const.cpp
│       │   │   │   ├── lapack/
│       │   │   │   │   ├── cholesky.cpp
│       │   │   │   │   ├── clacgv.f
│       │   │   │   │   ├── cladiv.f
│       │   │   │   │   ├── clarf.f
│       │   │   │   │   ├── clarfb.f
│       │   │   │   │   ├── clarfg.f
│       │   │   │   │   ├── clarft.f
│       │   │   │   │   ├── complex_double.cpp
│       │   │   │   │   ├── complex_single.cpp
│       │   │   │   │   ├── dladiv.f
│       │   │   │   │   ├── dlamch.f
│       │   │   │   │   ├── dlapy2.f
│       │   │   │   │   ├── dlapy3.f
│       │   │   │   │   ├── dlarf.f
│       │   │   │   │   ├── dlarfb.f
│       │   │   │   │   ├── dlarfg.f
│       │   │   │   │   ├── dlarft.f
│       │   │   │   │   ├── double.cpp
│       │   │   │   │   ├── dsecnd_NONE.f
│       │   │   │   │   ├── eigenvalues.cpp
│       │   │   │   │   ├── ilaclc.f
│       │   │   │   │   ├── ilaclr.f
│       │   │   │   │   ├── iladlc.f
│       │   │   │   │   ├── iladlr.f
│       │   │   │   │   ├── ilaslc.f
│       │   │   │   │   ├── ilaslr.f
│       │   │   │   │   ├── ilazlc.f
│       │   │   │   │   ├── ilazlr.f
│       │   │   │   │   ├── lapack_common.h
│       │   │   │   │   ├── lu.cpp
│       │   │   │   │   ├── second_NONE.f
│       │   │   │   │   ├── single.cpp
│       │   │   │   │   ├── sladiv.f
│       │   │   │   │   ├── slamch.f
│       │   │   │   │   ├── slapy2.f
│       │   │   │   │   ├── slapy3.f
│       │   │   │   │   ├── slarf.f
│       │   │   │   │   ├── slarfb.f
│       │   │   │   │   ├── slarfg.f
│       │   │   │   │   ├── slarft.f
│       │   │   │   │   ├── svd.cpp
│       │   │   │   │   ├── zlacgv.f
│       │   │   │   │   ├── zladiv.f
│       │   │   │   │   ├── zlarf.f
│       │   │   │   │   ├── zlarfb.f
│       │   │   │   │   ├── zlarfg.f
│       │   │   │   │   └── zlarft.f
│       │   │   │   ├── scripts/
│       │   │   │   │   ├── cdashtesting.cmake.in
│       │   │   │   │   ├── check.in
│       │   │   │   │   ├── debug.in
│       │   │   │   │   ├── eigen_gen_credits.cpp
│       │   │   │   │   ├── eigen_gen_docs
│       │   │   │   │   ├── eigen_gen_split_test_help.cmake
│       │   │   │   │   ├── eigen_monitor_perf.sh
│       │   │   │   │   ├── release.in
│       │   │   │   │   └── relicense.py
│       │   │   │   ├── signature_of_eigen3_matrix_library
│       │   │   │   ├── test/
│       │   │   │   │   ├── AnnoyingScalar.h
│       │   │   │   │   ├── MovableScalar.h
│       │   │   │   │   ├── OffByOneScalar.h
│       │   │   │   │   ├── SafeScalar.h
│       │   │   │   │   ├── adjoint.cpp
│       │   │   │   │   ├── array_cwise.cpp
│       │   │   │   │   ├── array_for_matrix.cpp
│       │   │   │   │   ├── array_of_string.cpp
│       │   │   │   │   ├── array_replicate.cpp
│       │   │   │   │   ├── array_reverse.cpp
│       │   │   │   │   ├── bandmatrix.cpp
│       │   │   │   │   ├── basicstuff.cpp
│       │   │   │   │   ├── bdcsvd.cpp
│       │   │   │   │   ├── bfloat16_float.cpp
│       │   │   │   │   ├── bicgstab.cpp
│       │   │   │   │   ├── blasutil.cpp
│       │   │   │   │   ├── block.cpp
│       │   │   │   │   ├── boostmultiprec.cpp
│       │   │   │   │   ├── bug1213.cpp
│       │   │   │   │   ├── bug1213.h
│       │   │   │   │   ├── bug1213_main.cpp
│       │   │   │   │   ├── cholesky.cpp
│       │   │   │   │   ├── cholmod_support.cpp
│       │   │   │   │   ├── commainitializer.cpp
│       │   │   │   │   ├── conjugate_gradient.cpp
│       │   │   │   │   ├── conservative_resize.cpp
│       │   │   │   │   ├── constructor.cpp
│       │   │   │   │   ├── corners.cpp
│       │   │   │   │   ├── ctorleak.cpp
│       │   │   │   │   ├── denseLM.cpp
│       │   │   │   │   ├── dense_storage.cpp
│       │   │   │   │   ├── determinant.cpp
│       │   │   │   │   ├── diagonal.cpp
│       │   │   │   │   ├── diagonal_matrix_variadic_ctor.cpp
│       │   │   │   │   ├── diagonalmatrices.cpp
│       │   │   │   │   ├── dontalign.cpp
│       │   │   │   │   ├── dynalloc.cpp
│       │   │   │   │   ├── eigen2support.cpp
│       │   │   │   │   ├── eigensolver_complex.cpp
│       │   │   │   │   ├── eigensolver_generalized_real.cpp
│       │   │   │   │   ├── eigensolver_generic.cpp
│       │   │   │   │   ├── eigensolver_selfadjoint.cpp
│       │   │   │   │   ├── evaluator_common.h
│       │   │   │   │   ├── evaluators.cpp
│       │   │   │   │   ├── exceptions.cpp
│       │   │   │   │   ├── fastmath.cpp
│       │   │   │   │   ├── first_aligned.cpp
│       │   │   │   │   ├── geo_alignedbox.cpp
│       │   │   │   │   ├── geo_eulerangles.cpp
│       │   │   │   │   ├── geo_homogeneous.cpp
│       │   │   │   │   ├── geo_hyperplane.cpp
│       │   │   │   │   ├── geo_orthomethods.cpp
│       │   │   │   │   ├── geo_parametrizedline.cpp
│       │   │   │   │   ├── geo_quaternion.cpp
│       │   │   │   │   ├── geo_transformations.cpp
│       │   │   │   │   ├── gpu_basic.cu
│       │   │   │   │   ├── gpu_common.h
│       │   │   │   │   ├── gpu_example.cu
│       │   │   │   │   ├── gpu_test_helper.h
│       │   │   │   │   ├── half_float.cpp
│       │   │   │   │   ├── hessenberg.cpp
│       │   │   │   │   ├── householder.cpp
│       │   │   │   │   ├── incomplete_cholesky.cpp
│       │   │   │   │   ├── indexed_view.cpp
│       │   │   │   │   ├── initializer_list_construction.cpp
│       │   │   │   │   ├── inplace_decomposition.cpp
│       │   │   │   │   ├── integer_types.cpp
│       │   │   │   │   ├── inverse.cpp
│       │   │   │   │   ├── io.cpp
│       │   │   │   │   ├── is_same_dense.cpp
│       │   │   │   │   ├── jacobi.cpp
│       │   │   │   │   ├── jacobisvd.cpp
│       │   │   │   │   ├── klu_support.cpp
│       │   │   │   │   ├── linearstructure.cpp
│       │   │   │   │   ├── lscg.cpp
│       │   │   │   │   ├── lu.cpp
│       │   │   │   │   ├── main.h
│       │   │   │   │   ├── mapped_matrix.cpp
│       │   │   │   │   ├── mapstaticmethods.cpp
│       │   │   │   │   ├── mapstride.cpp
│       │   │   │   │   ├── meta.cpp
│       │   │   │   │   ├── metis_support.cpp
│       │   │   │   │   ├── miscmatrices.cpp
│       │   │   │   │   ├── mixingtypes.cpp
│       │   │   │   │   ├── mpl2only.cpp
│       │   │   │   │   ├── nestbyvalue.cpp
│       │   │   │   │   ├── nesting_ops.cpp
│       │   │   │   │   ├── nomalloc.cpp
│       │   │   │   │   ├── nullary.cpp
│       │   │   │   │   ├── num_dimensions.cpp
│       │   │   │   │   ├── numext.cpp
│       │   │   │   │   ├── packetmath.cpp
│       │   │   │   │   ├── packetmath_test_shared.h
│       │   │   │   │   ├── pardiso_support.cpp
│       │   │   │   │   ├── pastix_support.cpp
│       │   │   │   │   ├── permutationmatrices.cpp
│       │   │   │   │   ├── prec_inverse_4x4.cpp
│       │   │   │   │   ├── product.h
│       │   │   │   │   ├── product_extra.cpp
│       │   │   │   │   ├── product_large.cpp
│       │   │   │   │   ├── product_mmtr.cpp
│       │   │   │   │   ├── product_notemporary.cpp
│       │   │   │   │   ├── product_selfadjoint.cpp
│       │   │   │   │   ├── product_small.cpp
│       │   │   │   │   ├── product_symm.cpp
│       │   │   │   │   ├── product_syrk.cpp
│       │   │   │   │   ├── product_trmm.cpp
│       │   │   │   │   ├── product_trmv.cpp
│       │   │   │   │   ├── product_trsolve.cpp
│       │   │   │   │   ├── qr.cpp
│       │   │   │   │   ├── qr_colpivoting.cpp
│       │   │   │   │   ├── qr_fullpivoting.cpp
│       │   │   │   │   ├── qtvector.cpp
│       │   │   │   │   ├── rand.cpp
│       │   │   │   │   ├── random_matrix.cpp
│       │   │   │   │   ├── random_matrix_helper.h
│       │   │   │   │   ├── random_without_cast_overflow.h
│       │   │   │   │   ├── real_qz.cpp
│       │   │   │   │   ├── redux.cpp
│       │   │   │   │   ├── ref.cpp
│       │   │   │   │   ├── reshape.cpp
│       │   │   │   │   ├── resize.cpp
│       │   │   │   │   ├── rvalue_types.cpp
│       │   │   │   │   ├── schur_complex.cpp
│       │   │   │   │   ├── schur_real.cpp
│       │   │   │   │   ├── selfadjoint.cpp
│       │   │   │   │   ├── serializer.cpp
│       │   │   │   │   ├── simplicial_cholesky.cpp
│       │   │   │   │   ├── sizeof.cpp
│       │   │   │   │   ├── sizeoverflow.cpp
│       │   │   │   │   ├── smallvectors.cpp
│       │   │   │   │   ├── solverbase.h
│       │   │   │   │   ├── sparse.h
│       │   │   │   │   ├── sparseLM.cpp
│       │   │   │   │   ├── sparse_basic.cpp
│       │   │   │   │   ├── sparse_block.cpp
│       │   │   │   │   ├── sparse_permutations.cpp
│       │   │   │   │   ├── sparse_product.cpp
│       │   │   │   │   ├── sparse_ref.cpp
│       │   │   │   │   ├── sparse_solver.h
│       │   │   │   │   ├── sparse_solvers.cpp
│       │   │   │   │   ├── sparse_vector.cpp
│       │   │   │   │   ├── sparselu.cpp
│       │   │   │   │   ├── sparseqr.cpp
│       │   │   │   │   ├── special_numbers.cpp
│       │   │   │   │   ├── split_test_helper.h
│       │   │   │   │   ├── spqr_support.cpp
│       │   │   │   │   ├── stable_norm.cpp
│       │   │   │   │   ├── stddeque.cpp
│       │   │   │   │   ├── stddeque_overload.cpp
│       │   │   │   │   ├── stdlist.cpp
│       │   │   │   │   ├── stdlist_overload.cpp
│       │   │   │   │   ├── stdvector.cpp
│       │   │   │   │   ├── stdvector_overload.cpp
│       │   │   │   │   ├── stl_iterators.cpp
│       │   │   │   │   ├── superlu_support.cpp
│       │   │   │   │   ├── svd_common.h
│       │   │   │   │   ├── svd_fill.h
│       │   │   │   │   ├── swap.cpp
│       │   │   │   │   ├── symbolic_index.cpp
│       │   │   │   │   ├── triangular.cpp
│       │   │   │   │   ├── tuple_test.cpp
│       │   │   │   │   ├── type_alias.cpp
│       │   │   │   │   ├── umeyama.cpp
│       │   │   │   │   ├── umfpack_support.cpp
│       │   │   │   │   ├── unalignedcount.cpp
│       │   │   │   │   ├── upperbidiagonalization.cpp
│       │   │   │   │   ├── vectorization_logic.cpp
│       │   │   │   │   ├── vectorwiseop.cpp
│       │   │   │   │   ├── visitor.cpp
│       │   │   │   │   └── zerosized.cpp
│       │   │   │   └── unsupported/
│       │   │   │       ├── Eigen/
│       │   │   │       │   ├── AdolcForward
│       │   │   │       │   ├── AlignedVector3
│       │   │   │       │   ├── ArpackSupport
│       │   │   │       │   ├── AutoDiff
│       │   │   │       │   ├── BVH
│       │   │   │       │   ├── CXX11/
│       │   │   │       │   │   ├── Tensor
│       │   │   │       │   │   ├── TensorSymmetry
│       │   │   │       │   │   ├── ThreadPool
│       │   │   │       │   │   └── src/
│       │   │   │       │   │       ├── Tensor/
│       │   │   │       │   │       │   ├── InternalHeaderCheck.h
│       │   │   │       │   │       │   ├── README.md
│       │   │   │       │   │       │   ├── Tensor.h
│       │   │   │       │   │       │   ├── TensorArgMax.h
│       │   │   │       │   │       │   ├── TensorAssign.h
│       │   │   │       │   │       │   ├── TensorBase.h
│       │   │   │       │   │       │   ├── TensorBlock.h
│       │   │   │       │   │       │   ├── TensorBroadcasting.h
│       │   │   │       │   │       │   ├── TensorChipping.h
│       │   │   │       │   │       │   ├── TensorConcatenation.h
│       │   │   │       │   │       │   ├── TensorContraction.h
│       │   │   │       │   │       │   ├── TensorContractionBlocking.h
│       │   │   │       │   │       │   ├── TensorContractionCuda.h
│       │   │   │       │   │       │   ├── TensorContractionGpu.h
│       │   │   │       │   │       │   ├── TensorContractionMapper.h
│       │   │   │       │   │       │   ├── TensorContractionSycl.h
│       │   │   │       │   │       │   ├── TensorContractionThreadPool.h
│       │   │   │       │   │       │   ├── TensorConversion.h
│       │   │   │       │   │       │   ├── TensorConvolution.h
│       │   │   │       │   │       │   ├── TensorConvolutionSycl.h
│       │   │   │       │   │       │   ├── TensorCostModel.h
│       │   │   │       │   │       │   ├── TensorCustomOp.h
│       │   │   │       │   │       │   ├── TensorDevice.h
│       │   │   │       │   │       │   ├── TensorDeviceCuda.h
│       │   │   │       │   │       │   ├── TensorDeviceDefault.h
│       │   │   │       │   │       │   ├── TensorDeviceGpu.h
│       │   │   │       │   │       │   ├── TensorDeviceSycl.h
│       │   │   │       │   │       │   ├── TensorDeviceThreadPool.h
│       │   │   │       │   │       │   ├── TensorDimensionList.h
│       │   │   │       │   │       │   ├── TensorDimensions.h
│       │   │   │       │   │       │   ├── TensorEvalTo.h
│       │   │   │       │   │       │   ├── TensorEvaluator.h
│       │   │   │       │   │       │   ├── TensorExecutor.h
│       │   │   │       │   │       │   ├── TensorExpr.h
│       │   │   │       │   │       │   ├── TensorFFT.h
│       │   │   │       │   │       │   ├── TensorFixedSize.h
│       │   │   │       │   │       │   ├── TensorForcedEval.h
│       │   │   │       │   │       │   ├── TensorForwardDeclarations.h
│       │   │   │       │   │       │   ├── TensorFunctors.h
│       │   │   │       │   │       │   ├── TensorGenerator.h
│       │   │   │       │   │       │   ├── TensorGlobalFunctions.h
│       │   │   │       │   │       │   ├── TensorGpuHipCudaDefines.h
│       │   │   │       │   │       │   ├── TensorGpuHipCudaUndefines.h
│       │   │   │       │   │       │   ├── TensorIO.h
│       │   │   │       │   │       │   ├── TensorImagePatch.h
│       │   │   │       │   │       │   ├── TensorIndexList.h
│       │   │   │       │   │       │   ├── TensorInflation.h
│       │   │   │       │   │       │   ├── TensorInitializer.h
│       │   │   │       │   │       │   ├── TensorIntDiv.h
│       │   │   │       │   │       │   ├── TensorLayoutSwap.h
│       │   │   │       │   │       │   ├── TensorMacros.h
│       │   │   │       │   │       │   ├── TensorMap.h
│       │   │   │       │   │       │   ├── TensorMeta.h
│       │   │   │       │   │       │   ├── TensorMorphing.h
│       │   │   │       │   │       │   ├── TensorPadding.h
│       │   │   │       │   │       │   ├── TensorPatch.h
│       │   │   │       │   │       │   ├── TensorRandom.h
│       │   │   │       │   │       │   ├── TensorReduction.h
│       │   │   │       │   │       │   ├── TensorReductionGpu.h
│       │   │   │       │   │       │   ├── TensorReductionSycl.h
│       │   │   │       │   │       │   ├── TensorRef.h
│       │   │   │       │   │       │   ├── TensorReverse.h
│       │   │   │       │   │       │   ├── TensorScan.h
│       │   │   │       │   │       │   ├── TensorScanSycl.h
│       │   │   │       │   │       │   ├── TensorShuffling.h
│       │   │   │       │   │       │   ├── TensorStorage.h
│       │   │   │       │   │       │   ├── TensorStriding.h
│       │   │   │       │   │       │   ├── TensorTrace.h
│       │   │   │       │   │       │   ├── TensorTraits.h
│       │   │   │       │   │       │   ├── TensorUInt128.h
│       │   │   │       │   │       │   └── TensorVolumePatch.h
│       │   │   │       │   │       ├── TensorSymmetry/
│       │   │   │       │   │       │   ├── DynamicSymmetry.h
│       │   │   │       │   │       │   ├── InternalHeaderCheck.h
│       │   │   │       │   │       │   ├── StaticSymmetry.h
│       │   │   │       │   │       │   ├── Symmetry.h
│       │   │   │       │   │       │   └── util/
│       │   │   │       │   │       │       └── TemplateGroupTheory.h
│       │   │   │       │   │       ├── ThreadPool/
│       │   │   │       │   │       │   ├── Barrier.h
│       │   │   │       │   │       │   ├── EventCount.h
│       │   │   │       │   │       │   ├── InternalHeaderCheck.h
│       │   │   │       │   │       │   ├── NonBlockingThreadPool.h
│       │   │   │       │   │       │   ├── RunQueue.h
│       │   │   │       │   │       │   ├── ThreadCancel.h
│       │   │   │       │   │       │   ├── ThreadEnvironment.h
│       │   │   │       │   │       │   ├── ThreadLocal.h
│       │   │   │       │   │       │   ├── ThreadPoolInterface.h
│       │   │   │       │   │       │   └── ThreadYield.h
│       │   │   │       │   │       └── util/
│       │   │   │       │   │           ├── CXX11Meta.h
│       │   │   │       │   │           ├── CXX11Workarounds.h
│       │   │   │       │   │           ├── EmulateArray.h
│       │   │   │       │   │           └── MaxSizeVector.h
│       │   │   │       │   ├── EulerAngles
│       │   │   │       │   ├── FFT
│       │   │   │       │   ├── IterativeSolvers
│       │   │   │       │   ├── KroneckerProduct
│       │   │   │       │   ├── LevenbergMarquardt
│       │   │   │       │   ├── MPRealSupport
│       │   │   │       │   ├── MatrixFunctions
│       │   │   │       │   ├── MoreVectorization
│       │   │   │       │   ├── NonLinearOptimization
│       │   │   │       │   ├── NumericalDiff
│       │   │   │       │   ├── OpenGLSupport
│       │   │   │       │   ├── Polynomials
│       │   │   │       │   ├── Skyline
│       │   │   │       │   ├── SparseExtra
│       │   │   │       │   ├── SpecialFunctions
│       │   │   │       │   ├── Splines
│       │   │   │       │   └── src/
│       │   │   │       │       ├── AutoDiff/
│       │   │   │       │       │   ├── AutoDiffJacobian.h
│       │   │   │       │       │   ├── AutoDiffScalar.h
│       │   │   │       │       │   ├── AutoDiffVector.h
│       │   │   │       │       │   └── InternalHeaderCheck.h
│       │   │   │       │       ├── BVH/
│       │   │   │       │       │   ├── BVAlgorithms.h
│       │   │   │       │       │   ├── InternalHeaderCheck.h
│       │   │   │       │       │   └── KdBVH.h
│       │   │   │       │       ├── Eigenvalues/
│       │   │   │       │       │   ├── ArpackSelfAdjointEigenSolver.h
│       │   │   │       │       │   └── InternalHeaderCheck.h
│       │   │   │       │       ├── EulerAngles/
│       │   │   │       │       │   ├── EulerAngles.h
│       │   │   │       │       │   ├── EulerSystem.h
│       │   │   │       │       │   └── InternalHeaderCheck.h
│       │   │   │       │       ├── FFT/
│       │   │   │       │       │   ├── InternalHeaderCheck.h
│       │   │   │       │       │   ├── ei_fftw_impl.h
│       │   │   │       │       │   └── ei_kissfft_impl.h
│       │   │   │       │       ├── IterativeSolvers/
│       │   │   │       │       │   ├── ConstrainedConjGrad.h
│       │   │   │       │       │   ├── DGMRES.h
│       │   │   │       │       │   ├── GMRES.h
│       │   │   │       │       │   ├── IDRS.h
│       │   │   │       │       │   ├── IncompleteLU.h
│       │   │   │       │       │   ├── InternalHeaderCheck.h
│       │   │   │       │       │   ├── IterationController.h
│       │   │   │       │       │   ├── MINRES.h
│       │   │   │       │       │   └── Scaling.h
│       │   │   │       │       ├── KroneckerProduct/
│       │   │   │       │       │   ├── InternalHeaderCheck.h
│       │   │   │       │       │   └── KroneckerTensorProduct.h
│       │   │   │       │       ├── LevenbergMarquardt/
│       │   │   │       │       │   ├── InternalHeaderCheck.h
│       │   │   │       │       │   ├── LMcovar.h
│       │   │   │       │       │   ├── LMonestep.h
│       │   │   │       │       │   ├── LMpar.h
│       │   │   │       │       │   ├── LMqrsolv.h
│       │   │   │       │       │   └── LevenbergMarquardt.h
│       │   │   │       │       ├── MatrixFunctions/
│       │   │   │       │       │   ├── InternalHeaderCheck.h
│       │   │   │       │       │   ├── MatrixExponential.h
│       │   │   │       │       │   ├── MatrixFunction.h
│       │   │   │       │       │   ├── MatrixLogarithm.h
│       │   │   │       │       │   ├── MatrixPower.h
│       │   │   │       │       │   ├── MatrixSquareRoot.h
│       │   │   │       │       │   └── StemFunction.h
│       │   │   │       │       ├── MoreVectorization/
│       │   │   │       │       │   ├── InternalHeaderCheck.h
│       │   │   │       │       │   └── MathFunctions.h
│       │   │   │       │       ├── NonLinearOptimization/
│       │   │   │       │       │   ├── HybridNonLinearSolver.h
│       │   │   │       │       │   ├── InternalHeaderCheck.h
│       │   │   │       │       │   ├── LevenbergMarquardt.h
│       │   │   │       │       │   ├── chkder.h
│       │   │   │       │       │   ├── covar.h
│       │   │   │       │       │   ├── dogleg.h
│       │   │   │       │       │   ├── fdjac1.h
│       │   │   │       │       │   ├── lmpar.h
│       │   │   │       │       │   ├── qrsolv.h
│       │   │   │       │       │   ├── r1mpyq.h
│       │   │   │       │       │   ├── r1updt.h
│       │   │   │       │       │   └── rwupdt.h
│       │   │   │       │       ├── NumericalDiff/
│       │   │   │       │       │   ├── InternalHeaderCheck.h
│       │   │   │       │       │   └── NumericalDiff.h
│       │   │   │       │       ├── Polynomials/
│       │   │   │       │       │   ├── Companion.h
│       │   │   │       │       │   ├── InternalHeaderCheck.h
│       │   │   │       │       │   ├── PolynomialSolver.h
│       │   │   │       │       │   └── PolynomialUtils.h
│       │   │   │       │       ├── Skyline/
│       │   │   │       │       │   ├── InternalHeaderCheck.h
│       │   │   │       │       │   ├── SkylineInplaceLU.h
│       │   │   │       │       │   ├── SkylineMatrix.h
│       │   │   │       │       │   ├── SkylineMatrixBase.h
│       │   │   │       │       │   ├── SkylineProduct.h
│       │   │   │       │       │   ├── SkylineStorage.h
│       │   │   │       │       │   └── SkylineUtil.h
│       │   │   │       │       ├── SparseExtra/
│       │   │   │       │       │   ├── BlockSparseMatrix.h
│       │   │   │       │       │   ├── InternalHeaderCheck.h
│       │   │   │       │       │   ├── MarketIO.h
│       │   │   │       │       │   ├── MatrixMarketIterator.h
│       │   │   │       │       │   └── RandomSetter.h
│       │   │   │       │       ├── SpecialFunctions/
│       │   │   │       │       │   ├── BesselFunctionsArrayAPI.h
│       │   │   │       │       │   ├── BesselFunctionsBFloat16.h
│       │   │   │       │       │   ├── BesselFunctionsFunctors.h
│       │   │   │       │       │   ├── BesselFunctionsHalf.h
│       │   │   │       │       │   ├── BesselFunctionsImpl.h
│       │   │   │       │       │   ├── BesselFunctionsPacketMath.h
│       │   │   │       │       │   ├── HipVectorCompatibility.h
│       │   │   │       │       │   ├── InternalHeaderCheck.h
│       │   │   │       │       │   ├── SpecialFunctionsArrayAPI.h
│       │   │   │       │       │   ├── SpecialFunctionsBFloat16.h
│       │   │   │       │       │   ├── SpecialFunctionsFunctors.h
│       │   │   │       │       │   ├── SpecialFunctionsHalf.h
│       │   │   │       │       │   ├── SpecialFunctionsImpl.h
│       │   │   │       │       │   ├── SpecialFunctionsPacketMath.h
│       │   │   │       │       │   └── arch/
│       │   │   │       │       │       ├── AVX/
│       │   │   │       │       │       │   ├── BesselFunctions.h
│       │   │   │       │       │       │   └── SpecialFunctions.h
│       │   │   │       │       │       ├── AVX512/
│       │   │   │       │       │       │   ├── BesselFunctions.h
│       │   │   │       │       │       │   └── SpecialFunctions.h
│       │   │   │       │       │       ├── GPU/
│       │   │   │       │       │       │   └── SpecialFunctions.h
│       │   │   │       │       │       └── NEON/
│       │   │   │       │       │           ├── BesselFunctions.h
│       │   │   │       │       │           └── SpecialFunctions.h
│       │   │   │       │       └── Splines/
│       │   │   │       │           ├── InternalHeaderCheck.h
│       │   │   │       │           ├── Spline.h
│       │   │   │       │           ├── SplineFitting.h
│       │   │   │       │           └── SplineFwd.h
│       │   │   │       ├── bench/
│       │   │   │       │   └── bench_svd.cpp
│       │   │   │       ├── doc/
│       │   │   │       │   ├── Overview.dox
│       │   │   │       │   ├── SYCL.dox
│       │   │   │       │   ├── eigendoxy_layout.xml.in
│       │   │   │       │   └── examples/
│       │   │   │       │       ├── BVH_Example.cpp
│       │   │   │       │       ├── EulerAngles.cpp
│       │   │   │       │       ├── FFT.cpp
│       │   │   │       │       ├── MatrixExponential.cpp
│       │   │   │       │       ├── MatrixFunction.cpp
│       │   │   │       │       ├── MatrixLogarithm.cpp
│       │   │   │       │       ├── MatrixPower.cpp
│       │   │   │       │       ├── MatrixPower_optimal.cpp
│       │   │   │       │       ├── MatrixSine.cpp
│       │   │   │       │       ├── MatrixSinh.cpp
│       │   │   │       │       ├── MatrixSquareRoot.cpp
│       │   │   │       │       ├── PolynomialSolver1.cpp
│       │   │   │       │       ├── PolynomialUtils1.cpp
│       │   │   │       │       └── SYCL/
│       │   │   │       │           └── CwiseMul.cpp
│       │   │   │       └── test/
│       │   │   │           ├── BVH.cpp
│       │   │   │           ├── EulerAngles.cpp
│       │   │   │           ├── FFT.cpp
│       │   │   │           ├── FFTW.cpp
│       │   │   │           ├── NonLinearOptimization.cpp
│       │   │   │           ├── NumericalDiff.cpp
│       │   │   │           ├── alignedvector3.cpp
│       │   │   │           ├── autodiff.cpp
│       │   │   │           ├── autodiff_scalar.cpp
│       │   │   │           ├── bessel_functions.cpp
│       │   │   │           ├── cxx11_eventcount.cpp
│       │   │   │           ├── cxx11_maxsizevector.cpp
│       │   │   │           ├── cxx11_meta.cpp
│       │   │   │           ├── cxx11_non_blocking_thread_pool.cpp
│       │   │   │           ├── cxx11_runqueue.cpp
│       │   │   │           ├── cxx11_tensor_argmax.cpp
│       │   │   │           ├── cxx11_tensor_argmax_gpu.cu
│       │   │   │           ├── cxx11_tensor_argmax_sycl.cpp
│       │   │   │           ├── cxx11_tensor_assign.cpp
│       │   │   │           ├── cxx11_tensor_block_access.cpp
│       │   │   │           ├── cxx11_tensor_block_eval.cpp
│       │   │   │           ├── cxx11_tensor_block_io.cpp
│       │   │   │           ├── cxx11_tensor_broadcast_sycl.cpp
│       │   │   │           ├── cxx11_tensor_broadcasting.cpp
│       │   │   │           ├── cxx11_tensor_builtins_sycl.cpp
│       │   │   │           ├── cxx11_tensor_cast_float16_gpu.cu
│       │   │   │           ├── cxx11_tensor_casts.cpp
│       │   │   │           ├── cxx11_tensor_chipping.cpp
│       │   │   │           ├── cxx11_tensor_chipping_sycl.cpp
│       │   │   │           ├── cxx11_tensor_comparisons.cpp
│       │   │   │           ├── cxx11_tensor_complex_cwise_ops_gpu.cu
│       │   │   │           ├── cxx11_tensor_complex_gpu.cu
│       │   │   │           ├── cxx11_tensor_concatenation.cpp
│       │   │   │           ├── cxx11_tensor_concatenation_sycl.cpp
│       │   │   │           ├── cxx11_tensor_const.cpp
│       │   │   │           ├── cxx11_tensor_contract_gpu.cu
│       │   │   │           ├── cxx11_tensor_contract_sycl.cpp
│       │   │   │           ├── cxx11_tensor_contraction.cpp
│       │   │   │           ├── cxx11_tensor_convolution.cpp
│       │   │   │           ├── cxx11_tensor_convolution_sycl.cpp
│       │   │   │           ├── cxx11_tensor_custom_index.cpp
│       │   │   │           ├── cxx11_tensor_custom_op.cpp
│       │   │   │           ├── cxx11_tensor_custom_op_sycl.cpp
│       │   │   │           ├── cxx11_tensor_device.cu
│       │   │   │           ├── cxx11_tensor_device_sycl.cpp
│       │   │   │           ├── cxx11_tensor_dimension.cpp
│       │   │   │           ├── cxx11_tensor_empty.cpp
│       │   │   │           ├── cxx11_tensor_executor.cpp
│       │   │   │           ├── cxx11_tensor_expr.cpp
│       │   │   │           ├── cxx11_tensor_fft.cpp
│       │   │   │           ├── cxx11_tensor_fixed_size.cpp
│       │   │   │           ├── cxx11_tensor_forced_eval.cpp
│       │   │   │           ├── cxx11_tensor_forced_eval_sycl.cpp
│       │   │   │           ├── cxx11_tensor_generator.cpp
│       │   │   │           ├── cxx11_tensor_generator_sycl.cpp
│       │   │   │           ├── cxx11_tensor_gpu.cu
│       │   │   │           ├── cxx11_tensor_ifft.cpp
│       │   │   │           ├── cxx11_tensor_image_op_sycl.cpp
│       │   │   │           ├── cxx11_tensor_image_patch.cpp
│       │   │   │           ├── cxx11_tensor_image_patch_sycl.cpp
│       │   │   │           ├── cxx11_tensor_index_list.cpp
│       │   │   │           ├── cxx11_tensor_inflation.cpp
│       │   │   │           ├── cxx11_tensor_inflation_sycl.cpp
│       │   │   │           ├── cxx11_tensor_intdiv.cpp
│       │   │   │           ├── cxx11_tensor_io.cpp
│       │   │   │           ├── cxx11_tensor_layout_swap.cpp
│       │   │   │           ├── cxx11_tensor_layout_swap_sycl.cpp
│       │   │   │           ├── cxx11_tensor_lvalue.cpp
│       │   │   │           ├── cxx11_tensor_map.cpp
│       │   │   │           ├── cxx11_tensor_math.cpp
│       │   │   │           ├── cxx11_tensor_math_sycl.cpp
│       │   │   │           ├── cxx11_tensor_mixed_indices.cpp
│       │   │   │           ├── cxx11_tensor_morphing.cpp
│       │   │   │           ├── cxx11_tensor_morphing_sycl.cpp
│       │   │   │           ├── cxx11_tensor_move.cpp
│       │   │   │           ├── cxx11_tensor_notification.cpp
│       │   │   │           ├── cxx11_tensor_of_bfloat16_gpu.cu
│       │   │   │           ├── cxx11_tensor_of_complex.cpp
│       │   │   │           ├── cxx11_tensor_of_const_values.cpp
│       │   │   │           ├── cxx11_tensor_of_float16_gpu.cu
│       │   │   │           ├── cxx11_tensor_of_strings.cpp
│       │   │   │           ├── cxx11_tensor_padding.cpp
│       │   │   │           ├── cxx11_tensor_padding_sycl.cpp
│       │   │   │           ├── cxx11_tensor_patch.cpp
│       │   │   │           ├── cxx11_tensor_patch_sycl.cpp
│       │   │   │           ├── cxx11_tensor_random.cpp
│       │   │   │           ├── cxx11_tensor_random_gpu.cu
│       │   │   │           ├── cxx11_tensor_random_sycl.cpp
│       │   │   │           ├── cxx11_tensor_reduction.cpp
│       │   │   │           ├── cxx11_tensor_reduction_gpu.cu
│       │   │   │           ├── cxx11_tensor_reduction_sycl.cpp
│       │   │   │           ├── cxx11_tensor_ref.cpp
│       │   │   │           ├── cxx11_tensor_reverse.cpp
│       │   │   │           ├── cxx11_tensor_reverse_sycl.cpp
│       │   │   │           ├── cxx11_tensor_roundings.cpp
│       │   │   │           ├── cxx11_tensor_scan.cpp
│       │   │   │           ├── cxx11_tensor_scan_gpu.cu
│       │   │   │           ├── cxx11_tensor_scan_sycl.cpp
│       │   │   │           ├── cxx11_tensor_shuffling.cpp
│       │   │   │           ├── cxx11_tensor_shuffling_sycl.cpp
│       │   │   │           ├── cxx11_tensor_simple.cpp
│       │   │   │           ├── cxx11_tensor_striding.cpp
│       │   │   │           ├── cxx11_tensor_striding_sycl.cpp
│       │   │   │           ├── cxx11_tensor_sugar.cpp
│       │   │   │           ├── cxx11_tensor_sycl.cpp
│       │   │   │           ├── cxx11_tensor_symmetry.cpp
│       │   │   │           ├── cxx11_tensor_thread_local.cpp
│       │   │   │           ├── cxx11_tensor_thread_pool.cpp
│       │   │   │           ├── cxx11_tensor_trace.cpp
│       │   │   │           ├── cxx11_tensor_uint128.cpp
│       │   │   │           ├── cxx11_tensor_volume_patch.cpp
│       │   │   │           ├── cxx11_tensor_volume_patch_sycl.cpp
│       │   │   │           ├── dgmres.cpp
│       │   │   │           ├── forward_adolc.cpp
│       │   │   │           ├── gmres.cpp
│       │   │   │           ├── idrs.cpp
│       │   │   │           ├── kronecker_product.cpp
│       │   │   │           ├── levenberg_marquardt.cpp
│       │   │   │           ├── matrix_exponential.cpp
│       │   │   │           ├── matrix_function.cpp
│       │   │   │           ├── matrix_functions.h
│       │   │   │           ├── matrix_power.cpp
│       │   │   │           ├── matrix_square_root.cpp
│       │   │   │           ├── minres.cpp
│       │   │   │           ├── mpreal_support.cpp
│       │   │   │           ├── openglsupport.cpp
│       │   │   │           ├── polynomialsolver.cpp
│       │   │   │           ├── polynomialutils.cpp
│       │   │   │           ├── sparse_extra.cpp
│       │   │   │           ├── special_functions.cpp
│       │   │   │           ├── special_packetmath.cpp
│       │   │   │           └── splines.cpp
│       │   │   └── pcg32/
│       │   │       └── pcg32.h
│       │   ├── pybind_api.h
│       │   ├── ray_sampler_header.h
│       │   └── raymarch_shared.h
│       ├── setup.py
│       └── src/
│           ├── calc_rgb.cu
│           ├── compacted_coord.cu
│           ├── ema_grid_samples_nerf.cu
│           ├── generate_grid_samples_nerf_nonuniform.cu
│           ├── mark_untrained_density_grid.cu
│           ├── pybind_api.cu
│           ├── ray_sampler.cu
│           ├── splat_grid_samples_nerf_max_nearest_neighbor.cu
│           └── update_bitfield.cu
├── requirements.txt
├── run_nerf.py
├── setup.py
├── test/
│   ├── apis/
│   │   └── test_helper.py
│   ├── datasets/
│   │   ├── data/
│   │   │   └── nerf_synthetic/
│   │   │       └── lego/
│   │   │           ├── transforms_test.json
│   │   │           ├── transforms_train.json
│   │   │           └── transforms_val.json
│   │   ├── test_dataset.py
│   │   ├── test_load.py
│   │   └── test_pipeline.py
│   └── models/
│       ├── animatable_nerf/
│       │   ├── test_an_network.py
│       │   ├── test_an_render.py
│       │   ├── test_deform_mlps.py
│       │   └── test_human_mlps.py
│       ├── gnr/
│       │   ├── test_gnr_mlps.py
│       │   └── test_gnr_network.py
│       ├── hashnerf/
│       │   └── test_hashnerf_network.py
│       ├── mipnerf/
│       │   └── test_mipnerf_network.py
│       ├── nerf/
│       │   ├── test_nerf_embedder.py
│       │   ├── test_nerf_mlps.py
│       │   ├── test_nerf_network.py
│       │   └── test_nerf_render.py
│       └── neuralbody/
│           ├── test_nb_embedder.py
│           ├── test_nb_mlps.py
│           ├── test_nb_network.py
│           └── test_nb_render.py
├── tools/
│   └── convert_blender_data.py
├── train.sh
├── train_mvs.sh
└── xrnerf/
    ├── core/
    │   ├── __init__.py
    │   ├── apis/
    │   │   ├── __init__.py
    │   │   ├── api.py
    │   │   ├── helper.py
    │   │   ├── test.py
    │   │   └── train.py
    │   ├── hooks/
    │   │   ├── __init__.py
    │   │   ├── build_occupancy_tree_hook.py
    │   │   ├── distill_cycle_hook.py
    │   │   ├── hash_hook.py
    │   │   ├── save_distill_results_hook.py
    │   │   ├── test_hooks.py
    │   │   ├── train_hooks.py
    │   │   ├── utils.py
    │   │   └── validation_hooks.py
    │   └── runner/
    │       ├── __init__.py
    │       ├── base.py
    │       ├── bungeenerf_runner.py
    │       └── kilonerf_runner.py
    ├── datasets/
    │   ├── __init__.py
    │   ├── aninerf_dataset.py
    │   ├── base.py
    │   ├── builder.py
    │   ├── bungee_dataset.py
    │   ├── genebody_dataset.py
    │   ├── hashnerf_dataset.py
    │   ├── kilonerf_dataset.py
    │   ├── kilonerf_node_dataset.py
    │   ├── load_data/
    │   │   ├── __init__.py
    │   │   ├── get_rays.py
    │   │   ├── load.py
    │   │   ├── load_LINEMOD.py
    │   │   ├── load_blender.py
    │   │   ├── load_deepvoxels.py
    │   │   ├── load_llff.py
    │   │   ├── load_multiscale.py
    │   │   ├── load_multiscale_google.py
    │   │   └── load_nsvf_dataset.py
    │   ├── mip_multiscale_dataset.py
    │   ├── neuralbody_dataset.py
    │   ├── pipelines/
    │   │   ├── __init__.py
    │   │   ├── augment.py
    │   │   ├── compose.py
    │   │   ├── create.py
    │   │   └── transforms.py
    │   ├── samplers/
    │   │   ├── __init__.py
    │   │   └── distributed_sampler.py
    │   ├── scene_dataset.py
    │   └── utils/
    │       ├── __init__.py
    │       ├── aninerf.py
    │       ├── flatten.py
    │       ├── genebody.py
    │       ├── hashnerf.py
    │       └── novel_view.py
    ├── models/
    │   ├── __init__.py
    │   ├── builder.py
    │   ├── embedders/
    │   │   ├── __init__.py
    │   │   ├── base.py
    │   │   ├── bungee_embedder.py
    │   │   ├── gnr_embedder.py
    │   │   ├── kilonerf_fourier_embedder.py
    │   │   ├── mipnerf_embedder.py
    │   │   └── neuralbody_embedder.py
    │   ├── mlps/
    │   │   ├── __init__.py
    │   │   ├── aninerf_mlp.py
    │   │   ├── base.py
    │   │   ├── bungeenerf_mlp.py
    │   │   ├── gnr_mlp.py
    │   │   ├── hashnerf_mlp.py
    │   │   ├── kilonerf_mlp.py
    │   │   ├── kilonerf_multinet.py
    │   │   ├── multi_modules.py
    │   │   ├── nb_mlp.py
    │   │   └── nerf_mlp.py
    │   ├── networks/
    │   │   ├── __init__.py
    │   │   ├── aninerf.py
    │   │   ├── base.py
    │   │   ├── bungeenerf.py
    │   │   ├── gnr.py
    │   │   ├── hashnerf.py
    │   │   ├── kilonerf.py
    │   │   ├── mipnerf.py
    │   │   ├── nerf.py
    │   │   ├── neuralbody.py
    │   │   ├── student_nerf.py
    │   │   └── utils/
    │   │       ├── __init__.py
    │   │       ├── aninerf.py
    │   │       ├── batching.py
    │   │       ├── gnr.py
    │   │       ├── hierarchical_sample.py
    │   │       ├── metrics.py
    │   │       ├── mip.py
    │   │       └── transforms.py
    │   ├── renders/
    │   │   ├── __init__.py
    │   │   ├── base.py
    │   │   ├── bungeenerf_render.py
    │   │   ├── gnr_render.py
    │   │   ├── hashnerf_render.py
    │   │   ├── kilonerf_simple_render.py
    │   │   ├── mipnerf_render.py
    │   │   └── nerf_render.py
    │   └── samplers/
    │       ├── __init__.py
    │       ├── ngp_grid_sampler.py
    │       └── utils/
    │           ├── __init__.py
    │           ├── compacted_coords.py
    │           ├── ema_grid_samples_nerf.py
    │           ├── generate_grid_samples_nerf_nonuniform.py
    │           ├── mark_untrained_density_grid.py
    │           ├── rays_sampler.py
    │           ├── splat_grid_samples_nerf_max_nearest_neighbor.py
    │           └── update_bitfield.py
    └── utils/
        ├── __init__.py
        ├── data_helper.py
        └── logger.py

================================================
FILE CONTENTS
================================================

================================================
FILE: .github/workflows/build.yml
================================================
# This workflow will install Python dependencies, run tests and lint with a variety of Python versions
# For more information see: https://help.github.com/actions/language-and-framework-guides/using-python-with-github-actions

name: build

on:
  push: # 触发条件之一为push到main分支,若改动仅存在于docs目录,或README.md文件,则忽略,避免触发。
    branches:
     - main
     - alpha_test
    paths-ignore:
      - 'README.md'
      - 'README_CN.md'
      - 'docs/**'

  pull_request: # 触发条件之一为该commit属于某个PR,忽略条件同上。
    paths-ignore:
      - 'README.md'
      - 'README_CN.md'
      - 'docs/**'

concurrency:
  group: ${{ github.workflow }}-${{ github.ref }}
  cancel-in-progress: true

jobs:
  build_test:
    runs-on: ubuntu-18.04
    steps:
      - uses: actions/checkout@v2
      - name: Set up Python 3.7
        uses: actions/setup-python@v2
        with:
          python-version: 3.7
      - name: Install Env
        run: |
          pip install coverage pytest
          pip install torch==1.10.0
          # pip install lpips trimesh smplx -i https://pypi.tuna.tsinghua.edu.cn/simple
          # pip install torch numpy mmcv -i https://pypi.tuna.tsinghua.edu.cn/simple
          # pip install opencv-python>=3 yapf imageio scikit-image -i https://pypi.tuna.tsinghua.edu.cn/simple

          coverage run --source xrnerf/models -m pytest -s test/models
          coverage xml
          coverage report -m
      - name: Upload coverage to Codecov # 上传覆盖率报告
        uses: codecov/codecov-action@v2
        with:
          files: ./coverage.xml
          flags: unittests
          env_vars: OS,PYTHON
          name: codecov-umbrella
          fail_ci_if_error: false


================================================
FILE: .github/workflows/lint.yml
================================================
name: lint

on: [push, pull_request]

concurrency:
  group: ${{ github.workflow }}-${{ github.ref }}
  cancel-in-progress: true

jobs:
  lint:
    runs-on: ubuntu-18.04
    steps:
      - uses: actions/checkout@v2
      - name: Set up Python 3.7
        uses: actions/setup-python@v2
        with:
          python-version: 3.7
      - name: Install pre-commit hook
        run: |
          sudo apt-add-repository ppa:brightbox/ruby-ng -y
          sudo apt-get update
          sudo apt-get install -y ruby2.7
          pip install pre-commit
          pre-commit install
      - name: Linting
        run: pre-commit run --files xrnerf/*
      - name: Check docstring coverage
        run: |
          pip install interrogate
          interrogate -vinmMI --ignore-init-method --ignore-module --ignore-nested-functions --ignore-regex "__repr__" -f 60 xrnerf/core


================================================
FILE: .gitignore
================================================
/__pycache__/
/data/
/scripts/
/work_dirs/
/build/
sftp-config.json
push.sh
*.pyc
*.log
*.egg
*.egg-info
*.so
*.o
*.mp4
/data/
.coverage
/.pytest_cache/


================================================
FILE: .pre-commit-config.yaml
================================================
exclude: ^tests/data/
repos:
  - repo: https://github.com/pycqa/flake8.git
    rev: 3.8.3
    hooks:
      - id: flake8
  - repo: https://github.com/LOTEAT/isort
    rev: 5.10.1
    hooks:
      - id: isort
  - repo: https://github.com/pre-commit/mirrors-yapf
    rev: v0.30.0
    hooks:
      - id: yapf
  - repo: https://github.com/pre-commit/pre-commit-hooks
    rev: v3.1.0
    hooks:
      - id: trailing-whitespace
      - id: check-yaml
      - id: end-of-file-fixer
      - id: requirements-txt-fixer
      - id: double-quote-string-fixer
      - id: check-merge-conflict
      - id: fix-encoding-pragma
        args: ["--remove"]
      - id: mixed-line-ending
        args: ["--fix=lf"]
  - repo: https://github.com/myint/docformatter
    rev: v1.3.1
    hooks:
      - id: docformatter
        args: ["--in-place", "--wrap-descriptions", "79"]
  - repo: https://github.com/codespell-project/codespell
    rev: v2.1.0
    hooks:
      - id: codespell
        args: ["--skip", "*.ipynb,tools/data/hvu/label_map.json", "-L", "te,nd,thre,Gool,gool"]
  - repo: https://github.com/open-mmlab/pre-commit-hooks
    rev: v0.2.0  # Use the ref you want to point at
    hooks:
      - id: check-algo-readme
      - id: check-copyright
        args: ["mmaction", "tests", "demo", "tools"]  # these directories will be checked


================================================
FILE: LICENSE
================================================
Copyright 2022 XRNerf Authors. All rights reserved.

                                 Apache License
                           Version 2.0, January 2004
                        http://www.apache.org/licenses/

   TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION

   1. Definitions.

      "License" shall mean the terms and conditions for use, reproduction,
      and distribution as defined by Sections 1 through 9 of this document.

      "Licensor" shall mean the copyright owner or entity authorized by
      the copyright owner that is granting the License.

      "Legal Entity" shall mean the union of the acting entity and all
      other entities that control, are controlled by, or are under common
      control with that entity. For the purposes of this definition,
      "control" means (i) the power, direct or indirect, to cause the
      direction or management of such entity, whether by contract or
      otherwise, or (ii) ownership of fifty percent (50%) or more of the
      outstanding shares, or (iii) beneficial ownership of such entity.

      "You" (or "Your") shall mean an individual or Legal Entity
      exercising permissions granted by this License.

      "Source" form shall mean the preferred form for making modifications,
      including but not limited to software source code, documentation
      source, and configuration files.

      "Object" form shall mean any form resulting from mechanical
      transformation or translation of a Source form, including but
      not limited to compiled object code, generated documentation,
      and conversions to other media types.

      "Work" shall mean the work of authorship, whether in Source or
      Object form, made available under the License, as indicated by a
      copyright notice that is included in or attached to the work
      (an example is provided in the Appendix below).

      "Derivative Works" shall mean any work, whether in Source or Object
      form, that is based on (or derived from) the Work and for which the
      editorial revisions, annotations, elaborations, or other modifications
      represent, as a whole, an original work of authorship. For the purposes
      of this License, Derivative Works shall not include works that remain
      separable from, or merely link (or bind by name) to the interfaces of,
      the Work and Derivative Works thereof.

      "Contribution" shall mean any work of authorship, including
      the original version of the Work and any modifications or additions
      to that Work or Derivative Works thereof, that is intentionally
      submitted to Licensor for inclusion in the Work by the copyright owner
      or by an individual or Legal Entity authorized to submit on behalf of
      the copyright owner. For the purposes of this definition, "submitted"
      means any form of electronic, verbal, or written communication sent
      to the Licensor or its representatives, including but not limited to
      communication on electronic mailing lists, source code control systems,
      and issue tracking systems that are managed by, or on behalf of, the
      Licensor for the purpose of discussing and improving the Work, but
      excluding communication that is conspicuously marked or otherwise
      designated in writing by the copyright owner as "Not a Contribution."

      "Contributor" shall mean Licensor and any individual or Legal Entity
      on behalf of whom a Contribution has been received by Licensor and
      subsequently incorporated within the Work.

   2. Grant of Copyright License. Subject to the terms and conditions of
      this License, each Contributor hereby grants to You a perpetual,
      worldwide, non-exclusive, no-charge, royalty-free, irrevocable
      copyright license to reproduce, prepare Derivative Works of,
      publicly display, publicly perform, sublicense, and distribute the
      Work and such Derivative Works in Source or Object form.

   3. Grant of Patent License. Subject to the terms and conditions of
      this License, each Contributor hereby grants to You a perpetual,
      worldwide, non-exclusive, no-charge, royalty-free, irrevocable
      (except as stated in this section) patent license to make, have made,
      use, offer to sell, sell, import, and otherwise transfer the Work,
      where such license applies only to those patent claims licensable
      by such Contributor that are necessarily infringed by their
      Contribution(s) alone or by combination of their Contribution(s)
      with the Work to which such Contribution(s) was submitted. If You
      institute patent litigation against any entity (including a
      cross-claim or counterclaim in a lawsuit) alleging that the Work
      or a Contribution incorporated within the Work constitutes direct
      or contributory patent infringement, then any patent licenses
      granted to You under this License for that Work shall terminate
      as of the date such litigation is filed.

   4. Redistribution. You may reproduce and distribute copies of the
      Work or Derivative Works thereof in any medium, with or without
      modifications, and in Source or Object form, provided that You
      meet the following conditions:

      (a) You must give any other recipients of the Work or
          Derivative Works a copy of this License; and

      (b) You must cause any modified files to carry prominent notices
          stating that You changed the files; and

      (c) You must retain, in the Source form of any Derivative Works
          that You distribute, all copyright, patent, trademark, and
          attribution notices from the Source form of the Work,
          excluding those notices that do not pertain to any part of
          the Derivative Works; and

      (d) If the Work includes a "NOTICE" text file as part of its
          distribution, then any Derivative Works that You distribute must
          include a readable copy of the attribution notices contained
          within such NOTICE file, excluding those notices that do not
          pertain to any part of the Derivative Works, in at least one
          of the following places: within a NOTICE text file distributed
          as part of the Derivative Works; within the Source form or
          documentation, if provided along with the Derivative Works; or,
          within a display generated by the Derivative Works, if and
          wherever such third-party notices normally appear. The contents
          of the NOTICE file are for informational purposes only and
          do not modify the License. You may add Your own attribution
          notices within Derivative Works that You distribute, alongside
          or as an addendum to the NOTICE text from the Work, provided
          that such additional attribution notices cannot be construed
          as modifying the License.

      You may add Your own copyright statement to Your modifications and
      may provide additional or different license terms and conditions
      for use, reproduction, or distribution of Your modifications, or
      for any such Derivative Works as a whole, provided Your use,
      reproduction, and distribution of the Work otherwise complies with
      the conditions stated in this License.

   5. Submission of Contributions. Unless You explicitly state otherwise,
      any Contribution intentionally submitted for inclusion in the Work
      by You to the Licensor shall be under the terms and conditions of
      this License, without any additional terms or conditions.
      Notwithstanding the above, nothing herein shall supersede or modify
      the terms of any separate license agreement you may have executed
      with Licensor regarding such Contributions.

   6. Trademarks. This License does not grant permission to use the trade
      names, trademarks, service marks, or product names of the Licensor,
      except as required for reasonable and customary use in describing the
      origin of the Work and reproducing the content of the NOTICE file.

   7. Disclaimer of Warranty. Unless required by applicable law or
      agreed to in writing, Licensor provides the Work (and each
      Contributor provides its Contributions) on an "AS IS" BASIS,
      WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
      implied, including, without limitation, any warranties or conditions
      of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A
      PARTICULAR PURPOSE. You are solely responsible for determining the
      appropriateness of using or redistributing the Work and assume any
      risks associated with Your exercise of permissions under this License.

   8. Limitation of Liability. In no event and under no legal theory,
      whether in tort (including negligence), contract, or otherwise,
      unless required by applicable law (such as deliberate and grossly
      negligent acts) or agreed to in writing, shall any Contributor be
      liable to You for damages, including any direct, indirect, special,
      incidental, or consequential damages of any character arising as a
      result of this License or out of the use or inability to use the
      Work (including but not limited to damages for loss of goodwill,
      work stoppage, computer failure or malfunction, or any and all
      other commercial damages or losses), even if such Contributor
      has been advised of the possibility of such damages.

   9. Accepting Warranty or Additional Liability. While redistributing
      the Work or Derivative Works thereof, You may choose to offer,
      and charge a fee for, acceptance of support, warranty, indemnity,
      or other liability obligations and/or rights consistent with this
      License. However, in accepting such obligations, You may act only
      on Your own behalf and on Your sole responsibility, not on behalf
      of any other Contributor, and only if You agree to indemnify,
      defend, and hold each Contributor harmless for any liability
      incurred by, or claims asserted against, such Contributor by reason
      of your accepting any such warranty or additional liability.

   END OF TERMS AND CONDITIONS

   APPENDIX: How to apply the Apache License to your work.

      To apply the Apache License to your work, attach the following
      boilerplate notice, with the fields enclosed by brackets "[]"
      replaced with your own identifying information. (Don't include
      the brackets!)  The text should be enclosed in the appropriate
      comment syntax for the file format. We also recommend that a
      file or class name and description of purpose be included on the
      same "printed page" as the copyright notice for easier
      identification within third-party archives.

   Copyright 2022 XRNerf Authors.

   Licensed under the Apache License, Version 2.0 (the "License");
   you may not use this file except in compliance with the License.
   You may obtain a copy of the License at

       http://www.apache.org/licenses/LICENSE-2.0

   Unless required by applicable law or agreed to in writing, software
   distributed under the License is distributed on an "AS IS" BASIS,
   WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
   See the License for the specific language governing permissions and
   limitations under the License.


================================================
FILE: README.md
================================================
# XRNeRF

<div align="left">

[![actions](https://github.com/openxrlab/xrnerf/workflows/build/badge.svg)](https://github.com/openxrlab/xrnerf/actions) [![LICENSE](https://img.shields.io/github/license/openxrlab/xrnerf.svg)](https://github.com/openxrlab/xrnerf/blob/main/LICENSE)

<!-- [![codecov](https://codecov.io/gh/openxrlab/xrnerf/branch/main/graph/badge.svg)](https://codecov.io/gh/openxrlab/xrnerf) -->

</div>

## Introduction

English | [简体中文](README_CN.md)

XRNeRF is an open-source PyTorch-based codebase for Neural Radiance Field (NeRF). It is a part of the [OpenXRLab](https://github.com/orgs/openxrlab/repositories) project.

https://user-images.githubusercontent.com/24294293/187131048-5977c929-e136-4328-ad1f-7da8e7a566ff.mp4

This page provides basic tutorials about the usage of XRNeRF.
For installation instructions, please see [installation.md](docs/en/installation.md).

<!-- TOC -->

- [XRNeRF](#xrnerf)
  - [Introduction](#introduction)
  - [Benchmark](#benchmark)
  - [Datasets](#datasets)
  - [Installation](#installation)
  - [Build a Model](#build-a-model)
    - [Basic Concepts](#basic-concepts)
    - [Write a new network](#write-a-new-network)
  - [Train a Model](#train-a-model)
    - [Iteration Controls](#iteration-controls)
    - [Train](#train)
    - [Test](#test)
  - [Tutorials](#tutorials)
  - [Other Documents](#other-documents)
  - [Citation](#citation)
  - [License](#license)
  - [Contributing](#contributing)
  - [Acknowledgement](#acknowledgement)
  - [Projects in OpenXRLab](#projects-in-openxrlab)

<!-- TOC -->

## Benchmark

More details can be found in [benchmark.md](docs/en/benchmark.md).

Supported scene-NeRF methods:

<details open>
<summary>(click to collapse)</summary>

- [X] [NeRF](https://www.matthewtancik.com/nerf) (ECCV'2020)
- [X] [Mip-NeRF](https://jonbarron.info/mipnerf/) (ICCV'2021)
- [X] [KiloNeRF](https://arxiv.org/abs/2103.13744) (ICCV'2021)
- [X] [Instant NGP](https://nvlabs.github.io/instant-ngp/) (SIGGRAPH'2022)
- [X] [BungeeNeRF](https://city-super.github.io/citynerf/) (ECCV'2022)

Supported human-NeRF methods:

<details open>
<summary>(click to collapse)</summary>

- [X] [NeuralBody](https://zju3dv.github.io/neuralbody) (CVPR'2021)
- [X] [AniNeRF](https://zju3dv.github.io/animatable_nerf/) (ICCV'2021)
- [X] [GNR](https://generalizable-neural-performer.github.io/)

Wanna see more methods supported? Post method you want see in XRNeRF on our [wishlist](https://github.com/openxrlab/xrnerf/discussions/11).

</details>

</details>

## Datasets

It is recommended to symlink the dataset root to `$PROJECT/data`.
If your folder structure is different, you may need to change the corresponding paths in config files.

```
xrnerf
├── xrnerf
├── docs
├── configs
├── test
├── extensions
├── data
│   ├── nerf_llff_data
│   ├── nerf_synthetic
│   ├── multiscale
│   ├── multiscale_google
│   ├── ...
```

For more information on data preparation, please see [dataset_preparation.md](docs/en/dataset_preparation.md)

## Installation

We provide detailed [installation tutorial](docs/en/installation.md) for XRNeRF, users can install from scratch or use provided [dockerfile](docker/Dockerfile).

It is recommended to start by creating a docker image:

```shell
docker build -f ./docker/Dockerfile --rm -t xrnerf .
```

For more information, please follow our [installation tutorial](docs/en/installation.md).

## Build a Model

### Basic Concepts

In XRNeRF, model components are basically categorized as 4 types.

- network: the whole nerf model pipeline, usually contains a embedder, mlp and render.
- embedder: convert point-position and viewdirection data into embedded data, embedder can be function only or with trainable paramters.
- mlp: use the output of embedder as input, and output raw data (the rgb and density value at sampled position) for render, usually contains FC layers.
- render: receive mlp's raw data, output the rgb value at a pixel.

Following some basic pipelines (e.g., `NerfNetwork`), the model structure
can be customized through config files with no pains.

### Write a new network

To write a new nerf network, you need to inherit from `BaseNerfNetwork`,
which defines the following abstract methods.

- `train_step()`: forward method of the training mode.
- `val_step()`: forward method of the testing mode.

[NerfNetwork](xrnerf/models/networks/nerf.py) is a good example which show how to do that.

To be specific, if we want to implement some new components, there are several things to do.

1. create a new file in `xrnerf/models/networks/my_networks.py`.

   ```python
   from ..builder import NETWORKS
   from .nerf import NerfNetwork

   @NETWORKS.register_module()
   class MyNerfNetwork(NerfNetwork):

       def __init__(self, cfg, mlp=None, mlp_fine=None, render=None):
           super().__init__(cfg, mlp, mlp_fine, render)

       def forward(self, data):
           ....

       def train_step(self, data, optimizer, **kwargs):
           ....

       def val_step(self, data, optimizer=None, **kwargs):
           ....
   ```
2. Import the module in `xrnerf/models/networks/__init__.py`

   ```python
   from .my_networks import MyNerfNetwork
   ```
3. modify the [config file](configs/nerf/nerf_blender_base01.py) from

   ```python
   model = dict(
       type='NerfNetwork',
       ....
   ```

   to

   ```python
   model = dict(
       type='MyNerfNetwork',
       ....
   ```

To implement some new components for embedder/mlp/render, procedure is similar to above.

* To write a new nerf embedder, you need to inherit from `nn.Module` or `BaseEmbedder`, and define the `forward` method. [BaseEmbedder](xrnerf/models/embedders/base.py) is a good example.
* To write a new nerf mlp, you need to inherit from `nn.Module` or `BaseMLP`, and define the `forward` method. [NerfMLP](xrnerf/models/mlps/nerf_mlp.py) is a good example.
* To write a new nerf render, you need to inherit from `nn.Module` or `BaseRender`, and define the `forward` method. [NerfRender](xrnerf/models/renders/nerf_render.py) is a good example.

## Train a Model

### Iteration Controls

XRNeRF use `mmcv.runner.IterBasedRunner` to control training, and `mmcv.runner.EpochBasedRunner` to for test mode.

In training mode, the `max_iters` in config file decide how many iters.
In test mode, `max_iters` is forced to change to 1, which represents only 1 epoch to test.

### Train

```shell
python run_nerf.py --config configs/nerf/nerf_blender_base01.py --dataname lego
```

Arguments are:

- `--config`: config file path.
- `--dataname`: select which data under dataset directory.

### Test

We have provided model ``iter_200000.pth`` for test, download from [here](https://drive.google.com/file/d/147wRy3TFlRVrZdWqAgHNak7s6jiMZA1-/view?usp=sharing)

```shell
python run_nerf.py --config configs/nerf/nerf_blender_base01.py --dataname lego --test_only --load_from iter_200000.pth
```

Arguments are:

- `--config`: config file path.
- `--dataname`: select which data under dataset directory.
- `--test_only`: influence on whole testset once.
- `--load_from`: load which checkpoint to test, this will overwrite the original `load_from` in config file to for convenience.

## Tutorials

Currently, we provide some tutorials for users to

* [learn about configs](docs/en/tutorials/config.md)
* [customize data pipelines](docs/en/tutorials/data_pipeline.md)
* [model definition](docs/en/tutorials/model.md)

## Other Documents

Except for that,The document also includes the following

* [api](docs/en/api.md)
* [dataset](docs/en/dataset_preparation.md)
* [installation](docs/en/installation.md)
* [benchmark](docs/en/benchmark.md)
* [FAQ](docs/en/faq.md)

## Citation

If you find this project useful in your research, please consider cite:

```bibtex
@misc{xrnerf,
    title={OpenXRLab Neural Radiance Field Toolbox and Benchmark},
    author={XRNeRF Contributors},
    howpublished = {\url{https://github.com/openxrlab/xrnerf}},
    year={2022}
}
```

## License

The license of our codebase is [Apache-2.0](LICENSE). Note that this license only applies to code in our library, the dependencies of which are separate and individually licensed. We would like to pay tribute to open-source implementations to which we rely on. Please be aware that using the content of dependencies may affect the license of our codebase. Some supported methods may carry [additional licenses](docs/en/additional_licenses.md).


## Contributing

We appreciate all contributions to improve XRNeRF. Please refer to [CONTRIBUTING.md](docs/en/CONTRIBUTING.md) for the contributing guideline.

## Acknowledgement

XRNeRF is an open source project that is contributed by researchers and engineers from both the academia and the industry.
We appreciate all the contributors who implement their methods or add new features, as well as users who give valuable feedbacks.
We wish that the framework and benchmark could serve the growing research community by providing a flexible framework to reimplement existing methods and develop their own new models.

## Projects in OpenXRLab

- [XRPrimer](https://github.com/openxrlab/xrprimer): OpenXRLab foundational library for XR-related algorithms.
- [XRSLAM](https://github.com/openxrlab/xrslam): OpenXRLab Visual-inertial SLAM Toolbox and Benchmark.
- [XRSfM](https://github.com/openxrlab/xrsfm): OpenXRLab Structure-from-Motion Toolbox and Benchmark.
- [XRLocalization](https://github.com/openxrlab/xrlocalization): OpenXRLab Visual Localization Toolbox and Server.
- [XRMoCap](https://github.com/openxrlab/xrmocap): OpenXRLab Multi-view Motion Capture Toolbox and Benchmark.
- [XRMoGen](https://github.com/openxrlab/xrmogen): OpenXRLab Human Motion Generation Toolbox and Benchmark.
- [XRNeRF](https://github.com/openxrlab/xrnerf): OpenXRLab Neural Radiance Field (NeRF) Toolbox and Benchmark.


================================================
FILE: README_CN.md
================================================
# XRNeRF

<div align="left">

[![actions](https://github.com/openxrlab/xrnerf/workflows/build/badge.svg)](https://github.com/openxrlab/xrnerf/actions) [![LICENSE](https://img.shields.io/github/license/openxrlab/xrnerf.svg)](https://github.com/openxrlab/xrnerf/blob/main/LICENSE)

<!-- [![codecov](https://codecov.io/gh/openxrlab/xrnerf/branch/main/graph/badge.svg)](https://codecov.io/gh/openxrlab/xrnerf) -->

</div>

## 简介

简体中文 | [English](README.md)


本文档提供 XRNeRF 相关用法的基本教程。对于安装说明,请参阅 [安装指南](docs/zh_cn/installation.md)。

<!-- TOC -->

- [XRNeRF](#xrnerf)
  - [简介](#简介)
  - [基准](#基准)
  - [数据集](#数据集)
  - [安装](#安装)
  - [创建模型](#创建模型)
    - [基本概念](#基本概念)
    - [自定义一个新模型](#自定义一个新模型)
  - [训练](#训练)
    - [迭代次数控制](#迭代次数控制)
    - [训练命令](#训练命令)
    - [测试](#测试)
  - [详细教程](#详细教程)
  - [引用](#引用)
  - [参与贡献](#参与贡献)
  - [致谢](#致谢)
  - [OpenXRLab中的其他项目](#openxrlab中的其他项目)

<!-- TOC -->


## 基准

更多细节可查看 [benchmark.md](docs/en/benchmark.md).

支持的场景类神经渲染方法如下:
<details open>
<summary>(click to collapse)</summary>

- [X] [NeRF](https://www.matthewtancik.com/nerf) (ECCV'2020)
- [X] [Mip-NeRF](https://jonbarron.info/mipnerf/) (ICCV'2021)
- [X] [KiloNeRF](https://arxiv.org/abs/2103.13744) (ICCV'2021)
- [X] [Instant NGP](https://nvlabs.github.io/instant-ngp/) (SIGGRAPH'2022)
- [X] [BungeeNeRF](https://city-super.github.io/citynerf/) (ECCV'2022)


支持的人体类神经渲染方法如下:

<details open>
<summary>(click to collapse)</summary>

- [X] [NeuralBody](https://zju3dv.github.io/neuralbody) (CVPR'2021)
- [X] [AniNeRF](https://zju3dv.github.io/animatable_nerf/) (ICCV'2021)
- [X] [GNR](https://generalizable-neural-performer.github.io/)

如果期望在XRNeRF中看到新的NeRF方法,可以张贴在[愿望清单](https://github.com/openxrlab/xrnerf/discussions/11),我们会根据社区投票意见来安排下一步的计划。

## 数据集
我们推荐把数据集放在`项目目录/data`下面,否则可能需要修改config中的内容

```
xrnerf
├── xrnerf
├── docs
├── configs
├── test
├── extensions
├── data
│   ├── nerf_llff_data
│   ├── nerf_synthetic
│   ├── multiscale
│   ├── multiscale_google
│   ├── ...
```

请参阅 [数据集准备](docs/zh_cn/dataset_preparation.md) 获取数据集准备的相关信息。

## 安装
安装方法详见[教程](docs/zh_cn/installation.md), 我们还提供了[docker镜像文件](docker/DockerfileCN)作为另一种环境安装方式。

## 创建模型

### 基本概念

在XRNeRF中,模型被分为4个部分
- embedder: 输入点的位置和视角,输出embedded特征数据,embedder可能是纯函数型的,或者带有可学习参数的
- mlp: 使用embedder的输出作为输入,输出原始的点数据(采样点的rgb值和密度值)送给render, 一般由多层感知机组成
- render: 获取mlp的输出数据,沿着射线上的点进行积分等操作,输出图像上一个像素点的rgb值
- network: 将以上三个部分组织起来,同时也是与mmcv的runner进行交互的部分,控制了训练时的loss计算和验证时的指标计算

对于上述所有模型而言,输入都是一个字典类型的`data`。模型使用字典`data`中的内容来创建新的键值对,并加入`data`。以[origin nerf](configs/nerf/nerf_blender_base01.py)为例,最开始的`data`应该包含`pts`(尺寸为 n_rays, n_pts, 3) and `viewdirs`(尺寸为 n_rays, n_pts, 3).

### 自定义一个新模型

如果要自定义一个network,需要继承`BaseNerfNetwork`,其中定义了两个抽象方法

- `train_step()`: training 模式下的推理和计算loss的函数.
- `val_step()`: testing 模式下的推理函数.

[NerfNetwork](xrnerf/models/networks/nerf.py) 是一个很好的例子

具体而言,如果想要实现一个具有新feature的nerf方法,有以下几步需要做

1. 创建一个新文件如 `xrnerf/models/networks/my_networks.py`.

    ```python
    from ..builder import NETWORKS
    from .nerf import NerfNetwork

    @NETWORKS.register_module()
    class MyNerfNetwork(NerfNetwork):

        def __init__(self, cfg, mlp=None, mlp_fine=None, render=None):
            super().__init__(cfg, mlp, mlp_fine, render)

        def forward(self, data):
            ....

        def train_step(self, data, optimizer, **kwargs):
            ....

        def val_step(self, data, optimizer=None, **kwargs):
            ....
    ```

2. 修改 `xrnerf/models/networks/__init__.py` 文件

    ```python
    from .my_networks import MyNerfNetwork
    ```

3. 修改配置文件[config file](configs/nerf/nerf_blender_base01.py)
   原来

    ```python
    model = dict(
        type='NerfNetwork',
        ....
    ```

   现在

    ```python
    model = dict(
        type='MyNerfNetwork',
        ....
    ```

同样的,要实现embedder/mlp/render的新功能,步骤与上述类似
* 要定义一个新的embedder, 需要继承`nn.Module` 或者 `BaseEmbedder`, 并定义 `forward` 方法. [BaseEmbedder](xrnerf/models/embedders/base.py) 是个很好的例子
* 要定义一个新的mlp, 需要继承 `nn.Module` 或者 `BaseMLP`, 并定义 `forward` 方法. [NerfMLP](xrnerf/models/mlps/nerf_mlp.py) 可供参考
* 要定义一个新的render, 需要继承 `nn.Module` 或者 `BaseRender`, 并定义 `forward` 方法. [NerfRender](xrnerf/models/renders/nerf_render.py) 可供参考


## 训练

### 迭代次数控制

XRnerf 使用 `mmcv.runner.IterBasedRunner` 来控制训练, 并用 `mmcv.runner.EpochBasedRunner` 来测试.

训练时, 配置文件的 `max_iters` 表示最多训练多少次.
测试时, `max_iters` 被强制改为1, 表示进行一次完整的epoch.

### 训练命令
```shell
python run_nerf.py --config configs/nerf/nerf_blender_base01.py --dataname lego
```

参数为:
- `--config`: 配置文件位置
- `--dataname`: 使用数据集下的哪个数据来训练

### 测试
```shell
python run_nerf.py --config configs/nerf/nerf_blender_base01.py --dataname lego --test_only --load_from iter_200000.pth
```

参数为:
- `--config`: 配置文件位置
- `--dataname`: 使用数据集下的哪个数据
- `--test_only`: 切换为测试模式
- `--load_from`: 重载覆盖掉原来配置文件里的 `load_from`, 在某些情况下为了方便而使用



## 详细教程
目前, XRNeRF 提供以下几种更详细的教程
* [如何编写配置文件](docs/zh_cn/tutorials/config.md)
* [数据处理流程](docs/zh_cn/tutorials/data_pipeline.md)
* [模型定义](docs/zh_cn/tutorials/model.md)

除此以外,文档还包括以下内容
* [api介绍](docs/zh_cn/api.md)
* [数据集准备](docs/zh_cn/dataset_preparation.md)
* [安装](docs/zh_cn/installation.md)
* [benchmark](docs/en/benchmark.md)
* [常见问题](docs/en/faq.md)


## 引用

```bibtex
@misc{xrnerf,
    title={OpenXRLab Neural Radiance Field Toolbox and Benchmark},
    author={XRNeRF Contributors},
    howpublished = {\url{https://github.com/openxrlab/xrnerf}},
    year={2022}
}
```

## 参与贡献

我们非常欢迎用户对于 XRNeRF 做出的任何贡献,可以参考 [贡献指南](docs/en/CONTRIBUTING.md) 文件了解更多细节

## 致谢
XRNeRF 是一款由不同学校和公司共同贡献的开源项目。我们感谢所有为项目提供算法复现和新功能支持的贡献者,以及提供宝贵反馈的用户。
我们希望该工具箱和基准测试可以为社区提供灵活的代码工具,供用户复现现有算法并开发自己的新模型,从而不断为开源社区提供贡献。

## OpenXRLab中的其他项目

- [XRPrimer](https://github.com/openxrlab/xrprimer): OpenXRLab foundational library for XR-related algorithms.
- [XRSLAM](https://github.com/openxrlab/xrslam): OpenXRLab Visual-inertial SLAM Toolbox and Benchmark.
- [XRSfM](https://github.com/openxrlab/xrsfm): OpenXRLab Structure-from-Motion Toolbox and Benchmark.
- [XRLocalization](https://github.com/openxrlab/xrlocalization): OpenXRLab Visual Localization Toolbox and Server.
- [XRMoCap](https://github.com/openxrlab/xrmocap): OpenXRLab Multi-view Motion Capture Toolbox and Benchmark.
- [XRMoGen](https://github.com/openxrlab/xrmogen): OpenXRLab Human Motion Generation Toolbox and Benchmark.
- [XRNeRF](https://github.com/openxrlab/xrnerf): OpenXRLab Neural Radiance Field (NeRF) Toolbox and Benchmark.


================================================
FILE: configs/__init__.py
================================================
import importlib


def load_configs(name):
    modellib = importlib.import_module(name)
    # print(configs.hmr_configs)
    return modellib


# load_configs("train_configs")


================================================
FILE: configs/_base_/models/nerf.py
================================================
# # model settings
# model = dict(
#     type='nerf',
#     i_embed=0, # set 0 for default positional encoding, -1 for none
#     multires=10, # log2 of max freq for positional encoding (3D location)
#     multires_views=4, # log2 of max freq for positional encoding (2D direction)
#     use_viewdirs=True, # use full 5D input instead of 3D
#     N_importance=0, # number of additional fine samples per ray
#     netdepth=8, # layers in network
#     netwidth=256, # channels per layer
#     netdepth_fine=8, # layers in fine network
#     netwidth_fine=256, # channels per layer in fine network
#     netchunk=1024*64, # number of pts sent through network in parallel, decrease if running out of memory
#     )


================================================
FILE: configs/animatable_nerf/an_h36m_s11_novel_pose.py
================================================
_base_ = [
    # '../_base_/models/nerf.py',
    # '../_base_/schedules/adam_20w_iter.py',
    # '../_base_/default_runtime.py'
]

import os
from datetime import datetime

method = 'animatable_nerf'
phase = 'novel_pose'

# optimizer
optimizer = dict(type='Adam', lr=5e-4)
optimizer_config = dict(grad_clip=None)

lr_rate = 5e-4
max_iters = 2000000
evalute_config = dict()
lr_config = dict(policy='step', step=500 * 1000, gamma=0.1, by_epoch=False)
checkpoint_config = dict(interval=10000, by_epoch=False)
log_level = 'INFO'
log_config = dict(interval=10000,
                  by_epoch=False,
                  hooks=[dict(type='TextLoggerHook')])
workflow = [('train', 10000), ('val', 1)]

# hooks
# 'params' are numeric type value, 'variables' are variables in local environment
train_hooks = [
    dict(type='SetValPipelineHook',
         params=dict(),
         variables=dict(valset='valset')),
    dict(type='ValidateHook',
         params=dict(save_folder='visualizations/validation')),
    dict(type='PassIterHook', params=dict()),  # 将当前iter数告诉dataset
    dict(type='OccupationHook',
         params=dict()),  # no need for open-source vision
]

test_hooks = [
    dict(type='SetValPipelineHook',
         params=dict(),
         variables=dict(valset='testset')),
    dict(type='TestHook', params=dict()),
]

# runner
train_runner = dict(type='NerfTrainRunner')
test_runner = dict(type='NerfTestRunner')

# runtime settings
num_gpus = 1
distributed = (num_gpus > 1)  # 是否多卡,mmcv对dp多卡支持不好,故而要么单卡要么ddp多卡
work_dir_pattern = './work_dirs/animatable_nerf/h36m_s11_{}/'  # noqa
work_dir = './work_dirs/animatable_nerf/h36m_s11_{}/'.format(phase)  # noqa
timestamp = datetime.now().strftime('%d-%b-%H-%M')

# shared params by model and data and ...
dataset_type = 'blender'
no_batching = True  # only take random rays from 1 image at a time
no_ndc = True  # 源代码中'if args.dataset_type != 'llff' or args.no_ndc:' 就设置no_ndc

white_bkgd = False  # set to render synthetic data on a white bkgd (always use for dvoxels)
is_perturb = True  # set to 0. for no jitter, 1. for jitter
use_viewdirs = True  # use full 5D input instead of 3D
N_rand_per_sampler = 1024 * 1  # how many N_rand in get_item() function
lindisp = False  # sampling linearly in disparity rather than depth
N_samples = 64  # number of coarse samples per ray

# resume_from = os.path.join(work_dir, 'latest.pth')
os.system('mkdir -p {}'.format(work_dir))
load_from = os.path.join(work_dir, 'latest.pth')
if not os.path.exists(load_from):
    ckpt_path = os.path.join(work_dir_pattern.format('train_pose'),
                             'latest.pth')
    os.system('cp {} {}'.format(ckpt_path, work_dir))

num_train_pose = 200
num_novel_pose = 82
model = dict(
    type='AniNeRFNetwork',
    cfg=dict(
        chunk=1024 * 4,  # mainly work for val
        phase=phase,
        tpose_human=dict(
            type='TPoseHuman',
            density_mlp=dict(
                type='AN_DensityMLP',
                embedder=dict(
                    type='BaseEmbedder',
                    i_embed=
                    0,  # set 0 for default positional encoding, -1 for none
                    multires=
                    6,  # log2 of max freq for positional encoding (3D location)
                    multires_dirs=
                    4,  # this is 'multires_views' in origin codes, log2 of max freq for positional encoding (2D direction)
                )),
            color_mlp=dict(
                type='AN_ColorMLP',
                num_train_pose=num_train_pose,
                embedder=dict(
                    type='BaseEmbedder',
                    i_embed=
                    0,  # set 0 for default positional encoding, -1 for none
                    multires=
                    6,  # log2 of max freq for positional encoding (3D location)
                    multires_dirs=
                    4,  # this is 'multires_views' in origin codes, log2 of max freq for positional encoding (2D direction)
                )),
        ),
        deform_field=dict(
            type='DeformField',
            smpl_threshold=0.05,
            phase=phase,
            bw_mlp=dict(
                type='AN_BlendWeightMLP',
                num_pose=num_train_pose,
                embedder=dict(
                    type='BaseEmbedder',
                    i_embed=
                    0,  # set 0 for default positional encoding, -1 for none
                    multires=
                    10,  # log2 of max freq for positional encoding (3D location)
                    multires_dirs=
                    4,  # this is 'multires_views' in origin codes, log2 of max freq for positional encoding (2D direction)
                )),
            novel_pose_bw_mlp=dict(
                type='AN_BlendWeightMLP',
                num_pose=num_novel_pose,
                embedder=dict(
                    type='BaseEmbedder',
                    i_embed=
                    0,  # set 0 for default positional encoding, -1 for none
                    multires=
                    10,  # log2 of max freq for positional encoding (3D location)
                    multires_dirs=
                    4,  # this is 'multires_views' in origin codes, log2 of max freq for positional encoding (2D direction)
                )),
        ),
        bs_data=
        'rays_o',  # the data's shape indicates the real batch-size, this's also the num of rays
    ),
    render=dict(  # render model
        type='NerfRender', ),
)

img_path_to_smpl_idx = lambda x: int(os.path.basename(x)[:-4])
img_path_to_frame_idx = lambda x: int(os.path.basename(x)[:-4])

frame_interval = 5
val_frame_interval = 30
basedata_cfg = dict(
    dataset_type=dataset_type,
    datadir='data/h36m/S11/Posing',
    smpl_vertices_dir='new_vertices',
    smpl_params_dir='new_params',
    ratio=1.,  # reduce the image resolution by ratio
    unit=1000.,
    training_view=[0, 1, 2],
    test_view=[3],
    num_train_pose=num_train_pose,
    training_frame=[0, num_train_pose * frame_interval
                    ],  # [begin_frame, end_frame]
    novel_pose_frame=[
        num_train_pose * frame_interval,
        (num_train_pose + num_novel_pose) * frame_interval
    ],
    frame_interval=frame_interval,
    val_frame_interval=val_frame_interval,
    white_bkgd=white_bkgd,
    mode='train',
    phase=phase,
    img_path_to_smpl_idx=img_path_to_smpl_idx,
    img_path_to_frame_idx=img_path_to_frame_idx,
)

traindata_cfg = basedata_cfg.copy()
valdata_cfg = basedata_cfg.copy()
traindata_cfg.update(dict())
valdata_cfg.update(dict(mode='val'))

train_pipeline = [
    dict(
        type='LoadImageAndCamera',
        enable=True,
    ),  # 读取图片和相机参数
    dict(
        type='LoadSmplParam',
        enable=True,
    ),  # 读取SMPL参数
    dict(
        type='CalculateSkelTransf',
        enable=True,
    ),  # 计算骨架变换矩阵
    dict(
        type='AninerfIdxConversion',
        enable=True,
    ),  # 变换latent index
    dict(
        type='NBGetRays',
        enable=True,
    ),  # 与batching型dataset不同的是, 需要从pose生成rays
    dict(type='NBSelectRays', enable=True, sel_n=N_rand_per_sampler),  # 抽取N个射线
    dict(
        type='ToTensor',
        enable=True,
        keys=['rays_o', 'rays_d', 'target_s', 'near', 'far'],
    ),
    dict(type='GetZvals', enable=True, lindisp=lindisp,
         N_samples=N_samples),  # N_samples: number of coarse samples per ray
    dict(type='PerturbZvals', enable=is_perturb),
    dict(type='GetPts', enable=True),
    dict(type='DeleteUseless',
         enable=True,
         keys=[
             'iter_n', 'cams', 'cam_inds', 'ims', 'cfg', 'data_root', 'idx',
             'img_path', 'num_cams', 'parents', 'joints'
         ]),
]

test_pipeline = [
    dict(
        type='LoadImageAndCamera',
        enable=True,
    ),  # 读取图片和相机参数
    dict(
        type='LoadSmplParam',
        enable=True,
    ),  # 读取SMPL参数
    dict(
        type='CalculateSkelTransf',
        enable=True,
    ),  # 计算骨架变换矩阵
    dict(
        type='AninerfIdxConversion',
        enable=True,
    ),  # 变换latent index
    dict(
        type='NBGetRays',
        enable=True,
    ),
    dict(type='NBSelectRays', enable=True, sel_all=True),  # 抽取N个射线
    dict(
        type='ToTensor',
        enable=True,
        keys=['rays_o', 'rays_d', 'target_s', 'near', 'far', 'mask_at_box'],
    ),
    dict(type='GetZvals', enable=True, lindisp=lindisp,
         N_samples=N_samples),  # N_samples: number of coarse samples per ray
    dict(type='PerturbZvals', enable=False),
    dict(type='GetPts', enable=True),
    dict(type='DeleteUseless',
         enable=True,
         keys=[
             'iter_n', 'cams', 'cam_inds', 'ims', 'cfg', 'data_root', 'idx',
             'img_path', 'num_cams', 'parents', 'joints'
         ]),
]

data = dict(train_loader=dict(batch_size=1, num_workers=0),
            train=dict(
                type='AniNeRFDataset',
                cfg=traindata_cfg,
                pipeline=train_pipeline,
            ),
            val_loader=dict(batch_size=1, num_workers=0),
            val=dict(
                type='AniNeRFDataset',
                cfg=valdata_cfg,
                pipeline=test_pipeline,
            ),
            test_loader=dict(batch_size=1, num_workers=0),
            test=dict(
                type='AniNeRFDataset',
                cfg=valdata_cfg,
                pipeline=test_pipeline,
            ))


================================================
FILE: configs/animatable_nerf/an_h36m_s11_train_pose.py
================================================
_base_ = [
    # '../_base_/models/nerf.py',
    # '../_base_/schedules/adam_20w_iter.py',
    # '../_base_/default_runtime.py'
]

import os
from datetime import datetime

method = 'animatable_nerf'
phase = 'train_pose'

# optimizer
optimizer = dict(type='Adam', lr=5e-4)
optimizer_config = dict(grad_clip=None)

lr_rate = 5e-4
max_iters = 2000000
evalute_config = dict()
lr_config = dict(policy='step', step=500 * 1000, gamma=0.1, by_epoch=False)
checkpoint_config = dict(interval=10000, by_epoch=False)
log_level = 'INFO'
log_config = dict(interval=10000,
                  by_epoch=False,
                  hooks=[dict(type='TextLoggerHook')])
workflow = [('train', 10000), ('val', 1)]

# hooks
# 'params' are numeric type value, 'variables' are variables in local environment
train_hooks = [
    dict(type='SetValPipelineHook',
         params=dict(),
         variables=dict(valset='valset')),
    dict(type='ValidateHook',
         params=dict(save_folder='visualizations/validation')),
    dict(type='PassIterHook', params=dict()),  # 将当前iter数告诉dataset
    dict(type='OccupationHook',
         params=dict()),  # no need for open-source vision
]

test_hooks = [
    dict(type='SetValPipelineHook',
         params=dict(),
         variables=dict(valset='testset')),
    dict(type='TestHook', params=dict()),
]

# runner
train_runner = dict(type='NerfTrainRunner')
test_runner = dict(type='NerfTestRunner')

# runtime settings
num_gpus = 1
distributed = (num_gpus > 1)  # 是否多卡,mmcv对dp多卡支持不好,故而要么单卡要么ddp多卡
work_dir = './work_dirs/animatable_nerf/h36m_s11_{}/'.format(phase)  # noqa
timestamp = datetime.now().strftime('%d-%b-%H-%M')

# shared params by model and data and ...
dataset_type = 'blender'
no_batching = True  # only take random rays from 1 image at a time
no_ndc = True  # 源代码中'if args.dataset_type != 'llff' or args.no_ndc:' 就设置no_ndc

white_bkgd = False  # set to render synthetic data on a white bkgd (always use for dvoxels)
is_perturb = True  # set to 0. for no jitter, 1. for jitter
use_viewdirs = True  # use full 5D input instead of 3D
N_rand_per_sampler = 1024 * 1  # how many N_rand in get_item() function
lindisp = False  # sampling linearly in disparity rather than depth
N_samples = 64  # number of coarse samples per ray

# resume_from = os.path.join(work_dir, 'latest.pth')
load_from = os.path.join(work_dir, 'latest.pth')

num_train_pose = 200
num_novel_pose = 82
model = dict(
    type='AniNeRFNetwork',
    cfg=dict(
        chunk=1024 * 4,  # mainly work for val
        phase=phase,
        tpose_human=dict(
            type='TPoseHuman',
            density_mlp=dict(
                type='AN_DensityMLP',
                embedder=dict(
                    type='BaseEmbedder',
                    i_embed=
                    0,  # set 0 for default positional encoding, -1 for none
                    multires=
                    6,  # log2 of max freq for positional encoding (3D location)
                    multires_dirs=
                    4,  # this is 'multires_views' in origin codes, log2 of max freq for positional encoding (2D direction)
                )),
            color_mlp=dict(
                type='AN_ColorMLP',
                num_train_pose=num_train_pose,
                embedder=dict(
                    type='BaseEmbedder',
                    i_embed=
                    0,  # set 0 for default positional encoding, -1 for none
                    multires=
                    6,  # log2 of max freq for positional encoding (3D location)
                    multires_dirs=
                    4,  # this is 'multires_views' in origin codes, log2 of max freq for positional encoding (2D direction)
                )),
        ),
        deform_field=dict(
            type='DeformField',
            smpl_threshold=0.05,
            phase=phase,
            bw_mlp=dict(
                type='AN_BlendWeightMLP',
                num_pose=num_train_pose,
                embedder=dict(
                    type='BaseEmbedder',
                    i_embed=
                    0,  # set 0 for default positional encoding, -1 for none
                    multires=
                    10,  # log2 of max freq for positional encoding (3D location)
                    multires_dirs=
                    4,  # this is 'multires_views' in origin codes, log2 of max freq for positional encoding (2D direction)
                )),
            novel_pose_bw_mlp=dict(
                type='AN_BlendWeightMLP',
                num_pose=num_novel_pose,
                embedder=dict(
                    type='BaseEmbedder',
                    i_embed=
                    0,  # set 0 for default positional encoding, -1 for none
                    multires=
                    10,  # log2 of max freq for positional encoding (3D location)
                    multires_dirs=
                    4,  # this is 'multires_views' in origin codes, log2 of max freq for positional encoding (2D direction)
                )),
        ),
        bs_data=
        'rays_o',  # the data's shape indicates the real batch-size, this's also the num of rays
    ),
    render=dict(  # render model
        type='NerfRender', ),
)

img_path_to_smpl_idx = lambda x: int(os.path.basename(x)[:-4])
img_path_to_frame_idx = lambda x: int(os.path.basename(x)[:-4])

frame_interval = 5
val_frame_interval = 30
basedata_cfg = dict(
    dataset_type=dataset_type,
    datadir='data/h36m/S11/Posing',
    smpl_vertices_dir='new_vertices',
    smpl_params_dir='new_params',
    ratio=1.,  # reduce the image resolution by ratio
    unit=1000.,
    training_view=[0, 1, 2],
    test_view=[3],
    num_train_pose=num_train_pose,
    training_frame=[0, num_train_pose * frame_interval
                    ],  # [begin_frame, end_frame]
    frame_interval=frame_interval,
    val_frame_interval=val_frame_interval,
    white_bkgd=white_bkgd,
    mode='train',
    phase=phase,
    img_path_to_smpl_idx=img_path_to_smpl_idx,
    img_path_to_frame_idx=img_path_to_frame_idx,
)

traindata_cfg = basedata_cfg.copy()
valdata_cfg = basedata_cfg.copy()
traindata_cfg.update(dict())
valdata_cfg.update(dict(mode='val'))

train_pipeline = [
    dict(
        type='LoadImageAndCamera',
        enable=True,
    ),  # 读取图片和相机参数
    dict(
        type='LoadSmplParam',
        enable=True,
    ),  # 读取SMPL参数
    dict(
        type='CalculateSkelTransf',
        enable=True,
    ),  # 计算骨架变换矩阵
    dict(
        type='AninerfIdxConversion',
        enable=True,
    ),  # 变换latent index
    dict(
        type='NBGetRays',
        enable=True,
    ),  # 与batching型dataset不同的是, 需要从pose生成rays
    dict(type='NBSelectRays', enable=True, sel_n=N_rand_per_sampler),  # 抽取N个射线
    dict(
        type='ToTensor',
        enable=True,
        keys=['rays_o', 'rays_d', 'target_s', 'near', 'far'],
    ),
    dict(type='GetZvals', enable=True, lindisp=lindisp,
         N_samples=N_samples),  # N_samples: number of coarse samples per ray
    dict(type='PerturbZvals', enable=is_perturb),
    dict(type='GetPts', enable=True),
    dict(type='DeleteUseless',
         enable=True,
         keys=[
             'iter_n', 'cams', 'cam_inds', 'ims', 'cfg', 'data_root', 'idx',
             'img_path', 'num_cams', 'parents', 'joints'
         ]),
]

test_pipeline = [
    dict(
        type='LoadImageAndCamera',
        enable=True,
    ),  # 读取图片和相机参数
    dict(
        type='LoadSmplParam',
        enable=True,
    ),  # 读取SMPL参数
    dict(
        type='CalculateSkelTransf',
        enable=True,
    ),  # 计算骨架变换矩阵
    dict(
        type='AninerfIdxConversion',
        enable=True,
    ),  # 变换latent index
    dict(
        type='NBGetRays',
        enable=True,
    ),
    dict(type='NBSelectRays', enable=True, sel_all=True),  # 抽取N个射线
    dict(
        type='ToTensor',
        enable=True,
        keys=['rays_o', 'rays_d', 'target_s', 'near', 'far', 'mask_at_box'],
    ),
    dict(type='GetZvals', enable=True, lindisp=lindisp,
         N_samples=N_samples),  # N_samples: number of coarse samples per ray
    dict(type='PerturbZvals', enable=False),
    dict(type='GetPts', enable=True),
    dict(type='DeleteUseless',
         enable=True,
         keys=[
             'iter_n', 'cams', 'cam_inds', 'ims', 'cfg', 'data_root', 'idx',
             'img_path', 'num_cams', 'parents', 'joints'
         ]),
]

data = dict(train_loader=dict(batch_size=1, num_workers=0),
            train=dict(
                type='AniNeRFDataset',
                cfg=traindata_cfg,
                pipeline=train_pipeline,
            ),
            val_loader=dict(batch_size=1, num_workers=0),
            val=dict(
                type='AniNeRFDataset',
                cfg=valdata_cfg,
                pipeline=test_pipeline,
            ),
            test_loader=dict(batch_size=1, num_workers=0),
            test=dict(
                type='AniNeRFDataset',
                cfg=valdata_cfg,
                pipeline=test_pipeline,
            ))


================================================
FILE: configs/animatable_nerf/an_h36m_s1_novel_pose.py
================================================
_base_ = [
    # '../_base_/models/nerf.py',
    # '../_base_/schedules/adam_20w_iter.py',
    # '../_base_/default_runtime.py'
]

import os
from datetime import datetime

method = 'animatable_nerf'
phase = 'novel_pose'

# optimizer
optimizer = dict(type='Adam', lr=5e-4)
optimizer_config = dict(grad_clip=None)

lr_rate = 5e-4
max_iters = 2000000
evalute_config = dict()
lr_config = dict(policy='step', step=500 * 1000, gamma=0.1, by_epoch=False)
checkpoint_config = dict(interval=10000, by_epoch=False)
log_level = 'INFO'
log_config = dict(interval=10000,
                  by_epoch=False,
                  hooks=[dict(type='TextLoggerHook')])
workflow = [('train', 10000), ('val', 1)]

# hooks
# 'params' are numeric type value, 'variables' are variables in local environment
train_hooks = [
    dict(type='SetValPipelineHook',
         params=dict(),
         variables=dict(valset='valset')),
    dict(type='ValidateHook',
         params=dict(save_folder='visualizations/validation')),
    dict(type='PassIterHook', params=dict()),  # 将当前iter数告诉dataset
    dict(type='OccupationHook',
         params=dict()),  # no need for open-source vision
]

test_hooks = [
    dict(type='SetValPipelineHook',
         params=dict(),
         variables=dict(valset='testset')),
    dict(type='TestHook', params=dict()),
]

# runner
train_runner = dict(type='NerfTrainRunner')
test_runner = dict(type='NerfTestRunner')

# runtime settings
num_gpus = 1
distributed = (num_gpus > 1)  # 是否多卡,mmcv对dp多卡支持不好,故而要么单卡要么ddp多卡
work_dir_pattern = './work_dirs/animatable_nerf/h36m_s1_{}/'  # noqa
work_dir = './work_dirs/animatable_nerf/h36m_s1_{}/'.format(phase)  # noqa
timestamp = datetime.now().strftime('%d-%b-%H-%M')

# shared params by model and data and ...
dataset_type = 'blender'
no_batching = True  # only take random rays from 1 image at a time
no_ndc = True  # 源代码中'if args.dataset_type != 'llff' or args.no_ndc:' 就设置no_ndc

white_bkgd = False  # set to render synthetic data on a white bkgd (always use for dvoxels)
is_perturb = True  # set to 0. for no jitter, 1. for jitter
use_viewdirs = True  # use full 5D input instead of 3D
N_rand_per_sampler = 1024 * 1  # how many N_rand in get_item() function
lindisp = False  # sampling linearly in disparity rather than depth
N_samples = 64  # number of coarse samples per ray

# resume_from = os.path.join(work_dir, 'latest.pth')
os.system('mkdir -p {}'.format(work_dir))
load_from = os.path.join(work_dir, 'latest.pth')
if not os.path.exists(load_from):
    ckpt_path = os.path.join(work_dir_pattern.format('train_pose'),
                             'latest.pth')
    os.system('cp {} {}'.format(ckpt_path, work_dir))

num_train_pose = 150
num_novel_pose = 49
model = dict(
    type='AniNeRFNetwork',
    cfg=dict(
        chunk=1024 * 4,  # mainly work for val
        phase=phase,
        tpose_human=dict(
            type='TPoseHuman',
            density_mlp=dict(
                type='AN_DensityMLP',
                embedder=dict(
                    type='BaseEmbedder',
                    i_embed=
                    0,  # set 0 for default positional encoding, -1 for none
                    multires=
                    6,  # log2 of max freq for positional encoding (3D location)
                    multires_dirs=
                    4,  # this is 'multires_views' in origin codes, log2 of max freq for positional encoding (2D direction)
                )),
            color_mlp=dict(
                type='AN_ColorMLP',
                num_train_pose=num_train_pose,
                embedder=dict(
                    type='BaseEmbedder',
                    i_embed=
                    0,  # set 0 for default positional encoding, -1 for none
                    multires=
                    6,  # log2 of max freq for positional encoding (3D location)
                    multires_dirs=
                    4,  # this is 'multires_views' in origin codes, log2 of max freq for positional encoding (2D direction)
                )),
        ),
        deform_field=dict(
            type='DeformField',
            smpl_threshold=0.05,
            phase=phase,
            bw_mlp=dict(
                type='AN_BlendWeightMLP',
                num_pose=num_train_pose,
                embedder=dict(
                    type='BaseEmbedder',
                    i_embed=
                    0,  # set 0 for default positional encoding, -1 for none
                    multires=
                    10,  # log2 of max freq for positional encoding (3D location)
                    multires_dirs=
                    4,  # this is 'multires_views' in origin codes, log2 of max freq for positional encoding (2D direction)
                )),
            novel_pose_bw_mlp=dict(
                type='AN_BlendWeightMLP',
                num_pose=num_novel_pose,
                embedder=dict(
                    type='BaseEmbedder',
                    i_embed=
                    0,  # set 0 for default positional encoding, -1 for none
                    multires=
                    10,  # log2 of max freq for positional encoding (3D location)
                    multires_dirs=
                    4,  # this is 'multires_views' in origin codes, log2 of max freq for positional encoding (2D direction)
                )),
        ),
        bs_data=
        'rays_o',  # the data's shape indicates the real batch-size, this's also the num of rays
    ),
    render=dict(  # render model
        type='NerfRender', ),
)

img_path_to_smpl_idx = lambda x: int(os.path.basename(x)[:-4])
img_path_to_frame_idx = lambda x: int(os.path.basename(x)[:-4])

frame_interval = 5
val_frame_interval = 30
basedata_cfg = dict(
    dataset_type=dataset_type,
    datadir='data/h36m/S1/Posing',
    smpl_vertices_dir='new_vertices',
    smpl_params_dir='new_params',
    ratio=1.,  # reduce the image resolution by ratio
    unit=1000.,
    training_view=[0, 1, 2],
    test_view=[3],
    num_train_pose=num_train_pose,
    training_frame=[0, num_train_pose * frame_interval
                    ],  # [begin_frame, end_frame]
    novel_pose_frame=[
        num_train_pose * frame_interval,
        (num_train_pose + num_novel_pose) * frame_interval
    ],
    frame_interval=frame_interval,
    val_frame_interval=val_frame_interval,
    white_bkgd=white_bkgd,
    mode='train',
    phase=phase,
    img_path_to_smpl_idx=img_path_to_smpl_idx,
    img_path_to_frame_idx=img_path_to_frame_idx,
)

traindata_cfg = basedata_cfg.copy()
valdata_cfg = basedata_cfg.copy()
traindata_cfg.update(dict())
valdata_cfg.update(dict(mode='val'))

train_pipeline = [
    dict(
        type='LoadImageAndCamera',
        enable=True,
    ),  # 读取图片和相机参数
    dict(
        type='LoadSmplParam',
        enable=True,
    ),  # 读取SMPL参数
    dict(
        type='CalculateSkelTransf',
        enable=True,
    ),  # 计算骨架变换矩阵
    dict(
        type='AninerfIdxConversion',
        enable=True,
    ),  # 变换latent index
    dict(
        type='NBGetRays',
        enable=True,
    ),  # 与batching型dataset不同的是, 需要从pose生成rays
    dict(type='NBSelectRays', enable=True, sel_n=N_rand_per_sampler),  # 抽取N个射线
    dict(
        type='ToTensor',
        enable=True,
        keys=['rays_o', 'rays_d', 'target_s', 'near', 'far'],
    ),
    dict(type='GetZvals', enable=True, lindisp=lindisp,
         N_samples=N_samples),  # N_samples: number of coarse samples per ray
    dict(type='PerturbZvals', enable=is_perturb),
    dict(type='GetPts', enable=True),
    dict(type='DeleteUseless',
         enable=True,
         keys=[
             'iter_n', 'cams', 'cam_inds', 'ims', 'cfg', 'data_root', 'idx',
             'img_path', 'num_cams', 'parents', 'joints'
         ]),
]

test_pipeline = [
    dict(
        type='LoadImageAndCamera',
        enable=True,
    ),  # 读取图片和相机参数
    dict(
        type='LoadSmplParam',
        enable=True,
    ),  # 读取SMPL参数
    dict(
        type='CalculateSkelTransf',
        enable=True,
    ),  # 计算骨架变换矩阵
    dict(
        type='AninerfIdxConversion',
        enable=True,
    ),  # 变换latent index
    dict(
        type='NBGetRays',
        enable=True,
    ),
    dict(type='NBSelectRays', enable=True, sel_all=True),  # 抽取N个射线
    dict(
        type='ToTensor',
        enable=True,
        keys=['rays_o', 'rays_d', 'target_s', 'near', 'far', 'mask_at_box'],
    ),
    dict(type='GetZvals', enable=True, lindisp=lindisp,
         N_samples=N_samples),  # N_samples: number of coarse samples per ray
    dict(type='PerturbZvals', enable=False),
    dict(type='GetPts', enable=True),
    dict(type='DeleteUseless',
         enable=True,
         keys=[
             'iter_n', 'cams', 'cam_inds', 'ims', 'cfg', 'data_root', 'idx',
             'img_path', 'num_cams', 'parents', 'joints'
         ]),
]

data = dict(train_loader=dict(batch_size=1, num_workers=0),
            train=dict(
                type='AniNeRFDataset',
                cfg=traindata_cfg,
                pipeline=train_pipeline,
            ),
            val_loader=dict(batch_size=1, num_workers=0),
            val=dict(
                type='AniNeRFDataset',
                cfg=valdata_cfg,
                pipeline=test_pipeline,
            ),
            test_loader=dict(batch_size=1, num_workers=0),
            test=dict(
                type='AniNeRFDataset',
                cfg=valdata_cfg,
                pipeline=test_pipeline,
            ))


================================================
FILE: configs/animatable_nerf/an_h36m_s1_train_pose.py
================================================
_base_ = [
    # '../_base_/models/nerf.py',
    # '../_base_/schedules/adam_20w_iter.py',
    # '../_base_/default_runtime.py'
]

import os
from datetime import datetime

method = 'animatable_nerf'
phase = 'train_pose'

# optimizer
optimizer = dict(type='Adam', lr=5e-4)
optimizer_config = dict(grad_clip=None)

lr_rate = 5e-4
max_iters = 2000000
evalute_config = dict()
lr_config = dict(policy='step', step=500 * 1000, gamma=0.1, by_epoch=False)
checkpoint_config = dict(interval=10000, by_epoch=False)
log_level = 'INFO'
log_config = dict(interval=10000,
                  by_epoch=False,
                  hooks=[dict(type='TextLoggerHook')])
workflow = [('train', 10000), ('val', 1)]

# hooks
# 'params' are numeric type value, 'variables' are variables in local environment
train_hooks = [
    dict(type='SetValPipelineHook',
         params=dict(),
         variables=dict(valset='valset')),
    dict(type='ValidateHook',
         params=dict(save_folder='visualizations/validation')),
    dict(type='PassIterHook', params=dict()),  # 将当前iter数告诉dataset
    dict(type='OccupationHook',
         params=dict()),  # no need for open-source vision
]

test_hooks = [
    dict(type='SetValPipelineHook',
         params=dict(),
         variables=dict(valset='testset')),
    dict(type='TestHook', params=dict()),
]

# runner
train_runner = dict(type='NerfTrainRunner')
test_runner = dict(type='NerfTestRunner')

# runtime settings
num_gpus = 1
distributed = (num_gpus > 1)  # 是否多卡,mmcv对dp多卡支持不好,故而要么单卡要么ddp多卡
work_dir = './work_dirs/animatable_nerf/h36m_s1_{}/'.format(phase)  # noqa
timestamp = datetime.now().strftime('%d-%b-%H-%M')

# shared params by model and data and ...
dataset_type = 'blender'
no_batching = True  # only take random rays from 1 image at a time
no_ndc = True  # 源代码中'if args.dataset_type != 'llff' or args.no_ndc:' 就设置no_ndc

white_bkgd = False  # set to render synthetic data on a white bkgd (always use for dvoxels)
is_perturb = True  # set to 0. for no jitter, 1. for jitter
use_viewdirs = True  # use full 5D input instead of 3D
N_rand_per_sampler = 1024 * 1  # how many N_rand in get_item() function
lindisp = False  # sampling linearly in disparity rather than depth
N_samples = 64  # number of coarse samples per ray

# resume_from = os.path.join(work_dir, 'latest.pth')
load_from = os.path.join(work_dir, 'latest.pth')

num_train_pose = 150
num_novel_pose = 49
model = dict(
    type='AniNeRFNetwork',
    cfg=dict(
        chunk=1024 * 4,  # mainly work for val
        phase=phase,
        tpose_human=dict(
            type='TPoseHuman',
            density_mlp=dict(
                type='AN_DensityMLP',
                embedder=dict(
                    type='BaseEmbedder',
                    i_embed=
                    0,  # set 0 for default positional encoding, -1 for none
                    multires=
                    6,  # log2 of max freq for positional encoding (3D location)
                    multires_dirs=
                    4,  # this is 'multires_views' in origin codes, log2 of max freq for positional encoding (2D direction)
                )),
            color_mlp=dict(
                type='AN_ColorMLP',
                num_train_pose=num_train_pose,
                embedder=dict(
                    type='BaseEmbedder',
                    i_embed=
                    0,  # set 0 for default positional encoding, -1 for none
                    multires=
                    6,  # log2 of max freq for positional encoding (3D location)
                    multires_dirs=
                    4,  # this is 'multires_views' in origin codes, log2 of max freq for positional encoding (2D direction)
                )),
        ),
        deform_field=dict(
            type='DeformField',
            smpl_threshold=0.05,
            phase=phase,
            bw_mlp=dict(
                type='AN_BlendWeightMLP',
                num_pose=num_train_pose,
                embedder=dict(
                    type='BaseEmbedder',
                    i_embed=
                    0,  # set 0 for default positional encoding, -1 for none
                    multires=
                    10,  # log2 of max freq for positional encoding (3D location)
                    multires_dirs=
                    4,  # this is 'multires_views' in origin codes, log2 of max freq for positional encoding (2D direction)
                )),
            novel_pose_bw_mlp=dict(
                type='AN_BlendWeightMLP',
                num_pose=num_novel_pose,
                embedder=dict(
                    type='BaseEmbedder',
                    i_embed=
                    0,  # set 0 for default positional encoding, -1 for none
                    multires=
                    10,  # log2 of max freq for positional encoding (3D location)
                    multires_dirs=
                    4,  # this is 'multires_views' in origin codes, log2 of max freq for positional encoding (2D direction)
                )),
        ),
        bs_data=
        'rays_o',  # the data's shape indicates the real batch-size, this's also the num of rays
    ),
    render=dict(  # render model
        type='NerfRender', ),
)

img_path_to_smpl_idx = lambda x: int(os.path.basename(x)[:-4])
img_path_to_frame_idx = lambda x: int(os.path.basename(x)[:-4])

frame_interval = 5
val_frame_interval = 30
basedata_cfg = dict(
    dataset_type=dataset_type,
    datadir='data/h36m/S1/Posing',
    smpl_vertices_dir='new_vertices',
    smpl_params_dir='new_params',
    ratio=1.,  # reduce the image resolution by ratio
    unit=1000.,
    training_view=[0, 1, 2],
    test_view=[3],
    num_train_pose=num_train_pose,
    training_frame=[0, num_train_pose * frame_interval
                    ],  # [begin_frame, end_frame]
    frame_interval=frame_interval,
    val_frame_interval=val_frame_interval,
    white_bkgd=white_bkgd,
    mode='train',
    phase=phase,
    img_path_to_smpl_idx=img_path_to_smpl_idx,
    img_path_to_frame_idx=img_path_to_frame_idx,
)

traindata_cfg = basedata_cfg.copy()
valdata_cfg = basedata_cfg.copy()
traindata_cfg.update(dict())
valdata_cfg.update(dict(mode='val'))

train_pipeline = [
    dict(
        type='LoadImageAndCamera',
        enable=True,
    ),  # 读取图片和相机参数
    dict(
        type='LoadSmplParam',
        enable=True,
    ),  # 读取SMPL参数
    dict(
        type='CalculateSkelTransf',
        enable=True,
    ),  # 计算骨架变换矩阵
    dict(
        type='AninerfIdxConversion',
        enable=True,
    ),  # 变换latent index
    dict(
        type='NBGetRays',
        enable=True,
    ),  # 与batching型dataset不同的是, 需要从pose生成rays
    dict(type='NBSelectRays', enable=True, sel_n=N_rand_per_sampler),  # 抽取N个射线
    dict(
        type='ToTensor',
        enable=True,
        keys=['rays_o', 'rays_d', 'target_s', 'near', 'far'],
    ),
    dict(type='GetZvals', enable=True, lindisp=lindisp,
         N_samples=N_samples),  # N_samples: number of coarse samples per ray
    dict(type='PerturbZvals', enable=is_perturb),
    dict(type='GetPts', enable=True),
    dict(type='DeleteUseless',
         enable=True,
         keys=[
             'iter_n', 'cams', 'cam_inds', 'ims', 'cfg', 'data_root', 'idx',
             'img_path', 'num_cams', 'parents', 'joints'
         ]),
]

test_pipeline = [
    dict(
        type='LoadImageAndCamera',
        enable=True,
    ),  # 读取图片和相机参数
    dict(
        type='LoadSmplParam',
        enable=True,
    ),  # 读取SMPL参数
    dict(
        type='CalculateSkelTransf',
        enable=True,
    ),  # 计算骨架变换矩阵
    dict(
        type='AninerfIdxConversion',
        enable=True,
    ),  # 变换latent index
    dict(
        type='NBGetRays',
        enable=True,
    ),
    dict(type='NBSelectRays', enable=True, sel_all=True),  # 抽取N个射线
    dict(
        type='ToTensor',
        enable=True,
        keys=['rays_o', 'rays_d', 'target_s', 'near', 'far', 'mask_at_box'],
    ),
    dict(type='GetZvals', enable=True, lindisp=lindisp,
         N_samples=N_samples),  # N_samples: number of coarse samples per ray
    dict(type='PerturbZvals', enable=False),
    dict(type='GetPts', enable=True),
    dict(type='DeleteUseless',
         enable=True,
         keys=[
             'iter_n', 'cams', 'cam_inds', 'ims', 'cfg', 'data_root', 'idx',
             'img_path', 'num_cams', 'parents', 'joints'
         ]),
]

data = dict(train_loader=dict(batch_size=1, num_workers=0),
            train=dict(
                type='AniNeRFDataset',
                cfg=traindata_cfg,
                pipeline=train_pipeline,
            ),
            val_loader=dict(batch_size=1, num_workers=0),
            val=dict(
                type='AniNeRFDataset',
                cfg=valdata_cfg,
                pipeline=test_pipeline,
            ),
            test_loader=dict(batch_size=1, num_workers=0),
            test=dict(
                type='AniNeRFDataset',
                cfg=valdata_cfg,
                pipeline=test_pipeline,
            ))


================================================
FILE: configs/animatable_nerf/an_h36m_s5_novel_pose.py
================================================
_base_ = [
    # '../_base_/models/nerf.py',
    # '../_base_/schedules/adam_20w_iter.py',
    # '../_base_/default_runtime.py'
]

import os
from datetime import datetime

method = 'animatable_nerf'
phase = 'novel_pose'

# optimizer
optimizer = dict(type='Adam', lr=5e-4)
optimizer_config = dict(grad_clip=None)

lr_rate = 5e-4
max_iters = 2000000
evalute_config = dict()
lr_config = dict(policy='step', step=500 * 1000, gamma=0.1, by_epoch=False)
checkpoint_config = dict(interval=10000, by_epoch=False)
log_level = 'INFO'
log_config = dict(interval=10000,
                  by_epoch=False,
                  hooks=[dict(type='TextLoggerHook')])
workflow = [('train', 10000), ('val', 1)]

# hooks
# 'params' are numeric type value, 'variables' are variables in local environment
train_hooks = [
    dict(type='SetValPipelineHook',
         params=dict(),
         variables=dict(valset='valset')),
    dict(type='ValidateHook',
         params=dict(save_folder='visualizations/validation')),
    dict(type='PassIterHook', params=dict()),  # 将当前iter数告诉dataset
    dict(type='OccupationHook',
         params=dict()),  # no need for open-source vision
]

test_hooks = [
    dict(type='SetValPipelineHook',
         params=dict(),
         variables=dict(valset='testset')),
    dict(type='TestHook', params=dict()),
]

# runner
train_runner = dict(type='NerfTrainRunner')
test_runner = dict(type='NerfTestRunner')

# runtime settings
num_gpus = 1
distributed = (num_gpus > 1)  # 是否多卡,mmcv对dp多卡支持不好,故而要么单卡要么ddp多卡
work_dir_pattern = './work_dirs/animatable_nerf/h36m_s5_{}/'  # noqa
work_dir = './work_dirs/animatable_nerf/h36m_s5_{}/'.format(phase)  # noqa
timestamp = datetime.now().strftime('%d-%b-%H-%M')

# shared params by model and data and ...
dataset_type = 'blender'
no_batching = True  # only take random rays from 1 image at a time
no_ndc = True  # 源代码中'if args.dataset_type != 'llff' or args.no_ndc:' 就设置no_ndc

white_bkgd = False  # set to render synthetic data on a white bkgd (always use for dvoxels)
is_perturb = True  # set to 0. for no jitter, 1. for jitter
use_viewdirs = True  # use full 5D input instead of 3D
N_rand_per_sampler = 1024 * 1  # how many N_rand in get_item() function
lindisp = False  # sampling linearly in disparity rather than depth
N_samples = 64  # number of coarse samples per ray

# resume_from = os.path.join(work_dir, 'latest.pth')
os.system('mkdir -p {}'.format(work_dir))
load_from = os.path.join(work_dir, 'latest.pth')
if not os.path.exists(load_from):
    ckpt_path = os.path.join(work_dir_pattern.format('train_pose'),
                             'latest.pth')
    os.system('cp {} {}'.format(ckpt_path, work_dir))

num_train_pose = 250
num_novel_pose = 127
model = dict(
    type='AniNeRFNetwork',
    cfg=dict(
        chunk=1024 * 4,  # mainly work for val
        phase=phase,
        tpose_human=dict(
            type='TPoseHuman',
            density_mlp=dict(
                type='AN_DensityMLP',
                embedder=dict(
                    type='BaseEmbedder',
                    i_embed=
                    0,  # set 0 for default positional encoding, -1 for none
                    multires=
                    6,  # log2 of max freq for positional encoding (3D location)
                    multires_dirs=
                    4,  # this is 'multires_views' in origin codes, log2 of max freq for positional encoding (2D direction)
                )),
            color_mlp=dict(
                type='AN_ColorMLP',
                num_train_pose=num_train_pose,
                embedder=dict(
                    type='BaseEmbedder',
                    i_embed=
                    0,  # set 0 for default positional encoding, -1 for none
                    multires=
                    6,  # log2 of max freq for positional encoding (3D location)
                    multires_dirs=
                    4,  # this is 'multires_views' in origin codes, log2 of max freq for positional encoding (2D direction)
                )),
        ),
        deform_field=dict(
            type='DeformField',
            smpl_threshold=0.05,
            phase=phase,
            bw_mlp=dict(
                type='AN_BlendWeightMLP',
                num_pose=num_train_pose,
                embedder=dict(
                    type='BaseEmbedder',
                    i_embed=
                    0,  # set 0 for default positional encoding, -1 for none
                    multires=
                    10,  # log2 of max freq for positional encoding (3D location)
                    multires_dirs=
                    4,  # this is 'multires_views' in origin codes, log2 of max freq for positional encoding (2D direction)
                )),
            novel_pose_bw_mlp=dict(
                type='AN_BlendWeightMLP',
                num_pose=num_novel_pose,
                embedder=dict(
                    type='BaseEmbedder',
                    i_embed=
                    0,  # set 0 for default positional encoding, -1 for none
                    multires=
                    10,  # log2 of max freq for positional encoding (3D location)
                    multires_dirs=
                    4,  # this is 'multires_views' in origin codes, log2 of max freq for positional encoding (2D direction)
                )),
        ),
        bs_data=
        'rays_o',  # the data's shape indicates the real batch-size, this's also the num of rays
    ),
    render=dict(  # render model
        type='NerfRender', ),
)

img_path_to_smpl_idx = lambda x: int(os.path.basename(x)[:-4])
img_path_to_frame_idx = lambda x: int(os.path.basename(x)[:-4])

frame_interval = 5
val_frame_interval = 30
basedata_cfg = dict(
    dataset_type=dataset_type,
    datadir='data/h36m/S5/Posing',
    smpl_vertices_dir='new_vertices',
    smpl_params_dir='new_params',
    ratio=1.,  # reduce the image resolution by ratio
    unit=1000.,
    training_view=[0, 1, 2],
    test_view=[3],
    num_train_pose=num_train_pose,
    training_frame=[0, num_train_pose * frame_interval
                    ],  # [begin_frame, end_frame]
    novel_pose_frame=[
        num_train_pose * frame_interval,
        (num_train_pose + num_novel_pose) * frame_interval
    ],
    frame_interval=frame_interval,
    val_frame_interval=val_frame_interval,
    white_bkgd=white_bkgd,
    mode='train',
    phase=phase,
    img_path_to_smpl_idx=img_path_to_smpl_idx,
    img_path_to_frame_idx=img_path_to_frame_idx,
)

traindata_cfg = basedata_cfg.copy()
valdata_cfg = basedata_cfg.copy()
traindata_cfg.update(dict())
valdata_cfg.update(dict(mode='val'))

train_pipeline = [
    dict(
        type='LoadImageAndCamera',
        enable=True,
    ),  # 读取图片和相机参数
    dict(
        type='LoadSmplParam',
        enable=True,
    ),  # 读取SMPL参数
    dict(
        type='CalculateSkelTransf',
        enable=True,
    ),  # 计算骨架变换矩阵
    dict(
        type='AninerfIdxConversion',
        enable=True,
    ),  # 变换latent index
    dict(
        type='NBGetRays',
        enable=True,
    ),  # 与batching型dataset不同的是, 需要从pose生成rays
    dict(type='NBSelectRays', enable=True, sel_n=N_rand_per_sampler),  # 抽取N个射线
    dict(
        type='ToTensor',
        enable=True,
        keys=['rays_o', 'rays_d', 'target_s', 'near', 'far'],
    ),
    dict(type='GetZvals', enable=True, lindisp=lindisp,
         N_samples=N_samples),  # N_samples: number of coarse samples per ray
    dict(type='PerturbZvals', enable=is_perturb),
    dict(type='GetPts', enable=True),
    dict(type='DeleteUseless',
         enable=True,
         keys=[
             'iter_n', 'cams', 'cam_inds', 'ims', 'cfg', 'data_root', 'idx',
             'img_path', 'num_cams', 'parents', 'joints'
         ]),
]

test_pipeline = [
    dict(
        type='LoadImageAndCamera',
        enable=True,
    ),  # 读取图片和相机参数
    dict(
        type='LoadSmplParam',
        enable=True,
    ),  # 读取SMPL参数
    dict(
        type='CalculateSkelTransf',
        enable=True,
    ),  # 计算骨架变换矩阵
    dict(
        type='AninerfIdxConversion',
        enable=True,
    ),  # 变换latent index
    dict(
        type='NBGetRays',
        enable=True,
    ),
    dict(type='NBSelectRays', enable=True, sel_all=True),  # 抽取N个射线
    dict(
        type='ToTensor',
        enable=True,
        keys=['rays_o', 'rays_d', 'target_s', 'near', 'far', 'mask_at_box'],
    ),
    dict(type='GetZvals', enable=True, lindisp=lindisp,
         N_samples=N_samples),  # N_samples: number of coarse samples per ray
    dict(type='PerturbZvals', enable=False),
    dict(type='GetPts', enable=True),
    dict(type='DeleteUseless',
         enable=True,
         keys=[
             'iter_n', 'cams', 'cam_inds', 'ims', 'cfg', 'data_root', 'idx',
             'img_path', 'num_cams', 'parents', 'joints'
         ]),
]

data = dict(train_loader=dict(batch_size=1, num_workers=0),
            train=dict(
                type='AniNeRFDataset',
                cfg=traindata_cfg,
                pipeline=train_pipeline,
            ),
            val_loader=dict(batch_size=1, num_workers=0),
            val=dict(
                type='AniNeRFDataset',
                cfg=valdata_cfg,
                pipeline=test_pipeline,
            ),
            test_loader=dict(batch_size=1, num_workers=0),
            test=dict(
                type='AniNeRFDataset',
                cfg=valdata_cfg,
                pipeline=test_pipeline,
            ))


================================================
FILE: configs/animatable_nerf/an_h36m_s5_train_pose.py
================================================
_base_ = [
    # '../_base_/models/nerf.py',
    # '../_base_/schedules/adam_20w_iter.py',
    # '../_base_/default_runtime.py'
]

import os
from datetime import datetime

method = 'animatable_nerf'
phase = 'train_pose'

# optimizer
optimizer = dict(type='Adam', lr=5e-4)
optimizer_config = dict(grad_clip=None)

lr_rate = 5e-4
max_iters = 2000000
evalute_config = dict()
lr_config = dict(policy='step', step=500 * 1000, gamma=0.1, by_epoch=False)
checkpoint_config = dict(interval=10000, by_epoch=False)
log_level = 'INFO'
log_config = dict(interval=10000,
                  by_epoch=False,
                  hooks=[dict(type='TextLoggerHook')])
workflow = [('train', 10000), ('val', 1)]

# hooks
# 'params' are numeric type value, 'variables' are variables in local environment
train_hooks = [
    dict(type='SetValPipelineHook',
         params=dict(),
         variables=dict(valset='valset')),
    dict(type='ValidateHook',
         params=dict(save_folder='visualizations/validation')),
    dict(type='PassIterHook', params=dict()),  # 将当前iter数告诉dataset
    dict(type='OccupationHook',
         params=dict()),  # no need for open-source vision
]

test_hooks = [
    dict(type='SetValPipelineHook',
         params=dict(),
         variables=dict(valset='testset')),
    dict(type='TestHook', params=dict()),
]

# runner
train_runner = dict(type='NerfTrainRunner')
test_runner = dict(type='NerfTestRunner')

# runtime settings
num_gpus = 1
distributed = (num_gpus > 1)  # 是否多卡,mmcv对dp多卡支持不好,故而要么单卡要么ddp多卡
work_dir = './work_dirs/animatable_nerf/h36m_s5_{}/'.format(phase)  # noqa
timestamp = datetime.now().strftime('%d-%b-%H-%M')

# shared params by model and data and ...
dataset_type = 'blender'
no_batching = True  # only take random rays from 1 image at a time
no_ndc = True  # 源代码中'if args.dataset_type != 'llff' or args.no_ndc:' 就设置no_ndc

white_bkgd = False  # set to render synthetic data on a white bkgd (always use for dvoxels)
is_perturb = True  # set to 0. for no jitter, 1. for jitter
use_viewdirs = True  # use full 5D input instead of 3D
N_rand_per_sampler = 1024 * 1  # how many N_rand in get_item() function
lindisp = False  # sampling linearly in disparity rather than depth
N_samples = 64  # number of coarse samples per ray

# resume_from = os.path.join(work_dir, 'latest.pth')
load_from = os.path.join(work_dir, 'latest.pth')

num_train_pose = 250
num_novel_pose = 127
model = dict(
    type='AniNeRFNetwork',
    cfg=dict(
        chunk=1024 * 4,  # mainly work for val
        phase=phase,
        tpose_human=dict(
            type='TPoseHuman',
            density_mlp=dict(
                type='AN_DensityMLP',
                embedder=dict(
                    type='BaseEmbedder',
                    i_embed=
                    0,  # set 0 for default positional encoding, -1 for none
                    multires=
                    6,  # log2 of max freq for positional encoding (3D location)
                    multires_dirs=
                    4,  # this is 'multires_views' in origin codes, log2 of max freq for positional encoding (2D direction)
                )),
            color_mlp=dict(
                type='AN_ColorMLP',
                num_train_pose=num_train_pose,
                embedder=dict(
                    type='BaseEmbedder',
                    i_embed=
                    0,  # set 0 for default positional encoding, -1 for none
                    multires=
                    6,  # log2 of max freq for positional encoding (3D location)
                    multires_dirs=
                    4,  # this is 'multires_views' in origin codes, log2 of max freq for positional encoding (2D direction)
                )),
        ),
        deform_field=dict(
            type='DeformField',
            smpl_threshold=0.05,
            phase=phase,
            bw_mlp=dict(
                type='AN_BlendWeightMLP',
                num_pose=num_train_pose,
                embedder=dict(
                    type='BaseEmbedder',
                    i_embed=
                    0,  # set 0 for default positional encoding, -1 for none
                    multires=
                    10,  # log2 of max freq for positional encoding (3D location)
                    multires_dirs=
                    4,  # this is 'multires_views' in origin codes, log2 of max freq for positional encoding (2D direction)
                )),
            novel_pose_bw_mlp=dict(
                type='AN_BlendWeightMLP',
                num_pose=num_novel_pose,
                embedder=dict(
                    type='BaseEmbedder',
                    i_embed=
                    0,  # set 0 for default positional encoding, -1 for none
                    multires=
                    10,  # log2 of max freq for positional encoding (3D location)
                    multires_dirs=
                    4,  # this is 'multires_views' in origin codes, log2 of max freq for positional encoding (2D direction)
                )),
        ),
        bs_data=
        'rays_o',  # the data's shape indicates the real batch-size, this's also the num of rays
    ),
    render=dict(  # render model
        type='NerfRender', ),
)

img_path_to_smpl_idx = lambda x: int(os.path.basename(x)[:-4])
img_path_to_frame_idx = lambda x: int(os.path.basename(x)[:-4])

frame_interval = 5
val_frame_interval = 30
basedata_cfg = dict(
    dataset_type=dataset_type,
    datadir='data/h36m/S5/Posing',
    smpl_vertices_dir='new_vertices',
    smpl_params_dir='new_params',
    ratio=1.,  # reduce the image resolution by ratio
    unit=1000.,
    training_view=[0, 1, 2],
    test_view=[3],
    num_train_pose=num_train_pose,
    training_frame=[0, num_train_pose * frame_interval
                    ],  # [begin_frame, end_frame]
    frame_interval=frame_interval,
    val_frame_interval=val_frame_interval,
    white_bkgd=white_bkgd,
    mode='train',
    phase=phase,
    img_path_to_smpl_idx=img_path_to_smpl_idx,
    img_path_to_frame_idx=img_path_to_frame_idx,
)

traindata_cfg = basedata_cfg.copy()
valdata_cfg = basedata_cfg.copy()
traindata_cfg.update(dict())
valdata_cfg.update(dict(mode='val'))

train_pipeline = [
    dict(
        type='LoadImageAndCamera',
        enable=True,
    ),  # 读取图片和相机参数
    dict(
        type='LoadSmplParam',
        enable=True,
    ),  # 读取SMPL参数
    dict(
        type='CalculateSkelTransf',
        enable=True,
    ),  # 计算骨架变换矩阵
    dict(
        type='AninerfIdxConversion',
        enable=True,
    ),  # 变换latent index
    dict(
        type='NBGetRays',
        enable=True,
    ),  # 与batching型dataset不同的是, 需要从pose生成rays
    dict(type='NBSelectRays', enable=True, sel_n=N_rand_per_sampler),  # 抽取N个射线
    dict(
        type='ToTensor',
        enable=True,
        keys=['rays_o', 'rays_d', 'target_s', 'near', 'far'],
    ),
    dict(type='GetZvals', enable=True, lindisp=lindisp,
         N_samples=N_samples),  # N_samples: number of coarse samples per ray
    dict(type='PerturbZvals', enable=is_perturb),
    dict(type='GetPts', enable=True),
    dict(type='DeleteUseless',
         enable=True,
         keys=[
             'iter_n', 'cams', 'cam_inds', 'ims', 'cfg', 'data_root', 'idx',
             'img_path', 'num_cams', 'parents', 'joints'
         ]),
]

test_pipeline = [
    dict(
        type='LoadImageAndCamera',
        enable=True,
    ),  # 读取图片和相机参数
    dict(
        type='LoadSmplParam',
        enable=True,
    ),  # 读取SMPL参数
    dict(
        type='CalculateSkelTransf',
        enable=True,
    ),  # 计算骨架变换矩阵
    dict(
        type='AninerfIdxConversion',
        enable=True,
    ),  # 变换latent index
    dict(
        type='NBGetRays',
        enable=True,
    ),
    dict(type='NBSelectRays', enable=True, sel_all=True),  # 抽取N个射线
    dict(
        type='ToTensor',
        enable=True,
        keys=['rays_o', 'rays_d', 'target_s', 'near', 'far', 'mask_at_box'],
    ),
    dict(type='GetZvals', enable=True, lindisp=lindisp,
         N_samples=N_samples),  # N_samples: number of coarse samples per ray
    dict(type='PerturbZvals', enable=False),
    dict(type='GetPts', enable=True),
    dict(type='DeleteUseless',
         enable=True,
         keys=[
             'iter_n', 'cams', 'cam_inds', 'ims', 'cfg', 'data_root', 'idx',
             'img_path', 'num_cams', 'parents', 'joints'
         ]),
]

data = dict(train_loader=dict(batch_size=1, num_workers=0),
            train=dict(
                type='AniNeRFDataset',
                cfg=traindata_cfg,
                pipeline=train_pipeline,
            ),
            val_loader=dict(batch_size=1, num_workers=0),
            val=dict(
                type='AniNeRFDataset',
                cfg=valdata_cfg,
                pipeline=test_pipeline,
            ),
            test_loader=dict(batch_size=1, num_workers=0),
            test=dict(
                type='AniNeRFDataset',
                cfg=valdata_cfg,
                pipeline=test_pipeline,
            ))


================================================
FILE: configs/animatable_nerf/an_h36m_s6_novel_pose.py
================================================
_base_ = [
    # '../_base_/models/nerf.py',
    # '../_base_/schedules/adam_20w_iter.py',
    # '../_base_/default_runtime.py'
]

import os
from datetime import datetime

method = 'animatable_nerf'
phase = 'novel_pose'

# optimizer
optimizer = dict(type='Adam', lr=5e-4)
optimizer_config = dict(grad_clip=None)

lr_rate = 5e-4
max_iters = 2000000
evalute_config = dict()
lr_config = dict(policy='step', step=500 * 1000, gamma=0.1, by_epoch=False)
checkpoint_config = dict(interval=10000, by_epoch=False)
log_level = 'INFO'
log_config = dict(interval=10000,
                  by_epoch=False,
                  hooks=[dict(type='TextLoggerHook')])
workflow = [('train', 10000), ('val', 1)]

# hooks
# 'params' are numeric type value, 'variables' are variables in local environment
train_hooks = [
    dict(type='SetValPipelineHook',
         params=dict(),
         variables=dict(valset='valset')),
    dict(type='ValidateHook',
         params=dict(save_folder='visualizations/validation')),
    dict(type='PassIterHook', params=dict()),  # 将当前iter数告诉dataset
    dict(type='OccupationHook',
         params=dict()),  # no need for open-source vision
]

test_hooks = [
    dict(type='SetValPipelineHook',
         params=dict(),
         variables=dict(valset='testset')),
    dict(type='TestHook', params=dict()),
]

# runner
train_runner = dict(type='NerfTrainRunner')
test_runner = dict(type='NerfTestRunner')

# runtime settings
num_gpus = 1
distributed = (num_gpus > 1)  # 是否多卡,mmcv对dp多卡支持不好,故而要么单卡要么ddp多卡
work_dir_pattern = './work_dirs/animatable_nerf/h36m_s6_{}/'  # noqa
work_dir = './work_dirs/animatable_nerf/h36m_s6_{}/'.format(phase)  # noqa
timestamp = datetime.now().strftime('%d-%b-%H-%M')

# shared params by model and data and ...
dataset_type = 'blender'
no_batching = True  # only take random rays from 1 image at a time
no_ndc = True  # 源代码中'if args.dataset_type != 'llff' or args.no_ndc:' 就设置no_ndc

white_bkgd = False  # set to render synthetic data on a white bkgd (always use for dvoxels)
is_perturb = True  # set to 0. for no jitter, 1. for jitter
use_viewdirs = True  # use full 5D input instead of 3D
N_rand_per_sampler = 1024 * 1  # how many N_rand in get_item() function
lindisp = False  # sampling linearly in disparity rather than depth
N_samples = 64  # number of coarse samples per ray

# resume_from = os.path.join(work_dir, 'latest.pth')
os.system('mkdir -p {}'.format(work_dir))
load_from = os.path.join(work_dir, 'latest.pth')
if not os.path.exists(load_from):
    ckpt_path = os.path.join(work_dir_pattern.format('train_pose'),
                             'latest.pth')
    os.system('cp {} {}'.format(ckpt_path, work_dir))

num_train_pose = 150
num_novel_pose = 83
model = dict(
    type='AniNeRFNetwork',
    cfg=dict(
        chunk=1024 * 4,  # mainly work for val
        phase=phase,
        tpose_human=dict(
            type='TPoseHuman',
            density_mlp=dict(
                type='AN_DensityMLP',
                embedder=dict(
                    type='BaseEmbedder',
                    i_embed=
                    0,  # set 0 for default positional encoding, -1 for none
                    multires=
                    6,  # log2 of max freq for positional encoding (3D location)
                    multires_dirs=
                    4,  # this is 'multires_views' in origin codes, log2 of max freq for positional encoding (2D direction)
                )),
            color_mlp=dict(
                type='AN_ColorMLP',
                num_train_pose=num_train_pose,
                embedder=dict(
                    type='BaseEmbedder',
                    i_embed=
                    0,  # set 0 for default positional encoding, -1 for none
                    multires=
                    6,  # log2 of max freq for positional encoding (3D location)
                    multires_dirs=
                    4,  # this is 'multires_views' in origin codes, log2 of max freq for positional encoding (2D direction)
                )),
        ),
        deform_field=dict(
            type='DeformField',
            smpl_threshold=0.05,
            phase=phase,
            bw_mlp=dict(
                type='AN_BlendWeightMLP',
                num_pose=num_train_pose,
                embedder=dict(
                    type='BaseEmbedder',
                    i_embed=
                    0,  # set 0 for default positional encoding, -1 for none
                    multires=
                    10,  # log2 of max freq for positional encoding (3D location)
                    multires_dirs=
                    4,  # this is 'multires_views' in origin codes, log2 of max freq for positional encoding (2D direction)
                )),
            novel_pose_bw_mlp=dict(
                type='AN_BlendWeightMLP',
                num_pose=num_novel_pose,
                embedder=dict(
                    type='BaseEmbedder',
                    i_embed=
                    0,  # set 0 for default positional encoding, -1 for none
                    multires=
                    10,  # log2 of max freq for positional encoding (3D location)
                    multires_dirs=
                    4,  # this is 'multires_views' in origin codes, log2 of max freq for positional encoding (2D direction)
                )),
        ),
        bs_data=
        'rays_o',  # the data's shape indicates the real batch-size, this's also the num of rays
    ),
    render=dict(  # render model
        type='NerfRender', ),
)

img_path_to_smpl_idx = lambda x: int(os.path.basename(x)[:-4])
img_path_to_frame_idx = lambda x: int(os.path.basename(x)[:-4])

frame_interval = 5
val_frame_interval = 30
basedata_cfg = dict(
    dataset_type=dataset_type,
    datadir='data/h36m/S6/Posing',
    smpl_vertices_dir='new_vertices',
    smpl_params_dir='new_params',
    ratio=1.,  # reduce the image resolution by ratio
    unit=1000.,
    training_view=[0, 1, 2],
    test_view=[3],
    num_train_pose=num_train_pose,
    training_frame=[0, num_train_pose * frame_interval
                    ],  # [begin_frame, end_frame]
    novel_pose_frame=[
        num_train_pose * frame_interval,
        (num_train_pose + num_novel_pose) * frame_interval
    ],
    frame_interval=frame_interval,
    val_frame_interval=val_frame_interval,
    white_bkgd=white_bkgd,
    mode='train',
    phase=phase,
    img_path_to_smpl_idx=img_path_to_smpl_idx,
    img_path_to_frame_idx=img_path_to_frame_idx,
)

traindata_cfg = basedata_cfg.copy()
valdata_cfg = basedata_cfg.copy()
traindata_cfg.update(dict())
valdata_cfg.update(dict(mode='val'))

train_pipeline = [
    dict(
        type='LoadImageAndCamera',
        enable=True,
    ),  # 读取图片和相机参数
    dict(
        type='LoadSmplParam',
        enable=True,
    ),  # 读取SMPL参数
    dict(
        type='CalculateSkelTransf',
        enable=True,
    ),  # 计算骨架变换矩阵
    dict(
        type='AninerfIdxConversion',
        enable=True,
    ),  # 变换latent index
    dict(
        type='NBGetRays',
        enable=True,
    ),  # 与batching型dataset不同的是, 需要从pose生成rays
    dict(type='NBSelectRays', enable=True, sel_n=N_rand_per_sampler),  # 抽取N个射线
    dict(
        type='ToTensor',
        enable=True,
        keys=['rays_o', 'rays_d', 'target_s', 'near', 'far'],
    ),
    dict(type='GetZvals', enable=True, lindisp=lindisp,
         N_samples=N_samples),  # N_samples: number of coarse samples per ray
    dict(type='PerturbZvals', enable=is_perturb),
    dict(type='GetPts', enable=True),
    dict(type='DeleteUseless',
         enable=True,
         keys=[
             'iter_n', 'cams', 'cam_inds', 'ims', 'cfg', 'data_root', 'idx',
             'img_path', 'num_cams', 'parents', 'joints'
         ]),
]

test_pipeline = [
    dict(
        type='LoadImageAndCamera',
        enable=True,
    ),  # 读取图片和相机参数
    dict(
        type='LoadSmplParam',
        enable=True,
    ),  # 读取SMPL参数
    dict(
        type='CalculateSkelTransf',
        enable=True,
    ),  # 计算骨架变换矩阵
    dict(
        type='AninerfIdxConversion',
        enable=True,
    ),  # 变换latent index
    dict(
        type='NBGetRays',
        enable=True,
    ),
    dict(type='NBSelectRays', enable=True, sel_all=True),  # 抽取N个射线
    dict(
        type='ToTensor',
        enable=True,
        keys=['rays_o', 'rays_d', 'target_s', 'near', 'far', 'mask_at_box'],
    ),
    dict(type='GetZvals', enable=True, lindisp=lindisp,
         N_samples=N_samples),  # N_samples: number of coarse samples per ray
    dict(type='PerturbZvals', enable=False),
    dict(type='GetPts', enable=True),
    dict(type='DeleteUseless',
         enable=True,
         keys=[
             'iter_n', 'cams', 'cam_inds', 'ims', 'cfg', 'data_root', 'idx',
             'img_path', 'num_cams', 'parents', 'joints'
         ]),
]

data = dict(train_loader=dict(batch_size=1, num_workers=0),
            train=dict(
                type='AniNeRFDataset',
                cfg=traindata_cfg,
                pipeline=train_pipeline,
            ),
            val_loader=dict(batch_size=1, num_workers=0),
            val=dict(
                type='AniNeRFDataset',
                cfg=valdata_cfg,
                pipeline=test_pipeline,
            ),
            test_loader=dict(batch_size=1, num_workers=0),
            test=dict(
                type='AniNeRFDataset',
                cfg=valdata_cfg,
                pipeline=test_pipeline,
            ))


================================================
FILE: configs/animatable_nerf/an_h36m_s6_train_pose.py
================================================
_base_ = [
    # '../_base_/models/nerf.py',
    # '../_base_/schedules/adam_20w_iter.py',
    # '../_base_/default_runtime.py'
]

import os
from datetime import datetime

method = 'animatable_nerf'
phase = 'train_pose'

# optimizer
optimizer = dict(type='Adam', lr=5e-4)
optimizer_config = dict(grad_clip=None)

lr_rate = 5e-4
max_iters = 2000000
evalute_config = dict()
lr_config = dict(policy='step', step=500 * 1000, gamma=0.1, by_epoch=False)
checkpoint_config = dict(interval=10000, by_epoch=False)
log_level = 'INFO'
log_config = dict(interval=10000,
                  by_epoch=False,
                  hooks=[dict(type='TextLoggerHook')])
workflow = [('train', 10000), ('val', 1)]

# hooks
# 'params' are numeric type value, 'variables' are variables in local environment
train_hooks = [
    dict(type='SetValPipelineHook',
         params=dict(),
         variables=dict(valset='valset')),
    dict(type='ValidateHook',
         params=dict(save_folder='visualizations/validation')),
    dict(type='PassIterHook', params=dict()),  # 将当前iter数告诉dataset
    dict(type='OccupationHook',
         params=dict()),  # no need for open-source vision
]

test_hooks = [
    dict(type='SetValPipelineHook',
         params=dict(),
         variables=dict(valset='testset')),
    dict(type='TestHook', params=dict()),
]

# runner
train_runner = dict(type='NerfTrainRunner')
test_runner = dict(type='NerfTestRunner')

# runtime settings
num_gpus = 1
distributed = (num_gpus > 1)  # 是否多卡,mmcv对dp多卡支持不好,故而要么单卡要么ddp多卡
work_dir = './work_dirs/animatable_nerf/h36m_s6_{}/'.format(phase)  # noqa
timestamp = datetime.now().strftime('%d-%b-%H-%M')

# shared params by model and data and ...
dataset_type = 'blender'
no_batching = True  # only take random rays from 1 image at a time
no_ndc = True  # 源代码中'if args.dataset_type != 'llff' or args.no_ndc:' 就设置no_ndc

white_bkgd = False  # set to render synthetic data on a white bkgd (always use for dvoxels)
is_perturb = True  # set to 0. for no jitter, 1. for jitter
use_viewdirs = True  # use full 5D input instead of 3D
N_rand_per_sampler = 1024 * 1  # how many N_rand in get_item() function
lindisp = False  # sampling linearly in disparity rather than depth
N_samples = 64  # number of coarse samples per ray

# resume_from = os.path.join(work_dir, 'latest.pth')
load_from = os.path.join(work_dir, 'latest.pth')

num_train_pose = 150
num_novel_pose = 83
model = dict(
    type='AniNeRFNetwork',
    cfg=dict(
        chunk=1024 * 4,  # mainly work for val
        phase=phase,
        tpose_human=dict(
            type='TPoseHuman',
            density_mlp=dict(
                type='AN_DensityMLP',
                embedder=dict(
                    type='BaseEmbedder',
                    i_embed=
                    0,  # set 0 for default positional encoding, -1 for none
                    multires=
                    6,  # log2 of max freq for positional encoding (3D location)
                    multires_dirs=
                    4,  # this is 'multires_views' in origin codes, log2 of max freq for positional encoding (2D direction)
                )),
            color_mlp=dict(
                type='AN_ColorMLP',
                num_train_pose=num_train_pose,
                embedder=dict(
                    type='BaseEmbedder',
                    i_embed=
                    0,  # set 0 for default positional encoding, -1 for none
                    multires=
                    6,  # log2 of max freq for positional encoding (3D location)
                    multires_dirs=
                    4,  # this is 'multires_views' in origin codes, log2 of max freq for positional encoding (2D direction)
                )),
        ),
        deform_field=dict(
            type='DeformField',
            smpl_threshold=0.05,
            phase=phase,
            bw_mlp=dict(
                type='AN_BlendWeightMLP',
                num_pose=num_train_pose,
                embedder=dict(
                    type='BaseEmbedder',
                    i_embed=
                    0,  # set 0 for default positional encoding, -1 for none
                    multires=
                    10,  # log2 of max freq for positional encoding (3D location)
                    multires_dirs=
                    4,  # this is 'multires_views' in origin codes, log2 of max freq for positional encoding (2D direction)
                )),
            novel_pose_bw_mlp=dict(
                type='AN_BlendWeightMLP',
                num_pose=num_novel_pose,
                embedder=dict(
                    type='BaseEmbedder',
                    i_embed=
                    0,  # set 0 for default positional encoding, -1 for none
                    multires=
                    10,  # log2 of max freq for positional encoding (3D location)
                    multires_dirs=
                    4,  # this is 'multires_views' in origin codes, log2 of max freq for positional encoding (2D direction)
                )),
        ),
        bs_data=
        'rays_o',  # the data's shape indicates the real batch-size, this's also the num of rays
    ),
    render=dict(  # render model
        type='NerfRender', ),
)

img_path_to_smpl_idx = lambda x: int(os.path.basename(x)[:-4])
img_path_to_frame_idx = lambda x: int(os.path.basename(x)[:-4])

frame_interval = 5
val_frame_interval = 30
basedata_cfg = dict(
    dataset_type=dataset_type,
    datadir='data/h36m/S6/Posing',
    smpl_vertices_dir='new_vertices',
    smpl_params_dir='new_params',
    ratio=1.,  # reduce the image resolution by ratio
    unit=1000.,
    training_view=[0, 1, 2],
    test_view=[3],
    num_train_pose=num_train_pose,
    training_frame=[0, num_train_pose * frame_interval
                    ],  # [begin_frame, end_frame]
    frame_interval=frame_interval,
    val_frame_interval=val_frame_interval,
    white_bkgd=white_bkgd,
    mode='train',
    phase=phase,
    img_path_to_smpl_idx=img_path_to_smpl_idx,
    img_path_to_frame_idx=img_path_to_frame_idx,
)

traindata_cfg = basedata_cfg.copy()
valdata_cfg = basedata_cfg.copy()
traindata_cfg.update(dict())
valdata_cfg.update(dict(mode='val'))

train_pipeline = [
    dict(
        type='LoadImageAndCamera',
        enable=True,
    ),  # 读取图片和相机参数
    dict(
        type='LoadSmplParam',
        enable=True,
    ),  # 读取SMPL参数
    dict(
        type='CalculateSkelTransf',
        enable=True,
    ),  # 计算骨架变换矩阵
    dict(
        type='AninerfIdxConversion',
        enable=True,
    ),  # 变换latent index
    dict(
        type='NBGetRays',
        enable=True,
    ),  # 与batching型dataset不同的是, 需要从pose生成rays
    dict(type='NBSelectRays', enable=True, sel_n=N_rand_per_sampler),  # 抽取N个射线
    dict(
        type='ToTensor',
        enable=True,
        keys=['rays_o', 'rays_d', 'target_s', 'near', 'far'],
    ),
    dict(type='GetZvals', enable=True, lindisp=lindisp,
         N_samples=N_samples),  # N_samples: number of coarse samples per ray
    dict(type='PerturbZvals', enable=is_perturb),
    dict(type='GetPts', enable=True),
    dict(type='DeleteUseless',
         enable=True,
         keys=[
             'iter_n', 'cams', 'cam_inds', 'ims', 'cfg', 'data_root', 'idx',
             'img_path', 'num_cams', 'parents', 'joints'
         ]),
]

test_pipeline = [
    dict(
        type='LoadImageAndCamera',
        enable=True,
    ),  # 读取图片和相机参数
    dict(
        type='LoadSmplParam',
        enable=True,
    ),  # 读取SMPL参数
    dict(
        type='CalculateSkelTransf',
        enable=True,
    ),  # 计算骨架变换矩阵
    dict(
        type='AninerfIdxConversion',
        enable=True,
    ),  # 变换latent index
    dict(
        type='NBGetRays',
        enable=True,
    ),
    dict(type='NBSelectRays', enable=True, sel_all=True),  # 抽取N个射线
    dict(
        type='ToTensor',
        enable=True,
        keys=['rays_o', 'rays_d', 'target_s', 'near', 'far', 'mask_at_box'],
    ),
    dict(type='GetZvals', enable=True, lindisp=lindisp,
         N_samples=N_samples),  # N_samples: number of coarse samples per ray
    dict(type='PerturbZvals', enable=False),
    dict(type='GetPts', enable=True),
    dict(type='DeleteUseless',
         enable=True,
         keys=[
             'iter_n', 'cams', 'cam_inds', 'ims', 'cfg', 'data_root', 'idx',
             'img_path', 'num_cams', 'parents', 'joints'
         ]),
]

data = dict(train_loader=dict(batch_size=1, num_workers=0),
            train=dict(
                type='AniNeRFDataset',
                cfg=traindata_cfg,
                pipeline=train_pipeline,
            ),
            val_loader=dict(batch_size=1, num_workers=0),
            val=dict(
                type='AniNeRFDataset',
                cfg=valdata_cfg,
                pipeline=test_pipeline,
            ),
            test_loader=dict(batch_size=1, num_workers=0),
            test=dict(
                type='AniNeRFDataset',
                cfg=valdata_cfg,
                pipeline=test_pipeline,
            ))


================================================
FILE: configs/animatable_nerf/an_h36m_s7_novel_pose.py
================================================
_base_ = [
    # '../_base_/models/nerf.py',
    # '../_base_/schedules/adam_20w_iter.py',
    # '../_base_/default_runtime.py'
]

import os
from datetime import datetime

method = 'animatable_nerf'
phase = 'novel_pose'

# optimizer
optimizer = dict(type='Adam', lr=5e-4)
optimizer_config = dict(grad_clip=None)

lr_rate = 5e-4
max_iters = 2000000
evalute_config = dict()
lr_config = dict(policy='step', step=500 * 1000, gamma=0.1, by_epoch=False)
checkpoint_config = dict(interval=10000, by_epoch=False)
log_level = 'INFO'
log_config = dict(interval=10000,
                  by_epoch=False,
                  hooks=[dict(type='TextLoggerHook')])
workflow = [('train', 10000), ('val', 1)]

# hooks
# 'params' are numeric type value, 'variables' are variables in local environment
train_hooks = [
    dict(type='SetValPipelineHook',
         params=dict(),
         variables=dict(valset='valset')),
    dict(type='ValidateHook',
         params=dict(save_folder='visualizations/validation')),
    dict(type='PassIterHook', params=dict()),  # 将当前iter数告诉dataset
    dict(type='OccupationHook',
         params=dict()),  # no need for open-source vision
]

test_hooks = [
    dict(type='SetValPipelineHook',
         params=dict(),
         variables=dict(valset='testset')),
    dict(type='TestHook', params=dict()),
]

# runner
train_runner = dict(type='NerfTrainRunner')
test_runner = dict(type='NerfTestRunner')

# runtime settings
num_gpus = 1
distributed = (num_gpus > 1)  # 是否多卡,mmcv对dp多卡支持不好,故而要么单卡要么ddp多卡
work_dir_pattern = './work_dirs/animatable_nerf/h36m_s7_{}/'  # noqa
work_dir = './work_dirs/animatable_nerf/h36m_s7_{}/'.format(phase)  # noqa
timestamp = datetime.now().strftime('%d-%b-%H-%M')

# shared params by model and data and ...
dataset_type = 'blender'
no_batching = True  # only take random rays from 1 image at a time
no_ndc = True  # 源代码中'if args.dataset_type != 'llff' or args.no_ndc:' 就设置no_ndc

white_bkgd = False  # set to render synthetic data on a white bkgd (always use for dvoxels)
is_perturb = True  # set to 0. for no jitter, 1. for jitter
use_viewdirs = True  # use full 5D input instead of 3D
N_rand_per_sampler = 1024 * 1  # how many N_rand in get_item() function
lindisp = False  # sampling linearly in disparity rather than depth
N_samples = 64  # number of coarse samples per ray

# resume_from = os.path.join(work_dir, 'latest.pth')
os.system('mkdir -p {}'.format(work_dir))
load_from = os.path.join(work_dir, 'latest.pth')
if not os.path.exists(load_from):
    ckpt_path = os.path.join(work_dir_pattern.format('train_pose'),
                             'latest.pth')
    os.system('cp {} {}'.format(ckpt_path, work_dir))

num_train_pose = 300
num_novel_pose = 200
model = dict(
    type='AniNeRFNetwork',
    cfg=dict(
        chunk=1024 * 4,  # mainly work for val
        phase=phase,
        tpose_human=dict(
            type='TPoseHuman',
            density_mlp=dict(
                type='AN_DensityMLP',
                embedder=dict(
                    type='BaseEmbedder',
                    i_embed=
                    0,  # set 0 for default positional encoding, -1 for none
                    multires=
                    6,  # log2 of max freq for positional encoding (3D location)
                    multires_dirs=
                    4,  # this is 'multires_views' in origin codes, log2 of max freq for positional encoding (2D direction)
                )),
            color_mlp=dict(
                type='AN_ColorMLP',
                num_train_pose=num_train_pose,
                embedder=dict(
                    type='BaseEmbedder',
                    i_embed=
                    0,  # set 0 for default positional encoding, -1 for none
                    multires=
                    6,  # log2 of max freq for positional encoding (3D location)
                    multires_dirs=
                    4,  # this is 'multires_views' in origin codes, log2 of max freq for positional encoding (2D direction)
                )),
        ),
        deform_field=dict(
            type='DeformField',
            smpl_threshold=0.05,
            phase=phase,
            bw_mlp=dict(
                type='AN_BlendWeightMLP',
                num_pose=num_train_pose,
                embedder=dict(
                    type='BaseEmbedder',
                    i_embed=
                    0,  # set 0 for default positional encoding, -1 for none
                    multires=
                    10,  # log2 of max freq for positional encoding (3D location)
                    multires_dirs=
                    4,  # this is 'multires_views' in origin codes, log2 of max freq for positional encoding (2D direction)
                )),
            novel_pose_bw_mlp=dict(
                type='AN_BlendWeightMLP',
                num_pose=num_novel_pose,
                embedder=dict(
                    type='BaseEmbedder',
                    i_embed=
                    0,  # set 0 for default positional encoding, -1 for none
                    multires=
                    10,  # log2 of max freq for positional encoding (3D location)
                    multires_dirs=
                    4,  # this is 'multires_views' in origin codes, log2 of max freq for positional encoding (2D direction)
                )),
        ),
        bs_data=
        'rays_o',  # the data's shape indicates the real batch-size, this's also the num of rays
    ),
    render=dict(  # render model
        type='NerfRender', ),
)

img_path_to_smpl_idx = lambda x: int(os.path.basename(x)[:-4])
img_path_to_frame_idx = lambda x: int(os.path.basename(x)[:-4])

frame_interval = 5
val_frame_interval = 30
basedata_cfg = dict(
    dataset_type=dataset_type,
    datadir='data/h36m/S7/Posing',
    smpl_vertices_dir='new_vertices',
    smpl_params_dir='new_params',
    ratio=1.,  # reduce the image resolution by ratio
    unit=1000.,
    training_view=[0, 1, 2],
    test_view=[3],
    num_train_pose=num_train_pose,
    training_frame=[0, num_train_pose * frame_interval
                    ],  # [begin_frame, end_frame]
    novel_pose_frame=[
        num_train_pose * frame_interval,
        (num_train_pose + num_novel_pose) * frame_interval
    ],
    frame_interval=frame_interval,
    val_frame_interval=val_frame_interval,
    white_bkgd=white_bkgd,
    mode='train',
    phase=phase,
    img_path_to_smpl_idx=img_path_to_smpl_idx,
    img_path_to_frame_idx=img_path_to_frame_idx,
)

traindata_cfg = basedata_cfg.copy()
valdata_cfg = basedata_cfg.copy()
traindata_cfg.update(dict())
valdata_cfg.update(dict(mode='val'))

train_pipeline = [
    dict(
        type='LoadImageAndCamera',
        enable=True,
    ),  # 读取图片和相机参数
    dict(
        type='LoadSmplParam',
        enable=True,
    ),  # 读取SMPL参数
    dict(
        type='CalculateSkelTransf',
        enable=True,
    ),  # 计算骨架变换矩阵
    dict(
        type='AninerfIdxConversion',
        enable=True,
    ),  # 变换latent index
    dict(
        type='NBGetRays',
        enable=True,
    ),  # 与batching型dataset不同的是, 需要从pose生成rays
    dict(type='NBSelectRays', enable=True, sel_n=N_rand_per_sampler),  # 抽取N个射线
    dict(
        type='ToTensor',
        enable=True,
        keys=['rays_o', 'rays_d', 'target_s', 'near', 'far'],
    ),
    dict(type='GetZvals', enable=True, lindisp=lindisp,
         N_samples=N_samples),  # N_samples: number of coarse samples per ray
    dict(type='PerturbZvals', enable=is_perturb),
    dict(type='GetPts', enable=True),
    dict(type='DeleteUseless',
         enable=True,
         keys=[
             'iter_n', 'cams', 'cam_inds', 'ims', 'cfg', 'data_root', 'idx',
             'img_path', 'num_cams', 'parents', 'joints'
         ]),
]

test_pipeline = [
    dict(
        type='LoadImageAndCamera',
        enable=True,
    ),  # 读取图片和相机参数
    dict(
        type='LoadSmplParam',
        enable=True,
    ),  # 读取SMPL参数
    dict(
        type='CalculateSkelTransf',
        enable=True,
    ),  # 计算骨架变换矩阵
    dict(
        type='AninerfIdxConversion',
        enable=True,
    ),  # 变换latent index
    dict(
        type='NBGetRays',
        enable=True,
    ),
    dict(type='NBSelectRays', enable=True, sel_all=True),  # 抽取N个射线
    dict(
        type='ToTensor',
        enable=True,
        keys=['rays_o', 'rays_d', 'target_s', 'near', 'far', 'mask_at_box'],
    ),
    dict(type='GetZvals', enable=True, lindisp=lindisp,
         N_samples=N_samples),  # N_samples: number of coarse samples per ray
    dict(type='PerturbZvals', enable=False),
    dict(type='GetPts', enable=True),
    dict(type='DeleteUseless',
         enable=True,
         keys=[
             'iter_n', 'cams', 'cam_inds', 'ims', 'cfg', 'data_root', 'idx',
             'img_path', 'num_cams', 'parents', 'joints'
         ]),
]

data = dict(train_loader=dict(batch_size=1, num_workers=0),
            train=dict(
                type='AniNeRFDataset',
                cfg=traindata_cfg,
                pipeline=train_pipeline,
            ),
            val_loader=dict(batch_size=1, num_workers=0),
            val=dict(
                type='AniNeRFDataset',
                cfg=valdata_cfg,
                pipeline=test_pipeline,
            ),
            test_loader=dict(batch_size=1, num_workers=0),
            test=dict(
                type='AniNeRFDataset',
                cfg=valdata_cfg,
                pipeline=test_pipeline,
            ))


================================================
FILE: configs/animatable_nerf/an_h36m_s7_train_pose.py
================================================
_base_ = [
    # '../_base_/models/nerf.py',
    # '../_base_/schedules/adam_20w_iter.py',
    # '../_base_/default_runtime.py'
]

import os
from datetime import datetime

method = 'animatable_nerf'
phase = 'train_pose'

# optimizer
optimizer = dict(type='Adam', lr=5e-4)
optimizer_config = dict(grad_clip=None)

lr_rate = 5e-4
max_iters = 2000000
evalute_config = dict()
lr_config = dict(policy='step', step=500 * 1000, gamma=0.1, by_epoch=False)
checkpoint_config = dict(interval=10000, by_epoch=False)
log_level = 'INFO'
log_config = dict(interval=10000,
                  by_epoch=False,
                  hooks=[dict(type='TextLoggerHook')])
workflow = [('train', 10000), ('val', 1)]

# hooks
# 'params' are numeric type value, 'variables' are variables in local environment
train_hooks = [
    dict(type='SetValPipelineHook',
         params=dict(),
         variables=dict(valset='valset')),
    dict(type='ValidateHook',
         params=dict(save_folder='visualizations/validation')),
    dict(type='PassIterHook', params=dict()),  # 将当前iter数告诉dataset
    dict(type='OccupationHook',
         params=dict()),  # no need for open-source vision
]

test_hooks = [
    dict(type='SetValPipelineHook',
         params=dict(),
         variables=dict(valset='testset')),
    dict(type='TestHook', params=dict()),
]

# runner
train_runner = dict(type='NerfTrainRunner')
test_runner = dict(type='NerfTestRunner')

# runtime settings
num_gpus = 1
distributed = (num_gpus > 1)  # 是否多卡,mmcv对dp多卡支持不好,故而要么单卡要么ddp多卡
work_dir = './work_dirs/animatable_nerf/h36m_s7_{}/'.format(phase)  # noqa
timestamp = datetime.now().strftime('%d-%b-%H-%M')

# shared params by model and data and ...
dataset_type = 'blender'
no_batching = True  # only take random rays from 1 image at a time
no_ndc = True  # 源代码中'if args.dataset_type != 'llff' or args.no_ndc:' 就设置no_ndc

white_bkgd = False  # set to render synthetic data on a white bkgd (always use for dvoxels)
is_perturb = True  # set to 0. for no jitter, 1. for jitter
use_viewdirs = True  # use full 5D input instead of 3D
N_rand_per_sampler = 1024 * 1  # how many N_rand in get_item() function
lindisp = False  # sampling linearly in disparity rather than depth
N_samples = 64  # number of coarse samples per ray

# resume_from = os.path.join(work_dir, 'latest.pth')
load_from = os.path.join(work_dir, 'latest.pth')

num_train_pose = 300
num_novel_pose = 200
model = dict(
    type='AniNeRFNetwork',
    cfg=dict(
        chunk=1024 * 4,  # mainly work for val
        phase=phase,
        tpose_human=dict(
            type='TPoseHuman',
            density_mlp=dict(
                type='AN_DensityMLP',
                embedder=dict(
                    type='BaseEmbedder',
                    i_embed=
                    0,  # set 0 for default positional encoding, -1 for none
                    multires=
                    6,  # log2 of max freq for positional encoding (3D location)
                    multires_dirs=
                    4,  # this is 'multires_views' in origin codes, log2 of max freq for positional encoding (2D direction)
                )),
            color_mlp=dict(
                type='AN_ColorMLP',
                num_train_pose=num_train_pose,
                embedder=dict(
                    type='BaseEmbedder',
                    i_embed=
                    0,  # set 0 for default positional encoding, -1 for none
                    multires=
                    6,  # log2 of max freq for positional encoding (3D location)
                    multires_dirs=
                    4,  # this is 'multires_views' in origin codes, log2 of max freq for positional encoding (2D direction)
                )),
        ),
        deform_field=dict(
            type='DeformField',
            smpl_threshold=0.05,
            phase=phase,
            bw_mlp=dict(
                type='AN_BlendWeightMLP',
                num_pose=num_train_pose,
                embedder=dict(
                    type='BaseEmbedder',
                    i_embed=
                    0,  # set 0 for default positional encoding, -1 for none
                    multires=
                    10,  # log2 of max freq for positional encoding (3D location)
                    multires_dirs=
                    4,  # this is 'multires_views' in origin codes, log2 of max freq for positional encoding (2D direction)
                )),
            novel_pose_bw_mlp=dict(
                type='AN_BlendWeightMLP',
                num_pose=num_novel_pose,
                embedder=dict(
                    type='BaseEmbedder',
                    i_embed=
                    0,  # set 0 for default positional encoding, -1 for none
                    multires=
                    10,  # log2 of max freq for positional encoding (3D location)
                    multires_dirs=
                    4,  # this is 'multires_views' in origin codes, log2 of max freq for positional encoding (2D direction)
                )),
        ),
        bs_data=
        'rays_o',  # the data's shape indicates the real batch-size, this's also the num of rays
    ),
    render=dict(  # render model
        type='NerfRender', ),
)

img_path_to_smpl_idx = lambda x: int(os.path.basename(x)[:-4])
img_path_to_frame_idx = lambda x: int(os.path.basename(x)[:-4])

frame_interval = 5
val_frame_interval = 30
basedata_cfg = dict(
    dataset_type=dataset_type,
    datadir='data/h36m/S7/Posing',
    smpl_vertices_dir='new_vertices',
    smpl_params_dir='new_params',
    ratio=1.,  # reduce the image resolution by ratio
    unit=1000.,
    training_view=[0, 1, 2],
    test_view=[3],
    num_train_pose=num_train_pose,
    training_frame=[0, num_train_pose * frame_interval
                    ],  # [begin_frame, end_frame]
    frame_interval=frame_interval,
    val_frame_interval=val_frame_interval,
    white_bkgd=white_bkgd,
    mode='train',
    phase=phase,
    img_path_to_smpl_idx=img_path_to_smpl_idx,
    img_path_to_frame_idx=img_path_to_frame_idx,
)

traindata_cfg = basedata_cfg.copy()
valdata_cfg = basedata_cfg.copy()
traindata_cfg.update(dict())
valdata_cfg.update(dict(mode='val'))

train_pipeline = [
    dict(
        type='LoadImageAndCamera',
        enable=True,
    ),  # 读取图片和相机参数
    dict(
        type='LoadSmplParam',
        enable=True,
    ),  # 读取SMPL参数
    dict(
        type='CalculateSkelTransf',
        enable=True,
    ),  # 计算骨架变换矩阵
    dict(
        type='AninerfIdxConversion',
        enable=True,
    ),  # 变换latent index
    dict(
        type='NBGetRays',
        enable=True,
    ),  # 与batching型dataset不同的是, 需要从pose生成rays
    dict(type='NBSelectRays', enable=True, sel_n=N_rand_per_sampler),  # 抽取N个射线
    dict(
        type='ToTensor',
        enable=True,
        keys=['rays_o', 'rays_d', 'target_s', 'near', 'far'],
    ),
    dict(type='GetZvals', enable=True, lindisp=lindisp,
         N_samples=N_samples),  # N_samples: number of coarse samples per ray
    dict(type='PerturbZvals', enable=is_perturb),
    dict(type='GetPts', enable=True),
    dict(type='DeleteUseless',
         enable=True,
         keys=[
             'iter_n', 'cams', 'cam_inds', 'ims', 'cfg', 'data_root', 'idx',
             'img_path', 'num_cams', 'parents', 'joints'
         ]),
]

test_pipeline = [
    dict(
        type='LoadImageAndCamera',
        enable=True,
    ),  # 读取图片和相机参数
    dict(
        type='LoadSmplParam',
        enable=True,
    ),  # 读取SMPL参数
    dict(
        type='CalculateSkelTransf',
        enable=True,
    ),  # 计算骨架变换矩阵
    dict(
        type='AninerfIdxConversion',
        enable=True,
    ),  # 变换latent index
    dict(
        type='NBGetRays',
        enable=True,
    ),
    dict(type='NBSelectRays', enable=True, sel_all=True),  # 抽取N个射线
    dict(
        type='ToTensor',
        enable=True,
        keys=['rays_o', 'rays_d', 'target_s', 'near', 'far', 'mask_at_box'],
    ),
    dict(type='GetZvals', enable=True, lindisp=lindisp,
         N_samples=N_samples),  # N_samples: number of coarse samples per ray
    dict(type='PerturbZvals', enable=False),
    dict(type='GetPts', enable=True),
    dict(type='DeleteUseless',
         enable=True,
         keys=[
             'iter_n', 'cams', 'cam_inds', 'ims', 'cfg', 'data_root', 'idx',
             'img_path', 'num_cams', 'parents', 'joints'
         ]),
]

data = dict(train_loader=dict(batch_size=1, num_workers=0),
            train=dict(
                type='AniNeRFDataset',
                cfg=traindata_cfg,
                pipeline=train_pipeline,
            ),
            val_loader=dict(batch_size=1, num_workers=0),
            val=dict(
                type='AniNeRFDataset',
                cfg=valdata_cfg,
                pipeline=test_pipeline,
            ),
            test_loader=dict(batch_size=1, num_workers=0),
            test=dict(
                type='AniNeRFDataset',
                cfg=valdata_cfg,
                pipeline=test_pipeline,
            ))


================================================
FILE: configs/animatable_nerf/an_h36m_s8_novel_pose.py
================================================
_base_ = [
    # '../_base_/models/nerf.py',
    # '../_base_/schedules/adam_20w_iter.py',
    # '../_base_/default_runtime.py'
]

import os
from datetime import datetime

method = 'animatable_nerf'
phase = 'novel_pose'

# optimizer
optimizer = dict(type='Adam', lr=5e-4)
optimizer_config = dict(grad_clip=None)

lr_rate = 5e-4
max_iters = 2000000
evalute_config = dict()
lr_config = dict(policy='step', step=500 * 1000, gamma=0.1, by_epoch=False)
checkpoint_config = dict(interval=10000, by_epoch=False)
log_level = 'INFO'
log_config = dict(interval=10000,
                  by_epoch=False,
                  hooks=[dict(type='TextLoggerHook')])
workflow = [('train', 10000), ('val', 1)]

# hooks
# 'params' are numeric type value, 'variables' are variables in local environment
train_hooks = [
    dict(type='SetValPipelineHook',
         params=dict(),
         variables=dict(valset='valset')),
    dict(type='ValidateHook',
         params=dict(save_folder='visualizations/validation')),
    dict(type='PassIterHook', params=dict()),  # 将当前iter数告诉dataset
    dict(type='OccupationHook',
         params=dict()),  # no need for open-source vision
]

test_hooks = [
    dict(type='SetValPipelineHook',
         params=dict(),
         variables=dict(valset='testset')),
    dict(type='TestHook', params=dict()),
]

# runner
train_runner = dict(type='NerfTrainRunner')
test_runner = dict(type='NerfTestRunner')

# runtime settings
num_gpus = 1
distributed = (num_gpus > 1)  # 是否多卡,mmcv对dp多卡支持不好,故而要么单卡要么ddp多卡
work_dir_pattern = './work_dirs/animatable_nerf/h36m_s8_{}/'  # noqa
work_dir = './work_dirs/animatable_nerf/h36m_s8_{}/'.format(phase)  # noqa
timestamp = datetime.now().strftime('%d-%b-%H-%M')

# shared params by model and data and ...
dataset_type = 'blender'
no_batching = True  # only take random rays from 1 image at a time
no_ndc = True  # 源代码中'if args.dataset_type != 'llff' or args.no_ndc:' 就设置no_ndc

white_bkgd = False  # set to render synthetic data on a white bkgd (always use for dvoxels)
is_perturb = True  # set to 0. for no jitter, 1. for jitter
use_viewdirs = True  # use full 5D input instead of 3D
N_rand_per_sampler = 1024 * 1  # how many N_rand in get_item() function
lindisp = False  # sampling linearly in disparity rather than depth
N_samples = 64  # number of coarse samples per ray

# resume_from = os.path.join(work_dir, 'latest.pth')
os.system('mkdir -p {}'.format(work_dir))
load_from = os.path.join(work_dir, 'latest.pth')
if not os.path.exists(load_from):
    ckpt_path = os.path.join(work_dir_pattern.format('train_pose'),
                             'latest.pth')
    os.system('cp {} {}'.format(ckpt_path, work_dir))

num_train_pose = 250
num_novel_pose = 87
model = dict(
    type='AniNeRFNetwork',
    cfg=dict(
        chunk=1024 * 4,  # mainly work for val
        phase=phase,
        tpose_human=dict(
            type='TPoseHuman',
            density_mlp=dict(
                type='AN_DensityMLP',
                embedder=dict(
                    type='BaseEmbedder',
                    i_embed=
                    0,  # set 0 for default positional encoding, -1 for none
                    multires=
                    6,  # log2 of max freq for positional encoding (3D location)
                    multires_dirs=
                    4,  # this is 'multires_views' in origin codes, log2 of max freq for positional encoding (2D direction)
                )),
            color_mlp=dict(
                type='AN_ColorMLP',
                num_train_pose=num_train_pose,
                embedder=dict(
                    type='BaseEmbedder',
                    i_embed=
                    0,  # set 0 for default positional encoding, -1 for none
                    multires=
                    6,  # log2 of max freq for positional encoding (3D location)
                    multires_dirs=
                    4,  # this is 'multires_views' in origin codes, log2 of max freq for positional encoding (2D direction)
                )),
        ),
        deform_field=dict(
            type='DeformField',
            smpl_threshold=0.05,
            phase=phase,
            bw_mlp=dict(
                type='AN_BlendWeightMLP',
                num_pose=num_train_pose,
                embedder=dict(
                    type='BaseEmbedder',
                    i_embed=
                    0,  # set 0 for default positional encoding, -1 for none
                    multires=
                    10,  # log2 of max freq for positional encoding (3D location)
                    multires_dirs=
                    4,  # this is 'multires_views' in origin codes, log2 of max freq for positional encoding (2D direction)
                )),
            novel_pose_bw_mlp=dict(
                type='AN_BlendWeightMLP',
                num_pose=num_novel_pose,
                embedder=dict(
                    type='BaseEmbedder',
                    i_embed=
                    0,  # set 0 for default positional encoding, -1 for none
                    multires=
                    10,  # log2 of max freq for positional encoding (3D location)
                    multires_dirs=
                    4,  # this is 'multires_views' in origin codes, log2 of max freq for positional encoding (2D direction)
                )),
        ),
        bs_data=
        'rays_o',  # the data's shape indicates the real batch-size, this's also the num of rays
    ),
    render=dict(  # render model
        type='NerfRender', ),
)

img_path_to_smpl_idx = lambda x: int(os.path.basename(x)[:-4])
img_path_to_frame_idx = lambda x: int(os.path.basename(x)[:-4])

frame_interval = 5
val_frame_interval = 30
basedata_cfg = dict(
    dataset_type=dataset_type,
    datadir='data/h36m/S8/Posing',
    smpl_vertices_dir='new_vertices',
    smpl_params_dir='new_params',
    ratio=1.,  # reduce the image resolution by ratio
    unit=1000.,
    training_view=[0, 1, 2],
    test_view=[3],
    num_train_pose=num_train_pose,
    training_frame=[0, num_train_pose * frame_interval
                    ],  # [begin_frame, end_frame]
    novel_pose_frame=[
        num_train_pose * frame_interval,
        (num_train_pose + num_novel_pose) * frame_interval
    ],
    frame_interval=frame_interval,
    val_frame_interval=val_frame_interval,
    white_bkgd=white_bkgd,
    mode='train',
    phase=phase,
    img_path_to_smpl_idx=img_path_to_smpl_idx,
    img_path_to_frame_idx=img_path_to_frame_idx,
)

traindata_cfg = basedata_cfg.copy()
valdata_cfg = basedata_cfg.copy()
traindata_cfg.update(dict())
valdata_cfg.update(dict(mode='val'))

train_pipeline = [
    dict(
        type='LoadImageAndCamera',
        enable=True,
    ),  # 读取图片和相机参数
    dict(
        type='LoadSmplParam',
        enable=True,
    ),  # 读取SMPL参数
    dict(
        type='CalculateSkelTransf',
        enable=True,
    ),  # 计算骨架变换矩阵
    dict(
        type='AninerfIdxConversion',
        enable=True,
    ),  # 变换latent index
    dict(
        type='NBGetRays',
        enable=True,
    ),  # 与batching型dataset不同的是, 需要从pose生成rays
    dict(type='NBSelectRays', enable=True, sel_n=N_rand_per_sampler),  # 抽取N个射线
    dict(
        type='ToTensor',
        enable=True,
        keys=['rays_o', 'rays_d', 'target_s', 'near', 'far'],
    ),
    dict(type='GetZvals', enable=True, lindisp=lindisp,
         N_samples=N_samples),  # N_samples: number of coarse samples per ray
    dict(type='PerturbZvals', enable=is_perturb),
    dict(type='GetPts', enable=True),
    dict(type='DeleteUseless',
         enable=True,
         keys=[
             'iter_n', 'cams', 'cam_inds', 'ims', 'cfg', 'data_root', 'idx',
             'img_path', 'num_cams', 'parents', 'joints'
         ]),
]

test_pipeline = [
    dict(
        type='LoadImageAndCamera',
        enable=True,
    ),  # 读取图片和相机参数
    dict(
        type='LoadSmplParam',
        enable=True,
    ),  # 读取SMPL参数
    dict(
        type='CalculateSkelTransf',
        enable=True,
    ),  # 计算骨架变换矩阵
    dict(
        type='AninerfIdxConversion',
        enable=True,
    ),  # 变换latent index
    dict(
        type='NBGetRays',
        enable=True,
    ),
    dict(type='NBSelectRays', enable=True, sel_all=True),  # 抽取N个射线
    dict(
        type='ToTensor',
        enable=True,
        keys=['rays_o', 'rays_d', 'target_s', 'near', 'far', 'mask_at_box'],
    ),
    dict(type='GetZvals', enable=True, lindisp=lindisp,
         N_samples=N_samples),  # N_samples: number of coarse samples per ray
    dict(type='PerturbZvals', enable=False),
    dict(type='GetPts', enable=True),
    dict(type='DeleteUseless',
         enable=True,
         keys=[
             'iter_n', 'cams', 'cam_inds', 'ims', 'cfg', 'data_root', 'idx',
             'img_path', 'num_cams', 'parents', 'joints'
         ]),
]

data = dict(train_loader=dict(batch_size=1, num_workers=0),
            train=dict(
                type='AniNeRFDataset',
                cfg=traindata_cfg,
                pipeline=train_pipeline,
            ),
            val_loader=dict(batch_size=1, num_workers=0),
            val=dict(
                type='AniNeRFDataset',
                cfg=valdata_cfg,
                pipeline=test_pipeline,
            ),
            test_loader=dict(batch_size=1, num_workers=0),
            test=dict(
                type='AniNeRFDataset',
                cfg=valdata_cfg,
                pipeline=test_pipeline,
            ))


================================================
FILE: configs/animatable_nerf/an_h36m_s8_train_pose.py
================================================
_base_ = [
    # '../_base_/models/nerf.py',
    # '../_base_/schedules/adam_20w_iter.py',
    # '../_base_/default_runtime.py'
]

import os
from datetime import datetime

method = 'animatable_nerf'
phase = 'train_pose'

# optimizer
optimizer = dict(type='Adam', lr=5e-4)
optimizer_config = dict(grad_clip=None)

lr_rate = 5e-4
max_iters = 2000000
evalute_config = dict()
lr_config = dict(policy='step', step=500 * 1000, gamma=0.1, by_epoch=False)
checkpoint_config = dict(interval=10000, by_epoch=False)
log_level = 'INFO'
log_config = dict(interval=10000,
                  by_epoch=False,
                  hooks=[dict(type='TextLoggerHook')])
workflow = [('train', 10000), ('val', 1)]

# hooks
# 'params' are numeric type value, 'variables' are variables in local environment
train_hooks = [
    dict(type='SetValPipelineHook',
         params=dict(),
         variables=dict(valset='valset')),
    dict(type='ValidateHook',
         params=dict(save_folder='visualizations/validation')),
    dict(type='PassIterHook', params=dict()),  # 将当前iter数告诉dataset
    dict(type='OccupationHook',
         params=dict()),  # no need for open-source vision
]

test_hooks = [
    dict(type='SetValPipelineHook',
         params=dict(),
         variables=dict(valset='testset')),
    dict(type='TestHook', params=dict()),
]

# runner
train_runner = dict(type='NerfTrainRunner')
test_runner = dict(type='NerfTestRunner')

# runtime settings
num_gpus = 1
distributed = (num_gpus > 1)  # 是否多卡,mmcv对dp多卡支持不好,故而要么单卡要么ddp多卡
work_dir = './work_dirs/animatable_nerf/h36m_s8_{}/'.format(phase)  # noqa
timestamp = datetime.now().strftime('%d-%b-%H-%M')

# shared params by model and data and ...
dataset_type = 'blender'
no_batching = True  # only take random rays from 1 image at a time
no_ndc = True  # 源代码中'if args.dataset_type != 'llff' or args.no_ndc:' 就设置no_ndc

white_bkgd = False  # set to render synthetic data on a white bkgd (always use for dvoxels)
is_perturb = True  # set to 0. for no jitter, 1. for jitter
use_viewdirs = True  # use full 5D input instead of 3D
N_rand_per_sampler = 1024 * 1  # how many N_rand in get_item() function
lindisp = False  # sampling linearly in disparity rather than depth
N_samples = 64  # number of coarse samples per ray

# resume_from = os.path.join(work_dir, 'latest.pth')
load_from = os.path.join(work_dir, 'latest.pth')

num_train_pose = 250
num_novel_pose = 87
model = dict(
    type='AniNeRFNetwork',
    cfg=dict(
        chunk=1024 * 4,  # mainly work for val
        phase=phase,
        tpose_human=dict(
            type='TPoseHuman',
            density_mlp=dict(
                type='AN_DensityMLP',
                embedder=dict(
                    type='BaseEmbedder',
                    i_embed=
                    0,  # set 0 for default positional encoding, -1 for none
                    multires=
                    6,  # log2 of max freq for positional encoding (3D location)
                    multires_dirs=
                    4,  # this is 'multires_views' in origin codes, log2 of max freq for positional encoding (2D direction)
                )),
            color_mlp=dict(
                type='AN_ColorMLP',
                num_train_pose=num_train_pose,
                embedder=dict(
                    type='BaseEmbedder',
                    i_embed=
                    0,  # set 0 for default positional encoding, -1 for none
                    multires=
                    6,  # log2 of max freq for positional encoding (3D location)
                    multires_dirs=
                    4,  # this is 'multires_views' in origin codes, log2 of max freq for positional encoding (2D direction)
                )),
        ),
        deform_field=dict(
            type='DeformField',
            smpl_threshold=0.05,
            phase=phase,
            bw_mlp=dict(
                type='AN_BlendWeightMLP',
                num_pose=num_train_pose,
                embedder=dict(
                    type='BaseEmbedder',
                    i_embed=
                    0,  # set 0 for default positional encoding, -1 for none
                    multires=
                    10,  # log2 of max freq for positional encoding (3D location)
                    multires_dirs=
                    4,  # this is 'multires_views' in origin codes, log2 of max freq for positional encoding (2D direction)
                )),
            novel_pose_bw_mlp=dict(
                type='AN_BlendWeightMLP',
                num_pose=num_novel_pose,
                embedder=dict(
                    type='BaseEmbedder',
                    i_embed=
                    0,  # set 0 for default positional encoding, -1 for none
                    multires=
                    10,  # log2 of max freq for positional encoding (3D location)
                    multires_dirs=
                    4,  # this is 'multires_views' in origin codes, log2 of max freq for positional encoding (2D direction)
                )),
        ),
        bs_data=
        'rays_o',  # the data's shape indicates the real batch-size, this's also the num of rays
    ),
    render=dict(  # render model
        type='NerfRender', ),
)

img_path_to_smpl_idx = lambda x: int(os.path.basename(x)[:-4])
img_path_to_frame_idx = lambda x: int(os.path.basename(x)[:-4])

frame_interval = 5
val_frame_interval = 30
basedata_cfg = dict(
    dataset_type=dataset_type,
    datadir='data/h36m/S8/Posing',
    smpl_vertices_dir='new_vertices',
    smpl_params_dir='new_params',
    ratio=1.,  # reduce the image resolution by ratio
    unit=1000.,
    training_view=[0, 1, 2],
    test_view=[3],
    num_train_pose=num_train_pose,
    training_frame=[0, num_train_pose * frame_interval
                    ],  # [begin_frame, end_frame]
    frame_interval=frame_interval,
    val_frame_interval=val_frame_interval,
    white_bkgd=white_bkgd,
    mode='train',
    phase=phase,
    img_path_to_smpl_idx=img_path_to_smpl_idx,
    img_path_to_frame_idx=img_path_to_frame_idx,
)

traindata_cfg = basedata_cfg.copy()
valdata_cfg = basedata_cfg.copy()
traindata_cfg.update(dict())
valdata_cfg.update(dict(mode='val'))

train_pipeline = [
    dict(
        type='LoadImageAndCamera',
        enable=True,
    ),  # 读取图片和相机参数
    dict(
        type='LoadSmplParam',
        enable=True,
    ),  # 读取SMPL参数
    dict(
        type='CalculateSkelTransf',
        enable=True,
    ),  # 计算骨架变换矩阵
    dict(
        type='AninerfIdxConversion',
        enable=True,
    ),  # 变换latent index
    dict(
        type='NBGetRays',
        enable=True,
    ),  # 与batching型dataset不同的是, 需要从pose生成rays
    dict(type='NBSelectRays', enable=True, sel_n=N_rand_per_sampler),  # 抽取N个射线
    dict(
        type='ToTensor',
        enable=True,
        keys=['rays_o', 'rays_d', 'target_s', 'near', 'far'],
    ),
    dict(type='GetZvals', enable=True, lindisp=lindisp,
         N_samples=N_samples),  # N_samples: number of coarse samples per ray
    dict(type='PerturbZvals', enable=is_perturb),
    dict(type='GetPts', enable=True),
    dict(type='DeleteUseless',
         enable=True,
         keys=[
             'iter_n', 'cams', 'cam_inds', 'ims', 'cfg', 'data_root', 'idx',
             'img_path', 'num_cams', 'parents', 'joints'
         ]),
]

test_pipeline = [
    dict(
        type='LoadImageAndCamera',
        enable=True,
    ),  # 读取图片和相机参数
    dict(
        type='LoadSmplParam',
        enable=True,
    ),  # 读取SMPL参数
    dict(
        type='CalculateSkelTransf',
        enable=True,
    ),  # 计算骨架变换矩阵
    dict(
        type='AninerfIdxConversion',
        enable=True,
    ),  # 变换latent index
    dict(
        type='NBGetRays',
        enable=True,
    ),
    dict(type='NBSelectRays', enable=True, sel_all=True),  # 抽取N个射线
    dict(
        type='ToTensor',
        enable=True,
        keys=['rays_o', 'rays_d', 'target_s', 'near', 'far', 'mask_at_box'],
    ),
    dict(type='GetZvals', enable=True, lindisp=lindisp,
         N_samples=N_samples),  # N_samples: number of coarse samples per ray
    dict(type='PerturbZvals', enable=False),
    dict(type='GetPts', enable=True),
    dict(type='DeleteUseless',
         enable=True,
         keys=[
             'iter_n', 'cams', 'cam_inds', 'ims', 'cfg', 'data_root', 'idx',
             'img_path', 'num_cams', 'parents', 'joints'
         ]),
]

data = dict(train_loader=dict(batch_size=1, num_workers=0),
            train=dict(
                type='AniNeRFDataset',
                cfg=traindata_cfg,
                pipeline=train_pipeline,
            ),
            val_loader=dict(batch_size=1, num_workers=0),
            val=dict(
                type='AniNeRFDataset',
                cfg=valdata_cfg,
                pipeline=test_pipeline,
            ),
            test_loader=dict(batch_size=1, num_workers=0),
            test=dict(
                type='AniNeRFDataset',
                cfg=valdata_cfg,
                pipeline=test_pipeline,
            ))


================================================
FILE: configs/animatable_nerf/an_h36m_s9_novel_pose.py
================================================
_base_ = [
    # '../_base_/models/nerf.py',
    # '../_base_/schedules/adam_20w_iter.py',
    # '../_base_/default_runtime.py'
]

import os
from datetime import datetime

method = 'animatable_nerf'
phase = 'novel_pose'

# optimizer
optimizer = dict(type='Adam', lr=5e-4)
optimizer_config = dict(grad_clip=None)

lr_rate = 5e-4
max_iters = 2000000
evalute_config = dict()
lr_config = dict(policy='step', step=500 * 1000, gamma=0.1, by_epoch=False)
checkpoint_config = dict(interval=10000, by_epoch=False)
log_level = 'INFO'
log_config = dict(interval=10000,
                  by_epoch=False,
                  hooks=[dict(type='TextLoggerHook')])
workflow = [('train', 10000), ('val', 1)]

# hooks
# 'params' are numeric type value, 'variables' are variables in local environment
train_hooks = [
    dict(type='SetValPipelineHook',
         params=dict(),
         variables=dict(valset='valset')),
    dict(type='ValidateHook',
         params=dict(save_folder='visualizations/validation')),
    dict(type='PassIterHook', params=dict()),  # 将当前iter数告诉dataset
    dict(type='OccupationHook',
         params=dict()),  # no need for open-source vision
]

test_hooks = [
    dict(type='SetValPipelineHook',
         params=dict(),
         variables=dict(valset='testset')),
    dict(type='TestHook', params=dict()),
]

# runner
train_runner = dict(type='NerfTrainRunner')
test_runner = dict(type='NerfTestRunner')

# runtime settings
num_gpus = 1
distributed = (num_gpus > 1)  # 是否多卡,mmcv对dp多卡支持不好,故而要么单卡要么ddp多卡
work_dir_pattern = './work_dirs/animatable_nerf/h36m_s1_{}/'  # noqa
work_dir = './work_dirs/animatable_nerf/h36m_s9_{}/'.format(phase)  # noqa
timestamp = datetime.now().strftime('%d-%b-%H-%M')

# shared params by model and data and ...
dataset_type = 'blender'
no_batching = True  # only take random rays from 1 image at a time
no_ndc = True  # 源代码中'if args.dataset_type != 'llff' or args.no_ndc:' 就设置no_ndc

white_bkgd = False  # set to render synthetic data on a white bkgd (always use for dvoxels)
is_perturb = True  # set to 0. for no jitter, 1. for jitter
use_viewdirs = True  # use full 5D input instead of 3D
N_rand_per_sampler = 1024 * 1  # how many N_rand in get_item() function
lindisp = False  # sampling linearly in disparity rather than depth
N_samples = 64  # number of coarse samples per ray

# resume_from = os.path.join(work_dir, 'latest.pth')
os.system('mkdir -p {}'.format(work_dir))
load_from = os.path.join(work_dir, 'latest.pth')
if not os.path.exists(load_from):
    ckpt_path = os.path.join(work_dir_pattern.format('train_pose'),
                             'latest.pth')
    os.system('cp {} {}'.format(ckpt_path, work_dir))

num_train_pose = 260
num_novel_pose = 133
model = dict(
    type='AniNeRFNetwork',
    cfg=dict(
        chunk=1024 * 4,  # mainly work for val
        phase=phase,
        tpose_human=dict(
            type='TPoseHuman',
            density_mlp=dict(
                type='AN_DensityMLP',
                embedder=dict(
                    type='BaseEmbedder',
                    i_embed=
                    0,  # set 0 for default positional encoding, -1 for none
                    multires=
                    6,  # log2 of max freq for positional encoding (3D location)
                    multires_dirs=
                    4,  # this is 'multires_views' in origin codes, log2 of max freq for positional encoding (2D direction)
                )),
            color_mlp=dict(
                type='AN_ColorMLP',
                num_train_pose=num_train_pose,
                embedder=dict(
                    type='BaseEmbedder',
                    i_embed=
                    0,  # set 0 for default positional encoding, -1 for none
                    multires=
                    6,  # log2 of max freq for positional encoding (3D location)
                    multires_dirs=
                    4,  # this is 'multires_views' in origin codes, log2 of max freq for positional encoding (2D direction)
                )),
        ),
        deform_field=dict(
            type='DeformField',
            smpl_threshold=0.05,
            phase=phase,
            bw_mlp=dict(
                type='AN_BlendWeightMLP',
                num_pose=num_train_pose,
                embedder=dict(
                    type='BaseEmbedder',
                    i_embed=
                    0,  # set 0 for default positional encoding, -1 for none
                    multires=
                    10,  # log2 of max freq for positional encoding (3D location)
                    multires_dirs=
                    4,  # this is 'multires_views' in origin codes, log2 of max freq for positional encoding (2D direction)
                )),
            novel_pose_bw_mlp=dict(
                type='AN_BlendWeightMLP',
                num_pose=num_novel_pose,
                embedder=dict(
                    type='BaseEmbedder',
                    i_embed=
                    0,  # set 0 for default positional encoding, -1 for none
                    multires=
                    10,  # log2 of max freq for positional encoding (3D location)
                    multires_dirs=
                    4,  # this is 'multires_views' in origin codes, log2 of max freq for positional encoding (2D direction)
                )),
        ),
        bs_data=
        'rays_o',  # the data's shape indicates the real batch-size, this's also the num of rays
    ),
    render=dict(  # render model
        type='NerfRender', ),
)

img_path_to_smpl_idx = lambda x: int(os.path.basename(x)[:-4])
img_path_to_frame_idx = lambda x: int(os.path.basename(x)[:-4])

frame_interval = 5
val_frame_interval = 30
basedata_cfg = dict(
    dataset_type=dataset_type,
    datadir='data/h36m/S9/Posing',
    smpl_vertices_dir='new_vertices',
    smpl_params_dir='new_params',
    ratio=1.,  # reduce the image resolution by ratio
    unit=1000.,
    training_view=[0, 1, 2],
    test_view=[3],
    num_train_pose=num_train_pose,
    training_frame=[0, num_train_pose * frame_interval
                    ],  # [begin_frame, end_frame]
    novel_pose_frame=[
        num_train_pose * frame_interval,
        (num_train_pose + num_novel_pose) * frame_interval
    ],
    frame_interval=frame_interval,
    val_frame_interval=val_frame_interval,
    white_bkgd=white_bkgd,
    mode='train',
    phase=phase,
    img_path_to_smpl_idx=img_path_to_smpl_idx,
    img_path_to_frame_idx=img_path_to_frame_idx,
)

traindata_cfg = basedata_cfg.copy()
valdata_cfg = basedata_cfg.copy()
traindata_cfg.update(dict())
valdata_cfg.update(dict(mode='val'))

train_pipeline = [
    dict(
        type='LoadImageAndCamera',
        enable=True,
    ),  # 读取图片和相机参数
    dict(
        type='LoadSmplParam',
        enable=True,
    ),  # 读取SMPL参数
    dict(
        type='CalculateSkelTransf',
        enable=True,
    ),  # 计算骨架变换矩阵
    dict(
        type='AninerfIdxConversion',
        enable=True,
    ),  # 变换latent index
    dict(
        type='NBGetRays',
        enable=True,
    ),  # 与batching型dataset不同的是, 需要从pose生成rays
    dict(type='NBSelectRays', enable=True, sel_n=N_rand_per_sampler),  # 抽取N个射线
    dict(
        type='ToTensor',
        enable=True,
        keys=['rays_o', 'rays_d', 'target_s', 'near', 'far'],
    ),
    dict(type='GetZvals', enable=True, lindisp=lindisp,
         N_samples=N_samples),  # N_samples: number of coarse samples per ray
    dict(type='PerturbZvals', enable=is_perturb),
    dict(type='GetPts', enable=True),
    dict(type='DeleteUseless',
         enable=True,
         keys=[
             'iter_n', 'cams', 'cam_inds', 'ims', 'cfg', 'data_root', 'idx',
             'img_path', 'num_cams', 'parents', 'joints'
         ]),
]

test_pipeline = [
    dict(
        type='LoadImageAndCamera',
        enable=True,
    ),  # 读取图片和相机参数
    dict(
        type='LoadSmplParam',
        enable=True,
    ),  # 读取SMPL参数
    dict(
        type='CalculateSkelTransf',
        enable=True,
    ),  # 计算骨架变换矩阵
    dict(
        type='AninerfIdxConversion',
        enable=True,
    ),  # 变换latent index
    dict(
        type='NBGetRays',
        enable=True,
    ),
    dict(type='NBSelectRays', enable=True, sel_all=True),  # 抽取N个射线
    dict(
        type='ToTensor',
        enable=True,
        keys=['rays_o', 'rays_d', 'target_s', 'near', 'far', 'mask_at_box'],
    ),
    dict(type='GetZvals', enable=True, lindisp=lindisp,
         N_samples=N_samples),  # N_samples: number of coarse samples per ray
    dict(type='PerturbZvals', enable=False),
    dict(type='GetPts', enable=True),
    dict(type='DeleteUseless',
         enable=True,
         keys=[
             'iter_n', 'cams', 'cam_inds', 'ims', 'cfg', 'data_root', 'idx',
             'img_path', 'num_cams', 'parents', 'joints'
         ]),
]

data = dict(train_loader=dict(batch_size=1, num_workers=0),
            train=dict(
                type='AniNeRFDataset',
                cfg=traindata_cfg,
                pipeline=train_pipeline,
            ),
            val_loader=dict(batch_size=1, num_workers=0),
            val=dict(
                type='AniNeRFDataset',
                cfg=valdata_cfg,
                pipeline=test_pipeline,
            ),
            test_loader=dict(batch_size=1, num_workers=0),
            test=dict(
                type='AniNeRFDataset',
                cfg=valdata_cfg,
                pipeline=test_pipeline,
            ))


================================================
FILE: configs/animatable_nerf/an_h36m_s9_render_train_pose.py
================================================
_base_ = ['an_h36m_s9_train_pose.py']
from configs.animatable_nerf.an_h36m_s9_train_pose import *

test_hooks = [
    dict(type='SetValPipelineHook',
         params=dict(),
         variables=dict(valset='testset')),
    dict(type='NBSaveSpiralHook', params=dict()),
]

ratio = 1.
basedata_cfg = dict(
    dataset_type=dataset_type,
    datadir='data/h36m/S9/Posing',
    smpl_vertices_dir='new_vertices',
    smpl_params_dir='new_params',
    ratio=ratio,  # reduce the image resolution by ratio
    unit=1000.,
    training_view=[0, 1, 2],
    test_view=[3],
    num_train_pose=num_train_pose,
    training_frame=[0, num_train_pose * frame_interval
                    ],  # [begin_frame, end_frame]
    frame_interval=frame_interval,
    val_frame_interval=val_frame_interval,
    white_bkgd=white_bkgd,
    mode='train',
    phase=phase,
    img_path_to_smpl_idx=img_path_to_smpl_idx,
    img_path_to_frame_idx=img_path_to_frame_idx,
)

frame_idx_to_smpl_idx = lambda x: x
frame_idx_to_latent_idx = lambda x: x
valdata_cfg = basedata_cfg.copy()
valdata_cfg.update(
    dict(mode='render',
         num_render_views=50,
         frame_idx=0,
         frame_idx_to_smpl_idx=frame_idx_to_smpl_idx,
         frame_idx_to_latent_idx=frame_idx_to_latent_idx,
         render_H=int(1000 * ratio),
         render_W=int(1000 * ratio),
         ratio=ratio))

test_pipeline = [
    dict(
        type='LoadCamAndSmplParam',
        enable=True,
    ),  # 读取相机和Smpl参数
    dict(
        type='CalculateSkelTransf',
        enable=True,
    ),  # 计算骨架变换矩阵
    dict(
        type='AninerfIdxConversion',
        enable=True,
    ),  # 变换latent index
    dict(
        type='NBGetRays',
        enable=True,
    ),
    dict(type='NBSelectRays', enable=True, sel_all=True,
         sel_rgb=False),  # 抽取N个射线
    dict(
        type='ToTensor',
        enable=True,
        keys=['rays_o', 'rays_d', 'near', 'far', 'mask_at_box'],
    ),
    dict(type='GetZvals', enable=True, lindisp=lindisp,
         N_samples=N_samples),  # N_samples: number of coarse samples per ray
    dict(type='PerturbZvals', enable=False),
    dict(type='GetPts', enable=True),
    dict(type='DeleteUseless',
         enable=True,
         keys=[
             'iter_n', 'cams', 'cam_inds', 'ims', 'cfg', 'data_root', 'idx',
             'img_path', 'num_cams', 'parents', 'joints', 'spiral_poses', 'K'
         ]),
]

data.update(
    dict(test=dict(
        type='AniNeRFDataset',
        cfg=valdata_cfg,
        pipeline=test_pipeline,
    ), ))


================================================
FILE: configs/animatable_nerf/an_h36m_s9_train_pose.py
================================================
_base_ = [
    # '../_base_/models/nerf.py',
    # '../_base_/schedules/adam_20w_iter.py',
    # '../_base_/default_runtime.py'
]

import os
from datetime import datetime

method = 'animatable_nerf'
phase = 'train_pose'

# optimizer
optimizer = dict(type='Adam', lr=5e-4)
optimizer_config = dict(grad_clip=None)

lr_rate = 5e-4
max_iters = 2000000
evalute_config = dict()
lr_config = dict(policy='step', step=500 * 1000, gamma=0.1, by_epoch=False)
checkpoint_config = dict(interval=10000, by_epoch=False)
log_level = 'INFO'
log_config = dict(interval=10000,
                  by_epoch=False,
                  hooks=[dict(type='TextLoggerHook')])
workflow = [('train', 10000), ('val', 1)]

# hooks
# 'params' are numeric type value, 'variables' are variables in local environment
train_hooks = [
    dict(type='SetValPipelineHook',
         params=dict(),
         variables=dict(valset='valset')),
    dict(type='ValidateHook',
         params=dict(save_folder='visualizations/validation')),
    dict(type='PassIterHook', params=dict()),  # 将当前iter数告诉dataset
    dict(type='OccupationHook',
         params=dict()),  # no need for open-source vision
]

test_hooks = [
    dict(type='SetValPipelineHook',
         params=dict(),
         variables=dict(valset='testset')),
    dict(type='TestHook', params=dict()),
]

# runner
train_runner = dict(type='NerfTrainRunner')
test_runner = dict(type='NerfTestRunner')

# runtime settings
num_gpus = 1
distributed = (num_gpus > 1)  # 是否多卡,mmcv对dp多卡支持不好,故而要么单卡要么ddp多卡
work_dir = './work_dirs/animatable_nerf/h36m_s9_{}/'.format(phase)  # noqa
timestamp = datetime.now().strftime('%d-%b-%H-%M')

# shared params by model and data and ...
dataset_type = 'blender'
no_batching = True  # only take random rays from 1 image at a time
no_ndc = True  # 源代码中'if args.dataset_type != 'llff' or args.no_ndc:' 就设置no_ndc

white_bkgd = False  # set to render synthetic data on a white bkgd (always use for dvoxels)
is_perturb = True  # set to 0. for no jitter, 1. for jitter
use_viewdirs = True  # use full 5D input instead of 3D
N_rand_per_sampler = 1024 * 1  # how many N_rand in get_item() function
lindisp = False  # sampling linearly in disparity rather than depth
N_samples = 64  # number of coarse samples per ray

# resume_from = os.path.join(work_dir, 'latest.pth')
load_from = os.path.join(work_dir, 'latest.pth')

num_train_pose = 260
num_novel_pose = 133
model = dict(
    type='AniNeRFNetwork',
    cfg=dict(
        chunk=1024 * 4,  # mainly work for val
        phase=phase,
        tpose_human=dict(
            type='TPoseHuman',
            density_mlp=dict(
                type='AN_DensityMLP',
                embedder=dict(
                    type='BaseEmbedder',
                    i_embed=
                    0,  # set 0 for default positional encoding, -1 for none
                    multires=
                    6,  # log2 of max freq for positional encoding (3D location)
                    multires_dirs=
                    4,  # this is 'multires_views' in origin codes, log2 of max freq for positional encoding (2D direction)
                )),
            color_mlp=dict(
                type='AN_ColorMLP',
                num_train_pose=num_train_pose,
                embedder=dict(
                    type='BaseEmbedder',
                    i_embed=
                    0,  # set 0 for default positional encoding, -1 for none
                    multires=
                    6,  # log2 of max freq for positional encoding (3D location)
                    multires_dirs=
                    4,  # this is 'multires_views' in origin codes, log2 of max freq for positional encoding (2D direction)
                )),
        ),
        deform_field=dict(
            type='DeformField',
            smpl_threshold=0.05,
            phase=phase,
            bw_mlp=dict(
                type='AN_BlendWeightMLP',
                num_pose=num_train_pose,
                embedder=dict(
                    type='BaseEmbedder',
                    i_embed=
                    0,  # set 0 for default positional encoding, -1 for none
                    multires=
                    10,  # log2 of max freq for positional encoding (3D location)
                    multires_dirs=
                    4,  # this is 'multires_views' in origin codes, log2 of max freq for positional encoding (2D direction)
                )),
            novel_pose_bw_mlp=dict(
                type='AN_BlendWeightMLP',
                num_pose=num_novel_pose,
                embedder=dict(
                    type='BaseEmbedder',
                    i_embed=
                    0,  # set 0 for default positional encoding, -1 for none
                    multires=
                    10,  # log2 of max freq for positional encoding (3D location)
                    multires_dirs=
                    4,  # this is 'multires_views' in origin codes, log2 of max freq for positional encoding (2D direction)
                )),
        ),
        bs_data=
        'rays_o',  # the data's shape indicates the real batch-size, this's also the num of rays
    ),
    render=dict(  # render model
        type='NerfRender', ),
)

img_path_to_smpl_idx = lambda x: int(os.path.basename(x)[:-4])
img_path_to_frame_idx = lambda x: int(os.path.basename(x)[:-4])

frame_interval = 5
val_frame_interval = 30
basedata_cfg = dict(
    dataset_type=dataset_type,
    datadir='data/h36m/S9/Posing',
    smpl_vertices_dir='new_vertices',
    smpl_params_dir='new_params',
    ratio=1.,  # reduce the image resolution by ratio
    unit=1000.,
    training_view=[0, 1, 2],
    test_view=[3],
    num_train_pose=num_train_pose,
    training_frame=[0, num_train_pose * frame_interval
                    ],  # [begin_frame, end_frame]
    frame_interval=frame_interval,
    val_frame_interval=val_frame_interval,
    white_bkgd=white_bkgd,
    mode='train',
    phase=phase,
    img_path_to_smpl_idx=img_path_to_smpl_idx,
    img_path_to_frame_idx=img_path_to_frame_idx,
)

traindata_cfg = basedata_cfg.copy()
valdata_cfg = basedata_cfg.copy()
traindata_cfg.update(dict())
valdata_cfg.update(dict(mode='val'))

train_pipeline = [
    dict(
        type='LoadImageAndCamera',
        enable=True,
    ),  # 读取图片和相机参数
    dict(
        type='LoadSmplParam',
        enable=True,
    ),  # 读取SMPL参数
    dict(
        type='CalculateSkelTransf',
        enable=True,
    ),  # 计算骨架变换矩阵
    dict(
        type='AninerfIdxConversion',
        enable=True,
    ),  # 变换latent index
    dict(
        type='NBGetRays',
        enable=True,
    ),  # 与batching型dataset不同的是, 需要从pose生成rays
    dict(type='NBSelectRays', enable=True, sel_n=N_rand_per_sampler),  # 抽取N个射线
    dict(
        type='ToTensor',
        enable=True,
        keys=['rays_o', 'rays_d', 'target_s', 'near', 'far'],
    ),
    dict(type='GetZvals', enable=True, lindisp=lindisp,
         N_samples=N_samples),  # N_samples: number of coarse samples per ray
    dict(type='PerturbZvals', enable=is_perturb),
    dict(type='GetPts', enable=True),
    dict(type='DeleteUseless',
         enable=True,
         keys=[
             'iter_n', 'cams', 'cam_inds', 'ims', 'cfg', 'data_root', 'idx',
             'img_path', 'num_cams', 'parents', 'joints'
         ]),
]

test_pipeline = [
    dict(
        type='LoadImageAndCamera',
        enable=True,
    ),  # 读取图片和相机参数
    dict(
        type='LoadSmplParam',
        enable=True,
    ),  # 读取SMPL参数
    dict(
        type='CalculateSkelTransf',
        enable=True,
    ),  # 计算骨架变换矩阵
    dict(
        type='AninerfIdxConversion',
        enable=True,
    ),  # 变换latent index
    dict(
        type='NBGetRays',
        enable=True,
    ),
    dict(type='NBSelectRays', enable=True, sel_all=True),  # 抽取N个射线
    dict(
        type='ToTensor',
        enable=True,
        keys=['rays_o', 'rays_d', 'target_s', 'near', 'far', 'mask_at_box'],
    ),
    dict(type='GetZvals', enable=True, lindisp=lindisp,
         N_samples=N_samples),  # N_samples: number of coarse samples per ray
    dict(type='PerturbZvals', enable=False),
    dict(type='GetPts', enable=True),
    dict(type='DeleteUseless',
         enable=True,
         keys=[
             'iter_n', 'cams', 'cam_inds', 'ims', 'cfg', 'data_root', 'idx',
             'img_path', 'num_cams', 'parents', 'joints'
         ]),
]

data = dict(train_loader=dict(batch_size=1, num_workers=0),
            train=dict(
                type='AniNeRFDataset',
                cfg=traindata_cfg,
                pipeline=train_pipeline,
            ),
            val_loader=dict(batch_size=1, num_workers=0),
            val=dict(
                type='AniNeRFDataset',
                cfg=valdata_cfg,
                pipeline=test_pipeline,
            ),
            test_loader=dict(batch_size=1, num_workers=0),
            test=dict(
                type='AniNeRFDataset',
                cfg=valdata_cfg,
                pipeline=test_pipeline,
            ))


================================================
FILE: configs/animatable_nerf/an_zjumocap_313_novel_pose.py
================================================
_base_ = [
    # '../_base_/models/nerf.py',
    # '../_base_/schedules/adam_20w_iter.py',
    # '../_base_/default_runtime.py'
]

import os
from datetime import datetime

method = 'animatable_nerf'
phase = 'novel_pose'

# optimizer
optimizer = dict(type='Adam', lr=5e-4)
optimizer_config = dict(grad_clip=None)

lr_rate = 5e-4
max_iters = 2000000
evalute_config = dict()
lr_config = dict(policy='step', step=500 * 1000, gamma=0.1, by_epoch=False)
checkpoint_config = dict(interval=10000, by_epoch=False)
log_level = 'INFO'
log_config = dict(interval=10000,
                  by_epoch=False,
                  hooks=[dict(type='TextLoggerHook')])
workflow = [('train', 10000), ('val', 1)]

# hooks
# 'params' are numeric type value, 'variables' are variables in local environment
train_hooks = [
    dict(type='SetValPipelineHook',
         params=dict(),
         variables=dict(valset='valset')),
    dict(type='ValidateHook',
         params=dict(save_folder='visualizations/validation')),
    dict(type='PassIterHook', params=dict()),  # 将当前iter数告诉dataset
    dict(type='OccupationHook',
         params=dict()),  # no need for open-source vision
]

test_hooks = [
    dict(type='SetValPipelineHook',
         params=dict(),
         variables=dict(valset='testset')),
    dict(type='TestHook', params=dict()),
]

# runner
train_runner = dict(type='NerfTrainRunner')
test_runner = dict(type='NerfTestRunner')

# runtime settings
num_gpus = 1
distributed = (num_gpus > 1)  # 是否多卡,mmcv对dp多卡支持不好,故而要么单卡要么ddp多卡
work_dir_pattern = './work_dirs/animatable_nerf/zjumocap_313_{}/'  # noqa
work_dir = work_dir_pattern.format(phase)
timestamp = datetime.now().strftime('%d-%b-%H-%M')

# shared params by model and data and ...
dataset_type = 'blender'
no_batching = True  # only take random rays from 1 image at a time
no_ndc = True  # 源代码中'if args.dataset_type != 'llff' or args.no_ndc:' 就设置no_ndc

white_bkgd = False  # set to render synthetic data on a white bkgd (always use for dvoxels)
is_perturb = True  # set to 0. for no jitter, 1. for jitter
use_viewdirs = True  # use full 5D input instead of 3D
N_rand_per_sampler = 1024 * 1  # how many N_rand in get_item() function
lindisp = False  # sampling linearly in disparity rather than depth
N_samples = 64  # number of coarse samples per ray

# resume_from = os.path.join(work_dir, 'latest.pth')
os.system('mkdir -p {}'.format(work_dir))
load_from = os.path.join(work_dir, 'latest.pth')
if not os.path.exists(load_from):
    ckpt_path = os.path.join(work_dir_pattern.format('train_pose'),
                             'latest.pth')
    os.system('cp {} {}'.format(ckpt_path, work_dir))

num_train_pose = 60
num_novel_pose = 1000
model = dict(
    type='AniNeRFNetwork',
    cfg=dict(
        chunk=1024 * 4,  # mainly work for val
        phase=phase,
        tpose_human=dict(
            type='TPoseHuman',
            density_mlp=dict(
                type='AN_DensityMLP',
                embedder=dict(
                    type='BaseEmbedder',
                    i_embed=
                    0,  # set 0 for default positional encoding, -1 for none
                    multires=
                    6,  # log2 of max freq for positional encoding (3D location)
                    multires_dirs=
                    4,  # this is 'multires_views' in origin codes, log2 of max freq for positional encoding (2D direction)
                )),
            color_mlp=dict(
                type='AN_ColorMLP',
                num_train_pose=num_train_pose,
                embedder=dict(
                    type='BaseEmbedder',
                    i_embed=
                    0,  # set 0 for default positional encoding, -1 for none
                    multires=
                    6,  # log2 of max freq for positional encoding (3D location)
                    multires_dirs=
                    4,  # this is 'multires_views' in origin codes, log2 of max freq for positional encoding (2D direction)
                )),
        ),
        deform_field=dict(
            type='DeformField',
            smpl_threshold=0.05,
            phase=phase,
            bw_mlp=dict(
                type='AN_BlendWeightMLP',
                num_pose=num_train_pose,
                embedder=dict(
                    type='BaseEmbedder',
                    i_embed=
                    0,  # set 0 for default positional encoding, -1 for none
                    multires=
                    10,  # log2 of max freq for positional encoding (3D location)
                    multires_dirs=
                    4,  # this is 'multires_views' in origin codes, log2 of max freq for positional encoding (2D direction)
                )),
            novel_pose_bw_mlp=dict(
                type='AN_BlendWeightMLP',
                num_pose=num_novel_pose,
                embedder=dict(
                    type='BaseEmbedder',
                    i_embed=
                    0,  # set 0 for default positional encoding, -1 for none
                    multires=
                    10,  # log2 of max freq for positional encoding (3D location)
                    multires_dirs=
                    4,  # this is 'multires_views' in origin codes, log2 of max freq for positional encoding (2D direction)
                )),
        ),
        bs_data=
        'rays_o',  # the data's shape indicates the real batch-size, this's also the num of rays
    ),
    render=dict(  # render model
        type='NerfRender', ),
)

img_path_to_smpl_idx = lambda x: int(os.path.basename(x).split('_')[4])
img_path_to_frame_idx = lambda x: int(os.path.basename(x).split('_')[4]) - 1

frame_interval = 1
val_frame_interval = 30
basedata_cfg = dict(
    dataset_type=dataset_type,
    datadir='data/zju_mocap/CoreView_313',
    smpl_vertices_dir='new_vertices',
    smpl_params_dir='new_params',
    ratio=0.5,  # reduce the image resolution by ratio
    unit=1000.,
    training_view=[0, 6, 12, 18],
    test_view=[1, 2, 3, 4, 5, 7, 8, 9, 10, 11, 13, 14, 15, 16, 17, 19, 20],
    num_train_pose=num_train_pose,
    training_frame=[0, num_train_pose * frame_interval
                    ],  # [begin_frame, end_frame]
    novel_pose_frame=[
        num_train_pose * frame_interval,
        (num_train_pose + num_novel_pose) * frame_interval
    ],
    frame_interval=frame_interval,
    val_frame_interval=val_frame_interval,
    white_bkgd=white_bkgd,
    mode='train',
    phase=phase,
    img_path_to_smpl_idx=img_path_to_smpl_idx,
    img_path_to_frame_idx=img_path_to_frame_idx,
)

traindata_cfg = basedata_cfg.copy()
valdata_cfg = basedata_cfg.copy()
traindata_cfg.update(dict())
valdata_cfg.update(dict(mode='val'))

train_pipeline = [
    dict(
        type='LoadImageAndCamera',
        enable=True,
    ),  # 读取图片和相机参数
    dict(
        type='LoadSmplParam',
        enable=True,
    ),  # 读取SMPL参数
    dict(
        type='CalculateSkelTransf',
        enable=True,
    ),  # 计算骨架变换矩阵
    dict(
        type='AninerfIdxConversion',
        enable=True,
    ),  # 变换latent index
    dict(
        type='NBGetRays',
        enable=True,
    ),  # 与batching型dataset不同的是, 需要从pose生成rays
    dict(type='NBSelectRays', enable=True, sel_n=N_rand_per_sampler),  # 抽取N个射线
    dict(
        type='ToTensor',
        enable=True,
        keys=['rays_o', 'rays_d', 'target_s', 'near', 'far'],
    ),
    dict(type='GetZvals', enable=True, lindisp=lindisp,
         N_samples=N_samples),  # N_samples: number of coarse samples per ray
    dict(type='PerturbZvals', enable=is_perturb),
    dict(type='GetPts', enable=True),
    dict(type='DeleteUseless',
         enable=True,
         keys=[
             'iter_n', 'cams', 'cam_inds', 'ims', 'cfg', 'data_root', 'idx',
             'img_path', 'num_cams', 'parents', 'joints'
         ]),
]

test_pipeline = [
    dict(
        type='LoadImageAndCamera',
        enable=True,
    ),  # 读取图片和相机参数
    dict(
        type='LoadSmplParam',
        enable=True,
    ),  # 读取SMPL参数
    dict(
        type='CalculateSkelTransf',
        enable=True,
    ),  # 计算骨架变换矩阵
    dict(
        type='AninerfIdxConversion',
        enable=True,
    ),  # 变换latent index
    dict(
        type='NBGetRays',
        enable=True,
    ),
    dict(type='NBSelectRays', enable=True, sel_all=True),  # 抽取N个射线
    dict(
        type='ToTensor',
        enable=True,
        keys=['rays_o', 'rays_d', 'target_s', 'near', 'far', 'mask_at_box'],
    ),
    dict(type='GetZvals', enable=True, lindisp=lindisp,
         N_samples=N_samples),  # N_samples: number of coarse samples per ray
    dict(type='PerturbZvals', enable=False),
    dict(type='GetPts', enable=True),
    dict(type='DeleteUseless',
         enable=True,
         keys=[
             'iter_n', 'cams', 'cam_inds', 'ims', 'cfg', 'data_root', 'idx',
             'img_path', 'num_cams', 'parents', 'joints'
         ]),
]

data = dict(
    train_loader=dict(batch_size=1, num_workers=0),
    train=dict(
        type='AniNeRFDataset',
        cfg=traindata_cfg,
        pipeline=train_pipeline,
    ),
    val_loader=dict(batch_size=1, num_workers=0),
    val=dict(
        type='AniNeRFDataset',
        cfg=valdata_cfg,
        pipeline=test_pipeline,
    ),
    test_loader=dict(batch_size=1, num_workers=0),
    test=dict(
        type='AniNeRFDataset',
        cfg=valdata_cfg,
        pipeline=test_pipeline,
    ),
)


================================================
FILE: configs/animatable_nerf/an_zjumocap_313_train_pose.py
================================================
_base_ = [
    # '../_base_/models/nerf.py',
    # '../_base_/schedules/adam_20w_iter.py',
    # '../_base_/default_runtime.py'
]

import os
from datetime import datetime

method = 'animatable_nerf'
phase = 'train_pose'

# optimizer
optimizer = dict(type='Adam', lr=5e-4)
optimizer_config = dict(grad_clip=None)

lr_rate = 5e-4
max_iters = 2000000
evalute_config = dict()
lr_config = dict(policy='step', step=500 * 1000, gamma=0.1, by_epoch=False)
checkpoint_config = dict(interval=10000, by_epoch=False)
log_level = 'INFO'
log_config = dict(interval=10000,
                  by_epoch=False,
                  hooks=[dict(type='TextLoggerHook')])
workflow = [('train', 10000), ('val', 1)]

# hooks
# 'params' are numeric type value, 'variables' are variables in local environment
train_hooks = [
    dict(type='SetValPipelineHook',
         params=dict(),
         variables=dict(valset='valset')),
    dict(type='ValidateHook',
         params=dict(save_folder='visualizations/validation')),
    dict(type='PassIterHook', params=dict()),  # 将当前iter数告诉dataset
    dict(type='OccupationHook',
         params=dict()),  # no need for open-source vision
]

test_hooks = [
    dict(type='SetValPipelineHook',
         params=dict(),
         variables=dict(valset='testset')),
    dict(type='TestHook', params=dict()),
]

# runner
train_runner = dict(type='NerfTrainRunner')
test_runner = dict(type='NerfTestRunner')

# runtime settings
num_gpus = 1
distributed = (num_gpus > 1)  # 是否多卡,mmcv对dp多卡支持不好,故而要么单卡要么ddp多卡
work_dir = './work_dirs/animatable_nerf/zjumocap_313_{}/'.format(phase)  # noqa
timestamp = datetime.now().strftime('%d-%b-%H-%M')

# shared params by model and data and ...
dataset_type = 'blender'
no_batching = True  # only take random rays from 1 image at a time
no_ndc = True  # 源代码中'if args.dataset_type != 'llff' or args.no_ndc:' 就设置no_ndc

white_bkgd = False  # set to render synthetic data on a white bkgd (always use for dvoxels)
is_perturb = True  # set to 0. for no jitter, 1. for jitter
use_viewdirs = True  # use full 5D input instead of 3D
N_rand_per_sampler = 1024 * 1  # how many N_rand in get_item() function
lindisp = False  # sampling linearly in disparity rather than depth
N_samples = 64  # number of coarse samples per ray

# resume_from = os.path.join(work_dir, 'latest.pth')
load_from = os.path.join(work_dir, 'latest.pth')

num_train_pose = 60
num_novel_pose = 1000
model = dict(
    type='AniNeRFNetwork',
    cfg=dict(
        chunk=1024 * 4,  # mainly work for val
        phase=phase,
        tpose_human=dict(
            type='TPoseHuman',
            density_mlp=dict(
                type='AN_DensityMLP',
                embedder=dict(
                    type='BaseEmbedder',
                    i_embed=
                    0,  # set 0 for default positional encoding, -1 for none
                    multires=
                    6,  # log2 of max freq for positional encoding (3D location)
                    multires_dirs=
                    4,  # this is 'multires_views' in origin codes, log2 of max freq for positional encoding (2D direction)
                )),
            color_mlp=dict(
                type='AN_ColorMLP',
                num_train_pose=num_train_pose,
                embedder=dict(
                    type='BaseEmbedder',
                    i_embed=
                    0,  # set 0 for default positional encoding, -1 for none
                    multires=
                    6,  # log2 of max freq for positional encoding (3D location)
                    multires_dirs=
                    4,  # this is 'multires_views' in origin codes, log2 of max freq for positional encoding (2D direction)
                )),
        ),
        deform_field=dict(
            type='DeformField',
            smpl_threshold=0.05,
            phase=phase,
            bw_mlp=dict(
                type='AN_BlendWeightMLP',
                num_pose=num_train_pose,
                embedder=dict(
                    type='BaseEmbedder',
                    i_embed=
                    0,  # set 0 for default positional encoding, -1 for none
                    multires=
                    10,  # log2 of max freq for positional encoding (3D location)
                    multires_dirs=
                    4,  # this is 'multires_views' in origin codes, log2 of max freq for positional encoding (2D direction)
                )),
            novel_pose_bw_mlp=dict(
                type='AN_BlendWeightMLP',
                num_pose=num_novel_pose,
                embedder=dict(
                    type='BaseEmbedder',
                    i_embed=
                    0,  # set 0 for default positional encoding, -1 for none
                    multires=
                    10,  # log2 of max freq for positional encoding (3D location)
                    multires_dirs=
                    4,  # this is 'multires_views' in origin codes, log2 of max freq for positional encoding (2D direction)
                )),
        ),
        bs_data=
        'rays_o',  # the data's shape indicates the real batch-size, this's also the num of rays
    ),
    render=dict(  # render model
        type='NerfRender', ),
)

img_path_to_smpl_idx = lambda x: int(os.path.basename(x).split('_')[4])
img_path_to_frame_idx = lambda x: int(os.path.basename(x).split('_')[4]) - 1

frame_interval = 1
val_frame_interval = 30
basedata_cfg = dict(
    dataset_type=dataset_type,
    datadir='data/zju_mocap/CoreView_313',
    smpl_vertices_dir='new_vertices',
    smpl_params_dir='new_params',
    ratio=0.5,  # reduce the image resolution by ratio
    unit=1000.,
    training_view=[0, 6, 12, 18],
    test_view=[1, 2, 3, 4, 5, 7, 8, 9, 10, 11, 13, 14, 15, 16, 17, 19, 20],
    num_train_pose=num_train_pose,
    training_frame=[0, num_train_pose * frame_interval
                    ],  # [begin_frame, end_frame]
    frame_interval=frame_interval,
    val_frame_interval=val_frame_interval,
    white_bkgd=white_bkgd,
    mode='train',
    phase=phase,
    img_path_to_smpl_idx=img_path_to_smpl_idx,
    img_path_to_frame_idx=img_path_to_frame_idx,
)

traindata_cfg = basedata_cfg.copy()
valdata_cfg = basedata_cfg.copy()
traindata_cfg.update(dict())
valdata_cfg.update(dict(mode='val'))

train_pipeline = [
    dict(
        type='LoadImageAndCamera',
        enable=True,
    ),  # 读取图片和相机参数
    dict(
        type='LoadSmplParam',
        enable=True,
    ),  # 读取SMPL参数
    dict(
        type='CalculateSkelTransf',
        enable=True,
    ),  # 计算骨架变换矩阵
    dict(
        type='AninerfIdxConversion',
        enable=True,
    ),  # 变换latent index
    dict(
        type='NBGetRays',
        enable=True,
    ),  # 与batching型dataset不同的是, 需要从pose生成rays
    dict(type='NBSelectRays', enable=True, sel_n=N_rand_per_sampler),  # 抽取N个射线
    dict(
        type='ToTensor',
        enable=True,
        keys=['rays_o', 'rays_d', 'target_s', 'near', 'far'],
    ),
    dict(type='GetZvals', enable=True, lindisp=lindisp,
         N_samples=N_samples),  # N_samples: number of coarse samples per ray
    dict(type='PerturbZvals', enable=is_perturb),
    dict(type='GetPts', enable=True),
    dict(type='DeleteUseless',
         enable=True,
         keys=[
             'iter_n', 'cams', 'cam_inds', 'ims', 'cfg', 'data_root', 'idx',
             'img_path', 'num_cams', 'parents', 'joints'
         ]),
]

test_pipeline = [
    dict(
        type='LoadImageAndCamera',
        enable=True,
    ),  # 读取图片和相机参数
    dict(
        type='LoadSmplParam',
        enable=True,
    ),  # 读取SMPL参数
    dict(
        type='CalculateSkelTransf',
        enable=True,
    ),  # 计算骨架变换矩阵
    dict(
        type='AninerfIdxConversion',
        enable=True,
    ),  # 变换latent index
    dict(
        type='NBGetRays',
        enable=True,
    ),
    dict(type='NBSelectRays', enable=True, sel_all=True),  # 抽取N个射线
    dict(
        type='ToTensor',
        enable=True,
        keys=['rays_o', 'rays_d', 'target_s', 'near', 'far', 'mask_at_box'],
    ),
    dict(type='GetZvals', enable=True, lindisp=lindisp,
         N_samples=N_samples),  # N_samples: number of coarse samples per ray
    dict(type='PerturbZvals', enable=False),
    dict(type='GetPts', enable=True),
    dict(type='DeleteUseless',
         enable=True,
         keys=[
             'iter_n', 'cams', 'cam_inds', 'ims', 'cfg', 'data_root', 'idx',
             'img_path', 'num_cams', 'parents', 'joints'
         ]),
]

data = dict(train_loader=dict(batch_size=1, num_workers=0),
            train=dict(
                type='AniNeRFDataset',
                cfg=traindata_cfg,
                pipeline=train_pipeline,
            ),
            val_loader=dict(batch_size=1, num_workers=0),
            val=dict(
                type='AniNeRFDataset',
                cfg=valdata_cfg,
                pipeline=test_pipeline,
            ),
            test_loader=dict(batch_size=1, num_workers=0),
            test=dict(
                type='AniNeRFDataset',
                cfg=valdata_cfg,
                pipeline=test_pipeline,
            ))


================================================
FILE: configs/bungeenerf/bungeenerf_multiscale_google.py
================================================
_base_ = [
    # '../_base_/models/nerf.py',
    # '../_base_/schedules/adam_20w_iter.py',
    # '../_base_/default_runtime.py'
]

import os
from datetime import datetime

method = 'bungeenerf'  # [nerf, kilo_nerf, mip_nerf, bungeenerf]

# optimizer
optimizer = dict(type='Adam', lr=5e-4, betas=(0.9, 0.999))
optimizer_config = dict(grad_clip=None)

max_iters = 200000
lr_config = dict(policy='step', step=500 * 1000, gamma=0.1, by_epoch=False)
checkpoint_config = dict(interval=500, by_epoch=False)
log_level = 'INFO'
log_config = dict(interval=5,
                  by_epoch=False,
                  hooks=[dict(type='TextLoggerHook')])
workflow = [('train', 500), ('val', 1)]

# hooks
# 'params' are numeric type value, 'variables' are variables in local environment
train_hooks = [
    dict(type='SetValPipelineHook',
         params=dict(),
         variables=dict(valset='valset')),
    dict(type='ValidateHook',
         params=dict(save_folder='visualizations/validation')),
    dict(type='SaveSpiralHook',
         params=dict(save_folder='visualizations/spiral')),
    dict(type='PassIterHook', params=dict()),  # 将当前iter数告诉dataset
    dict(type='OccupationHook',
         params=dict()),  # no need for open-source vision
]

test_hooks = [
    dict(type='SetValPipelineHook',
         params=dict(),
         variables=dict(valset='testset')),
    dict(type='TestHook', params=dict()),
]

# runner
train_runner = dict(type='BungeeNerfTrainRunner')
test_runner = dict(type='BungeeNerfTestRunner')

# runtime settings
num_gpus = 1
distributed = (num_gpus > 1)  # 是否多卡,mmcv对dp多卡支持不好,故而要么单卡要么ddp多卡
stage = 0  # current stage for training
work_dir = './work_dirs/bungeenerf/#DATANAME#/stage_%d/' % stage
timestamp = datetime.now().strftime('%d-%b-%H-%M')

# shared params by model and data and ...
dataset_type = 'mutiscale_google'
no_batching = True  # only take random rays from 1 image at a time

white_bkgd = False  # set to render synthetic data on a white bkgd (always use for dvoxels)
is_perturb = False  # set to 0. for no jitter, 1. for jitter
use_viewdirs = True  # use full 5D input instead of 3D
N_rand_per_sampler = 1024 * 2  # how many N_rand in get_item() function
lindisp = False  # sampling linearly in disparity rather than depth
N_samples = 65  # number of coarse samples per ray

# resume_from = os.path.join(work_dir, 'latest.pth')
load_from = os.path.join(work_dir, 'latest.pth')

model = dict(
    type='BungeeNerfNetwork',
    cfg=dict(
        phase='train',  # 'train' or 'test'
        ray_shape='cone',  # The shape of cast rays ('cone' or 'cylinder').
        resample_padding=0.01,  # Dirichlet/alpha "padding" on the histogram.
        N_importance=65,  # number of additional fine samples per ray
        is_perturb=is_perturb,
        chunk=1024 * 32,  # mainly work for val
        bs_data=
        'rays_o',  # the data's shape indicates the real batch-size, this's also the num of rays
    ),
    mlp=dict(  # coarse model
        type='BungeeNerfMLP',
        cur_stage=stage,  # resblock nums
        netwidth=256,  # channels per layer
        netchunk=1024 * 64,  # number of pts sent through network in parallel;
        embedder=dict(
            type='BungeeEmbedder',
            i_embed=0,  # set 0 for default positional encoding, -1 for none
            multires=
            10,  # log2 of max freq for positional encoding (3D location)
            multires_dirs=
            4,  # this is 'multires_views' in origin codes, log2 of max freq for positional encoding (2D direction)
        ),
    ),
    render=dict(  # render model
        type='BungeeNerfRender',
        white_bkgd=
        white_bkgd,  # set to render synthetic data on a white bkgd (always use for dvoxels)
        raw_noise_std=
        0,  # std dev of noise added to regularize sigma_a output, 1e0 recommended
    ),
)

basedata_cfg = dict(
    dataset_type=dataset_type,
    datadir='data/multiscale_google/#DATANAME#',
    white_bkgd=white_bkgd,
    factor=3,
    N_rand_per_sampler=N_rand_per_sampler,
    mode='train',
    cur_stage=stage,
    holdout=16,
    is_batching=True,  # True for blender, False for llff
)

traindata_cfg = basedata_cfg.copy()
valdata_cfg = basedata_cfg.copy()
testdata_cfg = basedata_cfg.copy()

traindata_cfg.update(dict())
valdata_cfg.update(dict(mode='val'))
testdata_cfg.update(dict(mode='test', testskip=0))

train_pipeline = [
    dict(
        type='BungeeBatchSample',
        enable=True,
        N_rand=N_rand_per_sampler,
    ),
    dict(type='DeleteUseless', keys=['rays_rgb', 'idx']),
    dict(
        type='ToTensor',
        enable=True,
        keys=['rays_o', 'rays_d', 'target_s', 'scale_code'],
    ),
    dict(
        type='GetViewdirs',
        enable=use_viewdirs,
    ),
    dict(type='BungeeGetBounds', enable=True),
    dict(type='BungeeGetZvals',
         enable=True,
         lindisp=lindisp,
         N_samples=N_samples),  # N_samples: number of coarse samples per ray
    dict(type='PerturbZvals', enable=is_perturb),
    dict(type='DeleteUseless', enable=True,
         keys=['pose', 'iter_n']),  # 删除pose 其实求完ray就不再需要了
]

test_pipeline = [
    dict(
        type='ToTensor',
        enable=True,
        keys=['pose'],
    ),
    dict(
        type='GetRays',
        include_radius=True,
        enable=True,
    ),
    dict(type='FlattenRays', include_radius=True,
         enable=True),  # 原来是(H, W, ..) 变成(H*W, ...) 记录下原来的尺寸
    dict(
        type='GetViewdirs',
        enable=use_viewdirs,
    ),
    dict(type='BungeeGetBounds', enable=True),
    dict(type='BungeeGetZvals',
         enable=True,
         lindisp=lindisp,
         N_samples=N_samples),  # 同上train_pipeline
    dict(type='PerturbZvals', enable=False),  # 测试集不扰动
    dict(type='DeleteUseless', enable=True,
         keys=['pose']),  # 删除pose 其实求完ray就不再需要了
]

data = dict(
    train_loader=dict(batch_size=1, num_workers=4),
    train=dict(
        type='BungeeDataset',
        cfg=traindata_cfg,
        pipeline=train_pipeline,
    ),
    val_loader=dict(batch_size=1, num_workers=0),
    val=dict(
        type='BungeeDataset',
        cfg=valdata_cfg,
        pipeline=test_pipeline,
    ),
    test_loader=dict(batch_size=1, num_workers=0),
    test=dict(
        type='BungeeDataset',
        cfg=testdata_cfg,
        pipeline=test_pipeline,  # same pipeline as validation
    ),
)


================================================
FILE: configs/gnr/gnr_genebody.py
================================================
_base_ = [
    # '../_base_/models/nerf.py',
    # '../_base_/schedules/adam_20w_iter.py',
    # '../_base_/default_runtime.py'
]

import os
from datetime import datetime

method = 'gnr'

# optimizer
optimizer = dict(type='Adam', lr=5e-4, betas=(0.9, 0.999))
optimizer_config = dict(grad_clip=None)

lr_rate = 5e-4
max_iters = 2000000
evalute_config = dict()
lr_config = dict(policy='step', step=500 * 1000, gamma=0.1, by_epoch=False)
checkpoint_config = dict(interval=10000, by_epoch=False)
log_level = 'INFO'
log_config = dict(interval=1,
                  by_epoch=False,
                  hooks=[dict(type='TextLoggerHook')])
workflow = [('train', 10000), ('val', 1)]

# hooks
# 'params' are numeric type value, 'variables' are variables in local environment
train_hooks = [
    dict(type='SetValPipelineHook',
         params=dict(),
         variables=dict(valset='valset')),
    dict(type='ValidateHook',
         params=dict(save_folder='visualizations/validation')),
    dict(type='PassIterHook', params=dict()),  # 将当前iter数告诉dataset
    dict(type='OccupationHook',
         params=dict()),  # no need for open-source vision
]

test_hooks = [
    dict(type='SetValPipelineHook',
         params=dict(),
         variables=dict(valset='testset')),
    dict(type='TestHook', params=dict()),
]

# runner
train_runner = dict(type='NerfTrainRunner')
test_runner = dict(type='NerfTestRunner')

# runtime settings
num_gpus = 1
distributed = (num_gpus > 1)  # 是否多卡,mmcv对dp多卡支持不好,故而要么单卡要么ddp多卡
work_dir = './work_dirs/gnr/'  # noqa
timestamp = datetime.now().strftime('%d-%b-%H-%M')

# shared params by model and data and ...
dataset_type = 'blender'
no_batching = True  # only take random rays from 1 image at a time
no_ndc = True  # 源代码中'if args.dataset_type != 'llff' or args.no_ndc:' 就设置no_ndc

white_bkgd = False  # set to render synthetic data on a white bkgd (always use for dvoxels)
is_perturb = True  # set to 0. for no jitter, 1. for jitter
use_viewdirs = False  # use full 5D input instead of 3D
N_rand_per_sampler = 1024 * 1  # how many N_rand in get_item() function
lindisp = False  # sampling linearly in disparity rather than depth
N_samples = 256  # number of coarse samples per ray
use_feat_sr = False
# resume_from = os.path.join(work_dir, 'latest.pth')
# load_from = os.path.join(work_dir, 'latest.pth')

model = dict(
    type='GnrNetwork',
    cfg=dict(
        raw_noise_std=
        0,  # std dev of noise added to regularize sigma_a output, 1e0 recommended
        white_bkgd=
        white_bkgd,  # set to render synthetic data on a white bkgd (always use for dvoxels)
        use_viewdirs=use_viewdirs,
        projection_mode='perspective',
        is_perturb=is_perturb,
        use_feat_sr=False,
        use_smpl_sdf=True,
        use_t_pose=True,
        use_smpl_depth=True,
        use_attention=True,
        ddp=False,
        chunk=524288,  # mainly work for val
        num_views=4,
        image_filter=dict(type='HGFilter',
                          opt=dict(norm='group',
                                   num_stack=4,
                                   num_hourglass=2,
                                   skip_hourglass=True,
                                   hg_down='ave_pool',
                                   hourglass_dim=256)),
        sr_filter=dict(type='SRFilters', order=2, out_ch=256),
        nerf=dict(type='GNRMLP',
                  opt=dict(
                      input_ch_feat=64 if use_feat_sr else 256,
                      smpl_type='smplx',
                      use_smpl_sdf=True,
                      use_t_pose=True,
                      use_nml=True,
                      use_attention=True,
                      weighted_pool=True,
                      use_sh=True,
                      use_viewdirs=True,
                      use_occlusion=True,
                      use_smpl_depth=True,
                      use_occlusion_net=True,
                      angle_diff=False,
                      use_bn=False,
                      skips=[2, 4, 6],
                      num_views=4,
                  )),
        bs_data=
        'rays_o',  # the data's shape indicates the real batch-size, this's also the num of rays
        nerf_renderer=dict(  # render model
            type='GnrRenderer',
            opt=dict(model=None,
                     N_samples=256,
                     ddp=False,
                     train_encoder=False,
                     projection_mode='perspective',
                     loadSize=512,
                     num_views=4,
                     N_rand=1024,
                     N_grid=512,
                     use_nml=True,
                     use_attention=True,
                     debug=False,
                     use_vgg=False,
                     use_smpl_sdf=True,
                     use_t_pose=True,
                     use_smpl_depth=True,
                     regularization=False,
                     angle_diff=False,
                     use_occlusion=True,
                     use_occlusion_net=True,
                     use_vh_free=False,
                     use_white_bkgd=False,
                     chunk=524288,
                     N_rand_infer=4096,
                     use_vh=True,
                     laplacian=5,
                     vh_overhead=1),
        ),
        train_encoder=False))

basedata_cfg = dict(dataset_type=dataset_type,
                    dataroot='path/to/GeneBodyDataset',
                    eval_skip=1,
                    train_skip=1,
                    loadSize=512,
                    num_views=4,
                    use_smpl_sdf=True,
                    use_t_pose=True,
                    smpl_type='smplx',
                    t_pose_path='path/to/smpl_t_pose',
                    use_smpl_depth=True,
                    use_white_bkgd=False,
                    random_multiview=False)

traindata_cfg = basedata_cfg.copy()
valdata_cfg = basedata_cfg.copy()
traindata_cfg.update(dict())
valdata_cfg.update(dict(mode='val'))

data = dict(
    train_loader=dict(batch_size=1, num_workers=6),
    train=dict(type='GeneBodyDataset',
               opt=traindata_cfg,
               phase='train',
               pipeline=[]),
    val_loader=dict(batch_size=1, num_workers=6),
    val=dict(type='GeneBodyDataset', opt=valdata_cfg, phase='val',
             pipeline=[]),
    test_loader=dict(batch_size=1, num_workers=6),
    test=dict(type='GeneBodyDataset',
              opt=valdata_cfg,
              phase='test',
              pipeline=[]),
)


================================================
FILE: configs/instant_ngp/nerf_blender_local01.py
================================================
_base_ = [
    # '../_base_/models/nerf.py',
    # '../_base_/schedules/adam_20w_iter.py',
    # '../_base_/default_runtime.py'
]

import os
from datetime import datetime

# [nerf, kilo_nerf, mip_nerf]
method = 'nerf'

# optimizer
optimizer = dict(type='Adam',
                 lr=1e-2,
                 betas=(0.9, 0.99),
                 eps=1e-15,
                 weight_decay=1e-6)
optimizer_config = dict(grad_clip=None)

max_iters = 50000
lr_config = dict(policy='step', step=10000, gamma=0.2, by_epoch=False)
checkpoint_config = dict(interval=10000, by_epoch=False)
custom_hooks = [dict(type='EMAHook', momentum=0.05)]
log_level = 'INFO'
log_config = dict(interval=500,
                  by_epoch=False,
                  hooks=[dict(type='TextLoggerHook')])
workflow = [('train', 500), ('val', 1)]

# 'params' are numeric type value, 'variables' are variables in local environment
train_hooks = [
    dict(type='SetValPipelineHook',
         params=dict(),
         varia
Download .txt
gitextract_oeikmd9e/

├── .github/
│   └── workflows/
│       ├── build.yml
│       └── lint.yml
├── .gitignore
├── .pre-commit-config.yaml
├── LICENSE
├── README.md
├── README_CN.md
├── configs/
│   ├── __init__.py
│   ├── _base_/
│   │   └── models/
│   │       └── nerf.py
│   ├── animatable_nerf/
│   │   ├── an_h36m_s11_novel_pose.py
│   │   ├── an_h36m_s11_train_pose.py
│   │   ├── an_h36m_s1_novel_pose.py
│   │   ├── an_h36m_s1_train_pose.py
│   │   ├── an_h36m_s5_novel_pose.py
│   │   ├── an_h36m_s5_train_pose.py
│   │   ├── an_h36m_s6_novel_pose.py
│   │   ├── an_h36m_s6_train_pose.py
│   │   ├── an_h36m_s7_novel_pose.py
│   │   ├── an_h36m_s7_train_pose.py
│   │   ├── an_h36m_s8_novel_pose.py
│   │   ├── an_h36m_s8_train_pose.py
│   │   ├── an_h36m_s9_novel_pose.py
│   │   ├── an_h36m_s9_render_train_pose.py
│   │   ├── an_h36m_s9_train_pose.py
│   │   ├── an_zjumocap_313_novel_pose.py
│   │   └── an_zjumocap_313_train_pose.py
│   ├── bungeenerf/
│   │   └── bungeenerf_multiscale_google.py
│   ├── gnr/
│   │   └── gnr_genebody.py
│   ├── instant_ngp/
│   │   └── nerf_blender_local01.py
│   ├── kilonerf/
│   │   ├── kilonerf_distill_BlendedMVS_base01.py
│   │   ├── kilonerf_distill_Synthetic_NeRF_base01.py
│   │   ├── kilonerf_finetune_BlendedMVS_base01.py
│   │   ├── kilonerf_finetune_Synthetic_NeRF_base01.py
│   │   ├── kilonerf_pretrain_BlendedMVS_base01.py
│   │   └── kilonerf_pretrain_Synthetic_NeRF_base01.py
│   ├── mipnerf/
│   │   ├── mipnerf_blender.py
│   │   └── mipnerf_multiscale.py
│   ├── nerf/
│   │   ├── nerf_blender_base01.py
│   │   └── nerf_llff_base01.py
│   └── neuralbody/
│       ├── nb_zjumocap_313.py
│       ├── nb_zjumocap_315.py
│       ├── nb_zjumocap_377.py
│       ├── nb_zjumocap_386.py
│       ├── nb_zjumocap_387.py
│       ├── nb_zjumocap_390.py
│       ├── nb_zjumocap_392.py
│       ├── nb_zjumocap_393.py
│       ├── nb_zjumocap_394.py
│       └── nb_zjumocap_render_313.py
├── docker/
│   ├── Dockerfile
│   ├── DockerfileCN
│   ├── daemon.json
│   └── sources.list
├── docs/
│   ├── en/
│   │   ├── CONTRIBUTING.md
│   │   ├── additional_licenses.md
│   │   ├── apis.md
│   │   ├── benchmark.md
│   │   ├── dataset_preparation.md
│   │   ├── faq.md
│   │   ├── get_started.md
│   │   ├── installation.md
│   │   └── tutorials/
│   │       ├── config.md
│   │       ├── data_pipeline.md
│   │       └── model.md
│   └── zh_cn/
│       ├── apis.md
│       ├── dataset_preparation.md
│       ├── get_started.md
│       ├── installation.md
│       └── tutorials/
│           ├── config.md
│           ├── data_pipeline.md
│           └── model.md
├── extensions/
│   ├── mesh_grid/
│   │   ├── README.md
│   │   ├── __init__.py
│   │   ├── matrix.h
│   │   ├── mesh_grid.cpp
│   │   ├── mesh_grid_kernel.cu
│   │   ├── mesh_grid_searcher.py
│   │   ├── render.cpp
│   │   ├── render.cu
│   │   ├── render.h
│   │   ├── setup.py
│   │   ├── surface_inside.cpp
│   │   └── test_mesh_grid.py
│   └── ngp_raymarch/
│       ├── README.md
│       ├── include/
│       │   ├── op_include/
│       │   │   ├── eigen/
│       │   │   │   ├── .gitignore
│       │   │   │   ├── .gitlab/
│       │   │   │   │   ├── issue_templates/
│       │   │   │   │   │   ├── Bug Report.md
│       │   │   │   │   │   └── Feature Request.md
│       │   │   │   │   └── merge_request_templates/
│       │   │   │   │       └── Merge Request Template.md
│       │   │   │   ├── .gitlab-ci.yml
│       │   │   │   ├── .hgeol
│       │   │   │   ├── COPYING.APACHE
│       │   │   │   ├── COPYING.BSD
│       │   │   │   ├── COPYING.GPL
│       │   │   │   ├── COPYING.LGPL
│       │   │   │   ├── COPYING.MINPACK
│       │   │   │   ├── COPYING.MPL2
│       │   │   │   ├── COPYING.README
│       │   │   │   ├── CTestConfig.cmake
│       │   │   │   ├── CTestCustom.cmake.in
│       │   │   │   ├── Eigen/
│       │   │   │   │   ├── Cholesky
│       │   │   │   │   ├── CholmodSupport
│       │   │   │   │   ├── Core
│       │   │   │   │   ├── Dense
│       │   │   │   │   ├── Eigen
│       │   │   │   │   ├── Eigenvalues
│       │   │   │   │   ├── Geometry
│       │   │   │   │   ├── Householder
│       │   │   │   │   ├── IterativeLinearSolvers
│       │   │   │   │   ├── Jacobi
│       │   │   │   │   ├── KLUSupport
│       │   │   │   │   ├── LU
│       │   │   │   │   ├── MetisSupport
│       │   │   │   │   ├── OrderingMethods
│       │   │   │   │   ├── PaStiXSupport
│       │   │   │   │   ├── PardisoSupport
│       │   │   │   │   ├── QR
│       │   │   │   │   ├── QtAlignedMalloc
│       │   │   │   │   ├── SPQRSupport
│       │   │   │   │   ├── SVD
│       │   │   │   │   ├── Sparse
│       │   │   │   │   ├── SparseCholesky
│       │   │   │   │   ├── SparseCore
│       │   │   │   │   ├── SparseLU
│       │   │   │   │   ├── SparseQR
│       │   │   │   │   ├── StdDeque
│       │   │   │   │   ├── StdList
│       │   │   │   │   ├── StdVector
│       │   │   │   │   ├── SuperLUSupport
│       │   │   │   │   ├── UmfPackSupport
│       │   │   │   │   └── src/
│       │   │   │   │       ├── Cholesky/
│       │   │   │   │       │   ├── InternalHeaderCheck.h
│       │   │   │   │       │   ├── LDLT.h
│       │   │   │   │       │   ├── LLT.h
│       │   │   │   │       │   └── LLT_LAPACKE.h
│       │   │   │   │       ├── CholmodSupport/
│       │   │   │   │       │   ├── CholmodSupport.h
│       │   │   │   │       │   └── InternalHeaderCheck.h
│       │   │   │   │       ├── Core/
│       │   │   │   │       │   ├── ArithmeticSequence.h
│       │   │   │   │       │   ├── Array.h
│       │   │   │   │       │   ├── ArrayBase.h
│       │   │   │   │       │   ├── ArrayWrapper.h
│       │   │   │   │       │   ├── Assign.h
│       │   │   │   │       │   ├── AssignEvaluator.h
│       │   │   │   │       │   ├── Assign_MKL.h
│       │   │   │   │       │   ├── BandMatrix.h
│       │   │   │   │       │   ├── Block.h
│       │   │   │   │       │   ├── BooleanRedux.h
│       │   │   │   │       │   ├── CommaInitializer.h
│       │   │   │   │       │   ├── ConditionEstimator.h
│       │   │   │   │       │   ├── CoreEvaluators.h
│       │   │   │   │       │   ├── CoreIterators.h
│       │   │   │   │       │   ├── CwiseBinaryOp.h
│       │   │   │   │       │   ├── CwiseNullaryOp.h
│       │   │   │   │       │   ├── CwiseTernaryOp.h
│       │   │   │   │       │   ├── CwiseUnaryOp.h
│       │   │   │   │       │   ├── CwiseUnaryView.h
│       │   │   │   │       │   ├── DenseBase.h
│       │   │   │   │       │   ├── DenseCoeffsBase.h
│       │   │   │   │       │   ├── DenseStorage.h
│       │   │   │   │       │   ├── Diagonal.h
│       │   │   │   │       │   ├── DiagonalMatrix.h
│       │   │   │   │       │   ├── DiagonalProduct.h
│       │   │   │   │       │   ├── Dot.h
│       │   │   │   │       │   ├── EigenBase.h
│       │   │   │   │       │   ├── ForceAlignedAccess.h
│       │   │   │   │       │   ├── Fuzzy.h
│       │   │   │   │       │   ├── GeneralProduct.h
│       │   │   │   │       │   ├── GenericPacketMath.h
│       │   │   │   │       │   ├── GlobalFunctions.h
│       │   │   │   │       │   ├── IO.h
│       │   │   │   │       │   ├── IndexedView.h
│       │   │   │   │       │   ├── InternalHeaderCheck.h
│       │   │   │   │       │   ├── Inverse.h
│       │   │   │   │       │   ├── Map.h
│       │   │   │   │       │   ├── MapBase.h
│       │   │   │   │       │   ├── MathFunctions.h
│       │   │   │   │       │   ├── MathFunctionsImpl.h
│       │   │   │   │       │   ├── Matrix.h
│       │   │   │   │       │   ├── MatrixBase.h
│       │   │   │   │       │   ├── NestByValue.h
│       │   │   │   │       │   ├── NoAlias.h
│       │   │   │   │       │   ├── NumTraits.h
│       │   │   │   │       │   ├── PartialReduxEvaluator.h
│       │   │   │   │       │   ├── PermutationMatrix.h
│       │   │   │   │       │   ├── PlainObjectBase.h
│       │   │   │   │       │   ├── Product.h
│       │   │   │   │       │   ├── ProductEvaluators.h
│       │   │   │   │       │   ├── Random.h
│       │   │   │   │       │   ├── Redux.h
│       │   │   │   │       │   ├── Ref.h
│       │   │   │   │       │   ├── Replicate.h
│       │   │   │   │       │   ├── Reshaped.h
│       │   │   │   │       │   ├── ReturnByValue.h
│       │   │   │   │       │   ├── Reverse.h
│       │   │   │   │       │   ├── Select.h
│       │   │   │   │       │   ├── SelfAdjointView.h
│       │   │   │   │       │   ├── SelfCwiseBinaryOp.h
│       │   │   │   │       │   ├── Solve.h
│       │   │   │   │       │   ├── SolveTriangular.h
│       │   │   │   │       │   ├── SolverBase.h
│       │   │   │   │       │   ├── StableNorm.h
│       │   │   │   │       │   ├── StlIterators.h
│       │   │   │   │       │   ├── Stride.h
│       │   │   │   │       │   ├── Swap.h
│       │   │   │   │       │   ├── Transpose.h
│       │   │   │   │       │   ├── Transpositions.h
│       │   │   │   │       │   ├── TriangularMatrix.h
│       │   │   │   │       │   ├── VectorBlock.h
│       │   │   │   │       │   ├── VectorwiseOp.h
│       │   │   │   │       │   ├── Visitor.h
│       │   │   │   │       │   ├── arch/
│       │   │   │   │       │   │   ├── AVX/
│       │   │   │   │       │   │   │   ├── Complex.h
│       │   │   │   │       │   │   │   ├── MathFunctions.h
│       │   │   │   │       │   │   │   ├── PacketMath.h
│       │   │   │   │       │   │   │   └── TypeCasting.h
│       │   │   │   │       │   │   ├── AVX512/
│       │   │   │   │       │   │   │   ├── Complex.h
│       │   │   │   │       │   │   │   ├── MathFunctions.h
│       │   │   │   │       │   │   │   ├── PacketMath.h
│       │   │   │   │       │   │   │   └── TypeCasting.h
│       │   │   │   │       │   │   ├── AltiVec/
│       │   │   │   │       │   │   │   ├── Complex.h
│       │   │   │   │       │   │   │   ├── MathFunctions.h
│       │   │   │   │       │   │   │   ├── MatrixProduct.h
│       │   │   │   │       │   │   │   ├── MatrixProductCommon.h
│       │   │   │   │       │   │   │   ├── MatrixProductMMA.h
│       │   │   │   │       │   │   │   └── PacketMath.h
│       │   │   │   │       │   │   ├── Default/
│       │   │   │   │       │   │   │   ├── BFloat16.h
│       │   │   │   │       │   │   │   ├── ConjHelper.h
│       │   │   │   │       │   │   │   ├── GenericPacketMathFunctions.h
│       │   │   │   │       │   │   │   ├── GenericPacketMathFunctionsFwd.h
│       │   │   │   │       │   │   │   ├── Half.h
│       │   │   │   │       │   │   │   ├── Settings.h
│       │   │   │   │       │   │   │   └── TypeCasting.h
│       │   │   │   │       │   │   ├── GPU/
│       │   │   │   │       │   │   │   ├── Complex.h
│       │   │   │   │       │   │   │   ├── MathFunctions.h
│       │   │   │   │       │   │   │   ├── PacketMath.h
│       │   │   │   │       │   │   │   ├── Tuple.h
│       │   │   │   │       │   │   │   └── TypeCasting.h
│       │   │   │   │       │   │   ├── HIP/
│       │   │   │   │       │   │   │   └── hcc/
│       │   │   │   │       │   │   │       └── math_constants.h
│       │   │   │   │       │   │   ├── MSA/
│       │   │   │   │       │   │   │   ├── Complex.h
│       │   │   │   │       │   │   │   ├── MathFunctions.h
│       │   │   │   │       │   │   │   └── PacketMath.h
│       │   │   │   │       │   │   ├── NEON/
│       │   │   │   │       │   │   │   ├── Complex.h
│       │   │   │   │       │   │   │   ├── GeneralBlockPanelKernel.h
│       │   │   │   │       │   │   │   ├── MathFunctions.h
│       │   │   │   │       │   │   │   ├── PacketMath.h
│       │   │   │   │       │   │   │   ├── TypeCasting.h
│       │   │   │   │       │   │   │   └── UnaryFunctors.h
│       │   │   │   │       │   │   ├── SSE/
│       │   │   │   │       │   │   │   ├── Complex.h
│       │   │   │   │       │   │   │   ├── MathFunctions.h
│       │   │   │   │       │   │   │   ├── PacketMath.h
│       │   │   │   │       │   │   │   └── TypeCasting.h
│       │   │   │   │       │   │   ├── SVE/
│       │   │   │   │       │   │   │   ├── MathFunctions.h
│       │   │   │   │       │   │   │   ├── PacketMath.h
│       │   │   │   │       │   │   │   └── TypeCasting.h
│       │   │   │   │       │   │   ├── SYCL/
│       │   │   │   │       │   │   │   ├── InteropHeaders.h
│       │   │   │   │       │   │   │   ├── MathFunctions.h
│       │   │   │   │       │   │   │   ├── PacketMath.h
│       │   │   │   │       │   │   │   ├── SyclMemoryModel.h
│       │   │   │   │       │   │   │   └── TypeCasting.h
│       │   │   │   │       │   │   └── ZVector/
│       │   │   │   │       │   │       ├── Complex.h
│       │   │   │   │       │   │       ├── MathFunctions.h
│       │   │   │   │       │   │       └── PacketMath.h
│       │   │   │   │       │   ├── functors/
│       │   │   │   │       │   │   ├── AssignmentFunctors.h
│       │   │   │   │       │   │   ├── BinaryFunctors.h
│       │   │   │   │       │   │   ├── NullaryFunctors.h
│       │   │   │   │       │   │   ├── StlFunctors.h
│       │   │   │   │       │   │   ├── TernaryFunctors.h
│       │   │   │   │       │   │   └── UnaryFunctors.h
│       │   │   │   │       │   ├── products/
│       │   │   │   │       │   │   ├── GeneralBlockPanelKernel.h
│       │   │   │   │       │   │   ├── GeneralMatrixMatrix.h
│       │   │   │   │       │   │   ├── GeneralMatrixMatrixTriangular.h
│       │   │   │   │       │   │   ├── GeneralMatrixMatrixTriangular_BLAS.h
│       │   │   │   │       │   │   ├── GeneralMatrixMatrix_BLAS.h
│       │   │   │   │       │   │   ├── GeneralMatrixVector.h
│       │   │   │   │       │   │   ├── GeneralMatrixVector_BLAS.h
│       │   │   │   │       │   │   ├── Parallelizer.h
│       │   │   │   │       │   │   ├── SelfadjointMatrixMatrix.h
│       │   │   │   │       │   │   ├── SelfadjointMatrixMatrix_BLAS.h
│       │   │   │   │       │   │   ├── SelfadjointMatrixVector.h
│       │   │   │   │       │   │   ├── SelfadjointMatrixVector_BLAS.h
│       │   │   │   │       │   │   ├── SelfadjointProduct.h
│       │   │   │   │       │   │   ├── SelfadjointRank2Update.h
│       │   │   │   │       │   │   ├── TriangularMatrixMatrix.h
│       │   │   │   │       │   │   ├── TriangularMatrixMatrix_BLAS.h
│       │   │   │   │       │   │   ├── TriangularMatrixVector.h
│       │   │   │   │       │   │   ├── TriangularMatrixVector_BLAS.h
│       │   │   │   │       │   │   ├── TriangularSolverMatrix.h
│       │   │   │   │       │   │   ├── TriangularSolverMatrix_BLAS.h
│       │   │   │   │       │   │   └── TriangularSolverVector.h
│       │   │   │   │       │   └── util/
│       │   │   │   │       │       ├── BlasUtil.h
│       │   │   │   │       │       ├── ConfigureVectorization.h
│       │   │   │   │       │       ├── Constants.h
│       │   │   │   │       │       ├── DisableStupidWarnings.h
│       │   │   │   │       │       ├── ForwardDeclarations.h
│       │   │   │   │       │       ├── IndexedViewHelper.h
│       │   │   │   │       │       ├── IntegralConstant.h
│       │   │   │   │       │       ├── MKL_support.h
│       │   │   │   │       │       ├── Macros.h
│       │   │   │   │       │       ├── Memory.h
│       │   │   │   │       │       ├── Meta.h
│       │   │   │   │       │       ├── NonMPL2.h
│       │   │   │   │       │       ├── ReenableStupidWarnings.h
│       │   │   │   │       │       ├── ReshapedHelper.h
│       │   │   │   │       │       ├── Serializer.h
│       │   │   │   │       │       ├── StaticAssert.h
│       │   │   │   │       │       ├── SymbolicIndex.h
│       │   │   │   │       │       └── XprHelper.h
│       │   │   │   │       ├── Eigenvalues/
│       │   │   │   │       │   ├── ComplexEigenSolver.h
│       │   │   │   │       │   ├── ComplexSchur.h
│       │   │   │   │       │   ├── ComplexSchur_LAPACKE.h
│       │   │   │   │       │   ├── EigenSolver.h
│       │   │   │   │       │   ├── GeneralizedEigenSolver.h
│       │   │   │   │       │   ├── GeneralizedSelfAdjointEigenSolver.h
│       │   │   │   │       │   ├── HessenbergDecomposition.h
│       │   │   │   │       │   ├── InternalHeaderCheck.h
│       │   │   │   │       │   ├── MatrixBaseEigenvalues.h
│       │   │   │   │       │   ├── RealQZ.h
│       │   │   │   │       │   ├── RealSchur.h
│       │   │   │   │       │   ├── RealSchur_LAPACKE.h
│       │   │   │   │       │   ├── SelfAdjointEigenSolver.h
│       │   │   │   │       │   ├── SelfAdjointEigenSolver_LAPACKE.h
│       │   │   │   │       │   └── Tridiagonalization.h
│       │   │   │   │       ├── Geometry/
│       │   │   │   │       │   ├── AlignedBox.h
│       │   │   │   │       │   ├── AngleAxis.h
│       │   │   │   │       │   ├── EulerAngles.h
│       │   │   │   │       │   ├── Homogeneous.h
│       │   │   │   │       │   ├── Hyperplane.h
│       │   │   │   │       │   ├── InternalHeaderCheck.h
│       │   │   │   │       │   ├── OrthoMethods.h
│       │   │   │   │       │   ├── ParametrizedLine.h
│       │   │   │   │       │   ├── Quaternion.h
│       │   │   │   │       │   ├── Rotation2D.h
│       │   │   │   │       │   ├── RotationBase.h
│       │   │   │   │       │   ├── Scaling.h
│       │   │   │   │       │   ├── Transform.h
│       │   │   │   │       │   ├── Translation.h
│       │   │   │   │       │   ├── Umeyama.h
│       │   │   │   │       │   └── arch/
│       │   │   │   │       │       └── Geometry_SIMD.h
│       │   │   │   │       ├── Householder/
│       │   │   │   │       │   ├── BlockHouseholder.h
│       │   │   │   │       │   ├── Householder.h
│       │   │   │   │       │   ├── HouseholderSequence.h
│       │   │   │   │       │   └── InternalHeaderCheck.h
│       │   │   │   │       ├── IterativeLinearSolvers/
│       │   │   │   │       │   ├── BasicPreconditioners.h
│       │   │   │   │       │   ├── BiCGSTAB.h
│       │   │   │   │       │   ├── ConjugateGradient.h
│       │   │   │   │       │   ├── IncompleteCholesky.h
│       │   │   │   │       │   ├── IncompleteLUT.h
│       │   │   │   │       │   ├── InternalHeaderCheck.h
│       │   │   │   │       │   ├── IterativeSolverBase.h
│       │   │   │   │       │   ├── LeastSquareConjugateGradient.h
│       │   │   │   │       │   └── SolveWithGuess.h
│       │   │   │   │       ├── Jacobi/
│       │   │   │   │       │   ├── InternalHeaderCheck.h
│       │   │   │   │       │   └── Jacobi.h
│       │   │   │   │       ├── KLUSupport/
│       │   │   │   │       │   ├── InternalHeaderCheck.h
│       │   │   │   │       │   └── KLUSupport.h
│       │   │   │   │       ├── LU/
│       │   │   │   │       │   ├── Determinant.h
│       │   │   │   │       │   ├── FullPivLU.h
│       │   │   │   │       │   ├── InternalHeaderCheck.h
│       │   │   │   │       │   ├── InverseImpl.h
│       │   │   │   │       │   ├── PartialPivLU.h
│       │   │   │   │       │   ├── PartialPivLU_LAPACKE.h
│       │   │   │   │       │   └── arch/
│       │   │   │   │       │       └── InverseSize4.h
│       │   │   │   │       ├── MetisSupport/
│       │   │   │   │       │   ├── InternalHeaderCheck.h
│       │   │   │   │       │   └── MetisSupport.h
│       │   │   │   │       ├── OrderingMethods/
│       │   │   │   │       │   ├── Amd.h
│       │   │   │   │       │   ├── Eigen_Colamd.h
│       │   │   │   │       │   ├── InternalHeaderCheck.h
│       │   │   │   │       │   └── Ordering.h
│       │   │   │   │       ├── PaStiXSupport/
│       │   │   │   │       │   ├── InternalHeaderCheck.h
│       │   │   │   │       │   └── PaStiXSupport.h
│       │   │   │   │       ├── PardisoSupport/
│       │   │   │   │       │   ├── InternalHeaderCheck.h
│       │   │   │   │       │   └── PardisoSupport.h
│       │   │   │   │       ├── QR/
│       │   │   │   │       │   ├── ColPivHouseholderQR.h
│       │   │   │   │       │   ├── ColPivHouseholderQR_LAPACKE.h
│       │   │   │   │       │   ├── CompleteOrthogonalDecomposition.h
│       │   │   │   │       │   ├── FullPivHouseholderQR.h
│       │   │   │   │       │   ├── HouseholderQR.h
│       │   │   │   │       │   ├── HouseholderQR_LAPACKE.h
│       │   │   │   │       │   └── InternalHeaderCheck.h
│       │   │   │   │       ├── SPQRSupport/
│       │   │   │   │       │   ├── InternalHeaderCheck.h
│       │   │   │   │       │   └── SuiteSparseQRSupport.h
│       │   │   │   │       ├── SVD/
│       │   │   │   │       │   ├── BDCSVD.h
│       │   │   │   │       │   ├── InternalHeaderCheck.h
│       │   │   │   │       │   ├── JacobiSVD.h
│       │   │   │   │       │   ├── JacobiSVD_LAPACKE.h
│       │   │   │   │       │   ├── SVDBase.h
│       │   │   │   │       │   └── UpperBidiagonalization.h
│       │   │   │   │       ├── SparseCholesky/
│       │   │   │   │       │   ├── InternalHeaderCheck.h
│       │   │   │   │       │   ├── SimplicialCholesky.h
│       │   │   │   │       │   └── SimplicialCholesky_impl.h
│       │   │   │   │       ├── SparseCore/
│       │   │   │   │       │   ├── AmbiVector.h
│       │   │   │   │       │   ├── CompressedStorage.h
│       │   │   │   │       │   ├── ConservativeSparseSparseProduct.h
│       │   │   │   │       │   ├── InternalHeaderCheck.h
│       │   │   │   │       │   ├── MappedSparseMatrix.h
│       │   │   │   │       │   ├── SparseAssign.h
│       │   │   │   │       │   ├── SparseBlock.h
│       │   │   │   │       │   ├── SparseColEtree.h
│       │   │   │   │       │   ├── SparseCompressedBase.h
│       │   │   │   │       │   ├── SparseCwiseBinaryOp.h
│       │   │   │   │       │   ├── SparseCwiseUnaryOp.h
│       │   │   │   │       │   ├── SparseDenseProduct.h
│       │   │   │   │       │   ├── SparseDiagonalProduct.h
│       │   │   │   │       │   ├── SparseDot.h
│       │   │   │   │       │   ├── SparseFuzzy.h
│       │   │   │   │       │   ├── SparseMap.h
│       │   │   │   │       │   ├── SparseMatrix.h
│       │   │   │   │       │   ├── SparseMatrixBase.h
│       │   │   │   │       │   ├── SparsePermutation.h
│       │   │   │   │       │   ├── SparseProduct.h
│       │   │   │   │       │   ├── SparseRedux.h
│       │   │   │   │       │   ├── SparseRef.h
│       │   │   │   │       │   ├── SparseSelfAdjointView.h
│       │   │   │   │       │   ├── SparseSolverBase.h
│       │   │   │   │       │   ├── SparseSparseProductWithPruning.h
│       │   │   │   │       │   ├── SparseTranspose.h
│       │   │   │   │       │   ├── SparseTriangularView.h
│       │   │   │   │       │   ├── SparseUtil.h
│       │   │   │   │       │   ├── SparseVector.h
│       │   │   │   │       │   ├── SparseView.h
│       │   │   │   │       │   └── TriangularSolver.h
│       │   │   │   │       ├── SparseLU/
│       │   │   │   │       │   ├── InternalHeaderCheck.h
│       │   │   │   │       │   ├── SparseLU.h
│       │   │   │   │       │   ├── SparseLUImpl.h
│       │   │   │   │       │   ├── SparseLU_Memory.h
│       │   │   │   │       │   ├── SparseLU_Structs.h
│       │   │   │   │       │   ├── SparseLU_SupernodalMatrix.h
│       │   │   │   │       │   ├── SparseLU_Utils.h
│       │   │   │   │       │   ├── SparseLU_column_bmod.h
│       │   │   │   │       │   ├── SparseLU_column_dfs.h
│       │   │   │   │       │   ├── SparseLU_copy_to_ucol.h
│       │   │   │   │       │   ├── SparseLU_gemm_kernel.h
│       │   │   │   │       │   ├── SparseLU_heap_relax_snode.h
│       │   │   │   │       │   ├── SparseLU_kernel_bmod.h
│       │   │   │   │       │   ├── SparseLU_panel_bmod.h
│       │   │   │   │       │   ├── SparseLU_panel_dfs.h
│       │   │   │   │       │   ├── SparseLU_pivotL.h
│       │   │   │   │       │   ├── SparseLU_pruneL.h
│       │   │   │   │       │   └── SparseLU_relax_snode.h
│       │   │   │   │       ├── SparseQR/
│       │   │   │   │       │   ├── InternalHeaderCheck.h
│       │   │   │   │       │   └── SparseQR.h
│       │   │   │   │       ├── StlSupport/
│       │   │   │   │       │   ├── StdDeque.h
│       │   │   │   │       │   ├── StdList.h
│       │   │   │   │       │   ├── StdVector.h
│       │   │   │   │       │   └── details.h
│       │   │   │   │       ├── SuperLUSupport/
│       │   │   │   │       │   ├── InternalHeaderCheck.h
│       │   │   │   │       │   └── SuperLUSupport.h
│       │   │   │   │       ├── UmfPackSupport/
│       │   │   │   │       │   ├── InternalHeaderCheck.h
│       │   │   │   │       │   └── UmfPackSupport.h
│       │   │   │   │       ├── misc/
│       │   │   │   │       │   ├── Image.h
│       │   │   │   │       │   ├── InternalHeaderCheck.h
│       │   │   │   │       │   ├── Kernel.h
│       │   │   │   │       │   ├── RealSvd2x2.h
│       │   │   │   │       │   ├── blas.h
│       │   │   │   │       │   ├── lapack.h
│       │   │   │   │       │   ├── lapacke.h
│       │   │   │   │       │   └── lapacke_mangling.h
│       │   │   │   │       └── plugins/
│       │   │   │   │           ├── ArrayCwiseBinaryOps.h
│       │   │   │   │           ├── ArrayCwiseUnaryOps.h
│       │   │   │   │           ├── BlockMethods.h
│       │   │   │   │           ├── CommonCwiseBinaryOps.h
│       │   │   │   │           ├── CommonCwiseUnaryOps.h
│       │   │   │   │           ├── IndexedViewMethods.h
│       │   │   │   │           ├── InternalHeaderCheck.h
│       │   │   │   │           ├── MatrixCwiseBinaryOps.h
│       │   │   │   │           ├── MatrixCwiseUnaryOps.h
│       │   │   │   │           └── ReshapedMethods.h
│       │   │   │   ├── INSTALL
│       │   │   │   ├── README.md
│       │   │   │   ├── bench/
│       │   │   │   │   ├── BenchSparseUtil.h
│       │   │   │   │   ├── BenchTimer.h
│       │   │   │   │   ├── BenchUtil.h
│       │   │   │   │   ├── analyze-blocking-sizes.cpp
│       │   │   │   │   ├── basicbench.cxxlist
│       │   │   │   │   ├── basicbenchmark.cpp
│       │   │   │   │   ├── basicbenchmark.h
│       │   │   │   │   ├── benchBlasGemm.cpp
│       │   │   │   │   ├── benchCholesky.cpp
│       │   │   │   │   ├── benchEigenSolver.cpp
│       │   │   │   │   ├── benchFFT.cpp
│       │   │   │   │   ├── benchGeometry.cpp
│       │   │   │   │   ├── benchVecAdd.cpp
│       │   │   │   │   ├── bench_gemm.cpp
│       │   │   │   │   ├── bench_move_semantics.cpp
│       │   │   │   │   ├── bench_multi_compilers.sh
│       │   │   │   │   ├── bench_norm.cpp
│       │   │   │   │   ├── bench_reverse.cpp
│       │   │   │   │   ├── bench_sum.cpp
│       │   │   │   │   ├── bench_unrolling
│       │   │   │   │   ├── benchmark-blocking-sizes.cpp
│       │   │   │   │   ├── benchmark.cpp
│       │   │   │   │   ├── benchmarkSlice.cpp
│       │   │   │   │   ├── benchmarkX.cpp
│       │   │   │   │   ├── benchmarkXcwise.cpp
│       │   │   │   │   ├── benchmark_suite
│       │   │   │   │   ├── btl/
│       │   │   │   │   │   ├── COPYING
│       │   │   │   │   │   ├── README
│       │   │   │   │   │   ├── actions/
│       │   │   │   │   │   │   ├── action_aat_product.hh
│       │   │   │   │   │   │   ├── action_ata_product.hh
│       │   │   │   │   │   │   ├── action_atv_product.hh
│       │   │   │   │   │   │   ├── action_axpby.hh
│       │   │   │   │   │   │   ├── action_axpy.hh
│       │   │   │   │   │   │   ├── action_cholesky.hh
│       │   │   │   │   │   │   ├── action_ger.hh
│       │   │   │   │   │   │   ├── action_hessenberg.hh
│       │   │   │   │   │   │   ├── action_lu_decomp.hh
│       │   │   │   │   │   │   ├── action_lu_solve.hh
│       │   │   │   │   │   │   ├── action_matrix_matrix_product.hh
│       │   │   │   │   │   │   ├── action_matrix_matrix_product_bis.hh
│       │   │   │   │   │   │   ├── action_matrix_vector_product.hh
│       │   │   │   │   │   │   ├── action_partial_lu.hh
│       │   │   │   │   │   │   ├── action_rot.hh
│       │   │   │   │   │   │   ├── action_symv.hh
│       │   │   │   │   │   │   ├── action_syr2.hh
│       │   │   │   │   │   │   ├── action_trisolve.hh
│       │   │   │   │   │   │   ├── action_trisolve_matrix.hh
│       │   │   │   │   │   │   ├── action_trmm.hh
│       │   │   │   │   │   │   └── basic_actions.hh
│       │   │   │   │   │   ├── cmake/
│       │   │   │   │   │   │   ├── FindACML.cmake
│       │   │   │   │   │   │   ├── FindATLAS.cmake
│       │   │   │   │   │   │   ├── FindBLAZE.cmake
│       │   │   │   │   │   │   ├── FindBlitz.cmake
│       │   │   │   │   │   │   ├── FindCBLAS.cmake
│       │   │   │   │   │   │   ├── FindGMM.cmake
│       │   │   │   │   │   │   ├── FindMKL.cmake
│       │   │   │   │   │   │   ├── FindMTL4.cmake
│       │   │   │   │   │   │   ├── FindOPENBLAS.cmake
│       │   │   │   │   │   │   ├── FindPackageHandleStandardArgs.cmake
│       │   │   │   │   │   │   ├── FindTvmet.cmake
│       │   │   │   │   │   │   └── MacroOptionalAddSubdirectory.cmake
│       │   │   │   │   │   ├── generic_bench/
│       │   │   │   │   │   │   ├── bench.hh
│       │   │   │   │   │   │   ├── bench_parameter.hh
│       │   │   │   │   │   │   ├── btl.hh
│       │   │   │   │   │   │   ├── init/
│       │   │   │   │   │   │   │   ├── init_function.hh
│       │   │   │   │   │   │   │   ├── init_matrix.hh
│       │   │   │   │   │   │   │   └── init_vector.hh
│       │   │   │   │   │   │   ├── static/
│       │   │   │   │   │   │   │   ├── bench_static.hh
│       │   │   │   │   │   │   │   ├── intel_bench_fixed_size.hh
│       │   │   │   │   │   │   │   └── static_size_generator.hh
│       │   │   │   │   │   │   ├── timers/
│       │   │   │   │   │   │   │   ├── STL_perf_analyzer.hh
│       │   │   │   │   │   │   │   ├── STL_timer.hh
│       │   │   │   │   │   │   │   ├── mixed_perf_analyzer.hh
│       │   │   │   │   │   │   │   ├── portable_perf_analyzer.hh
│       │   │   │   │   │   │   │   ├── portable_perf_analyzer_old.hh
│       │   │   │   │   │   │   │   ├── portable_timer.hh
│       │   │   │   │   │   │   │   ├── x86_perf_analyzer.hh
│       │   │   │   │   │   │   │   └── x86_timer.hh
│       │   │   │   │   │   │   └── utils/
│       │   │   │   │   │   │       ├── size_lin_log.hh
│       │   │   │   │   │   │       ├── size_log.hh
│       │   │   │   │   │   │       ├── utilities.h
│       │   │   │   │   │   │       └── xy_file.hh
│       │   │   │   │   │   └── libs/
│       │   │   │   │   │       ├── BLAS/
│       │   │   │   │   │       │   ├── blas.h
│       │   │   │   │   │       │   ├── blas_interface.hh
│       │   │   │   │   │       │   ├── blas_interface_impl.hh
│       │   │   │   │   │       │   ├── c_interface_base.h
│       │   │   │   │   │       │   └── main.cpp
│       │   │   │   │   │       ├── STL/
│       │   │   │   │   │       │   ├── STL_interface.hh
│       │   │   │   │   │       │   └── main.cpp
│       │   │   │   │   │       ├── blaze/
│       │   │   │   │   │       │   ├── blaze_interface.hh
│       │   │   │   │   │       │   └── main.cpp
│       │   │   │   │   │       ├── blitz/
│       │   │   │   │   │       │   ├── blitz_LU_solve_interface.hh
│       │   │   │   │   │       │   ├── blitz_interface.hh
│       │   │   │   │   │       │   ├── btl_blitz.cpp
│       │   │   │   │   │       │   ├── btl_tiny_blitz.cpp
│       │   │   │   │   │       │   └── tiny_blitz_interface.hh
│       │   │   │   │   │       ├── eigen2/
│       │   │   │   │   │       │   ├── btl_tiny_eigen2.cpp
│       │   │   │   │   │       │   ├── eigen2_interface.hh
│       │   │   │   │   │       │   ├── main_adv.cpp
│       │   │   │   │   │       │   ├── main_linear.cpp
│       │   │   │   │   │       │   ├── main_matmat.cpp
│       │   │   │   │   │       │   └── main_vecmat.cpp
│       │   │   │   │   │       ├── eigen3/
│       │   │   │   │   │       │   ├── btl_tiny_eigen3.cpp
│       │   │   │   │   │       │   ├── eigen3_interface.hh
│       │   │   │   │   │       │   ├── main_adv.cpp
│       │   │   │   │   │       │   ├── main_linear.cpp
│       │   │   │   │   │       │   ├── main_matmat.cpp
│       │   │   │   │   │       │   └── main_vecmat.cpp
│       │   │   │   │   │       ├── gmm/
│       │   │   │   │   │       │   ├── gmm_LU_solve_interface.hh
│       │   │   │   │   │       │   ├── gmm_interface.hh
│       │   │   │   │   │       │   └── main.cpp
│       │   │   │   │   │       ├── mtl4/
│       │   │   │   │   │       │   ├── .kdbgrc.main
│       │   │   │   │   │       │   ├── main.cpp
│       │   │   │   │   │       │   ├── mtl4_LU_solve_interface.hh
│       │   │   │   │   │       │   └── mtl4_interface.hh
│       │   │   │   │   │       ├── tensors/
│       │   │   │   │   │       │   ├── main_linear.cpp
│       │   │   │   │   │       │   ├── main_matmat.cpp
│       │   │   │   │   │       │   ├── main_vecmat.cpp
│       │   │   │   │   │       │   └── tensor_interface.hh
│       │   │   │   │   │       ├── tvmet/
│       │   │   │   │   │       │   ├── main.cpp
│       │   │   │   │   │       │   └── tvmet_interface.hh
│       │   │   │   │   │       └── ublas/
│       │   │   │   │   │           ├── main.cpp
│       │   │   │   │   │           └── ublas_interface.hh
│       │   │   │   │   ├── check_cache_queries.cpp
│       │   │   │   │   ├── dense_solvers.cpp
│       │   │   │   │   ├── eig33.cpp
│       │   │   │   │   ├── geometry.cpp
│       │   │   │   │   ├── perf_monitoring/
│       │   │   │   │   │   ├── gemm.cpp
│       │   │   │   │   │   ├── gemm_common.h
│       │   │   │   │   │   ├── gemv.cpp
│       │   │   │   │   │   ├── gemv_common.h
│       │   │   │   │   │   ├── gemvt.cpp
│       │   │   │   │   │   ├── lazy_gemm.cpp
│       │   │   │   │   │   ├── llt.cpp
│       │   │   │   │   │   ├── make_plot.sh
│       │   │   │   │   │   ├── resources/
│       │   │   │   │   │   │   ├── chart_footer.html
│       │   │   │   │   │   │   ├── chart_header.html
│       │   │   │   │   │   │   ├── footer.html
│       │   │   │   │   │   │   ├── header.html
│       │   │   │   │   │   │   ├── s1.js
│       │   │   │   │   │   │   └── s2.js
│       │   │   │   │   │   ├── run.sh
│       │   │   │   │   │   ├── runall.sh
│       │   │   │   │   │   ├── trmv_lo.cpp
│       │   │   │   │   │   ├── trmv_lot.cpp
│       │   │   │   │   │   ├── trmv_up.cpp
│       │   │   │   │   │   └── trmv_upt.cpp
│       │   │   │   │   ├── product_threshold.cpp
│       │   │   │   │   ├── quat_slerp.cpp
│       │   │   │   │   ├── quatmul.cpp
│       │   │   │   │   ├── sparse_cholesky.cpp
│       │   │   │   │   ├── sparse_dense_product.cpp
│       │   │   │   │   ├── sparse_lu.cpp
│       │   │   │   │   ├── sparse_product.cpp
│       │   │   │   │   ├── sparse_randomsetter.cpp
│       │   │   │   │   ├── sparse_setter.cpp
│       │   │   │   │   ├── sparse_transpose.cpp
│       │   │   │   │   ├── sparse_trisolver.cpp
│       │   │   │   │   ├── spbench/
│       │   │   │   │   │   ├── sp_solver.cpp
│       │   │   │   │   │   ├── spbench.dtd
│       │   │   │   │   │   ├── spbenchsolver.cpp
│       │   │   │   │   │   ├── spbenchsolver.h
│       │   │   │   │   │   ├── spbenchstyle.h
│       │   │   │   │   │   └── test_sparseLU.cpp
│       │   │   │   │   ├── spmv.cpp
│       │   │   │   │   ├── tensors/
│       │   │   │   │   │   ├── README
│       │   │   │   │   │   ├── benchmark.h
│       │   │   │   │   │   ├── benchmark_main.cc
│       │   │   │   │   │   ├── contraction_benchmarks_cpu.cc
│       │   │   │   │   │   ├── eigen_sycl_bench.sh
│       │   │   │   │   │   ├── eigen_sycl_bench_contract.sh
│       │   │   │   │   │   ├── tensor_benchmarks.h
│       │   │   │   │   │   ├── tensor_benchmarks_cpu.cc
│       │   │   │   │   │   ├── tensor_benchmarks_fp16_gpu.cu
│       │   │   │   │   │   ├── tensor_benchmarks_gpu.cu
│       │   │   │   │   │   ├── tensor_benchmarks_sycl.cc
│       │   │   │   │   │   └── tensor_contract_sycl_bench.cc
│       │   │   │   │   └── vdw_new.cpp
│       │   │   │   ├── blas/
│       │   │   │   │   ├── BandTriangularSolver.h
│       │   │   │   │   ├── GeneralRank1Update.h
│       │   │   │   │   ├── PackedSelfadjointProduct.h
│       │   │   │   │   ├── PackedTriangularMatrixVector.h
│       │   │   │   │   ├── PackedTriangularSolverVector.h
│       │   │   │   │   ├── Rank2Update.h
│       │   │   │   │   ├── common.h
│       │   │   │   │   ├── complex_double.cpp
│       │   │   │   │   ├── complex_single.cpp
│       │   │   │   │   ├── double.cpp
│       │   │   │   │   ├── f2c/
│       │   │   │   │   │   ├── chbmv.c
│       │   │   │   │   │   ├── chpmv.c
│       │   │   │   │   │   ├── complexdots.c
│       │   │   │   │   │   ├── ctbmv.c
│       │   │   │   │   │   ├── d_cnjg.c
│       │   │   │   │   │   ├── datatypes.h
│       │   │   │   │   │   ├── drotm.c
│       │   │   │   │   │   ├── drotmg.c
│       │   │   │   │   │   ├── dsbmv.c
│       │   │   │   │   │   ├── dspmv.c
│       │   │   │   │   │   ├── dtbmv.c
│       │   │   │   │   │   ├── lsame.c
│       │   │   │   │   │   ├── r_cnjg.c
│       │   │   │   │   │   ├── srotm.c
│       │   │   │   │   │   ├── srotmg.c
│       │   │   │   │   │   ├── ssbmv.c
│       │   │   │   │   │   ├── sspmv.c
│       │   │   │   │   │   ├── stbmv.c
│       │   │   │   │   │   ├── zhbmv.c
│       │   │   │   │   │   ├── zhpmv.c
│       │   │   │   │   │   └── ztbmv.c
│       │   │   │   │   ├── fortran/
│       │   │   │   │   │   └── complexdots.f
│       │   │   │   │   ├── level1_cplx_impl.h
│       │   │   │   │   ├── level1_impl.h
│       │   │   │   │   ├── level1_real_impl.h
│       │   │   │   │   ├── level2_cplx_impl.h
│       │   │   │   │   ├── level2_impl.h
│       │   │   │   │   ├── level2_real_impl.h
│       │   │   │   │   ├── level3_impl.h
│       │   │   │   │   ├── single.cpp
│       │   │   │   │   ├── testing/
│       │   │   │   │   │   ├── cblat1.f
│       │   │   │   │   │   ├── cblat2.f
│       │   │   │   │   │   ├── cblat3.f
│       │   │   │   │   │   ├── dblat1.f
│       │   │   │   │   │   ├── dblat2.f
│       │   │   │   │   │   ├── dblat3.f
│       │   │   │   │   │   ├── runblastest.sh
│       │   │   │   │   │   ├── sblat1.f
│       │   │   │   │   │   ├── sblat2.f
│       │   │   │   │   │   ├── sblat3.f
│       │   │   │   │   │   ├── zblat1.f
│       │   │   │   │   │   ├── zblat2.f
│       │   │   │   │   │   └── zblat3.f
│       │   │   │   │   └── xerbla.cpp
│       │   │   │   ├── ci/
│       │   │   │   │   ├── CTest2JUnit.xsl
│       │   │   │   │   ├── README.md
│       │   │   │   │   ├── smoketests.gitlab-ci.yml
│       │   │   │   │   └── test.gitlab-ci.yml
│       │   │   │   ├── cmake/
│       │   │   │   │   ├── ComputeCppCompilerChecks.cmake
│       │   │   │   │   ├── ComputeCppIRMap.cmake
│       │   │   │   │   ├── Eigen3Config.cmake.in
│       │   │   │   │   ├── EigenConfigureTesting.cmake
│       │   │   │   │   ├── EigenSmokeTestList.cmake
│       │   │   │   │   ├── EigenTesting.cmake
│       │   │   │   │   ├── EigenUninstall.cmake
│       │   │   │   │   ├── FindAdolc.cmake
│       │   │   │   │   ├── FindBLAS.cmake
│       │   │   │   │   ├── FindBLASEXT.cmake
│       │   │   │   │   ├── FindCHOLMOD.cmake
│       │   │   │   │   ├── FindComputeCpp.cmake
│       │   │   │   │   ├── FindFFTW.cmake
│       │   │   │   │   ├── FindGLEW.cmake
│       │   │   │   │   ├── FindGMP.cmake
│       │   │   │   │   ├── FindGSL.cmake
│       │   │   │   │   ├── FindGoogleHash.cmake
│       │   │   │   │   ├── FindHWLOC.cmake
│       │   │   │   │   ├── FindKLU.cmake
│       │   │   │   │   ├── FindLAPACK.cmake
│       │   │   │   │   ├── FindMPFR.cmake
│       │   │   │   │   ├── FindMPREAL.cmake
│       │   │   │   │   ├── FindMetis.cmake
│       │   │   │   │   ├── FindPASTIX.cmake
│       │   │   │   │   ├── FindPTSCOTCH.cmake
│       │   │   │   │   ├── FindSCOTCH.cmake
│       │   │   │   │   ├── FindSPQR.cmake
│       │   │   │   │   ├── FindStandardMathLibrary.cmake
│       │   │   │   │   ├── FindSuperLU.cmake
│       │   │   │   │   ├── FindTriSYCL.cmake
│       │   │   │   │   ├── FindUMFPACK.cmake
│       │   │   │   │   └── RegexUtils.cmake
│       │   │   │   ├── debug/
│       │   │   │   │   ├── gdb/
│       │   │   │   │   │   ├── __init__.py
│       │   │   │   │   │   └── printers.py
│       │   │   │   │   ├── lldb/
│       │   │   │   │   │   └── eigenlldb.py
│       │   │   │   │   └── msvc/
│       │   │   │   │       └── eigen.natvis
│       │   │   │   ├── demos/
│       │   │   │   │   ├── mandelbrot/
│       │   │   │   │   │   ├── README
│       │   │   │   │   │   ├── mandelbrot.cpp
│       │   │   │   │   │   └── mandelbrot.h
│       │   │   │   │   ├── mix_eigen_and_c/
│       │   │   │   │   │   ├── README
│       │   │   │   │   │   ├── binary_library.cpp
│       │   │   │   │   │   ├── binary_library.h
│       │   │   │   │   │   └── example.c
│       │   │   │   │   └── opengl/
│       │   │   │   │       ├── README
│       │   │   │   │       ├── camera.cpp
│       │   │   │   │       ├── camera.h
│       │   │   │   │       ├── gpuhelper.cpp
│       │   │   │   │       ├── gpuhelper.h
│       │   │   │   │       ├── icosphere.cpp
│       │   │   │   │       ├── icosphere.h
│       │   │   │   │       ├── quaternion_demo.cpp
│       │   │   │   │       ├── quaternion_demo.h
│       │   │   │   │       ├── trackball.cpp
│       │   │   │   │       └── trackball.h
│       │   │   │   ├── doc/
│       │   │   │   │   ├── B01_Experimental.dox
│       │   │   │   │   ├── ClassHierarchy.dox
│       │   │   │   │   ├── CoeffwiseMathFunctionsTable.dox
│       │   │   │   │   ├── CustomizingEigen_CustomScalar.dox
│       │   │   │   │   ├── CustomizingEigen_InheritingMatrix.dox
│       │   │   │   │   ├── CustomizingEigen_NullaryExpr.dox
│       │   │   │   │   ├── CustomizingEigen_Plugins.dox
│       │   │   │   │   ├── DenseDecompositionBenchmark.dox
│       │   │   │   │   ├── Doxyfile.in
│       │   │   │   │   ├── FixedSizeVectorizable.dox
│       │   │   │   │   ├── FunctionsTakingEigenTypes.dox
│       │   │   │   │   ├── HiPerformance.dox
│       │   │   │   │   ├── InplaceDecomposition.dox
│       │   │   │   │   ├── InsideEigenExample.dox
│       │   │   │   │   ├── LeastSquares.dox
│       │   │   │   │   ├── Manual.dox
│       │   │   │   │   ├── MatrixfreeSolverExample.dox
│       │   │   │   │   ├── NewExpressionType.dox
│       │   │   │   │   ├── Overview.dox
│       │   │   │   │   ├── PassingByValue.dox
│       │   │   │   │   ├── Pitfalls.dox
│       │   │   │   │   ├── PreprocessorDirectives.dox
│       │   │   │   │   ├── QuickReference.dox
│       │   │   │   │   ├── QuickStartGuide.dox
│       │   │   │   │   ├── SparseLinearSystems.dox
│       │   │   │   │   ├── SparseQuickReference.dox
│       │   │   │   │   ├── StlContainers.dox
│       │   │   │   │   ├── StorageOrders.dox
│       │   │   │   │   ├── StructHavingEigenMembers.dox
│       │   │   │   │   ├── TemplateKeyword.dox
│       │   │   │   │   ├── TopicAliasing.dox
│       │   │   │   │   ├── TopicAssertions.dox
│       │   │   │   │   ├── TopicCMakeGuide.dox
│       │   │   │   │   ├── TopicEigenExpressionTemplates.dox
│       │   │   │   │   ├── TopicLazyEvaluation.dox
│       │   │   │   │   ├── TopicLinearAlgebraDecompositions.dox
│       │   │   │   │   ├── TopicMultithreading.dox
│       │   │   │   │   ├── TopicResizing.dox
│       │   │   │   │   ├── TopicScalarTypes.dox
│       │   │   │   │   ├── TopicVectorization.dox
│       │   │   │   │   ├── TutorialAdvancedInitialization.dox
│       │   │   │   │   ├── TutorialArrayClass.dox
│       │   │   │   │   ├── TutorialBlockOperations.dox
│       │   │   │   │   ├── TutorialGeometry.dox
│       │   │   │   │   ├── TutorialLinearAlgebra.dox
│       │   │   │   │   ├── TutorialMapClass.dox
│       │   │   │   │   ├── TutorialMatrixArithmetic.dox
│       │   │   │   │   ├── TutorialMatrixClass.dox
│       │   │   │   │   ├── TutorialReductionsVisitorsBroadcasting.dox
│       │   │   │   │   ├── TutorialReshape.dox
│       │   │   │   │   ├── TutorialSTL.dox
│       │   │   │   │   ├── TutorialSlicingIndexing.dox
│       │   │   │   │   ├── TutorialSparse.dox
│       │   │   │   │   ├── TutorialSparse_example_details.dox
│       │   │   │   │   ├── UnalignedArrayAssert.dox
│       │   │   │   │   ├── UsingBlasLapackBackends.dox
│       │   │   │   │   ├── UsingIntelMKL.dox
│       │   │   │   │   ├── UsingNVCC.dox
│       │   │   │   │   ├── WrongStackAlignment.dox
│       │   │   │   │   ├── eigen_navtree_hacks.js
│       │   │   │   │   ├── eigendoxy.css
│       │   │   │   │   ├── eigendoxy_footer.html.in
│       │   │   │   │   ├── eigendoxy_header.html.in
│       │   │   │   │   ├── eigendoxy_layout.xml.in
│       │   │   │   │   ├── eigendoxy_tabs.css
│       │   │   │   │   ├── examples/
│       │   │   │   │   │   ├── .krazy
│       │   │   │   │   │   ├── CustomizingEigen_Inheritance.cpp
│       │   │   │   │   │   ├── Cwise_erf.cpp
│       │   │   │   │   │   ├── Cwise_erfc.cpp
│       │   │   │   │   │   ├── Cwise_lgamma.cpp
│       │   │   │   │   │   ├── DenseBase_middleCols_int.cpp
│       │   │   │   │   │   ├── DenseBase_middleRows_int.cpp
│       │   │   │   │   │   ├── DenseBase_template_int_middleCols.cpp
│       │   │   │   │   │   ├── DenseBase_template_int_middleRows.cpp
│       │   │   │   │   │   ├── QuickStart_example.cpp
│       │   │   │   │   │   ├── QuickStart_example2_dynamic.cpp
│       │   │   │   │   │   ├── QuickStart_example2_fixed.cpp
│       │   │   │   │   │   ├── TemplateKeyword_flexible.cpp
│       │   │   │   │   │   ├── TemplateKeyword_simple.cpp
│       │   │   │   │   │   ├── TutorialInplaceLU.cpp
│       │   │   │   │   │   ├── TutorialLinAlgComputeTwice.cpp
│       │   │   │   │   │   ├── TutorialLinAlgExComputeSolveError.cpp
│       │   │   │   │   │   ├── TutorialLinAlgExSolveColPivHouseholderQR.cpp
│       │   │   │   │   │   ├── TutorialLinAlgExSolveLDLT.cpp
│       │   │   │   │   │   ├── TutorialLinAlgInverseDeterminant.cpp
│       │   │   │   │   │   ├── TutorialLinAlgRankRevealing.cpp
│       │   │   │   │   │   ├── TutorialLinAlgSVDSolve.cpp
│       │   │   │   │   │   ├── TutorialLinAlgSelfAdjointEigenSolver.cpp
│       │   │   │   │   │   ├── TutorialLinAlgSetThreshold.cpp
│       │   │   │   │   │   ├── Tutorial_ArrayClass_accessors.cpp
│       │   │   │   │   │   ├── Tutorial_ArrayClass_addition.cpp
│       │   │   │   │   │   ├── Tutorial_ArrayClass_cwise_other.cpp
│       │   │   │   │   │   ├── Tutorial_ArrayClass_interop.cpp
│       │   │   │   │   │   ├── Tutorial_ArrayClass_interop_matrix.cpp
│       │   │   │   │   │   ├── Tutorial_ArrayClass_mult.cpp
│       │   │   │   │   │   ├── Tutorial_BlockOperations_block_assignment.cpp
│       │   │   │   │   │   ├── Tutorial_BlockOperations_colrow.cpp
│       │   │   │   │   │   ├── Tutorial_BlockOperations_corner.cpp
│       │   │   │   │   │   ├── Tutorial_BlockOperations_print_block.cpp
│       │   │   │   │   │   ├── Tutorial_BlockOperations_vector.cpp
│       │   │   │   │   │   ├── Tutorial_PartialLU_solve.cpp
│       │   │   │   │   │   ├── Tutorial_ReductionsVisitorsBroadcasting_broadcast_1nn.cpp
│       │   │   │   │   │   ├── Tutorial_ReductionsVisitorsBroadcasting_broadcast_simple.cpp
│       │   │   │   │   │   ├── Tutorial_ReductionsVisitorsBroadcasting_broadcast_simple_rowwise.cpp
│       │   │   │   │   │   ├── Tutorial_ReductionsVisitorsBroadcasting_colwise.cpp
│       │   │   │   │   │   ├── Tutorial_ReductionsVisitorsBroadcasting_maxnorm.cpp
│       │   │   │   │   │   ├── Tutorial_ReductionsVisitorsBroadcasting_reductions_bool.cpp
│       │   │   │   │   │   ├── Tutorial_ReductionsVisitorsBroadcasting_reductions_norm.cpp
│       │   │   │   │   │   ├── Tutorial_ReductionsVisitorsBroadcasting_reductions_operatornorm.cpp
│       │   │   │   │   │   ├── Tutorial_ReductionsVisitorsBroadcasting_rowwise.cpp
│       │   │   │   │   │   ├── Tutorial_ReductionsVisitorsBroadcasting_visitors.cpp
│       │   │   │   │   │   ├── Tutorial_simple_example_dynamic_size.cpp
│       │   │   │   │   │   ├── Tutorial_simple_example_fixed_size.cpp
│       │   │   │   │   │   ├── class_Block.cpp
│       │   │   │   │   │   ├── class_CwiseBinaryOp.cpp
│       │   │   │   │   │   ├── class_CwiseUnaryOp.cpp
│       │   │   │   │   │   ├── class_CwiseUnaryOp_ptrfun.cpp
│       │   │   │   │   │   ├── class_FixedBlock.cpp
│       │   │   │   │   │   ├── class_FixedReshaped.cpp
│       │   │   │   │   │   ├── class_FixedVectorBlock.cpp
│       │   │   │   │   │   ├── class_Reshaped.cpp
│       │   │   │   │   │   ├── class_VectorBlock.cpp
│       │   │   │   │   │   ├── function_taking_eigenbase.cpp
│       │   │   │   │   │   ├── function_taking_ref.cpp
│       │   │   │   │   │   ├── make_circulant.cpp
│       │   │   │   │   │   ├── make_circulant.cpp.entry
│       │   │   │   │   │   ├── make_circulant.cpp.evaluator
│       │   │   │   │   │   ├── make_circulant.cpp.expression
│       │   │   │   │   │   ├── make_circulant.cpp.main
│       │   │   │   │   │   ├── make_circulant.cpp.preamble
│       │   │   │   │   │   ├── make_circulant.cpp.traits
│       │   │   │   │   │   ├── make_circulant2.cpp
│       │   │   │   │   │   ├── matrixfree_cg.cpp
│       │   │   │   │   │   ├── nullary_indexing.cpp
│       │   │   │   │   │   ├── tut_arithmetic_add_sub.cpp
│       │   │   │   │   │   ├── tut_arithmetic_dot_cross.cpp
│       │   │   │   │   │   ├── tut_arithmetic_matrix_mul.cpp
│       │   │   │   │   │   ├── tut_arithmetic_redux_basic.cpp
│       │   │   │   │   │   ├── tut_arithmetic_scalar_mul_div.cpp
│       │   │   │   │   │   ├── tut_matrix_coefficient_accessors.cpp
│       │   │   │   │   │   ├── tut_matrix_resize.cpp
│       │   │   │   │   │   └── tut_matrix_resize_fixed_size.cpp
│       │   │   │   │   ├── snippets/
│       │   │   │   │   │   ├── .krazy
│       │   │   │   │   │   ├── AngleAxis_mimic_euler.cpp
│       │   │   │   │   │   ├── Array_initializer_list_23_cxx11.cpp
│       │   │   │   │   │   ├── Array_initializer_list_vector_cxx11.cpp
│       │   │   │   │   │   ├── Array_variadic_ctor_cxx11.cpp
│       │   │   │   │   │   ├── BiCGSTAB_simple.cpp
│       │   │   │   │   │   ├── BiCGSTAB_step_by_step.cpp
│       │   │   │   │   │   ├── ColPivHouseholderQR_solve.cpp
│       │   │   │   │   │   ├── ComplexEigenSolver_compute.cpp
│       │   │   │   │   │   ├── ComplexEigenSolver_eigenvalues.cpp
│       │   │   │   │   │   ├── ComplexEigenSolver_eigenvectors.cpp
│       │   │   │   │   │   ├── ComplexSchur_compute.cpp
│       │   │   │   │   │   ├── ComplexSchur_matrixT.cpp
│       │   │   │   │   │   ├── ComplexSchur_matrixU.cpp
│       │   │   │   │   │   ├── Cwise_abs.cpp
│       │   │   │   │   │   ├── Cwise_abs2.cpp
│       │   │   │   │   │   ├── Cwise_acos.cpp
│       │   │   │   │   │   ├── Cwise_arg.cpp
│       │   │   │   │   │   ├── Cwise_array_power_array.cpp
│       │   │   │   │   │   ├── Cwise_asin.cpp
│       │   │   │   │   │   ├── Cwise_atan.cpp
│       │   │   │   │   │   ├── Cwise_boolean_and.cpp
│       │   │   │   │   │   ├── Cwise_boolean_not.cpp
│       │   │   │   │   │   ├── Cwise_boolean_or.cpp
│       │   │   │   │   │   ├── Cwise_boolean_xor.cpp
│       │   │   │   │   │   ├── Cwise_ceil.cpp
│       │   │   │   │   │   ├── Cwise_cos.cpp
│       │   │   │   │   │   ├── Cwise_cosh.cpp
│       │   │   │   │   │   ├── Cwise_cube.cpp
│       │   │   │   │   │   ├── Cwise_equal_equal.cpp
│       │   │   │   │   │   ├── Cwise_exp.cpp
│       │   │   │   │   │   ├── Cwise_floor.cpp
│       │   │   │   │   │   ├── Cwise_greater.cpp
│       │   │   │   │   │   ├── Cwise_greater_equal.cpp
│       │   │   │   │   │   ├── Cwise_inverse.cpp
│       │   │   │   │   │   ├── Cwise_isFinite.cpp
│       │   │   │   │   │   ├── Cwise_isInf.cpp
│       │   │   │   │   │   ├── Cwise_isNaN.cpp
│       │   │   │   │   │   ├── Cwise_less.cpp
│       │   │   │   │   │   ├── Cwise_less_equal.cpp
│       │   │   │   │   │   ├── Cwise_log.cpp
│       │   │   │   │   │   ├── Cwise_log10.cpp
│       │   │   │   │   │   ├── Cwise_max.cpp
│       │   │   │   │   │   ├── Cwise_min.cpp
│       │   │   │   │   │   ├── Cwise_minus.cpp
│       │   │   │   │   │   ├── Cwise_minus_equal.cpp
│       │   │   │   │   │   ├── Cwise_not_equal.cpp
│       │   │   │   │   │   ├── Cwise_plus.cpp
│       │   │   │   │   │   ├── Cwise_plus_equal.cpp
│       │   │   │   │   │   ├── Cwise_pow.cpp
│       │   │   │   │   │   ├── Cwise_product.cpp
│       │   │   │   │   │   ├── Cwise_quotient.cpp
│       │   │   │   │   │   ├── Cwise_rint.cpp
│       │   │   │   │   │   ├── Cwise_round.cpp
│       │   │   │   │   │   ├── Cwise_scalar_power_array.cpp
│       │   │   │   │   │   ├── Cwise_sign.cpp
│       │   │   │   │   │   ├── Cwise_sin.cpp
│       │   │   │   │   │   ├── Cwise_sinh.cpp
│       │   │   │   │   │   ├── Cwise_slash_equal.cpp
│       │   │   │   │   │   ├── Cwise_sqrt.cpp
│       │   │   │   │   │   ├── Cwise_square.cpp
│       │   │   │   │   │   ├── Cwise_tan.cpp
│       │   │   │   │   │   ├── Cwise_tanh.cpp
│       │   │   │   │   │   ├── Cwise_times_equal.cpp
│       │   │   │   │   │   ├── DenseBase_LinSpaced.cpp
│       │   │   │   │   │   ├── DenseBase_LinSpacedInt.cpp
│       │   │   │   │   │   ├── DenseBase_LinSpaced_seq_deprecated.cpp
│       │   │   │   │   │   ├── DenseBase_setLinSpaced.cpp
│       │   │   │   │   │   ├── DirectionWise_hnormalized.cpp
│       │   │   │   │   │   ├── DirectionWise_replicate.cpp
│       │   │   │   │   │   ├── DirectionWise_replicate_int.cpp
│       │   │   │   │   │   ├── EigenSolver_EigenSolver_MatrixType.cpp
│       │   │   │   │   │   ├── EigenSolver_compute.cpp
│       │   │   │   │   │   ├── EigenSolver_eigenvalues.cpp
│       │   │   │   │   │   ├── EigenSolver_eigenvectors.cpp
│       │   │   │   │   │   ├── EigenSolver_pseudoEigenvectors.cpp
│       │   │   │   │   │   ├── FullPivHouseholderQR_solve.cpp
│       │   │   │   │   │   ├── FullPivLU_image.cpp
│       │   │   │   │   │   ├── FullPivLU_kernel.cpp
│       │   │   │   │   │   ├── FullPivLU_solve.cpp
│       │   │   │   │   │   ├── GeneralizedEigenSolver.cpp
│       │   │   │   │   │   ├── HessenbergDecomposition_compute.cpp
│       │   │   │   │   │   ├── HessenbergDecomposition_matrixH.cpp
│       │   │   │   │   │   ├── HessenbergDecomposition_packedMatrix.cpp
│       │   │   │   │   │   ├── HouseholderQR_householderQ.cpp
│       │   │   │   │   │   ├── HouseholderQR_solve.cpp
│       │   │   │   │   │   ├── HouseholderSequence_HouseholderSequence.cpp
│       │   │   │   │   │   ├── IOFormat.cpp
│       │   │   │   │   │   ├── JacobiSVD_basic.cpp
│       │   │   │   │   │   ├── Jacobi_makeGivens.cpp
│       │   │   │   │   │   ├── Jacobi_makeJacobi.cpp
│       │   │   │   │   │   ├── LLT_example.cpp
│       │   │   │   │   │   ├── LLT_solve.cpp
│       │   │   │   │   │   ├── LeastSquaresNormalEquations.cpp
│       │   │   │   │   │   ├── LeastSquaresQR.cpp
│       │   │   │   │   │   ├── Map_general_stride.cpp
│       │   │   │   │   │   ├── Map_inner_stride.cpp
│       │   │   │   │   │   ├── Map_outer_stride.cpp
│       │   │   │   │   │   ├── Map_placement_new.cpp
│       │   │   │   │   │   ├── Map_simple.cpp
│       │   │   │   │   │   ├── MatrixBase_adjoint.cpp
│       │   │   │   │   │   ├── MatrixBase_all.cpp
│       │   │   │   │   │   ├── MatrixBase_applyOnTheLeft.cpp
│       │   │   │   │   │   ├── MatrixBase_applyOnTheRight.cpp
│       │   │   │   │   │   ├── MatrixBase_array.cpp
│       │   │   │   │   │   ├── MatrixBase_array_const.cpp
│       │   │   │   │   │   ├── MatrixBase_asDiagonal.cpp
│       │   │   │   │   │   ├── MatrixBase_block_int_int.cpp
│       │   │   │   │   │   ├── MatrixBase_block_int_int_int_int.cpp
│       │   │   │   │   │   ├── MatrixBase_bottomLeftCorner_int_int.cpp
│       │   │   │   │   │   ├── MatrixBase_bottomRightCorner_int_int.cpp
│       │   │   │   │   │   ├── MatrixBase_bottomRows_int.cpp
│       │   │   │   │   │   ├── MatrixBase_cast.cpp
│       │   │   │   │   │   ├── MatrixBase_col.cpp
│       │   │   │   │   │   ├── MatrixBase_colwise.cpp
│       │   │   │   │   │   ├── MatrixBase_colwise_iterator_cxx11.cpp
│       │   │   │   │   │   ├── MatrixBase_computeInverseAndDetWithCheck.cpp
│       │   │   │   │   │   ├── MatrixBase_computeInverseWithCheck.cpp
│       │   │   │   │   │   ├── MatrixBase_cwiseAbs.cpp
│       │   │   │   │   │   ├── MatrixBase_cwiseAbs2.cpp
│       │   │   │   │   │   ├── MatrixBase_cwiseArg.cpp
│       │   │   │   │   │   ├── MatrixBase_cwiseEqual.cpp
│       │   │   │   │   │   ├── MatrixBase_cwiseInverse.cpp
│       │   │   │   │   │   ├── MatrixBase_cwiseMax.cpp
│       │   │   │   │   │   ├── MatrixBase_cwiseMin.cpp
│       │   │   │   │   │   ├── MatrixBase_cwiseNotEqual.cpp
│       │   │   │   │   │   ├── MatrixBase_cwiseProduct.cpp
│       │   │   │   │   │   ├── MatrixBase_cwiseQuotient.cpp
│       │   │   │   │   │   ├── MatrixBase_cwiseSign.cpp
│       │   │   │   │   │   ├── MatrixBase_cwiseSqrt.cpp
│       │   │   │   │   │   ├── MatrixBase_diagonal.cpp
│       │   │   │   │   │   ├── MatrixBase_diagonal_int.cpp
│       │   │   │   │   │   ├── MatrixBase_diagonal_template_int.cpp
│       │   │   │   │   │   ├── MatrixBase_eigenvalues.cpp
│       │   │   │   │   │   ├── MatrixBase_end_int.cpp
│       │   │   │   │   │   ├── MatrixBase_eval.cpp
│       │   │   │   │   │   ├── MatrixBase_fixedBlock_int_int.cpp
│       │   │   │   │   │   ├── MatrixBase_hnormalized.cpp
│       │   │   │   │   │   ├── MatrixBase_homogeneous.cpp
│       │   │   │   │   │   ├── MatrixBase_identity.cpp
│       │   │   │   │   │   ├── MatrixBase_identity_int_int.cpp
│       │   │   │   │   │   ├── MatrixBase_inverse.cpp
│       │   │   │   │   │   ├── MatrixBase_isDiagonal.cpp
│       │   │   │   │   │   ├── MatrixBase_isIdentity.cpp
│       │   │   │   │   │   ├── MatrixBase_isOnes.cpp
│       │   │   │   │   │   ├── MatrixBase_isOrthogonal.cpp
│       │   │   │   │   │   ├── MatrixBase_isUnitary.cpp
│       │   │   │   │   │   ├── MatrixBase_isZero.cpp
│       │   │   │   │   │   ├── MatrixBase_leftCols_int.cpp
│       │   │   │   │   │   ├── MatrixBase_noalias.cpp
│       │   │   │   │   │   ├── MatrixBase_ones.cpp
│       │   │   │   │   │   ├── MatrixBase_ones_int.cpp
│       │   │   │   │   │   ├── MatrixBase_ones_int_int.cpp
│       │   │   │   │   │   ├── MatrixBase_operatorNorm.cpp
│       │   │   │   │   │   ├── MatrixBase_prod.cpp
│       │   │   │   │   │   ├── MatrixBase_random.cpp
│       │   │   │   │   │   ├── MatrixBase_random_int.cpp
│       │   │   │   │   │   ├── MatrixBase_random_int_int.cpp
│       │   │   │   │   │   ├── MatrixBase_replicate.cpp
│       │   │   │   │   │   ├── MatrixBase_replicate_int_int.cpp
│       │   │   │   │   │   ├── MatrixBase_reshaped_auto.cpp
│       │   │   │   │   │   ├── MatrixBase_reshaped_fixed.cpp
│       │   │   │   │   │   ├── MatrixBase_reshaped_int_int.cpp
│       │   │   │   │   │   ├── MatrixBase_reshaped_to_vector.cpp
│       │   │   │   │   │   ├── MatrixBase_reverse.cpp
│       │   │   │   │   │   ├── MatrixBase_rightCols_int.cpp
│       │   │   │   │   │   ├── MatrixBase_row.cpp
│       │   │   │   │   │   ├── MatrixBase_rowwise.cpp
│       │   │   │   │   │   ├── MatrixBase_segment_int_int.cpp
│       │   │   │   │   │   ├── MatrixBase_select.cpp
│       │   │   │   │   │   ├── MatrixBase_selfadjointView.cpp
│       │   │   │   │   │   ├── MatrixBase_set.cpp
│       │   │   │   │   │   ├── MatrixBase_setIdentity.cpp
│       │   │   │   │   │   ├── MatrixBase_setOnes.cpp
│       │   │   │   │   │   ├── MatrixBase_setRandom.cpp
│       │   │   │   │   │   ├── MatrixBase_setZero.cpp
│       │   │   │   │   │   ├── MatrixBase_start_int.cpp
│       │   │   │   │   │   ├── MatrixBase_template_int_bottomRows.cpp
│       │   │   │   │   │   ├── MatrixBase_template_int_end.cpp
│       │   │   │   │   │   ├── MatrixBase_template_int_int_block_int_int_int_int.cpp
│       │   │   │   │   │   ├── MatrixBase_template_int_int_bottomLeftCorner.cpp
│       │   │   │   │   │   ├── MatrixBase_template_int_int_bottomLeftCorner_int_int.cpp
│       │   │   │   │   │   ├── MatrixBase_template_int_int_bottomRightCorner.cpp
│       │   │   │   │   │   ├── MatrixBase_template_int_int_bottomRightCorner_int_int.cpp
│       │   │   │   │   │   ├── MatrixBase_template_int_int_topLeftCorner.cpp
│       │   │   │   │   │   ├── MatrixBase_template_int_int_topLeftCorner_int_int.cpp
│       │   │   │   │   │   ├── MatrixBase_template_int_int_topRightCorner.cpp
│       │   │   │   │   │   ├── MatrixBase_template_int_int_topRightCorner_int_int.cpp
│       │   │   │   │   │   ├── MatrixBase_template_int_leftCols.cpp
│       │   │   │   │   │   ├── MatrixBase_template_int_rightCols.cpp
│       │   │   │   │   │   ├── MatrixBase_template_int_segment.cpp
│       │   │   │   │   │   ├── MatrixBase_template_int_start.cpp
│       │   │   │   │   │   ├── MatrixBase_template_int_topRows.cpp
│       │   │   │   │   │   ├── MatrixBase_topLeftCorner_int_int.cpp
│       │   │   │   │   │   ├── MatrixBase_topRightCorner_int_int.cpp
│       │   │   │   │   │   ├── MatrixBase_topRows_int.cpp
│       │   │   │   │   │   ├── MatrixBase_transpose.cpp
│       │   │   │   │   │   ├── MatrixBase_triangularView.cpp
│       │   │   │   │   │   ├── MatrixBase_zero.cpp
│       │   │   │   │   │   ├── MatrixBase_zero_int.cpp
│       │   │   │   │   │   ├── MatrixBase_zero_int_int.cpp
│       │   │   │   │   │   ├── Matrix_Map_stride.cpp
│       │   │   │   │   │   ├── Matrix_initializer_list_23_cxx11.cpp
│       │   │   │   │   │   ├── Matrix_initializer_list_vector_cxx11.cpp
│       │   │   │   │   │   ├── Matrix_resize_NoChange_int.cpp
│       │   │   │   │   │   ├── Matrix_resize_int.cpp
│       │   │   │   │   │   ├── Matrix_resize_int_NoChange.cpp
│       │   │   │   │   │   ├── Matrix_resize_int_int.cpp
│       │   │   │   │   │   ├── Matrix_setConstant_int.cpp
│       │   │   │   │   │   ├── Matrix_setConstant_int_int.cpp
│       │   │   │   │   │   ├── Matrix_setIdentity_int_int.cpp
│       │   │   │   │   │   ├── Matrix_setOnes_int.cpp
│       │   │   │   │   │   ├── Matrix_setOnes_int_int.cpp
│       │   │   │   │   │   ├── Matrix_setRandom_int.cpp
│       │   │   │   │   │   ├── Matrix_setRandom_int_int.cpp
│       │   │   │   │   │   ├── Matrix_setZero_int.cpp
│       │   │   │   │   │   ├── Matrix_setZero_int_int.cpp
│       │   │   │   │   │   ├── Matrix_variadic_ctor_cxx11.cpp
│       │   │   │   │   │   ├── PartialPivLU_solve.cpp
│       │   │   │   │   │   ├── PartialRedux_count.cpp
│       │   │   │   │   │   ├── PartialRedux_maxCoeff.cpp
│       │   │   │   │   │   ├── PartialRedux_minCoeff.cpp
│       │   │   │   │   │   ├── PartialRedux_norm.cpp
│       │   │   │   │   │   ├── PartialRedux_prod.cpp
│       │   │   │   │   │   ├── PartialRedux_squaredNorm.cpp
│       │   │   │   │   │   ├── PartialRedux_sum.cpp
│       │   │   │   │   │   ├── RealQZ_compute.cpp
│       │   │   │   │   │   ├── RealSchur_RealSchur_MatrixType.cpp
│       │   │   │   │   │   ├── RealSchur_compute.cpp
│       │   │   │   │   │   ├── SelfAdjointEigenSolver_SelfAdjointEigenSolver.cpp
│       │   │   │   │   │   ├── SelfAdjointEigenSolver_SelfAdjointEigenSolver_MatrixType.cpp
│       │   │   │   │   │   ├── SelfAdjointEigenSolver_SelfAdjointEigenSolver_MatrixType2.cpp
│       │   │   │   │   │   ├── SelfAdjointEigenSolver_compute_MatrixType.cpp
│       │   │   │   │   │   ├── SelfAdjointEigenSolver_compute_MatrixType2.cpp
│       │   │   │   │   │   ├── SelfAdjointEigenSolver_eigenvalues.cpp
│       │   │   │   │   │   ├── SelfAdjointEigenSolver_eigenvectors.cpp
│       │   │   │   │   │   ├── SelfAdjointEigenSolver_operatorInverseSqrt.cpp
│       │   │   │   │   │   ├── SelfAdjointEigenSolver_operatorSqrt.cpp
│       │   │   │   │   │   ├── SelfAdjointView_eigenvalues.cpp
│       │   │   │   │   │   ├── SelfAdjointView_operatorNorm.cpp
│       │   │   │   │   │   ├── Slicing_arrayexpr.cpp
│       │   │   │   │   │   ├── Slicing_custom_padding_cxx11.cpp
│       │   │   │   │   │   ├── Slicing_rawarray_cxx11.cpp
│       │   │   │   │   │   ├── Slicing_stdvector_cxx11.cpp
│       │   │   │   │   │   ├── SparseMatrix_coeffs.cpp
│       │   │   │   │   │   ├── TopicAliasing_block.cpp
│       │   │   │   │   │   ├── TopicAliasing_block_correct.cpp
│       │   │   │   │   │   ├── TopicAliasing_cwise.cpp
│       │   │   │   │   │   ├── TopicAliasing_mult1.cpp
│       │   │   │   │   │   ├── TopicAliasing_mult2.cpp
│       │   │   │   │   │   ├── TopicAliasing_mult3.cpp
│       │   │   │   │   │   ├── TopicAliasing_mult4.cpp
│       │   │   │   │   │   ├── TopicAliasing_mult5.cpp
│       │   │   │   │   │   ├── TopicStorageOrders_example.cpp
│       │   │   │   │   │   ├── Triangular_solve.cpp
│       │   │   │   │   │   ├── Tridiagonalization_Tridiagonalization_MatrixType.cpp
│       │   │   │   │   │   ├── Tridiagonalization_compute.cpp
│       │   │   │   │   │   ├── Tridiagonalization_decomposeInPlace.cpp
│       │   │   │   │   │   ├── Tridiagonalization_diagonal.cpp
│       │   │   │   │   │   ├── Tridiagonalization_householderCoefficients.cpp
│       │   │   │   │   │   ├── Tridiagonalization_packedMatrix.cpp
│       │   │   │   │   │   ├── Tutorial_AdvancedInitialization_Block.cpp
│       │   │   │   │   │   ├── Tutorial_AdvancedInitialization_CommaTemporary.cpp
│       │   │   │   │   │   ├── Tutorial_AdvancedInitialization_Join.cpp
│       │   │   │   │   │   ├── Tutorial_AdvancedInitialization_LinSpaced.cpp
│       │   │   │   │   │   ├── Tutorial_AdvancedInitialization_ThreeWays.cpp
│       │   │   │   │   │   ├── Tutorial_AdvancedInitialization_Zero.cpp
│       │   │   │   │   │   ├── Tutorial_Map_rowmajor.cpp
│       │   │   │   │   │   ├── Tutorial_Map_using.cpp
│       │   │   │   │   │   ├── Tutorial_ReshapeMat2Mat.cpp
│       │   │   │   │   │   ├── Tutorial_ReshapeMat2Vec.cpp
│       │   │   │   │   │   ├── Tutorial_SlicingCol.cpp
│       │   │   │   │   │   ├── Tutorial_SlicingVec.cpp
│       │   │   │   │   │   ├── Tutorial_commainit_01.cpp
│       │   │   │   │   │   ├── Tutorial_commainit_01b.cpp
│       │   │   │   │   │   ├── Tutorial_commainit_02.cpp
│       │   │   │   │   │   ├── Tutorial_range_for_loop_1d_cxx11.cpp
│       │   │   │   │   │   ├── Tutorial_range_for_loop_2d_cxx11.cpp
│       │   │   │   │   │   ├── Tutorial_reshaped_vs_resize_1.cpp
│       │   │   │   │   │   ├── Tutorial_reshaped_vs_resize_2.cpp
│       │   │   │   │   │   ├── Tutorial_solve_matrix_inverse.cpp
│       │   │   │   │   │   ├── Tutorial_solve_multiple_rhs.cpp
│       │   │   │   │   │   ├── Tutorial_solve_reuse_decomposition.cpp
│       │   │   │   │   │   ├── Tutorial_solve_singular.cpp
│       │   │   │   │   │   ├── Tutorial_solve_triangular.cpp
│       │   │   │   │   │   ├── Tutorial_solve_triangular_inplace.cpp
│       │   │   │   │   │   ├── Tutorial_std_sort.cpp
│       │   │   │   │   │   ├── Tutorial_std_sort_rows_cxx11.cpp
│       │   │   │   │   │   ├── VectorwiseOp_homogeneous.cpp
│       │   │   │   │   │   ├── Vectorwise_reverse.cpp
│       │   │   │   │   │   ├── class_FullPivLU.cpp
│       │   │   │   │   │   ├── compile_snippet.cpp.in
│       │   │   │   │   │   ├── tut_arithmetic_redux_minmax.cpp
│       │   │   │   │   │   ├── tut_arithmetic_transpose_aliasing.cpp
│       │   │   │   │   │   ├── tut_arithmetic_transpose_conjugate.cpp
│       │   │   │   │   │   ├── tut_arithmetic_transpose_inplace.cpp
│       │   │   │   │   │   └── tut_matrix_assignment_resizing.cpp
│       │   │   │   │   ├── special_examples/
│       │   │   │   │   │   ├── Tutorial_sparse_example.cpp
│       │   │   │   │   │   ├── Tutorial_sparse_example_details.cpp
│       │   │   │   │   │   └── random_cpp11.cpp
│       │   │   │   │   └── tutorial.cpp
│       │   │   │   ├── eigen3.pc.in
│       │   │   │   ├── failtest/
│       │   │   │   │   ├── bdcsvd_int.cpp
│       │   │   │   │   ├── block_nonconst_ctor_on_const_xpr_0.cpp
│       │   │   │   │   ├── block_nonconst_ctor_on_const_xpr_1.cpp
│       │   │   │   │   ├── block_nonconst_ctor_on_const_xpr_2.cpp
│       │   │   │   │   ├── block_on_const_type_actually_const_0.cpp
│       │   │   │   │   ├── block_on_const_type_actually_const_1.cpp
│       │   │   │   │   ├── colpivqr_int.cpp
│       │   │   │   │   ├── const_qualified_block_method_retval_0.cpp
│       │   │   │   │   ├── const_qualified_block_method_retval_1.cpp
│       │   │   │   │   ├── const_qualified_diagonal_method_retval.cpp
│       │   │   │   │   ├── const_qualified_transpose_method_retval.cpp
│       │   │   │   │   ├── cwiseunaryview_nonconst_ctor_on_const_xpr.cpp
│       │   │   │   │   ├── cwiseunaryview_on_const_type_actually_const.cpp
│       │   │   │   │   ├── diagonal_nonconst_ctor_on_const_xpr.cpp
│       │   │   │   │   ├── diagonal_on_const_type_actually_const.cpp
│       │   │   │   │   ├── eigensolver_cplx.cpp
│       │   │   │   │   ├── eigensolver_int.cpp
│       │   │   │   │   ├── failtest_sanity_check.cpp
│       │   │   │   │   ├── fullpivlu_int.cpp
│       │   │   │   │   ├── fullpivqr_int.cpp
│       │   │   │   │   ├── initializer_list_1.cpp
│       │   │   │   │   ├── initializer_list_2.cpp
│       │   │   │   │   ├── jacobisvd_int.cpp
│       │   │   │   │   ├── ldlt_int.cpp
│       │   │   │   │   ├── llt_int.cpp
│       │   │   │   │   ├── map_nonconst_ctor_on_const_ptr_0.cpp
│       │   │   │   │   ├── map_nonconst_ctor_on_const_ptr_1.cpp
│       │   │   │   │   ├── map_nonconst_ctor_on_const_ptr_2.cpp
│       │   │   │   │   ├── map_nonconst_ctor_on_const_ptr_3.cpp
│       │   │   │   │   ├── map_nonconst_ctor_on_const_ptr_4.cpp
│       │   │   │   │   ├── map_on_const_type_actually_const_0.cpp
│       │   │   │   │   ├── map_on_const_type_actually_const_1.cpp
│       │   │   │   │   ├── partialpivlu_int.cpp
│       │   │   │   │   ├── qr_int.cpp
│       │   │   │   │   ├── ref_1.cpp
│       │   │   │   │   ├── ref_2.cpp
│       │   │   │   │   ├── ref_3.cpp
│       │   │   │   │   ├── ref_4.cpp
│       │   │   │   │   ├── ref_5.cpp
│       │   │   │   │   ├── selfadjointview_nonconst_ctor_on_const_xpr.cpp
│       │   │   │   │   ├── selfadjointview_on_const_type_actually_const.cpp
│       │   │   │   │   ├── sparse_ref_1.cpp
│       │   │   │   │   ├── sparse_ref_2.cpp
│       │   │   │   │   ├── sparse_ref_3.cpp
│       │   │   │   │   ├── sparse_ref_4.cpp
│       │   │   │   │   ├── sparse_ref_5.cpp
│       │   │   │   │   ├── sparse_storage_mismatch.cpp
│       │   │   │   │   ├── swap_1.cpp
│       │   │   │   │   ├── swap_2.cpp
│       │   │   │   │   ├── ternary_1.cpp
│       │   │   │   │   ├── ternary_2.cpp
│       │   │   │   │   ├── transpose_nonconst_ctor_on_const_xpr.cpp
│       │   │   │   │   ├── transpose_on_const_type_actually_const.cpp
│       │   │   │   │   ├── triangularview_nonconst_ctor_on_const_xpr.cpp
│       │   │   │   │   └── triangularview_on_const_type_actually_const.cpp
│       │   │   │   ├── lapack/
│       │   │   │   │   ├── cholesky.cpp
│       │   │   │   │   ├── clacgv.f
│       │   │   │   │   ├── cladiv.f
│       │   │   │   │   ├── clarf.f
│       │   │   │   │   ├── clarfb.f
│       │   │   │   │   ├── clarfg.f
│       │   │   │   │   ├── clarft.f
│       │   │   │   │   ├── complex_double.cpp
│       │   │   │   │   ├── complex_single.cpp
│       │   │   │   │   ├── dladiv.f
│       │   │   │   │   ├── dlamch.f
│       │   │   │   │   ├── dlapy2.f
│       │   │   │   │   ├── dlapy3.f
│       │   │   │   │   ├── dlarf.f
│       │   │   │   │   ├── dlarfb.f
│       │   │   │   │   ├── dlarfg.f
│       │   │   │   │   ├── dlarft.f
│       │   │   │   │   ├── double.cpp
│       │   │   │   │   ├── dsecnd_NONE.f
│       │   │   │   │   ├── eigenvalues.cpp
│       │   │   │   │   ├── ilaclc.f
│       │   │   │   │   ├── ilaclr.f
│       │   │   │   │   ├── iladlc.f
│       │   │   │   │   ├── iladlr.f
│       │   │   │   │   ├── ilaslc.f
│       │   │   │   │   ├── ilaslr.f
│       │   │   │   │   ├── ilazlc.f
│       │   │   │   │   ├── ilazlr.f
│       │   │   │   │   ├── lapack_common.h
│       │   │   │   │   ├── lu.cpp
│       │   │   │   │   ├── second_NONE.f
│       │   │   │   │   ├── single.cpp
│       │   │   │   │   ├── sladiv.f
│       │   │   │   │   ├── slamch.f
│       │   │   │   │   ├── slapy2.f
│       │   │   │   │   ├── slapy3.f
│       │   │   │   │   ├── slarf.f
│       │   │   │   │   ├── slarfb.f
│       │   │   │   │   ├── slarfg.f
│       │   │   │   │   ├── slarft.f
│       │   │   │   │   ├── svd.cpp
│       │   │   │   │   ├── zlacgv.f
│       │   │   │   │   ├── zladiv.f
│       │   │   │   │   ├── zlarf.f
│       │   │   │   │   ├── zlarfb.f
│       │   │   │   │   ├── zlarfg.f
│       │   │   │   │   └── zlarft.f
│       │   │   │   ├── scripts/
│       │   │   │   │   ├── cdashtesting.cmake.in
│       │   │   │   │   ├── check.in
│       │   │   │   │   ├── debug.in
│       │   │   │   │   ├── eigen_gen_credits.cpp
│       │   │   │   │   ├── eigen_gen_docs
│       │   │   │   │   ├── eigen_gen_split_test_help.cmake
│       │   │   │   │   ├── eigen_monitor_perf.sh
│       │   │   │   │   ├── release.in
│       │   │   │   │   └── relicense.py
│       │   │   │   ├── signature_of_eigen3_matrix_library
│       │   │   │   ├── test/
│       │   │   │   │   ├── AnnoyingScalar.h
│       │   │   │   │   ├── MovableScalar.h
│       │   │   │   │   ├── OffByOneScalar.h
│       │   │   │   │   ├── SafeScalar.h
│       │   │   │   │   ├── adjoint.cpp
│       │   │   │   │   ├── array_cwise.cpp
│       │   │   │   │   ├── array_for_matrix.cpp
│       │   │   │   │   ├── array_of_string.cpp
│       │   │   │   │   ├── array_replicate.cpp
│       │   │   │   │   ├── array_reverse.cpp
│       │   │   │   │   ├── bandmatrix.cpp
│       │   │   │   │   ├── basicstuff.cpp
│       │   │   │   │   ├── bdcsvd.cpp
│       │   │   │   │   ├── bfloat16_float.cpp
│       │   │   │   │   ├── bicgstab.cpp
│       │   │   │   │   ├── blasutil.cpp
│       │   │   │   │   ├── block.cpp
│       │   │   │   │   ├── boostmultiprec.cpp
│       │   │   │   │   ├── bug1213.cpp
│       │   │   │   │   ├── bug1213.h
│       │   │   │   │   ├── bug1213_main.cpp
│       │   │   │   │   ├── cholesky.cpp
│       │   │   │   │   ├── cholmod_support.cpp
│       │   │   │   │   ├── commainitializer.cpp
│       │   │   │   │   ├── conjugate_gradient.cpp
│       │   │   │   │   ├── conservative_resize.cpp
│       │   │   │   │   ├── constructor.cpp
│       │   │   │   │   ├── corners.cpp
│       │   │   │   │   ├── ctorleak.cpp
│       │   │   │   │   ├── denseLM.cpp
│       │   │   │   │   ├── dense_storage.cpp
│       │   │   │   │   ├── determinant.cpp
│       │   │   │   │   ├── diagonal.cpp
│       │   │   │   │   ├── diagonal_matrix_variadic_ctor.cpp
│       │   │   │   │   ├── diagonalmatrices.cpp
│       │   │   │   │   ├── dontalign.cpp
│       │   │   │   │   ├── dynalloc.cpp
│       │   │   │   │   ├── eigen2support.cpp
│       │   │   │   │   ├── eigensolver_complex.cpp
│       │   │   │   │   ├── eigensolver_generalized_real.cpp
│       │   │   │   │   ├── eigensolver_generic.cpp
│       │   │   │   │   ├── eigensolver_selfadjoint.cpp
│       │   │   │   │   ├── evaluator_common.h
│       │   │   │   │   ├── evaluators.cpp
│       │   │   │   │   ├── exceptions.cpp
│       │   │   │   │   ├── fastmath.cpp
│       │   │   │   │   ├── first_aligned.cpp
│       │   │   │   │   ├── geo_alignedbox.cpp
│       │   │   │   │   ├── geo_eulerangles.cpp
│       │   │   │   │   ├── geo_homogeneous.cpp
│       │   │   │   │   ├── geo_hyperplane.cpp
│       │   │   │   │   ├── geo_orthomethods.cpp
│       │   │   │   │   ├── geo_parametrizedline.cpp
│       │   │   │   │   ├── geo_quaternion.cpp
│       │   │   │   │   ├── geo_transformations.cpp
│       │   │   │   │   ├── gpu_basic.cu
│       │   │   │   │   ├── gpu_common.h
│       │   │   │   │   ├── gpu_example.cu
│       │   │   │   │   ├── gpu_test_helper.h
│       │   │   │   │   ├── half_float.cpp
│       │   │   │   │   ├── hessenberg.cpp
│       │   │   │   │   ├── householder.cpp
│       │   │   │   │   ├── incomplete_cholesky.cpp
│       │   │   │   │   ├── indexed_view.cpp
│       │   │   │   │   ├── initializer_list_construction.cpp
│       │   │   │   │   ├── inplace_decomposition.cpp
│       │   │   │   │   ├── integer_types.cpp
│       │   │   │   │   ├── inverse.cpp
│       │   │   │   │   ├── io.cpp
│       │   │   │   │   ├── is_same_dense.cpp
│       │   │   │   │   ├── jacobi.cpp
│       │   │   │   │   ├── jacobisvd.cpp
│       │   │   │   │   ├── klu_support.cpp
│       │   │   │   │   ├── linearstructure.cpp
│       │   │   │   │   ├── lscg.cpp
│       │   │   │   │   ├── lu.cpp
│       │   │   │   │   ├── main.h
│       │   │   │   │   ├── mapped_matrix.cpp
│       │   │   │   │   ├── mapstaticmethods.cpp
│       │   │   │   │   ├── mapstride.cpp
│       │   │   │   │   ├── meta.cpp
│       │   │   │   │   ├── metis_support.cpp
│       │   │   │   │   ├── miscmatrices.cpp
│       │   │   │   │   ├── mixingtypes.cpp
│       │   │   │   │   ├── mpl2only.cpp
│       │   │   │   │   ├── nestbyvalue.cpp
│       │   │   │   │   ├── nesting_ops.cpp
│       │   │   │   │   ├── nomalloc.cpp
│       │   │   │   │   ├── nullary.cpp
│       │   │   │   │   ├── num_dimensions.cpp
│       │   │   │   │   ├── numext.cpp
│       │   │   │   │   ├── packetmath.cpp
│       │   │   │   │   ├── packetmath_test_shared.h
│       │   │   │   │   ├── pardiso_support.cpp
│       │   │   │   │   ├── pastix_support.cpp
│       │   │   │   │   ├── permutationmatrices.cpp
│       │   │   │   │   ├── prec_inverse_4x4.cpp
│       │   │   │   │   ├── product.h
│       │   │   │   │   ├── product_extra.cpp
│       │   │   │   │   ├── product_large.cpp
│       │   │   │   │   ├── product_mmtr.cpp
│       │   │   │   │   ├── product_notemporary.cpp
│       │   │   │   │   ├── product_selfadjoint.cpp
│       │   │   │   │   ├── product_small.cpp
│       │   │   │   │   ├── product_symm.cpp
│       │   │   │   │   ├── product_syrk.cpp
│       │   │   │   │   ├── product_trmm.cpp
│       │   │   │   │   ├── product_trmv.cpp
│       │   │   │   │   ├── product_trsolve.cpp
│       │   │   │   │   ├── qr.cpp
│       │   │   │   │   ├── qr_colpivoting.cpp
│       │   │   │   │   ├── qr_fullpivoting.cpp
│       │   │   │   │   ├── qtvector.cpp
│       │   │   │   │   ├── rand.cpp
│       │   │   │   │   ├── random_matrix.cpp
│       │   │   │   │   ├── random_matrix_helper.h
│       │   │   │   │   ├── random_without_cast_overflow.h
│       │   │   │   │   ├── real_qz.cpp
│       │   │   │   │   ├── redux.cpp
│       │   │   │   │   ├── ref.cpp
│       │   │   │   │   ├── reshape.cpp
│       │   │   │   │   ├── resize.cpp
│       │   │   │   │   ├── rvalue_types.cpp
│       │   │   │   │   ├── schur_complex.cpp
│       │   │   │   │   ├── schur_real.cpp
│       │   │   │   │   ├── selfadjoint.cpp
│       │   │   │   │   ├── serializer.cpp
│       │   │   │   │   ├── simplicial_cholesky.cpp
│       │   │   │   │   ├── sizeof.cpp
│       │   │   │   │   ├── sizeoverflow.cpp
│       │   │   │   │   ├── smallvectors.cpp
│       │   │   │   │   ├── solverbase.h
│       │   │   │   │   ├── sparse.h
│       │   │   │   │   ├── sparseLM.cpp
│       │   │   │   │   ├── sparse_basic.cpp
│       │   │   │   │   ├── sparse_block.cpp
│       │   │   │   │   ├── sparse_permutations.cpp
│       │   │   │   │   ├── sparse_product.cpp
│       │   │   │   │   ├── sparse_ref.cpp
│       │   │   │   │   ├── sparse_solver.h
│       │   │   │   │   ├── sparse_solvers.cpp
│       │   │   │   │   ├── sparse_vector.cpp
│       │   │   │   │   ├── sparselu.cpp
│       │   │   │   │   ├── sparseqr.cpp
│       │   │   │   │   ├── special_numbers.cpp
│       │   │   │   │   ├── split_test_helper.h
│       │   │   │   │   ├── spqr_support.cpp
│       │   │   │   │   ├── stable_norm.cpp
│       │   │   │   │   ├── stddeque.cpp
│       │   │   │   │   ├── stddeque_overload.cpp
│       │   │   │   │   ├── stdlist.cpp
│       │   │   │   │   ├── stdlist_overload.cpp
│       │   │   │   │   ├── stdvector.cpp
│       │   │   │   │   ├── stdvector_overload.cpp
│       │   │   │   │   ├── stl_iterators.cpp
│       │   │   │   │   ├── superlu_support.cpp
│       │   │   │   │   ├── svd_common.h
│       │   │   │   │   ├── svd_fill.h
│       │   │   │   │   ├── swap.cpp
│       │   │   │   │   ├── symbolic_index.cpp
│       │   │   │   │   ├── triangular.cpp
│       │   │   │   │   ├── tuple_test.cpp
│       │   │   │   │   ├── type_alias.cpp
│       │   │   │   │   ├── umeyama.cpp
│       │   │   │   │   ├── umfpack_support.cpp
│       │   │   │   │   ├── unalignedcount.cpp
│       │   │   │   │   ├── upperbidiagonalization.cpp
│       │   │   │   │   ├── vectorization_logic.cpp
│       │   │   │   │   ├── vectorwiseop.cpp
│       │   │   │   │   ├── visitor.cpp
│       │   │   │   │   └── zerosized.cpp
│       │   │   │   └── unsupported/
│       │   │   │       ├── Eigen/
│       │   │   │       │   ├── AdolcForward
│       │   │   │       │   ├── AlignedVector3
│       │   │   │       │   ├── ArpackSupport
│       │   │   │       │   ├── AutoDiff
│       │   │   │       │   ├── BVH
│       │   │   │       │   ├── CXX11/
│       │   │   │       │   │   ├── Tensor
│       │   │   │       │   │   ├── TensorSymmetry
│       │   │   │       │   │   ├── ThreadPool
│       │   │   │       │   │   └── src/
│       │   │   │       │   │       ├── Tensor/
│       │   │   │       │   │       │   ├── InternalHeaderCheck.h
│       │   │   │       │   │       │   ├── README.md
│       │   │   │       │   │       │   ├── Tensor.h
│       │   │   │       │   │       │   ├── TensorArgMax.h
│       │   │   │       │   │       │   ├── TensorAssign.h
│       │   │   │       │   │       │   ├── TensorBase.h
│       │   │   │       │   │       │   ├── TensorBlock.h
│       │   │   │       │   │       │   ├── TensorBroadcasting.h
│       │   │   │       │   │       │   ├── TensorChipping.h
│       │   │   │       │   │       │   ├── TensorConcatenation.h
│       │   │   │       │   │       │   ├── TensorContraction.h
│       │   │   │       │   │       │   ├── TensorContractionBlocking.h
│       │   │   │       │   │       │   ├── TensorContractionCuda.h
│       │   │   │       │   │       │   ├── TensorContractionGpu.h
│       │   │   │       │   │       │   ├── TensorContractionMapper.h
│       │   │   │       │   │       │   ├── TensorContractionSycl.h
│       │   │   │       │   │       │   ├── TensorContractionThreadPool.h
│       │   │   │       │   │       │   ├── TensorConversion.h
│       │   │   │       │   │       │   ├── TensorConvolution.h
│       │   │   │       │   │       │   ├── TensorConvolutionSycl.h
│       │   │   │       │   │       │   ├── TensorCostModel.h
│       │   │   │       │   │       │   ├── TensorCustomOp.h
│       │   │   │       │   │       │   ├── TensorDevice.h
│       │   │   │       │   │       │   ├── TensorDeviceCuda.h
│       │   │   │       │   │       │   ├── TensorDeviceDefault.h
│       │   │   │       │   │       │   ├── TensorDeviceGpu.h
│       │   │   │       │   │       │   ├── TensorDeviceSycl.h
│       │   │   │       │   │       │   ├── TensorDeviceThreadPool.h
│       │   │   │       │   │       │   ├── TensorDimensionList.h
│       │   │   │       │   │       │   ├── TensorDimensions.h
│       │   │   │       │   │       │   ├── TensorEvalTo.h
│       │   │   │       │   │       │   ├── TensorEvaluator.h
│       │   │   │       │   │       │   ├── TensorExecutor.h
│       │   │   │       │   │       │   ├── TensorExpr.h
│       │   │   │       │   │       │   ├── TensorFFT.h
│       │   │   │       │   │       │   ├── TensorFixedSize.h
│       │   │   │       │   │       │   ├── TensorForcedEval.h
│       │   │   │       │   │       │   ├── TensorForwardDeclarations.h
│       │   │   │       │   │       │   ├── TensorFunctors.h
│       │   │   │       │   │       │   ├── TensorGenerator.h
│       │   │   │       │   │       │   ├── TensorGlobalFunctions.h
│       │   │   │       │   │       │   ├── TensorGpuHipCudaDefines.h
│       │   │   │       │   │       │   ├── TensorGpuHipCudaUndefines.h
│       │   │   │       │   │       │   ├── TensorIO.h
│       │   │   │       │   │       │   ├── TensorImagePatch.h
│       │   │   │       │   │       │   ├── TensorIndexList.h
│       │   │   │       │   │       │   ├── TensorInflation.h
│       │   │   │       │   │       │   ├── TensorInitializer.h
│       │   │   │       │   │       │   ├── TensorIntDiv.h
│       │   │   │       │   │       │   ├── TensorLayoutSwap.h
│       │   │   │       │   │       │   ├── TensorMacros.h
│       │   │   │       │   │       │   ├── TensorMap.h
│       │   │   │       │   │       │   ├── TensorMeta.h
│       │   │   │       │   │       │   ├── TensorMorphing.h
│       │   │   │       │   │       │   ├── TensorPadding.h
│       │   │   │       │   │       │   ├── TensorPatch.h
│       │   │   │       │   │       │   ├── TensorRandom.h
│       │   │   │       │   │       │   ├── TensorReduction.h
│       │   │   │       │   │       │   ├── TensorReductionGpu.h
│       │   │   │       │   │       │   ├── TensorReductionSycl.h
│       │   │   │       │   │       │   ├── TensorRef.h
│       │   │   │       │   │       │   ├── TensorReverse.h
│       │   │   │       │   │       │   ├── TensorScan.h
│       │   │   │       │   │       │   ├── TensorScanSycl.h
│       │   │   │       │   │       │   ├── TensorShuffling.h
│       │   │   │       │   │       │   ├── TensorStorage.h
│       │   │   │       │   │       │   ├── TensorStriding.h
│       │   │   │       │   │       │   ├── TensorTrace.h
│       │   │   │       │   │       │   ├── TensorTraits.h
│       │   │   │       │   │       │   ├── TensorUInt128.h
│       │   │   │       │   │       │   └── TensorVolumePatch.h
│       │   │   │       │   │       ├── TensorSymmetry/
│       │   │   │       │   │       │   ├── DynamicSymmetry.h
│       │   │   │       │   │       │   ├── InternalHeaderCheck.h
│       │   │   │       │   │       │   ├── StaticSymmetry.h
│       │   │   │       │   │       │   ├── Symmetry.h
│       │   │   │       │   │       │   └── util/
│       │   │   │       │   │       │       └── TemplateGroupTheory.h
│       │   │   │       │   │       ├── ThreadPool/
│       │   │   │       │   │       │   ├── Barrier.h
│       │   │   │       │   │       │   ├── EventCount.h
│       │   │   │       │   │       │   ├── InternalHeaderCheck.h
│       │   │   │       │   │       │   ├── NonBlockingThreadPool.h
│       │   │   │       │   │       │   ├── RunQueue.h
│       │   │   │       │   │       │   ├── ThreadCancel.h
│       │   │   │       │   │       │   ├── ThreadEnvironment.h
│       │   │   │       │   │       │   ├── ThreadLocal.h
│       │   │   │       │   │       │   ├── ThreadPoolInterface.h
│       │   │   │       │   │       │   └── ThreadYield.h
│       │   │   │       │   │       └── util/
│       │   │   │       │   │           ├── CXX11Meta.h
│       │   │   │       │   │           ├── CXX11Workarounds.h
│       │   │   │       │   │           ├── EmulateArray.h
│       │   │   │       │   │           └── MaxSizeVector.h
│       │   │   │       │   ├── EulerAngles
│       │   │   │       │   ├── FFT
│       │   │   │       │   ├── IterativeSolvers
│       │   │   │       │   ├── KroneckerProduct
│       │   │   │       │   ├── LevenbergMarquardt
│       │   │   │       │   ├── MPRealSupport
│       │   │   │       │   ├── MatrixFunctions
│       │   │   │       │   ├── MoreVectorization
│       │   │   │       │   ├── NonLinearOptimization
│       │   │   │       │   ├── NumericalDiff
│       │   │   │       │   ├── OpenGLSupport
│       │   │   │       │   ├── Polynomials
│       │   │   │       │   ├── Skyline
│       │   │   │       │   ├── SparseExtra
│       │   │   │       │   ├── SpecialFunctions
│       │   │   │       │   ├── Splines
│       │   │   │       │   └── src/
│       │   │   │       │       ├── AutoDiff/
│       │   │   │       │       │   ├── AutoDiffJacobian.h
│       │   │   │       │       │   ├── AutoDiffScalar.h
│       │   │   │       │       │   ├── AutoDiffVector.h
│       │   │   │       │       │   └── InternalHeaderCheck.h
│       │   │   │       │       ├── BVH/
│       │   │   │       │       │   ├── BVAlgorithms.h
│       │   │   │       │       │   ├── InternalHeaderCheck.h
│       │   │   │       │       │   └── KdBVH.h
│       │   │   │       │       ├── Eigenvalues/
│       │   │   │       │       │   ├── ArpackSelfAdjointEigenSolver.h
│       │   │   │       │       │   └── InternalHeaderCheck.h
│       │   │   │       │       ├── EulerAngles/
│       │   │   │       │       │   ├── EulerAngles.h
│       │   │   │       │       │   ├── EulerSystem.h
│       │   │   │       │       │   └── InternalHeaderCheck.h
│       │   │   │       │       ├── FFT/
│       │   │   │       │       │   ├── InternalHeaderCheck.h
│       │   │   │       │       │   ├── ei_fftw_impl.h
│       │   │   │       │       │   └── ei_kissfft_impl.h
│       │   │   │       │       ├── IterativeSolvers/
│       │   │   │       │       │   ├── ConstrainedConjGrad.h
│       │   │   │       │       │   ├── DGMRES.h
│       │   │   │       │       │   ├── GMRES.h
│       │   │   │       │       │   ├── IDRS.h
│       │   │   │       │       │   ├── IncompleteLU.h
│       │   │   │       │       │   ├── InternalHeaderCheck.h
│       │   │   │       │       │   ├── IterationController.h
│       │   │   │       │       │   ├── MINRES.h
│       │   │   │       │       │   └── Scaling.h
│       │   │   │       │       ├── KroneckerProduct/
│       │   │   │       │       │   ├── InternalHeaderCheck.h
│       │   │   │       │       │   └── KroneckerTensorProduct.h
│       │   │   │       │       ├── LevenbergMarquardt/
│       │   │   │       │       │   ├── InternalHeaderCheck.h
│       │   │   │       │       │   ├── LMcovar.h
│       │   │   │       │       │   ├── LMonestep.h
│       │   │   │       │       │   ├── LMpar.h
│       │   │   │       │       │   ├── LMqrsolv.h
│       │   │   │       │       │   └── LevenbergMarquardt.h
│       │   │   │       │       ├── MatrixFunctions/
│       │   │   │       │       │   ├── InternalHeaderCheck.h
│       │   │   │       │       │   ├── MatrixExponential.h
│       │   │   │       │       │   ├── MatrixFunction.h
│       │   │   │       │       │   ├── MatrixLogarithm.h
│       │   │   │       │       │   ├── MatrixPower.h
│       │   │   │       │       │   ├── MatrixSquareRoot.h
│       │   │   │       │       │   └── StemFunction.h
│       │   │   │       │       ├── MoreVectorization/
│       │   │   │       │       │   ├── InternalHeaderCheck.h
│       │   │   │       │       │   └── MathFunctions.h
│       │   │   │       │       ├── NonLinearOptimization/
│       │   │   │       │       │   ├── HybridNonLinearSolver.h
│       │   │   │       │       │   ├── InternalHeaderCheck.h
│       │   │   │       │       │   ├── LevenbergMarquardt.h
│       │   │   │       │       │   ├── chkder.h
│       │   │   │       │       │   ├── covar.h
│       │   │   │       │       │   ├── dogleg.h
│       │   │   │       │       │   ├── fdjac1.h
│       │   │   │       │       │   ├── lmpar.h
│       │   │   │       │       │   ├── qrsolv.h
│       │   │   │       │       │   ├── r1mpyq.h
│       │   │   │       │       │   ├── r1updt.h
│       │   │   │       │       │   └── rwupdt.h
│       │   │   │       │       ├── NumericalDiff/
│       │   │   │       │       │   ├── InternalHeaderCheck.h
│       │   │   │       │       │   └── NumericalDiff.h
│       │   │   │       │       ├── Polynomials/
│       │   │   │       │       │   ├── Companion.h
│       │   │   │       │       │   ├── InternalHeaderCheck.h
│       │   │   │       │       │   ├── PolynomialSolver.h
│       │   │   │       │       │   └── PolynomialUtils.h
│       │   │   │       │       ├── Skyline/
│       │   │   │       │       │   ├── InternalHeaderCheck.h
│       │   │   │       │       │   ├── SkylineInplaceLU.h
│       │   │   │       │       │   ├── SkylineMatrix.h
│       │   │   │       │       │   ├── SkylineMatrixBase.h
│       │   │   │       │       │   ├── SkylineProduct.h
│       │   │   │       │       │   ├── SkylineStorage.h
│       │   │   │       │       │   └── SkylineUtil.h
│       │   │   │       │       ├── SparseExtra/
│       │   │   │       │       │   ├── BlockSparseMatrix.h
│       │   │   │       │       │   ├── InternalHeaderCheck.h
│       │   │   │       │       │   ├── MarketIO.h
│       │   │   │       │       │   ├── MatrixMarketIterator.h
│       │   │   │       │       │   └── RandomSetter.h
│       │   │   │       │       ├── SpecialFunctions/
│       │   │   │       │       │   ├── BesselFunctionsArrayAPI.h
│       │   │   │       │       │   ├── BesselFunctionsBFloat16.h
│       │   │   │       │       │   ├── BesselFunctionsFunctors.h
│       │   │   │       │       │   ├── BesselFunctionsHalf.h
│       │   │   │       │       │   ├── BesselFunctionsImpl.h
│       │   │   │       │       │   ├── BesselFunctionsPacketMath.h
│       │   │   │       │       │   ├── HipVectorCompatibility.h
│       │   │   │       │       │   ├── InternalHeaderCheck.h
│       │   │   │       │       │   ├── SpecialFunctionsArrayAPI.h
│       │   │   │       │       │   ├── SpecialFunctionsBFloat16.h
│       │   │   │       │       │   ├── SpecialFunctionsFunctors.h
│       │   │   │       │       │   ├── SpecialFunctionsHalf.h
│       │   │   │       │       │   ├── SpecialFunctionsImpl.h
│       │   │   │       │       │   ├── SpecialFunctionsPacketMath.h
│       │   │   │       │       │   └── arch/
│       │   │   │       │       │       ├── AVX/
│       │   │   │       │       │       │   ├── BesselFunctions.h
│       │   │   │       │       │       │   └── SpecialFunctions.h
│       │   │   │       │       │       ├── AVX512/
│       │   │   │       │       │       │   ├── BesselFunctions.h
│       │   │   │       │       │       │   └── SpecialFunctions.h
│       │   │   │       │       │       ├── GPU/
│       │   │   │       │       │       │   └── SpecialFunctions.h
│       │   │   │       │       │       └── NEON/
│       │   │   │       │       │           ├── BesselFunctions.h
│       │   │   │       │       │           └── SpecialFunctions.h
│       │   │   │       │       └── Splines/
│       │   │   │       │           ├── InternalHeaderCheck.h
│       │   │   │       │           ├── Spline.h
│       │   │   │       │           ├── SplineFitting.h
│       │   │   │       │           └── SplineFwd.h
│       │   │   │       ├── bench/
│       │   │   │       │   └── bench_svd.cpp
│       │   │   │       ├── doc/
│       │   │   │       │   ├── Overview.dox
│       │   │   │       │   ├── SYCL.dox
│       │   │   │       │   ├── eigendoxy_layout.xml.in
│       │   │   │       │   └── examples/
│       │   │   │       │       ├── BVH_Example.cpp
│       │   │   │       │       ├── EulerAngles.cpp
│       │   │   │       │       ├── FFT.cpp
│       │   │   │       │       ├── MatrixExponential.cpp
│       │   │   │       │       ├── MatrixFunction.cpp
│       │   │   │       │       ├── MatrixLogarithm.cpp
│       │   │   │       │       ├── MatrixPower.cpp
│       │   │   │       │       ├── MatrixPower_optimal.cpp
│       │   │   │       │       ├── MatrixSine.cpp
│       │   │   │       │       ├── MatrixSinh.cpp
│       │   │   │       │       ├── MatrixSquareRoot.cpp
│       │   │   │       │       ├── PolynomialSolver1.cpp
│       │   │   │       │       ├── PolynomialUtils1.cpp
│       │   │   │       │       └── SYCL/
│       │   │   │       │           └── CwiseMul.cpp
│       │   │   │       └── test/
│       │   │   │           ├── BVH.cpp
│       │   │   │           ├── EulerAngles.cpp
│       │   │   │           ├── FFT.cpp
│       │   │   │           ├── FFTW.cpp
│       │   │   │           ├── NonLinearOptimization.cpp
│       │   │   │           ├── NumericalDiff.cpp
│       │   │   │           ├── alignedvector3.cpp
│       │   │   │           ├── autodiff.cpp
│       │   │   │           ├── autodiff_scalar.cpp
│       │   │   │           ├── bessel_functions.cpp
│       │   │   │           ├── cxx11_eventcount.cpp
│       │   │   │           ├── cxx11_maxsizevector.cpp
│       │   │   │           ├── cxx11_meta.cpp
│       │   │   │           ├── cxx11_non_blocking_thread_pool.cpp
│       │   │   │           ├── cxx11_runqueue.cpp
│       │   │   │           ├── cxx11_tensor_argmax.cpp
│       │   │   │           ├── cxx11_tensor_argmax_gpu.cu
│       │   │   │           ├── cxx11_tensor_argmax_sycl.cpp
│       │   │   │           ├── cxx11_tensor_assign.cpp
│       │   │   │           ├── cxx11_tensor_block_access.cpp
│       │   │   │           ├── cxx11_tensor_block_eval.cpp
│       │   │   │           ├── cxx11_tensor_block_io.cpp
│       │   │   │           ├── cxx11_tensor_broadcast_sycl.cpp
│       │   │   │           ├── cxx11_tensor_broadcasting.cpp
│       │   │   │           ├── cxx11_tensor_builtins_sycl.cpp
│       │   │   │           ├── cxx11_tensor_cast_float16_gpu.cu
│       │   │   │           ├── cxx11_tensor_casts.cpp
│       │   │   │           ├── cxx11_tensor_chipping.cpp
│       │   │   │           ├── cxx11_tensor_chipping_sycl.cpp
│       │   │   │           ├── cxx11_tensor_comparisons.cpp
│       │   │   │           ├── cxx11_tensor_complex_cwise_ops_gpu.cu
│       │   │   │           ├── cxx11_tensor_complex_gpu.cu
│       │   │   │           ├── cxx11_tensor_concatenation.cpp
│       │   │   │           ├── cxx11_tensor_concatenation_sycl.cpp
│       │   │   │           ├── cxx11_tensor_const.cpp
│       │   │   │           ├── cxx11_tensor_contract_gpu.cu
│       │   │   │           ├── cxx11_tensor_contract_sycl.cpp
│       │   │   │           ├── cxx11_tensor_contraction.cpp
│       │   │   │           ├── cxx11_tensor_convolution.cpp
│       │   │   │           ├── cxx11_tensor_convolution_sycl.cpp
│       │   │   │           ├── cxx11_tensor_custom_index.cpp
│       │   │   │           ├── cxx11_tensor_custom_op.cpp
│       │   │   │           ├── cxx11_tensor_custom_op_sycl.cpp
│       │   │   │           ├── cxx11_tensor_device.cu
│       │   │   │           ├── cxx11_tensor_device_sycl.cpp
│       │   │   │           ├── cxx11_tensor_dimension.cpp
│       │   │   │           ├── cxx11_tensor_empty.cpp
│       │   │   │           ├── cxx11_tensor_executor.cpp
│       │   │   │           ├── cxx11_tensor_expr.cpp
│       │   │   │           ├── cxx11_tensor_fft.cpp
│       │   │   │           ├── cxx11_tensor_fixed_size.cpp
│       │   │   │           ├── cxx11_tensor_forced_eval.cpp
│       │   │   │           ├── cxx11_tensor_forced_eval_sycl.cpp
│       │   │   │           ├── cxx11_tensor_generator.cpp
│       │   │   │           ├── cxx11_tensor_generator_sycl.cpp
│       │   │   │           ├── cxx11_tensor_gpu.cu
│       │   │   │           ├── cxx11_tensor_ifft.cpp
│       │   │   │           ├── cxx11_tensor_image_op_sycl.cpp
│       │   │   │           ├── cxx11_tensor_image_patch.cpp
│       │   │   │           ├── cxx11_tensor_image_patch_sycl.cpp
│       │   │   │           ├── cxx11_tensor_index_list.cpp
│       │   │   │           ├── cxx11_tensor_inflation.cpp
│       │   │   │           ├── cxx11_tensor_inflation_sycl.cpp
│       │   │   │           ├── cxx11_tensor_intdiv.cpp
│       │   │   │           ├── cxx11_tensor_io.cpp
│       │   │   │           ├── cxx11_tensor_layout_swap.cpp
│       │   │   │           ├── cxx11_tensor_layout_swap_sycl.cpp
│       │   │   │           ├── cxx11_tensor_lvalue.cpp
│       │   │   │           ├── cxx11_tensor_map.cpp
│       │   │   │           ├── cxx11_tensor_math.cpp
│       │   │   │           ├── cxx11_tensor_math_sycl.cpp
│       │   │   │           ├── cxx11_tensor_mixed_indices.cpp
│       │   │   │           ├── cxx11_tensor_morphing.cpp
│       │   │   │           ├── cxx11_tensor_morphing_sycl.cpp
│       │   │   │           ├── cxx11_tensor_move.cpp
│       │   │   │           ├── cxx11_tensor_notification.cpp
│       │   │   │           ├── cxx11_tensor_of_bfloat16_gpu.cu
│       │   │   │           ├── cxx11_tensor_of_complex.cpp
│       │   │   │           ├── cxx11_tensor_of_const_values.cpp
│       │   │   │           ├── cxx11_tensor_of_float16_gpu.cu
│       │   │   │           ├── cxx11_tensor_of_strings.cpp
│       │   │   │           ├── cxx11_tensor_padding.cpp
│       │   │   │           ├── cxx11_tensor_padding_sycl.cpp
│       │   │   │           ├── cxx11_tensor_patch.cpp
│       │   │   │           ├── cxx11_tensor_patch_sycl.cpp
│       │   │   │           ├── cxx11_tensor_random.cpp
│       │   │   │           ├── cxx11_tensor_random_gpu.cu
│       │   │   │           ├── cxx11_tensor_random_sycl.cpp
│       │   │   │           ├── cxx11_tensor_reduction.cpp
│       │   │   │           ├── cxx11_tensor_reduction_gpu.cu
│       │   │   │           ├── cxx11_tensor_reduction_sycl.cpp
│       │   │   │           ├── cxx11_tensor_ref.cpp
│       │   │   │           ├── cxx11_tensor_reverse.cpp
│       │   │   │           ├── cxx11_tensor_reverse_sycl.cpp
│       │   │   │           ├── cxx11_tensor_roundings.cpp
│       │   │   │           ├── cxx11_tensor_scan.cpp
│       │   │   │           ├── cxx11_tensor_scan_gpu.cu
│       │   │   │           ├── cxx11_tensor_scan_sycl.cpp
│       │   │   │           ├── cxx11_tensor_shuffling.cpp
│       │   │   │           ├── cxx11_tensor_shuffling_sycl.cpp
│       │   │   │           ├── cxx11_tensor_simple.cpp
│       │   │   │           ├── cxx11_tensor_striding.cpp
│       │   │   │           ├── cxx11_tensor_striding_sycl.cpp
│       │   │   │           ├── cxx11_tensor_sugar.cpp
│       │   │   │           ├── cxx11_tensor_sycl.cpp
│       │   │   │           ├── cxx11_tensor_symmetry.cpp
│       │   │   │           ├── cxx11_tensor_thread_local.cpp
│       │   │   │           ├── cxx11_tensor_thread_pool.cpp
│       │   │   │           ├── cxx11_tensor_trace.cpp
│       │   │   │           ├── cxx11_tensor_uint128.cpp
│       │   │   │           ├── cxx11_tensor_volume_patch.cpp
│       │   │   │           ├── cxx11_tensor_volume_patch_sycl.cpp
│       │   │   │           ├── dgmres.cpp
│       │   │   │           ├── forward_adolc.cpp
│       │   │   │           ├── gmres.cpp
│       │   │   │           ├── idrs.cpp
│       │   │   │           ├── kronecker_product.cpp
│       │   │   │           ├── levenberg_marquardt.cpp
│       │   │   │           ├── matrix_exponential.cpp
│       │   │   │           ├── matrix_function.cpp
│       │   │   │           ├── matrix_functions.h
│       │   │   │           ├── matrix_power.cpp
│       │   │   │           ├── matrix_square_root.cpp
│       │   │   │           ├── minres.cpp
│       │   │   │           ├── mpreal_support.cpp
│       │   │   │           ├── openglsupport.cpp
│       │   │   │           ├── polynomialsolver.cpp
│       │   │   │           ├── polynomialutils.cpp
│       │   │   │           ├── sparse_extra.cpp
│       │   │   │           ├── special_functions.cpp
│       │   │   │           ├── special_packetmath.cpp
│       │   │   │           └── splines.cpp
│       │   │   └── pcg32/
│       │   │       └── pcg32.h
│       │   ├── pybind_api.h
│       │   ├── ray_sampler_header.h
│       │   └── raymarch_shared.h
│       ├── setup.py
│       └── src/
│           ├── calc_rgb.cu
│           ├── compacted_coord.cu
│           ├── ema_grid_samples_nerf.cu
│           ├── generate_grid_samples_nerf_nonuniform.cu
│           ├── mark_untrained_density_grid.cu
│           ├── pybind_api.cu
│           ├── ray_sampler.cu
│           ├── splat_grid_samples_nerf_max_nearest_neighbor.cu
│           └── update_bitfield.cu
├── requirements.txt
├── run_nerf.py
├── setup.py
├── test/
│   ├── apis/
│   │   └── test_helper.py
│   ├── datasets/
│   │   ├── data/
│   │   │   └── nerf_synthetic/
│   │   │       └── lego/
│   │   │           ├── transforms_test.json
│   │   │           ├── transforms_train.json
│   │   │           └── transforms_val.json
│   │   ├── test_dataset.py
│   │   ├── test_load.py
│   │   └── test_pipeline.py
│   └── models/
│       ├── animatable_nerf/
│       │   ├── test_an_network.py
│       │   ├── test_an_render.py
│       │   ├── test_deform_mlps.py
│       │   └── test_human_mlps.py
│       ├── gnr/
│       │   ├── test_gnr_mlps.py
│       │   └── test_gnr_network.py
│       ├── hashnerf/
│       │   └── test_hashnerf_network.py
│       ├── mipnerf/
│       │   └── test_mipnerf_network.py
│       ├── nerf/
│       │   ├── test_nerf_embedder.py
│       │   ├── test_nerf_mlps.py
│       │   ├── test_nerf_network.py
│       │   └── test_nerf_render.py
│       └── neuralbody/
│           ├── test_nb_embedder.py
│           ├── test_nb_mlps.py
│           ├── test_nb_network.py
│           └── test_nb_render.py
├── tools/
│   └── convert_blender_data.py
├── train.sh
├── train_mvs.sh
└── xrnerf/
    ├── core/
    │   ├── __init__.py
    │   ├── apis/
    │   │   ├── __init__.py
    │   │   ├── api.py
    │   │   ├── helper.py
    │   │   ├── test.py
    │   │   └── train.py
    │   ├── hooks/
    │   │   ├── __init__.py
    │   │   ├── build_occupancy_tree_hook.py
    │   │   ├── distill_cycle_hook.py
    │   │   ├── hash_hook.py
    │   │   ├── save_distill_results_hook.py
    │   │   ├── test_hooks.py
    │   │   ├── train_hooks.py
    │   │   ├── utils.py
    │   │   └── validation_hooks.py
    │   └── runner/
    │       ├── __init__.py
    │       ├── base.py
    │       ├── bungeenerf_runner.py
    │       └── kilonerf_runner.py
    ├── datasets/
    │   ├── __init__.py
    │   ├── aninerf_dataset.py
    │   ├── base.py
    │   ├── builder.py
    │   ├── bungee_dataset.py
    │   ├── genebody_dataset.py
    │   ├── hashnerf_dataset.py
    │   ├── kilonerf_dataset.py
    │   ├── kilonerf_node_dataset.py
    │   ├── load_data/
    │   │   ├── __init__.py
    │   │   ├── get_rays.py
    │   │   ├── load.py
    │   │   ├── load_LINEMOD.py
    │   │   ├── load_blender.py
    │   │   ├── load_deepvoxels.py
    │   │   ├── load_llff.py
    │   │   ├── load_multiscale.py
    │   │   ├── load_multiscale_google.py
    │   │   └── load_nsvf_dataset.py
    │   ├── mip_multiscale_dataset.py
    │   ├── neuralbody_dataset.py
    │   ├── pipelines/
    │   │   ├── __init__.py
    │   │   ├── augment.py
    │   │   ├── compose.py
    │   │   ├── create.py
    │   │   └── transforms.py
    │   ├── samplers/
    │   │   ├── __init__.py
    │   │   └── distributed_sampler.py
    │   ├── scene_dataset.py
    │   └── utils/
    │       ├── __init__.py
    │       ├── aninerf.py
    │       ├── flatten.py
    │       ├── genebody.py
    │       ├── hashnerf.py
    │       └── novel_view.py
    ├── models/
    │   ├── __init__.py
    │   ├── builder.py
    │   ├── embedders/
    │   │   ├── __init__.py
    │   │   ├── base.py
    │   │   ├── bungee_embedder.py
    │   │   ├── gnr_embedder.py
    │   │   ├── kilonerf_fourier_embedder.py
    │   │   ├── mipnerf_embedder.py
    │   │   └── neuralbody_embedder.py
    │   ├── mlps/
    │   │   ├── __init__.py
    │   │   ├── aninerf_mlp.py
    │   │   ├── base.py
    │   │   ├── bungeenerf_mlp.py
    │   │   ├── gnr_mlp.py
    │   │   ├── hashnerf_mlp.py
    │   │   ├── kilonerf_mlp.py
    │   │   ├── kilonerf_multinet.py
    │   │   ├── multi_modules.py
    │   │   ├── nb_mlp.py
    │   │   └── nerf_mlp.py
    │   ├── networks/
    │   │   ├── __init__.py
    │   │   ├── aninerf.py
    │   │   ├── base.py
    │   │   ├── bungeenerf.py
    │   │   ├── gnr.py
    │   │   ├── hashnerf.py
    │   │   ├── kilonerf.py
    │   │   ├── mipnerf.py
    │   │   ├── nerf.py
    │   │   ├── neuralbody.py
    │   │   ├── student_nerf.py
    │   │   └── utils/
    │   │       ├── __init__.py
    │   │       ├── aninerf.py
    │   │       ├── batching.py
    │   │       ├── gnr.py
    │   │       ├── hierarchical_sample.py
    │   │       ├── metrics.py
    │   │       ├── mip.py
    │   │       └── transforms.py
    │   ├── renders/
    │   │   ├── __init__.py
    │   │   ├── base.py
    │   │   ├── bungeenerf_render.py
    │   │   ├── gnr_render.py
    │   │   ├── hashnerf_render.py
    │   │   ├── kilonerf_simple_render.py
    │   │   ├── mipnerf_render.py
    │   │   └── nerf_render.py
    │   └── samplers/
    │       ├── __init__.py
    │       ├── ngp_grid_sampler.py
    │       └── utils/
    │           ├── __init__.py
    │           ├── compacted_coords.py
    │           ├── ema_grid_samples_nerf.py
    │           ├── generate_grid_samples_nerf_nonuniform.py
    │           ├── mark_untrained_density_grid.py
    │           ├── rays_sampler.py
    │           ├── splat_grid_samples_nerf_max_nearest_neighbor.py
    │           └── update_bitfield.py
    └── utils/
        ├── __init__.py
        ├── data_helper.py
        └── logger.py
Download .txt
Showing preview only (992K chars total). Download the full file or copy to clipboard to get everything.
SYMBOL INDEX (10809 symbols across 1192 files)

FILE: configs/__init__.py
  function load_configs (line 4) | def load_configs(name):

FILE: extensions/mesh_grid/mesh_grid.cpp
  function insert_grid_surface (line 32) | at::Tensor insert_grid_surface(
  function search_nearest_point (line 46) | void search_nearest_point(
  function search_inside_mesh (line 66) | void search_inside_mesh(
  function search_intersect (line 84) | void search_intersect (
  function cumsum (line 103) | at::Tensor cumsum(
  function PYBIND11_MODULE (line 113) | PYBIND11_MODULE(TORCH_EXTENSION_NAME, m) {

FILE: extensions/mesh_grid/mesh_grid_searcher.py
  class MeshGridSearcher (line 7) | class MeshGridSearcher:
    method __init__ (line 8) | def __init__(self, verts=None, faces=None):
    method set_mesh (line 12) | def set_mesh(self, verts, faces):
    method nearest_points (line 30) | def nearest_points(self, points):
    method inside_mesh (line 42) | def inside_mesh(self, points):
    method intersects_any (line 51) | def intersects_any(self, origins, directions):

FILE: extensions/mesh_grid/render.cpp
  function index (line 19) | index zbuffer_forward_cpu(index h, index w, index n, index f,
  function render_forward (line 34) | std::vector<Tensor> render_forward(Tensor verts, Tensor tri,
  function PYBIND11_MODULE (line 64) | PYBIND11_MODULE(_render, m) {

FILE: extensions/mesh_grid/render.h
  function __device__ (line 13) | static __device__ float atomicMin(float* address, float val) {
  function normalize_coeff (line 109) | bool normalize_coeff(scalar c[3], const scalar uv[2],
  function __host__ (line 137) | __host__ index zbuffer_forward(index h, index w, index n, index f,

FILE: extensions/mesh_grid/surface_inside.cpp
  function index (line 21) | index surface_inside_cpu(index n, index d, index m, char *inside,
  function surface_inside (line 59) | torch::Tensor surface_inside(torch::Tensor points,
  function PYBIND11_MODULE (line 139) | PYBIND11_MODULE(surface_inside, m) {

FILE: extensions/ngp_raymarch/include/op_include/eigen/Eigen/src/Cholesky/LDLT.h
  function namespace (line 18) | namespace Eigen {
  type SolverBase (line 66) | typedef SolverBase<LDLT> Base;
  function enum (line 69) | EIGEN_GENERIC_PUBLIC_INTERFACE(LDLT)
  type Matrix (line 75) | typedef Matrix<Scalar, RowsAtCompileTime, 1, 0, MaxRowsAtCompileTime, 1>...
  type Transpositions (line 77) | typedef Transpositions<RowsAtCompileTime, MaxRowsAtCompileTime> Transpos...
  type PermutationMatrix (line 78) | typedef PermutationMatrix<RowsAtCompileTime, MaxRowsAtCompileTime> Permu...
  type internal (line 80) | typedef internal::LDLT_Traits<MatrixType,UpLo> Traits;
  function setZero (line 145) | void setZero()
  function typename (line 151) | inline typename Traits::MatrixU matrixU() const
  function isNegative (line 187) | inline bool isNegative(void) const
  function MatrixType (line 236) | inline const MatrixType& matrixLDLT() const
  function namespace (line 292) | namespace internal {
  function Upper (line 459) | struct ldlt_inplace<Upper>
  type TriangularView (line 479) | typedef const TriangularView<const typename
  function MatrixL (line 480) | static inline MatrixL getL(const MatrixType& m) { return MatrixL(m); }
  function MatrixU (line 481) | static inline MatrixU getU(const MatrixType& m) { return MatrixU(m.adjoi...
  type TriangularView (line 487) | typedef const TriangularView<const MatrixType, UnitUpper> MatrixU;
  function MatrixL (line 488) | static inline MatrixL getL(const MatrixType& m) { return MatrixL(m.adjoi...
  function MatrixU (line 489) | static inline MatrixU getU(const MatrixType& m) { return MatrixU(m); }
  type typename (line 538) | typedef typename TranspositionType::StorageIndex IndexType;

FILE: extensions/ngp_raymarch/include/op_include/eigen/Eigen/src/Cholesky/LLT.h
  function namespace (line 15) | namespace Eigen {
  type SolverBase (line 73) | typedef SolverBase<LLT> Base;
  function enum (line 76) | EIGEN_GENERIC_PUBLIC_INTERFACE(LLT)
  type internal (line 87) | typedef internal::LLT_Traits<MatrixType,UpLo> Traits;
  function explicit (line 103) | explicit LLT(Index size) : m_matrix(size, size),
  function typename (line 130) | inline typename Traits::MatrixU matrixU() const
  function MatrixType (line 179) | inline const MatrixType& matrixLLT() const
  function namespace (line 234) | namespace internal {
  type typename (line 378) | typedef typename NumTraits<Scalar>::Real RealScalar;
  type TriangularView (line 403) | typedef const TriangularView<const typename
  function MatrixL (line 404) | static inline MatrixL getL(const MatrixType& m) { return MatrixL(m); }
  function MatrixU (line 405) | static inline MatrixU getU(const MatrixType& m) { return MatrixU(m.adjoi...
  function inplace_decomposition (line 406) | static bool inplace_decomposition(MatrixType& m)
  type TriangularView (line 413) | typedef const TriangularView<const MatrixType, Upper> MatrixU;
  function MatrixL (line 414) | static inline MatrixL getL(const MatrixType& m) { return MatrixL(m.adjoi...
  function MatrixU (line 415) | static inline MatrixU getU(const MatrixType& m) { return MatrixU(m); }
  function inplace_decomposition (line 416) | static bool inplace_decomposition(MatrixType& m)

FILE: extensions/ngp_raymarch/include/op_include/eigen/Eigen/src/Cholesky/LLT_LAPACKE.h
  function namespace (line 38) | namespace Eigen {

FILE: extensions/ngp_raymarch/include/op_include/eigen/Eigen/src/CholmodSupport/CholmodSupport.h
  function namespace (line 15) | namespace Eigen {
  function cholmod_sparse (line 107) | cholmod_sparse viewAsCholmod(const SparseMatrix<Scalar_,Options_,Index_>...
  function cholmod_sparse (line 114) | cholmod_sparse viewAsCholmod(const SparseVector<Scalar_,Options_,Index_>...
  type typename (line 142) | typedef typename Derived::Scalar Scalar;
  function namespace (line 167) | namespace internal {
  type CholmodMode (line 205) | enum CholmodMode {
  type typename (line 225) | typedef typename MatrixType::Scalar Scalar;
  type typename (line 226) | typedef typename MatrixType::RealScalar RealScalar;
  type MatrixType (line 227) | typedef MatrixType CholMatrixType;
  type typename (line 228) | typedef typename MatrixType::StorageIndex StorageIndex;
  function StorageIndex (line 260) | inline StorageIndex cols() const { return internal::convert_index<Storag...
  function analyzePattern (line 288) | void analyzePattern(const MatrixType& matrix)
  function factorize (line 310) | void factorize(const MatrixType& matrix)
  function Scalar (line 393) | Scalar determinant() const
  function Base (line 490) | CholmodSimplicialLLT(const MatrixType& matrix) : Base()
  function Base (line 541) | CholmodSimplicialLDLT(const MatrixType& matrix) : Base()
  function Base (line 590) | CholmodSupernodalLLT(const MatrixType& matrix) : Base()
  function Base (line 641) | CholmodDecomposition(const MatrixType& matrix) : Base()
  function setMode (line 649) | void setMode(CholmodMode mode)

FILE: extensions/ngp_raymarch/include/op_include/eigen/Eigen/src/Core/ArithmeticSequence.h
  function namespace (line 15) | namespace Eigen {
  function namespace (line 404) | namespace indexing {

FILE: extensions/ngp_raymarch/include/op_include/eigen/Eigen/src/Core/Array.h
  function namespace (line 15) | namespace Eigen {
  function enum (line 53) | EIGEN_DENSE_PUBLIC_INTERFACE(Array)

FILE: extensions/ngp_raymarch/include/op_include/eigen/Eigen/src/Core/ArrayBase.h
  function namespace (line 15) | namespace Eigen {

FILE: extensions/ngp_raymarch/include/op_include/eigen/Eigen/src/Core/ArrayWrapper.h
  function namespace (line 15) | namespace Eigen {

FILE: extensions/ngp_raymarch/include/op_include/eigen/Eigen/src/Core/Assign.h
  function namespace (line 17) | namespace Eigen {

FILE: extensions/ngp_raymarch/include/op_include/eigen/Eigen/src/Core/AssignEvaluator.h
  function namespace (line 17) | namespace Eigen {
  function run (line 247) | void run(Kernel& kernel)
  type typename (line 268) | typedef typename Kernel::DstEvaluatorType DstEvaluatorType;
  type typename (line 269) | typedef typename DstEvaluatorType::XprType DstXprType;
  type typename (line 270) | typedef typename Kernel::PacketType PacketType;
  function run (line 279) | void run(Kernel &kernel)
  type typename (line 296) | typedef typename Kernel::PacketType PacketType;
  function run (line 297) | void run(Kernel &kernel, Index outer)
  type typename (line 359) | typedef typename Kernel::DstEvaluatorType::XprType DstXprType;
  type typename (line 369) | typedef typename Kernel::DstEvaluatorType::XprType DstXprType;
  type unaligned_dense_assignment_loop (line 394) | struct unaligned_dense_assignment_loop
  type typename (line 422) | typedef typename Kernel::Scalar Scalar;
  type typename (line 423) | typedef typename Kernel::PacketType PacketType;
  type typename (line 449) | typedef typename Kernel::DstEvaluatorType::XprType DstXprType;
  type typename (line 450) | typedef typename Kernel::PacketType PacketType;
  function run (line 473) | void run(Kernel &kernel)
  type typename (line 489) | typedef typename Kernel::DstEvaluatorType::XprType DstXprType;
  type typename (line 499) | typedef typename Kernel::DstEvaluatorType::XprType DstXprType;
  type typename (line 500) | typedef typename Kernel::AssignmentTraits Traits;
  type typename (line 528) | typedef typename Kernel::DstEvaluatorType::XprType DstXprType;
  type typename (line 542) | typedef typename Kernel::Scalar Scalar;
  type typename (line 543) | typedef typename Kernel::PacketType PacketType;
  type typename (line 590) | typedef typename Kernel::DstEvaluatorType::XprType DstXprType;
  type typename (line 591) | typedef typename Kernel::PacketType PacketType;
  type typename (line 623) | typedef typename SrcEvaluatorTypeT::XprType SrcXprType;
  type SrcEvaluatorTypeT (line 627) | typedef SrcEvaluatorTypeT SrcEvaluatorType;
  type typename (line 628) | typedef typename DstEvaluatorType::Scalar Scalar;
  type copy_using_evaluator_traits (line 629) | typedef copy_using_evaluator_traits<DstEvaluatorTypeT, SrcEvaluatorTypeT...
  type typename (line 630) | typedef typename AssignmentTraits::PacketType PacketType;
  function EIGEN_DEVICE_FUNC (line 649) | EIGEN_DEVICE_FUNC DstEvaluatorType& dstEvaluator() EIGEN_NOEXCEPT { retu...
  function EIGEN_DEVICE_FUNC (line 650) | EIGEN_DEVICE_FUNC const SrcEvaluatorType& srcEvaluator() const EIGEN_NOE...
  function assignCoeff (line 659) | void assignCoeff(Index index)
  function assignCoeffByOuterInner (line 665) | void assignCoeffByOuterInner(Index outer, Index inner)
  function assignPacket (line 674) | void assignPacket(Index row, Index col)
  function assignPacket (line 680) | void assignPacket(Index index)
  function assignPacketByOuterInner (line 686) | void assignPacketByOuterInner(Index outer, Index inner)
  function Index (line 693) | Index rowIndexByOuterInner(Index outer, Index inner)
  function Index (line 702) | Index colIndexByOuterInner(Index outer, Index inner)
  function EIGEN_DEVICE_FUNC (line 711) | EIGEN_DEVICE_FUNC const Scalar* dstDataPtr() const
  type typename (line 735) | typedef typename Base::DstXprType DstXprType;
  type copy_using_evaluator_traits (line 736) | typedef copy_using_evaluator_traits<DstEvaluatorTypeT, SrcEvaluatorTypeT...
  type typename (line 737) | typedef typename AssignmentTraits::PacketType PacketType;
  function EIGEN_DEVICE_FUNC (line 739) | EIGEN_DEVICE_FUNC restricted_packet_dense_assignment_kernel(DstEvaluator...
  function resize_if_allowed (line 751) | void resize_if_allowed(DstXprType &dst, const SrcXprType& src, const Fun...
  type evaluator (line 773) | typedef evaluator<SrcXprType> SrcEvaluatorType;
  type generic_dense_assignment_kernel (line 783) | typedef generic_dense_assignment_kernel<DstEvaluatorType,SrcEvaluatorTyp...
  function call_dense_assignment_loop (line 792) | void call_dense_assignment_loop(DstXprType& dst, const Eigen::CwiseNulla...
  function call_dense_assignment_loop (line 800) | void call_dense_assignment_loop(DstXprType& dst, const SrcXprType& src)
  type Dense2Dense (line 815) | struct Dense2Dense {}
  type EigenBase2EigenBase (line 816) | struct EigenBase2EigenBase {}
  type EigenBase2EigenBase (line 818) | typedef EigenBase2EigenBase Kind;
  type AssignmentKind (line 819) | struct AssignmentKind
  type Dense2Dense (line 819) | typedef Dense2Dense Kind;
  function call_assignment (line 835) | void call_assignment(Dst& dst, const Src& src)
  function call_assignment (line 841) | void call_assignment(const Dst& dst, const Src& src)
  function call_assignment_no_alias (line 874) | void call_assignment_no_alias(Dst& dst, const Src& src, const Func& func)
  function call_restricted_packet_assignment_no_alias (line 896) | void call_restricted_packet_assignment_no_alias(Dst& dst, const Src& src...
  function call_assignment_no_alias (line 916) | void call_assignment_no_alias(Dst& dst, const Src& src)
  function call_assignment_no_alias_no_transpose (line 923) | void call_assignment_no_alias_no_transpose(Dst& dst, const Src& src, con...
  function call_assignment_no_alias_no_transpose (line 934) | void call_assignment_no_alias_no_transpose(Dst& dst, const Src& src)
  type Assignment (line 964) | struct Assignment

FILE: extensions/ngp_raymarch/include/op_include/eigen/Eigen/src/Core/Assign_MKL.h
  function namespace (line 39) | namespace Eigen {

FILE: extensions/ngp_raymarch/include/op_include/eigen/Eigen/src/Core/BandMatrix.h
  function namespace (line 15) | namespace Eigen {
  type typename (line 105) | typedef typename internal::conditional<Conjugate,
  function typename (line 117) | const typename DiagonalIntReturnType<N>::Type diagonal() const
  function DenseMatrixType (line 147) | DenseMatrixType toDenseMatrix() const
  type Dense (line 183) | typedef Dense StorageKind;
  type Eigen (line 184) | typedef Eigen::Index StorageIndex;
  type Matrix (line 197) | typedef Matrix<Scalar, DataRowsAtCompileTime, ColsAtCompileTime, int(Opt...
  type typename (line 205) | typedef typename internal::traits<BandMatrix>::Scalar Scalar;
  type typename (line 206) | typedef typename internal::traits<BandMatrix>::StorageIndex StorageIndex;
  type typename (line 207) | typedef typename internal::traits<BandMatrix>::CoefficientsType Coeffici...
  function CoefficientsType (line 228) | inline CoefficientsType& coeffs() { return m_coeffs; }
  type typename (line 245) | typedef typename _CoefficientsType::StorageKind StorageKind;
  type typename (line 246) | typedef typename _CoefficientsType::StorageIndex StorageIndex;
  type _CoefficientsType (line 259) | typedef _CoefficientsType CoefficientsType;
  type typename (line 268) | typedef typename internal::traits<BandMatrixWrapper>::CoefficientsType C...
  type typename (line 269) | typedef typename internal::traits<BandMatrixWrapper>::StorageIndex Stora...
  type typename (line 317) | typedef typename Base::StorageIndex StorageIndex;
  type BandShape (line 333) | struct BandShape {}
  type AssignmentKind (line 349) | struct AssignmentKind
  type EigenBase2EigenBase (line 349) | typedef EigenBase2EigenBase Kind;

FILE: extensions/ngp_raymarch/include/op_include/eigen/Eigen/src/Core/Block.h
  function namespace (line 16) | namespace Eigen {
  type typename (line 160) | typedef typename XprType::StorageIndex StorageIndex;
  function EIGEN_STRONG_INLINE (line 164) | EIGEN_STRONG_INLINE BlockImpl(XprType& xpr, Index i) : Impl(xpr,i) {}
  function namespace (line 171) | namespace internal {

FILE: extensions/ngp_raymarch/include/op_include/eigen/Eigen/src/Core/BooleanRedux.h
  function namespace (line 15) | namespace Eigen {
  function EIGEN_DEVICE_FUNC (line 53) | EIGEN_DEVICE_FUNC static inline bool run(const Derived &mat)
  function run (line 62) | static inline bool run(const Derived & /*mat*/) { return false; }
  function run (line 68) | static inline bool run(const Derived &) { return false; }
  function all (line 81) | inline bool DenseBase<Derived>::all() const
  function any (line 105) | inline bool DenseBase<Derived>::any() const

FILE: extensions/ngp_raymarch/include/op_include/eigen/Eigen/src/Core/CommaInitializer.h
  function namespace (line 16) | namespace Eigen {
  function EIGEN_DEVICE_FUNC (line 122) | EIGEN_DEVICE_FUNC

FILE: extensions/ngp_raymarch/include/op_include/eigen/Eigen/src/Core/ConditionEstimator.h
  function namespace (line 15) | namespace Eigen {

FILE: extensions/ngp_raymarch/include/op_include/eigen/Eigen/src/Core/CoreEvaluators.h
  function namespace (line 18) | namespace Eigen {
  type typename (line 169) | typedef typename PlainObjectType::Scalar Scalar;
  type typename (line 170) | typedef typename PlainObjectType::CoeffReturnType CoeffReturnType;
  function explicit (line 197) | explicit evaluator(const PlainObjectType& m)
  function CoeffReturnType (line 204) | CoeffReturnType coeff(Index row, Index col) const
  function CoeffReturnType (line 213) | CoeffReturnType coeff(Index index) const
  function PacketType (line 235) | PacketType packet(Index row, Index col) const
  function PacketType (line 245) | PacketType packet(Index index) const
  function writePacket (line 252) | void writePacket(Index row, Index col, const PacketType& x)
  function writePacket (line 264) | void writePacket(Index index, const PacketType& x)
  function EIGEN_DEVICE_FUNC (line 280) | EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE
  function explicit (line 284) | explicit evaluator(const XprType& m)
  function EIGEN_DEVICE_FUNC (line 295) | EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE
  function explicit (line 299) | explicit evaluator(const XprType& m)
  function explicit (line 319) | explicit unary_evaluator(const XprType& t) : m_argImpl(t.nestedExpressio...
  type typename (line 321) | typedef typename XprType::Scalar Scalar;
  type typename (line 322) | typedef typename XprType::CoeffReturnType CoeffReturnType;
  function CoeffReturnType (line 325) | CoeffReturnType coeff(Index row, Index col) const
  function CoeffReturnType (line 331) | CoeffReturnType coeff(Index index) const
  function typename (line 343) | typename XprType::Scalar& coeffRef(Index index)
  function PacketType (line 350) | PacketType packet(Index row, Index col) const
  function PacketType (line 357) | PacketType packet(Index index) const
  function writePacket (line 364) | void writePacket(Index row, Index col, const PacketType& x)
  function writePacket (line 371) | void writePacket(Index index, const PacketType& x)
  function EIGEN_STRONG_INLINE (line 393) | EIGEN_STRONG_INLINE Scalar operator()(const NullaryOp& op, IndexType i) ...
  function EIGEN_STRONG_INLINE (line 395) | EIGEN_STRONG_INLINE T packetOp(const NullaryOp& op, IndexType i, IndexTy...
  function EIGEN_STRONG_INLINE (line 396) | EIGEN_STRONG_INLINE T packetOp(const NullaryOp& op, IndexType i) const {...
  function EIGEN_STRONG_INLINE (line 426) | EIGEN_STRONG_INLINE T packetOp(const NullaryOp& op, IndexType i, IndexTy...
  function EIGEN_STRONG_INLINE (line 432) | EIGEN_STRONG_INLINE Scalar operator()(const NullaryOp& op, IndexType i) ...
  function EIGEN_STRONG_INLINE (line 434) | EIGEN_STRONG_INLINE T packetOp(const NullaryOp& op, IndexType i) const {...
  function EIGEN_STRONG_INLINE (line 474) | EIGEN_STRONG_INLINE Scalar operator()(const NullaryOp& op, IndexType i) ...
  function EIGEN_STRONG_INLINE (line 482) | EIGEN_STRONG_INLINE T packetOp(const NullaryOp& op, IndexType i, IndexTy...
  function EIGEN_STRONG_INLINE (line 489) | EIGEN_STRONG_INLINE T packetOp(const NullaryOp& op, IndexType i) const {
  type typename (line 503) | typedef typename internal::remove_all<PlainObjectType>::type PlainObject...
  function EIGEN_DEVICE_FUNC (line 516) | EIGEN_DEVICE_FUNC explicit evaluator(const XprType& n)
  type typename (line 522) | typedef typename XprType::CoeffReturnType CoeffReturnType;
  function EIGEN_STRONG_INLINE (line 525) | EIGEN_STRONG_INLINE
  function EIGEN_STRONG_INLINE (line 532) | EIGEN_STRONG_INLINE
  function PacketType (line 540) | PacketType packet(IndexType row, IndexType col) const
  function PacketType (line 547) | PacketType packet(IndexType index) const
  function explicit (line 574) | explicit unary_evaluator(const XprType& op) : m_d(op)
  type typename (line 580) | typedef typename XprType::CoeffReturnType CoeffReturnType;
  function CoeffReturnType (line 583) | CoeffReturnType coeff(Index row, Index col) const
  function CoeffReturnType (line 589) | CoeffReturnType coeff(Index index) const
  function PacketType (line 596) | PacketType packet(Index row, Index col) const
  function PacketType (line 603) | PacketType packet(Index index) const
  type Data (line 611) | struct Data
  type ternary_evaluator (line 632) | typedef ternary_evaluator<CwiseTernaryOp<TernaryOp, Arg1, Arg2, Arg3> > ...
  function EIGEN_DEVICE_FUNC (line 634) | EIGEN_DEVICE_FUNC explicit evaluator(const XprType& xpr) : Base(xpr) {}
  function EIGEN_DEVICE_FUNC (line 665) | EIGEN_DEVICE_FUNC explicit ternary_evaluator(const XprType& xpr) : m_d(xpr)
  type typename (line 671) | typedef typename XprType::CoeffReturnType CoeffReturnType;
  function CoeffReturnType (line 674) | CoeffReturnType coeff(Index row, Index col) const
  function CoeffReturnType (line 680) | CoeffReturnType coeff(Index index) const
  function PacketType (line 687) | PacketType packet(Index row, Index col) const
  function PacketType (line 696) | PacketType packet(Index index) const
  type Data (line 705) | struct Data
  type binary_evaluator (line 728) | typedef binary_evaluator<CwiseBinaryOp<BinaryOp, Lhs, Rhs> > Base;
  function explicit (line 731) | explicit evaluator(const XprType& xpr) : Base(xpr) {}
  function explicit (line 760) | explicit binary_evaluator(const XprType& xpr) : m_d(xpr)
  type typename (line 766) | typedef typename XprType::CoeffReturnType CoeffReturnType;
  function CoeffReturnType (line 769) | CoeffReturnType coeff(Index row, Index col) const
  function CoeffReturnType (line 775) | CoeffReturnType coeff(Index index) const
  function PacketType (line 782) | PacketType packet(Index row, Index col) const
  function PacketType (line 790) | PacketType packet(Index index) const
  type Data (line 799) | struct Data
  function EIGEN_DEVICE_FUNC (line 829) | EIGEN_DEVICE_FUNC explicit unary_evaluator(const XprType& op) : m_d(op)
  type typename (line 835) | typedef typename XprType::Scalar Scalar;
  type typename (line 836) | typedef typename XprType::CoeffReturnType CoeffReturnType;
  function CoeffReturnType (line 839) | CoeffReturnType coeff(Index row, Index col) const
  function CoeffReturnType (line 845) | CoeffReturnType coeff(Index index) const
  type Data (line 865) | struct Data
  type Derived (line 888) | typedef Derived  XprType;
  type typename (line 889) | typedef typename XprType::PointerType PointerType;
  type typename (line 890) | typedef typename XprType::Scalar Scalar;
  type typename (line 891) | typedef typename XprType::CoeffReturnType CoeffReturnType;
  function CoeffReturnType (line 911) | CoeffReturnType coeff(Index row, Index col) const
  function CoeffReturnType (line 917) | CoeffReturnType coeff(Index index) const
  function PacketType (line 936) | PacketType packet(Index row, Index col) const
  function PacketType (line 944) | PacketType packet(Index index) const
  function writePacket (line 951) | void writePacket(Index row, Index col, const PacketType& x)
  function writePacket (line 959) | void writePacket(Index index, const PacketType& x)
  function EIGEN_CONSTEXPR (line 964) | EIGEN_CONSTEXPR
  function explicit (line 1095) | explicit block_evaluator(const XprType& block)
  function CoeffReturnType (line 1123) | CoeffReturnType coeff(Index row, Index col) const
  function CoeffReturnType (line 1129) | CoeffReturnType coeff(Index index) const
  function PacketType (line 1148) | PacketType packet(Index row, Index col) const
  function PacketType (line 1155) | PacketType packet(Index index) const
  function writePacket (line 1166) | void writePacket(Index row, Index col, const PacketType& x)
  function writePacket (line 1173) | void writePacket(Index index, const PacketType& x)
  function CoeffReturnType (line 1185) | CoeffReturnType linear_coeff_impl(Index index, internal::true_type /* Fo...
  function CoeffReturnType (line 1190) | CoeffReturnType linear_coeff_impl(Index index, internal::false_type /* n...
  type typename (line 1221) | typedef typename XprType::Scalar Scalar;
  function explicit (line 1224) | explicit block_evaluator(const XprType& block)
  type typename (line 1261) | typedef typename XprType::CoeffReturnType CoeffReturnType;
  function CoeffReturnType (line 1264) | CoeffReturnType coeff(Index row, Index col) const
  function CoeffReturnType (line 1273) | CoeffReturnType coeff(Index index) const
  type typename (line 1295) | typedef typename XprType::CoeffReturnType CoeffReturnType;
  type typename (line 1299) | typedef typename internal::nested_eval<ArgType,Factor>::type ArgTypeNested;
  type typename (line 1300) | typedef typename internal::remove_all<ArgTypeNested>::type ArgTypeNested...
  function CoeffReturnType (line 1333) | CoeffReturnType coeff(Index index) const
  function PacketType (line 1345) | PacketType packet(Index row, Index col) const
  function PacketType (line 1359) | PacketType packet(Index index) const
  type typename (line 1384) | typedef typename remove_all<typename XprType::NestedExpressionType>::typ...
  function explicit (line 1392) | explicit evaluator_wrapper_base(const ArgType& arg) : m_argImpl(arg) {}
  type typename (line 1394) | typedef typename ArgType::Scalar Scalar;
  type typename (line 1395) | typedef typename ArgType::CoeffReturnType CoeffReturnType;
  function CoeffReturnType (line 1398) | CoeffReturnType coeff(Index row, Index col) const
  function CoeffReturnType (line 1404) | CoeffReturnType coeff(Index index) const
  function PacketType (line 1423) | PacketType packet(Index row, Index col) const
  function PacketType (line 1430) | PacketType packet(Index index) const
  function writePacket (line 1437) | void writePacket(Index row, Index col, const PacketType& x)
  function writePacket (line 1444) | void writePacket(Index index, const PacketType& x)
  function explicit (line 1460) | explicit unary_evaluator(const XprType& wrapper)
  function explicit (line 1472) | explicit unary_evaluator(const XprType& wrapper)
  type typename (line 1488) | typedef typename XprType::Scalar Scalar;
  type typename (line 1489) | typedef typename XprType::CoeffReturnType CoeffReturnType;
  function CoeffReturnType (line 1529) | CoeffReturnType coeff(Index index) const
  function PacketType (line 1549) | PacketType packet(Index row, Index col) const
  function PacketType (line 1564) | PacketType packet(Index index) const
  function writePacket (line 1572) | void writePacket(Index row, Index col, const PacketType& x)
  function writePacket (line 1589) | void writePacket(Index index, const PacketType& x)
  function explicit (line 1623) | explicit evaluator(const XprType& diagonal)
  type typename (line 1628) | typedef typename XprType::Scalar Scalar;
  type typename (line 1629) | typedef typename XprType::CoeffReturnType CoeffReturnType;
  function CoeffReturnType (line 1632) | CoeffReturnType coeff(Index row, Index) const
  function CoeffReturnType (line 1638) | CoeffReturnType coeff(Index index) const
  function EvalToTemp (line 1689) | EIGEN_GENERIC_PUBLIC_INTERFACE(EvalToTemp)
  type typename (line 1719) | typedef typename ArgType::PlainObject         PlainObject;
  type evaluator (line 1720) | typedef evaluator<PlainObject> Base;
  function EIGEN_DEVICE_FUNC (line 1722) | EIGEN_DEVICE_FUNC explicit evaluator(const XprType& xpr)
  function EIGEN_DEVICE_FUNC (line 1729) | EIGEN_DEVICE_FUNC evaluator(const ArgType& arg)

FILE: extensions/ngp_raymarch/include/op_include/eigen/Eigen/src/Core/CoreIterators.h
  function namespace (line 15) | namespace Eigen {
  function namespace (line 77) | namespace internal {

FILE: extensions/ngp_raymarch/include/op_include/eigen/Eigen/src/Core/CwiseBinaryOp.h
  function namespace (line 16) | namespace Eigen {
  type typename (line 90) | typedef typename internal::remove_all<LhsType>::type Lhs;
  type typename (line 91) | typedef typename internal::remove_all<RhsType>::type Rhs;
  type typename (line 93) | typedef typename CwiseBinaryOpImpl<
  type typename (line 105) | typedef typename internal::remove_reference<LhsNested>::type _LhsNested;
  type typename (line 106) | typedef typename internal::remove_reference<RhsNested>::type _RhsNested;

FILE: extensions/ngp_raymarch/include/op_include/eigen/Eigen/src/Core/CwiseNullaryOp.h
  function namespace (line 15) | namespace Eigen {
  function EIGEN_STATIC_ASSERT_FIXED_SIZE (line 304) | EIGEN_STATIC_ASSERT_VECTOR_ONLY(Derived)
  function fill (line 337) | void DenseBase<Derived>::fill(const Scalar& val)
  function namespace (line 840) | namespace internal {

FILE: extensions/ngp_raymarch/include/op_include/eigen/Eigen/src/Core/CwiseTernaryOp.h
  function namespace (line 17) | namespace Eigen {
  type typename (line 93) | typedef typename internal::remove_all<Arg2Type>::type Arg2;
  type typename (line 94) | typedef typename internal::remove_all<Arg3Type>::type Arg3;
  type typename (line 110) | typedef typename CwiseTernaryOpImpl<
  type typename (line 116) | typedef typename internal::ref_selector<Arg2Type>::type Arg2Nested;
  type typename (line 117) | typedef typename internal::ref_selector<Arg3Type>::type Arg3Nested;
  type typename (line 118) | typedef typename internal::remove_reference<Arg1Nested>::type _Arg1Nested;
  type typename (line 119) | typedef typename internal::remove_reference<Arg2Nested>::type _Arg2Nested;
  type typename (line 120) | typedef typename internal::remove_reference<Arg3Nested>::type _Arg3Nested;

FILE: extensions/ngp_raymarch/include/op_include/eigen/Eigen/src/Core/CwiseUnaryOp.h
  function namespace (line 16) | namespace Eigen {
  type typename (line 64) | typedef typename internal::remove_all<XprType>::type NestedExpression;
  function typename (line 86) | typename internal::remove_all<XprTypeNested>::type&

FILE: extensions/ngp_raymarch/include/op_include/eigen/Eigen/src/Core/CwiseUnaryView.h
  function namespace (line 15) | namespace Eigen {
  type typename (line 67) | typedef typename internal::remove_all<MatrixType>::type NestedExpression;
  type typename (line 111) | typedef typename internal::dense_xpr_base< CwiseUnaryView<ViewOp, Matrix...
  function EIGEN_INHERIT_ASSIGNMENT_OPERATORS (line 113) | EIGEN_DENSE_PUBLIC_INTERFACE(Derived)

FILE: extensions/ngp_raymarch/include/op_include/eigen/Eigen/src/Core/DenseBase.h
  function namespace (line 16) | namespace Eigen {
  type Transpose (line 319) | typedef Transpose<Derived> TransposeReturnType;
  type typename (line 322) | typedef typename internal::add_const<Transpose<const Derived> >::type Co...

FILE: extensions/ngp_raymarch/include/op_include/eigen/Eigen/src/Core/DenseCoeffsBase.h
  function namespace (line 15) | namespace Eigen {
  type typename (line 488) | typedef typename internal::traits<Derived>::Scalar Scalar;
  type typename (line 489) | typedef typename NumTraits<Scalar>::Real RealScalar;
  function EIGEN_CONSTEXPR (line 518) | EIGEN_CONSTEXPR inline Index stride() const
  function Index (line 587) | inline Index outerStride() const EIGEN_NOEXCEPT
  function Index (line 603) | inline Index rowStride() const EIGEN_NOEXCEPT
  function Index (line 645) | inline Index first_aligned(const DenseBase<Derived>& m)
  function Index (line 652) | inline Index first_default_aligned(const DenseBase<Derived>& m)

FILE: extensions/ngp_raymarch/include/op_include/eigen/Eigen/src/Core/DenseStorage.h
  function namespace (line 23) | namespace Eigen {
  function EIGEN_DEVICE_FUNC (line 127) | EIGEN_DEVICE_FUNC
  function EIGEN_DEVICE_FUNC (line 134) | EIGEN_DEVICE_FUNC
  function EIGEN_DEVICE_FUNC (line 146) | EIGEN_DEVICE_FUNC
  function EIGEN_DEVICE_FUNC (line 153) | EIGEN_DEVICE_FUNC
  function EIGEN_DEVICE_FUNC (line 164) | EIGEN_DEVICE_FUNC plain_array() {}
  function EIGEN_DEVICE_FUNC (line 165) | EIGEN_DEVICE_FUNC plain_array(constructor_without_unaligned_array_assert...
  type plain_array_helper (line 168) | struct plain_array_helper {
  function EIGEN_DEVICE_FUNC (line 220) | EIGEN_DEVICE_FUNC
  function EIGEN_DEVICE_FUNC (line 239) | EIGEN_DEVICE_FUNC DenseStorage(DenseStorage&& other) EIGEN_NOEXCEPT
  function EIGEN_DEVICE_FUNC (line 254) | EIGEN_DEVICE_FUNC DenseStorage(Index size, Index rows, Index cols) {
  function Index (line 264) | Index rows(void) EIGEN_NOEXCEPT {return Rows_;}
  function Index (line 265) | Index cols(void) EIGEN_NOEXCEPT {return Cols_;}
  function EIGEN_DEVICE_FUNC (line 266) | EIGEN_DEVICE_FUNC void conservativeResize(Index,Index,Index) {}
  function EIGEN_DEVICE_FUNC (line 267) | EIGEN_DEVICE_FUNC void resize(Index,Index,Index) {}
  function EIGEN_DEVICE_FUNC (line 268) | EIGEN_DEVICE_FUNC const T *data() const { return m_data.array; }
  function EIGEN_DEVICE_FUNC (line 269) | EIGEN_DEVICE_FUNC T *data() { return m_data.array; }
  function EIGEN_DEVICE_FUNC (line 276) | EIGEN_DEVICE_FUNC DenseStorage() {}
  function EIGEN_DEVICE_FUNC (line 277) | EIGEN_DEVICE_FUNC explicit DenseStorage(internal::constructor_without_un...
  function EIGEN_DEVICE_FUNC (line 278) | EIGEN_DEVICE_FUNC DenseStorage(const DenseStorage&) {}
  function EIGEN_DEVICE_FUNC (line 280) | EIGEN_DEVICE_FUNC DenseStorage(Index,Index,Index) {}
  function EIGEN_DEVICE_FUNC (line 325) | EIGEN_DEVICE_FUNC DenseStorage(Index, Index rows, Index cols) : m_rows(r...
  function EIGEN_DEVICE_FUNC (line 334) | EIGEN_DEVICE_FUNC void conservativeResize(Index, Index rows, Index cols)...
  function EIGEN_DEVICE_FUNC (line 335) | EIGEN_DEVICE_FUNC void resize(Index, Index rows, Index cols) { m_rows = ...
  function EIGEN_DEVICE_FUNC (line 336) | EIGEN_DEVICE_FUNC const T *data() const { return m_data.array; }
  function EIGEN_DEVICE_FUNC (line 337) | EIGEN_DEVICE_FUNC T *data() { return m_data.array; }
  function EIGEN_DEVICE_FUNC (line 347) | EIGEN_DEVICE_FUNC explicit DenseStorage(internal::constructor_without_un...
  function EIGEN_DEVICE_FUNC (line 349) | EIGEN_DEVICE_FUNC DenseStorage(const DenseStorage& other)
  function EIGEN_DEVICE_FUNC (line 364) | EIGEN_DEVICE_FUNC DenseStorage(Index, Index rows, Index) : m_rows(rows) {}
  function EIGEN_DEVICE_FUNC (line 370) | EIGEN_DEVICE_FUNC Index rows(void) const EIGEN_NOEXCEPT {return m_rows;}
  function Index (line 371) | Index cols(void) const EIGEN_NOEXCEPT {return Cols_;}
  function EIGEN_DEVICE_FUNC (line 372) | EIGEN_DEVICE_FUNC void conservativeResize(Index, Index rows, Index) { m_...
  function EIGEN_DEVICE_FUNC (line 373) | EIGEN_DEVICE_FUNC void resize(Index, Index rows, Index) { m_rows = rows; }
  function EIGEN_DEVICE_FUNC (line 374) | EIGEN_DEVICE_FUNC const T *data() const { return m_data.array; }
  function EIGEN_DEVICE_FUNC (line 375) | EIGEN_DEVICE_FUNC T *data() { return m_data.array; }
  function EIGEN_DEVICE_FUNC (line 385) | EIGEN_DEVICE_FUNC explicit DenseStorage(internal::constructor_without_un...
  function EIGEN_DEVICE_FUNC (line 387) | EIGEN_DEVICE_FUNC DenseStorage(const DenseStorage& other)
  function EIGEN_DEVICE_FUNC (line 401) | EIGEN_DEVICE_FUNC DenseStorage(Index, Index, Index cols) : m_cols(cols) {}
  function Index (line 406) | Index rows(void) const EIGEN_NOEXCEPT {return Rows_;}
  function EIGEN_DEVICE_FUNC (line 407) | EIGEN_DEVICE_FUNC Index cols(void) const EIGEN_NOEXCEPT {return m_cols;}
  function EIGEN_DEVICE_FUNC (line 408) | EIGEN_DEVICE_FUNC void conservativeResize(Index, Index, Index cols) { m_...
  function EIGEN_DEVICE_FUNC (line 409) | EIGEN_DEVICE_FUNC void resize(Index, Index, Index cols) { m_cols = cols; }
  function EIGEN_DEVICE_FUNC (line 410) | EIGEN_DEVICE_FUNC const T *data() const { return m_data.array; }
  function EIGEN_DEVICE_FUNC (line 411) | EIGEN_DEVICE_FUNC T *data() { return m_data.array; }
  function EIGEN_DEVICE_FUNC (line 467) | EIGEN_DEVICE_FUNC ~DenseStorage() { internal::conditional_aligned_delete...
  function EIGEN_DEVICE_FUNC (line 474) | EIGEN_DEVICE_FUNC Index rows(void) const EIGEN_NOEXCEPT {return m_rows;}
  function EIGEN_DEVICE_FUNC (line 475) | EIGEN_DEVICE_FUNC Index cols(void) const EIGEN_NOEXCEPT {return m_cols;}
  function conservativeResize (line 476) | void conservativeResize(Index size, Index rows, Index cols)
  function EIGEN_DEVICE_FUNC (line 482) | EIGEN_DEVICE_FUNC void resize(Index size, Index rows, Index cols)
  function EIGEN_DEVICE_FUNC (line 496) | EIGEN_DEVICE_FUNC const T *data() const { return m_data; }
  function EIGEN_DEVICE_FUNC (line 497) | EIGEN_DEVICE_FUNC T *data() { return m_data; }
  function explicit (line 507) | explicit DenseStorage(internal::constructor_without_unaligned_array_asse...
  function EIGEN_DEVICE_FUNC (line 508) | EIGEN_DEVICE_FUNC DenseStorage(Index size, Index rows, Index cols) : m_d...
  function EIGEN_DEVICE_FUNC (line 514) | EIGEN_DEVICE_FUNC DenseStorage(const DenseStorage& other)
  function EIGEN_DEVICE_FUNC (line 531) | EIGEN_DEVICE_FUNC
  function EIGEN_DEVICE_FUNC (line 547) | EIGEN_DEVICE_FUNC ~DenseStorage() { internal::conditional_aligned_delete...
  function Index (line 552) | Index rows(void) EIGEN_NOEXCEPT {return Rows_;}
  function EIGEN_DEVICE_FUNC (line 553) | EIGEN_DEVICE_FUNC Index cols(void) const EIGEN_NOEXCEPT {return m_cols;}
  function EIGEN_DEVICE_FUNC (line 554) | EIGEN_DEVICE_FUNC void conservativeResize(Index size, Index, Index cols)
  function resize (line 559) | void resize(Index size, Index, Index cols)
  function EIGEN_DEVICE_FUNC (line 572) | EIGEN_DEVICE_FUNC const T *data() const { return m_data; }
  function EIGEN_DEVICE_FUNC (line 573) | EIGEN_DEVICE_FUNC T *data() { return m_data; }
  function explicit (line 583) | explicit DenseStorage(internal::constructor_without_unaligned_array_asse...
  function EIGEN_DEVICE_FUNC (line 584) | EIGEN_DEVICE_FUNC DenseStorage(Index size, Index rows, Index cols) : m_d...
  function EIGEN_DEVICE_FUNC (line 590) | EIGEN_DEVICE_FUNC DenseStorage(const DenseStorage& other)
  function EIGEN_DEVICE_FUNC (line 607) | EIGEN_DEVICE_FUNC
  function EIGEN_DEVICE_FUNC (line 623) | EIGEN_DEVICE_FUNC ~DenseStorage() { internal::conditional_aligned_delete...
  function EIGEN_DEVICE_FUNC (line 628) | EIGEN_DEVICE_FUNC Index rows(void) const EIGEN_NOEXCEPT {return m_rows;}
  function Index (line 629) | Index cols(void) {return Cols_;}
  function conservativeResize (line 630) | void conservativeResize(Index size, Index rows, Index)
  function resize (line 635) | void resize(Index size, Index rows, Index)
  function EIGEN_DEVICE_FUNC (line 648) | EIGEN_DEVICE_FUNC const T *data() const { return m_data; }
  function EIGEN_DEVICE_FUNC (line 649) | EIGEN_DEVICE_FUNC T *data() { return m_data; }

FILE: extensions/ngp_raymarch/include/op_include/eigen/Eigen/src/Core/Diagonal.h
  function namespace (line 16) | namespace Eigen {
  type typename (line 71) | typedef typename internal::dense_xpr_base<Diagonal>::type Base;
  function explicit (line 75) | explicit inline Diagonal(MatrixType& matrix, Index a_index = DiagIndex) ...
  type typename (line 100) | typedef typename internal::conditional<
  function EIGEN_DEVICE_FUNC (line 106) | EIGEN_DEVICE_FUNC
  function EIGEN_DEVICE_FUNC (line 108) | EIGEN_DEVICE_FUNC
  function EIGEN_DEVICE_FUNC (line 111) | EIGEN_DEVICE_FUNC
  function EIGEN_DEVICE_FUNC (line 118) | EIGEN_DEVICE_FUNC
  function EIGEN_DEVICE_FUNC (line 124) | EIGEN_DEVICE_FUNC
  function EIGEN_DEVICE_FUNC (line 130) | EIGEN_DEVICE_FUNC
  function EIGEN_DEVICE_FUNC (line 137) | EIGEN_DEVICE_FUNC
  function EIGEN_DEVICE_FUNC (line 143) | EIGEN_DEVICE_FUNC

FILE: extensions/ngp_raymarch/include/op_include/eigen/Eigen/src/Core/DiagonalMatrix.h
  function namespace (line 16) | namespace Eigen {
  function EIGEN_DEVICE_FUNC (line 164) | EIGEN_DEVICE_FUNC
  function EIGEN_DEVICE_FUNC (line 168) | EIGEN_DEVICE_FUNC
  function EIGEN_DEVICE_FUNC (line 172) | EIGEN_DEVICE_FUNC
  function EIGEN_DEVICE_FUNC (line 176) | EIGEN_DEVICE_FUNC
  function EIGEN_DEVICE_FUNC (line 180) | EIGEN_DEVICE_FUNC
  function EIGEN_STRONG_INLINE (line 195) | EIGEN_STRONG_INLINE
  function EIGEN_STRONG_INLINE (line 203) | EIGEN_STRONG_INLINE DiagonalMatrix(const std::initializer_list<std::init...
  function m_diagonal (line 210) | inline DiagonalMatrix(const DiagonalBase<OtherDerived>& other) : m_diago...
  function m_diagonal (line 214) | inline DiagonalMatrix(const DiagonalMatrix& other) : m_diagonal(other.di...
  function explicit (line 220) | explicit inline DiagonalMatrix(const MatrixBase<OtherDerived>& other) : ...
  function EIGEN_DEVICE_FUNC (line 245) | EIGEN_DEVICE_FUNC
  function EIGEN_DEVICE_FUNC (line 248) | EIGEN_DEVICE_FUNC
  function EIGEN_DEVICE_FUNC (line 251) | EIGEN_DEVICE_FUNC
  function EIGEN_DEVICE_FUNC (line 254) | EIGEN_DEVICE_FUNC
  function EIGEN_DEVICE_FUNC (line 257) | EIGEN_DEVICE_FUNC
  function namespace (line 275) | namespace internal {
  type DiagonalVectorType_ (line 300) | typedef DiagonalVectorType_ DiagonalVectorType;
  type DiagonalWrapper (line 301) | typedef DiagonalWrapper Nested;
  function m_diagonal (line 306) | inline DiagonalWrapper(DiagonalVectorType& a_diagonal) : m_diagonal(a_di...
  function DiagonalWrapper (line 326) | inline const DiagonalWrapper<const Derived>
  function namespace (line 359) | namespace internal {
  function run (line 385) | static void run(DstXprType &dst, const SrcXprType &src, const internal::...

FILE: extensions/ngp_raymarch/include/op_include/eigen/Eigen/src/Core/DiagonalProduct.h
  function namespace (line 16) | namespace Eigen {

FILE: extensions/ngp_raymarch/include/op_include/eigen/Eigen/src/Core/Dot.h
  function namespace (line 15) | namespace Eigen {
  type internal (line 80) | typedef internal::scalar_conj_product_op<Scalar,typename
  type typename (line 128) | typedef typename internal::nested_eval<Derived,2>::type _Nested;
  type typename (line 171) | typedef typename internal::nested_eval<Derived,3>::type _Nested;
  function namespace (line 203) | namespace internal {

FILE: extensions/ngp_raymarch/include/op_include/eigen/Eigen/src/Core/EigenBase.h
  function namespace (line 16) | namespace Eigen {
  function Index (line 62) | inline Index rows() const EIGEN_NOEXCEPT { return derived().rows(); }
  function addTo (line 80) | inline void addTo(Dest& dst) const
  function subTo (line 92) | inline void subTo(Dest& dst) const
  function applyThisOnTheRight (line 103) | inline void applyThisOnTheRight(Dest& dst) const
  function applyThisOnTheLeft (line 112) | inline void applyThisOnTheLeft(Dest& dst) const

FILE: extensions/ngp_raymarch/include/op_include/eigen/Eigen/src/Core/ForceAlignedAccess.h
  function namespace (line 15) | namespace Eigen {

FILE: extensions/ngp_raymarch/include/op_include/eigen/Eigen/src/Core/Fuzzy.h
  function namespace (line 16) | namespace Eigen {
  function typename (line 67) | typename Derived::RealScalar& prec)
  function EIGEN_DEVICE_FUNC (line 76) | EIGEN_DEVICE_FUNC

FILE: extensions/ngp_raymarch/include/op_include/eigen/Eigen/src/Core/GeneralProduct.h
  function namespace (line 16) | namespace Eigen {
  type product_type_selector (line 105) | struct product_type_selector
  type product_type_selector (line 106) | struct product_type_selector
  type product_type_selector (line 107) | struct product_type_selector
  type product_type_selector (line 108) | struct product_type_selector
  type product_type_selector (line 109) | struct product_type_selector
  type product_type_selector (line 110) | struct product_type_selector
  type product_type_selector (line 111) | struct product_type_selector
  type product_type_selector (line 112) | struct product_type_selector
  type product_type_selector (line 113) | struct product_type_selector
  type product_type_selector (line 114) | struct product_type_selector
  type product_type_selector (line 115) | struct product_type_selector
  type product_type_selector (line 116) | struct product_type_selector
  type product_type_selector (line 117) | struct product_type_selector
  type product_type_selector (line 118) | struct product_type_selector
  type product_type_selector (line 119) | struct product_type_selector
  type product_type_selector (line 120) | struct product_type_selector
  type product_type_selector (line 121) | struct product_type_selector
  type product_type_selector (line 122) | struct product_type_selector
  type product_type_selector (line 123) | struct product_type_selector
  type product_type_selector (line 124) | struct product_type_selector
  function namespace (line 154) | namespace internal {
  function namespace (line 161) | namespace internal {
  function EIGEN_STRONG_INLINE (line 186) | EIGEN_STRONG_INLINE Scalar* data() { return m_data.array; }
  function EIGEN_STRONG_INLINE (line 191) | EIGEN_STRONG_INLINE Scalar* data() {
  type gemv_dense_selector (line 213) | struct gemv_dense_selector
  function run (line 216) | inline void run(const Lhs &lhs, const Rhs &rhs, Dest& dest, const typena...
  type gemv_dense_selector (line 306) | struct gemv_dense_selector
  function run (line 309) | void run(const Lhs &lhs, const Rhs &rhs, Dest& dest, const typename Dest...
  type gemv_dense_selector (line 358) | struct gemv_dense_selector
  function run (line 361) | void run(const Lhs &lhs, const Rhs &rhs, Dest& dest, const typename Dest...
  type gemv_dense_selector (line 372) | struct gemv_dense_selector
  function run (line 375) | void run(const Lhs &lhs, const Rhs &rhs, Dest& dest, const typename Dest...

FILE: extensions/ngp_raymarch/include/op_include/eigen/Eigen/src/Core/GenericPacketMath.h
  function namespace (line 16) | namespace Eigen {
  function Packet (line 468) | inline Packet run(const Packet& a, const Packet& b, Op op) {
  function PropagateNaN (line 476) | struct pminmax_impl<PropagateNaN> {
  function PropagateNumbers (line 491) | struct pminmax_impl<PropagateNumbers> {
  function Packet (line 513) | inline Packet
  function Packet (line 519) | inline Packet pmin(const Packet& a, const Packet& b) {
  function Packet (line 525) | inline Packet
  function Packet (line 531) | inline Packet pmax(const Packet& a, const Packet& b) {
  function Packet (line 536) | inline Packet
  function pabs (line 538) | inline unsigned int
  function pabs (line 540) | inline unsigned long
  function pabs (line 542) | inline unsigned long long
  function Packet (line 546) | inline Packet
  function Packet (line 552) | inline Packet
  function parithmetic_shift_right (line 557) | inline int
  function parithmetic_shift_right (line 559) | inline long int
  function plogical_shift_right (line 563) | inline int
  function plogical_shift_right (line 565) | inline long int
  function plogical_shift_left (line 569) | inline int
  function plogical_shift_left (line 571) | inline long int
  function Packet (line 578) | inline Packet pfrexp(const Packet& a, Packet& exponent) {
  function Packet (line 589) | inline Packet
  function Packet (line 596) | inline Packet
  function Packet (line 600) | inline Packet
  function Packet (line 604) | inline Packet
  function Packet (line 616) | inline Packet
  function Packet (line 624) | inline Packet
  function EIGEN_STRONG_INLINE (line 632) | EIGEN_STRONG_INLINE Packet
  function Packet (line 641) | inline Packet
  function pbroadcast4 (line 655) | inline void pbroadcast4(const typename unpacket_traits<Packet>::type *a,
  function pbroadcast2 (line 672) | inline void pbroadcast2(const typename unpacket_traits<Packet>::type *a,
  function EIGEN_STRONG_INLINE (line 680) | EIGEN_STRONG_INLINE Packet
  function Packet (line 685) | inline Packet
  function pstore (line 698) | inline void pstore(Scalar* to, const Packet& from)
  function pstoreu (line 702) | inline void pstoreu(Scalar* to, const Packet& from)
  function Packet (line 714) | inline Packet pgather(const Scalar* from, Index /*stride*/)
  function pscatter (line 717) | inline void pscatter(Scalar* to, const Packet& from, Index /*stride*/)
  function prefetch (line 721) | inline void prefetch(const Scalar* addr)
  function Packet (line 739) | inline Packet preverse(const Packet& a)
  function Packet (line 743) | inline Packet pcplxflip(const Packet& a)
  function Packet (line 754) | Packet psin(const Packet& a) { EIGEN_USING_STD(sin); return sin(a); }
  function Packet (line 758) | Packet pcos(const Packet& a) { EIGEN_USING_STD(cos); return cos(a); }
  function Packet (line 762) | Packet ptan(const Packet& a) { EIGEN_USING_STD(tan); return tan(a); }
  function Packet (line 766) | Packet pasin(const Packet& a) { EIGEN_USING_STD(asin); return asin(a); }
  function Packet (line 770) | Packet pacos(const Packet& a) { EIGEN_USING_STD(acos); return acos(a); }
  function Packet (line 774) | Packet patan(const Packet& a) { EIGEN_USING_STD(atan); return atan(a); }
  function Packet (line 778) | Packet psinh(const Packet& a) { EIGEN_USING_STD(sinh); return sinh(a); }
  function Packet (line 782) | Packet pcosh(const Packet& a) { EIGEN_USING_STD(cosh); return cosh(a); }
  function Packet (line 786) | Packet ptanh(const Packet& a) { EIGEN_USING_STD(tanh); return tanh(a); }
  function Packet (line 790) | Packet pexp(const Packet& a) { EIGEN_USING_STD(exp); return exp(a); }
  function Packet (line 794) | Packet pexpm1(const Packet& a) { return numext::expm1(a); }
  function Packet (line 798) | Packet plog(const Packet& a) { EIGEN_USING_STD(log); return log(a); }
  function Packet (line 802) | Packet plog1p(const Packet& a) { return numext::log1p(a); }
  function Packet (line 806) | Packet plog10(const Packet& a) { EIGEN_USING_STD(log10); return log10(a); }
  function Packet (line 810) | Packet plog2(const Packet& a) {
  function Packet (line 817) | Packet psqrt(const Packet& a) { return numext::sqrt(a); }
  function Packet (line 821) | Packet prsqrt(const Packet& a) {
  function Packet (line 828) | Packet pround(const Packet& a) { using numext::round; return round(a); }
  function Packet (line 832) | Packet pfloor(const Packet& a) { using numext::floor; return floor(a); }
  function Packet (line 837) | Packet print(const Packet& a) { using numext::rint; return rint(a); }
  function Packet (line 841) | Packet pceil(const Packet& a) { using numext::ceil; return ceil(a); }
  function typename (line 845) | inline typename unpacket_traits<Packet>::type
  function typename (line 860) | inline typename unpacket_traits<Packet>::type
  function typename (line 876) | inline typename unpacket_traits<Packet>::type
  function typename (line 884) | inline typename unpacket_traits<Packet>::type predux_mul(
  function typename (line 892) | inline typename unpacket_traits<Packet>::type predux_min(
  function typename (line 899) | inline typename unpacket_traits<Packet>::type predux_min(
  function typename (line 907) | inline typename unpacket_traits<Packet>::type predux_max(
  function typename (line 914) | inline typename unpacket_traits<Packet>::type predux_max(
  function predux_any (line 932) | inline bool predux_any(const Packet& a)
  function pstore1 (line 951) | void pstore1(typename unpacket_traits<Packet>::type* to, const typename ...
  function Packet (line 957) | inline Packet
  function EIGEN_ALWAYS_INLINE (line 966) | EIGEN_ALWAYS_INLINE Packet ploadt(const typename unpacket_traits<Packet>...
  function pstoret (line 977) | void pstoret(Scalar* to, const Packet& from)
  function EIGEN_ALWAYS_INLINE (line 991) | EIGEN_ALWAYS_INLINE Packet ploadt_ro(const typename unpacket_traits<Pack...
  function ptranspose (line 1020) | inline void
  function Packet (line 1033) | inline Packet

FILE: extensions/ngp_raymarch/include/op_include/eigen/Eigen/src/Core/GlobalFunctions.h
  function namespace (line 56) | namespace Eigen

FILE: extensions/ngp_raymarch/include/op_include/eigen/Eigen/src/Core/IO.h
  function namespace (line 16) | namespace Eigen {
  function namespace (line 116) | namespace internal {

FILE: extensions/ngp_raymarch/include/op_include/eigen/Eigen/src/Core/IndexedView.h
  function namespace (line 15) | namespace Eigen {
  function Index (line 127) | Index rows() const { return internal::size(m_rowIndices); }
  function typename (line 137) | typename internal::remove_reference<XprType>::type&
  function namespace (line 162) | namespace internal {

FILE: extensions/ngp_raymarch/include/op_include/eigen/Eigen/src/Core/Inverse.h
  function namespace (line 15) | namespace Eigen {
  type typename (line 75) | typedef typename XprType::Scalar Scalar;
  function namespace (line 82) | namespace internal {

FILE: extensions/ngp_raymarch/include/op_include/eigen/Eigen/src/Core/Map.h
  function namespace (line 16) | namespace Eigen {
  type PointerType (line 105) | typedef PointerType PointerArgType;
  function EIGEN_DEVICE_FUNC (line 106) | EIGEN_DEVICE_FUNC
  function Index (line 110) | inline Index innerStride() const
  function EIGEN_DEVICE_FUNC (line 130) | EIGEN_DEVICE_FUNC
  function EIGEN_DEVICE_FUNC (line 142) | EIGEN_DEVICE_FUNC
  function EIGEN_DEVICE_FUNC (line 155) | EIGEN_DEVICE_FUNC

FILE: extensions/ngp_raymarch/include/op_include/eigen/Eigen/src/Core/MapBase.h
  function namespace (line 20) | namespace Eigen {
  type typename (line 233) | typedef typename Base::Scalar Scalar;
  type typename (line 234) | typedef typename Base::PacketScalar PacketScalar;
  type typename (line 235) | typedef typename Base::StorageIndex StorageIndex;
  type typename (line 236) | typedef typename Base::PointerType PointerType;
  type typename (line 250) | typedef typename internal::conditional<
  function EIGEN_DEVICE_FUNC (line 256) | EIGEN_DEVICE_FUNC
  function EIGEN_DEVICE_FUNC (line 258) | EIGEN_DEVICE_FUNC
  function EIGEN_DEVICE_FUNC (line 261) | EIGEN_DEVICE_FUNC
  function EIGEN_DEVICE_FUNC (line 267) | EIGEN_DEVICE_FUNC
  function writePacket (line 275) | void writePacket(Index row, Index col, const PacketScalar& val)
  function writePacket (line 282) | void writePacket(Index index, const PacketScalar& val)
  function EIGEN_DEVICE_FUNC (line 289) | EIGEN_DEVICE_FUNC explicit inline MapBase(PointerType dataPtr) : Base(da...
  function EIGEN_DEVICE_FUNC (line 290) | EIGEN_DEVICE_FUNC inline MapBase(PointerType dataPtr, Index vecSize) : B...
  function EIGEN_DEVICE_FUNC (line 291) | EIGEN_DEVICE_FUNC inline MapBase(PointerType dataPtr, Index rows, Index ...

FILE: extensions/ngp_raymarch/include/op_include/eigen/Eigen/src/Core/MathFunctions.h
  function namespace (line 22) | namespace Eigen {
  type Scalar (line 825) | typedef Scalar type;
  function Scalar (line 838) | static inline Scalar run()
  type typename (line 899) | typedef typename make_unsigned<Scalar>::type ScalarU;
  type typename (line 903) | typedef typename conditional<(ScalarU(-1) > unsigned(-1)), ScalarU, unsi...
  function Scalar (line 921) | static inline Scalar run()
  function Scalar (line 944) | static inline Scalar run()
  function isinf_impl (line 1004) | bool>::type
  function isinf_msvc_helper (line 1036) | bool isinf_msvc_helper(T x)
  function EIGEN_DEVICE_FUNC (line 1042) | EIGEN_DEVICE_FUNC inline bool isnan_impl(const long double& x) { return ...
  function EIGEN_DEVICE_FUNC (line 1043) | EIGEN_DEVICE_FUNC inline bool isnan_impl(const double& x)      { return ...
  function EIGEN_DEVICE_FUNC (line 1044) | EIGEN_DEVICE_FUNC inline bool isnan_impl(const float& x)       { return ...
  function EIGEN_DEVICE_FUNC (line 1046) | EIGEN_DEVICE_FUNC inline bool isinf_impl(const long double& x) { return ...
  function EIGEN_DEVICE_FUNC (line 1047) | EIGEN_DEVICE_FUNC inline bool isinf_impl(const double& x)      { return ...
  function EIGEN_DEVICE_FUNC (line 1048) | EIGEN_DEVICE_FUNC inline bool isinf_impl(const float& x)       { return ...
  function isnan_impl (line 1060) | bool isnan_impl(const long double& x) { return __builtin_isnan(x); }
  function isnan_impl (line 1061) | bool isnan_impl(const double& x)      { return __builtin_isnan(x); }
  function isnan_impl (line 1062) | bool isnan_impl(const float& x)       { return __builtin_isnan(x); }
  function isinf_impl (line 1063) | bool isinf_impl(const double& x)      { return __builtin_isinf(x); }
  function isinf_impl (line 1064) | bool isinf_impl(const float& x)       { return __builtin_isinf(x); }
  function isinf_impl (line 1065) | bool isinf_impl(const long double& x) { return __builtin_isinf(x); }
  function namespace (line 1085) | namespace numext {
  function floor (line 1419) | float floor(const float &x) { return ::floorf(x); }
  function floor (line 1422) | double floor(const double &x) { return ::floor(x); }
  function ceil (line 1439) | float ceil(const float &x) { return ::ceilf(x); }
  function ceil (line 1442) | double ceil(const double &x) { return ::ceil(x); }
  function log2 (line 1448) | inline int log2(int x)
  function log (line 1507) | float log(const float &x) { return ::logf(x); }
  function log (line 1510) | double log(const double &x) { return ::log(x); }
  function typename (line 1523) | typename NumTraits<T>::Real>::type
  function abs (line 1535) | float abs(const float &x) { return ::fabsf(x); }
  function abs (line 1538) | double abs(const double &x) { return ::fabs(x); }
  function exp (line 1564) | float exp(const float &x) { return ::expf(x); }
  function exp (line 1567) | double exp(const double &x) { return ::exp(x); }
  function expm1 (line 1599) | float expm1(const float &x) { return ::expm1f(x); }
  function expm1 (line 1602) | double expm1(const double &x) { return ::expm1(x); }
  function cos (line 1618) | float cos(const float &x) { return ::cosf(x); }
  function cos (line 1621) | double cos(const double &x) { return ::cos(x); }
  function sin (line 1637) | float sin(const float &x) { return ::sinf(x); }
  function sin (line 1640) | double sin(const double &x) { return ::sin(x); }
  function tan (line 1656) | float tan(const float &x) { return ::tanf(x); }
  function tan (line 1659) | double tan(const double &x) { return ::tan(x); }
  function EIGEN_ALWAYS_INLINE (line 1671) | EIGEN_ALWAYS_INLINE
  function acos (line 1685) | float acos(const float &x) { return ::acosf(x); }
  function acos (line 1688) | double acos(const double &x) { return ::acos(x); }
  function EIGEN_ALWAYS_INLINE (line 1700) | EIGEN_ALWAYS_INLINE
  function asin (line 1714) | float asin(const float &x) { return ::asinf(x); }
  function asin (line 1717) | double asin(const double &x) { return ::asin(x); }
  function EIGEN_ALWAYS_INLINE (line 1729) | EIGEN_ALWAYS_INLINE
  function atan (line 1743) | float atan(const float &x) { return ::atanf(x); }
  function atan (line 1746) | double atan(const double &x) { return ::atan(x); }
  function cosh (line 1763) | float cosh(const float &x) { return ::coshf(x); }
  function cosh (line 1766) | double cosh(const double &x) { return ::cosh(x); }
  function sinh (line 1782) | float sinh(const float &x) { return ::sinhf(x); }
  function sinh (line 1785) | double sinh(const double &x) { return ::sinh(x); }
  function tanh (line 1797) | float tanh(float x) { return internal::generic_fast_tanh_float(x); }
  function tanh (line 1806) | float tanh(const float &x) { return ::tanhf(x); }
  function tanh (line 1809) | double tanh(const double &x) { return ::tanh(x); }
  function fmod (line 1826) | float fmod(const float& a, const float& b) {
  function fmod (line 1832) | double fmod(const double& a, const double& b) {
  function namespace (line 1856) | namespace internal {
  type typename (line 1909) | typedef typename NumTraits<Scalar>::Real RealScalar;
  function isMuchSmallerThan (line 1911) | static inline bool isMuchSmallerThan(const Scalar& x, const Scalar&, con...
  function EIGEN_DEVICE_FUNC (line 1915) | EIGEN_DEVICE_FUNC
  function EIGEN_DEVICE_FUNC (line 1920) | EIGEN_DEVICE_FUNC
  type typename (line 1930) | typedef typename NumTraits<Scalar>::Real RealScalar;
  function isMuchSmallerThan (line 1932) | static inline bool isMuchSmallerThan(const Scalar& x, const OtherScalar&...
  function EIGEN_DEVICE_FUNC (line 1936) | EIGEN_DEVICE_FUNC
  function isMuchSmallerThan (line 1947) | bool isMuchSmallerThan(const Scalar& x, const OtherScalar& y,
  function isApprox (line 1954) | bool isApprox(const Scalar& x, const Scalar& y,
  function isApproxOrLessThan (line 1961) | bool isApproxOrLessThan(const Scalar& x, const Scalar& y,
  function bool (line 1971) | struct random_impl<bool>
  function bool (line 1984) | struct scalar_fuzzy_impl<bool>
  function namespace (line 2011) | namespace internal {

FILE: extensions/ngp_raymarch/include/op_include/eigen/Eigen/src/Core/MathFunctionsImpl.h
  function namespace (line 16) | namespace Eigen {

FILE: extensions/ngp_raymarch/include/op_include/eigen/Eigen/src/Core/Matrix.h
  function namespace (line 16) | namespace Eigen {
  type PlainObjectBase (line 188) | typedef PlainObjectBase<Matrix> Base;
  function EIGEN_STRONG_INLINE (line 267) | EIGEN_STRONG_INLINE
  function EIGEN_STRONG_INLINE (line 293) | EIGEN_STRONG_INLINE
  function EIGEN_STRONG_INLINE (line 319) | EIGEN_STRONG_INLINE Matrix(const std::initializer_list<std::initializer_...
  function EIGEN_STRONG_INLINE (line 326) | EIGEN_STRONG_INLINE
  function EIGEN_STRONG_INLINE (line 333) | EIGEN_STRONG_INLINE
  function Base (line 408) | Matrix(const Matrix& other) : Base(other)
  function EIGEN_STRONG_INLINE (line 416) | EIGEN_STRONG_INLINE Matrix(const EigenBase<OtherDerived> &other)
  type internal (line 441) | struct internal

FILE: extensions/ngp_raymarch/include/op_include/eigen/Eigen/src/Core/MatrixBase.h
  function namespace (line 16) | namespace Eigen {

FILE: extensions/ngp_raymarch/include/op_include/eigen/Eigen/src/Core/NestByValue.h
  function namespace (line 16) | namespace Eigen {

FILE: extensions/ngp_raymarch/include/op_include/eigen/Eigen/src/Core/NoAlias.h
  function namespace (line 15) | namespace Eigen {

FILE: extensions/ngp_raymarch/include/op_include/eigen/Eigen/src/Core/NumTraits.h
  function namespace (line 15) | namespace Eigen {
  function run (line 58) | static int run() { return std::numeric_limits<T>::digits; }
  function EIGEN_CONSTEXPR (line 64) | EIGEN_CONSTEXPR
  function EIGEN_CONSTEXPR (line 76) | EIGEN_CONSTEXPR
  function namespace (line 82) | namespace numext {
  type T (line 168) | typedef T Real;
  type typename (line 169) | typedef typename internal::conditional<
  type T (line 174) | typedef T Nested;
  type T (line 175) | typedef T Literal;
  function Real (line 178) | static inline Real epsilon()
  function digits10 (line 184) | static inline int digits10()
  function digits (line 190) | static inline int digits()
  function min_exponent (line 196) | static inline int min_exponent()
  function max_exponent (line 202) | static inline int max_exponent()
  function Real (line 208) | static inline Real dummy_precision()
  function T (line 215) | static inline T highest() {
  function T (line 220) | static inline T lowest()  {
  function T (line 226) | static inline T infinity() {
  function T (line 231) | static inline T quiet_NaN() {
  type NumTraits (line 239) | struct NumTraits
  function dummy_precision (line 243) | static inline float dummy_precision() { return 1e-5f; }
  type NumTraits (line 246) | struct NumTraits
  function dummy_precision (line 249) | static inline double dummy_precision() { return 1e-12; }
  type NumTraits (line 252) | struct NumTraits
  function dummy_precision (line 256) | double dummy_precision() { return 1e-15l; }
  type Real_ (line 262) | typedef Real_ Real;
  type typename (line 263) | typedef typename NumTraits<Real_>::Literal Literal;
  function Real (line 273) | static inline Real epsilon() { return NumTraits<Real>::epsilon(); }
  function Real (line 275) | static inline Real dummy_precision() { return NumTraits<Real>::dummy_pre...
  function digits10 (line 277) | static inline int digits10() { return NumTraits<Real>::digits10(); }
  type typename (line 284) | typedef typename NumTraits<Scalar>::Real RealScalar;
  type Array (line 285) | typedef Array<RealScalar, Rows, Cols, Options, MaxRows, MaxCols> Real;
  type typename (line 286) | typedef typename NumTraits<Scalar>::NonInteger NonIntegerScalar;
  type Array (line 287) | typedef Array<NonIntegerScalar, Rows, Cols, Options, MaxRows, MaxCols> N...
  type ArrayType (line 288) | typedef ArrayType & Nested;
  type typename (line 289) | typedef typename NumTraits<Scalar>::Literal Literal;
  function RealScalar (line 302) | static inline RealScalar epsilon() { return NumTraits<RealScalar>::epsil...
  function RealScalar (line 304) | static inline RealScalar dummy_precision() { return NumTraits<RealScalar...
  function EIGEN_CONSTEXPR (line 306) | EIGEN_CONSTEXPR
  function string (line 310) | struct NumTraits<std::string>
  function void (line 333) | struct NumTraits<void> {}
  type NumTraits (line 335) | struct NumTraits

FILE: extensions/ngp_raymarch/include/op_include/eigen/Eigen/src/Core/PartialReduxEvaluator.h
  function namespace (line 15) | namespace Eigen {
  type typename (line 112) | typedef typename redux_traits<Func, Evaluator>::PacketType PacketScalar;
  function PacketType (line 116) | static PacketType run(const Evaluator &eval, const Func& func, Index size)
  type typename (line 143) | typedef typename internal::nested_eval<ArgType,1>::type ArgTypeNested;
  type typename (line 144) | typedef typename internal::add_const_on_value_type<ArgTypeNested>::type ...
  type typename (line 145) | typedef typename internal::remove_all<ArgTypeNested>::type ArgTypeNested...
  type typename (line 146) | typedef typename ArgType::Scalar InputScalar;
  type typename (line 147) | typedef typename XprType::Scalar Scalar;
  type typename (line 151) | typedef typename MemberOp::template Cost<int(TraversalSize)> CostOpType;
  function EIGEN_DEVICE_FUNC (line 172) | EIGEN_DEVICE_FUNC explicit evaluator(const XprType xpr)
  type typename (line 179) | typedef typename XprType::CoeffReturnType CoeffReturnType;
  function Scalar (line 182) | const Scalar coeff(Index i, Index j) const
  function Scalar (line 188) | const Scalar coeff(Index index) const
  function EIGEN_STRONG_INLINE (line 194) | EIGEN_STRONG_INLINE
  function EIGEN_DEVICE_FUNC (line 201) | EIGEN_DEVICE_FUNC

FILE: extensions/ngp_raymarch/include/op_include/eigen/Eigen/src/Core/PermutationMatrix.h
  function namespace (line 16) | namespace Eigen {
  type internal (line 302) | typedef internal::traits<PermutationMatrix> Traits;
  type typename (line 308) | typedef typename Traits::IndicesType IndicesType;
  type typename (line 309) | typedef typename Traits::StorageIndex StorageIndex;
  function explicit (line 317) | explicit inline PermutationMatrix(Index size) : m_indices(size)
  function m_indices (line 335) | inline PermutationMatrix(const MatrixBase<Other>& indices) : m_indices(i...
  function namespace (line 393) | namespace internal {
  type internal (line 410) | typedef internal::traits<Map> Traits;
  type typename (line 414) | typedef typename Traits::IndicesType IndicesType;
  type typename (line 415) | typedef typename IndicesType::Scalar StorageIndex;
  function m_indices (line 418) | inline Map(const StorageIndex* indicesPtr)
  function namespace (line 458) | namespace internal {
  type internal (line 491) | typedef internal::traits<PermutationWrapper> Traits;
  type typename (line 495) | typedef typename Traits::IndicesType IndicesType;
  function m_indices (line 498) | inline PermutationWrapper(const IndicesType& indices)
  type internal (line 542) | typedef internal::traits<PermutationType> PermTraits;
  type typename (line 550) | typedef typename PermutationType::DenseMatrixType DenseMatrixType;
  function namespace (line 599) | namespace internal {

FILE: extensions/ngp_raymarch/include/op_include/eigen/Eigen/src/Core/PlainObjectBase.h
  function namespace (line 29) | namespace internal {
  function namespace (line 64) | namespace doxygen {
  type typename (line 105) | typedef typename internal::dense_xpr_base<Derived>::type Base;
  type typename (line 107) | typedef typename internal::traits<Derived>::StorageKind StorageKind;
  type typename (line 108) | typedef typename internal::traits<Derived>::Scalar Scalar;
  type typename (line 110) | typedef typename internal::packet_traits<Scalar>::type PacketScalar;
  type typename (line 111) | typedef typename NumTraits<Scalar>::Real RealScalar;
  type Derived (line 112) | typedef Derived DenseType;
  type Eigen (line 123) | typedef Eigen::Map<Derived, Unaligned>  MapType;
  type Eigen (line 124) | typedef const Eigen::Map<const Derived, Unaligned> ConstMapType;
  type Eigen (line 125) | typedef Eigen::Map<Derived, AlignedMax> AlignedMapType;
  type Eigen (line 126) | typedef const Eigen::Map<const Derived, AlignedMax> ConstAlignedMapType;
  type Eigen (line 127) | typedef Eigen::Map<Derived, Unaligned, StrideType> type;
  type Eigen (line 128) | typedef Eigen::Map<const Derived, Unaligned, StrideType> type;
  type Eigen (line 129) | typedef Eigen::Map<Derived, AlignedMax, StrideType> type;
  type Eigen (line 130) | typedef Eigen::Map<const Derived, AlignedMax, StrideType> type;
  function Scalar (line 177) | const Scalar& coeff(Index index) const
  function Scalar (line 208) | const Scalar& coeffRef(Index rowId, Index colId) const
  function Scalar (line 219) | const Scalar& coeffRef(Index index) const
  function PacketScalar (line 226) | PacketScalar packet(Index rowId, Index colId) const
  function PacketScalar (line 236) | PacketScalar packet(Index index) const
  function writePacket (line 243) | void writePacket(Index rowId, Index colId, const PacketScalar& val)
  function writePacket (line 253) | void writePacket(Index index, const PacketScalar& val)
  function Scalar (line 259) | const Scalar *data() const
  function Scalar (line 263) | Scalar *data()
  function resize (line 283) | void resize(Index rows, Index cols)
  function EIGEN_DEVICE_FUNC (line 312) | EIGEN_DEVICE_FUNC
  function EIGEN_DEVICE_FUNC (line 337) | EIGEN_DEVICE_FUNC
  function EIGEN_DEVICE_FUNC (line 351) | EIGEN_DEVICE_FUNC
  function conservativeResize (line 394) | void conservativeResize(Index rows, Index cols)
  function conservativeResize (line 407) | void conservativeResize(Index rows, NoChange_t)
  function conservativeResize (line 421) | void conservativeResize(NoChange_t, Index cols)
  function conservativeResize (line 436) | void conservativeResize(Index size)
  function EIGEN_DEVICE_FUNC (line 496) | EIGEN_DEVICE_FUNC
  function EIGEN_DEVICE_FUNC (line 505) | EIGEN_DEVICE_FUNC
  function EIGEN_DEVICE_FUNC (line 523) | EIGEN_DEVICE_FUNC
  function EIGEN_STRONG_INLINE (line 542) | EIGEN_STRONG_INLINE
  function EIGEN_STRONG_INLINE (line 560) | EIGEN_STRONG_INLINE PlainObjectBase(const std::initializer_list<std::ini...
  function _init2 (line 827) | void _init2(const Index& val0, const Index& val1,
  function _init1 (line 865) | void _init1(const Index& val0,
  function _init1 (line 878) | void _init1(const Scalar* data){
  function _init1 (line 892) | void _init1(const Derived& other){
  function EIGEN_STRONG_INLINE (line 913) | EIGEN_STRONG_INLINE void _init1(const RotationBase<OtherDerived,ColsAtCo...

FILE: extensions/ngp_raymarch/include/op_include/eigen/Eigen/src/Core/Product.h
  function namespace (line 15) | namespace Eigen {
  type Rhs_ (line 81) | typedef Rhs_ Rhs;
  type typename (line 83) | typedef typename ProductImpl<
  type typename (line 91) | typedef typename internal::ref_selector<Rhs>::type RhsNested;
  type typename (line 92) | typedef typename internal::remove_all<LhsNested>::type LhsNestedCleaned;
  type typename (line 93) | typedef typename internal::remove_all<RhsNested>::type RhsNestedCleaned;
  function namespace (line 119) | namespace internal {

FILE: extensions/ngp_raymarch/include/op_include/eigen/Eigen/src/Core/ProductEvaluators.h
  function namespace (line 18) | namespace Eigen {
  type evaluator (line 58) | typedef evaluator<Product<EIGEN_SCALAR_BINARYOP_EXPR_RETURN_TYPE(Scalar1...
  function explicit (line 60) | explicit evaluator(const XprType& xpr)
  type evaluator (line 71) | typedef evaluator<Diagonal<const Product<Lhs, Rhs, LazyProduct>, DiagInd...
  function explicit (line 73) | explicit evaluator(const XprType& xpr)
  type typename (line 102) | typedef typename XprType::PlainObject PlainObject;
  type evaluator (line 103) | typedef evaluator<PlainObject> Base;
  function explicit (line 109) | explicit product_evaluator(const XprType& xpr)
  function run (line 143) | void run(DstXprType &dst, const SrcXprType &src, const internal::assign_...
  function run (line 161) | void run(DstXprType &dst, const SrcXprType &src, const internal::add_ass...
  function run (line 176) | void run(DstXprType &dst, const SrcXprType &src, const internal::sub_ass...
  function run (line 196) | void run(DstXprType &dst, const SrcXprType &src, const AssignFunc& func)
  function addTo (line 257) | void addTo(Dst& dst, const Lhs& lhs, const Rhs& rhs)
  function subTo (line 263) | void subTo(Dst& dst, const Lhs& lhs, const Rhs& rhs)
  type typename (line 545) | typedef typename find_best_packet<Scalar,RowsAtCompileTime>::type LhsVec...
  type typename (line 546) | typedef typename find_best_packet<Scalar,ColsAtCompileTime>::type RhsVec...
  function CoeffReturnType (line 606) | const CoeffReturnType coeff(Index row, Index col) const
  function CoeffReturnType (line 616) | const CoeffReturnType coeff(Index index) const
  function EIGEN_STRONG_INLINE (line 624) | EIGEN_STRONG_INLINE
  function EIGEN_STRONG_INLINE (line 636) | EIGEN_STRONG_INLINE
  type Product (line 659) | typedef Product<Lhs, Rhs, DefaultProduct> XprType;
  type Product (line 660) | typedef Product<Lhs, Rhs, LazyProduct> BaseProduct;
  type product_evaluator (line 661) | typedef product_evaluator<BaseProduct, CoeffBasedProductMode, DenseShape...
  function explicit (line 666) | explicit product_evaluator(const XprType& xpr)
  function run (line 678) | void run(Index row, Index col, const Lhs& lhs, const Rhs& rhs, Index inn...
  function run (line 688) | void run(Index row, Index col, const Lhs& lhs, const Rhs& rhs, Index inn...
  function run (line 698) | void run(Index row, Index col, const Lhs& lhs, const Rhs& rhs, Index /*i...
  function run (line 707) | void run(Index row, Index col, const Lhs& lhs, const Rhs& rhs, Index /*i...
  function run (line 716) | void run(Index /*row*/, Index /*col*/, const Lhs& /*lhs*/, const Rhs& /*...
  function run (line 725) | void run(Index /*row*/, Index /*col*/, const Lhs& /*lhs*/, const Rhs& /*...
  function run (line 734) | void run(Index row, Index col, const Lhs& lhs, const Rhs& rhs, Index inn...
  function run (line 745) | void run(Index row, Index col, const Lhs& lhs, const Rhs& rhs, Index inn...
  type typename (line 766) | typedef typename Product<Lhs,Rhs>::Scalar Scalar;
  type typename (line 780) | typedef typename Product<Lhs,Rhs>::Scalar Scalar;
  type typename (line 801) | typedef typename Product<Lhs,Rhs>::Scalar Scalar;
  function scaleAndAddTo (line 805) | void scaleAndAddTo(Dest& dst, const Lhs& lhs, const Rhs& rhs, const Scal...
  type typename (line 815) | typedef typename Product<Lhs,Rhs>::Scalar Scalar;
  type typename (line 833) | typedef typename ScalarBinaryOpTraits<typename MatrixType::Scalar, typename
  function EIGEN_DEVICE_FUNC (line 864) | EIGEN_DEVICE_FUNC diagonal_product_evaluator_base(const MatrixType &mat,...
  function Scalar (line 871) | const Scalar coeff(Index idx) const
  function PacketType (line 881) | PacketType packet_impl(Index row, Index col, Index id, internal::true_ty...
  function PacketType (line 888) | PacketType packet_impl(Index row, Index col, Index id, internal::false_t...
  type diagonal_product_evaluator_base (line 907) | typedef diagonal_product_evaluator_base<Rhs, typename
  type typename (line 911) | typedef typename Base::Scalar Scalar;
  type Product (line 913) | typedef Product<Lhs, Rhs, ProductKind> XprType;
  type typename (line 914) | typedef typename XprType::PlainObject PlainObject;
  type typename (line 915) | typedef typename Lhs::DiagonalVectorType DiagonalType;
  function EIGEN_DEVICE_FUNC (line 920) | EIGEN_DEVICE_FUNC explicit product_evaluator(const XprType& xpr)
  function Scalar (line 925) | const Scalar coeff(Index row, Index col) const
  function PacketType (line 932) | PacketType packet(Index row, Index col) const
  function PacketType (line 941) | PacketType packet(Index idx) const
  type diagonal_product_evaluator_base (line 953) | typedef diagonal_product_evaluator_base<Lhs, typename
  type typename (line 957) | typedef typename Base::Scalar Scalar;
  type Product (line 959) | typedef Product<Lhs, Rhs, ProductKind> XprType;
  type typename (line 960) | typedef typename XprType::PlainObject PlainObject;
  function EIGEN_DEVICE_FUNC (line 964) | EIGEN_DEVICE_FUNC explicit product_evaluator(const XprType& xpr)
  function Scalar (line 969) | const Scalar coeff(Index row, Index col) const
  function PacketType (line 976) | PacketType packet(Index row, Index col) const
  function PacketType (line 983) | PacketType packet(Index idx) const
  type typename (line 1005) | typedef typename nested_eval<ExpressionType, 1>::type MatrixType;
  type typename (line 1006) | typedef typename remove_all<MatrixType>::type MatrixTypeCleaned;
  function run (line 1009) | void run(Dest& dst, const PermutationType& perm, const ExpressionType& xpr)
  type typename (line 1113) | typedef typename nested_eval<ExpressionType, 1>::type MatrixType;
  type typename (line 1114) | typedef typename remove_all<MatrixType>::type MatrixTypeCleaned;
  function run (line 1117) | void run(Dest& dst, const TranspositionType& tr, const ExpressionType& xpr)

FILE: extensions/ngp_raymarch/include/op_include/eigen/Eigen/src/Core/Random.h
  function namespace (line 17) | namespace internal {

FILE: extensions/ngp_raymarch/include/op_include/eigen/Eigen/src/Core/Redux.h
  function namespace (line 18) | namespace internal {

FILE: extensions/ngp_raymarch/include/op_include/eigen/Eigen/src/Core/Ref.h
  function namespace (line 15) | namespace Eigen {
  type typename (line 66) | typedef typename internal::traits<Derived>::StrideType StrideType;
  type MapBase (line 69) | typedef MapBase<Derived> Base;
  function EIGEN_CONSTEXPR (line 72) | EIGEN_CONSTEXPR inline Index innerStride() const
  function Index (line 99) | Index resolveInnerStride(Index inner) {
  function Index (line 104) | Index resolveOuterStride(Index inner, Index outer, Index rows, Index col...
  type RefBase (line 337) | typedef RefBase<Ref> Base;
  function EIGEN_DEVICE_FUNC (line 350) | EIGEN_DEVICE_FUNC inline Ref(const Ref& other) : Base(other) {
  function construct (line 362) | void construct(const Expression& expr,internal::true_type)
  function construct (line 371) | void construct(const Expression& expr, internal::false_type)

FILE: extensions/ngp_raymarch/include/op_include/eigen/Eigen/src/Core/Replicate.h
  function namespace (line 15) | namespace Eigen {
  type typename (line 66) | typedef typename internal::traits<Replicate>::MatrixTypeNested MatrixTyp...
  type typename (line 67) | typedef typename internal::traits<Replicate>::_MatrixTypeNested _MatrixT...

FILE: extensions/ngp_raymarch/include/op_include/eigen/Eigen/src/Core/Reshaped.h
  function namespace (line 16) | namespace Eigen {
  function EIGEN_INHERIT_ASSIGNMENT_OPERATORS (line 105) | EIGEN_GENERIC_PUBLIC_INTERFACE(Reshaped)
  function EIGEN_DEVICE_FUNC (line 120) | EIGEN_DEVICE_FUNC
  function Impl (line 141) | inline ReshapedImpl(XprType& xpr) : Impl(xpr) {}
  function EIGEN_DEVICE_FUNC (line 142) | EIGEN_DEVICE_FUNC inline ReshapedImpl(XprType& xpr, Index reshapeRows, I...
  function namespace (line 146) | namespace internal {
  function EIGEN_DEVICE_FUNC (line 185) | EIGEN_DEVICE_FUNC inline Index innerStride() const;
  function EIGEN_DEVICE_FUNC (line 229) | EIGEN_DEVICE_FUNC
  function EIGEN_DEVICE_FUNC (line 241) | EIGEN_DEVICE_FUNC
  type typename (line 271) | typedef typename XprType::Scalar Scalar;
  type typename (line 273) | typedef typename packet_traits<Scalar>::type PacketScalar;
  type reshaped_evaluator (line 298) | typedef reshaped_evaluator<ArgType, Rows, Cols, Order, HasDirectAccess> ...
  function EIGEN_DEVICE_FUNC (line 299) | EIGEN_DEVICE_FUNC explicit evaluator(const XprType& xpr) : reshaped_eval...
  function EIGEN_DEVICE_FUNC (line 319) | EIGEN_DEVICE_FUNC explicit reshaped_evaluator(const XprType& xpr) : m_ar...
  type typename (line 324) | typedef typename XprType::Scalar Scalar;
  type typename (line 325) | typedef typename XprType::CoeffReturnType CoeffReturnType;
  type std (line 327) | typedef std::pair<Index, Index> RowCol;
  function RowCol (line 329) | inline RowCol index_remap(Index rowId, Index colId) const
  function EIGEN_DEVICE_FUNC (line 345) | EIGEN_DEVICE_FUNC
  function EIGEN_DEVICE_FUNC (line 353) | EIGEN_DEVICE_FUNC
  function CoeffReturnType (line 361) | const CoeffReturnType coeff(Index rowId, Index colId) const
  function EIGEN_DEVICE_FUNC (line 367) | EIGEN_DEVICE_FUNC
  function EIGEN_DEVICE_FUNC (line 377) | EIGEN_DEVICE_FUNC
  function EIGEN_DEVICE_FUNC (line 385) | EIGEN_DEVICE_FUNC
  function EIGEN_DEVICE_FUNC (line 393) | EIGEN_DEVICE_FUNC
  function writePacket (line 404) | inline void writePacket(Index rowId, Index colId, const PacketScalar& val)
  function PacketScalar (line 413) | inline PacketScalar packet(Index index) const
  function writePacket (line 422) | inline void writePacket(Index index, const PacketScalar& val)
  type typename (line 442) | typedef typename XprType::Scalar Scalar;

FILE: extensions/ngp_raymarch/include/op_include/eigen/Eigen/src/Core/ReturnByValue.h
  function namespace (line 16) | namespace Eigen {
  type typename (line 58) | typedef typename internal::dense_xpr_base<ReturnByValue>::type Base;
  function evalTo (line 63) | inline void evalTo(Dest& dst) const
  function class (line 72) | class Unusable{
  function namespace (line 92) | namespace internal {

FILE: extensions/ngp_raymarch/include/op_include/eigen/Eigen/src/Core/Reverse.h
  function namespace (line 17) | namespace Eigen {
  type internal (line 87) | typedef internal::reverse_packet_cond<PacketScalar,ReversePacket> revers...
  function m_matrix (line 90) | inline Reverse(const MatrixType& matrix) : m_matrix(matrix) { }
  function EIGEN_CONSTEXPR (line 94) | EIGEN_CONSTEXPR
  function reverseInPlace (line 143) | inline void DenseBase<Derived>::reverseInPlace()
  function namespace (line 167) | namespace internal {

FILE: extensions/ngp_raymarch/include/op_include/eigen/Eigen/src/Core/Select.h
  function namespace (line 15) | namespace Eigen {
  function EIGEN_DEVICE_FUNC (line 77) | inline EIGEN_DEVICE_FUNC
  function EIGEN_DEVICE_FUNC (line 86) | inline EIGEN_DEVICE_FUNC

FILE: extensions/ngp_raymarch/include/op_include/eigen/Eigen/src/Core/SelfAdjointView.h
  function namespace (line 15) | namespace Eigen {
  type TriangularBase (line 58) | typedef TriangularBase<SelfAdjointView> Base;
  type typename (line 59) | typedef typename internal::traits<SelfAdjointView>::MatrixTypeNested Mat...
  type typename (line 60) | typedef typename internal::traits<SelfAdjointView>::MatrixTypeNestedClea...
  type MatrixTypeNestedCleaned (line 61) | typedef MatrixTypeNestedCleaned NestedExpression;
  type typename (line 64) | typedef typename internal::traits<SelfAdjointView>::Scalar Scalar;
  type typename (line 65) | typedef typename MatrixType::StorageIndex StorageIndex;
  type typename (line 66) | typedef typename internal::remove_all<typename
  type SelfAdjointView (line 67) | typedef SelfAdjointView<typename
  type typename (line 74) | typedef typename MatrixType::PlainObject PlainObject;
  function m_matrix (line 77) | inline SelfAdjointView(MatrixType& matrix) : m_matrix(matrix) { }
  function EIGEN_DEVICE_FUNC (line 91) | EIGEN_DEVICE_FUNC
  function EIGEN_DEVICE_FUNC (line 101) | EIGEN_DEVICE_FUNC
  function EIGEN_DEVICE_FUNC (line 115) | EIGEN_DEVICE_FUNC
  type SelfAdjointView (line 195) | typedef SelfAdjointView<const MatrixConjugateReturnType,UpLo> ConjugateR...
  function EIGEN_DEVICE_FUNC (line 197) | EIGEN_DEVICE_FUNC
  type typename (line 297) | typedef typename Base::DstXprType DstXprType;
  type typename (line 298) | typedef typename Base::SrcXprType SrcXprType;
  type typename (line 305) | typedef typename Base::SrcEvaluatorType SrcEvaluatorType;
  type typename (line 306) | typedef typename Base::Scalar Scalar;
  type typename (line 307) | typedef typename Base::AssignmentTraits AssignmentTraits;
  function EIGEN_DEVICE_FUNC (line 310) | EIGEN_DEVICE_FUNC triangular_dense_assignment_kernel(DstEvaluatorType &d...
  function EIGEN_DEVICE_FUNC (line 314) | EIGEN_DEVICE_FUNC void assignCoeff(Index row, Index col)
  function EIGEN_DEVICE_FUNC (line 322) | EIGEN_DEVICE_FUNC void assignDiagonalCoeff(Index id)
  function EIGEN_DEVICE_FUNC (line 327) | EIGEN_DEVICE_FUNC void assignOppositeCoeff(Index, Index)

FILE: extensions/ngp_raymarch/include/op_include/eigen/Eigen/src/Core/SelfCwiseBinaryOp.h
  function namespace (line 15) | namespace Eigen {

FILE: extensions/ngp_raymarch/include/op_include/eigen/Eigen/src/Core/Solve.h
  function namespace (line 15) | namespace Eigen {
  type typename (line 68) | typedef typename internal::traits<Solve>::StorageIndex StorageIndex;
  function namespace (line 112) | namespace internal {
  type Solve (line 141) | typedef Solve<DecType,RhsType> SrcXprType;
  function run (line 142) | static void run(DstXprType &dst, const SrcXprType &src, const internal::...
  type Solve (line 157) | typedef Solve<Transpose<const DecType>,RhsType> SrcXprType;
  function run (line 158) | static void run(DstXprType &dst, const SrcXprType &src, const internal::...
  function run (line 175) | static void run(DstXprType &dst, const SrcXprType &src, const internal::...

FILE: extensions/ngp_raymarch/include/op_include/eigen/Eigen/src/Core/SolveTriangular.h
  function namespace (line 15) | namespace Eigen {
  function EIGEN_DEVICE_FUNC (line 123) | static EIGEN_DEVICE_FUNC void run(const Lhs& lhs, Rhs& rhs)
  function EIGEN_DEVICE_FUNC (line 143) | static EIGEN_DEVICE_FUNC void run(const Lhs& lhs, Rhs& rhs)
  type typename (line 179) | typedef typename internal::conditional<copy,
  function namespace (line 199) | namespace internal {
  type ReturnByValue (line 212) | typedef ReturnByValue<triangular_solve_retval> Base;

FILE: extensions/ngp_raymarch/include/op_include/eigen/Eigen/src/Core/SolverBase.h
  function namespace (line 15) | namespace Eigen {
  type typename (line 75) | typedef typename internal::traits<Derived>::Scalar Scalar;
  type Scalar (line 76) | typedef Scalar CoeffReturnType;
  type internal (line 79) | struct internal
  type typename (line 115) | typedef typename internal::add_const<Transpose<const Derived> >::type Co...
  function ConstTransposeReturnType (line 123) | inline ConstTransposeReturnType transpose() const
  function namespace (line 157) | namespace internal {

FILE: extensions/ngp_raymarch/include/op_include/eigen/Eigen/src/Core/StableNorm.h
  function namespace (line 15) | namespace Eigen {

FILE: extensions/ngp_raymarch/include/op_include/eigen/Eigen/src/Core/StlIterators.h
  function namespace (line 15) | namespace Eigen {
  function operator (line 80) | bool operator< (const indexed_based_stl_iterator_base& other) const { ei...
  function operator (line 82) | bool operator> (const indexed_based_stl_iterator_base& other) const { ei...
  function operator (line 87) | bool operator< (const other_iterator& other) const { eigen_assert(mp_xpr...
  function operator (line 89) | bool operator> (const other_iterator& other) const { eigen_assert(mp_xpr...
  type typename (line 106) | typedef typename traits::XprType XprType;
  type indexed_based_stl_reverse_iterator_base (line 107) | typedef indexed_based_stl_reverse_iterator_base<typename
  type indexed_based_stl_reverse_iterator_base (line 108) | typedef indexed_based_stl_reverse_iterator_base<typename
  type typename (line 109) | typedef typename internal::conditional<internal::is_const<XprType>::valu...
  type std (line 115) | typedef std::random_access_iterator_tag iterator_category;
  function operator (line 159) | bool operator< (const indexed_based_stl_reverse_iterator_base& other) co...
  function operator (line 161) | bool operator> (const indexed_based_stl_reverse_iterator_base& other) co...
  function operator (line 166) | bool operator< (const other_iterator& other) const { eigen_assert(mp_xpr...
  function operator (line 168) | bool operator> (const other_iterator& other) const { eigen_assert(mp_xpr...
  type pointer_based_stl_iterator (line 184) | typedef pointer_based_stl_iterator<typename
  type pointer_based_stl_iterator (line 185) | typedef pointer_based_stl_iterator<typename
  type typename (line 186) | typedef typename internal::conditional<internal::is_const<XprType>::valu...
  type typename (line 192) | typedef typename XprType::Scalar value_type;
  type std (line 193) | typedef std::random_access_iterator_tag iterator_category;
  type typename (line 194) | typedef typename internal::conditional<bool(is_lvalue), value_type*, const
  type typename (line 195) | typedef typename internal::conditional<bool(is_lvalue), value_type&, const
  function reference (line 215) | reference operator*()         const { return *m_ptr;   }
  function reference (line 216) | reference operator[](Index i) const { return *(m_ptr+i*m_incr.value()); }
  function pointer (line 217) | pointer   operator->()        const { return m_ptr;    }
  function operator (line 243) | bool operator< (const pointer_based_stl_iterator& other) const { return ...
  function operator (line 245) | bool operator> (const pointer_based_stl_iterator& other) const { return ...
  function operator (line 250) | bool operator< (const other_iterator& other) const { return m_ptr <  oth...
  function operator (line 252) | bool operator> (const other_iterator& other) const { return m_ptr >  oth...
  type XprType_ (line 264) | typedef XprType_ XprType;
  type generic_randaccess_stl_iterator (line 265) | typedef generic_randaccess_stl_iterator<typename
  type generic_randaccess_stl_iterator (line 266) | typedef generic_randaccess_stl_iterator<typename
  type indexed_based_stl_iterator_base (line 282) | typedef indexed_based_stl_iterator_base<generic_randaccess_stl_iterator>...
  type value_type (line 289) | typedef const value_type read_only_ref_t;
  type typename (line 294) | typedef typename internal::conditional<bool(is_lvalue), value_type&, rea...
  function Base (line 298) | generic_randaccess_stl_iterator(const typename Base::non_const_iterator&...
  function reference (line 301) | reference operator*()         const { return   (*mp_xpr)(m_index);   }
  function reference (line 302) | reference operator[](Index i) const { return   (*mp_xpr)(m_index+i); }
  function pointer (line 303) | pointer   operator->()        const { return &((*mp_xpr)(m_index)); }
  type subvector_stl_iterator (line 310) | typedef subvector_stl_iterator<typename
  type subvector_stl_iterator (line 311) | typedef subvector_stl_iterator<typename
  type indexed_based_stl_iterator_base (line 321) | typedef indexed_based_stl_iterator_base<subvector_stl_iterator> Base;
  type typename (line 325) | typedef typename internal::conditional<Direction==Vertical,typename
  type typename (line 326) | typedef typename internal::conditional<Direction==Vertical,typename
  type typename (line 331) | typedef typename reference::PlainObject value_type;
  function reference (line 349) | reference operator*()         const { return (*mp_xpr).template subVecto...
  function reference (line 350) | reference operator[](Index i) const { return (*mp_xpr).template subVecto...
  function pointer (line 351) | pointer   operator->()        const { return (*mp_xpr).template subVecto...
  type subvector_stl_reverse_iterator (line 358) | typedef subvector_stl_reverse_iterator<typename
  type subvector_stl_reverse_iterator (line 359) | typedef subvector_stl_reverse_iterator<typename
  type indexed_based_stl_reverse_iterator_base (line 369) | typedef indexed_based_stl_reverse_iterator_base<subvector_stl_reverse_it...
  type typename (line 373) | typedef typename internal::conditional<Direction==Vertical,typename
  type typename (line 374) | typedef typename internal::conditional<Direction==Vertical,typename
  type typename (line 379) | typedef typename reference::PlainObject value_type;
  function reference (line 397) | reference operator*()         const { return (*mp_xpr).template subVecto...
  function reference (line 398) | reference operator[](Index i) const { return (*mp_xpr).template subVecto...
  function pointer (line 399) | pointer   operator->()        const { return (*mp_xpr).template subVecto...

FILE: extensions/ngp_raymarch/include/op_include/eigen/Eigen/src/Core/Stride.h
  function namespace (line 15) | namespace Eigen {

FILE: extensions/ngp_raymarch/include/op_include/eigen/Eigen/src/Core/Swap.h
  function namespace (line 15) | namespace Eigen {

FILE: extensions/ngp_raymarch/include/op_include/eigen/Eigen/src/Core/Transpose.h
  function namespace (line 16) | namespace Eigen {
  function namespace (line 95) | namespace internal {
  type typename (line 135) | typedef typename internal::conditional<
  function ScalarWithConstIfNotLvalue (line 142) | ScalarWithConstIfNotLvalue* data() { return derived().nestedExpression()...
  function Scalar (line 144) | const Scalar* data() const { return derived().nestedExpression().data(); }
  function Scalar (line 148) | const Scalar& coeffRef(Index rowId, Index colId) const
  function Scalar (line 154) | const Scalar& coeffRef(Index index) const
  function namespace (line 232) | namespace internal {
  type typename (line 251) | typedef typename MatrixType::Scalar Scalar;
  type typename (line 252) | typedef typename internal::packet_traits<typename
  type typename (line 267) | typedef typename MatrixType::Scalar Scalar;
  type typename (line 268) | typedef typename internal::packet_traits<typename
  type typename (line 305) | typedef typename MatrixType::Scalar Scalar;
  function transposeInPlace (line 346) | inline void DenseBase<Derived>::transposeInPlace()
  function adjointInPlace (line 377) | inline void MatrixBase<Derived>::adjointInPlace()
  function namespace (line 386) | namespace internal {
  function run (line 405) | static bool run(const Scalar* dest, const OtherDerived& src)
  function run (line 434) | static void run(const Derived& dst, const OtherDerived& other)

FILE: extensions/ngp_raymarch/include/op_include/eigen/Eigen/src/Core/Transpositions.h
  function namespace (line 15) | namespace Eigen {
  type typename (line 163) | typedef typename Traits::IndicesType IndicesType;
  type typename (line 164) | typedef typename IndicesType::Scalar StorageIndex;
  function m_indices (line 175) | inline Transpositions(const MatrixBase<Other>& indices) : m_indices(indi...
  function m_indices (line 187) | inline Transpositions(Index size) : m_indices(size)
  function EIGEN_DEVICE_FUNC (line 194) | EIGEN_DEVICE_FUNC
  function namespace (line 203) | namespace internal {
  type typename (line 222) | typedef typename Traits::IndicesType IndicesType;
  type typename (line 223) | typedef typename IndicesType::Scalar StorageIndex;
  function explicit (line 225) | explicit inline Map(const StorageIndex* indicesPtr)
  function EIGEN_DEVICE_FUNC (line 256) | EIGEN_DEVICE_FUNC
  function namespace (line 264) | namespace internal {
  type typename (line 281) | typedef typename Traits::IndicesType IndicesType;
  type typename (line 282) | typedef typename IndicesType::Scalar StorageIndex;
  function explicit (line 284) | explicit inline TranspositionsWrapper(IndicesType& indices)
  function EIGEN_DEVICE_FUNC (line 300) | EIGEN_DEVICE_FUNC
  function namespace (line 336) | namespace internal {
  type TranspositionsDerived (line 348) | typedef TranspositionsDerived TranspositionType;
  type typename (line 349) | typedef typename TranspositionType::IndicesType IndicesType;

FILE: extensions/ngp_raymarch/include/op_include/eigen/Eigen/src/Core/TriangularMatrix.h
  function namespace (line 16) | namespace Eigen {
  type typename (line 195) | typedef typename internal::traits<TriangularView>::Scalar Scalar;
  type MatrixType_ (line 196) | typedef MatrixType_ MatrixType;
  type typename (line 200) | typedef typename internal::traits<TriangularView>::MatrixTypeNestedNonRe...
  type typename (line 202) | typedef typename internal::remove_all<typename
  type TriangularView (line 203) | typedef TriangularView<typename
  type typename (line 208) | typedef typename internal::traits<TriangularView>::MatrixTypeNestedClean...
  function m_matrix (line 221) | inline TriangularView(MatrixType& matrix) : m_matrix(matrix)
  function EIGEN_CONSTEXPR (line 227) | EIGEN_CONSTEXPR
  function EIGEN_DEVICE_FUNC (line 238) | EIGEN_DEVICE_FUNC
  type TriangularView (line 241) | typedef TriangularView<const MatrixConjugateReturnType,Mode> ConjugateRe...
  function EIGEN_DEVICE_FUNC (line 243) | EIGEN_DEVICE_FUNC
  type TriangularBase (line 354) | typedef TriangularBase<TriangularViewType> Base;
  type typename (line 355) | typedef typename internal::traits<TriangularViewType>::Scalar Scalar;
  type MatrixType_ (line 357) | typedef MatrixType_ MatrixType;
  type typename (line 358) | typedef typename MatrixType::PlainObject DenseMatrixType;
  type DenseMatrixType (line 359) | typedef DenseMatrixType PlainObject;
  type typename (line 365) | typedef typename internal::traits<TriangularViewType>::StorageKind Stora...
  function EIGEN_DEVICE_FUNC (line 404) | EIGEN_DEVICE_FUNC
  function EIGEN_DEVICE_FUNC (line 407) | EIGEN_DEVICE_FUNC
  function EIGEN_DEVICE_FUNC (line 411) | EIGEN_DEVICE_FUNC
  function EIGEN_DEVICE_FUNC (line 414) | EIGEN_DEVICE_FUNC
  function EIGEN_DEVICE_FUNC (line 420) | EIGEN_DEVICE_FUNC
  function EIGEN_DEVICE_FUNC (line 430) | EIGEN_DEVICE_FUNC
  function solveInPlace (line 524) | void solveInPlace(const MatrixBase<OtherDerived>& other) const
  function swap (line 533) | void swap(TriangularBase<OtherDerived> const & other)
  function namespace (line 719) | namespace internal {
  type evaluator (line 737) | typedef evaluator<typename
  function EIGEN_DEVICE_FUNC (line 738) | EIGEN_DEVICE_FUNC
  type Triangular2Triangular (line 743) | struct Triangular2Triangular    {}
  type Triangular2Dense (line 744) | struct Triangular2Dense         {}
  type Dense2Triangular (line 745) | struct Dense2Triangular         {}
  type typename (line 761) | typedef typename Base::DstXprType DstXprType;
  type typename (line 762) | typedef typename Base::SrcXprType SrcXprType;
  type typename (line 769) | typedef typename Base::SrcEvaluatorType SrcEvaluatorType;
  type typename (line 770) | typedef typename Base::Scalar Scalar;
  type typename (line 771) | typedef typename Base::AssignmentTraits AssignmentTraits;
  function EIGEN_DEVICE_FUNC (line 774) | EIGEN_DEVICE_FUNC triangular_dense_assignment_kernel(DstEvaluatorType &d...
  function EIGEN_DEVICE_FUNC (line 779) | EIGEN_DEVICE_FUNC void assignCoeff(Index row, Index col)
  function EIGEN_DEVICE_FUNC (line 788) | EIGEN_DEVICE_FUNC void assignDiagonalCoeff(Index id)
  function EIGEN_DEVICE_FUNC (line 795) | EIGEN_DEVICE_FUNC void assignOppositeCoeff(Index row, Index col)
  type evaluator (line 807) | typedef evaluator<DstXprType> DstEvaluatorType;
  type evaluator (line 808) | typedef evaluator<SrcXprType> SrcEvaluatorType;
  type triangular_dense_assignment_kernel (line 818) | typedef triangular_dense_assignment_kernel< Mode
  function Kernel (line 820) | Kernel kernel(dstEvaluator, srcEvaluator, func, dst.const_cast_derived());
  type AssignmentKind (line 839) | struct AssignmentKind
  type Triangular2Dense (line 839) | typedef Triangular2Dense      Kind;
  type AssignmentKind (line 840) | struct AssignmentKind
  type Dense2Triangular (line 840) | typedef Dense2Triangular      Kind;
  type typename (line 878) | typedef typename DstEvaluatorType::XprType DstXprType;
  type typename (line 885) | typedef typename Kernel::Scalar Scalar;
  function namespace (line 960) | namespace internal {
  function run (line 983) | static void run(DstXprType &dst, const SrcXprType &src, const internal::...
  function run (line 994) | static void run(DstXprType &dst, const SrcXprType &src, const internal::...

FILE: extensions/ngp_raymarch/include/op_include/eigen/Eigen/src/Core/VectorBlock.h
  function namespace (line 16) | namespace Eigen {

FILE: extensions/ngp_raymarch/include/op_include/eigen/Eigen/src/Core/VectorwiseOp.h
  function namespace (line 16) | namespace Eigen {
  function namespace (line 106) | namespace internal {
  type typename (line 193) | typedef typename ExpressionType::RealScalar RealScalar;
  type Eigen (line 194) | typedef Eigen::Index Index;
  type typename (line 195) | typedef typename internal::ref_selector<ExpressionType>::non_const_type ...
  type typename (line 196) | typedef typename internal::remove_all<ExpressionTypeNested>::type Expres...
  type PartialReduxExpr (line 201) | typedef PartialReduxExpr<ExpressionType,
  type PartialReduxExpr (line 209) | typedef PartialReduxExpr<ExpressionType,
  type Replicate (line 223) | typedef Replicate<OtherDerived,
  type Replicate (line 246) | typedef Replicate<OtherDerived,
  function m_matrix (line 270) | inline VectorwiseOp(ExpressionType& matrix) : m_matrix(matrix) {}
  function EIGEN_DEVICE_FUNC (line 273) | EIGEN_DEVICE_FUNC
  function reverse_iterator (line 302) | reverse_iterator        rbegin()       { return reverse_iterator       (...
  function iterator (line 311) | iterator                 end()         { return iterator      (m_matrix,...
  function reverse_iterator (line 320) | reverse_iterator        rend()         { return reverse_iterator       (...
  type typename (line 345) | typedef typename ReturnType<internal::member_minCoeff>::Type MinCoeffRet...
  type typename (line 346) | typedef typename ReturnType<internal::member_maxCoeff>::Type MaxCoeffRet...
  type PartialReduxExpr (line 347) | typedef PartialReduxExpr<const CwiseUnaryOp<internal::scalar_abs2_op<Sca...
  type CwiseUnaryOp (line 348) | typedef CwiseUnaryOp<internal::scalar_sqrt_op<RealScalar>, const
  type typename (line 349) | typedef typename ReturnType<internal::member_blueNorm,RealScalar>::Type ...
  type typename (line 350) | typedef typename ReturnType<internal::member_stableNorm,RealScalar>::Typ...
  type typename (line 351) | typedef typename ReturnType<internal::member_hypotNorm,RealScalar>::Type...
  type typename (line 352) | typedef typename ReturnType<internal::member_sum>::Type SumReturnType;
  type MeanReturnType (line 353) | typedef EIGEN_EXPR_BINARYOP_SCALAR_RETURN_TYPE(SumReturnType,Scalar,quot...
  type typename (line 354) | typedef typename ReturnType<internal::member_all>::Type AllReturnType;
  type typename (line 355) | typedef typename ReturnType<internal::member_any>::Type AnyReturnType;
  type PartialReduxExpr (line 356) | typedef PartialReduxExpr<ExpressionType, internal::member_count<Index,Sc...
  type typename (line 357) | typedef typename ReturnType<internal::member_prod>::Type ProdReturnType;
  type Reverse (line 358) | typedef Reverse<const ExpressionType, Direction> ConstReverseReturnType;
  type Reverse (line 359) | typedef Reverse<ExpressionType, Direction> ReverseReturnType;
  type PartialReduxExpr (line 362) | typedef PartialReduxExpr<ExpressionType, internal::member_lpnorm<p,RealS...
  function EIGEN_DEVICE_FUNC (line 411) | EIGEN_DEVICE_FUNC
  function typename (line 437) | const typename LpNormReturnType<p>::Type lpNorm() const
  function EIGEN_DEVICE_FUNC (line 506) | EIGEN_DEVICE_FUNC

FILE: extensions/ngp_raymarch/include/op_include/eigen/Eigen/src/Core/Visitor.h
  function namespace (line 15) | namespace Eigen {
  function run (line 52) | static inline void run(const Derived &/*mat*/, Visitor& /*visitor*/)
  function run (line 60) | static inline void run(const Derived& mat, Visitor& visitor)
  type typename (line 75) | typedef typename packet_traits<Scalar>::type Packet;
  function EIGEN_DEVICE_FUNC (line 77) | EIGEN_DEVICE_FUNC
  function EIGEN_DEVICE_FUNC (line 121) | EIGEN_DEVICE_FUNC
  type typename (line 124) | typedef typename XprType::Scalar Scalar;
  type typename (line 125) | typedef typename internal::remove_const<typename
  type typename (line 126) | typedef typename internal::remove_const<typename
  function EIGEN_DEVICE_FUNC (line 132) | EIGEN_DEVICE_FUNC CoeffReturnType coeff(Index row, Index col) const
  function EIGEN_DEVICE_FUNC (line 134) | EIGEN_DEVICE_FUNC PacketReturnType packet(Index row, Index col) const
  type typename (line 171) | typedef typename internal::visitor_evaluator<Derived> ThisEvaluator;
  function namespace (line 181) | namespace internal {
  type typename (line 207) | typedef typename packet_traits<Scalar>::type Packet;
  function EIGEN_DEVICE_FUNC (line 208) | static EIGEN_DEVICE_FUNC inline bool compare(Scalar a, Scalar b) { retur...
  function EIGEN_DEVICE_FUNC (line 209) | static EIGEN_DEVICE_FUNC inline Scalar predux(const Packet& p) { return ...
  function EIGEN_DEVICE_FUNC (line 215) | static EIGEN_DEVICE_FUNC inline bool compare(Scalar a, Scalar b) { retur...
  function EIGEN_DEVICE_FUNC (line 216) | static EIGEN_DEVICE_FUNC inline Scalar predux(const Packet& p) { return ...
  function EIGEN_DEVICE_FUNC (line 226) | EIGEN_DEVICE_FUNC inline
  function EIGEN_DEVICE_FUNC (line 236) | EIGEN_DEVICE_FUNC inline
  function EIGEN_DEVICE_FUNC (line 260) | EIGEN_DEVICE_FUNC inline
  function EIGEN_DEVICE_FUNC (line 270) | EIGEN_DEVICE_FUNC inline
  function EIGEN_DEVICE_FUNC (line 296) | EIGEN_DEVICE_FUNC inline
  function EIGEN_DEVICE_FUNC (line 307) | EIGEN_DEVICE_FUNC inline
  function typename (line 348) | typename internal::traits<Derived>::Scalar
  function typename (line 373) | typename internal::traits<Derived>::Scalar
  function typename (line 399) | typename internal::traits<Derived>::Scalar
  function typename (line 424) | typename internal::traits<Derived>::Scalar

FILE: extensions/ngp_raymarch/include/op_include/eigen/Eigen/src/Core/arch/AVX/Complex.h
  function namespace (line 15) | namespace Eigen {
  function Packet4cf (line 149) | Packet4cf preverse(const Packet4cf& a) {
  type Packet2cd (line 188) | struct Packet2cd
  type packet_traits (line 196) | struct packet_traits
  function default_packet_traits (line 196) | double> >  : default_packet_traits
  function Packet2cd (line 221) | struct unpacket_traits<Packet2cd> {
  function Packet2cd (line 236) | Packet2cd pnegate(const Packet2cd& a) { return Packet2cd(pnegate(a.v)); }
  function Packet2cd (line 237) | Packet2cd pconj(const Packet2cd& a)
  function Packet2cd (line 254) | Packet2cd pcmp_eq(const Packet2cd& a, const Packet2cd& b) {
  function Packet2cd (line 304) | Packet2cd preverse(const Packet2cd& a) {

FILE: extensions/ngp_raymarch/include/op_include/eigen/Eigen/src/Core/arch/AVX/MathFunctions.h
  function namespace (line 19) | namespace Eigen {

FILE: extensions/ngp_raymarch/include/op_include/eigen/Eigen/src/Core/arch/AVX/PacketMath.h
  function namespace (line 15) | namespace Eigen {
  function Packet8f (line 255) | Packet8f pzero(const Packet8f& /*a*/) { return _mm256_setzero_ps(); }
  function Packet4d (line 256) | Packet4d pzero(const Packet4d& /*a*/) { return _mm256_setzero_pd(); }
  function Packet8i (line 257) | Packet8i pzero(const Packet8i& /*a*/) { return _mm256_setzero_si256(); }
  function Packet8f (line 260) | Packet8f peven_mask(const Packet8f& /*a*/) { return _mm256_castsi256_ps(...
  function Packet8i (line 261) | Packet8i peven_mask(const Packet8i& /*a*/) { return _mm256_set_epi32(0, ...
  function Packet4d (line 262) | Packet4d peven_mask(const Packet4d& /*a*/) { return _mm256_castsi256_pd(...
  function Packet8f (line 295) | Packet8f pnegate(const Packet8f& a)
  function Packet4d (line 299) | Packet4d pnegate(const Packet4d& a)
  function Packet8i (line 303) | Packet8i pnegate(const Packet8i& a)
  function Packet8f (line 308) | Packet8f pconj(const Packet8f& a) { return a; }
  function Packet4d (line 309) | Packet4d pconj(const Packet4d& a) { return a; }
  function Packet8i (line 310) | Packet8i pconj(const Packet8i& a) { return a; }
  function Packet8h (line 1105) | struct unpacket_traits<Packet8h> { typedef Eigen::half type; enum {size=...
  function EIGEN_STRONG_INLINE (line 1157) | EIGEN_STRONG_INLINE Packet8f half2float(const Packet8h& a) {
  function EIGEN_STRONG_INLINE (line 1167) | EIGEN_STRONG_INLINE Packet8h float2half(const Packet8f& a) {
  function EIGEN_STRONG_INLINE (line 1412) | EIGEN_STRONG_INLINE Packet8f Bf16ToF32(const Packet8bf& a) {
  function EIGEN_STRONG_INLINE (line 1426) | EIGEN_STRONG_INLINE Packet8bf F32ToBf16(const Packet8f& a) {

FILE: extensions/ngp_raymarch/include/op_include/eigen/Eigen/src/Core/arch/AVX/TypeCasting.h
  function namespace (line 15) | namespace Eigen {

FILE: extensions/ngp_raymarch/include/op_include/eigen/Eigen/src/Core/arch/AVX512/Complex.h
  function namespace (line 15) | namespace Eigen {
  function Packet8cf (line 134) | Packet8cf preverse(const Packet8cf& a) {
  type Packet4cd (line 173) | struct Packet4cd
  type packet_traits (line 180) | struct packet_traits
  function default_packet_traits (line 180) | double> >  : default_packet_traits
  function Packet4cd (line 204) | struct unpacket_traits<Packet4cd> {
  function Packet4cd (line 219) | Packet4cd pnegate(const Packet4cd& a) { return Packet4cd(pnegate(a.v)); }
  function Packet4cd (line 220) | Packet4cd pconj(const Packet4cd& a)
  function Packet4cd (line 244) | Packet4cd pcmp_eq(const Packet4cd& a, const Packet4cd& b) {
  function Packet4cd (line 296) | Packet4cd preverse(const Packet4cd& a) {

FILE: extensions/ngp_raymarch/include/op_include/eigen/Eigen/src/Core/arch/AVX512/MathFunctions.h
  function namespace (line 15) | namespace Eigen {

FILE: extensions/ngp_raymarch/include/op_include/eigen/Eigen/src/Core/arch/AVX512/PacketMath.h
  function namespace (line 15) | namespace Eigen {
  function Packet16f (line 220) | Packet16f pzero(const Packet16f& /*a*/) { return _mm512_setzero_ps(); }
  function Packet8d (line 221) | Packet8d pzero(const Packet8d& /*a*/) { return _mm512_setzero_pd(); }
  function Packet16i (line 222) | Packet16i pzero(const Packet16i& /*a*/) { return _mm512_setzero_si512(); }
  function Packet16f (line 224) | Packet16f peven_mask(const Packet16f& /*a*/) {
  function Packet16i (line 228) | Packet16i peven_mask(const Packet16i& /*a*/) {
  function Packet8d (line 232) | Packet8d peven_mask(const Packet8d& /*a*/) {
  function Packet16f (line 298) | Packet16f pnegate(const Packet16f& a) {
  function Packet8d (line 302) | Packet8d pnegate(const Packet8d& a) {
  function Packet16i (line 306) | Packet16i pnegate(const Packet16i& a) {
  function Packet16f (line 311) | Packet16f pconj(const Packet16f& a) {
  function Packet8d (line 315) | Packet8d pconj(const Packet8d& a) {
  function Packet16i (line 319) | Packet16i pconj(const Packet16i& a) {
  function Packet16f (line 352) | Packet16f pmadd(const Packet16f& a, const Packet16f& b,
  function Packet8d (line 357) | Packet8d pmadd(const Packet8d& a, const Packet8d& b,
  function Packet16f (line 364) | inline Packet16f pselect(const Packet16f& mask,
  function Packet8d (line 373) | inline Packet8d pselect(const Packet8d& mask,
  function Packet8f (line 453) | Packet8f extract256(Packet16f x) { return _mm512_extractf32x8_ps(x,I_); }
  function Packet2d (line 454) | Packet2d extract128(Packet8d x) { return _mm512_extractf64x2_pd(x,I_); }
  function EIGEN_STRONG_INLINE (line 455) | EIGEN_STRONG_INLINE Packet16f cat256(Packet8f a, Packet8f b) { return _m...
  function Packet8f (line 458) | Packet8f extract256(Packet16f x) {
  function Packet2d (line 463) | Packet2d extract128(Packet8d x) {
  function EIGEN_STRONG_INLINE (line 467) | EIGEN_STRONG_INLINE Packet16f cat256(Packet8f a, Packet8f b) {
  function EIGEN_STRONG_INLINE (line 475) | EIGEN_STRONG_INLINE __m256i Pack32To16(Packet16f rf) {
  function Packet16f (line 493) | Packet16f pcmp_eq(const Packet16f& a, const Packet16f& b) {
  function Packet16f (line 498) | Packet16f pcmp_le(const Packet16f& a, const Packet16f& b) {
  function Packet16f (line 504) | Packet16f pcmp_lt(const Packet16f& a, const Packet16f& b) {
  function Packet16f (line 510) | Packet16f pcmp_lt_or_nan(const Packet16f& a, const Packet16f& b) {
  function Packet16i (line 516) | Packet16i pcmp_eq(const Packet16i& a, const Packet16i& b) {
  function Packet16i (line 520) | Packet16i pcmp_le(const Packet16i& a, const Packet16i& b) {
  function Packet16i (line 524) | Packet16i pcmp_lt(const Packet16i& a, const Packet16i& b) {
  function Packet8d (line 530) | Packet8d pcmp_eq(const Packet8d& a, const Packet8d& b) {
  function Packet8d (line 536) | Packet8d pcmp_le(const Packet8d& a, const Packet8d& b) {
  function Packet8d (line 542) | Packet8d pcmp_lt(const Packet8d& a, const Packet8d& b) {
  function Packet8d (line 548) | Packet8d pcmp_lt_or_nan(const Packet8d& a, const Packet8d& b) {
  function Packet16i (line 694) | Packet16i parithmetic_shift_right(Packet16i a) {
  function Packet16i (line 698) | Packet16i plogical_shift_right(Packet16i a) {
  function Packet16i (line 702) | Packet16i plogical_shift_left(Packet16i a) {
  function Packet16f (line 941) | Packet16f preverse(const Packet16f& a)
  function Packet8d (line 946) | Packet8d preverse(const Packet8d& a)
  function Packet16i (line 951) | Packet16i preverse(const Packet16i& a)
  function Packet16f (line 956) | Packet16f pabs(const Packet16f& a)
  function Packet8d (line 962) | Packet8d pabs(const Packet8d& a) {
  function Packet16i (line 967) | Packet16i pabs(const Packet16i& a)
  function Packet8d (line 980) | Packet8d pfrexp_generic_get_biased_exponent(const Packet8d& a) {
  function predux_any (line 1227) | bool predux_any(const Packet16f& x)
  function Packet16f (line 1645) | Packet16f pblend(const Selector<16>& /*ifPacket*/,
  function Packet8d (line 1652) | Packet8d pblend(const Selector<8>& ifPacket,
  function Packet16h (line 1708) | Packet16h
  function EIGEN_STRONG_INLINE (line 1717) | EIGEN_STRONG_INLINE Packet16f half2float(const Packet16h& a) {
  function EIGEN_STRONG_INLINE (line 1745) | EIGEN_STRONG_INLINE Packet16h float2half(const Packet16f& a) {
  function Packet16h (line 1774) | Packet16h ptrue(const Packet16h& a) {
  function Packet16h (line 1779) | Packet16h pabs(const Packet16h& a) {
  function Packet16h (line 1801) | Packet16h por(const Packet16h& a,const Packet16h& b) {
  function Packet16h (line 1806) | Packet16h pxor(const Packet16h& a,const Packet16h& b) {
  function Packet16h (line 1809) | Packet16h pand(const Packet16h& a,const Packet16h& b) {
  function Packet16h (line 1812) | Packet16h pandnot(const Packet16h& a,const Packet16h& b) {
  function Packet16h (line 1816) | Packet16h pselect(const Packet16h& mask, const Packet16h& a, const Packe...
  function Packet16h (line 1836) | Packet16h pcmp_eq(const Packet16h& a,const Packet16h& b) {
  function Packet16h (line 1842) | Packet16h pcmp_le(const Packet16h& a,const Packet16h& b) {
  function Packet16h (line 1846) | Packet16h pcmp_lt(const Packet16h& a,const Packet16h& b) {
  function Packet16h (line 1850) | Packet16h pcmp_lt_or_nan(const Packet16h& a,const Packet16h& b) {
  function Packet16h (line 1854) | Packet16h pconj(const Packet16h& a) { return a; }
  function Packet16h (line 1856) | Packet16h pnegate(const Packet16h& a) {
  function Packet16h (line 1918) | Packet16h preverse(const Packet16h& a)
  function Packet16bf (line 2129) | struct is_arithmetic<Packet16bf> { enum { value = true }; }
  function default_packet_traits (line 2132) | struct packet_traits<bfloat16> : default_packet_traits {
  function Packet16bf (line 2164) | struct unpacket_traits<Packet16bf>
  function Packet16bf (line 2218) | Packet16bf
  function EIGEN_STRONG_INLINE (line 2227) | EIGEN_STRONG_INLINE Packet16f Bf16ToF32(const Packet16bf& a) {
  function EIGEN_STRONG_INLINE (line 2232) | EIGEN_STRONG_INLINE Packet16bf F32ToBf16(const Packet16f& a) {
  function Packet16bf (line 2267) | Packet16bf ptrue(const Packet16bf& a) {
  function Packet16bf (line 2272) | Packet16bf por(const Packet16bf& a, const Packet16bf& b) {
  function Packet16bf (line 2277) | Packet16bf pxor(const Packet16bf& a, const Packet16bf& b) {
  function Packet16bf (line 2282) | Packet16bf pand(const Packet16bf& a, const Packet16bf& b) {
  function Packet16bf (line 2287) | Packet16bf pandnot(const Packet16bf& a,
  function Packet16bf (line 2293) | Packet16bf pselect(const Packet16bf& mask,
  function Packet16bf (line 2319) | Packet16bf pcmp_eq(const Packet16bf& a,
  function Packet16bf (line 2325) | Packet16bf pcmp_le(const Packet16bf& a,
  function Packet16bf (line 2331) | Packet16bf pcmp_lt(const Packet16bf& a,
  function Packet16bf (line 2337) | Packet16bf pcmp_lt_or_nan(const Packet16bf& a,
  function Packet16bf (line 2343) | Packet16bf pnegate(const Packet16bf& a) {
  function Packet16bf (line 2349) | Packet16bf pconj(const Packet16bf& a) {
  function Packet16bf (line 2354) | Packet16bf pabs(const Packet16bf& a) {
  function Packet16bf (line 2428) | Packet16bf preverse(const Packet16bf& a) {

FILE: extensions/ngp_raymarch/include/op_include/eigen/Eigen/src/Core/arch/AVX512/TypeCasting.h
  function namespace (line 15) | namespace Eigen {

FILE: extensions/ngp_raymarch/include/op_include/eigen/Eigen/src/Core/arch/AltiVec/Complex.h
  function namespace (line 16) | namespace Eigen {
  function Packet2cf (line 168) | Packet2cf pnegate(const Packet2cf& a) { return Packet2cf(pnegate(a.v)); }
  function Packet2cf (line 169) | Packet2cf pconj(const Packet2cf& a) { return Packet2cf(pxor<Packet4f>(a....
  function Packet2cf (line 186) | Packet2cf preverse(const Packet2cf& a)
  function Packet2cf (line 230) | Packet2cf pcmp_eq(const Packet2cf& a, const Packet2cf& b) {
  function Packet2cf (line 236) | Packet2cf pblend(const Selector<2>& ifPacket, const Packet2cf& thenPacke...
  type Packet1cd (line 250) | struct Packet1cd
  type packet_traits (line 302) | struct packet_traits
  function default_packet_traits (line 302) | double> >  : default_packet_traits
  function Packet1cd (line 326) | struct unpacket_traits<Packet1cd> { typedef std::complex<double> type; e...
  function Packet1cd (line 347) | Packet1cd pnegate(const Packet1cd& a) { return Packet1cd(pnegate(Packet2...
  function Packet1cd (line 348) | Packet1cd pconj(const Packet1cd& a) { return Packet1cd(pxor(a.v, reinter...
  function Packet1cd (line 367) | Packet1cd preverse(const Packet1cd& a) { return a; }
  function EIGEN_STRONG_INLINE (line 380) | EIGEN_STRONG_INLINE Packet1cd pcplxflip/*<Packet1cd>*/(const Packet1cd& x)
  function Packet1cd (line 392) | Packet1cd pcmp_eq(const Packet1cd& a, const Packet1cd& b) {

FILE: extensions/ngp_raymarch/include/op_include/eigen/Eigen/src/Core/arch/AltiVec/MathFunctions.h
  function namespace (line 17) | namespace Eigen {

FILE: extensions/ngp_raymarch/include/op_include/eigen/Eigen/src/Core/arch/AltiVec/MatrixProduct.h
  function namespace (line 48) | namespace Eigen {
  function storeBlock (line 407) | void storeBlock(Scalar* to, PacketBlock<Packet,N>& block)
  function EIGEN_STRONG_INLINE (line 423) | EIGEN_STRONG_INLINE void operator()(std::complex<Scalar>* blockA, const ...
  function EIGEN_STRONG_INLINE (line 573) | EIGEN_STRONG_INLINE void operator()(Scalar* blockA, const DataMapper& lh...
  function loadPacketRemaining (line 1045) | void loadPacketRemaining(const Scalar* lhs, Packet &lhsV)
  function loadPacketRemaining (line 1098) | void loadPacketRemaining(const Scalar* lhs_ptr, const Scalar* lhs_ptr_im...
  function Packet (line 1124) | Packet ploadLhs(const Scalar* lhs)
  function Packet (line 1273) | Packet bmask(const int remaining_rows)
  function pbroadcastN_old (line 1304) | void
  function pbroadcastN (line 1343) | void
  function MICRO_ZERO_PEEL_ROW (line 1455) | MICRO_ZERO_PEEL_ROW
  function gemm_extra_cols (line 1718) | void gemm_extra_cols(
  function MICRO_COMPLEX_ZERO_PEEL_ROW (line 1872) | MICRO_COMPLEX_ZERO_PEEL_ROW
  type typename (line 2465) | typedef typename quad_traits<float>::rhstype      RhsPacket;
  type Packet2cf (line 2502) | typedef Packet2cf  Packetc;
  type Packet4f (line 2503) | typedef Packet4f   RhsPacket;
  type Packet2cf (line 2541) | typedef Packet2cf  Packetc;
  type Packet4f (line 2542) | typedef Packet4f   RhsPacket;
  type Packet2cf (line 2579) | typedef Packet2cf  Packetc;
  type Packet4f (line 2580) | typedef Packet4f   RhsPacket;
  type typename (line 2617) | typedef typename quad_traits<double>::rhstype     RhsPacket;
  type Packet1cd (line 2654) | typedef Packet1cd  Packetc;
  type quad_traits (line 2655) | typedef quad_traits<double>::rhstype   RhsPacket;
  type Packet1cd (line 2692) | typedef Packet1cd  Packetc;
  type quad_traits (line 2693) | typedef quad_traits<double>::rhstype   RhsPacket;
  type Packet1cd (line 2730) | typedef Packet1cd  Packetc;
  type quad_traits (line 2731) | typedef quad_traits<double>::rhstype   RhsPacket;

FILE: extensions/ngp_raymarch/include/op_include/eigen/Eigen/src/Core/arch/AltiVec/MatrixProductCommon.h
  function namespace (line 10) | namespace Eigen {

FILE: extensions/ngp_raymarch/include/op_include/eigen/Eigen/src/Core/arch/AltiVec/MatrixProductMMA.h
  function namespace (line 24) | namespace Eigen {

FILE: extensions/ngp_raymarch/include/op_include/eigen/Eigen/src/Core/arch/AltiVec/PacketMath.h
  function namespace (line 15) | namespace Eigen {
  function pstore_common (line 481) | void pstore_common(__UNPACK_TYPE__(Packet)* to, const Packet& from){
  function Packet (line 529) | Packet pset1_size4(const __UNPACK_TYPE__(Packet)& from)
  function Packet (line 536) | Packet pset1_size8(const __UNPACK_TYPE__(Packet)& from)
  function Packet (line 543) | Packet pset1_size16(const __UNPACK_TYPE__(Packet)& from)
  function pbroadcast4_common (line 581) | void
  function Packet (line 605) | inline Packet pgather_common(const __UNPACK_TYPE__(Packet)* from, Index ...
  function Packet (line 625) | inline Packet pgather_size8(const __UNPACK_TYPE__(Packet)* from, Index s...
  function Packet (line 654) | inline Packet pgather_size16(const __UNPACK_TYPE__(Packet)* from, Index ...
  function pscatter_size4 (line 687) | void pscatter_size4(__UNPACK_TYPE__(Packet)* to, const Packet& from, Ind...
  function pscatter_size8 (line 707) | inline void pscatter_size8(__UNPACK_TYPE__(Packet)* to, const Packet& fr...
  function pscatter_size16 (line 737) | void pscatter_size16(__UNPACK_TYPE__(Packet)* to, const Packet& from, In...
  function Packet4f (line 791) | Packet4f pnegate(const Packet4f& a) { return p4f_ZERO - a; }
  function Packet4i (line 792) | Packet4i pnegate(const Packet4i& a) { return p4i_ZERO - a; }
  function Packet4f (line 794) | Packet4f pconj(const Packet4f& a) { return a; }
  function Packet4i (line 795) | Packet4i pconj(const Packet4i& a) { return a; }
  function Packet (line 999) | Packet ploaddup_common(const __UNPACK_TYPE__(Packet)*   from)
  function pstoreu_common (line 1068) | void pstoreu_common(__UNPACK_TYPE__(Packet)*  to, const Packet& from)
  function pfirst_common (line 1125) | __UNPACK_TYPE__(Packet) pfirst_common(const Packet& a) {
  function a (line 1131) | short int pfirst<Packet8s>(const Packet8s& a) {
  function a (line 1135) | unsigned short int pfirst<Packet8us>(const Packet8us& a) {
  function a (line 1139) | signed char pfirst<Packet16c>(const Packet16c& a)
  function a (line 1144) | unsigned char pfirst<Packet16uc>(const Packet16uc& a)
  function Packet4f (line 1149) | Packet4f preverse(const Packet4f& a)
  function Packet4i (line 1153) | Packet4i preverse(const Packet4i& a)
  function Packet8s (line 1157) | Packet8s preverse(const Packet8s& a)
  function Packet8us (line 1161) | Packet8us preverse(const Packet8us& a)
  function Packet16c (line 1165) | Packet16c preverse(const Packet16c& a)
  function Packet16uc (line 1169) | Packet16uc preverse(const Packet16uc& a)
  function Packet8bf (line 1173) | Packet8bf preverse(const Packet8bf& a)
  function Packet4f (line 1178) | Packet4f pabs(const Packet4f& a) { return vec_abs(a); }
  function Packet4i (line 1179) | Packet4i pabs(const Packet4i& a) { return vec_abs(a); }
  function Packet8s (line 1180) | Packet8s pabs(const Packet8s& a) { return vec_abs(a); }
  function Packet8us (line 1181) | Packet8us pabs(const Packet8us& a) { return a; }
  function Packet16c (line 1182) | Packet16c pabs(const Packet16c& a) { return vec_abs(a); }
  function Packet16uc (line 1183) | Packet16uc pabs(const Packet16uc& a) { return a; }
  function Packet8bf (line 1184) | Packet8bf  pabs(const Packet8bf& a) {
  function Packet4i (line 1189) | Packet4i parithmetic_shift_right(const Packet4i& a)
  function Packet4i (line 1191) | Packet4i plogical_shift_right(const Packet4i& a)
  function Packet4i (line 1193) | Packet4i plogical_shift_left(const Packet4i& a)
  function Packet4f (line 1195) | Packet4f plogical_shift_left(const Packet4f& a)
  function Packet4f (line 1202) | Packet4f plogical_shift_right(const Packet4f& a)
  function Packet4ui (line 1209) | Packet4ui plogical_shift_right(const Packet4ui& a)
  function Packet4ui (line 1215) | Packet4ui plogical_shift_left(const Packet4ui& a)
  function Packet8us (line 1221) | Packet8us plogical_shift_left(const Packet8us& a)
  function Packet8us (line 1226) | Packet8us plogical_shift_right(const Packet8us& a)
  function EIGEN_STRONG_INLINE (line 1232) | EIGEN_STRONG_INLINE Packet4f Bf16ToF32Even(const Packet8bf& bf){
  function EIGEN_STRONG_INLINE (line 1236) | EIGEN_STRONG_INLINE Packet4f Bf16ToF32Odd(const Packet8bf& bf){
  function EIGEN_STRONG_INLINE (line 1246) | EIGEN_STRONG_INLINE Packet8bf F32ToBf16Bool(Packet4f even, Packet4f odd) {
  function EIGEN_STRONG_INLINE (line 1254) | EIGEN_STRONG_INLINE Packet8bf F32ToBf16(Packet4f p4f){
  function EIGEN_STRONG_INLINE (line 1294) | EIGEN_STRONG_INLINE Packet8bf F32ToBf16(Packet4f even, Packet4f odd){
  function Packet8bf (line 1398) | Packet8bf pmadd(const Packet8bf& a, const Packet8bf& b, const Packet8bf&...
  function Packet8bf (line 1418) | Packet8bf pcmp_lt(const Packet8bf& a, const Packet8bf& b) {
  function Packet8bf (line 1421) | Packet8bf pcmp_lt_or_nan(const Packet8bf& a, const Packet8bf& b) {
  function Packet8bf (line 1424) | Packet8bf pcmp_le(const Packet8bf& a, const Packet8bf& b) {
  function Packet8bf (line 1427) | Packet8bf pcmp_eq(const Packet8bf& a, const Packet8bf& b) {
  function bfloat16 (line 1431) | bfloat16 pfirst(const Packet8bf& a) {
  function predux_size8 (line 1475) | __UNPACK_TYPE__(Packet) predux_size8(const Packet& a)
  function a (line 1491) | short int predux<Packet8s>(const Packet8s& a)
  function a (line 1496) | unsigned short int predux<Packet8us>(const Packet8us& a)
  function predux_size16 (line 1501) | __UNPACK_TYPE__(Packet) predux_size16(const Packet& a)
  function a (line 1523) | signed char predux<Packet16c>(const Packet16c& a)
  function a (line 1528) | unsigned char predux<Packet16uc>(const Packet16uc& a)
  function predux_mul (line 1549) | short int predux_mul<Packet8s>(const Packet8s& a)
  function predux_mul (line 1560) | unsigned short int predux_mul<Packet8us>(const Packet8us& a)
  function predux_mul (line 1580) | signed char predux_mul<Packet16c>(const Packet16c& a)
  function a (line 1592) | unsigned char predux_mul<Packet16uc>(const Packet16uc& a)
  function predux_min4 (line 1606) | __UNPACK_TYPE__(Packet) predux_min4(const Packet& a)
  function predux_min (line 1633) | short int predux_min<Packet8s>(const Packet8s& a)
  function predux_min (line 1648) | unsigned short int predux_min<Packet8us>(const Packet8us& a)
  function predux_min (line 1663) | signed char predux_min<Packet16c>(const Packet16c& a)
  function a (line 1675) | unsigned char predux_min<Packet16uc>(const Packet16uc& a)
  function predux_max4 (line 1687) | __UNPACK_TYPE__(Packet) predux_max4(const Packet& a)
  function predux_max (line 1713) | short int predux_max<Packet8s>(const Packet8s& a)
  function predux_max (line 1728) | unsigned short int predux_max<Packet8us>(const Packet8us& a)
  function predux_max (line 1743) | signed char predux_max<Packet16c>(const Packet16c& a)
  function a (line 1755) | unsigned char predux_max<Packet16uc>(const Packet16uc& a)
  function predux_any (line 1767) | bool predux_any(const Packet4f& x)
  function ptranpose_common (line 1772) | inline void
  function Packet (line 2103) | Packet pblend4(const Selector<4>& ifPacket, const Packet& thenPacket, co...
  function Packet4i (line 2109) | Packet4i pblend(const Selector<4>& ifPacket, const Packet4i& thenPacket,...
  function Packet4f (line 2113) | Packet4f pblend(const Selector<4>& ifPacket, const Packet4f& thenPacket,...
  function Packet8s (line 2117) | Packet8s pblend(const Selector<8>& ifPacket, const Packet8s& thenPacket,...
  function Packet8us (line 2125) | Packet8us pblend(const Selector<8>& ifPacket, const Packet8us& thenPacke...
  function Packet8bf (line 2132) | Packet8bf pblend(const Selector<8>& ifPacket, const Packet8bf& thenPacke...
  function Packet16c (line 2136) | Packet16c pblend(const Selector<16>& ifPacket, const Packet16c& thenPack...
  function Packet16uc (line 2146) | Packet16uc pblend(const Selector<16>& ifPacket, const Packet16uc& thenPa...
  type type_casting_traits (line 2157) | struct type_casting_traits
  type type_casting_traits (line 2166) | struct type_casting_traits
  type type_casting_traits (line 2175) | struct type_casting_traits
  type type_casting_traits (line 2184) | struct type_casting_traits
  function bfloat16 (line 2184) | int, bfloat16> {
  type __vector (line 2258) | typedef __vector double              Packet2d;
  type Packet2ul (line 2259) | typedef __vector unsigned long long  Packet2ul;
  type Packet2l (line 2260) | typedef __vector long long           Packet2l;
  type Packet2ul (line 2262) | typedef Packet2ul                    Packet2bl;
  type __vector (line 2264) | typedef __vector __bool
  function default_packet_traits (line 2287) | struct packet_traits<double> : default_packet_traits
  function Packet2d (line 2319) | struct unpacket_traits<Packet2d> { typedef double type; enum {size=2, al...
  function Packet2d (line 2398) | Packet2d pnegate(const Packet2d& a) { return p2d_ZERO - a; }
  function Packet2d (line 2400) | Packet2d pconj(const Packet2d& a) { return a; }
  function Packet2d (line 2406) | Packet2d pmadd(const Packet2d& a, const Packet2d& b, const Packet2d& c) ...
  function Packet2d (line 2424) | Packet2d pcmp_le(const Packet2d& a, const Packet2d& b) { return reinterp...
  function Packet2d (line 2425) | Packet2d pcmp_lt(const Packet2d& a, const Packet2d& b) { return reinterp...
  function Packet2d (line 2426) | Packet2d pcmp_eq(const Packet2d& a, const Packet2d& b) { return reinterp...
  function Packet2d (line 2427) | Packet2d pcmp_lt_or_nan(const Packet2d& a, const Packet2d& b) {
  function Packet2d (line 2488) | Packet2d preverse(const Packet2d& a)
  function Packet2d (line 2492) | Packet2d pabs(const Packet2d& a) { return vec_abs(a); }
  function Packet2l (line 2533) | Packet2l plogical_shift_left(const Packet2l& a) {
  function Packet2l (line 2539) | Packet2l plogical_shift_right(const Packet2l& a) {
  function EIGEN_ALWAYS_INLINE (line 2548) | EIGEN_ALWAYS_INLINE Packet4i shift_even_left(const Packet4i& a) {
  function EIGEN_ALWAYS_INLINE (line 2561) | EIGEN_ALWAYS_INLINE Packet4i shift_odd_right(const Packet4i& a) {
  function Packet2l (line 2577) | Packet2l run(const Packet2l& a) {
  function EIGEN_STRONG_INLINE (line 2591) | static EIGEN_STRONG_INLINE Packet2l run(const Packet2l& a) {
  function Packet2l (line 2600) | Packet2l plogical_shift_left(const Packet2l& a) {
  function Packet2l (line 2609) | Packet2l run(const Packet2l& a) {
  function EIGEN_STRONG_INLINE (line 2623) | static EIGEN_STRONG_INLINE Packet2l run(const Packet2l& a) {
  function Packet2l (line 2632) | Packet2l plogical_shift_right(const Packet2l& a) {
  function Packet2d (line 2657) | Packet2d pfrexp_generic_get_biased_exponent(const Packet2d& a) {
  function Packet2d (line 2701) | Packet2d pblend(const Selector<2>& ifPacket, const Packet2d& thenPacket,...

FILE: extensions/ngp_raymarch/include/op_include/eigen/Eigen/src/Core/arch/Default/BFloat16.h
  function namespace (line 45) | namespace Eigen {
  function namespace (line 130) | namespace std {
  function namespace (line 180) | namespace Eigen {
  function bfloat16_to_float (line 514) | float bfloat16_to_float(__bfloat16_raw h) {
  function EIGEN_STRONG_INLINE (line 524) | EIGEN_STRONG_INLINE EIGEN_DEVICE_FUNC bool (isinf)(const bfloat16& a) {
  function EIGEN_STRONG_INLINE (line 532) | EIGEN_STRONG_INLINE EIGEN_DEVICE_FUNC bool (isnan)(const bfloat16& a) {
  function EIGEN_STRONG_INLINE (line 540) | EIGEN_STRONG_INLINE EIGEN_DEVICE_FUNC bool (isfinite)(const bfloat16& a) {
  function bfloat16 (line 544) | bfloat16 abs(const bfloat16& a) {
  function bfloat16 (line 548) | bfloat16 exp(const bfloat16& a) {
  function bfloat16 (line 551) | bfloat16 expm1(const bfloat16& a) {
  function bfloat16 (line 554) | bfloat16 log(const bfloat16& a) {
  function bfloat16 (line 557) | bfloat16 log1p(const bfloat16& a) {
  function bfloat16 (line 560) | bfloat16 log10(const bfloat16& a) {
  function bfloat16 (line 563) | bfloat16 log2(const bfloat16& a) {
  function bfloat16 (line 566) | bfloat16 sqrt(const bfloat16& a) {
  function bfloat16 (line 569) | bfloat16 pow(const bfloat16& a, const bfloat16& b) {
  function bfloat16 (line 572) | bfloat16 sin(const bfloat16& a) {
  function bfloat16 (line 575) | bfloat16 cos(const bfloat16& a) {
  function bfloat16 (line 578) | bfloat16 tan(const bfloat16& a) {
  function bfloat16 (line 581) | bfloat16 asin(const bfloat16& a) {
  function bfloat16 (line 584) | bfloat16 acos(const bfloat16& a) {
  function bfloat16 (line 587) | bfloat16 atan(const bfloat16& a) {
  function bfloat16 (line 590) | bfloat16 sinh(const bfloat16& a) {
  function bfloat16 (line 593) | bfloat16 cosh(const bfloat16& a) {
  function bfloat16 (line 596) | bfloat16 tanh(const bfloat16& a) {
  function bfloat16 (line 600) | bfloat16 asinh(const bfloat16& a) {
  function bfloat16 (line 603) | bfloat16 acosh(const bfloat16& a) {
  function bfloat16 (line 606) | bfloat16 atanh(const bfloat16& a) {
  function bfloat16 (line 610) | bfloat16 floor(const bfloat16& a) {
  function bfloat16 (line 613) | bfloat16 ceil(const bfloat16& a) {
  function bfloat16 (line 616) | bfloat16 rint(const bfloat16& a) {
  function bfloat16 (line 619) | bfloat16 round(const bfloat16& a) {
  function bfloat16 (line 622) | bfloat16 fmod(const bfloat16& a, const bfloat16& b) {
  function EIGEN_STRONG_INLINE (line 626) | EIGEN_STRONG_INLINE EIGEN_DEVICE_FUNC bfloat16 (min)(const bfloat16& a, ...
  function EIGEN_STRONG_INLINE (line 632) | EIGEN_STRONG_INLINE EIGEN_DEVICE_FUNC bfloat16 (max)(const bfloat16& a, ...
  function bfloat16 (line 638) | bfloat16 fmin(const bfloat16& a, const bfloat16& b) {
  function bfloat16 (line 644) | bfloat16 fmax(const bfloat16& a, const bfloat16& b) {
  function namespace (line 659) | namespace internal {
  function bfloat16 (line 678) | struct NumTraits<Eigen::bfloat16>
  function namespace (line 715) | namespace Eigen {
  function namespace (line 750) | namespace std {

FILE: extensions/ngp_raymarch/include/op_include/eigen/Eigen/src/Core/arch/Default/ConjHelper.h
  function namespace (line 43) | namespace Eigen {
  function Packet (line 109) | Packet pmadd(const Packet& x, const Packet& y, const Packet& c) const
  function Packet (line 112) | Packet pmul(const Packet& x, const Packet& y) const

FILE: extensions/ngp_raymarch/include/op_include/eigen/Eigen/src/Core/arch/Default/GenericPacketMathFunctions.h
  function namespace (line 21) | namespace Eigen {

FILE: extensions/ngp_raymarch/include/op_include/eigen/Eigen/src/Core/arch/Default/GenericPacketMathFunctionsFwd.h
  function namespace (line 15) | namespace Eigen {

FILE: extensions/ngp_raymarch/include/op_include/eigen/Eigen/src/Core/arch/Default/Half.h
  type half (line 63) | struct half
  function namespace (line 65) | namespace half_impl {
  type half (line 143) | struct half
  type half_impl (line 151) | typedef half_impl::__half_raw __half_raw;
  type half_impl (line 160) | typedef half_impl::__half_raw __half_raw;
  function EIGEN_DEVICE_FUNC (line 164) | EIGEN_DEVICE_FUNC EIGEN_CONSTEXPR half() {}
  function half_base (line 166) | half(const __half_raw& h) : half_impl::half_base(h) {}
  function half_base (line 170) | half(const __half& h) : half_impl::half_base(h) {}
  function half_base (line 173) | half(const __half& h) : half_impl::half_base(h) {}
  function EIGEN_CONSTEXPR (line 179) | EIGEN_CONSTEXPR half(bool b)
  function EIGEN_DEVICE_FUNC (line 182) | EIGEN_DEVICE_FUNC half(T val)
  function explicit (line 184) | explicit EIGEN_DEVICE_FUNC half(float f)
  function EIGEN_DEVICE_FUNC (line 190) | EIGEN_DEVICE_FUNC half(std::complex<RealScalar> c)
  function EIGEN_DEVICE_FUNC (line 198) | EIGEN_DEVICE_FUNC operator __half() const {
  function namespace (line 258) | namespace Eigen {
  function namespace (line 828) | namespace Eigen {

FILE: extensions/ngp_raymarch/include/op_include/eigen/Eigen/src/Core/arch/Default/TypeCasting.h
  function namespace (line 16) | namespace Eigen {

FILE: extensions/ngp_raymarch/include/op_include/eigen/Eigen/src/Core/arch/GPU/Complex.h
  function namespace (line 59) | namespace Eigen {

FILE: extensions/ngp_raymarch/include/op_include/eigen/Eigen/src/Core/arch/GPU/MathFunctions.h
  function namespace (line 15) | namespace Eigen {

FILE: extensions/ngp_raymarch/include/op_include/eigen/Eigen/src/Core/arch/GPU/PacketMath.h
  function namespace (line 15) | namespace Eigen {
  type ulonglong2 (line 503) | typedef ulonglong2 Packet4h2;
  type unpacket_traits (line 504) | struct unpacket_traits
  type Packet4h2 (line 512) | typedef Packet4h2 type;
  type Packet4h2 (line 513) | typedef Packet4h2 half;
  function half2 (line 551) | half2 pload(const Eigen::half* from) {
  function half2 (line 555) | half2 ploadu(const Eigen::half* from) {
  function half2 (line 559) | half2 ploaddup(const Eigen::half*  from) {
  function pstore (line 563) | void pstore(Eigen::half* to,
  function pstoreu (line 568) | void pstoreu(Eigen::half* to,
  function half2 (line 575) | half2 ploadt_ro_aligned(
  function half2 (line 585) | half2 ploadt_ro_unaligned(
  function half2 (line 594) | half2 pgather(const Eigen::half* from,
  function pscatter (line 599) | void pscatter(
  function half2 (line 609) | half2 pabs(const half2& a) {
  function half2 (line 617) | half2 ptrue(const half2& /*a*/) {
  function half2 (line 622) | half2 pzero(const half2& /*a*/) {
  function ptranspose (line 627) | void
  function half2 (line 637) | half2 plset(const Eigen::half& a) {
  function half2 (line 646) | half2 pselect(const half2& mask,
  function half2 (line 656) | half2 pcmp_eq(const half2& a,
  function half2 (line 669) | half2 pcmp_lt(const half2& a,
  function half2 (line 682) | half2 pand(const half2& a,
  function half2 (line 693) | half2 por(const half2& a,
  function half2 (line 704) | half2 pxor(const half2& a,
  function half2 (line 715) | half2 pandnot(const half2& a,
  function half2 (line 726) | half2 padd(const half2& a,
  function half2 (line 741) | half2 psub(const half2& a,
  function half2 (line 756) | half2 pnegate(const half2& a) {
  function half2 (line 766) | half2 pconj(const half2& a) { return a; }
  function half2 (line 768) | half2 pmul(const half2& a,
  function half2 (line 783) | half2 pmadd(const half2& a,
  function half2 (line 801) | half2 pdiv(const half2& a,
  function half2 (line 816) | half2 pmin(const half2& a,
  function half2 (line 827) | half2 pmax(const half2& a,
  function half2 (line 882) | half2 plog1p(const half2& a) {
  function half2 (line 890) | half2 pexpm1(const half2& a) {
  function half2 (line 902) | half2 plog(const half2& a) {
  function half2 (line 907) | half2 pexp(const half2& a) {
  function half2 (line 912) | half2 psqrt(const half2& a) {
  function half2 (line 917) | half2 prsqrt(const half2& a) {
  function half2 (line 923) | half2 plog(const half2& a) {
  function half2 (line 931) | half2 pexp(const half2& a) {
  function half2 (line 939) | half2 psqrt(const half2& a) {
  function half2 (line 947) | half2 prsqrt(const half2& a) {
  function ptranspose_double (line 1088) | void ptranspose_double(
  function ptranspose_half2 (line 1109) | void ptranspose_half2(
  function ptranspose_half (line 1121) | void
  function ptranspose (line 1131) | void

FILE: extensions/ngp_raymarch/include/op_include/eigen/Eigen/src/Core/arch/GPU/Tuple.h
  function namespace (line 18) | namespace Eigen {
  type tuple_cat_impl (line 201) | struct tuple_cat_impl
  function EIGEN_STRONG_INLINE (line 203) | EIGEN_STRONG_INLINE
  function ReturnType (line 270) | ReturnType tie(Args&... args) EIGEN_NOEXCEPT {

FILE: extensions/ngp_raymarch/include/op_include/eigen/Eigen/src/Core/arch/GPU/TypeCasting.h
  function namespace (line 15) | namespace Eigen {

FILE: extensions/ngp_raymarch/include/op_include/eigen/Eigen/src/Core/arch/MSA/Complex.h
  function namespace (line 20) | namespace Eigen {
  type packet_traits (line 103) | struct packet_traits
  function default_packet_traits (line 103) | float> > : default_packet_traits {
  function Packet2cf (line 127) | struct unpacket_traits<Packet2cf> {
  function Packet2cf (line 158) | Packet2cf pnegate(const Packet2cf& a) {
  function Packet2cf (line 165) | Packet2cf pconj(const Packet2cf& a) {
  function Packet2cf (line 277) | Packet2cf preverse(const Packet2cf& a) {
  function Packet2cf (line 332) | Packet2cf pblend(const Selector<2>& ifPacket, const Packet2cf& thenPacket,
  type Packet1cd (line 340) | struct Packet1cd {
  function explicit (line 343) | explicit Packet1cd(const std::complex<double>& a) {
  function EIGEN_STRONG_INLINE (line 347) | EIGEN_STRONG_INLINE explicit Packet1cd(const Packet2d& a) : v(a) {
  function EIGEN_STRONG_INLINE (line 349) | EIGEN_STRONG_INLINE Packet1cd(const Packet1cd& a) : v(a.v) {
  function EIGEN_STRONG_INLINE (line 355) | EIGEN_STRONG_INLINE Packet1cd conjugate(void) const {
  type packet_traits (line 418) | struct packet_traits
  function default_packet_traits (line 418) | double> > : default_packet_traits {
  function Packet1cd (line 441) | struct unpacket_traits<Packet1cd> {
  function Packet1cd (line 483) | Packet1cd pnegate(const Packet1cd& a) {
  function Packet1cd (line 490) | Packet1cd pconj(const Packet1cd& a) {
  function Packet1cd (line 590) | Packet1cd preverse(const Packet1cd& a) {
  function EIGEN_STRONG_INLINE (line 619) | EIGEN_STRONG_INLINE Packet1cd pcplxflip /*<Packet1cd>*/ (const Packet1cd...

FILE: extensions/ngp_raymarch/include/op_include/eigen/Eigen/src/Core/arch/MSA/MathFunctions.h
  function namespace (line 31) | namespace Eigen {

FILE: extensions/ngp_raymarch/include/op_include/eigen/Eigen/src/Core/arch/MSA/PacketMath.h
  function namespace (line 21) | namespace Eigen {
  function Packet4f (line 206) | Packet4f pnegate(const Packet4f& a) {
  function Packet4i (line 213) | Packet4i pnegate(const Packet4i& a) {
  function Packet4f (line 220) | Packet4f pconj(const Packet4f& a) {
  function Packet4i (line 227) | Packet4i pconj(const Packet4i& a) {
  function Packet4f (line 262) | Packet4f pmadd(const Packet4f& a, const Packet4f& b, const Packet4f& c) {
  function Packet4i (line 269) | Packet4i pmadd(const Packet4i& a, const Packet4i& b, const Packet4i& c) {
  function EIGEN_DEBUG_ALIGNED_LOAD (line 386) | EIGEN_DEBUG_ALIGNED_LOAD return (Packet4f)__builtin_msa_ld_w(const_cast<...
  function EIGEN_DEBUG_UNALIGNED_LOAD (line 400) | EIGEN_DEBUG_UNALIGNED_LOAD return (Packet4f)__builtin_msa_ld_w(const_cas...
  function Packet4f (line 539) | Packet4f preverse(const Packet4f& a) {
  function Packet4i (line 546) | Packet4i preverse(const Packet4i& a) {
  function Packet4f (line 553) | Packet4f pabs(const Packet4f& a) {
  function Packet4i (line 560) | Packet4i pabs(const Packet4i& a) {
  function Packet4f (line 725) | Packet4f psqrt(const Packet4f& a) {
  function Packet4f (line 732) | Packet4f prsqrt(const Packet4f& a) {
  function Packet4f (line 803) | Packet4f pblend(const Selector<4>& ifPacket, const Packet4f& thenPacket,
  function Packet4i (line 812) | Packet4i pblend(const Selector<4>& ifPacket, const Packet4i& thenPacket,
  type v2f64 (line 822) | typedef v2f64 Packet2d;
  type v2i64 (line 823) | typedef v2i64 Packet2l;
  type v2u64 (line 824) | typedef v2u64 Packet2ul;
  function default_packet_traits (line 846) | struct packet_traits<double> : default_packet_traits {
  function Packet2d (line 867) | struct unpacket_traits<Packet2d> {
  function Packet2d (line 904) | Packet2d pnegate(const Packet2d& a) {
  function Packet2d (line 911) | Packet2d pconj(const Packet2d& a) {
  function Packet2d (line 932) | Packet2d pmadd(const Packet2d& a, const Packet2d& b, const Packet2d& c) {
  function EIGEN_DEBUG_UNALIGNED_LOAD (line 1009) | EIGEN_DEBUG_UNALIGNED_LOAD return (Packet2d)__builtin_msa_ld_d(const_cas...
  function Packet2d (line 1070) | Packet2d preverse(const Packet2d& a) {
  function Packet2d (line 1077) | Packet2d pabs(const Packet2d& a) {
  function Packet2d (line 1132) | Packet2d psqrt(const Packet2d& a) {
  function Packet2d (line 1139) | Packet2d prsqrt(const Packet2d& a) {
  function Packet2d (line 1224) | Packet2d pblend(const Selector<2>& ifPacket, const Packet2d& thenPacket,

FILE: extensions/ngp_raymarch/include/op_include/eigen/Eigen/src/Core/arch/NEON/Complex.h
  function namespace (line 16) | namespace Eigen {
  function Packet1cf (line 292) | Packet1cf preverse(const Packet1cf& a) { return a; }
  function Packet2cf (line 293) | Packet2cf preverse(const Packet2cf& a)
  type Packet1cd (line 386) | struct Packet1cd
  type packet_traits (line 393) | struct packet_traits
  function default_packet_traits (line 393) | double> >  : default_packet_traits
  function Packet1cd (line 417) | struct unpacket_traits<Packet1cd>
  function Packet1cd (line 450) | Packet1cd pnegate(const Packet1cd& a)
  function Packet1cd (line 453) | Packet1cd pconj(const Packet1cd& a)
  function Packet1cd (line 476) | Packet1cd pcmp_eq(const Packet1cd& a, const Packet1cd& b)
  function Packet1cd (line 532) | Packet1cd preverse(const Packet1cd& a) { return a; }
  function EIGEN_STRONG_INLINE (line 545) | EIGEN_STRONG_INLINE Packet1cd pcplxflip/*<Packet1cd>*/(const Packet1cd& x)

FILE: extensions/ngp_raymarch/include/op_include/eigen/Eigen/src/Core/arch/NEON/GeneralBlockPanelKernel.h
  function namespace (line 3) | namespace Eigen {

FILE: extensions/ngp_raymarch/include/op_include/eigen/Eigen/src/Core/arch/NEON/MathFunctions.h
  function namespace (line 13) | namespace Eigen {

FILE: extensions/ngp_raymarch/include/op_include/eigen/Eigen/src/Core/arch/NEON/PacketMath.h
  function namespace (line 17) | namespace Eigen {
  function Packet2f (line 878) | Packet2f pnegate(const Packet2f& a) { return vneg_f32(a); }
  function Packet4f (line 879) | Packet4f pnegate(const Packet4f& a) { return vnegq_f32(a); }
  function Packet4c (line 880) | Packet4c pnegate(const Packet4c& a)
  function Packet8c (line 882) | Packet8c pnegate(const Packet8c& a) { return vneg_s8(a); }
  function Packet16c (line 883) | Packet16c pnegate(const Packet16c& a) { return vnegq_s8(a); }
  function Packet4s (line 884) | Packet4s pnegate(const Packet4s& a) { return vneg_s16(a); }
  function Packet8s (line 885) | Packet8s pnegate(const Packet8s& a) { return vnegq_s16(a); }
  function Packet2i (line 886) | Packet2i pnegate(const Packet2i& a) { return vneg_s32(a); }
  function Packet4i (line 887) | Packet4i pnegate(const Packet4i& a) { return vnegq_s32(a); }
  function Packet2l (line 888) | Packet2l pnegate(const Packet2l& a) {
  function Packet2f (line 898) | Packet2f pconj(const Packet2f& a) { return a; }
  function Packet4f (line 899) | Packet4f pconj(const Packet4f& a) { return a; }
  function Packet4c (line 900) | Packet4c pconj(const Packet4c& a) { return a; }
  function Packet8c (line 901) | Packet8c pconj(const Packet8c& a) { return a; }
  function Packet16c (line 902) | Packet16c pconj(const Packet16c& a) { return a; }
  function Packet4uc (line 903) | Packet4uc pconj(const Packet4uc& a) { return a; }
  function Packet8uc (line 904) | Packet8uc pconj(const Packet8uc& a) { return a; }
  function Packet16uc (line 905) | Packet16uc pconj(const Packet16uc& a) { return a; }
  function Packet4s (line 906) | Packet4s pconj(const Packet4s& a) { return a; }
  function Packet8s (line 907) | Packet8s pconj(const Packet8s& a) { return a; }
  function Packet4us (line 908) | Packet4us pconj(const Packet4us& a) { return a; }
  function Packet8us (line 909) | Packet8us pconj(const Packet8us& a) { return a; }
  function Packet2i (line 910) | Packet2i pconj(const Packet2i& a) { return a; }
  function Packet4i (line 911) | Packet4i pconj(const Packet4i& a) { return a; }
  function Packet2ui (line 912) | Packet2ui pconj(const Packet2ui& a) { return a; }
  function Packet4ui (line 913) | Packet4ui pconj(const Packet4ui& a) { return a; }
  function Packet2l (line 914) | Packet2l pconj(const Packet2l& a) { return a; }
  function Packet2ul (line 915) | Packet2ul pconj(const Packet2ul& a) { return a; }
  function Packet2f (line 2302) | Packet2f preverse(const Packet2f& a) { return vrev64_f32(a); }
  function Packet4f (line 2303) | Packet4f preverse(const Packet4f& a)
  function Packet4c (line 2308) | Packet4c preverse(const Packet4c& a)
  function Packet8c (line 2310) | Packet8c preverse(const Packet8c& a) { return vrev64_s8(a); }
  function Packet16c (line 2311) | Packet16c preverse(const Packet16c& a)
  function Packet4uc (line 2316) | Packet4uc preverse(const Packet4uc& a)
  function Packet8uc (line 2318) | Packet8uc preverse(const Packet8uc& a) { return vrev64_u8(a); }
  function Packet16uc (line 2319) | Packet16uc preverse(const Packet16uc& a)
  function Packet4s (line 2324) | Packet4s preverse(const Packet4s& a) { return vrev64_s16(a); }
  function Packet8s (line 2325) | Packet8s preverse(const Packet8s& a)
  function Packet4us (line 2330) | Packet4us preverse(const Packet4us& a) { return vrev64_u16(a); }
  function Packet8us (line 2331) | Packet8us preverse(const Packet8us& a)
  function Packet2i (line 2336) | Packet2i preverse(const Packet2i& a) { return vrev64_s32(a); }
  function Packet4i (line 2337) | Packet4i preverse(const Packet4i& a)
  function Packet2ui (line 2342) | Packet2ui preverse(const Packet2ui& a) { return vrev64_u32(a); }
  function Packet4ui (line 2343) | Packet4ui preverse(const Packet4ui& a)
  function Packet2l (line 2348) | Packet2l preverse(const Packet2l& a)
  function Packet2ul (line 2350) | Packet2ul preverse(const Packet2ul& a)
  function Packet2f (line 2353) | Packet2f pabs(const Packet2f& a) { return vabs_f32(a); }
  function Packet4f (line 2354) | Packet4f pabs(const Packet4f& a) { return vabsq_f32(a); }
  function Packet8c (line 2357) | Packet8c pabs(const Packet8c& a) { return vabs_s8(a); }
  function Packet16c (line 2358) | Packet16c pabs(const Packet16c& a) { return vabsq_s8(a); }
  function Packet4uc (line 2359) | Packet4uc pabs(const Packet4uc& a) { return a; }
  function Packet8uc (line 2360) | Packet8uc pabs(const Packet8uc& a) { return a; }
  function Packet16uc (line 2361) | Packet16uc pabs(const Packet16uc& a) { return a; }
  function Packet4s (line 2362) | Packet4s pabs(const Packet4s& a) { return vabs_s16(a); }
  function Packet8s (line 2363) | Packet8s pabs(const Packet8s& a) { return vabsq_s16(a); }
  function Packet4us (line 2364) | Packet4us pabs(const Packet4us& a) { return a; }
  function Packet8us (line 2365) | Packet8us pabs(const Packet8us& a) { return a; }
  function Packet2i (line 2366) | Packet2i pabs(const Packet2i& a) { return vabs_s32(a); }
  function Packet4i (line 2367) | Packet4i pabs(const Packet4i& a) { return vabsq_s32(a); }
  function Packet2ui (line 2368) | Packet2ui pabs(const Packet2ui& a) { return a; }
  function Packet4ui (line 2369) | Packet4ui pabs(const Packet4ui& a) { return a; }
  function Packet2l (line 2370) | Packet2l pabs(const Packet2l& a) {
  function Packet2ul (line 2379) | Packet2ul pabs(const Packet2ul& a) { return a; }
  function predux_any (line 2841) | bool predux_any(const Packet4f& x)
  function namespace (line 2849) | namespace detail {
  function ptranspose (line 3002) | void ptranspose(PacketBlock<Packet2f, 2>& kernel) {
  function ptranspose (line 3005) | void ptranspose(PacketBlock<Packet4f, 4>& kernel) {
  function ptranspose (line 3009) | void ptranspose(PacketBlock<Packet4c, 4>& kernel)
  function ptranspose (line 3022) | void ptranspose(PacketBlock<Packet8c, 8>& kernel) {
  function ptranspose (line 3025) | void ptranspose(PacketBlock<Packet8c, 4>& kernel) {
  function ptranspose (line 3028) | void ptranspose(PacketBlock<Packet16c, 16>& kernel) {
  function ptranspose (line 3031) | void ptranspose(PacketBlock<Packet16c, 8>& kernel) {
  function ptranspose (line 3034) | void ptranspose(PacketBlock<Packet16c, 4>& kernel) {
  function ptranspose (line 3038) | void ptranspose(PacketBlock<Packet4uc, 4>& kernel)
  function ptranspose (line 3051) | void ptranspose(PacketBlock<Packet8uc, 8>& kernel) {
  function ptranspose (line 3054) | void ptranspose(PacketBlock<Packet8uc, 4>& kernel) {
  function ptranspose (line 3057) | void ptranspose(PacketBlock<Packet16uc, 16>& kernel) {
  function ptranspose (line 3060) | void ptranspose(PacketBlock<Packet16uc, 8>& kernel) {
  function ptranspose (line 3063) | void ptranspose(PacketBlock<Packet16uc, 4>& kernel) {
  function ptranspose (line 3067) | void ptranspose(PacketBlock<Packet4s, 4>& kernel) {
  function ptranspose (line 3070) | void ptranspose(PacketBlock<Packet8s, 8>& kernel) {
  function ptranspose (line 3073) | void ptranspose(PacketBlock<Packet8s, 4>& kernel) {
  function ptranspose (line 3077) | void ptranspose(PacketBlock<Packet4us, 4>& kernel) {
  function ptranspose (line 3080) | void ptranspose(PacketBlock<Packet8us, 8>& kernel) {
  function ptranspose (line 3083) | void ptranspose(PacketBlock<Packet8us, 4>& kernel) {
  function ptranspose (line 3087) | void ptranspose(PacketBlock<Packet2i, 2>& kernel) {
  function ptranspose (line 3090) | void ptranspose(PacketBlock<Packet4i, 4>& kernel) {
  function ptranspose (line 3093) | void ptranspose(PacketBlock<Packet2ui, 2>& kernel) {
  function ptranspose (line 3096) | void ptranspose(PacketBlock<Packet4ui, 4>& kernel) {
  function ptranspose (line 3100) | void
  function ptranspose (line 3117) | void
  function Packet4f (line 3190) | Packet4f print(const Packet4f& a) {
  function Packet2f (line 3204) | Packet2f print(const Packet2f& a) {
  function Packet4uc (line 3266) | Packet4uc psqrt(const Packet4uc& a) {
  function Packet8uc (line 3279) | Packet8uc psqrt(const Packet8uc& a) {
  function Packet16uc (line 3291) | Packet16uc psqrt(const Packet16uc& a) {
  function Packet4us (line 3303) | Packet4us psqrt(const Packet4us& a) {
  function Packet8us (line 3315) | Packet8us psqrt(const Packet8us& a) {
  function Packet2ui (line 3327) | Packet2ui psqrt(const Packet2ui& a) {
  function Packet4ui (line 3339) | Packet4ui psqrt(const Packet4ui& a) {
  function Packet4f (line 3351) | Packet4f prsqrt(const Packet4f& a) {
  function Packet2f (line 3361) | Packet2f prsqrt(const Packet2f& a) {
  function Packet4f (line 3373) | Packet4f psqrt(const Packet4f& _x){return vsqrtq_f32(_x);}
  function Packet2f (line 3374) | Packet2f psqrt(const Packet2f& _x){return vsqrt_f32(_x); }
  function Packet4f (line 3376) | Packet4f psqrt(const Packet4f& a) {
  function Packet2f (line 3381) | Packet2f psqrt(const Packet2f& a) {
  type eigen_packet_wrapper (line 3392) | typedef eigen_packet_wrapper<uint16x4_t, 19> Packet4bf;
  function Packet4bf (line 3394) | struct is_arithmetic<Packet4bf> { enum { value = true }; }
  function default_packet_traits (line 3396) | struct packet_traits<bfloat16> : default_packet_traits
  function Packet4bf (line 3439) | struct unpacket_traits<Packet4bf>
  function namespace (line 3453) | namespace detail {
  function EIGEN_STRONG_INLINE (line 3462) | EIGEN_STRONG_INLINE Packet4bf F32ToBf16(const Packet4f& p)
  function EIGEN_STRONG_INLINE (line 3489) | EIGEN_STRONG_INLINE Packet4f Bf16ToF32(const Packet4bf& p)
  function EIGEN_STRONG_INLINE (line 3494) | EIGEN_STRONG_INLINE Packet4bf F32MaskToBf16Mask(const Packet4f& p) {
  function Packet4bf (line 3531) | Packet4bf pabs(const Packet4bf& a) {
  function Packet4bf (line 3574) | Packet4bf por(const Packet4bf& a,const Packet4bf& b) {
  function Packet4bf (line 3578) | Packet4bf pxor(const Packet4bf& a,const Packet4bf& b) {
  function Packet4bf (line 3582) | Packet4bf pand(const Packet4bf& a,const Packet4bf& b) {
  function Packet4bf (line 3586) | Packet4bf pandnot(const Packet4bf& a,const Packet4bf& b) {
  function Packet4bf (line 3611) | Packet4bf pconj(const Packet4bf& a) { return a; }
  function ptranspose (line 3666) | void ptranspose(PacketBlock<Packet4bf, 4>& kernel)
  type float64x2_t (line 3724) | typedef float64x2_t Packet2d;
  type float64x1_t (line 3725) | typedef float64x1_t Packet1d;
  function EIGEN_STRONG_INLINE (line 3730) | EIGEN_STRONG_INLINE Packet2d shuffle(const Packet2d& m, const Packet2d& ...
  function EIGEN_STRONG_INLINE (line 3738) | EIGEN_STRONG_INLINE Packet2d vec2d_swizzle2(const Packet2d& a, const Pac...
  function EIGEN_STRONG_INLINE (line 3742) | EIGEN_STRONG_INLINE Packet2d vec2d_unpacklo(const Packet2d& a,const Pack...
  function EIGEN_STRONG_INLINE (line 3746) | EIGEN_STRONG_INLINE Packet2d vec2d_unpackhi(const Packet2d& a,const Pack...
  function default_packet_traits (line 3753) | struct packet_traits<double>  : default_packet_traits
  function Packet2d (line 3796) | struct unpacket_traits<Packet2d>
  function Packet2d (line 3829) | Packet2d pnegate(const Packet2d& a) { return vnegq_f64(a); }
  function Packet2d (line 3831) | Packet2d pconj(const Packet2d& a) { return a; }
  function Packet2d (line 3839) | Packet2d pmadd(const Packet2d& a, const Packet2d& b, const Packet2d& c)
  function Packet2d (line 3842) | Packet2d pmadd(const Packet2d& a, const Packet2d& b, const Packet2d& c)
  function Packet2d (line 3875) | Packet2d pcmp_le(const Packet2d& a, const Packet2d& b)
  function Packet2d (line 3878) | Packet2d pcmp_lt(const Packet2d& a, const Packet2d& b)
  function Packet2d (line 3881) | Packet2d pcmp_lt_or_nan(const Packet2d& a, const Packet2d& b)
  function Packet2d (line 3884) | Packet2d pcmp_eq(const Packet2d& a, const Packet2d& b)
  function Packet2d (line 3919) | Packet2d preverse(const Packet2d& a)
  function Packet2d (line 3922) | Packet2d pabs(const Packet2d& a) { return vabsq_f64(a); }
  function ptranspose (line 3946) | void
  function Packet2d (line 3977) | Packet2d prsqrt(const Packet2d& a) {
  function Packet2d (line 3988) | Packet2d psqrt(const Packet2d& _x){ return vsqrtq_f64(_x); }
  type float16x4_t (line 3992) | typedef float16x4_t Packet4hf;
  type float16x8_t (line 3993) | typedef float16x8_t Packet8hf;
  function default_packet_traits (line 3996) | struct packet_traits<Eigen::half> : default_packet_traits {
  function Packet4hf (line 4041) | struct unpacket_traits<Packet4hf> {
  function Packet8hf (line 4054) | struct unpacket_traits<Packet8hf> {
  function Packet8hf (line 4116) | Packet8hf pnegate(const Packet8hf& a) {
  function Packet4hf (line 4121) | Packet4hf pnegate(const Packet4hf& a) {
  function Packet8hf (line 4126) | Packet8hf pconj(const Packet8hf& a) {
  function Packet4hf (line 4131) | Packet4hf pconj(const Packet4hf& a) {
  function Packet8hf (line 4156) | Packet8hf pmadd(const Packet8hf& a, const Packet8hf& b, const Packet8hf&...
  function Packet4hf (line 4161) | Packet4hf pmadd(const Packet4hf& a, const Packet4hf& b, const Packet4hf&...
  function Packet8hf (line 4366) | Packet8hf pinsertfirst(const Packet8hf& a, Eigen::half b) { return vsetq...
  function Packet4hf (line 4368) | Packet4hf pinsertfirst(const Packet4hf& a, Eigen::half b) { return vset_...
  function Packet8hf (line 4380) | Packet8hf pinsertlast(const Packet8hf& a, Eigen::half b) { return vsetq_...
  function Packet4hf (line 4382) | Packet4hf pinsertlast(const Packet4hf& a, Eigen::half b) { return vset_l...
  function Packet8hf (line 4471) | Packet8hf preverse(const Packet8hf& a) {
  function ptranspose (line 4573) | void ptranspose(PacketBlock<Packet8hf, 4>& kernel)
  function ptranspose (line 4587) | void ptranspose(PacketBlock<Packet4hf, 4>& kernel) {
  function ptranspose (line 4598) | void ptranspose(PacketBlock<Packet8hf, 8>& kernel) {

FILE: extensions/ngp_raymarch/include/op_include/eigen/Eigen/src/Core/arch/NEON/TypeCasting.h
  function namespace (line 16) | namespace Eigen {

FILE: extensions/ngp_raymarch/include/op_include/eigen/Eigen/src/Core/arch/NEON/UnaryFunctors.h
  function namespace (line 13) | namespace Eigen {

FILE: extensions/ngp_raymarch/include/op_include/eigen/Eigen/src/Core/arch/SSE/Complex.h
  function namespace (line 15) | namespace Eigen {
  function Packet2cf (line 153) | Packet2cf preverse(const Packet2cf& a) { return Packet2cf(_mm_castpd_ps(...
  function EIGEN_STRONG_INLINE (line 165) | EIGEN_STRONG_INLINE Packet2cf pcplxflip/* <Packet2cf> */(const Packet2cf...
  type Packet1cd (line 178) | struct Packet1cd
  type packet_traits (line 188) | struct packet_traits
  function default_packet_traits (line 188) | double> >  : default_packet_traits
  function Packet1cd (line 213) | struct unpacket_traits<Packet1cd> {
  function Packet1cd (line 228) | Packet1cd pnegate(const Packet1cd& a) { return Packet1cd(pnegate(Packet2...
  function Packet1cd (line 229) | Packet1cd pconj(const Packet1cd& a)
  function Packet1cd (line 278) | Packet1cd preverse(const Packet1cd& a) { return a; }
  function EIGEN_STRONG_INLINE (line 297) | EIGEN_STRONG_INLINE Packet1cd pcplxflip/* <Packet1cd> */(const Packet1cd...
  function Packet2cf (line 312) | Packet2cf pcmp_eq(const Packet2cf& a, const Packet2cf& b)
  function Packet1cd (line 318) | Packet1cd pcmp_eq(const Packet1cd& a, const Packet1cd& b)
  function Packet2cf (line 324) | Packet2cf pblend(const Selector<2>& ifPacket, const Packet2cf& thenPacke...

FILE: extensions/ngp_raymarch/include/op_include/eigen/Eigen/src/Core/arch/SSE/MathFunctions.h
  function namespace (line 20) | namespace Eigen {

FILE: extensions/ngp_raymarch/include/op_include/eigen/Eigen/src/Core/arch/SSE/PacketMath.h
  function namespace (line 15) | namespace Eigen {
  function Packet4f (line 267) | Packet4f peven_mask(const Packet4f& /*a*/) { return _mm_castsi128_ps(_mm...
  function Packet4i (line 268) | Packet4i peven_mask(const Packet4i& /*a*/) { return _mm_set_epi32(0, -1,...
  function Packet2d (line 269) | Packet2d peven_mask(const Packet2d& /*a*/) { return _mm_castsi128_pd(_mm...
  function Packet4f (line 271) | Packet4f pzero(const Packet4f& /*a*/) { return _mm_setzero_ps(); }
  function Packet2d (line 272) | Packet2d pzero(const Packet2d& /*a*/) { return _mm_setzero_pd(); }
  function Packet4i (line 273) | Packet4i pzero(const Packet4i& /*a*/) { return _mm_setzero_si128(); }
  function Packet4f (line 323) | Packet4f pnegate(const Packet4f& a)
  function Packet2d (line 328) | Packet2d pnegate(const Packet2d& a)
  function Packet4i (line 333) | Packet4i pnegate(const Packet4i& a)
  function Packet16b (line 338) | Packet16b pnegate(const Packet16b& a)
  function Packet4f (line 343) | Packet4f pconj(const Packet4f& a) { return a; }
  function Packet2d (line 344) | Packet2d pconj(const Packet2d& a) { return a; }
  function Packet4i (line 345) | Packet4i pconj(const Packet4i& a) { return a; }
  function Packet4i (line 371) | Packet4i pmadd(const Packet4i& a, const Packet4i& b, const Packet4i& c) ...
  function Packet4f (line 373) | Packet4f pmadd(const Packet4f& a, const Packet4f& b, const Packet4f& c) ...
  function Packet2d (line 374) | Packet2d pmadd(const Packet2d& a, const Packet2d& b, const Packet2d& c) ...
  function Packet4f (line 378) | inline Packet4f pselect(const Packet4f& mask, const Packet4f& a, const P...
  function Packet4i (line 382) | inline Packet4i pselect(const Packet4i& mask, const Packet4i& a, const P...
  function Packet2d (line 386) | inline Packet2d pselect(const Packet2d& mask, const Packet2d& a, const P...
  function Packet16b (line 388) | inline Packet16b pselect(const Packet16b& mask, const Packet16b& a, cons...
  function Packet16b (line 392) | inline Packet16b pselect(const Packet16b& mask, const Packet16b& a, cons...
  function Packet4f (line 432) | Packet4f pcmp_le(const Packet4f& a, const Packet4f& b) { return _mm_cmpl...
  function Packet4f (line 433) | Packet4f pcmp_lt(const Packet4f& a, const Packet4f& b) { return _mm_cmpl...
  function Packet4f (line 434) | Packet4f pcmp_lt_or_nan(const Packet4f& a, const Packet4f& b) { return _...
  function Packet4f (line 435) | Packet4f pcmp_eq(const Packet4f& a, const Packet4f& b) { return _mm_cmpe...
  function Packet2d (line 437) | Packet2d pcmp_le(const Packet2d& a, const Packet2d& b) { return _mm_cmpl...
  function Packet2d (line 438) | Packet2d pcmp_lt(const Packet2d& a, const Packet2d& b) { return _mm_cmpl...
  function Packet2d (line 439) | Packet2d pcmp_lt_or_nan(const Packet2d& a, const Packet2d& b) { return _...
  function Packet2d (line 440) | Packet2d pcmp_eq(const Packet2d& a, const Packet2d& b) { return _mm_cmpe...
  function Packet4i (line 442) | Packet4i pcmp_lt(const Packet4i& a, const Packet4i& b) { return _mm_cmpl...
  function Packet4i (line 443) | Packet4i pcmp_eq(const Packet4i& a, const Packet4i& b) { return _mm_cmpe...
  function Packet16b (line 444) | Packet16b pcmp_eq(const Packet16b& a, const Packet16b& b) { return _mm_c...
  function Packet4i (line 445) | Packet4i pcmp_le(const Packet4i& a, const Packet4i& b) { return por(pcmp...
  function Packet (line 547) | Packet pminmax_propagate_numbers(const Packet& a, const Packet& b, Op op) {
  function Packet (line 556) | Packet pminmax_propagate_nan(const Packet& a, const Packet& b, Op op) {
  function Packet4i (line 598) | Packet4i parithmetic_shift_right(const Packet4i& a) { return _mm_srai_ep...
  function Packet4i (line 599) | Packet4i plogical_shift_right   (const Packet4i& a) { return _mm_srli_ep...
  function Packet4i (line 600) | Packet4i plogical_shift_left    (const Packet4i& a) { return _mm_slli_ep...
  function Packet4f (line 602) | Packet4f pabs(const Packet4f& a)
  function Packet2d (line 607) | Packet2d pabs(const Packet2d& a)
  function Packet4i (line 612) | Packet4i pabs(const Packet4i& a)
  function Packet4f (line 647) | Packet4f print(const Packet4f& a) {
  function Packet2d (line 661) | Packet2d print(const Packet2d& a) {
  function Index (line 828) | Index stride)
  function EIGEN_STRONG_INLINE (line 980) | EIGEN_STRONG_INLINE void punpackp(Packet4f* vecs)
  function pmadd (line 1276) | float pmadd(const float& a, const float& b, const float& c) {
  function pmadd (line 1279) | double pmadd(const double& a, const double& b, const double& c) {
  function EIGEN_STRONG_INLINE (line 1287) | EIGEN_STRONG_INLINE __m128i half2floatsse(__m128i h) {
  function EIGEN_STRONG_INLINE (line 1328) | EIGEN_STRONG_INLINE __m128i float2half(__m128 f) {
  type Packet4h (line 1390) | typedef struct {
  function Packet4h (line 1395) | struct is_arithmetic<Packet4h> { enum { value = true }; }
  function default_packet_traits (line 1398) | struct packet_traits<Eigen::half> : default_packet_traits {
  function Packet4h (line 1427) | struct unpacket_traits<Packet4h> { typedef Eigen::half type; enum {size=...
  function Packet4h (line 1439) | Packet4h pconj(const Packet4h& a) { return a; }
  function __m128 (line 1598) | static inline __m128  _mm_castpd_ps   (__m128d x) { return reinterpret_c...
  function __m128i (line 1599) | static inline __m128i _mm_castpd_si128(__m128d x) { return reinterpret_c...
  function __m128d (line 1600) | static inline __m128d _mm_castps_pd   (__m128  x) { return reinterpret_c...
  function __m128i (line 1601) | static inline __m128i _mm_castps_si128(__m128  x) { return reinterpret_c...
  function __m128 (line 1602) | static inline __m128  _mm_castsi128_ps(__m128i x) { return reinterpret_c...
  function __m128d (line 1603) | static inline __m128d _mm_castsi128_pd(__m128i x) { return reinterpret_c...

FILE: extensions/ngp_raymarch/include/op_include/eigen/Eigen/src/Core/arch/SSE/TypeCasting.h
  function namespace (line 15) | namespace Eigen {

FILE: extensions/ngp_raymarch/include/op_include/eigen/Eigen/src/Core/arch/SVE/MathFunctions.h
  function namespace (line 15) | namespace Eigen {

FILE: extensions/ngp_raymarch/include/op_include/eigen/Eigen/src/Core/arch/SVE/PacketMath.h
  function namespace (line 15) | namespace Eigen
  function PacketXi (line 110) | PacketXi pnegate(const PacketXi& a)
  function PacketXi (line 116) | PacketXi pconj(const PacketXi& a)
  function PacketXi (line 134) | PacketXi pmadd(const PacketXi& a, const PacketXi& b, const PacketXi& c)
  function PacketXi (line 206) | PacketXi parithmetic_shift_right(PacketXi a)
  function PacketXi (line 212) | PacketXi plogical_shift_right(PacketXi a)
  function PacketXi (line 218) | PacketXi plogical_shift_left(PacketXi a)
  function PacketXi (line 288) | PacketXi preverse(const PacketXi& a)
  function PacketXi (line 294) | PacketXi pabs(const PacketXi& a)
  function ptranspose (line 353) | inline void ptranspose(PacketBlock<PacketXi, N>& kernel) {
  type svfloat32_t (line 369) | typedef svfloat32_t PacketXf __attribute__((arm_sve_vector_bits(EIGEN_AR...
  function default_packet_traits (line 372) | struct packet_traits<float> : default_packet_traits {
  function PacketXf (line 411) | struct unpacket_traits<PacketXf> {
  function PacketXf (line 458) | PacketXf pnegate(const PacketXf& a)
  function PacketXf (line 464) | PacketXf pconj(const PacketXf& a)
  function PacketXf (line 482) | PacketXf pmadd(const PacketXf& a, const PacketXf& b, const PacketXf& c)
  function PacketXf (line 654) | PacketXf preverse(const PacketXf& a)
  function PacketXf (line 660) | PacketXf pabs(const PacketXf& a)
  function ptranspose (line 729) | inline void ptranspose(PacketBlock<PacketXf, N>& kernel)

FILE: extensions/ngp_raymarch/include/op_include/eigen/Eigen/src/Core/arch/SVE/TypeCasting.h
  function namespace (line 15) | namespace Eigen {

FILE: extensions/ngp_raymarch/include/op_include/eigen/Eigen/src/Core/arch/SYCL/InteropHeaders.h
  function namespace (line 26) | namespace Eigen {

FILE: extensions/ngp_raymarch/include/op_include/eigen/Eigen/src/Core/arch/SYCL/MathFunctions.h
  function namespace (line 25) | namespace Eigen {

FILE: extensions/ngp_raymarch/include/op_include/eigen/Eigen/src/Core/arch/SYCL/PacketMath.h
  function namespace (line 26) | namespace Eigen {

FILE: extensions/ngp_raymarch/include/op_include/eigen/Eigen/src/Core/arch/SYCL/SyclMemoryModel.h
  function namespace (line 38) | namespace Eigen {
  function clear (line 325) | inline void clear() {
  function virtual_pointer_t (line 333) | inline virtual_pointer_t add_pointer(const buffer_t &b) {
  function virtual_pointer_t (line 340) | inline virtual_pointer_t add_pointer(buffer_t &&b) {
  function fuse_forward (line 350) | void fuse_forward(typename pointerMap_t::iterator &node) {
  function fuse_backward (line 372) | void fuse_backward(typename pointerMap_t::iterator &node) {
  function pMapNode_t (line 433) | pMapNode_t p{b, bufSize, false};
  type T (line 551) | typedef T scalar_t;
  type scalar_t (line 552) | typedef scalar_t &ref_t;
  type typename (line 553) | typedef typename cl::sycl::global_ptr<scalar_t>::pointer_t ptr_t;
  type cl (line 556) | typedef cl::sycl::accessor<scalar_t, 1, AcMd, global_access, is_place_ho...
  type RangeAccess (line 559) | typedef RangeAccess<AcMd, T> self_t;
  function i (line 600) | nullptr_t i) {
  function set_offset (line 635) | void set_offset(std::ptrdiff_t offset) {
  function ref_t (line 639) | ref_t operator*() const {
  function ref_t (line 643) | ref_t operator*() {
  function ref_t (line 649) | ref_t operator[](int x) {
  function ref_t (line 653) | ref_t operator[](int x) const {
  function scalar_t (line 657) | scalar_t *get_virtual_pointer() const {
  function bind (line 675) | void bind(
  type RangeAccess (line 688) | typedef RangeAccess<AcMd, T> Base;

FILE: extensions/ngp_raymarch/include/op_include/eigen/Eigen/src/Core/arch/SYCL/TypeCasting.h
  function namespace (line 26) | namespace Eigen {

FILE: extensions/ngp_raymarch/include/op_include/eigen/Eigen/src/Core/arch/ZVector/Complex.h
  function namespace (line 16) | namespace Eigen {
  function Packet1cd (line 131) | Packet1cd pnegate(const Packet1cd& a) { return Packet1cd(pnegate(Packet2...
  function Packet1cd (line 132) | Packet1cd pconj(const Packet1cd& a) { return Packet1cd((Packet2d)vec_xor...
  function Packet1cd (line 155) | Packet1cd pcmp_eq(const Packet1cd& a, const Packet1cd& b) {
  function Packet1cd (line 171) | Packet1cd preverse(const Packet1cd& a) { return a; }
  function EIGEN_STRONG_INLINE (line 187) | EIGEN_STRONG_INLINE Packet1cd pcplxflip/*<Packet1cd>*/(const Packet1cd& x)
  function Packet2cf (line 252) | Packet2cf pnegate(const Packet2cf& a) { return Packet2cf(pnegate(Packet4...
  function Packet2cf (line 266) | Packet2cf pcmp_eq(const Packet2cf& a, const Packet2cf& b) {
  function Packet2cf (line 276) | Packet2cf pconj(const Packet2cf& a)
  function Packet2cf (line 292) | Packet2cf preverse(const Packet2cf& a)
  function EIGEN_STRONG_INLINE (line 323) | EIGEN_STRONG_INLINE Packet2cf pcplxflip/*<Packet2cf>*/(const Packet2cf& x)
  function Packet2cf (line 338) | Packet2cf pblend(const Selector<2>& ifPacket, const Packet2cf& thenPacke...
  function Packet2cf (line 345) | Packet2cf pcmp_eq(const Packet2cf& a, const Packet2cf& b) {
  function Packet2cf (line 350) | Packet2cf pconj(const Packet2cf& a) { return Packet2cf(pxor<Packet4f>(a....
  function Packet2cf (line 373) | Packet2cf preverse(const Packet2cf& a)
  function Packet2cf (line 417) | Packet2cf pblend(const Selector<2>& ifPacket, const Packet2cf& thenPacke...

FILE: extensions/ngp_raymarch/include/op_include/eigen/Eigen/src/Core/arch/ZVector/MathFunctions.h
  function namespace (line 21) | namespace Eigen {

FILE: extensions/ngp_raymarch/include/op_include/eigen/Eigen/src/Core/arch/ZVector/PacketMath.h
  function namespace (line 15) | namespace Eigen {
  function Packet4i (line 409) | Packet4i pnegate(const Packet4i& a) { return (-a); }
  function Packet2d (line 410) | Packet2d pnegate(const Packet2d& a) { return (-a); }
  function Packet4i (line 412) | Packet4i pconj(const Packet4i& a) { return a; }
  function Packet2d (line 413) | Packet2d pconj(const Packet2d& a) { return a; }
  function Packet4i (line 415) | Packet4i pmadd(const Packet4i& a, const Packet4i& b, const Packet4i& c) ...
  function Packet2d (line 416) | Packet2d pmadd(const Packet2d& a, const Packet2d& b, const Packet2d& c) ...
  function Packet4i (line 468) | Packet4i preverse(const Packet4i& a)
  function Packet2d (line 473) | Packet2d preverse(const Packet2d& a)
  function Packet4i (line 562) | Packet4i pblend(const Selector<4>& ifPacket, const Packet4i& thenPacket,...
  function Packet2d (line 569) | Packet2d pblend(const Selector<2>& ifPacket, const Packet2d& thenPacket,...
  function Packet4f (line 581) | Packet4f vec_splat_packet4f(const Packet4f&   from)
  function Packet4f (line 694) | Packet4f pnegate(const Packet4f& a)
  function Packet4f (line 702) | Packet4f pmadd(const Packet4f& a, const Packet4f& b, const Packet4f& c)
  function Packet4f (line 792) | Packet4f preverse(const Packet4f& a)
  function Packet4f (line 876) | Packet4f pblend(const Selector<4>& ifPacket, const Packet4f& thenPacket,...
  function Packet4f (line 991) | Packet4f preverse(const Packet4f& a)
  function Packet4f (line 1045) | Packet4f pblend(const Selector<4>& ifPacket, const Packet4f& thenPacket,...

FILE: extensions/ngp_raymarch/include/op_include/eigen/Eigen/src/Core/functors/AssignmentFunctors.h
  function namespace (line 15) | namespace Eigen {
  function assignCoeff (line 72) | void assignCoeff(DstScalar& a, const SrcScalar& b) const { a -= b; }
  function assignPacket (line 75) | void assignPacket(DstScalar* a, const Packet& b) const
  function assignCoeff (line 94) | void assignCoeff(DstScalar& a, const SrcScalar& b) const { a *= b; }
  function assignPacket (line 97) | void assignPacket(DstScalar* a, const Packet& b) const
  function assignCoeff (line 115) | void assignCoeff(DstScalar& a, const SrcScalar& b) const { a /= b; }
  function assignPacket (line 118) | void assignPacket(DstScalar* a, const Packet& b) const
  function assignCoeff (line 147) | void assignCoeff(Scalar& a, const Scalar& b) const

FILE: extensions/ngp_raymarch/include/op_include/eigen/Eigen/src/Core/functors/BinaryFunctors.h
  function namespace (line 15) | namespace Eigen {
  function const (line 100) | bool>::operator() (const bool& a, const bool& b) const { return a && b; }
  type typename (line 116) | typedef typename ScalarBinaryOpTraits<LhsScalar,RhsScalar,scalar_conj_pr...
  function EIGEN_STRONG_INLINE (line 119) | EIGEN_STRONG_INLINE result_type operator() (const LhsScalar& a, const Rh...
  function EIGEN_STRONG_INLINE (line 123) | EIGEN_STRONG_INLINE Packet packetOp(const Packet& a, const Packet& b) const
  type typename (line 142) | typedef typename ScalarBinaryOpTraits<LhsScalar,RhsScalar,scalar_min_op>...
  function EIGEN_STRONG_INLINE (line 144) | EIGEN_STRONG_INLINE result_type operator() (const LhsScalar& a, const Rh...
  function EIGEN_STRONG_INLINE (line 148) | EIGEN_STRONG_INLINE Packet packetOp(const Packet& a, const Packet& b) const
  type typename (line 175) | typedef typename ScalarBinaryOpTraits<LhsScalar,RhsScalar,scalar_max_op>...
  function EIGEN_STRONG_INLINE (line 177) | EIGEN_STRONG_INLINE result_type operator() (const LhsScalar& a, const Rh...
  function EIGEN_STRONG_INLINE (line 181) | EIGEN_STRONG_INLINE Packet packetOp(const Packet& a, const Packet& b) const
  function const (line 229) | bool operator()(const LhsScalar& a, const RhsScalar& b) const {return a=...
  function EIGEN_STRONG_INLINE (line 231) | EIGEN_STRONG_INLINE Packet packetOp(const Packet& a, const Packet& b) const
  function const (line 239) | bool operator()(const LhsScalar& a, const RhsScalar& b) const {return a<b;}
  function EIGEN_STRONG_INLINE (line 241) | EIGEN_STRONG_INLINE Packet packetOp(const Packet& a, const Packet& b) const
  function const (line 249) | bool operator()(const LhsScalar& a, const RhsScalar& b) const {return a<...
  function EIGEN_STRONG_INLINE (line 251) | EIGEN_STRONG_INLINE Packet packetOp(const Packet& a, const Packet& b) const
  function const (line 259) | bool operator()(const LhsScalar& a, const RhsScalar& b) const {return a>b;}
  function EIGEN_STRONG_INLINE (line 261) | EIGEN_STRONG_INLINE Packet packetOp(const Packet& a, const Packet& b) const
  function const (line 269) | bool operator()(const LhsScalar& a, const RhsScalar& b) const {return a>...
  function EIGEN_STRONG_INLINE (line 271) | EIGEN_STRONG_INLINE Packet packetOp(const Packet& a, const Packet& b) const
  function const (line 279) | bool operator()(const LhsScalar& a, const RhsScalar& b) const {return !(...
  function EIGEN_STRONG_INLINE (line 281) | EIGEN_STRONG_INLINE Packet packetOp(const Packet& a, const Packet& b) const
  function const (line 289) | bool operator()(const LhsScalar& a, const RhsScalar& b) const {return a!...
  function EIGEN_STRONG_INLINE (line 291) | EIGEN_STRONG_INLINE Packet packetOp(const Packet& a, const Packet& b) const
  function Scalar (line 305) | const Scalar operator() (const Scalar &x, const Scalar &y) const
  type typename (line 333) | typedef typename ScalarBinaryOpTraits<Scalar,Exponent,scalar_pow_op>::Re...
  type Scalar (line 338) | typedef Scalar LhsScalar;
  type Exponent (line 339) | typedef Exponent RhsScalar;
  function EIGEN_DEVICE_FUNC (line 344) | EIGEN_DEVICE_FUNC
  function Packet (line 348) | const Packet packetOp(const Packet& a, const Packet& b) const
  type typename (line 378) | typedef typename ScalarBinaryOpTraits<LhsScalar,RhsScalar,scalar_differe...
  function result_type (line 386) | const result_type operator() (const LhsScalar& a, const RhsScalar& b) co...
  function Packet (line 388) | const Packet packetOp(const Packet& a, const Packet& b) const
  type typename (line 407) | typedef typename ScalarBinaryOpTraits<LhsScalar,RhsScalar,scalar_quotien...
  function result_type (line 415) | const result_type operator() (const LhsScalar& a, const RhsScalar& b) co...
  function Packet (line 417) | const Packet packetOp(const Packet& a, const Packet& b) const
  type scalar_boolean_and_op (line 436) | struct scalar_boolean_and_op {
  function EIGEN_STRONG_INLINE (line 440) | EIGEN_STRONG_INLINE const Packet packetOp(const Packet& a, const Packet&...
  function scalar_boolean_and_op (line 443) | struct functor_traits<scalar_boolean_and_op> {
  type scalar_boolean_or_op (line 455) | struct scalar_boolean_or_op {
  function EIGEN_STRONG_INLINE (line 459) | EIGEN_STRONG_INLINE const Packet packetOp(const Packet& a, const Packet&...
  function scalar_boolean_or_op (line 462) | struct functor_traits<scalar_boolean_or_op> {
  type scalar_boolean_xor_op (line 474) | struct scalar_boolean_xor_op {
  function EIGEN_STRONG_INLINE (line 478) | EIGEN_STRONG_INLINE const Packet packetOp(const Packet& a, const Packet&...
  function scalar_boolean_xor_op (line 481) | struct functor_traits<scalar_boolean_xor_op> {
  type typename (line 496) | typedef typename ScalarBinaryOpTraits<LhsScalar,RhsScalar,scalar_absolut...
  function result_type (line 504) | const result_type operator() (const LhsScalar& a, const RhsScalar& b) const
  function Packet (line 507) | const Packet packetOp(const Packet& a, const Packet& b) const
  type typename (line 528) | typedef typename BinaryOp::first_argument_type  first_argument_type;
  type typename (line 529) | typedef typename BinaryOp::second_argument_type second_argument_type;
  type typename (line 530) | typedef typename BinaryOp::result_type          result_type;
  function EIGEN_DEVICE_FUNC (line 532) | EIGEN_DEVICE_FUNC explicit bind1st_op(const first_argument_type &val) : ...
  function result_type (line 534) | const result_type operator() (const second_argument_type& b) const { ret...
  function Packet (line 537) | const Packet packetOp(const Packet& b) const
  type typename (line 547) | typedef typename BinaryOp::first_argument_type  first_argument_type;
  type typename (line 548) | typedef typename BinaryOp::second_argument_type second_argument_type;
  type typename (line 549) | typedef typename BinaryOp::result_type          result_type;
  function EIGEN_DEVICE_FUNC (line 551) | EIGEN_DEVICE_FUNC explicit bind2nd_op(const second_argument_type &val) :...
  function result_type (line 553) | const result_type operator() (const first_argument_type& a) const { retu...
  function Packet (line 556) | const Packet packetOp(const Packet& a) const

FILE: extensions/ngp_raymarch/include/op_include/eigen/Eigen/src/Core/functors/NullaryFunctors.h
  function namespace (line 15) | namespace Eigen {
  function Scalar (line 104) | const Scalar operator() (IndexType i) const
  function EIGEN_DEVICE_FUNC (line 134) | EIGEN_DEVICE_FUNC linspaced_op(const Scalar& low, const Scalar& high, In...
  function Scalar (line 139) | const Scalar operator() (IndexType i) const { return impl(i); }
  function EIGEN_STRONG_INLINE (line 142) | EIGEN_STRONG_INLINE const Packet packetOp(IndexType i) const { return im...

FILE: extensions/ngp_raymarch/include/op_include/eigen/Eigen/src/Core/functors/StlFunctors.h
  function namespace (line 15) | namespace Eigen {

FILE: extensions/ngp_raymarch/include/op_include/eigen/Eigen/src/Core/functors/TernaryFunctors.h
  function namespace (line 15) | namespace Eigen {

FILE: extensions/ngp_raymarch/include/op_include/eigen/Eigen/src/Core/functors/UnaryFunctors.h
  function namespace (line 15) | namespace Eigen {
  function EIGEN_STRONG_INLINE (line 180) | EIGEN_STRONG_INLINE const Scalar operator() (const Scalar& a) const
  function Packet (line 183) | const Packet packetOp(const Packet& a) const
  function EIGEN_STRONG_INLINE (line 199) | EIGEN_STRONG_INLINE const Scalar operator() (const Scalar& a) const
  function Packet (line 202) | const Packet packetOp(const Packet& a) const
  function result_type (line 219) | result_type operator() (const Scalar& a) const { return numext::real(a); }
  function result_type (line 235) | result_type operator() (const Scalar& a) const { return numext::imag(a); }
  function Scalar (line 281) | inline const Scalar operator() (const Scalar& a) const { return numext::...
  function Packet (line 283) | inline Packet packetOp(const Packet& a) const { return internal::pexp(a); }
  function Scalar (line 321) | inline const Scalar operator() (const Scalar& a) const { return numext::...
  function Packet (line 323) | inline Packet packetOp(const Packet& a) const { return internal::pexpm1(...
  function Scalar (line 341) | inline const Scalar operator() (const Scalar& a) const { return numext::...
  function Packet (line 343) | inline Packet packetOp(const Packet& a) const { return internal::plog(a); }
  function Scalar (line 372) | inline const Scalar operator() (const Scalar& a) const { return numext::...
  function Packet (line 374) | inline Packet packetOp(const Packet& a) const { return internal::plog1p(...
  function Scalar (line 392) | inline const Scalar operator() (const Scalar& a) const { EIGEN_USING_STD...
  function Packet (line 394) | inline Packet packetOp(const Packet& a) const { return internal::plog10(...
  function Scalar (line 408) | inline const Scalar operator() (const Scalar& a) const { return Scalar(E...
  function Packet (line 410) | inline Packet packetOp(const Packet& a) const { return internal::plog2(a...
  function Scalar (line 422) | inline const Scalar operator() (const Scalar& a) const { return numext::...
  function Packet (line 424) | inline Packet packetOp(const Packet& a) const { return internal::psqrt(a...
  function bool (line 444) | struct scalar_sqrt_op<bool> {
  type functor_traits (line 451) | struct functor_traits
  function Scalar (line 461) | inline const Scalar operator() (const Scalar& a) const { return numext::...
  function Packet (line 463) | inline Packet packetOp(const Packet& a) const { return internal::prsqrt(...
  function Scalar (line 480) | inline Scalar operator() (const Scalar& a) const { return numext::cos(a); }
  function Packet (line 482) | inline Packet packetOp(const Packet& a) const { return internal::pcos(a); }
  function Scalar (line 499) | inline const Scalar operator() (const Scalar& a) const { return numext::...
  function Packet (line 501) | inline Packet packetOp(const Packet& a) const { return internal::psin(a); }
  function Scalar (line 519) | inline const Scalar operator() (const Scalar& a) const { return numext::...
  function Packet (line 521) | inline Packet packetOp(const Packet& a) const { return internal::ptan(a); }
  function Scalar (line 538) | inline const Scalar operator() (const Scalar& a) const { return numext::...
  function Packet (line 540) | inline Packet packetOp(const Packet& a) const { return internal::pacos(a...
  function Scalar (line 557) | inline const Scalar operator() (const Scalar& a) const { return numext::...
  function Packet (line 559) | inline Packet packetOp(const Packet& a) const { return internal::pasin(a...
  function Scalar (line 577) | inline const Scalar operator() (const Scalar& a) const { return numext::...
  function Packet (line 579) | inline Packet packetOp(const Packet& a) const { return internal::patan(a...
  function Scalar (line 597) | inline const Scalar operator()(const Scalar& a) const { return numext::t...
  function Packet (line 599) | inline Packet packetOp(const Packet& x) const { return ptanh(x); }
  function Scalar (line 635) | inline const Scalar operator()(const Scalar& a) const { return numext::a...
  function Scalar (line 650) | inline const Scalar operator() (const Scalar& a) const { return numext::...
  function Packet (line 652) | inline Packet packetOp(const Packet& a) const { return internal::psinh(a...
  function Scalar (line 671) | inline const Scalar operator()(const Scalar& a) const { return numext::a...
  function Scalar (line 686) | inline const Scalar operator() (const Scalar& a) const { return numext::...
  function Packet (line 688) | inline Packet packetOp(const Packet& a) const { return internal::pcosh(a...
  function Scalar (line 707) | inline const Scalar operator()(const Scalar& a) const { return numext::a...
  function Scalar (line 723) | inline Scalar operator() (const Scalar& a) const { return Scalar(1)/a; }
  function Packet (line 725) | inline const Packet packetOp(const Packet& a) const
  function Scalar (line 743) | inline Scalar operator() (const Scalar& a) const { return a*a; }
  function Packet (line 745) | inline const Packet packetOp(const Packet& a) const
  function bool (line 754) | struct scalar_square_op<bool> {
  type functor_traits (line 762) | struct functor_traits
  function Scalar (line 772) | inline Scalar operator() (const Scalar& a) const { return a*a*a; }
  function Packet (line 774) | inline const Packet packetOp(const Packet& a) const
  function bool (line 783) | struct scalar_cube_op<bool> {
  type functor_traits (line 791) | struct functor_traits
  function EIGEN_STRONG_INLINE (line 800) | EIGEN_STRONG_INLINE const Scalar operator() (const Scalar& a) const { re...
  function Packet (line 802) | inline Packet packetOp(const Packet& a) const { return internal::pround(...
  function EIGEN_STRONG_INLINE (line 819) | EIGEN_STRONG_INLINE const Scalar operator() (const Scalar& a) const { re...
  function Packet (line 821) | inline Packet packetOp(const Packet& a) const { return internal::pfloor(...
  function EIGEN_STRONG_INLINE (line 838) | EIGEN_STRONG_INLINE const Scalar operator() (const Scalar& a) const { re...
  function Packet (line 840) | inline Packet packetOp(const Packet& a) const { return internal::print(a...
  function EIGEN_STRONG_INLINE (line 857) | EIGEN_STRONG_INLINE const Scalar operator() (const Scalar& a) const { re...
  function Packet (line 859) | inline Packet packetOp(const Packet& a) const { return internal::pceil(a...
  function result_type (line 877) | result_type operator() (const Scalar& a) const {
  function result_type (line 901) | result_type operator() (const Scalar& a) const {
  function result_type (line 925) | result_type operator() (const Scalar& a) const {
  function const (line 949) | bool operator() (const bool& a) const { return !a; }
  function EIGEN_DEVICE_FUNC (line 967) | EIGEN_DEVICE_FUNC inline const Scalar operator() (const Scalar& a) const
  function EIGEN_DEVICE_FUNC (line 979) | EIGEN_DEVICE_FUNC inline const Scalar operator() (const Scalar& a) const
  function EIGEN_DEVICE_FUNC (line 991) | EIGEN_DEVICE_FUNC inline const Scalar operator() (const Scalar& a) const
  function EIGEN_STRONG_INLINE (line 1022) | EIGEN_STRONG_INLINE T operator()(const T& x) const {
  function EIGEN_STRONG_INLINE (line 1026) | EIGEN_STRONG_INLINE
  function float (line 1046) | struct scalar_logistic_op<float> {

FILE: extensions/ngp_raymarch/include/op_include/eigen/Eigen/src/Core/products/GeneralBlockPanelKernel.h
  function namespace (line 16) | namespace Eigen {
  function Packet (line 366) | const Packet& get(const FixedInt<0>&) const { return B_0; }
  function Packet (line 367) | const Packet& get(const FixedInt<1>&) const { return B1; }
  function Packet (line 368) | const Packet& get(const FixedInt<2>&) const { return B2; }
  function Packet (line 369) | const Packet& get(const FixedInt<3>&) const { return B3; }
  type T3 (line 373) | typedef T3 type;
  type RhsScalar_ (line 424) | typedef RhsScalar_ RhsScalar;
  type typename (line 425) | typedef typename ScalarBinaryOpTraits<LhsScalar, RhsScalar>::ReturnType ...
  type typename (line 462) | typedef typename conditional<Vectorizable,_LhsPacket,LhsScalar>::type Lh...
  type typename (line 463) | typedef typename conditional<Vectorizable,_RhsPacket,RhsScalar>::type Rh...
  type typename (line 464) | typedef typename conditional<Vectorizable,_ResPacket,ResScalar>::type Re...
  type LhsPacket (line 465) | typedef LhsPacket LhsPacket4Packing;
  type QuadPacket (line 467) | typedef QuadPacket<RhsPacket> RhsPacketx4;
  type ResPacket (line 468) | typedef ResPacket AccPacket;
  function loadRhs (line 476) | void loadRhs(const RhsScalar* b, RhsPacketType& dest) const
  function EIGEN_STRONG_INLINE (line 481) | EIGEN_STRONG_INLINE void loadRhs(const RhsScalar* b, RhsPacketx4& dest) ...
  function updateRhs (line 487) | void updateRhs(const RhsScalar* b, RhsPacketType& dest) const
  function EIGEN_STRONG_INLINE (line 492) | EIGEN_STRONG_INLINE void updateRhs(const RhsScalar*, RhsPacketx4&) const
  function EIGEN_STRONG_INLINE (line 496) | EIGEN_STRONG_INLINE void loadRhsQuad(const RhsScalar* b, RhsPacket& dest...
  function loadLhs (line 502) | void loadLhs(const LhsScalar* a, LhsPacketType& dest) const
  function loadLhsUnaligned (line 508) | void loadLhsUnaligned(const LhsScalar* a, LhsPacketType& dest) const
  function madd (line 514) | void madd(const LhsPacketType& a, const RhsPacketType& b, AccPacketType&...
  function madd (line 530) | void madd(const LhsPacketType& a, const RhsPacketx4& b, AccPacketType& c...
  function EIGEN_STRONG_INLINE (line 535) | EIGEN_STRONG_INLINE void acc(const AccPacket& c, const ResPacket& alpha,...
  function acc (line 541) | void acc(const ResPacketHalf& c, const ResPacketHalf& alpha, ResPacketHa...
  type std (line 552) | typedef std::complex<RealScalar> LhsScalar;
  type RealScalar (line 553) | typedef RealScalar RhsScalar;
  type typename (line 554) | typedef typename ScalarBinaryOpTraits<LhsScalar, RhsScalar>::ReturnType ...
  type typename (line 581) | typedef typename conditional<Vectorizable,_LhsPacket,LhsScalar>::type Lh...
  type typename (line 582) | typedef typename conditional<Vectorizable,_RhsPacket,RhsScalar>::type Rh...
  type typename (line 583) | typedef typename conditional<Vectorizable,_ResPacket,ResScalar>::type Re...
  type LhsPacket (line 584) | typedef LhsPacket LhsPacket4Packing;
  type QuadPacket (line 586) | typedef QuadPacket<RhsPacket> RhsPacketx4;
  type ResPacket (line 588) | typedef ResPacket AccPacket;
  function loadRhs (line 596) | void loadRhs(const RhsScalar* b, RhsPacketType& dest) const
  function EIGEN_STRONG_INLINE (line 601) | EIGEN_STRONG_INLINE void loadRhs(const RhsScalar* b, RhsPacketx4& dest) ...
  function updateRhs (line 607) | void updateRhs(const RhsScalar* b, RhsPacketType& dest) const
  function EIGEN_STRONG_INLINE (line 612) | EIGEN_STRONG_INLINE void updateRhs(const RhsScalar*, RhsPacketx4&) const
  function EIGEN_STRONG_INLINE (line 615) | EIGEN_STRONG_INLINE void loadRhsQuad(const RhsScalar* b, RhsPacket& dest...
  function EIGEN_STRONG_INLINE (line 620) | EIGEN_STRONG_INLINE void loadRhsQuad_impl(const RhsScalar* b, RhsPacket&...
  function EIGEN_STRONG_INLINE (line 628) | EIGEN_STRONG_INLINE void loadRhsQuad_impl(const RhsScalar* b, RhsPacket&...
  function EIGEN_STRONG_INLINE (line 634) | EIGEN_STRONG_INLINE void loadLhs(const LhsScalar* a, LhsPacket& dest) const
  function loadLhsUnaligned (line 640) | void loadLhsUnaligned(const LhsScalar* a, LhsPacketType& dest) const
  function madd (line 646) | void madd(const LhsPacketType& a, const RhsPacketType& b, AccPacketType&...
  function madd_impl (line 652) | void madd_impl(const LhsPacketType& a, const RhsPacketType& b, AccPacket...
  function EIGEN_STRONG_INLINE (line 662) | EIGEN_STRONG_INLINE void madd_impl(const LhsScalar& a, const RhsScalar& ...
  function madd (line 668) | void madd(const LhsPacketType& a, const RhsPacketx4& b, AccPacketType& c...
  function acc (line 674) | void acc(const AccPacketType& c, const ResPacketType& alpha, ResPacketTy...
  type std (line 718) | typedef std::complex<typename
  type typename (line 719) | typedef typename packet_traits<Cplx>::type CplxPacket;
  type DoublePacket (line 748) | typedef DoublePacket<typename
  type std (line 764) | typedef std::complex<RealScalar>  LhsScalar;
  type std (line 765) | typedef std::complex<RealScalar>  RhsScalar;
  type std (line 766) | typedef std::complex<RealScalar>  ResScalar;
  type DoublePacket (line 792) | typedef DoublePacket<RealPacket>                 DoublePacketType;
  type typename (line 794) | typedef typename conditional<Vectorizable,ScalarPacket,Scalar>::type Lhs...
  type typename (line 795) | typedef typename conditional<Vectorizable,RealPacket,  Scalar>::type Lhs...
  type typename (line 796) | typedef typename conditional<Vectorizable,DoublePacketType,Scalar>::type...
  type typename (line 797) | typedef typename conditional<Vectorizable,ScalarPacket,Scalar>::type Res...
  type typename (line 798) | typedef typename conditional<Vectorizable,DoublePacketType,Scalar>::type...
  type QuadPacket (line 801) | typedef QuadPacket<RhsPacket> RhsPacketx4;
  function EIGEN_STRONG_INLINE (line 812) | EIGEN_STRONG_INLINE void loadRhs(const RhsScalar* b, ScalarPacket& dest)...
  function loadRhs (line 819) | void loadRhs(const RhsScalar* b, DoublePacket<RealPacketType>& dest) const
  function EIGEN_STRONG_INLINE (line 825) | EIGEN_STRONG_INLINE void loadRhs(const RhsScalar* b, RhsPacketx4& dest) ...
  function EIGEN_STRONG_INLINE (line 834) | EIGEN_STRONG_INLINE void updateRhs(const RhsScalar* b, ScalarPacket& des...
  function updateRhs (line 841) | void updateRhs(const RhsScalar* b, DoublePacket<RealPacketType>& dest) c...
  function EIGEN_STRONG_INLINE (line 846) | EIGEN_STRONG_INLINE void updateRhs(const RhsScalar*, RhsPacketx4&) const {}
  function EIGEN_STRONG_INLINE (line 848) | EIGEN_STRONG_INLINE void loadRhsQuad(const RhsScalar* b, ResPacket& dest...
  function EIGEN_STRONG_INLINE (line 852) | EIGEN_STRONG_INLINE void loadRhsQuad(const RhsScalar* b, DoublePacketTyp...
  function EIGEN_STRONG_INLINE (line 858) | EIGEN_STRONG_INLINE void loadLhs(const LhsScalar* a, LhsPacket& dest) const
  function loadLhsUnaligned (line 864) | void loadLhsUnaligned(const LhsScalar* a, LhsPacketType& dest) const
  function acc (line 893) | void acc(const DoublePacket<RealPacketType>& c, const ResPacketType& alp...
  type RealScalar (line 930) | typedef RealScalar  LhsScalar;
  type Scalar (line 931) | typedef Scalar      RhsScalar;
  type Scalar (line 932) | typedef Scalar      ResScalar;
  type typename (line 963) | typedef typename conditional<Vectorizable,_LhsPacket,LhsScalar>::type Lh...
  type typename (line 964) | typedef typename conditional<Vectorizable,_RhsPacket,RhsScalar>::type Rh...
  type typename (line 965) | typedef typename conditional<Vectorizable,_ResPacket,ResScalar>::type Re...
  type LhsPacket (line 966) | typedef LhsPacket LhsPacket4Packing;
  type QuadPacket (line 967) | typedef QuadPacket<RhsPacket> RhsPacketx4;
  type ResPacket (line 968) | typedef ResPacket AccPacket;
  function loadRhs (line 976) | void loadRhs(const RhsScalar* b, RhsPacketType& dest) const
  function EIGEN_STRONG_INLINE (line 981) | EIGEN_STRONG_INLINE void loadRhs(const RhsScalar* b, RhsPacketx4& dest) ...
  function updateRhs (line 987) | void updateRhs(const RhsScalar* b, RhsPacketType& dest) const
  function EIGEN_STRONG_INLINE (line 992) | EIGEN_STRONG_INLINE void updateRhs(const RhsScalar*, RhsPacketx4&) const
  function EIGEN_STRONG_INLINE (line 995) | EIGEN_STRONG_INLINE void loadLhs(const LhsScalar* a, LhsPacket& dest) const
  function EIGEN_STRONG_INLINE (line 1000) | EIGEN_STRONG_INLINE void loadRh
Copy disabled (too large) Download .json
Condensed preview — 2000 files, each showing path, character count, and a content snippet. Download the .json file for the full structured content (17,254K chars).
[
  {
    "path": ".github/workflows/build.yml",
    "chars": 1641,
    "preview": "# This workflow will install Python dependencies, run tests and lint with a variety of Python versions\n# For more inform"
  },
  {
    "path": ".github/workflows/lint.yml",
    "chars": 866,
    "preview": "name: lint\n\non: [push, pull_request]\n\nconcurrency:\n  group: ${{ github.workflow }}-${{ github.ref }}\n  cancel-in-progres"
  },
  {
    "path": ".gitignore",
    "chars": 153,
    "preview": "/__pycache__/\n/data/\n/scripts/\n/work_dirs/\n/build/\nsftp-config.json\npush.sh\n*.pyc\n*.log\n*.egg\n*.egg-info\n*.so\n*.o\n*.mp4\n"
  },
  {
    "path": ".pre-commit-config.yaml",
    "chars": 1324,
    "preview": "exclude: ^tests/data/\nrepos:\n  - repo: https://github.com/pycqa/flake8.git\n    rev: 3.8.3\n    hooks:\n      - id: flake8\n"
  },
  {
    "path": "LICENSE",
    "chars": 11398,
    "preview": "Copyright 2022 XRNerf Authors. All rights reserved.\n\n                                 Apache License\n                   "
  },
  {
    "path": "README.md",
    "chars": 9811,
    "preview": "# XRNeRF\n\n<div align=\"left\">\n\n[![actions](https://github.com/openxrlab/xrnerf/workflows/build/badge.svg)](https://github"
  },
  {
    "path": "README_CN.md",
    "chars": 6357,
    "preview": "# XRNeRF\n\n<div align=\"left\">\n\n[![actions](https://github.com/openxrlab/xrnerf/workflows/build/badge.svg)](https://github"
  },
  {
    "path": "configs/__init__.py",
    "chars": 175,
    "preview": "import importlib\n\n\ndef load_configs(name):\n    modellib = importlib.import_module(name)\n    # print(configs.hmr_configs)"
  },
  {
    "path": "configs/_base_/models/nerf.py",
    "chars": 712,
    "preview": "# # model settings\n# model = dict(\n#     type='nerf',\n#     i_embed=0, # set 0 for default positional encoding, -1 for n"
  },
  {
    "path": "configs/animatable_nerf/an_h36m_s11_novel_pose.py",
    "chars": 9405,
    "preview": "_base_ = [\n    # '../_base_/models/nerf.py',\n    # '../_base_/schedules/adam_20w_iter.py',\n    # '../_base_/default_runt"
  },
  {
    "path": "configs/animatable_nerf/an_h36m_s11_train_pose.py",
    "chars": 8964,
    "preview": "_base_ = [\n    # '../_base_/models/nerf.py',\n    # '../_base_/schedules/adam_20w_iter.py',\n    # '../_base_/default_runt"
  },
  {
    "path": "configs/animatable_nerf/an_h36m_s1_novel_pose.py",
    "chars": 9402,
    "preview": "_base_ = [\n    # '../_base_/models/nerf.py',\n    # '../_base_/schedules/adam_20w_iter.py',\n    # '../_base_/default_runt"
  },
  {
    "path": "configs/animatable_nerf/an_h36m_s1_train_pose.py",
    "chars": 8962,
    "preview": "_base_ = [\n    # '../_base_/models/nerf.py',\n    # '../_base_/schedules/adam_20w_iter.py',\n    # '../_base_/default_runt"
  },
  {
    "path": "configs/animatable_nerf/an_h36m_s5_novel_pose.py",
    "chars": 9403,
    "preview": "_base_ = [\n    # '../_base_/models/nerf.py',\n    # '../_base_/schedules/adam_20w_iter.py',\n    # '../_base_/default_runt"
  },
  {
    "path": "configs/animatable_nerf/an_h36m_s5_train_pose.py",
    "chars": 8963,
    "preview": "_base_ = [\n    # '../_base_/models/nerf.py',\n    # '../_base_/schedules/adam_20w_iter.py',\n    # '../_base_/default_runt"
  },
  {
    "path": "configs/animatable_nerf/an_h36m_s6_novel_pose.py",
    "chars": 9402,
    "preview": "_base_ = [\n    # '../_base_/models/nerf.py',\n    # '../_base_/schedules/adam_20w_iter.py',\n    # '../_base_/default_runt"
  },
  {
    "path": "configs/animatable_nerf/an_h36m_s6_train_pose.py",
    "chars": 8962,
    "preview": "_base_ = [\n    # '../_base_/models/nerf.py',\n    # '../_base_/schedules/adam_20w_iter.py',\n    # '../_base_/default_runt"
  },
  {
    "path": "configs/animatable_nerf/an_h36m_s7_novel_pose.py",
    "chars": 9403,
    "preview": "_base_ = [\n    # '../_base_/models/nerf.py',\n    # '../_base_/schedules/adam_20w_iter.py',\n    # '../_base_/default_runt"
  },
  {
    "path": "configs/animatable_nerf/an_h36m_s7_train_pose.py",
    "chars": 8963,
    "preview": "_base_ = [\n    # '../_base_/models/nerf.py',\n    # '../_base_/schedules/adam_20w_iter.py',\n    # '../_base_/default_runt"
  },
  {
    "path": "configs/animatable_nerf/an_h36m_s8_novel_pose.py",
    "chars": 9402,
    "preview": "_base_ = [\n    # '../_base_/models/nerf.py',\n    # '../_base_/schedules/adam_20w_iter.py',\n    # '../_base_/default_runt"
  },
  {
    "path": "configs/animatable_nerf/an_h36m_s8_train_pose.py",
    "chars": 8962,
    "preview": "_base_ = [\n    # '../_base_/models/nerf.py',\n    # '../_base_/schedules/adam_20w_iter.py',\n    # '../_base_/default_runt"
  },
  {
    "path": "configs/animatable_nerf/an_h36m_s9_novel_pose.py",
    "chars": 9403,
    "preview": "_base_ = [\n    # '../_base_/models/nerf.py',\n    # '../_base_/schedules/adam_20w_iter.py',\n    # '../_base_/default_runt"
  },
  {
    "path": "configs/animatable_nerf/an_h36m_s9_render_train_pose.py",
    "chars": 2514,
    "preview": "_base_ = ['an_h36m_s9_train_pose.py']\nfrom configs.animatable_nerf.an_h36m_s9_train_pose import *\n\ntest_hooks = [\n    di"
  },
  {
    "path": "configs/animatable_nerf/an_h36m_s9_train_pose.py",
    "chars": 8963,
    "preview": "_base_ = [\n    # '../_base_/models/nerf.py',\n    # '../_base_/schedules/adam_20w_iter.py',\n    # '../_base_/default_runt"
  },
  {
    "path": "configs/animatable_nerf/an_zjumocap_313_novel_pose.py",
    "chars": 9339,
    "preview": "_base_ = [\n    # '../_base_/models/nerf.py',\n    # '../_base_/schedules/adam_20w_iter.py',\n    # '../_base_/default_runt"
  },
  {
    "path": "configs/animatable_nerf/an_zjumocap_313_train_pose.py",
    "chars": 9061,
    "preview": "_base_ = [\n    # '../_base_/models/nerf.py',\n    # '../_base_/schedules/adam_20w_iter.py',\n    # '../_base_/default_runt"
  },
  {
    "path": "configs/bungeenerf/bungeenerf_multiscale_google.py",
    "chars": 6354,
    "preview": "_base_ = [\n    # '../_base_/models/nerf.py',\n    # '../_base_/schedules/adam_20w_iter.py',\n    # '../_base_/default_runt"
  },
  {
    "path": "configs/gnr/gnr_genebody.py",
    "chars": 6538,
    "preview": "_base_ = [\n    # '../_base_/models/nerf.py',\n    # '../_base_/schedules/adam_20w_iter.py',\n    # '../_base_/default_runt"
  },
  {
    "path": "configs/instant_ngp/nerf_blender_local01.py",
    "chars": 6366,
    "preview": "_base_ = [\n    # '../_base_/models/nerf.py',\n    # '../_base_/schedules/adam_20w_iter.py',\n    # '../_base_/default_runt"
  },
  {
    "path": "configs/kilonerf/kilonerf_distill_BlendedMVS_base01.py",
    "chars": 5464,
    "preview": "_base_ = [\n    # '../_base_/models/nerf.py',\n    # '../_base_/schedules/adam_20w_iter.py',\n    # '../_base_/default_runt"
  },
  {
    "path": "configs/kilonerf/kilonerf_distill_Synthetic_NeRF_base01.py",
    "chars": 5697,
    "preview": "_base_ = [\n    # '../_base_/models/nerf.py',\n    # '../_base_/schedules/adam_20w_iter.py',\n    # '../_base_/default_runt"
  },
  {
    "path": "configs/kilonerf/kilonerf_finetune_BlendedMVS_base01.py",
    "chars": 7367,
    "preview": "_base_ = [\n    # '../_base_/models/nerf.py',\n    # '../_base_/schedules/adam_20w_iter.py',\n    # '../_base_/default_runt"
  },
  {
    "path": "configs/kilonerf/kilonerf_finetune_Synthetic_NeRF_base01.py",
    "chars": 7583,
    "preview": "_base_ = [\n    # '../_base_/models/nerf.py',\n    # '../_base_/schedules/adam_20w_iter.py',\n    # '../_base_/default_runt"
  },
  {
    "path": "configs/kilonerf/kilonerf_pretrain_BlendedMVS_base01.py",
    "chars": 6958,
    "preview": "_base_ = [\n    # '../_base_/models/nerf.py',\n    # '../_base_/schedules/adam_20w_iter.py',\n    # '../_base_/default_runt"
  },
  {
    "path": "configs/kilonerf/kilonerf_pretrain_Synthetic_NeRF_base01.py",
    "chars": 7162,
    "preview": "_base_ = [\n    # '../_base_/models/nerf.py',\n    # '../_base_/schedules/adam_20w_iter.py',\n    # '../_base_/default_runt"
  },
  {
    "path": "configs/mipnerf/mipnerf_blender.py",
    "chars": 6911,
    "preview": "import os\nfrom datetime import datetime\n\nmethod = 'mip_nerf'  # [nerf, kilo_nerf, mip_nerf]\nuse_multiscale = False\n\n# op"
  },
  {
    "path": "configs/mipnerf/mipnerf_multiscale.py",
    "chars": 5685,
    "preview": "import os\nfrom datetime import datetime\n\nmethod = 'mip_nerf'  # [nerf, kilo_nerf, mip_nerf]\nuse_multiscale = True\n\n# opt"
  },
  {
    "path": "configs/nerf/nerf_blender_base01.py",
    "chars": 7344,
    "preview": "_base_ = [\n    # '../_base_/models/nerf.py',\n    # '../_base_/schedules/adam_20w_iter.py',\n    # '../_base_/default_runt"
  },
  {
    "path": "configs/nerf/nerf_llff_base01.py",
    "chars": 7399,
    "preview": "_base_ = [\n    # '../_base_/models/nerf.py',\n    # '../_base_/schedules/adam_20w_iter.py',\n    # '../_base_/default_runt"
  },
  {
    "path": "configs/neuralbody/nb_zjumocap_313.py",
    "chars": 6937,
    "preview": "_base_ = [\n    # '../_base_/models/nerf.py',\n    # '../_base_/schedules/adam_20w_iter.py',\n    # '../_base_/default_runt"
  },
  {
    "path": "configs/neuralbody/nb_zjumocap_315.py",
    "chars": 6938,
    "preview": "_base_ = [\n    # '../_base_/models/nerf.py',\n    # '../_base_/schedules/adam_20w_iter.py',\n    # '../_base_/default_runt"
  },
  {
    "path": "configs/neuralbody/nb_zjumocap_377.py",
    "chars": 6938,
    "preview": "_base_ = [\n    # '../_base_/models/nerf.py',\n    # '../_base_/schedules/adam_20w_iter.py',\n    # '../_base_/default_runt"
  },
  {
    "path": "configs/neuralbody/nb_zjumocap_386.py",
    "chars": 6938,
    "preview": "_base_ = [\n    # '../_base_/models/nerf.py',\n    # '../_base_/schedules/adam_20w_iter.py',\n    # '../_base_/default_runt"
  },
  {
    "path": "configs/neuralbody/nb_zjumocap_387.py",
    "chars": 6938,
    "preview": "_base_ = [\n    # '../_base_/models/nerf.py',\n    # '../_base_/schedules/adam_20w_iter.py',\n    # '../_base_/default_runt"
  },
  {
    "path": "configs/neuralbody/nb_zjumocap_390.py",
    "chars": 6946,
    "preview": "_base_ = [\n    # '../_base_/models/nerf.py',\n    # '../_base_/schedules/adam_20w_iter.py',\n    # '../_base_/default_runt"
  },
  {
    "path": "configs/neuralbody/nb_zjumocap_392.py",
    "chars": 6938,
    "preview": "_base_ = [\n    # '../_base_/models/nerf.py',\n    # '../_base_/schedules/adam_20w_iter.py',\n    # '../_base_/default_runt"
  },
  {
    "path": "configs/neuralbody/nb_zjumocap_393.py",
    "chars": 6938,
    "preview": "_base_ = [\n    # '../_base_/models/nerf.py',\n    # '../_base_/schedules/adam_20w_iter.py',\n    # '../_base_/default_runt"
  },
  {
    "path": "configs/neuralbody/nb_zjumocap_394.py",
    "chars": 6938,
    "preview": "_base_ = [\n    # '../_base_/models/nerf.py',\n    # '../_base_/schedules/adam_20w_iter.py',\n    # '../_base_/default_runt"
  },
  {
    "path": "configs/neuralbody/nb_zjumocap_render_313.py",
    "chars": 2330,
    "preview": "_base_ = ['nb_zjumocap_313.py']\nfrom configs.neuralbody.nb_zjumocap_313 import *\n\ntest_hooks = [\n    dict(type='SetValPi"
  },
  {
    "path": "docker/Dockerfile",
    "chars": 2304,
    "preview": "\nARG PYTORCH=\"1.9.0\"\nARG CUDA=\"11.1\"\nARG CUDNN=\"8\"\n\nFROM pytorch/pytorch:${PYTORCH}-cuda${CUDA}-cudnn${CUDNN}-devel\n\nENV"
  },
  {
    "path": "docker/DockerfileCN",
    "chars": 2794,
    "preview": "\nARG PYTORCH=\"1.9.0\"\nARG CUDA=\"11.1\"\nARG CUDNN=\"8\"\n\nFROM pytorch/pytorch:${PYTORCH}-cuda${CUDA}-cudnn${CUDNN}-devel\n\n# E"
  },
  {
    "path": "docker/daemon.json",
    "chars": 179,
    "preview": "{\n    \"runtimes\": {\n        \"nvidia\": {\n            \"path\": \"/usr/bin/nvidia-container-runtime\",\n            \"runtimeArg"
  },
  {
    "path": "docker/sources.list",
    "chars": 902,
    "preview": "deb http://mirrors.aliyun.com/ubuntu/ bionic main restricted universe multiverse\ndeb http://mirrors.aliyun.com/ubuntu/ b"
  },
  {
    "path": "docs/en/CONTRIBUTING.md",
    "chars": 2240,
    "preview": "# Contributing to XRNeRF\n\nAll kinds of contributions are welcome, including but not limited to the following.\n\n- Fixes ("
  },
  {
    "path": "docs/en/additional_licenses.md",
    "chars": 4594,
    "preview": "# Additional Licenses\n\nWe would like to pay tribute to open-source implementations to which we make reference. Note that"
  },
  {
    "path": "docs/en/apis.md",
    "chars": 528,
    "preview": "# APIS\n## run_nerf\ninput: args, running parameters\npurpose: parse running parameters, and train, test or render a nerf m"
  },
  {
    "path": "docs/en/benchmark.md",
    "chars": 9963,
    "preview": "# Benchmark\n\nWe compare our results with some popular frameworks and official releases in terms of speed.\n\n## Settings\n\n"
  },
  {
    "path": "docs/en/dataset_preparation.md",
    "chars": 1904,
    "preview": "# Data Preparation\n\nWe provide some tips for XRNeRF data preparation in this file.\n\n<!-- TOC -->\n\n- [Data Preparation](#"
  },
  {
    "path": "docs/en/faq.md",
    "chars": 833,
    "preview": "# FAQ\n\n## Outline\n\nWe list some common issues faced by many users and their corresponding solutions here.\n\n- [FAQ](#faq)"
  },
  {
    "path": "docs/en/get_started.md",
    "chars": 5679,
    "preview": "# Getting Started\n\nThis page provides basic tutorials about the usage of XRNeRF.\nFor installation instructions, please s"
  },
  {
    "path": "docs/en/installation.md",
    "chars": 6907,
    "preview": "# Installation\n\nWe provide some tips for XRNeRF installation in this file.\n\n<!-- TOC -->\n\n- [Installation](#installation"
  },
  {
    "path": "docs/en/tutorials/config.md",
    "chars": 8098,
    "preview": "# Tutorial 1: Learn about Configs\n\nWe use python files as configs, incorporate modular and inheritance design into our c"
  },
  {
    "path": "docs/en/tutorials/data_pipeline.md",
    "chars": 3513,
    "preview": "# Tutorial 2: Customize Data Pipelines\n\nIn this tutorial, we will introduce some methods about the design of data pipeli"
  },
  {
    "path": "docs/en/tutorials/model.md",
    "chars": 3253,
    "preview": "# Tutorial 3: Model\n\nIn this tutorial, we will introduce the design of nerf model, and how data is processed inside mode"
  },
  {
    "path": "docs/zh_cn/apis.md",
    "chars": 322,
    "preview": "# APIS\n## run_nerf\ninput: args, 运行python文件时的命令行参数\npurpose: 解析命令行参数,并根据参数训练/测试/渲染一个nerf模型\n\n## train_nerf\ninput: cfg, mmcv"
  },
  {
    "path": "docs/zh_cn/dataset_preparation.md",
    "chars": 1249,
    "preview": "# 数据准备\n\n本文介绍了如何准备XRNeRF所需数据集\n\n<!-- TOC -->\n\n- [数据准备](#数据准备)\n      - [数据集存放结构](#数据集存放结构)\n      - [数据集下载](#数据集下载)\n\n<!-- TO"
  },
  {
    "path": "docs/zh_cn/get_started.md",
    "chars": 3501,
    "preview": "# 快速开始\n\n本文档提供 XRNeRF 相关用法的基本教程。对于安装说明,请参阅 [安装指南](installation.md)。\n\n<!-- TOC -->\n\n- [快速开始](#快速开始)\n  - [数据集](#数据集)\n  - [创"
  },
  {
    "path": "docs/zh_cn/installation.md",
    "chars": 5662,
    "preview": "# 安装\n\n本文档提供了安装 XRNeRF 的相关步骤。\n\n<!-- TOC -->\n\n- [安装](#安装)\n  - [安装依赖包](#安装依赖包)\n  - [准备环境](#准备环境)\n      - [a. 安装系统依赖库.](#a-安"
  },
  {
    "path": "docs/zh_cn/tutorials/config.md",
    "chars": 7240,
    "preview": "# 教程 1: 如何编写配置文件\n\nXRNeRF 使用 python 文件作为配置文件。其配置文件系统的设计将模块化与继承整合进来,方便用户进行各种实验。\nXRNeRF 提供的所有配置文件都放置在 `$PROJECT/configs` 文件"
  },
  {
    "path": "docs/zh_cn/tutorials/data_pipeline.md",
    "chars": 2634,
    "preview": "# 教程 2: 如何设计数据处理流程\n\n在本教程中,我们将介绍一些有关数据前处理流水线设计的方法,以及如何为项目自定义和扩展自己的数据流水线。\n\n<!-- TOC -->\n\n- [教程 2: 如何设计数据处理流程](#教程-2-如何设计数据"
  },
  {
    "path": "docs/zh_cn/tutorials/model.md",
    "chars": 1986,
    "preview": "# 教程 3: 模型\n\n在这个教程中,将介绍XRNeRF中模型的设计,以及数据在模型中数如何依次被处理的\n<!-- TOC -->\n\n- [教程 3: 模型](#教程-3-模型)\n  - [XRNeRF中模型的设计](#xrnerf中模型的"
  },
  {
    "path": "extensions/mesh_grid/README.md",
    "chars": 153,
    "preview": "# gnr_mesh_grid\n\n\n## Install\nbuild and install mesh_grid,to support gnr\n```\ncd extensions/mesh_grid\nrm -rf build && clea"
  },
  {
    "path": "extensions/mesh_grid/__init__.py",
    "chars": 49,
    "preview": "from .mesh_grid_searcher import MeshGridSearcher\n"
  },
  {
    "path": "extensions/mesh_grid/matrix.h",
    "chars": 9013,
    "preview": "#ifndef _MATRIX_H_\n#define _MATRIX_H_\n#ifndef __device__\n#define __device__\n#endif\n#ifndef __host__\n#define __host__\n#en"
  },
  {
    "path": "extensions/mesh_grid/mesh_grid.cpp",
    "chars": 3666,
    "preview": "#include <torch/torch.h>\n\n\nat::Tensor insert_grid_surface_cuda(\n    at::Tensor verts, at::Tensor faces,\n    at::Tensor m"
  },
  {
    "path": "extensions/mesh_grid/mesh_grid_kernel.cu",
    "chars": 38727,
    "preview": "#include <ATen/ATen.h>\n\n#include <cuda.h>\n#include <cuda_runtime.h>\n#include <iostream>\n#include <thrust/device_vector.h"
  },
  {
    "path": "extensions/mesh_grid/mesh_grid_searcher.py",
    "chars": 2679,
    "preview": "import torch\nimport trimesh\nfrom mesh_grid import (cumsum, insert_grid_surface, search_inside_mesh,\n                    "
  },
  {
    "path": "extensions/mesh_grid/render.cpp",
    "chars": 2264,
    "preview": "#include <iostream>\n#include <vector>\n#include <limits>\n#include <stdint.h>\n#include <ATen/ATen.h>\n#ifdef USE_CUDA\ntempl"
  },
  {
    "path": "extensions/mesh_grid/render.cu",
    "chars": 3581,
    "preview": "#ifndef USE_CUDA\n#define USE_CUDA\n#endif\n#include <cuda.h>\n#include <cuda_runtime.h>\n#include \"render.h\"\ntemplate<typena"
  },
  {
    "path": "extensions/mesh_grid/render.h",
    "chars": 7148,
    "preview": "#ifndef _RENDER_H_\n#define _RENDER_H_\n#ifndef __device__\n#define __device__\n#endif\n#ifndef __host__\n#define __host__\n#en"
  },
  {
    "path": "extensions/mesh_grid/setup.py",
    "chars": 360,
    "preview": "import unittest\n\nfrom setuptools import find_packages, setup\nfrom torch.utils.cpp_extension import BuildExtension, CUDAE"
  },
  {
    "path": "extensions/mesh_grid/surface_inside.cpp",
    "chars": 4662,
    "preview": "#define USE_CUDA\n#ifdef USE_CUDA\n#include <stdint.h>\n#include <string.h>\ntemplate<typename scalar,typename index>\nextern"
  },
  {
    "path": "extensions/mesh_grid/test_mesh_grid.py",
    "chars": 1288,
    "preview": "import os\n\nimport numpy as np\nimport torch\nimport trimesh\nfrom mesh_grid_searcher import MeshGridSearcher\n\ntorch.set_def"
  },
  {
    "path": "extensions/ngp_raymarch/README.md",
    "chars": 674,
    "preview": "# ngp_raymarch\n\n\n## Install\nbuild and install cuda-extension,to support instant-ngp\n```\ncd extensions/ngp_raymarch\nrm -r"
  },
  {
    "path": "extensions/ngp_raymarch/include/op_include/eigen/.gitignore",
    "chars": 292,
    "preview": "qrc_*cxx\n*.orig\n*.pyc\n*.diff\ndiff\n*.save\nsave\n*.old\n*.gmo\n*.qm\ncore\ncore.*\n*.bak\n*~\n*build*\n*.moc.*\n*.moc\nui_*\nCMakeCach"
  },
  {
    "path": "extensions/ngp_raymarch/include/op_include/eigen/.gitlab/issue_templates/Bug Report.md",
    "chars": 2736,
    "preview": "<!--\nPlease read this!\n\nBefore opening a new issue, make sure to search for keywords in the issues\nfiltered by \"bug::con"
  },
  {
    "path": "extensions/ngp_raymarch/include/op_include/eigen/.gitlab/issue_templates/Feature Request.md",
    "chars": 201,
    "preview": "### Describe the feature you would like to be implemented.\n\n### Would such a feature be useful for other users? Why?\n\n##"
  },
  {
    "path": "extensions/ngp_raymarch/include/op_include/eigen/.gitlab/merge_request_templates/Merge Request Template.md",
    "chars": 1393,
    "preview": "<!--\nThanks for contributing a merge request! Please name and fully describe your MR as you would for a commit message.\n"
  },
  {
    "path": "extensions/ngp_raymarch/include/op_include/eigen/.gitlab-ci.yml",
    "chars": 571,
    "preview": "# This file is part of Eigen, a lightweight C++ template library\n# for linear algebra.\n#\n# Copyright (C) 2020 Arm Ltd. a"
  },
  {
    "path": "extensions/ngp_raymarch/include/op_include/eigen/.hgeol",
    "chars": 180,
    "preview": "[patterns]\n*.sh = LF\n*.MINPACK = CRLF\nscripts/*.in = LF\ndebug/msvc/*.dat = CRLF\ndebug/msvc/*.natvis = CRLF\nunsupported/t"
  },
  {
    "path": "extensions/ngp_raymarch/include/op_include/eigen/COPYING.APACHE",
    "chars": 11363,
    "preview": "/*\n                                 Apache License\n                           Version 2.0, January 2004\n                "
  },
  {
    "path": "extensions/ngp_raymarch/include/op_include/eigen/COPYING.BSD",
    "chars": 1517,
    "preview": "/*\n Copyright (c) 2011, Intel Corporation. All rights reserved.\n\n Redistribution and use in source and binary forms, wit"
  },
  {
    "path": "extensions/ngp_raymarch/include/op_include/eigen/COPYING.GPL",
    "chars": 35147,
    "preview": "                    GNU GENERAL PUBLIC LICENSE\n                       Version 3, 29 June 2007\n\n Copyright (C) 2007 Free "
  },
  {
    "path": "extensions/ngp_raymarch/include/op_include/eigen/COPYING.LGPL",
    "chars": 26521,
    "preview": "                  GNU LESSER GENERAL PUBLIC LICENSE\n                       Version 2.1, February 1999\n\n Copyright (C) 19"
  },
  {
    "path": "extensions/ngp_raymarch/include/op_include/eigen/COPYING.MINPACK",
    "chars": 2193,
    "preview": "Minpack Copyright Notice (1999) University of Chicago.  All rights reserved\n\nRedistribution and use in source and binary"
  },
  {
    "path": "extensions/ngp_raymarch/include/op_include/eigen/COPYING.MPL2",
    "chars": 16725,
    "preview": "Mozilla Public License Version 2.0\n==================================\n\n1. Definitions\n--------------\n\n1.1. \"Contributor\""
  },
  {
    "path": "extensions/ngp_raymarch/include/op_include/eigen/COPYING.README",
    "chars": 779,
    "preview": "Eigen is primarily MPL2 licensed. See COPYING.MPL2 and these links:\n  http://www.mozilla.org/MPL/2.0/\n  http://www.mozil"
  },
  {
    "path": "extensions/ngp_raymarch/include/op_include/eigen/CTestConfig.cmake",
    "chars": 584,
    "preview": "## This file should be placed in the root directory of your project.\n## Then modify the CMakeLists.txt file in the root "
  },
  {
    "path": "extensions/ngp_raymarch/include/op_include/eigen/CTestCustom.cmake.in",
    "chars": 180,
    "preview": "\nset(CTEST_CUSTOM_MAXIMUM_NUMBER_OF_WARNINGS \"2000\")\nset(CTEST_CUSTOM_MAXIMUM_NUMBER_OF_ERRORS   \"2000\")\nlist(APPEND CTE"
  },
  {
    "path": "extensions/ngp_raymarch/include/op_include/eigen/Eigen/Cholesky",
    "chars": 1161,
    "preview": "// This file is part of Eigen, a lightweight C++ template library\n// for linear algebra.\n//\n// This Source Code Form is "
  },
  {
    "path": "extensions/ngp_raymarch/include/op_include/eigen/Eigen/CholmodSupport",
    "chars": 1899,
    "preview": "// This file is part of Eigen, a lightweight C++ template library\n// for linear algebra.\n//\n// This Source Code Form is "
  },
  {
    "path": "extensions/ngp_raymarch/include/op_include/eigen/Eigen/Core",
    "chars": 13025,
    "preview": "// This file is part of Eigen, a lightweight C++ template library\n// for linear algebra.\n//\n// Copyright (C) 2008 Gael G"
  },
  {
    "path": "extensions/ngp_raymarch/include/op_include/eigen/Eigen/Dense",
    "chars": 122,
    "preview": "#include \"Core\"\n#include \"LU\"\n#include \"Cholesky\"\n#include \"QR\"\n#include \"SVD\"\n#include \"Geometry\"\n#include \"Eigenvalues"
  },
  {
    "path": "extensions/ngp_raymarch/include/op_include/eigen/Eigen/Eigen",
    "chars": 35,
    "preview": "#include \"Dense\"\n#include \"Sparse\"\n"
  },
  {
    "path": "extensions/ngp_raymarch/include/op_include/eigen/Eigen/Eigenvalues",
    "chars": 1777,
    "preview": "// This file is part of Eigen, a lightweight C++ template library\n// for linear algebra.\n//\n// This Source Code Form is "
  },
  {
    "path": "extensions/ngp_raymarch/include/op_include/eigen/Eigen/Geometry",
    "chars": 1940,
    "preview": "// This file is part of Eigen, a lightweight C++ template library\n// for linear algebra.\n//\n// This Source Code Form is "
  },
  {
    "path": "extensions/ngp_raymarch/include/op_include/eigen/Eigen/Householder",
    "chars": 829,
    "preview": "// This file is part of Eigen, a lightweight C++ template library\n// for linear algebra.\n//\n// This Source Code Form is "
  },
  {
    "path": "extensions/ngp_raymarch/include/op_include/eigen/Eigen/IterativeLinearSolvers",
    "chars": 2082,
    "preview": "// This file is part of Eigen, a lightweight C++ template library\n// for linear algebra.\n//\n// This Source Code Form is "
  },
  {
    "path": "extensions/ngp_raymarch/include/op_include/eigen/Eigen/Jacobi",
    "chars": 893,
    "preview": "// This file is part of Eigen, a lightweight C++ template library\n// for linear algebra.\n//\n// This Source Code Form is "
  },
  {
    "path": "extensions/ngp_raymarch/include/op_include/eigen/Eigen/KLUSupport",
    "chars": 1389,
    "preview": "// This file is part of Eigen, a lightweight C++ template library\n// for linear algebra.\n//\n// This Source Code Form is "
  },
  {
    "path": "extensions/ngp_raymarch/include/op_include/eigen/Eigen/LU",
    "chars": 1268,
    "preview": "// This file is part of Eigen, a lightweight C++ template library\n// for linear algebra.\n//\n// This Source Code Form is "
  },
  {
    "path": "extensions/ngp_raymarch/include/op_include/eigen/Eigen/MetisSupport",
    "chars": 990,
    "preview": "// This file is part of Eigen, a lightweight C++ template library\n// for linear algebra.\n//\n// This Source Code Form is "
  },
  {
    "path": "extensions/ngp_raymarch/include/op_include/eigen/Eigen/OrderingMethods",
    "chars": 2425,
    "preview": "// This file is part of Eigen, a lightweight C++ template library\n// for linear algebra.\n//\n// This Source Code Form is "
  },
  {
    "path": "extensions/ngp_raymarch/include/op_include/eigen/Eigen/PaStiXSupport",
    "chars": 1749,
    "preview": "// This file is part of Eigen, a lightweight C++ template library\n// for linear algebra.\n//\n// This Source Code Form is "
  },
  {
    "path": "extensions/ngp_raymarch/include/op_include/eigen/Eigen/PardisoSupport",
    "chars": 1115,
    "preview": "// This file is part of Eigen, a lightweight C++ template library\n// for linear algebra.\n//\n// This Source Code Form is "
  },
  {
    "path": "extensions/ngp_raymarch/include/op_include/eigen/Eigen/QR",
    "chars": 1272,
    "preview": "// This file is part of Eigen, a lightweight C++ template library\n// for linear algebra.\n//\n// This Source Code Form is "
  },
  {
    "path": "extensions/ngp_raymarch/include/op_include/eigen/Eigen/QtAlignedMalloc",
    "chars": 900,
    "preview": "// This file is part of Eigen, a lightweight C++ template library\n// for linear algebra.\n//\n// This Source Code Form is "
  },
  {
    "path": "extensions/ngp_raymarch/include/op_include/eigen/Eigen/SPQRSupport",
    "chars": 1161,
    "preview": "// This file is part of Eigen, a lightweight C++ template library\n// for linear algebra.\n//\n// This Source Code Form is "
  },
  {
    "path": "extensions/ngp_raymarch/include/op_include/eigen/Eigen/SVD",
    "chars": 1584,
    "preview": "// This file is part of Eigen, a lightweight C++ template library\n// for linear algebra.\n//\n// This Source Code Form is "
  },
  {
    "path": "extensions/ngp_raymarch/include/op_include/eigen/Eigen/Sparse",
    "chars": 887,
    "preview": "// This file is part of Eigen, a lightweight C++ template library\n// for linear algebra.\n//\n// This Source Code Form is "
  },
  {
    "path": "extensions/ngp_raymarch/include/op_include/eigen/Eigen/SparseCholesky",
    "chars": 1234,
    "preview": "// This file is part of Eigen, a lightweight C++ template library\n// for linear algebra.\n//\n// Copyright (C) 2008-2013 G"
  },
  {
    "path": "extensions/ngp_raymarch/include/op_include/eigen/Eigen/SparseCore",
    "chars": 2238,
    "preview": "// This file is part of Eigen, a lightweight C++ template library\n// for linear algebra.\n//\n// This Source Code Form is "
  },
  {
    "path": "extensions/ngp_raymarch/include/op_include/eigen/Eigen/SparseLU",
    "chars": 1811,
    "preview": "// This file is part of Eigen, a lightweight C++ template library\n// for linear algebra.\n//\n// Copyright (C) 2012 Désiré"
  },
  {
    "path": "extensions/ngp_raymarch/include/op_include/eigen/Eigen/SparseQR",
    "chars": 1188,
    "preview": "// This file is part of Eigen, a lightweight C++ template library\n// for linear algebra.\n//\n// This Source Code Form is "
  },
  {
    "path": "extensions/ngp_raymarch/include/op_include/eigen/Eigen/StdDeque",
    "chars": 797,
    "preview": "// This file is part of Eigen, a lightweight C++ template library\n// for linear algebra.\n//\n// Copyright (C) 2009 Gael G"
  },
  {
    "path": "extensions/ngp_raymarch/include/op_include/eigen/Eigen/StdList",
    "chars": 726,
    "preview": "// This file is part of Eigen, a lightweight C++ template library\n// for linear algebra.\n//\n// Copyright (C) 2009 Hauke "
  },
  {
    "path": "extensions/ngp_raymarch/include/op_include/eigen/Eigen/StdVector",
    "chars": 803,
    "preview": "// This file is part of Eigen, a lightweight C++ template library\n// for linear algebra.\n//\n// Copyright (C) 2009 Gael G"
  },
  {
    "path": "extensions/ngp_raymarch/include/op_include/eigen/Eigen/SuperLUSupport",
    "chars": 2243,
    "preview": "// This file is part of Eigen, a lightweight C++ template library\n// for linear algebra.\n//\n// This Source Code Form is "
  },
  {
    "path": "extensions/ngp_raymarch/include/op_include/eigen/Eigen/UmfPackSupport",
    "chars": 1382,
    "preview": "// This file is part of Eigen, a lightweight C++ template library\n// for linear algebra.\n//\n// This Source Code Form is "
  },
  {
    "path": "extensions/ngp_raymarch/include/op_include/eigen/Eigen/src/Cholesky/InternalHeaderCheck.h",
    "chars": 142,
    "preview": "#ifndef EIGEN_CHOLESKY_MODULE_H\n#error \"Please include Eigen/Cholesky instead of including headers inside the src direct"
  },
  {
    "path": "extensions/ngp_raymarch/include/op_include/eigen/Eigen/src/Cholesky/LDLT.h",
    "chars": 24880,
    "preview": "// This file is part of Eigen, a lightweight C++ template library\n// for linear algebra.\n//\n// Copyright (C) 2008-2011 G"
  },
  {
    "path": "extensions/ngp_raymarch/include/op_include/eigen/Eigen/src/Cholesky/LLT.h",
    "chars": 18706,
    "preview": "// This file is part of Eigen, a lightweight C++ template library\n// for linear algebra.\n//\n// Copyright (C) 2008 Gael G"
  },
  {
    "path": "extensions/ngp_raymarch/include/op_include/eigen/Eigen/src/Cholesky/LLT_LAPACKE.h",
    "chars": 4009,
    "preview": "/*\n Copyright (c) 2011, Intel Corporation. All rights reserved.\n\n Redistribution and use in source and binary forms, wit"
  },
  {
    "path": "extensions/ngp_raymarch/include/op_include/eigen/Eigen/src/CholmodSupport/CholmodSupport.h",
    "chars": 25477,
    "preview": "// This file is part of Eigen, a lightweight C++ template library\n// for linear algebra.\n//\n// Copyright (C) 2008-2010 G"
  },
  {
    "path": "extensions/ngp_raymarch/include/op_include/eigen/Eigen/src/CholmodSupport/InternalHeaderCheck.h",
    "chars": 154,
    "preview": "#ifndef EIGEN_CHOLMODSUPPORT_MODULE_H\n#error \"Please include Eigen/CholmodSupport instead of including headers inside th"
  },
  {
    "path": "extensions/ngp_raymarch/include/op_include/eigen/Eigen/src/Core/ArithmeticSequence.h",
    "chars": 19494,
    "preview": "// This file is part of Eigen, a lightweight C++ template library\n// for linear algebra.\n//\n// Copyright (C) 2017 Gael G"
  },
  {
    "path": "extensions/ngp_raymarch/include/op_include/eigen/Eigen/src/Core/Array.h",
    "chars": 16552,
    "preview": "// This file is part of Eigen, a lightweight C++ template library\n// for linear algebra.\n//\n// Copyright (C) 2009 Gael G"
  },
  {
    "path": "extensions/ngp_raymarch/include/op_include/eigen/Eigen/src/Core/ArrayBase.h",
    "chars": 8243,
    "preview": "// This file is part of Eigen, a lightweight C++ template library\n// for linear algebra.\n//\n// Copyright (C) 2009 Gael G"
  },
  {
    "path": "extensions/ngp_raymarch/include/op_include/eigen/Eigen/src/Core/ArrayWrapper.h",
    "chars": 7054,
    "preview": "// This file is part of Eigen, a lightweight C++ template library\n// for linear algebra.\n//\n// Copyright (C) 2009-2010 G"
  },
  {
    "path": "extensions/ngp_raymarch/include/op_include/eigen/Eigen/src/Core/Assign.h",
    "chars": 2772,
    "preview": "// This file is part of Eigen, a lightweight C++ template library\n// for linear algebra.\n//\n// Copyright (C) 2007 Michae"
  },
  {
    "path": "extensions/ngp_raymarch/include/op_include/eigen/Eigen/src/Core/AssignEvaluator.h",
    "chars": 41665,
    "preview": "// This file is part of Eigen, a lightweight C++ template library\n// for linear algebra.\n//\n// Copyright (C) 2011 Benoit"
  },
  {
    "path": "extensions/ngp_raymarch/include/op_include/eigen/Eigen/src/Core/Assign_MKL.h",
    "chars": 12516,
    "preview": "/*\n Copyright (c) 2011, Intel Corporation. All rights reserved.\n Copyright (C) 2015 Gael Guennebaud <gael.guennebaud@inr"
  },
  {
    "path": "extensions/ngp_raymarch/include/op_include/eigen/Eigen/src/Core/BandMatrix.h",
    "chars": 14111,
    "preview": "// This file is part of Eigen, a lightweight C++ template library\n// for linear algebra.\n//\n// Copyright (C) 2009 Gael G"
  },
  {
    "path": "extensions/ngp_raymarch/include/op_include/eigen/Eigen/src/Core/Block.h",
    "chars": 18756,
    "preview": "// This file is part of Eigen, a lightweight C++ template library\n// for linear algebra.\n//\n// Copyright (C) 2008 Gael G"
  },
  {
    "path": "extensions/ngp_raymarch/include/op_include/eigen/Eigen/src/Core/BooleanRedux.h",
    "chars": 4458,
    "preview": "// This file is part of Eigen, a lightweight C++ template library\n// for linear algebra.\n//\n// Copyright (C) 2008 Gael G"
  },
  {
    "path": "extensions/ngp_raymarch/include/op_include/eigen/Eigen/src/Core/CommaInitializer.h",
    "chars": 6089,
    "preview": "// This file is part of Eigen, a lightweight C++ template library\n// for linear algebra.\n//\n// Copyright (C) 2008 Gael G"
  },
  {
    "path": "extensions/ngp_raymarch/include/op_include/eigen/Eigen/src/Core/ConditionEstimator.h",
    "chars": 7026,
    "preview": "// This file is part of Eigen, a lightweight C++ template library\n// for linear algebra.\n//\n// Copyright (C) 2016 Rasmus"
  },
  {
    "path": "extensions/ngp_raymarch/include/op_include/eigen/Eigen/src/Core/CoreEvaluators.h",
    "chars": 63877,
    "preview": "// This file is part of Eigen, a lightweight C++ template library\n// for linear algebra.\n//\n// Copyright (C) 2011 Benoit"
  },
  {
    "path": "extensions/ngp_raymarch/include/op_include/eigen/Eigen/src/Core/CoreIterators.h",
    "chars": 4763,
    "preview": "// This file is part of Eigen, a lightweight C++ template library\n// for linear algebra.\n//\n// Copyright (C) 2008-2014 G"
  },
  {
    "path": "extensions/ngp_raymarch/include/op_include/eigen/Eigen/src/Core/CwiseBinaryOp.h",
    "chars": 7905,
    "preview": "// This file is part of Eigen, a lightweight C++ template library\n// for linear algebra.\n//\n// Copyright (C) 2008-2014 G"
  },
  {
    "path": "extensions/ngp_raymarch/include/op_include/eigen/Eigen/src/Core/CwiseNullaryOp.h",
    "chars": 36318,
    "preview": "// This file is part of Eigen, a lightweight C++ template library\n// for linear algebra.\n//\n// Copyright (C) 2008-2010 G"
  },
  {
    "path": "extensions/ngp_raymarch/include/op_include/eigen/Eigen/src/Core/CwiseTernaryOp.h",
    "chars": 8268,
    "preview": "// This file is part of Eigen, a lightweight C++ template library\n// for linear algebra.\n//\n// Copyright (C) 2008-2014 G"
  },
  {
    "path": "extensions/ngp_raymarch/include/op_include/eigen/Eigen/src/Core/CwiseUnaryOp.h",
    "chars": 3973,
    "preview": "// This file is part of Eigen, a lightweight C++ template library\n// for linear algebra.\n//\n// Copyright (C) 2008-2014 G"
  },
  {
    "path": "extensions/ngp_raymarch/include/op_include/eigen/Eigen/src/Core/CwiseUnaryView.h",
    "chars": 5587,
    "preview": "// This file is part of Eigen, a lightweight C++ template library\n// for linear algebra.\n//\n// Copyright (C) 2009-2010 G"
  },
  {
    "path": "extensions/ngp_raymarch/include/op_include/eigen/Eigen/src/Core/DenseBase.h",
    "chars": 31389,
    "preview": "// This file is part of Eigen, a lightweight C++ template library\n// for linear algebra.\n//\n// Copyright (C) 2007-2010 B"
  },
  {
    "path": "extensions/ngp_raymarch/include/op_include/eigen/Eigen/src/Core/DenseCoeffsBase.h",
    "chars": 24520,
    "preview": "// This file is part of Eigen, a lightweight C++ template library\n// for linear algebra.\n//\n// Copyright (C) 2006-2010 B"
  },
  {
    "path": "extensions/ngp_raymarch/include/op_include/eigen/Eigen/src/Core/DenseStorage.h",
    "chars": 25388,
    "preview": "// This file is part of Eigen, a lightweight C++ template library\n// for linear algebra.\n//\n// Copyright (C) 2008 Gael G"
  },
  {
    "path": "extensions/ngp_raymarch/include/op_include/eigen/Eigen/src/Core/Diagonal.h",
    "chars": 9906,
    "preview": "// This file is part of Eigen, a lightweight C++ template library\n// for linear algebra.\n//\n// Copyright (C) 2007-2009 B"
  },
  {
    "path": "extensions/ngp_raymarch/include/op_include/eigen/Eigen/src/Core/DiagonalMatrix.h",
    "chars": 14689,
    "preview": "// This file is part of Eigen, a lightweight C++ template library\n// for linear algebra.\n//\n// Copyright (C) 2009 Gael G"
  },
  {
    "path": "extensions/ngp_raymarch/include/op_include/eigen/Eigen/src/Core/DiagonalProduct.h",
    "chars": 1023,
    "preview": "// This file is part of Eigen, a lightweight C++ template library\n// for linear algebra.\n//\n// Copyright (C) 2008 Gael G"
  },
  {
    "path": "extensions/ngp_raymarch/include/op_include/eigen/Eigen/src/Core/Dot.h",
    "chars": 11687,
    "preview": "// This file is part of Eigen, a lightweight C++ template library\n// for linear algebra.\n//\n// Copyright (C) 2006-2008, "
  },
  {
    "path": "extensions/ngp_raymarch/include/op_include/eigen/Eigen/src/Core/EigenBase.h",
    "chars": 5877,
    "preview": "// This file is part of Eigen, a lightweight C++ template library\n// for linear algebra.\n//\n// Copyright (C) 2009 Benoit"
  },
  {
    "path": "extensions/ngp_raymarch/include/op_include/eigen/Eigen/src/Core/ForceAlignedAccess.h",
    "chars": 4945,
    "preview": "// This file is part of Eigen, a lightweight C++ template library\n// for linear algebra.\n//\n// Copyright (C) 2009-2010 G"
  },
  {
    "path": "extensions/ngp_raymarch/include/op_include/eigen/Eigen/src/Core/Fuzzy.h",
    "chars": 5794,
    "preview": "// This file is part of Eigen, a lightweight C++ template library\n// for linear algebra.\n//\n// Copyright (C) 2006-2008 B"
  },
  {
    "path": "extensions/ngp_raymarch/include/op_include/eigen/Eigen/src/Core/GeneralProduct.h",
    "chars": 21705,
    "preview": "// This file is part of Eigen, a lightweight C++ template library\n// for linear algebra.\n//\n// Copyright (C) 2006-2008 B"
  },
  {
    "path": "extensions/ngp_raymarch/include/op_include/eigen/Eigen/src/Core/GenericPacketMath.h",
    "chars": 38844,
    "preview": "// This file is part of Eigen, a lightweight C++ template library\n// for linear algebra.\n//\n// Copyright (C) 2008 Gael G"
  },
  {
    "path": "extensions/ngp_raymarch/include/op_include/eigen/Eigen/src/Core/GlobalFunctions.h",
    "chars": 11579,
    "preview": "// This file is part of Eigen, a lightweight C++ template library\n// for linear algebra.\n//\n// Copyright (C) 2010-2016 G"
  },
  {
    "path": "extensions/ngp_raymarch/include/op_include/eigen/Eigen/src/Core/IO.h",
    "chars": 8271,
    "preview": "// This file is part of Eigen, a lightweight C++ template library\n// for linear algebra.\n//\n// Copyright (C) 2006-2008 B"
  },
  {
    "path": "extensions/ngp_raymarch/include/op_include/eigen/Eigen/src/Core/IndexedView.h",
    "chars": 9668,
    "preview": "// This file is part of Eigen, a lightweight C++ template library\n// for linear algebra.\n//\n// Copyright (C) 2017 Gael G"
  },
  {
    "path": "extensions/ngp_raymarch/include/op_include/eigen/Eigen/src/Core/InternalHeaderCheck.h",
    "chars": 134,
    "preview": "#ifndef EIGEN_CORE_MODULE_H\n#error \"Please include Eigen/Core instead of including headers inside the src directory dire"
  },
  {
    "path": "extensions/ngp_raymarch/include/op_include/eigen/Eigen/src/Core/Inverse.h",
    "chars": 3539,
    "preview": "// This file is part of Eigen, a lightweight C++ template library\n// for linear algebra.\n//\n// Copyright (C) 2014-2019 G"
  },
  {
    "path": "extensions/ngp_raymarch/include/op_include/eigen/Eigen/src/Core/Map.h",
    "chars": 7127,
    "preview": "// This file is part of Eigen, a lightweight C++ template library\n// for linear algebra.\n//\n// Copyright (C) 2007-2010 B"
  },
  {
    "path": "extensions/ngp_raymarch/include/op_include/eigen/Eigen/src/Core/MapBase.h",
    "chars": 11317,
    "preview": "// This file is part of Eigen, a lightweight C++ template library\n// for linear algebra.\n//\n// Copyright (C) 2007-2010 B"
  },
  {
    "path": "extensions/ngp_raymarch/include/op_include/eigen/Eigen/src/Core/MathFunctions.h",
    "chars": 60814,
    "preview": "// This file is part of Eigen, a lightweight C++ template library\n// for linear algebra.\n//\n// Copyright (C) 2006-2010 B"
  },
  {
    "path": "extensions/ngp_raymarch/include/op_include/eigen/Eigen/src/Core/MathFunctionsImpl.h",
    "chars": 7189,
    "preview": "// This file is part of Eigen, a lightweight C++ template library\n// for linear algebra.\n//\n// Copyright (C) 2014 Pedro "
  },
  {
    "path": "extensions/ngp_raymarch/include/op_include/eigen/Eigen/src/Core/Matrix.h",
    "chars": 24110,
    "preview": "// This file is part of Eigen, a lightweight C++ template library\n// for linear algebra.\n//\n// Copyright (C) 2006-2010 B"
  },
  {
    "path": "extensions/ngp_raymarch/include/op_include/eigen/Eigen/src/Core/MatrixBase.h",
    "chars": 23892,
    "preview": "// This file is part of Eigen, a lightweight C++ template library\n// for linear algebra.\n//\n// Copyright (C) 2006-2009 B"
  },
  {
    "path": "extensions/ngp_raymarch/include/op_include/eigen/Eigen/src/Core/NestByValue.h",
    "chars": 2556,
    "preview": "// This file is part of Eigen, a lightweight C++ template library\n// for linear algebra.\n//\n// Copyright (C) 2008 Gael G"
  },
  {
    "path": "extensions/ngp_raymarch/include/op_include/eigen/Eigen/src/Core/NoAlias.h",
    "chars": 3640,
    "preview": "// This file is part of Eigen, a lightweight C++ template library\n// for linear algebra.\n//\n// Copyright (C) 2009 Gael G"
  },
  {
    "path": "extensions/ngp_raymarch/include/op_include/eigen/Eigen/src/Core/NumTraits.h",
    "chars": 13030,
    "preview": "// This file is part of Eigen, a lightweight C++ template library\n// for linear algebra.\n//\n// Copyright (C) 2006-2010 B"
  },
  {
    "path": "extensions/ngp_raymarch/include/op_include/eigen/Eigen/src/Core/PartialReduxEvaluator.h",
    "chars": 9276,
    "preview": "// This file is part of Eigen, a lightweight C++ template library\n// for linear algebra.\n//\n// Copyright (C) 2011-2018 G"
  },
  {
    "path": "extensions/ngp_raymarch/include/op_include/eigen/Eigen/src/Core/PermutationMatrix.h",
    "chars": 20777,
    "preview": "// This file is part of Eigen, a lightweight C++ template library\n// for linear algebra.\n//\n// Copyright (C) 2009 Benoit"
  },
  {
    "path": "extensions/ngp_raymarch/include/op_include/eigen/Eigen/src/Core/PlainObjectBase.h",
    "chars": 49096,
    "preview": "// This file is part of Eigen, a lightweight C++ template library\n// for linear algebra.\n//\n// Copyright (C) 2008-2009 G"
  },
  {
    "path": "extensions/ngp_raymarch/include/op_include/eigen/Eigen/src/Core/Product.h",
    "chars": 7372,
    "preview": "// This file is part of Eigen, a lightweight C++ template library\n// for linear algebra.\n//\n// Copyright (C) 2008-2011 G"
  },
  {
    "path": "extensions/ngp_raymarch/include/op_include/eigen/Eigen/src/Core/ProductEvaluators.h",
    "chars": 53868,
    "preview": "// This file is part of Eigen, a lightweight C++ template library\n// for linear algebra.\n//\n// Copyright (C) 2006-2008 B"
  },
  {
    "path": "extensions/ngp_raymarch/include/op_include/eigen/Eigen/src/Core/Random.h",
    "chars": 7781,
    "preview": "// This file is part of Eigen, a lightweight C++ template library\n// for linear algebra.\n//\n// Copyright (C) 2008 Gael G"
  },
  {
    "path": "extensions/ngp_raymarch/include/op_include/eigen/Eigen/src/Core/Redux.h",
    "chars": 19210,
    "preview": "// This file is part of Eigen, a lightweight C++ template library\n// for linear algebra.\n//\n// Copyright (C) 2008 Gael G"
  },
  {
    "path": "extensions/ngp_raymarch/include/op_include/eigen/Eigen/src/Core/Ref.h",
    "chars": 17858,
    "preview": "// This file is part of Eigen, a lightweight C++ template library\n// for linear algebra.\n//\n// Copyright (C) 2012 Gael G"
  },
  {
    "path": "extensions/ngp_raymarch/include/op_include/eigen/Eigen/src/Core/Replicate.h",
    "chars": 5692,
    "preview": "// This file is part of Eigen, a lightweight C++ template library\n// for linear algebra.\n//\n// Copyright (C) 2009-2010 G"
  },
  {
    "path": "extensions/ngp_raymarch/include/op_include/eigen/Eigen/src/Core/Reshaped.h",
    "chars": 17069,
    "preview": "// This file is part of Eigen, a lightweight C++ template library\n// for linear algebra.\n//\n// Copyright (C) 2008-2017 G"
  },
  {
    "path": "extensions/ngp_raymarch/include/op_include/eigen/Eigen/src/Core/ReturnByValue.h",
    "chars": 4320,
    "preview": "// This file is part of Eigen, a lightweight C++ template library\n// for linear algebra.\n//\n// Copyright (C) 2009-2010 G"
  },
  {
    "path": "extensions/ngp_raymarch/include/op_include/eigen/Eigen/src/Core/Reverse.h",
    "chars": 7558,
    "preview": "// This file is part of Eigen, a lightweight C++ template library\n// for linear algebra.\n//\n// Copyright (C) 2006-2008 B"
  },
  {
    "path": "extensions/ngp_raymarch/include/op_include/eigen/Eigen/src/Core/Select.h",
    "chars": 6179,
    "preview": "// This file is part of Eigen, a lightweight C++ template library\n// for linear algebra.\n//\n// Copyright (C) 2008-2010 G"
  },
  {
    "path": "extensions/ngp_raymarch/include/op_include/eigen/Eigen/src/Core/SelfAdjointView.h",
    "chars": 15024,
    "preview": "// This file is part of Eigen, a lightweight C++ template library\n// for linear algebra.\n//\n// Copyright (C) 2009 Gael G"
  },
  {
    "path": "extensions/ngp_raymarch/include/op_include/eigen/Eigen/src/Core/SelfCwiseBinaryOp.h",
    "chars": 1732,
    "preview": "// This file is part of Eigen, a lightweight C++ template library\n// for linear algebra.\n//\n// Copyright (C) 2009-2010 G"
  },
  {
    "path": "extensions/ngp_raymarch/include/op_include/eigen/Eigen/src/Core/Solve.h",
    "chars": 6905,
    "preview": "// This file is part of Eigen, a lightweight C++ template library\n// for linear algebra.\n//\n// Copyright (C) 2014 Gael G"
  },
  {
    "path": "extensions/ngp_raymarch/include/op_include/eigen/Eigen/src/Core/SolveTriangular.h",
    "chars": 9404,
    "preview": "// This file is part of Eigen, a lightweight C++ template library\n// for linear algebra.\n//\n// Copyright (C) 2008-2009 G"
  },
  {
    "path": "extensions/ngp_raymarch/include/op_include/eigen/Eigen/src/Core/SolverBase.h",
    "chars": 6206,
    "preview": "// This file is part of Eigen, a lightweight C++ template library\n// for linear algebra.\n//\n// Copyright (C) 2015 Gael G"
  },
  {
    "path": "extensions/ngp_raymarch/include/op_include/eigen/Eigen/src/Core/StableNorm.h",
    "chars": 8720,
    "preview": "// This file is part of Eigen, a lightweight C++ template library\n// for linear algebra.\n//\n// Copyright (C) 2009 Gael G"
  },
  {
    "path": "extensions/ngp_raymarch/include/op_include/eigen/Eigen/src/Core/StlIterators.h",
    "chars": 21663,
    "preview": "// This file is part of Eigen, a lightweight C++ template library\n// for linear algebra.\n//\n// Copyright (C) 2018 Gael G"
  }
]

// ... and 1800 more files (download for full content)

About this extraction

This page contains the full source code of the openxrlab/xrnerf GitHub repository, extracted and formatted as plain text for AI agents and large language models (LLMs). The extraction includes 2000 files (15.8 MB), approximately 4.3M tokens, and a symbol index with 10809 extracted functions, classes, methods, constants, and types. Use this with OpenClaw, Claude, ChatGPT, Cursor, Windsurf, or any other AI tool that accepts text input. You can copy the full output to your clipboard or download it as a .txt file.

Extracted by GitExtract — free GitHub repo to text converter for AI. Built by Nikandr Surkov.

Copied to clipboard!