1#ifndef _BBM_GRADIENT_BACKBONE_CONCEPT_H_
2#define _BBM_GRADIENT_BACKBONE_CONCEPT_H_
27 { is_diff_v<T> } -> std::convertible_to<bool>;
28 requires is_diff_v<T>;
50 {
gradient(a) } -> std::convertible_to<remove_diff_t<T>>;
Definition: gradient.h:25
Only check gradient concept if is_diff_v<T>
Definition: gradient.h:80
Random number generator; built on top of Drjit.
Definition: backbone.h:53
Definition: aggregatebsdf.h:29
void track_gradient(T &t, bool toggle=true)
Enable/disable tracking of gradients for a variable.
Definition: backbone.h:451
void backward_gradient(T &t)
Enable backward/reverse gradient tracking.
Definition: backbone.h:479
bool is_gradient_tracked(const T &t)
Checks if gradients are enabled for a variable.
Definition: backbone.h:436
auto gradient(T &t)
Return the gradient.
Definition: backbone.h:423
void forward_gradient(T &t)
Enable forward gradient tracking.
Definition: backbone.h:465
auto detach_gradient(T &t)
Detach the value from the gradient computations.
Definition: backbone.h:408
Additional basic helper concepts.