1#if !defined _BBM_DRJIT_GRADIENT_H_ && defined DRJIT_AUTODIFF
2#define _BBM_DRJIT_GRADIENT_H_
4#include "backbone/type_traits.h"
6#include "drjit/autodiff.h"
22 template<
typename T>
requires is_diff_v<T>
25 drjit::set_grad_enabled(t, toggle);
29 template<
typename T>
requires is_diff_v<T>
32 return drjit::grad_enabled(t);
36 template<
typename T>
requires is_diff_v<T>
39 return drjit::grad(t);
43 template<
typename T>
requires is_diff_v<T>
46 return drjit::detach(t);
50 template<
typename T>
requires is_diff_v<T>
57 template<
typename T>
requires is_diff_v<T>
Random number generator; built on top of Drjit.
Definition: backbone.h:53
bool is_gradient_tracked(T &)
void forward_gradient(T &)
const remove_diff_t< T > & gradient(T &)
remove_diff_t< T > & detach_gradient(T &)
void backward_gradient(T &)
void track_gradient(T &, bool)