13#if !defined(ULTRA_FITNESS_H)
14#define ULTRA_FITNESS_H
16#include "utility/assert.h"
17#include "utility/misc.h"
66 OrderedArithmeticType<F> &&
requires {
requires F{-1} < F{0}; };
77 std::ranges::sized_range<F> && std::ranges::sized_range<const F>
90 explicit with_size(std::size_t s) : size_(s) {}
91 std::size_t operator()()
const {
return size_; }
107 using value_type = double;
108 using values_t = std::vector<value_type>;
109 using iterator = values_t::iterator;
110 using const_iterator = values_t::const_iterator;
111 using difference_type = values_t::difference_type;
113 constexpr fitnd() =
default;
114 constexpr fitnd(std::initializer_list<double>);
116 fitnd(
with_size, value_type = std::numeric_limits<value_type>::lowest());
118 [[nodiscard]] std::size_t
size() const noexcept;
119 [[nodiscard]]
bool empty() const noexcept;
120 [[nodiscard]] value_type operator[](
std::
size_t) const;
121 [[nodiscard]] value_type &operator[](
std::
size_t);
123 [[nodiscard]] iterator
begin() noexcept;
124 [[nodiscard]] iterator
end() noexcept;
125 [[nodiscard]] const_iterator
begin() const noexcept;
126 [[nodiscard]] const_iterator
end() const noexcept;
128 [[nodiscard]] friend auto operator<=>(const
fitnd &, const
fitnd &) = default;
135 fitnd &operator*=(value_type);
136 fitnd &operator/=(value_type);
138 friend
bool load(
std::istream &,
fitnd *);
152[[nodiscard]]
fitnd operator*(
fitnd, fitnd::value_type);
153[[nodiscard]]
fitnd operator*(fitnd::value_type,
fitnd);
154[[nodiscard]]
fitnd operator/(
fitnd, fitnd::value_type);
160[[nodiscard]]
bool load(std::istream &,
fitnd *);
167std::ostream &operator<<(std::ostream &,
const fitnd &);
168std::istream &operator>>(std::istream &,
fitnd &);
fitnd combine(const fitnd &f1, const fitnd &f2)
Definition fitness.cc:424
std::size_t size() const noexcept
Definition fitness.cc:44
iterator begin() noexcept
Definition fitness.cc:86
iterator end() noexcept
Definition fitness.cc:103
bool empty() const noexcept
Definition fitness.cc:52
fitnd abs(fitnd f)
Definition fitness.cc:400
fitnd sqrt(fitnd f)
Definition fitness.cc:411