<commit_before>#ifndef SIMDIFY_VEC3_FLT
#define SIMDIFY_VEC3_FLT

#include "../vec3.hpp"
#include "../util/inline.hpp"

#ifdef SIMDIFY_SSE

#define INL SIMDIFY_FORCE_INLINE

namespace simd {

    template <>
    struct basic_vec3<flt> {
        using mm_t = flt::mm_t;
        using fp_t = flt::fp_t;
        using bitmask_t = flt::bitmask_t;

        flt x, y, z, extra;

        INL basic_vec3() = default;
        INL basic_vec3(const basic_vec3& other) { as_sse() = other.as_sse(); }
        INL basic_vec3& operator=(const basic_vec3& other) { as_sse() = other.as_sse(); return *this; }

        INL explicit basic_vec3(const flt& t) : x(t), y(t), z(t) {}
        INL explicit basic_vec3(fp_t t) : x(t), y(t), z(t) {}
        INL explicit basic_vec3(const sse& w) {}

        INL basic_vec3(const flt& tx, const flt& ty, const flt& tz) :
            x(tx), y(ty), z(tz) {}
        INL basic_vec3(fp_t tx, fp_t ty, fp_t tz) :
            x(tx), y(ty), z(tz) {}

        template <typename S>
        INL explicit basic_vec3(const S& other) : x(other.x), y(other.y), z(other.z) {}

        template <typename S>
        INL basic_vec3& operator=(const S& other) {
            x = other.x; y = other.y; z = other.z;
            return *this;
        }

        INL sse& as_sse() { return reinterpret_cast<sse&>(x); }
        INL const sse& as_sse() const { return reinterpret_cast<const sse&>(x); }
    };

    using vec3f = basic_vec3<flt>;

    template <>
    struct bitwise_not<vec3f> {
        vec3f neg;
        INL explicit bitwise_not(const vec3f& r) : neg(r) {}<commit_msg>Reintroduced operator[] for vec3f, which was removed in the last commit by accident<commit_after>#ifndef SIMDIFY_VEC3_FLT
#define SIMDIFY_VEC3_FLT

#include "../vec3.hpp"
#include "../util/inline.hpp"

#ifdef SIMDIFY_SSE

#define INL SIMDIFY_FORCE_INLINE

namespace simd {

    template <>
    struct basic_vec3<flt> {
        using mm_t = flt::mm_t;
        using fp_t = flt::fp_t;
        using bitmask_t = flt::bitmask_t;

        flt x, y, z, extra;

        INL basic_vec3() = default;
        INL basic_vec3(const basic_vec3& other) { as_sse() = other.as_sse(); }
        INL basic_vec3& operator=(const basic_vec3& other) { as_sse() = other.as_sse(); return *this; }

        INL explicit basic_vec3(const flt& t) : x(t), y(t), z(t) {}
        INL explicit basic_vec3(fp_t t) : x(t), y(t), z(t) {}
        INL explicit basic_vec3(const sse& w) {}

        INL basic_vec3(const flt& tx, const flt& ty, const flt& tz) :
            x(tx), y(ty), z(tz) {}
        INL basic_vec3(fp_t tx, fp_t ty, fp_t tz) :
            x(tx), y(ty), z(tz) {}

        template <typename S>
        INL explicit basic_vec3(const S& other) : x(other.x), y(other.y), z(other.z) {}

        template <typename S>
        INL basic_vec3& operator=(const S& other) {
            x = other.x; y = other.y; z = other.z;
            return *this;
        }

        INL basic_vec3& operator[](std::size_t) { return *this; }
        INL const basic_vec3& operator[](std::size_t) const { return *this; }

        INL sse& as_sse() { return reinterpret_cast<sse&>(x); }
        INL const sse& as_sse() const { return reinterpret_cast<const sse&>(x); }
    };

    using vec3f = basic_vec3<flt>;

    template <>
    struct bitwise_not<vec3f> {
        vec3f neg;
        INL explicit bitwise_not(const vec3f& r) : neg(r) {}
{'fraction_non_alphanumeric': 0.13863434821164647, 'fraction_numerical': 0.013301803133313627, 'mean_word_length': 2.5323590814196244, 'pattern_counts': {'":': 0, '<': 21, '<?xml version=': 0, '>': 21, 'https://': 0, 'lorem ipsum': 0, 'www.': 0, 'xml': 0}, 'pii_count': 0, 'substrings_counts': 0, 'word_list_counts': {'cursed_substrings.json': 0, 'profanity_word_list.json': 0, 'sexual_word_list.json': 0, 'zh_pornsignals.json': 0}}
{'dir': 'git-commits-cleaned', 'id': '2309892', 'n_tokens_mistral': 1339, 'n_tokens_neox': 1290, 'n_words': 318}