Reference ========= .. py:module:: drjit Array creation -------------- .. autofunction:: zeros .. autofunction:: ones .. autofunction:: full .. autofunction:: identity .. autofunction:: arange .. autofunction:: linspace .. autofunction:: tile .. autofunction:: repeat .. autofunction:: meshgrid .. _horizontal-reductions: Horizontal operations --------------------- These operations are *horizontal* in the sense that [..] .. autofunction:: gather .. autofunction:: scatter .. autofunction:: scatter_reduce .. autofunction:: ravel .. autofunction:: unravel .. autofunction:: slice .. autofunction:: min .. autofunction:: max .. autofunction:: sum .. autofunction:: prod .. autofunction:: dot .. autofunction:: norm .. autofunction:: shuffle .. autofunction:: compress .. autofunction:: count .. autofunction:: block_sum Mask operations --------------- .. autofunction:: select .. autofunction:: all .. autofunction:: any .. autofunction:: all_nested .. autofunction:: any_nested .. autofunction:: isinf .. autofunction:: isnan .. autofunction:: isfinite .. autofunction:: allclose Miscellaneous operations ------------------------ .. autofunction:: shape .. autofunction:: width .. autofunction:: resize .. autofunction:: slice_index .. autofunction:: binary_search .. autofunction:: upsample .. autofunction:: tzcnt .. autofunction:: lzcnt .. autofunction:: popcnt Just-in-time compilation ------------------------ .. autofunction:: schedule .. autofunction:: eval .. autofunction:: printf_async .. autofunction:: graphviz .. autofunction:: label .. autofunction:: set_label Type traits ----------- The functions in this section can be used to infer properties or types of Dr.Jit arrays. The naming convention with a trailing ``_v`` or ``_t`` indicates whether a function returns a value or a type. Evaluation takes place at runtime within Python. In C++, these expressions are all ``constexpr`` (i.e., evaluated at compile time.). Array type tests ________________ .. autofunction:: is_array_v .. autofunction:: is_mask_v .. autofunction:: is_float_v .. autofunction:: is_integral_v .. autofunction:: is_arithmetic_v .. autofunction:: is_signed_v .. autofunction:: is_unsigned_v .. autofunction:: is_jit_v .. autofunction:: is_llvm_v .. autofunction:: is_diff_v .. autofunction:: is_complex_v .. autofunction:: is_matrix_v .. autofunction:: is_quaternion_v .. autofunction:: is_tensor_v .. autofunction:: is_special_v .. autofunction:: is_struct_v Array shape ___________ .. autofunction:: size_v .. autofunction:: depth_v .. autofunction:: itemsize_v .. py:data:: Dynamic :type: int :value: -1 Special size value used to identify dynamic arrays in :py:func:`array_size_v`. Access to related types _______________________ .. autofunction:: mask_t .. autofunction:: value_t .. autofunction:: scalar_t .. autofunction:: array_t .. autofunction:: bool_array_t .. autofunction:: int_array_t .. autofunction:: uint_array_t .. autofunction:: int32_array_t .. autofunction:: uint32_array_t .. autofunction:: int64_array_t .. autofunction:: uint64_array_t .. autofunction:: float_array_t .. autofunction:: float32_array_t .. autofunction:: float64_array_t .. autofunction:: leaf_array_t .. autofunction:: expr_t .. autofunction:: diff_array_t .. autofunction:: detached_t Others ______ .. autofunction:: reinterpret_array_v Standard mathematical functions ------------------------------- .. autofunction:: abs .. autofunction:: minimum .. autofunction:: maximum .. autofunction:: clip .. autofunction:: clamp .. autofunction:: fma .. autofunction:: ceil .. autofunction:: floor .. autofunction:: trunc .. autofunction:: round .. autofunction:: sqrt .. autofunction:: cbrt .. autofunction:: rcp .. autofunction:: rsqrt .. autofunction:: frexp .. autofunction:: ldexp .. autofunction:: lerp .. autofunction:: normalize .. autofunction:: log2i .. autofunction:: erf .. autofunction:: erfinv .. autofunction:: lgamma .. autofunction:: tgamma .. autofunction:: hypot .. autofunction:: sign .. autofunction:: copysign .. autofunction:: mulsign .. autofunction:: arg .. autofunction:: real .. autofunction:: imag .. autofunction:: conj .. autofunction:: cross .. autofunction:: sh_eval Transcendental functions ------------------------ Dr.Jit implements the most common transcendental functions using methods that are based on the CEPHES math library. The accuracy of these approximations is documented in a set of :ref:`tables ` below. Trigonometric functions _______________________ .. autofunction:: sin .. autofunction:: cos .. autofunction:: sincos .. autofunction:: tan .. autofunction:: asin .. autofunction:: acos .. autofunction:: atan .. autofunction:: atan2 Hyperbolic functions ____________________ .. autofunction:: sinh .. autofunction:: cosh .. autofunction:: sincosh .. autofunction:: tanh .. autofunction:: asinh .. autofunction:: acosh .. autofunction:: atanh Exponentials, logarithms, power function ________________________________________ .. autofunction:: log2 .. autofunction:: log .. autofunction:: exp2 .. autofunction:: exp .. autofunction:: power .. _transcendental-accuracy: Accuracy (single precision) ___________________________ .. note:: The trigonometric functions *sin*, *cos*, and *tan* are optimized for low error on the domain :math:`|x| < 8192` and don't perform as well beyond this range. .. list-table:: :widths: 5 8 8 10 8 10 :header-rows: 1 :align: center * - Function - Tested domain - Abs. error (mean) - Abs. error (max) - Rel. error (mean) - Rel. error (max) * - :math:`\text{sin}()` - :math:`-8192 < x < 8192` - :math:`1.2 \cdot 10^{-8}` - :math:`1.2 \cdot 10^{-7}` - :math:`1.9 \cdot 10^{-8}\,(0.25\,\text{ulp})` - :math:`1.8 \cdot 10^{-6}\,(19\,\text{ulp})` * - :math:`\text{cos}()` - :math:`-8192 < x < 8192` - :math:`1.2 \cdot 10^{-8}` - :math:`1.2 \cdot 10^{-7}` - :math:`1.9 \cdot 10^{-8}\,(0.25\,\text{ulp})` - :math:`3.1 \cdot 10^{-6}\,(47\,\text{ulp})` * - :math:`\text{tan}()` - :math:`-8192 < x < 8192` - :math:`4.7 \cdot 10^{-6}` - :math:`8.1 \cdot 10^{-1}` - :math:`3.4 \cdot 10^{-8}\,(0.42\,\text{ulp})` - :math:`3.1 \cdot 10^{-6}\,(30\,\text{ulp})` * - :math:`\text{asin}()` - :math:`-1 < x < 1` - :math:`2.3 \cdot 10^{-8}` - :math:`1.2 \cdot 10^{-7}` - :math:`2.9 \cdot 10^{-8}\,(0.33\,\text{ulp})` - :math:`2.3 \cdot 10^{-7}\,(2\,\text{ulp})` * - :math:`\text{acos}()` - :math:`-1 < x < 1` - :math:`4.7 \cdot 10^{-8}` - :math:`2.4 \cdot 10^{-7}` - :math:`2.9 \cdot 10^{-8}\,(0.33\,\text{ulp})` - :math:`1.2 \cdot 10^{-7}\,(1\,\text{ulp})` * - :math:`\text{atan}()` - :math:`-1 < x < 1` - :math:`1.8 \cdot 10^{-7}` - :math:`6 \cdot 10^{-7}` - :math:`4.2 \cdot 10^{-7}\,(4.9\,\text{ulp})` - :math:`8.2 \cdot 10^{-7}\,(12\,\text{ulp})` * - :math:`\text{sinh}()` - :math:`-10 < x < 10` - :math:`2.6 \cdot 10^{-5}` - :math:`2 \cdot 10^{-3}` - :math:`2.8 \cdot 10^{-8}\,(0.34\,\text{ulp})` - :math:`2.7 \cdot 10^{-7}\,(3\,\text{ulp})` * - :math:`\text{cosh}()` - :math:`-10 < x < 10` - :math:`2.9 \cdot 10^{-5}` - :math:`2 \cdot 10^{-3}` - :math:`2.9 \cdot 10^{-8}\,(0.35\,\text{ulp})` - :math:`2.5 \cdot 10^{-7}\,(4\,\text{ulp})` * - :math:`\text{tanh}()` - :math:`-10 < x < 10` - :math:`4.8 \cdot 10^{-8}` - :math:`4.2 \cdot 10^{-7}` - :math:`5 \cdot 10^{-8}\,(0.76\,\text{ulp})` - :math:`5 \cdot 10^{-7}\,(7\,\text{ulp})` * - :math:`\text{asinh}()` - :math:`-30 < x < 30` - :math:`2.8 \cdot 10^{-8}` - :math:`4.8 \cdot 10^{-7}` - :math:`1 \cdot 10^{-8}\,(0.13\,\text{ulp})` - :math:`1.7 \cdot 10^{-7}\,(2\,\text{ulp})` * - :math:`\text{acosh}()` - :math:`1 < x < 10` - :math:`2.9 \cdot 10^{-8}` - :math:`2.4 \cdot 10^{-7}` - :math:`1.5 \cdot 10^{-8}\,(0.18\,\text{ulp})` - :math:`2.4 \cdot 10^{-7}\,(3\,\text{ulp})` * - :math:`\text{atanh}()` - :math:`-1 < x < 1` - :math:`9.9 \cdot 10^{-9}` - :math:`2.4 \cdot 10^{-7}` - :math:`1.5 \cdot 10^{-8}\,(0.18\,\text{ulp})` - :math:`1.2 \cdot 10^{-7}\,(1\,\text{ulp})` * - :math:`\text{exp}()` - :math:`-20 < x < 30` - :math:`0.72 \cdot 10^{4}` - :math:`0.1 \cdot 10^{7}` - :math:`2.4 \cdot 10^{-8}\,(0.27\,\text{ulp})` - :math:`1.2 \cdot 10^{-7}\,(1\,\text{ulp})` * - :math:`\text{log}()` - :math:`10^{-20} < x < 2\cdot 10^{30}` - :math:`9.6 \cdot 10^{-9}` - :math:`7.6 \cdot 10^{-6}` - :math:`1.4 \cdot 10^{-10}\,(0.0013\,\text{ulp})` - :math:`1.2 \cdot 10^{-7}\,(1\,\text{ulp})` * - :math:`\text{erf}()` - :math:`-1 < x < 1` - :math:`3.2 \cdot 10^{-8}` - :math:`1.8 \cdot 10^{-7}` - :math:`6.4 \cdot 10^{-8}\,(0.78\,\text{ulp})` - :math:`3.3 \cdot 10^{-7}\,(4\,\text{ulp})` * - :math:`\text{erfc}()` - :math:`-1 < x < 1` - :math:`3.4 \cdot 10^{-8}` - :math:`2.4 \cdot 10^{-7}` - :math:`6.4 \cdot 10^{-8}\,(0.79\,\text{ulp})` - :math:`1 \cdot 10^{-6}\,(11\,\text{ulp})` Accuracy (double precision) ___________________________ .. list-table:: :widths: 5 8 8 10 8 10 :header-rows: 1 :align: center * - Function - Tested domain - Abs. error (mean) - Abs. error (max) - Rel. error (mean) - Rel. error (max) * - :math:`\text{sin}()` - :math:`-8192 < x < 8192` - :math:`2.2 \cdot 10^{-17}` - :math:`2.2 \cdot 10^{-16}` - :math:`3.6 \cdot 10^{-17}\,(0.25\,\text{ulp})` - :math:`3.1 \cdot 10^{-16}\,(2\,\text{ulp})` * - :math:`\text{cos}()` - :math:`-8192 < x < 8192` - :math:`2.2 \cdot 10^{-17}` - :math:`2.2 \cdot 10^{-16}` - :math:`3.6 \cdot 10^{-17}\,(0.25\,\text{ulp})` - :math:`3 \cdot 10^{-16}\,(2\,\text{ulp})` * - :math:`\text{tan}()` - :math:`-8192 < x < 8192` - :math:`6.8 \cdot 10^{-16}` - :math:`1.2 \cdot 10^{-10}` - :math:`5.4 \cdot 10^{-17}\,(0.35\,\text{ulp})` - :math:`4.1 \cdot 10^{-16}\,(3\,\text{ulp})` * - :math:`\text{cot}()` - :math:`-8192 < x < 8192` - :math:`4.9 \cdot 10^{-16}` - :math:`1.2 \cdot 10^{-10}` - :math:`5.5 \cdot 10^{-17}\,(0.36\,\text{ulp})` - :math:`4.4 \cdot 10^{-16}\,(3\,\text{ulp})` * - :math:`\text{asin}()` - :math:`-1 < x < 1` - :math:`1.3 \cdot 10^{-17}` - :math:`2.2 \cdot 10^{-16}` - :math:`1.5 \cdot 10^{-17}\,(0.098\,\text{ulp})` - :math:`2.2 \cdot 10^{-16}\,(1\,\text{ulp})` * - :math:`\text{acos}()` - :math:`-1 < x < 1` - :math:`5.4 \cdot 10^{-17}` - :math:`4.4 \cdot 10^{-16}` - :math:`3.5 \cdot 10^{-17}\,(0.23\,\text{ulp})` - :math:`2.2 \cdot 10^{-16}\,(1\,\text{ulp})` * - :math:`\text{atan}()` - :math:`-1 < x < 1` - :math:`4.3 \cdot 10^{-17}` - :math:`3.3 \cdot 10^{-16}` - :math:`1 \cdot 10^{-16}\,(0.65\,\text{ulp})` - :math:`7.1 \cdot 10^{-16}\,(5\,\text{ulp})` * - :math:`\text{sinh}()` - :math:`-10 < x < 10` - :math:`3.1 \cdot 10^{-14}` - :math:`1.8 \cdot 10^{-12}` - :math:`3.3 \cdot 10^{-17}\,(0.22\,\text{ulp})` - :math:`4.3 \cdot 10^{-16}\,(2\,\text{ulp})` * - :math:`\text{cosh}()` - :math:`-10 < x < 10` - :math:`2.2 \cdot 10^{-14}` - :math:`1.8 \cdot 10^{-12}` - :math:`2 \cdot 10^{-17}\,(0.13\,\text{ulp})` - :math:`2.9 \cdot 10^{-16}\,(2\,\text{ulp})` * - :math:`\text{tanh}()` - :math:`-10 < x < 10` - :math:`5.6 \cdot 10^{-17}` - :math:`3.3 \cdot 10^{-16}` - :math:`6.1 \cdot 10^{-17}\,(0.52\,\text{ulp})` - :math:`5.5 \cdot 10^{-16}\,(3\,\text{ulp})` * - :math:`\text{asinh}()` - :math:`-30 < x < 30` - :math:`5.1 \cdot 10^{-17}` - :math:`8.9 \cdot 10^{-16}` - :math:`1.9 \cdot 10^{-17}\,(0.13\,\text{ulp})` - :math:`4.4 \cdot 10^{-16}\,(2\,\text{ulp})` * - :math:`\text{acosh}()` - :math:`1 < x < 10` - :math:`4.9 \cdot 10^{-17}` - :math:`4.4 \cdot 10^{-16}` - :math:`2.6 \cdot 10^{-17}\,(0.17\,\text{ulp})` - :math:`6.6 \cdot 10^{-16}\,(5\,\text{ulp})` * - :math:`\text{atanh}()` - :math:`-1 < x < 1` - :math:`1.8 \cdot 10^{-17}` - :math:`4.4 \cdot 10^{-16}` - :math:`3.2 \cdot 10^{-17}\,(0.21\,\text{ulp})` - :math:`3 \cdot 10^{-16}\,(2\,\text{ulp})` * - :math:`\text{exp}()` - :math:`-20 < x < 30` - :math:`4.7 \cdot 10^{-6}` - :math:`2 \cdot 10^{-3}` - :math:`2.5 \cdot 10^{-17}\,(0.16\,\text{ulp})` - :math:`3.3 \cdot 10^{-16}\,(2\,\text{ulp})` * - :math:`\text{log}()` - :math:`10^{-20} < x < 2\cdot 10^{30}` - :math:`1.9 \cdot 10^{-17}` - :math:`1.4 \cdot 10^{-14}` - :math:`2.7 \cdot 10^{-19}\,(0.0013\,\text{ulp})` - :math:`2.2 \cdot 10^{-16}\,(1\,\text{ulp})` * - :math:`\text{erf}()` - :math:`-1 < x < 1` - :math:`4.7 \cdot 10^{-17}` - :math:`4.4 \cdot 10^{-16}` - :math:`9.6 \cdot 10^{-17}\,(0.63\,\text{ulp})` - :math:`5.9 \cdot 10^{-16}\,(5\,\text{ulp})` * - :math:`\text{erfc}()` - :math:`-1 < x < 1` - :math:`4.8 \cdot 10^{-17}` - :math:`4.4 \cdot 10^{-16}` - :math:`9.6 \cdot 10^{-17}\,(0.64\,\text{ulp})` - :math:`2.5 \cdot 10^{-15}\,(16\,\text{ulp})` Safe mathematical functions --------------------------- .. autofunction:: safe_sqrt .. autofunction:: safe_asin .. autofunction:: safe_acos Constants --------- .. autoattribute:: const.e .. autoattribute:: const.log_two .. autoattribute:: const.inv_log_two .. autoattribute:: const.pi .. autoattribute:: const.inv_pi .. autoattribute:: const.sqrt_pi .. autoattribute:: const.inv_sqrt_pi .. autoattribute:: const.two_pi .. autoattribute:: const.inv_two_pi .. autoattribute:: const.sqrt_two_pi .. autoattribute:: const.inv_sqrt_two_pi .. autoattribute:: const.four_pi .. autoattribute:: const.inv_four_pi .. autoattribute:: const.sqrt_four_pi .. autoattribute:: const.sqrt_two .. autoattribute:: const.inv_sqrt_two .. autoattribute:: const.inf .. autoattribute:: const.nan .. autofunction:: epsilon .. autofunction:: one_minus_epsilon .. autofunction:: recip_overflow .. autofunction:: smallest .. autofunction:: largest Array base class ---------------- .. autoclass:: ArrayBase .. autoproperty:: array .. autoproperty:: shape .. autoproperty:: x .. autoproperty:: y .. autoproperty:: z .. autoproperty:: w .. autoproperty:: index .. autoproperty:: index_ad .. automethod:: __len__ .. automethod:: __iter__ .. automethod:: __repr__ .. automethod:: __bool__ Casts the array to a Python ``bool`` type. This is only permissible when ``self`` represents an boolean array of both depth and size 1. .. automethod:: __add__ .. automethod:: __radd__ .. automethod:: __iadd__ .. automethod:: __sub__ .. automethod:: __rsub__ .. automethod:: __isub__ .. automethod:: __mul__ .. automethod:: __rmul__ .. automethod:: __imul__ .. automethod:: __truediv__ .. automethod:: __rtruediv__ .. automethod:: __itruediv__ .. automethod:: __floordiv__ .. automethod:: __rfloordiv__ .. automethod:: __ifloordiv__ .. automethod:: __mod__ .. automethod:: __rmod__ .. automethod:: __imod__ .. automethod:: __rshift__ .. automethod:: __rrshift__ .. automethod:: __irshift__ .. automethod:: __lshift__ .. automethod:: __rlshift__ .. automethod:: __ilshift__ .. automethod:: __and__ .. automethod:: __rand__ .. automethod:: __iand__ .. automethod:: __or__ .. automethod:: __ror__ .. automethod:: __ior__ .. automethod:: __xor__ .. automethod:: __rxor__ .. automethod:: __ixor__ .. automethod:: __abs__ .. automethod:: __le__ .. automethod:: __lt__ .. automethod:: __ge__ .. automethod:: __gt__ .. automethod:: __ne__ .. automethod:: __eq__ .. automethod:: __dlpack__ .. automethod:: __dlpack_device__ .. automethod:: __array__ Automatic differentiation ------------------------- .. autofunction:: detach .. autofunction:: enable_grad .. autofunction:: disable_grad .. autofunction:: set_grad_enabled .. autofunction:: grad_enabled .. autofunction:: grad .. autofunction:: set_grad .. autofunction:: accum_grad .. autofunction:: replace_grad .. autofunction:: traverse .. autofunction:: enqueue .. autofunction:: forward_from .. autofunction:: forward .. autofunction:: forward_to .. autofunction:: backward_from .. autofunction:: backward .. autofunction:: backward_to .. .. autofunction:: ad_scope_enter .. .. autofunction:: ad_scope_leave .. autofunction:: suspend_grad .. autofunction:: resume_grad .. autofunction:: isolate_grad .. autofunction:: graphviz_ad .. autoclass:: CustomOp .. automethod:: eval .. automethod:: forward .. automethod:: backward .. automethod:: name .. automethod:: grad_out .. automethod:: set_grad_out .. automethod:: grad_in .. automethod:: set_grad_in .. automethod:: add_input .. automethod:: add_output .. autofunction:: custom .. autofunction:: wrap_ad Matrix and quaternion related functions --------------------------------------- .. autofunction:: rotate .. autofunction:: transpose .. autofunction:: inverse_transpose .. autofunction:: det .. autofunction:: inverse .. autofunction:: diag .. autofunction:: trace .. autofunction:: frob .. autofunction:: polar_decomp .. autofunction:: quat_to_matrix .. autofunction:: matrix_to_quat .. autofunction:: quat_to_euler .. autofunction:: euler_to_quat .. autofunction:: transform_decompose .. autofunction:: transform_compose Concrete array classes ---------------------- Scalar array namespace (``drjit.scalar``) _________________________________________ .. py:data:: Bool :type: type :value: bool .. py:data:: Float :type: type :value: float .. py:data:: Float64 :type: type :value: float .. py:data:: Int :type: type :value: int .. py:data:: Int64 :type: type :value: int .. py:data:: UInt :type: type :value: int .. py:data:: UInt64 :type: type :value: int .. autoclass:: drjit.scalar.Array0b :show-inheritance: .. autoclass:: drjit.scalar.Array1b :show-inheritance: .. autoclass:: drjit.scalar.Array2b :show-inheritance: .. autoclass:: drjit.scalar.Array3b :show-inheritance: .. autoclass:: drjit.scalar.Array4b :show-inheritance: .. autoclass:: drjit.scalar.ArrayXb :show-inheritance: .. autoclass:: drjit.scalar.Array0f :show-inheritance: .. autoclass:: drjit.scalar.Array1f :show-inheritance: .. autoclass:: drjit.scalar.Array2f :show-inheritance: .. autoclass:: drjit.scalar.Array3f :show-inheritance: .. autoclass:: drjit.scalar.Array4f :show-inheritance: .. autoclass:: drjit.scalar.ArrayXf :show-inheritance: .. autoclass:: drjit.scalar.Array0u :show-inheritance: .. autoclass:: drjit.scalar.Array1u :show-inheritance: .. autoclass:: drjit.scalar.Array2u :show-inheritance: .. autoclass:: drjit.scalar.Array3u :show-inheritance: .. autoclass:: drjit.scalar.Array4u :show-inheritance: .. autoclass:: drjit.scalar.ArrayXu :show-inheritance: .. autoclass:: drjit.scalar.Array0i :show-inheritance: .. autoclass:: drjit.scalar.Array1i :show-inheritance: .. autoclass:: drjit.scalar.Array2i :show-inheritance: .. autoclass:: drjit.scalar.Array3i :show-inheritance: .. autoclass:: drjit.scalar.Array4i :show-inheritance: .. autoclass:: drjit.scalar.ArrayXi :show-inheritance: .. autoclass:: drjit.scalar.Array0f64 :show-inheritance: .. autoclass:: drjit.scalar.Array1f64 :show-inheritance: .. autoclass:: drjit.scalar.Array2f64 :show-inheritance: .. autoclass:: drjit.scalar.Array3f64 :show-inheritance: .. autoclass:: drjit.scalar.Array4f64 :show-inheritance: .. autoclass:: drjit.scalar.ArrayXf64 :show-inheritance: .. autoclass:: drjit.scalar.Array0u64 :show-inheritance: .. autoclass:: drjit.scalar.Array1u64 :show-inheritance: .. autoclass:: drjit.scalar.Array2u64 :show-inheritance: .. autoclass:: drjit.scalar.Array3u64 :show-inheritance: .. autoclass:: drjit.scalar.Array4u64 :show-inheritance: .. autoclass:: drjit.scalar.ArrayXu64 :show-inheritance: .. autoclass:: drjit.scalar.Array0i64 :show-inheritance: .. autoclass:: drjit.scalar.Array1i64 :show-inheritance: .. autoclass:: drjit.scalar.Array2i64 :show-inheritance: .. autoclass:: drjit.scalar.Array3i64 :show-inheritance: .. autoclass:: drjit.scalar.Array4i64 :show-inheritance: .. autoclass:: drjit.scalar.ArrayXi64 :show-inheritance: .. autoclass:: drjit.scalar.Matrix2u :show-inheritance: .. autoclass:: drjit.scalar.Matrix2i :show-inheritance: .. autoclass:: drjit.scalar.Matrix2f :show-inheritance: .. autoclass:: drjit.scalar.Matrix2f64 :show-inheritance: .. autoclass:: drjit.scalar.Matrix3u :show-inheritance: .. autoclass:: drjit.scalar.Matrix3i :show-inheritance: .. autoclass:: drjit.scalar.Matrix3f :show-inheritance: .. autoclass:: drjit.scalar.Matrix3f64 :show-inheritance: .. autoclass:: drjit.scalar.Matrix4u :show-inheritance: .. autoclass:: drjit.scalar.Matrix4i :show-inheritance: .. autoclass:: drjit.scalar.Matrix4f :show-inheritance: .. autoclass:: drjit.scalar.Matrix4f64 :show-inheritance: .. autoclass:: drjit.scalar.Complex2f :show-inheritance: .. autoclass:: drjit.scalar.Complex2f64 :show-inheritance: .. autoclass:: drjit.scalar.Quaternion4f :show-inheritance: .. autoclass:: drjit.scalar.Quaternion4f64 :show-inheritance: CUDA array namespace (``drjit.cuda``) _______________________________________ .. autoclass:: drjit.cuda.Bool :show-inheritance: .. autoclass:: drjit.cuda.Float :show-inheritance: .. autoclass:: drjit.cuda.Float64 :show-inheritance: .. autoclass:: drjit.cuda.UInt :show-inheritance: .. autoclass:: drjit.cuda.UInt64 :show-inheritance: .. autoclass:: drjit.cuda.Int :show-inheritance: .. autoclass:: drjit.cuda.Int64 :show-inheritance: .. autoclass:: drjit.cuda.Array0b :show-inheritance: .. autoclass:: drjit.cuda.Array1b :show-inheritance: .. autoclass:: drjit.cuda.Array2b :show-inheritance: .. autoclass:: drjit.cuda.Array3b :show-inheritance: .. autoclass:: drjit.cuda.Array4b :show-inheritance: .. autoclass:: drjit.cuda.ArrayXb :show-inheritance: .. autoclass:: drjit.cuda.Array0f :show-inheritance: .. autoclass:: drjit.cuda.Array1f :show-inheritance: .. autoclass:: drjit.cuda.Array2f :show-inheritance: .. autoclass:: drjit.cuda.Array3f :show-inheritance: .. autoclass:: drjit.cuda.Array4f :show-inheritance: .. autoclass:: drjit.cuda.ArrayXf :show-inheritance: .. autoclass:: drjit.cuda.Array0u :show-inheritance: .. autoclass:: drjit.cuda.Array1u :show-inheritance: .. autoclass:: drjit.cuda.Array2u :show-inheritance: .. autoclass:: drjit.cuda.Array3u :show-inheritance: .. autoclass:: drjit.cuda.Array4u :show-inheritance: .. autoclass:: drjit.cuda.ArrayXu :show-inheritance: .. autoclass:: drjit.cuda.Array0i :show-inheritance: .. autoclass:: drjit.cuda.Array1i :show-inheritance: .. autoclass:: drjit.cuda.Array2i :show-inheritance: .. autoclass:: drjit.cuda.Array3i :show-inheritance: .. autoclass:: drjit.cuda.Array4i :show-inheritance: .. autoclass:: drjit.cuda.ArrayXi :show-inheritance: .. autoclass:: drjit.cuda.Array0f64 :show-inheritance: .. autoclass:: drjit.cuda.Array1f64 :show-inheritance: .. autoclass:: drjit.cuda.Array2f64 :show-inheritance: .. autoclass:: drjit.cuda.Array3f64 :show-inheritance: .. autoclass:: drjit.cuda.Array4f64 :show-inheritance: .. autoclass:: drjit.cuda.ArrayXf64 :show-inheritance: .. autoclass:: drjit.cuda.Array0u64 :show-inheritance: .. autoclass:: drjit.cuda.Array1u64 :show-inheritance: .. autoclass:: drjit.cuda.Array2u64 :show-inheritance: .. autoclass:: drjit.cuda.Array3u64 :show-inheritance: .. autoclass:: drjit.cuda.Array4u64 :show-inheritance: .. autoclass:: drjit.cuda.ArrayXu64 :show-inheritance: .. autoclass:: drjit.cuda.Array0i64 :show-inheritance: .. autoclass:: drjit.cuda.Array1i64 :show-inheritance: .. autoclass:: drjit.cuda.Array2i64 :show-inheritance: .. autoclass:: drjit.cuda.Array3i64 :show-inheritance: .. autoclass:: drjit.cuda.Array4i64 :show-inheritance: .. autoclass:: drjit.cuda.ArrayXi64 :show-inheritance: .. autoclass:: drjit.cuda.Matrix2u :show-inheritance: .. autoclass:: drjit.cuda.Matrix2i :show-inheritance: .. autoclass:: drjit.cuda.Matrix2f :show-inheritance: .. autoclass:: drjit.cuda.Matrix2f64 :show-inheritance: .. autoclass:: drjit.cuda.Matrix3u :show-inheritance: .. autoclass:: drjit.cuda.Matrix3i :show-inheritance: .. autoclass:: drjit.cuda.Matrix3f :show-inheritance: .. autoclass:: drjit.cuda.Matrix3f64 :show-inheritance: .. autoclass:: drjit.cuda.Matrix4u :show-inheritance: .. autoclass:: drjit.cuda.Matrix4i :show-inheritance: .. autoclass:: drjit.cuda.Matrix4f :show-inheritance: .. autoclass:: drjit.cuda.Matrix4f64 :show-inheritance: .. autoclass:: drjit.cuda.Complex2f :show-inheritance: .. autoclass:: drjit.cuda.Complex2f64 :show-inheritance: .. autoclass:: drjit.cuda.Quaternion4f :show-inheritance: .. autoclass:: drjit.cuda.Quaternion4f64 :show-inheritance: CUDA array namespace with automatic differentiation (``drjit.cuda.ad``) _______________________________________________________________________ .. autoclass:: drjit.cuda.ad.Bool :show-inheritance: .. autoclass:: drjit.cuda.ad.Float :show-inheritance: .. autoclass:: drjit.cuda.ad.Float64 :show-inheritance: .. autoclass:: drjit.cuda.ad.UInt :show-inheritance: .. autoclass:: drjit.cuda.ad.UInt64 :show-inheritance: .. autoclass:: drjit.cuda.ad.Int :show-inheritance: .. autoclass:: drjit.cuda.ad.Int64 :show-inheritance: .. autoclass:: drjit.cuda.ad.Array0b :show-inheritance: .. autoclass:: drjit.cuda.ad.Array1b :show-inheritance: .. autoclass:: drjit.cuda.ad.Array2b :show-inheritance: .. autoclass:: drjit.cuda.ad.Array3b :show-inheritance: .. autoclass:: drjit.cuda.ad.Array4b :show-inheritance: .. autoclass:: drjit.cuda.ad.ArrayXb :show-inheritance: .. autoclass:: drjit.cuda.ad.Array0f :show-inheritance: .. autoclass:: drjit.cuda.ad.Array1f :show-inheritance: .. autoclass:: drjit.cuda.ad.Array2f :show-inheritance: .. autoclass:: drjit.cuda.ad.Array3f :show-inheritance: .. autoclass:: drjit.cuda.ad.Array4f :show-inheritance: .. autoclass:: drjit.cuda.ad.ArrayXf :show-inheritance: .. autoclass:: drjit.cuda.ad.Array0u :show-inheritance: .. autoclass:: drjit.cuda.ad.Array1u :show-inheritance: .. autoclass:: drjit.cuda.ad.Array2u :show-inheritance: .. autoclass:: drjit.cuda.ad.Array3u :show-inheritance: .. autoclass:: drjit.cuda.ad.Array4u :show-inheritance: .. autoclass:: drjit.cuda.ad.ArrayXu :show-inheritance: .. autoclass:: drjit.cuda.ad.Array0i :show-inheritance: .. autoclass:: drjit.cuda.ad.Array1i :show-inheritance: .. autoclass:: drjit.cuda.ad.Array2i :show-inheritance: .. autoclass:: drjit.cuda.ad.Array3i :show-inheritance: .. autoclass:: drjit.cuda.ad.Array4i :show-inheritance: .. autoclass:: drjit.cuda.ad.ArrayXi :show-inheritance: .. autoclass:: drjit.cuda.ad.Array0f64 :show-inheritance: .. autoclass:: drjit.cuda.ad.Array1f64 :show-inheritance: .. autoclass:: drjit.cuda.ad.Array2f64 :show-inheritance: .. autoclass:: drjit.cuda.ad.Array3f64 :show-inheritance: .. autoclass:: drjit.cuda.ad.Array4f64 :show-inheritance: .. autoclass:: drjit.cuda.ad.ArrayXf64 :show-inheritance: .. autoclass:: drjit.cuda.ad.Array0u64 :show-inheritance: .. autoclass:: drjit.cuda.ad.Array1u64 :show-inheritance: .. autoclass:: drjit.cuda.ad.Array2u64 :show-inheritance: .. autoclass:: drjit.cuda.ad.Array3u64 :show-inheritance: .. autoclass:: drjit.cuda.ad.Array4u64 :show-inheritance: .. autoclass:: drjit.cuda.ad.ArrayXu64 :show-inheritance: .. autoclass:: drjit.cuda.ad.Array0i64 :show-inheritance: .. autoclass:: drjit.cuda.ad.Array1i64 :show-inheritance: .. autoclass:: drjit.cuda.ad.Array2i64 :show-inheritance: .. autoclass:: drjit.cuda.ad.Array3i64 :show-inheritance: .. autoclass:: drjit.cuda.ad.Array4i64 :show-inheritance: .. autoclass:: drjit.cuda.ad.ArrayXi64 :show-inheritance: .. autoclass:: drjit.cuda.ad.Matrix2u :show-inheritance: .. autoclass:: drjit.cuda.ad.Matrix2i :show-inheritance: .. autoclass:: drjit.cuda.ad.Matrix2f :show-inheritance: .. autoclass:: drjit.cuda.ad.Matrix2f64 :show-inheritance: .. autoclass:: drjit.cuda.ad.Matrix3u :show-inheritance: .. autoclass:: drjit.cuda.ad.Matrix3i :show-inheritance: .. autoclass:: drjit.cuda.ad.Matrix3f :show-inheritance: .. autoclass:: drjit.cuda.ad.Matrix3f64 :show-inheritance: .. autoclass:: drjit.cuda.ad.Matrix4u :show-inheritance: .. autoclass:: drjit.cuda.ad.Matrix4i :show-inheritance: .. autoclass:: drjit.cuda.ad.Matrix4f :show-inheritance: .. autoclass:: drjit.cuda.ad.Matrix4f64 :show-inheritance: .. autoclass:: drjit.cuda.ad.Complex2f :show-inheritance: .. autoclass:: drjit.cuda.ad.Complex2f64 :show-inheritance: .. autoclass:: drjit.cuda.ad.Quaternion4f :show-inheritance: .. autoclass:: drjit.cuda.ad.Quaternion4f64 :show-inheritance: LLVM array namespace (``drjit.llvm``) _______________________________________ .. autoclass:: drjit.llvm.Bool :show-inheritance: .. autoclass:: drjit.llvm.Float :show-inheritance: .. autoclass:: drjit.llvm.Float64 :show-inheritance: .. autoclass:: drjit.llvm.UInt :show-inheritance: .. autoclass:: drjit.llvm.UInt64 :show-inheritance: .. autoclass:: drjit.llvm.Int :show-inheritance: .. autoclass:: drjit.llvm.Int64 :show-inheritance: .. autoclass:: drjit.llvm.Array0b :show-inheritance: .. autoclass:: drjit.llvm.Array1b :show-inheritance: .. autoclass:: drjit.llvm.Array2b :show-inheritance: .. autoclass:: drjit.llvm.Array3b :show-inheritance: .. autoclass:: drjit.llvm.Array4b :show-inheritance: .. autoclass:: drjit.llvm.ArrayXb :show-inheritance: .. autoclass:: drjit.llvm.Array0f :show-inheritance: .. autoclass:: drjit.llvm.Array1f :show-inheritance: .. autoclass:: drjit.llvm.Array2f :show-inheritance: .. autoclass:: drjit.llvm.Array3f :show-inheritance: .. autoclass:: drjit.llvm.Array4f :show-inheritance: .. autoclass:: drjit.llvm.ArrayXf :show-inheritance: .. autoclass:: drjit.llvm.Array0u :show-inheritance: .. autoclass:: drjit.llvm.Array1u :show-inheritance: .. autoclass:: drjit.llvm.Array2u :show-inheritance: .. autoclass:: drjit.llvm.Array3u :show-inheritance: .. autoclass:: drjit.llvm.Array4u :show-inheritance: .. autoclass:: drjit.llvm.ArrayXu :show-inheritance: .. autoclass:: drjit.llvm.Array0i :show-inheritance: .. autoclass:: drjit.llvm.Array1i :show-inheritance: .. autoclass:: drjit.llvm.Array2i :show-inheritance: .. autoclass:: drjit.llvm.Array3i :show-inheritance: .. autoclass:: drjit.llvm.Array4i :show-inheritance: .. autoclass:: drjit.llvm.ArrayXi :show-inheritance: .. autoclass:: drjit.llvm.Array0f64 :show-inheritance: .. autoclass:: drjit.llvm.Array1f64 :show-inheritance: .. autoclass:: drjit.llvm.Array2f64 :show-inheritance: .. autoclass:: drjit.llvm.Array3f64 :show-inheritance: .. autoclass:: drjit.llvm.Array4f64 :show-inheritance: .. autoclass:: drjit.llvm.ArrayXf64 :show-inheritance: .. autoclass:: drjit.llvm.Array0u64 :show-inheritance: .. autoclass:: drjit.llvm.Array1u64 :show-inheritance: .. autoclass:: drjit.llvm.Array2u64 :show-inheritance: .. autoclass:: drjit.llvm.Array3u64 :show-inheritance: .. autoclass:: drjit.llvm.Array4u64 :show-inheritance: .. autoclass:: drjit.llvm.ArrayXu64 :show-inheritance: .. autoclass:: drjit.llvm.Array0i64 :show-inheritance: .. autoclass:: drjit.llvm.Array1i64 :show-inheritance: .. autoclass:: drjit.llvm.Array2i64 :show-inheritance: .. autoclass:: drjit.llvm.Array3i64 :show-inheritance: .. autoclass:: drjit.llvm.Array4i64 :show-inheritance: .. autoclass:: drjit.llvm.ArrayXi64 :show-inheritance: .. autoclass:: drjit.llvm.Matrix2u :show-inheritance: .. autoclass:: drjit.llvm.Matrix2i :show-inheritance: .. autoclass:: drjit.llvm.Matrix2f :show-inheritance: .. autoclass:: drjit.llvm.Matrix2f64 :show-inheritance: .. autoclass:: drjit.llvm.Matrix3u :show-inheritance: .. autoclass:: drjit.llvm.Matrix3i :show-inheritance: .. autoclass:: drjit.llvm.Matrix3f :show-inheritance: .. autoclass:: drjit.llvm.Matrix3f64 :show-inheritance: .. autoclass:: drjit.llvm.Matrix4u :show-inheritance: .. autoclass:: drjit.llvm.Matrix4i :show-inheritance: .. autoclass:: drjit.llvm.Matrix4f :show-inheritance: .. autoclass:: drjit.llvm.Matrix4f64 :show-inheritance: .. autoclass:: drjit.llvm.Complex2f :show-inheritance: .. autoclass:: drjit.llvm.Complex2f64 :show-inheritance: .. autoclass:: drjit.llvm.Quaternion4f :show-inheritance: .. autoclass:: drjit.llvm.Quaternion4f64 :show-inheritance: LLVM array namespace with automatic differentiation (``drjit.llvm.ad``) _______________________________________________________________________ .. autoclass:: drjit.llvm.ad.Bool :show-inheritance: .. autoclass:: drjit.llvm.ad.Float :show-inheritance: .. autoclass:: drjit.llvm.ad.Float64 :show-inheritance: .. autoclass:: drjit.llvm.ad.UInt :show-inheritance: .. autoclass:: drjit.llvm.ad.UInt64 :show-inheritance: .. autoclass:: drjit.llvm.ad.Int :show-inheritance: .. autoclass:: drjit.llvm.ad.Int64 :show-inheritance: .. autoclass:: drjit.llvm.ad.Array0b :show-inheritance: .. autoclass:: drjit.llvm.ad.Array1b :show-inheritance: .. autoclass:: drjit.llvm.ad.Array2b :show-inheritance: .. autoclass:: drjit.llvm.ad.Array3b :show-inheritance: .. autoclass:: drjit.llvm.ad.Array4b :show-inheritance: .. autoclass:: drjit.llvm.ad.ArrayXb :show-inheritance: .. autoclass:: drjit.llvm.ad.Array0f :show-inheritance: .. autoclass:: drjit.llvm.ad.Array1f :show-inheritance: .. autoclass:: drjit.llvm.ad.Array2f :show-inheritance: .. autoclass:: drjit.llvm.ad.Array3f :show-inheritance: .. autoclass:: drjit.llvm.ad.Array4f :show-inheritance: .. autoclass:: drjit.llvm.ad.ArrayXf :show-inheritance: .. autoclass:: drjit.llvm.ad.Array0u :show-inheritance: .. autoclass:: drjit.llvm.ad.Array1u :show-inheritance: .. autoclass:: drjit.llvm.ad.Array2u :show-inheritance: .. autoclass:: drjit.llvm.ad.Array3u :show-inheritance: .. autoclass:: drjit.llvm.ad.Array4u :show-inheritance: .. autoclass:: drjit.llvm.ad.ArrayXu :show-inheritance: .. autoclass:: drjit.llvm.ad.Array0i :show-inheritance: .. autoclass:: drjit.llvm.ad.Array1i :show-inheritance: .. autoclass:: drjit.llvm.ad.Array2i :show-inheritance: .. autoclass:: drjit.llvm.ad.Array3i :show-inheritance: .. autoclass:: drjit.llvm.ad.Array4i :show-inheritance: .. autoclass:: drjit.llvm.ad.ArrayXi :show-inheritance: .. autoclass:: drjit.llvm.ad.Array0f64 :show-inheritance: .. autoclass:: drjit.llvm.ad.Array1f64 :show-inheritance: .. autoclass:: drjit.llvm.ad.Array2f64 :show-inheritance: .. autoclass:: drjit.llvm.ad.Array3f64 :show-inheritance: .. autoclass:: drjit.llvm.ad.Array4f64 :show-inheritance: .. autoclass:: drjit.llvm.ad.ArrayXf64 :show-inheritance: .. autoclass:: drjit.llvm.ad.Array0u64 :show-inheritance: .. autoclass:: drjit.llvm.ad.Array1u64 :show-inheritance: .. autoclass:: drjit.llvm.ad.Array2u64 :show-inheritance: .. autoclass:: drjit.llvm.ad.Array3u64 :show-inheritance: .. autoclass:: drjit.llvm.ad.Array4u64 :show-inheritance: .. autoclass:: drjit.llvm.ad.ArrayXu64 :show-inheritance: .. autoclass:: drjit.llvm.ad.Array0i64 :show-inheritance: .. autoclass:: drjit.llvm.ad.Array1i64 :show-inheritance: .. autoclass:: drjit.llvm.ad.Array2i64 :show-inheritance: .. autoclass:: drjit.llvm.ad.Array3i64 :show-inheritance: .. autoclass:: drjit.llvm.ad.Array4i64 :show-inheritance: .. autoclass:: drjit.llvm.ad.ArrayXi64 :show-inheritance: .. autoclass:: drjit.llvm.ad.Matrix2u :show-inheritance: .. autoclass:: drjit.llvm.ad.Matrix2i :show-inheritance: .. autoclass:: drjit.llvm.ad.Matrix2f :show-inheritance: .. autoclass:: drjit.llvm.ad.Matrix2f64 :show-inheritance: .. autoclass:: drjit.llvm.ad.Matrix3u :show-inheritance: .. autoclass:: drjit.llvm.ad.Matrix3i :show-inheritance: .. autoclass:: drjit.llvm.ad.Matrix3f :show-inheritance: .. autoclass:: drjit.llvm.ad.Matrix3f64 :show-inheritance: .. autoclass:: drjit.llvm.ad.Matrix4u :show-inheritance: .. autoclass:: drjit.llvm.ad.Matrix4i :show-inheritance: .. autoclass:: drjit.llvm.ad.Matrix4f :show-inheritance: .. autoclass:: drjit.llvm.ad.Matrix4f64 :show-inheritance: .. autoclass:: drjit.llvm.ad.Complex2f :show-inheritance: .. autoclass:: drjit.llvm.ad.Complex2f64 :show-inheritance: .. autoclass:: drjit.llvm.ad.Quaternion4f :show-inheritance: .. autoclass:: drjit.llvm.ad.Quaternion4f64 :show-inheritance: