27 template<
typename LOSSFUNCTION>
requires concepts::lossfunction<LOSSFUNCTION>
28 class loss :
virtual public loss_base< get_config<LOSSFUNCTION> >,
public LOSSFUNCTION
34 using LOSSFUNCTION::LOSSFUNCTION;
37 loss(
const LOSSFUNCTION& lossfunc) : LOSSFUNCTION(lossfunc) {}
40 using LOSSFUNCTION::operator=;
45 virtual void update(
void)
override final
47 LOSSFUNCTION::update();
53 virtual Value
operator()(Mask mask=
true) const override final
55 return LOSSFUNCTION::operator()(mask);
All BBM methods are defined to operate on a variety of value types and spectrum types....
LOSS implementation of a loss function.
Definition: loss.h:29
BBM_IMPORT_CONFIG(LOSSFUNCTION)
loss(const LOSSFUNCTION &lossfunc)
Construct directly from a LOSSFUNCTION.
Definition: loss.h:37
virtual Value operator()(Mask mask=true) const override final
Virtual passthrough of the loss computation.
Definition: loss.h:53
virtual void update(void) override final
Virtual passthrough of the update method.
Definition: loss.h:45
loss concept
Definition: loss.h:29
loss contract: virtual interface wrapper around lossfunctions
Abstract base definition of a LOSS (with virtual functions)
#define BBM_CHECK_CONCEPT(CONCEPTNAME, CLASSNAME,...)
Check a class for a concept with bbm::concepts::archetypes in the namespace.
Definition: macro.h:35
Definition: aggregatebsdf.h:29
Forward declaration.
Definition: loss_base.h:29