L2PGFWL2UYCKFV7XQTNLUESMHCP2TBNE4IWFBDU4E4UNBNEMSKXAC
QU4IBVXLLNKNFHT25ZP23INGTVGISDTTLPUBD5S7PCDBC3ZXF3QAC
FEMASUBNU32NSG4DNXZX54CGCA57PVRGYO46L3A6F2EJ4BCSJ3SAC
OHAARXLBTFOIV5FOTY7IDMOIAE275CKXCE6XQMWV3EC63YCSMIWAC
KOOPA77MHDMNHAKH7YXUD2POVQCT3R2HHDHEFBW3G7MVM7QJQVYAC
vect() { for (int d = 0; d < D; ++d) elts[d] = 0; }
vect() {
for (int d = 0; d < D; ++d)
elts[d] = 0;
}
// initializes all elts to zero constexpr vect() : elts() {}
// initializes all elts to zero
constexpr vect() : elts() {}
vect(const array<T, D> &arr) : elts(arr) {}
constexpr vect(const array<T, D> &arr) : elts(arr) {}
static vect unit(int dir) {
static constexpr vect unit(int dir) {
const T &operator[](int d) const { return elts[d]; }
constexpr const T &operator[](int d) const { return elts[d]; }
friend vect operator+(const vect &x) {
friend constexpr vect operator+(const vect &x) {
friend vect operator-(const vect &x) {
friend constexpr vect operator-(const vect &x) {
friend vect operator+(const vect &x, const vect &y) {
friend constexpr vect operator+(const vect &x, const vect &y) {
friend vect operator-(const vect &x, const vect &y) {
friend constexpr vect operator-(const vect &x, const vect &y) {
// friend vect operator+(const vect &x, const array<T, D> &y) {
// friend constexpr vect operator+(const vect &x, const array<T, D> &y) {
// friend vect operator-(const vect &x, const array<T, D> &y) {
// friend constexpr vect operator-(const vect &x, const array<T, D> &y) {
// friend vect operator+(const vect &x, T a) {
// friend constexpr vect operator+(const vect &x, T a) {
// friend vect operator-(const vect &x, T a) {
// friend constexpr vect operator-(const vect &x, T a) {
friend vect operator*(T a, const vect &x) {
friend constexpr vect operator*(T a, const vect &x) {
friend vect operator*(const vect &x, T a) {
friend constexpr vect operator*(const vect &x, T a) {
friend vect<bool, D> operator!(const vect &x) {
friend constexpr vect<bool, D> operator!(const vect &x) {
friend vect<bool, D> operator&&(const vect &x, const vect &y) {
friend constexpr vect<bool, D> operator&&(const vect &x, const vect &y) {
friend vect<bool, D> operator||(const vect &x, const vect &y) {
friend constexpr vect<bool, D> operator||(const vect &x, const vect &y) {
friend vect<bool, D> operator==(const vect &x, const vect &y) {
friend constexpr vect<bool, D> operator==(const vect &x, const vect &y) {
friend vect<bool, D> operator!=(const vect &x, const vect &y) {
friend constexpr vect<bool, D> operator!=(const vect &x, const vect &y) {
friend vect<bool, D> operator<(const vect &x, const vect &y) {
friend constexpr vect<bool, D> operator<(const vect &x, const vect &y) {
} friend constexpr vect<bool, D> operator>(const vect &x, const vect &y) { return y < x;
friend constexpr vect<bool, D> operator>(const vect &x, const vect &y) {
return y < x;
friend vect<bool, D> operator>(const vect &x, const vect &y) { return y < x; } friend vect<bool, D> operator<=(const vect &x, const vect &y) {
friend vect<bool, D> operator>(const vect &x, const vect &y) { return y < x; }
friend vect<bool, D> operator<=(const vect &x, const vect &y) {
friend constexpr vect<bool, D> operator<=(const vect &x, const vect &y) {
friend vect<bool, D> operator>=(const vect &x, const vect &y) {
friend constexpr vect<bool, D> operator>=(const vect &x, const vect &y) {
vect<U, D> ifelse(const Loop::vect<U, D> &x, const Loop::vect<U, D> &y) const {
vect<U, D> ifelse(const Loop::vect<U, D> &x,
const Loop::vect<U, D> &y) const {
constexpr vect<U, D> ifelse(const Loop::vect<U, D> &x, const Loop::vect<U, D> &y) const {
constexpr vect<U, D> ifelse(const Loop::vect<U, D> &x,
Loop::vect<T, D> max(const Loop::vect<T, D> &x, const Loop::vect<T, D> &y) {
constexpr Loop::vect<T, D> max(const Loop::vect<T, D> &x, const Loop::vect<T, D> &y) {
constexpr Loop::vect<T, D> max(const Loop::vect<T, D> &x,
const Loop::vect<T, D> &y) {
Loop::vect<T, D> min(const Loop::vect<T, D> &x, const Loop::vect<T, D> &y) {
constexpr Loop::vect<T, D> min(const Loop::vect<T, D> &x, const Loop::vect<T, D> &y) {
constexpr Loop::vect<T, D> min(const Loop::vect<T, D> &x,