16 lines
390 B
C
16 lines
390 B
C
|
|
#pragma once
|
||
|
|
#include <TestProject/RNG/model/IModel.h>
|
||
|
|
#include <memory>
|
||
|
|
|
||
|
|
struct CompositeModel : IModel {
|
||
|
|
std::unique_ptr<IModel> base;
|
||
|
|
std::unique_ptr<IModel> noise;
|
||
|
|
|
||
|
|
CompositeModel(std::unique_ptr<IModel> b, std::unique_ptr<IModel> n)
|
||
|
|
: base(std::move(b)), noise(std::move(n)) {}
|
||
|
|
|
||
|
|
float evaluate(size_t t) override {
|
||
|
|
return base->evaluate(t) + noise->evaluate(t);
|
||
|
|
}
|
||
|
|
};
|