1#if !defined _BBM_ENOKI_GRADIENT_H_ && defined ENOKI_AUTODIFF
2#define _BBM_ENOKI_GRADIENT_H_
4#include "backbone/type_traits.h"
6#include "enoki/autodiff.h"
22 template<
typename T>
requires is_diff_v<T>
25 enoki::set_requires_gradient(t, toggle);
29 template<
typename T>
requires is_diff_v<T>
32 return enoki::requires_gradient(t);
36 template<
typename T>
requires is_diff_v<T>
39 return enoki::gradient(t);
43 template<
typename T>
requires is_diff_v<T>
46 return enoki::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)