2025-07-02 11:32:45 -04:00
|
|
|
#pragma once
|
|
|
|
|
|
|
|
|
|
#include <string>
|
2025-07-03 09:55:10 -04:00
|
|
|
#include <memory>
|
2025-07-02 11:32:45 -04:00
|
|
|
|
|
|
|
|
namespace gridfire::partition {
|
|
|
|
|
class PartitionFunction {
|
|
|
|
|
public:
|
|
|
|
|
virtual ~PartitionFunction() = default;
|
2025-07-03 09:55:10 -04:00
|
|
|
[[nodiscard]] virtual double evaluate(int z, int a, double T9) const = 0;
|
|
|
|
|
[[nodiscard]] virtual double evaluateDerivative(int z, int a, double T9) const = 0;
|
|
|
|
|
[[nodiscard]] virtual bool supports(int z, int a) const = 0;
|
|
|
|
|
[[nodiscard]] virtual std::string type() const = 0;
|
|
|
|
|
[[nodiscard]] virtual std::unique_ptr<PartitionFunction> clone() const = 0;
|
2025-07-02 11:32:45 -04:00
|
|
|
};
|
|
|
|
|
}
|