// Copyright 2020 Phyronnaz #pragma once #include "CoreMinimal.h" #include "VoxelMinimal.h" #include "VoxelContainers/VoxelStaticArray.h" class FVoxelFastNoiseLUT { public: FVoxelFastNoiseLUT() = default; VOXEL_API void SetSeed(int32 NewSeed); int32 GetSeed() const { return Seed; } protected: TVoxelStaticArray Perm; TVoxelStaticArray Perm12; int32 Seed = 0; protected: uint8 Index2D_12(uint8 offset, int32 x, int32 y) const; uint8 Index3D_12(uint8 offset, int32 x, int32 y, int32 z) const; uint8 Index4D_32(uint8 offset, int32 x, int32 y, int32 z, int32 w) const; uint8 Index2D_256(uint8 offset, int32 x, int32 y) const; uint8 Index3D_256(uint8 offset, int32 x, int32 y, int32 z) const; uint8 Index4D_256(uint8 offset, int32 x, int32 y, int32 z, int32 w) const; v_flt ValCoord2DFast(uint8 offset, int32 x, int32 y) const; v_flt ValCoord3DFast(uint8 offset, int32 x, int32 y, int32 z) const; v_flt GradCoord2D(uint8 offset, int32 x, int32 y, v_flt xd, v_flt yd) const; v_flt GradCoord2D(uint8 offset, int32 x, int32 y, v_flt xd, v_flt yd, v_flt& outGradX, v_flt& outGradY) const; v_flt GradCoord3D(uint8 offset, int32 x, int32 y, int32 z, v_flt xd, v_flt yd, v_flt zd) const; v_flt GradCoord3D(uint8 offset, int32 x, int32 y, int32 z, v_flt xd, v_flt yd, v_flt zd, v_flt& outGradX, v_flt& outGradY, v_flt& outGradZ) const; v_flt GradCoord4D(uint8 offset, int32 x, int32 y, int32 z, int32 w, v_flt xd, v_flt yd, v_flt zd, v_flt wd) const; protected: VectorRegister ValCoord2DFast(VectorRegisterInt offset, VectorRegisterInt x, VectorRegisterInt y) const; protected: // Hashing static constexpr int32 X_PRIME = 1619; static constexpr int32 Y_PRIME = 31337; static constexpr int32 Z_PRIME = 6971; static constexpr int32 W_PRIME = 1013; static v_flt ValCoord2D(int32 seed, int32 x, int32 y); static v_flt ValCoord3D(int32 seed, int32 x, int32 y, int32 z); static v_flt ValCoord4D(int32 seed, int32 x, int32 y, int32 z, int32 w); protected: static VectorRegister ValCoord2D(VectorRegisterInt seed, VectorRegisterInt x, VectorRegisterInt y); protected: #if VOXEL_DEBUG || PLATFORM_MAC // Remove this if you're working on OSX, this is just to work on the epic build servers #define DECLARE_LUT(Name, Size) const TVoxelStaticArray Name = #else #define DECLARE_LUT(Name, Size) static constexpr v_flt Name[Size] = #endif DECLARE_LUT(GRAD_X, 12) { 1, -1, 1, -1, 1, -1, 1, -1, 0, 0, 0, 0 }; DECLARE_LUT(GRAD_Y, 12) { 1, 1, -1, -1, 0, 0, 0, 0, 1, -1, 1, -1 }; DECLARE_LUT(GRAD_Z, 12) { 0, 0, 0, 0, 1, 1, -1, -1, 1, 1, -1, -1 }; DECLARE_LUT(GRAD_4D, 128) { 0, 1, 1, 1, 0, 1, 1, -1, 0, 1, -1, 1, 0, 1, -1, -1, 0, -1, 1, 1, 0, -1, 1, -1, 0, -1, -1, 1, 0, -1, -1, -1, 1, 0, 1, 1, 1, 0, 1, -1, 1, 0, -1, 1, 1, 0, -1, -1, -1, 0, 1, 1, -1, 0, 1, -1, -1, 0, -1, 1, -1, 0, -1, -1, 1, 1, 0, 1, 1, 1, 0, -1, 1, -1, 0, 1, 1, -1, 0, -1, -1, 1, 0, 1, -1, 1, 0, -1, -1, -1, 0, 1, -1, -1, 0, -1, 1, 1, 1, 0, 1, 1, -1, 0, 1, -1, 1, 0, 1, -1, -1, 0, -1, 1, 1, 0, -1, 1, -1, 0, -1, -1, 1, 0, -1, -1, -1, 0 }; DECLARE_LUT(VAL_LUT, 256) { v_flt(0.3490196078), v_flt(0.4352941176), v_flt(-0.4509803922), v_flt(0.6392156863), v_flt(0.5843137255), v_flt(-0.1215686275), v_flt(0.7176470588), v_flt(-0.1058823529), v_flt(0.3960784314), v_flt(0.0431372549), v_flt(-0.03529411765), v_flt(0.3176470588), v_flt(0.7254901961), v_flt(0.137254902), v_flt(0.8588235294), v_flt(-0.8196078431), v_flt(-0.7960784314), v_flt(-0.3333333333), v_flt(-0.6705882353), v_flt(-0.3882352941), v_flt(0.262745098), v_flt(0.3254901961), v_flt(-0.6470588235), v_flt(-0.9215686275), v_flt(-0.5294117647), v_flt(0.5294117647), v_flt(-0.4666666667), v_flt(0.8117647059), v_flt(0.3803921569), v_flt(0.662745098), v_flt(0.03529411765), v_flt(-0.6156862745), v_flt(-0.01960784314), v_flt(-0.3568627451), v_flt(-0.09019607843), v_flt(0.7490196078), v_flt(0.8352941176), v_flt(-0.4039215686), v_flt(-0.7490196078), v_flt(0.9529411765), v_flt(-0.0431372549), v_flt(-0.9294117647), v_flt(-0.6549019608), v_flt(0.9215686275), v_flt(-0.06666666667), v_flt(-0.4431372549), v_flt(0.4117647059), v_flt(-0.4196078431), v_flt(-0.7176470588), v_flt(-0.8117647059), v_flt(-0.2549019608), v_flt(0.4901960784), v_flt(0.9137254902), v_flt(0.7882352941), v_flt(-1.0), v_flt(-0.4745098039), v_flt(0.7960784314), v_flt(0.8509803922), v_flt(-0.6784313725), v_flt(0.4588235294), v_flt(1.0), v_flt(-0.1843137255), v_flt(0.4509803922), v_flt(0.1450980392), v_flt(-0.231372549), v_flt(-0.968627451), v_flt(-0.8588235294), v_flt(0.4274509804), v_flt(0.003921568627), v_flt(-0.003921568627), v_flt(0.2156862745), v_flt(0.5058823529), v_flt(0.7647058824), v_flt(0.2078431373), v_flt(-0.5921568627), v_flt(0.5764705882), v_flt(-0.1921568627), v_flt(-0.937254902), v_flt(0.08235294118), v_flt(-0.08235294118), v_flt(0.9058823529), v_flt(0.8274509804), v_flt(0.02745098039), v_flt(-0.168627451), v_flt(-0.7803921569), v_flt(0.1137254902), v_flt(-0.9450980392), v_flt(0.2), v_flt(0.01960784314), v_flt(0.5607843137), v_flt(0.2705882353), v_flt(0.4431372549), v_flt(-0.9607843137), v_flt(0.6156862745), v_flt(0.9294117647), v_flt(-0.07450980392), v_flt(0.3098039216), v_flt(0.9921568627), v_flt(-0.9137254902), v_flt(-0.2941176471), v_flt(-0.3411764706), v_flt(-0.6235294118), v_flt(-0.7647058824), v_flt(-0.8901960784), v_flt(0.05882352941), v_flt(0.2392156863), v_flt(0.7333333333), v_flt(0.6549019608), v_flt(0.2470588235), v_flt(0.231372549), v_flt(-0.3960784314), v_flt(-0.05098039216), v_flt(-0.2235294118), v_flt(-0.3725490196), v_flt(0.6235294118), v_flt(0.7019607843), v_flt(-0.8274509804), v_flt(0.4196078431), v_flt(0.07450980392), v_flt(0.8666666667), v_flt(-0.537254902), v_flt(-0.5058823529), v_flt(-0.8039215686), v_flt(0.09019607843), v_flt(-0.4823529412), v_flt(0.6705882353), v_flt(-0.7882352941), v_flt(0.09803921569), v_flt(-0.6078431373), v_flt(0.8039215686), v_flt(-0.6), v_flt(-0.3254901961), v_flt(-0.4117647059), v_flt(-0.01176470588), v_flt(0.4823529412), v_flt(0.168627451), v_flt(0.8745098039), v_flt(-0.3647058824), v_flt(-0.1607843137), v_flt(0.568627451), v_flt(-0.9921568627), v_flt(0.9450980392), v_flt(0.5137254902), v_flt(0.01176470588), v_flt(-0.1450980392), v_flt(-0.5529411765), v_flt(-0.5764705882), v_flt(-0.1137254902), v_flt(0.5215686275), v_flt(0.1607843137), v_flt(0.3725490196), v_flt(-0.2), v_flt(-0.7254901961), v_flt(0.631372549), v_flt(0.7098039216), v_flt(-0.568627451), v_flt(0.1294117647), v_flt(-0.3098039216), v_flt(0.7411764706), v_flt(-0.8509803922), v_flt(0.2549019608), v_flt(-0.6392156863), v_flt(-0.5607843137), v_flt(-0.3176470588), v_flt(0.937254902), v_flt(0.9843137255), v_flt(0.5921568627), v_flt(0.6941176471), v_flt(0.2862745098), v_flt(-0.5215686275), v_flt(0.1764705882), v_flt(0.537254902), v_flt(-0.4901960784), v_flt(-0.4588235294), v_flt(-0.2078431373), v_flt(-0.2156862745), v_flt(0.7725490196), v_flt(0.3647058824), v_flt(-0.2392156863), v_flt(0.2784313725), v_flt(-0.8823529412), v_flt(0.8980392157), v_flt(0.1215686275), v_flt(0.1058823529), v_flt(-0.8745098039), v_flt(-0.9843137255), v_flt(-0.7019607843), v_flt(0.9607843137), v_flt(0.2941176471), v_flt(0.3411764706), v_flt(0.1529411765), v_flt(0.06666666667), v_flt(-0.9764705882), v_flt(0.3019607843), v_flt(0.6470588235), v_flt(-0.5843137255), v_flt(0.05098039216), v_flt(-0.5137254902), v_flt(-0.137254902), v_flt(0.3882352941), v_flt(-0.262745098), v_flt(-0.3019607843), v_flt(-0.1764705882), v_flt(-0.7568627451), v_flt(0.1843137255), v_flt(-0.5450980392), v_flt(-0.4980392157), v_flt(-0.2784313725), v_flt(-0.9529411765), v_flt(-0.09803921569), v_flt(0.8901960784), v_flt(-0.2862745098), v_flt(-0.3803921569), v_flt(0.5529411765), v_flt(0.7803921569), v_flt(-0.8352941176), v_flt(0.6862745098), v_flt(0.7568627451), v_flt(0.4980392157), v_flt(-0.6862745098), v_flt(-0.8980392157), v_flt(-0.7725490196), v_flt(-0.7098039216), v_flt(-0.2470588235), v_flt(-0.9058823529), v_flt(0.9764705882), v_flt(0.1921568627), v_flt(0.8431372549), v_flt(-0.05882352941), v_flt(0.3568627451), v_flt(0.6078431373), v_flt(0.5450980392), v_flt(0.4039215686), v_flt(-0.7333333333), v_flt(-0.4274509804), v_flt(0.6), v_flt(0.6784313725), v_flt(-0.631372549), v_flt(-0.02745098039), v_flt(-0.1294117647), v_flt(0.3333333333), v_flt(-0.8431372549), v_flt(0.2235294118), v_flt(-0.3490196078), v_flt(-0.6941176471), v_flt(0.8823529412), v_flt(0.4745098039), v_flt(0.4666666667), v_flt(-0.7411764706), v_flt(-0.2705882353), v_flt(0.968627451), v_flt(0.8196078431), v_flt(-0.662745098), v_flt(-0.4352941176), v_flt(-0.8666666667), v_flt(-0.1529411765), }; DECLARE_LUT(CELL_2D_X, 256) { v_flt(-0.6440658039), v_flt(-0.08028078721), v_flt(0.9983546168), v_flt(0.9869492062), v_flt(0.9284746418), v_flt(0.6051097552), v_flt(-0.794167404), v_flt(-0.3488667991), v_flt(-0.943136526), v_flt(-0.9968171318), v_flt(0.8740961579), v_flt(0.1421139764), v_flt(0.4282553608), v_flt(-0.9986665833), v_flt(0.9996760121), v_flt(-0.06248383632), v_flt(0.7120139305), v_flt(0.8917660409), v_flt(0.1094842955), v_flt(-0.8730880804), v_flt(0.2594811489), v_flt(-0.6690063346), v_flt(-0.9996834972), v_flt(-0.8803608671), v_flt(-0.8166554937), v_flt(0.8955599676), v_flt(-0.9398321388), v_flt(0.07615451399), v_flt(-0.7147270565), v_flt(0.8707354457), v_flt(-0.9580008579), v_flt(0.4905965632), v_flt(0.786775944), v_flt(0.1079711577), v_flt(0.2686638979), v_flt(0.6113487322), v_flt(-0.530770584), v_flt(-0.7837268286), v_flt(-0.8558691039), v_flt(-0.5726093896), v_flt(-0.9830740914), v_flt(0.7087766359), v_flt(0.6807027153), v_flt(-0.08864708788), v_flt(0.6704485923), v_flt(-0.1350735482), v_flt(-0.9381333003), v_flt(0.9756655376), v_flt(0.4231433671), v_flt(-0.4959787385), v_flt(0.1005554325), v_flt(-0.7645857281), v_flt(-0.5859053796), v_flt(-0.9751154306), v_flt(-0.6972258572), v_flt(0.7907012002), v_flt(-0.9109899213), v_flt(-0.9584307894), v_flt(-0.8269529333), v_flt(0.2608264719), v_flt(-0.7773760119), v_flt(0.7606456974), v_flt(-0.8961083758), v_flt(-0.9838134719), v_flt(0.7338893576), v_flt(0.2161226729), v_flt(0.673509891), v_flt(-0.5512056873), v_flt(0.6899744332), v_flt(0.868004831), v_flt(0.5897430311), v_flt(-0.8950444221), v_flt(-0.3595752773), v_flt(0.8209486981), v_flt(-0.2912360132), v_flt(-0.9965011374), v_flt(0.9766994634), v_flt(0.738790822), v_flt(-0.4730947722), v_flt(0.8946479441), v_flt(-0.6943628971), v_flt(-0.6620468182), v_flt(-0.0887255502), v_flt(-0.7512250855), v_flt(-0.5322986898), v_flt(0.5226295385), v_flt(0.2296318375), v_flt(0.7915307344), v_flt(-0.2756485999), v_flt(-0.6900234522), v_flt(0.07090588086), v_flt(0.5981278485), v_flt(0.3033429312), v_flt(-0.7253142797), v_flt(-0.9855874307), v_flt(-0.1761843396), v_flt(-0.6438468325), v_flt(-0.9956136595), v_flt(0.8541580762), v_flt(-0.9999807666), v_flt(-0.02152416253), v_flt(-0.8705983095), v_flt(-0.1197138014), v_flt(-0.992107781), v_flt(-0.9091181546), v_flt(0.788610536), v_flt(-0.994636402), v_flt(0.4211256853), v_flt(0.3110430857), v_flt(-0.4031127839), v_flt(0.7610684239), v_flt(0.7685674467), v_flt(0.152271555), v_flt(-0.9364648723), v_flt(0.1681333739), v_flt(-0.3567427907), v_flt(-0.418445483), v_flt(-0.98774778), v_flt(0.8705250765), v_flt(-0.8911701067), v_flt(-0.7315350966), v_flt(0.6030885658), v_flt(-0.4149130821), v_flt(0.7585339481), v_flt(0.6963196535), v_flt(0.8332685012), v_flt(-0.8086815232), v_flt(0.7518116724), v_flt(-0.3490535894), v_flt(0.6972110903), v_flt(-0.8795676928), v_flt(-0.6442331882), v_flt(0.6610236811), v_flt(-0.9853565782), v_flt(-0.590338458), v_flt(0.09843602117), v_flt(0.5646534882), v_flt(-0.6023259233), v_flt(-0.3539248861), v_flt(0.5132728656), v_flt(0.9380385118), v_flt(-0.7599270056), v_flt(-0.7425936564), v_flt(-0.6679610562), v_flt(-0.3018497816), v_flt(0.814478266), v_flt(0.03777430269), v_flt(-0.7514235086), v_flt(0.9662556939), v_flt(-0.4720194901), v_flt(-0.435054126), v_flt(0.7091901235), v_flt(0.929379209), v_flt(0.9997434357), v_flt(0.8306320299), v_flt(-0.9434019629), v_flt(-0.133133759), v_flt(0.5048413216), v_flt(0.3711995273), v_flt(0.98552091), v_flt(0.7401857005), v_flt(-0.9999981398), v_flt(-0.2144033253), v_flt(0.4808624681), v_flt(-0.413835885), v_flt(0.644229305), v_flt(0.9626648696), v_flt(0.1833665934), v_flt(0.5794129), v_flt(0.01404446873), v_flt(0.4388494993), v_flt(0.5213612322), v_flt(-0.5281609948), v_flt(-0.9745306846), v_flt(-0.9904373013), v_flt(0.9100232252), v_flt(-0.9914057719), v_flt(0.7892627765), v_flt(0.3364421659), v_flt(-0.9416099764), v_flt(0.7802732656), v_flt(0.886302871), v_flt(0.6524471291), v_flt(0.5762186726), v_flt(-0.08987644664), v_flt(-0.2177026782), v_flt(-0.9720345052), v_flt(-0.05722538858), v_flt(0.8105983127), v_flt(0.3410261032), v_flt(0.6452309645), v_flt(-0.7810612152), v_flt(0.9989395718), v_flt(-0.808247815), v_flt(0.6370177929), v_flt(0.5844658772), v_flt(0.2054070861), v_flt(0.055960522), v_flt(-0.995827561), v_flt(0.893409165), v_flt(-0.931516824), v_flt(0.328969469), v_flt(-0.3193837488), v_flt(0.7314755657), v_flt(-0.7913517714), v_flt(-0.2204109786), v_flt(0.9955900414), v_flt(-0.7112353139), v_flt(-0.7935008741), v_flt(-0.9961918204), v_flt(-0.9714163995), v_flt(-0.9566188669), v_flt(0.2748495632), v_flt(-0.4681743221), v_flt(-0.9614449642), v_flt(0.585194072), v_flt(0.4532946061), v_flt(-0.9916113176), v_flt(0.942479587), v_flt(-0.9813704753), v_flt(-0.6538429571), v_flt(0.2923335053), v_flt(-0.2246660704), v_flt(-0.1800781949), v_flt(-0.9581216256), v_flt(0.552215082), v_flt(-0.9296791922), v_flt(0.643183699), v_flt(0.9997325981), v_flt(-0.4606920354), v_flt(-0.2148721265), v_flt(0.3482070809), v_flt(0.3075517813), v_flt(0.6274756393), v_flt(0.8910881765), v_flt(-0.6397771309), v_flt(-0.4479080125), v_flt(-0.5247665011), v_flt(-0.8386507094), v_flt(0.3901291416), v_flt(0.1458336921), v_flt(0.01624613149), v_flt(-0.8273199879), v_flt(0.5611100679), v_flt(-0.8380219841), v_flt(-0.9856122234), v_flt(-0.861398618), v_flt(0.6398413916), v_flt(0.2694510795), v_flt(0.4327334514), v_flt(-0.9960265354), v_flt(-0.939570655), v_flt(-0.8846996446), v_flt(0.7642113189), v_flt(-0.7002080528), v_flt(0.664508256), }; DECLARE_LUT(CELL_2D_Y, 256) { v_flt(0.7649700911), v_flt(0.9967722885), v_flt(0.05734160033), v_flt(-0.1610318741), v_flt(0.371395799), v_flt(-0.7961420628), v_flt(0.6076990492), v_flt(-0.9371723195), v_flt(0.3324056156), v_flt(0.07972205329), v_flt(-0.4857529277), v_flt(-0.9898503007), v_flt(0.9036577593), v_flt(0.05162417479), v_flt(-0.02545330525), v_flt(-0.998045976), v_flt(-0.7021653386), v_flt(-0.4524967717), v_flt(-0.9939885256), v_flt(-0.4875625128), v_flt(-0.9657481729), v_flt(-0.7432567015), v_flt(0.02515761212), v_flt(0.4743044842), v_flt(0.5771254669), v_flt(0.4449408324), v_flt(0.3416365773), v_flt(0.9970960285), v_flt(0.6994034849), v_flt(0.4917517499), v_flt(0.286765333), v_flt(0.8713868327), v_flt(0.6172387009), v_flt(0.9941540269), v_flt(0.9632339851), v_flt(-0.7913613129), v_flt(0.847515538), v_flt(0.6211056739), v_flt(0.5171924952), v_flt(-0.8198283277), v_flt(-0.1832084353), v_flt(0.7054329737), v_flt(0.7325597678), v_flt(0.9960630973), v_flt(0.7419559859), v_flt(0.9908355749), v_flt(-0.346274329), v_flt(0.2192641299), v_flt(-0.9060627411), v_flt(-0.8683346653), v_flt(0.9949314574), v_flt(-0.6445220433), v_flt(-0.8103794704), v_flt(-0.2216977607), v_flt(0.7168515217), v_flt(0.612202264), v_flt(-0.412428616), v_flt(0.285325116), v_flt(0.56227115), v_flt(-0.9653857009), v_flt(-0.6290361962), v_flt(0.6491672535), v_flt(0.443835306), v_flt(-0.1791955706), v_flt(-0.6792690269), v_flt(-0.9763662173), v_flt(0.7391782104), v_flt(0.8343693968), v_flt(0.7238337389), v_flt(0.4965557504), v_flt(0.8075909592), v_flt(-0.4459769977), v_flt(-0.9331160806), v_flt(-0.5710019572), v_flt(0.9566512346), v_flt(-0.08357920318), v_flt(0.2146116448), v_flt(-0.6739348049), v_flt(0.8810115417), v_flt(0.4467718167), v_flt(-0.7196250184), v_flt(-0.749462481), v_flt(0.9960561112), v_flt(0.6600461127), v_flt(-0.8465566164), v_flt(-0.8525598897), v_flt(-0.9732775654), v_flt(0.6111293616), v_flt(-0.9612584717), v_flt(-0.7237870097), v_flt(-0.9974830104), v_flt(-0.8014006968), v_flt(0.9528814544), v_flt(-0.6884178931), v_flt(-0.1691668301), v_flt(0.9843571905), v_flt(0.7651544003), v_flt(-0.09355982605), v_flt(-0.5200134429), v_flt(-0.006202125807), v_flt(-0.9997683284), v_flt(0.4919944954), v_flt(-0.9928084436), v_flt(-0.1253880012), v_flt(-0.4165383308), v_flt(-0.6148930171), v_flt(-0.1034332049), v_flt(-0.9070022917), v_flt(-0.9503958117), v_flt(0.9151503065), v_flt(-0.6486716073), v_flt(0.6397687707), v_flt(-0.9883386937), v_flt(0.3507613761), v_flt(0.9857642561), v_flt(-0.9342026446), v_flt(-0.9082419159), v_flt(0.1560587169), v_flt(0.4921240607), v_flt(-0.453669308), v_flt(0.6818037859), v_flt(0.7976742329), v_flt(0.9098610522), v_flt(0.651633524), v_flt(0.7177318024), v_flt(-0.5528685241), v_flt(0.5882467118), v_flt(0.6593778956), v_flt(0.9371027648), v_flt(-0.7168658839), v_flt(-0.4757737632), v_flt(0.7648291307), v_flt(0.7503650398), v_flt(0.1705063456), v_flt(-0.8071558121), v_flt(-0.9951433815), v_flt(-0.8253280792), v_flt(-0.7982502628), v_flt(0.9352738503), v_flt(0.8582254747), v_flt(-0.3465310238), v_flt(0.65000842), v_flt(-0.6697422351), v_flt(0.7441962291), v_flt(-0.9533555), v_flt(0.5801940659), v_flt(-0.9992862963), v_flt(-0.659820211), v_flt(0.2575848092), v_flt(0.881588113), v_flt(-0.9004043022), v_flt(-0.7050172826), v_flt(0.369126382), v_flt(-0.02265088836), v_flt(0.5568217228), v_flt(-0.3316515286), v_flt(0.991098079), v_flt(-0.863212164), v_flt(-0.9285531277), v_flt(0.1695539323), v_flt(-0.672402505), v_flt(-0.001928841934), v_flt(0.9767452145), v_flt(-0.8767960349), v_flt(0.9103515037), v_flt(-0.7648324016), v_flt(0.2706960452), v_flt(-0.9830446035), v_flt(0.8150341657), v_flt(-0.9999013716), v_flt(-0.8985605806), v_flt(0.8533360801), v_flt(0.8491442537), v_flt(-0.2242541966), v_flt(-0.1379635899), v_flt(-0.4145572694), v_flt(0.1308227633), v_flt(0.6140555916), v_flt(0.9417041303), v_flt(-0.336705587), v_flt(-0.6254387508), v_flt(0.4631060578), v_flt(-0.7578342456), v_flt(-0.8172955655), v_flt(-0.9959529228), v_flt(-0.9760151351), v_flt(0.2348380732), v_flt(-0.9983612848), v_flt(0.5856025746), v_flt(-0.9400538266), v_flt(-0.7639875669), v_flt(0.6244544645), v_flt(0.04604054566), v_flt(0.5888424828), v_flt(0.7708490978), v_flt(-0.8114182882), v_flt(0.9786766212), v_flt(-0.9984329822), v_flt(0.09125496582), v_flt(-0.4492438803), v_flt(-0.3636982357), v_flt(0.9443405575), v_flt(-0.9476254645), v_flt(-0.6818676535), v_flt(-0.6113610831), v_flt(0.9754070948), v_flt(-0.0938108173), v_flt(-0.7029540015), v_flt(-0.6085691109), v_flt(-0.08718862881), v_flt(-0.237381926), v_flt(0.2913423132), v_flt(0.9614872426), v_flt(0.8836361266), v_flt(-0.2749974196), v_flt(-0.8108932717), v_flt(-0.8913607575), v_flt(0.129255541), v_flt(-0.3342637104), v_flt(-0.1921249337), v_flt(-0.7566302845), v_flt(-0.9563164339), v_flt(-0.9744358146), v_flt(0.9836522982), v_flt(-0.2863615732), v_flt(0.8337016872), v_flt(0.3683701937), v_flt(0.7657119102), v_flt(-0.02312427772), v_flt(0.8875600535), v_flt(0.976642191), v_flt(0.9374176384), v_flt(0.9515313457), v_flt(-0.7786361937), v_flt(-0.4538302125), v_flt(-0.7685604874), v_flt(-0.8940796454), v_flt(-0.8512462154), v_flt(0.5446696133), v_flt(0.9207601495), v_flt(-0.9893091197), v_flt(-0.9998680229), v_flt(0.5617309299), v_flt(-0.8277411985), v_flt(0.545636467), v_flt(0.1690223212), v_flt(-0.5079295433), v_flt(0.7685069899), v_flt(-0.9630140787), v_flt(0.9015219132), v_flt(0.08905695279), v_flt(-0.3423550559), v_flt(-0.4661614943), v_flt(-0.6449659371), v_flt(0.7139388509), v_flt(0.7472809229), }; DECLARE_LUT(CELL_3D_X, 256) { v_flt(0.3752498686), v_flt(0.687188096), v_flt(0.2248135212), v_flt(0.6692006647), v_flt(-0.4376476931), v_flt(0.6139972552), v_flt(0.9494563929), v_flt(0.8065108882), v_flt(-0.2218812853), v_flt(0.8484661167), v_flt(0.5551817596), v_flt(0.2133903499), v_flt(0.5195126593), v_flt(-0.6440141975), v_flt(-0.5192897331), v_flt(-0.3697654077), v_flt(-0.07927779647), v_flt(0.4187757321), v_flt(-0.750078731), v_flt(0.6579554632), v_flt(-0.6859803838), v_flt(-0.6878407087), v_flt(0.9490848347), v_flt(0.5795829433), v_flt(-0.5325976529), v_flt(-0.1363699466), v_flt(0.417665879), v_flt(-0.9108236468), v_flt(0.4438605427), v_flt(0.819294887), v_flt(-0.4033873915), v_flt(-0.2817317705), v_flt(0.3969665622), v_flt(0.5323450134), v_flt(-0.6833017297), v_flt(0.3881436661), v_flt(-0.7119144767), v_flt(-0.2306979838), v_flt(-0.9398873022), v_flt(0.1701906676), v_flt(-0.4261839496), v_flt(-0.003712295499), v_flt(-0.734675004), v_flt(-0.3195046015), v_flt(0.7345307424), v_flt(0.9766246496), v_flt(-0.02003735175), v_flt(-0.4824156342), v_flt(0.4245892007), v_flt(0.9072427669), v_flt(0.593346808), v_flt(-0.8911762541), v_flt(-0.7657571834), v_flt(-0.5268198896), v_flt(-0.8801903279), v_flt(-0.6296409617), v_flt(-0.09492481344), v_flt(-0.4920470525), v_flt(0.7307666154), v_flt(-0.2514540636), v_flt(-0.3356210347), v_flt(-0.3522787894), v_flt(0.87847885), v_flt(-0.7424096346), v_flt(0.5757585274), v_flt(0.4519299338), v_flt(0.6420368628), v_flt(-0.1128478447), v_flt(0.499874883), v_flt(0.5291681739), v_flt(-0.5098837195), v_flt(0.5639583502), v_flt(-0.8456386526), v_flt(-0.9657134875), v_flt(-0.576437342), v_flt(-0.5666013014), v_flt(0.5667702405), v_flt(-0.481316582), v_flt(0.7313389916), v_flt(-0.3805628566), v_flt(-0.6512675909), v_flt(-0.2787156951), v_flt(0.8648059114), v_flt(-0.9730216276), v_flt(-0.8335820906), v_flt(0.2673159641), v_flt(0.231150148), v_flt(0.01286214638), v_flt(0.6774953261), v_flt(0.6542885718), v_flt(-0.02545450161), v_flt(0.2101238586), v_flt(-0.5572105885), v_flt(0.813705672), v_flt(-0.7546026951), v_flt(-0.2502500006), v_flt(-0.9979289381), v_flt(0.7024037039), v_flt(0.08990874624), v_flt(0.8170812432), v_flt(0.4226980265), v_flt(-0.2442153475), v_flt(-0.9183326731), v_flt(0.6068222411), v_flt(0.818676691), v_flt(-0.7236735282), v_flt(-0.5383903295), v_flt(-0.6269337242), v_flt(-0.0939331121), v_flt(0.9203878539), v_flt(-0.7256396824), v_flt(0.6292431149), v_flt(0.4234156978), v_flt(0.006685688024), v_flt(-0.2598694113), v_flt(0.6408036421), v_flt(0.05899871622), v_flt(0.7090281418), v_flt(-0.5905222072), v_flt(0.3128214264), v_flt(-0.691925826), v_flt(0.3634019349), v_flt(-0.6772511147), v_flt(-0.3204583896), v_flt(-0.3906740409), v_flt(-0.3342190395), v_flt(-0.517779592), v_flt(-0.6817711267), v_flt(0.6422383105), v_flt(0.4388482478), v_flt(0.2968562611), v_flt(-0.2019778353), v_flt(0.6014865048), v_flt(0.9519280722), v_flt(0.3398889569), v_flt(0.8179709354), v_flt(0.2365522154), v_flt(0.3262175096), v_flt(-0.8060715954), v_flt(-0.2068642503), v_flt(0.6208057279), v_flt(-0.5274282502), v_flt(-0.3722334928), v_flt(-0.8923412971), v_flt(0.5341834201), v_flt(-0.3663701513), v_flt(-0.6114600319), v_flt(0.5026307556), v_flt(0.8396151729), v_flt(0.9245042467), v_flt(-0.7994843957), v_flt(-0.5357200589), v_flt(-0.6283359739), v_flt(-0.61351886), v_flt(-0.875632008), v_flt(-0.5278879423), v_flt(0.9087491985), v_flt(-0.03500215466), v_flt(-0.261365798), v_flt(-0.579523541), v_flt(-0.3765052689), v_flt(-0.74398252), v_flt(0.4257318052), v_flt(-0.1214508921), v_flt(0.8561809753), v_flt(0.6802835104), v_flt(-0.5452131039), v_flt(-0.1997156478), v_flt(0.4562348357), v_flt(-0.811704301), v_flt(0.67793962), v_flt(-0.9237819106), v_flt(0.6973511259), v_flt(-0.5189506), v_flt(0.5517320032), v_flt(-0.396710831), v_flt(0.5493762815), v_flt(-0.2507853002), v_flt(0.4788634005), v_flt(0.387333516), v_flt(-0.2176515694), v_flt(0.6749832419), v_flt(0.2148283022), v_flt(-0.7521815872), v_flt(0.4697000159), v_flt(0.7890593699), v_flt(-0.7606162952), v_flt(0.01083397843), v_flt(0.5254091908), v_flt(-0.6748025877), v_flt(0.751091524), v_flt(0.05259056135), v_flt(0.01889481232), v_flt(-0.6037423727), v_flt(-0.6542965129), v_flt(0.08873301081), v_flt(-0.6191345671), v_flt(0.4331858488), v_flt(-0.3858351946), v_flt(-0.1429059747), v_flt(0.4118221036), v_flt(-0.6247153214), v_flt(-0.611423014), v_flt(0.5542939606), v_flt(-0.9432768808), v_flt(-0.4567870451), v_flt(-0.7349133547), v_flt(0.399304489), v_flt(-0.7474927672), v_flt(0.02589419753), v_flt(0.783915821), v_flt(0.6138668752), v_flt(0.4276376047), v_flt(-0.4347886353), v_flt(0.02947841302), v_flt(-0.833742746), v_flt(0.3817221742), v_flt(-0.8743368359), v_flt(-0.3823443796), v_flt(-0.6829243811), v_flt(-0.3681903049), v_flt(-0.367626833), v_flt(-0.434583373), v_flt(0.235891995), v_flt(-0.6874880269), v_flt(-0.5115661773), v_flt(-0.5534962601), v_flt(0.5632777056), v_flt(0.686191532), v_flt(-0.05095871588), v_flt(-0.06865785057), v_flt(-0.5975288531), v_flt(-0.6429790056), v_flt(-0.3729361548), v_flt(0.2237917666), v_flt(0.6046773225), v_flt(-0.5041542295), v_flt(-0.03972191174), v_flt(0.7028828406), v_flt(-0.5560856498), v_flt(0.5898328456), v_flt(-0.9308076766), v_flt(0.4617069864), v_flt(0.3190983137), v_flt(0.9116567753), v_flt(-0.45029554), v_flt(0.3346334459), v_flt(0.8525005645), v_flt(0.2528483381), v_flt(-0.8306630147), v_flt(-0.6880390622), v_flt(0.7448684026), v_flt(-0.1963355843), v_flt(-0.5900257974), v_flt(0.9097057294), v_flt(-0.2509196808), }; DECLARE_LUT(CELL_3D_Y, 256) { v_flt(-0.6760585049), v_flt(-0.09136176499), v_flt(0.1681325679), v_flt(-0.6688468686), v_flt(-0.4822753902), v_flt(-0.7891068824), v_flt(-0.1877509944), v_flt(0.548470914), v_flt(-0.463339443), v_flt(-0.4050542082), v_flt(0.3218158513), v_flt(0.2546493823), v_flt(-0.3753271935), v_flt(0.4745384887), v_flt(0.481254652), v_flt(-0.8934416489), v_flt(-0.6737085076), v_flt(0.7469917228), v_flt(0.3826230411), v_flt(0.6751013678), v_flt(-0.7248119515), v_flt(-0.3224276742), v_flt(-0.02076190936), v_flt(-0.6404268166), v_flt(-0.5292028444), v_flt(0.7151414636), v_flt(-0.6144655059), v_flt(-0.369912124), v_flt(0.6942067212), v_flt(-0.4481558248), v_flt(-0.6366894559), v_flt(0.5956568471), v_flt(0.564274539), v_flt(0.7145584688), v_flt(0.6871918316), v_flt(0.5657918509), v_flt(-0.6275978114), v_flt(0.4146983062), v_flt(0.2638993789), v_flt(-0.792633138), v_flt(0.5706133514), v_flt(0.8606546462), v_flt(0.6490900316), v_flt(-0.8242699196), v_flt(0.6765819124), v_flt(0.1959534069), v_flt(-0.8426769757), v_flt(-0.5917672797), v_flt(0.7517364266), v_flt(0.03252559226), v_flt(0.0883617105), v_flt(0.4475064813), v_flt(-0.1418643552), v_flt(0.7343428473), v_flt(0.3870192548), v_flt(-0.7716703522), v_flt(0.4839898327), v_flt(0.7437439055), v_flt(-0.5989573348), v_flt(-0.8357068955), v_flt(0.6086049038), v_flt(0.9194627258), v_flt(0.4718297238), v_flt(-0.2650335884), v_flt(-0.6470352599), v_flt(-0.5555181303), v_flt(0.1222351235), v_flt(0.7802044684), v_flt(-0.8636947022), v_flt(-0.2341352163), v_flt(0.683030874), v_flt(-0.5005858287), v_flt(0.2334616211), v_flt(0.2576877608), v_flt(0.6666816727), v_flt(-0.7663996863), v_flt(0.794201982), v_flt(0.6189308788), v_flt(0.6071033261), v_flt(-0.4206058253), v_flt(-0.3957336915), v_flt(-0.8170257484), v_flt(-0.1043240417), v_flt(0.0002167596213), v_flt(0.1816339018), v_flt(-0.6838094939), v_flt(-0.2495341969), v_flt(-0.7116756954), v_flt(-0.03361673621), v_flt(-0.3350836431), v_flt(0.2137186039), v_flt(0.2557996786), v_flt(0.7490117093), v_flt(0.4942936549), v_flt(-0.352686853), v_flt(-0.3952445435), v_flt(-0.0459964767), v_flt(-0.7115787471), v_flt(0.08022899756), v_flt(0.5362268157), v_flt(-0.8258613686), v_flt(0.1114171723), v_flt(0.3882823051), v_flt(-0.7915404457), v_flt(0.3250957662), v_flt(0.6401346464), v_flt(-0.2662724517), v_flt(-0.6727907114), v_flt(-0.994730818), v_flt(-0.3596358977), v_flt(0.2344610069), v_flt(-0.6645215546), v_flt(-0.7107590611), v_flt(-0.4646617327), v_flt(0.6717191355), v_flt(0.5101893498), v_flt(0.1185768238), v_flt(0.236005093), v_flt(-0.7811024061), v_flt(0.5089325193), v_flt(0.6073187658), v_flt(-0.7930732557), v_flt(-0.6822767155), v_flt(0.3201532885), v_flt(0.7545302807), v_flt(0.1072664448), v_flt(0.6784033173), v_flt(-0.6595924967), v_flt(0.7276509498), v_flt(0.5586689436), v_flt(-0.6498636788), v_flt(0.6789333174), v_flt(0.7105966551), v_flt(-0.2872214155), v_flt(0.496746217), v_flt(-0.3880337977), v_flt(0.7324070604), v_flt(-0.9326634749), v_flt(-0.5867839255), v_flt(0.8003043651), v_flt(-0.1631882481), v_flt(-0.6796374681), v_flt(-0.8066678503), v_flt(0.4238177418), v_flt(0.7715863549), v_flt(0.5455367347), v_flt(-0.03205115397), v_flt(-0.6005545066), v_flt(-0.5423640002), v_flt(0.3569205906), v_flt(-0.582071752), v_flt(0.6407354361), v_flt(0.7777142984), v_flt(-0.09956428618), v_flt(0.1100002681), v_flt(0.8136349123), v_flt(0.2923431904), v_flt(0.9735794425), v_flt(0.8324974864), v_flt(-0.6179617717), v_flt(-0.9248386523), v_flt(-0.6448780771), v_flt(-0.5274402761), v_flt(-0.7862170565), v_flt(0.2682099744), v_flt(-0.5848777694), v_flt(-0.6364561467), v_flt(-0.7167402514), v_flt(-0.8677012494), v_flt(0.4205286707), v_flt(-0.7007832749), v_flt(0.243272451), v_flt(-0.1899846085), v_flt(-0.6146124977), v_flt(-0.8093357692), v_flt(-0.03545096987), v_flt(-0.7191590868), v_flt(0.7478645848), v_flt(0.3623517328), v_flt(0.8436992512), v_flt(-0.2445711729), v_flt(0.6897356637), v_flt(-0.1708070787), v_flt(0.4639272368), v_flt(-0.7917186656), v_flt(0.02980025428), v_flt(0.6334156172), v_flt(-0.9815544807), v_flt(-0.2307217304), v_flt(0.1080823318), v_flt(0.5167601798), v_flt(-0.845120016), v_flt(0.441572562), v_flt(0.5876789172), v_flt(-0.6365908737), v_flt(0.68350166), v_flt(0.5849723959), v_flt(0.1164114357), v_flt(-0.7379813884), v_flt(-0.9613237178), v_flt(-0.9071943084), v_flt(-0.7682111105), v_flt(0.639074459), v_flt(-0.619358298), v_flt(0.2807257131), v_flt(-0.01800868791), v_flt(0.3776607289), v_flt(0.7207567823), v_flt(0.5536661486), v_flt(-0.9974053117), v_flt(-0.02047200006), v_flt(-0.6739453804), v_flt(-0.5607471297), v_flt(0.8815553192), v_flt(0.8275977415), v_flt(0.3928902456), v_flt(0.550991396), v_flt(0.4247623676), v_flt(-0.3436948871), v_flt(-0.3653537677), v_flt(0.3181702902), v_flt(-0.6067173171), v_flt(-0.8984128477), v_flt(0.4220839766), v_flt(0.7238407199), v_flt(-0.7766913695), v_flt(0.6460037842), v_flt(0.2544775664), v_flt(0.6488840578), v_flt(0.805016833), v_flt(-0.9183807036), v_flt(0.4144046357), v_flt(0.270587208), v_flt(-0.8813684494), v_flt(0.6985971877), v_flt(-0.7795603017), v_flt(-0.8624480731), v_flt(0.5532697017), v_flt(0.711179521), v_flt(-0.7798160574), v_flt(0.5225859041), v_flt(0.1261859368), v_flt(0.3398033582), v_flt(-0.7472173667), v_flt(-0.4032647119), v_flt(-0.4246578154), v_flt(0.8481212377), v_flt(-0.2144838537), v_flt(0.3431714491), v_flt(0.5310188231), v_flt(0.6682978632), v_flt(0.3110433206), v_flt(0.9263293599), v_flt(-0.6155600569), v_flt(0.07169784399), v_flt(0.8985888773), }; DECLARE_LUT(CELL_3D_Z, 256) { v_flt(-0.6341391283), v_flt(-0.7207118346), v_flt(0.9597866014), v_flt(0.3237504235), v_flt(-0.7588642466), v_flt(-0.01782410481), v_flt(0.2515593809), v_flt(0.2207257205), v_flt(-0.8579541106), v_flt(0.3406410681), v_flt(0.7669470462), v_flt(-0.9431957648), v_flt(0.7676171537), v_flt(-0.6000491115), v_flt(-0.7062096948), v_flt(0.2550207115), v_flt(0.7347325213), v_flt(0.5163625202), v_flt(-0.5394270162), v_flt(0.3336656285), v_flt(-0.0638635111), v_flt(-0.6503195787), v_flt(0.3143356798), v_flt(-0.5039217245), v_flt(0.6605180464), v_flt(-0.6855479011), v_flt(-0.6693185756), v_flt(0.1832083647), v_flt(-0.5666258437), v_flt(0.3576482138), v_flt(-0.6571949095), v_flt(-0.7522101635), v_flt(-0.7238865886), v_flt(0.4538887323), v_flt(0.2467106257), v_flt(0.7274778869), v_flt(0.3151170655), v_flt(-0.8802293764), v_flt(-0.2167232729), v_flt(0.5854637865), v_flt(0.7019741052), v_flt(0.5091756071), v_flt(0.1973189533), v_flt(0.46743546), v_flt(0.05197599597), v_flt(0.088354718), v_flt(0.5380464843), v_flt(-0.6458224544), v_flt(-0.5045952393), v_flt(0.419347884), v_flt(0.8000823542), v_flt(-0.07445020656), v_flt(-0.6272881641), v_flt(-0.428020311), v_flt(-0.2747382083), v_flt(-0.08987283726), v_flt(0.8699098354), v_flt(0.4524761885), v_flt(-0.3274603257), v_flt(0.4882262167), v_flt(-0.7189983256), v_flt(0.1746079907), v_flt(0.0751772698), v_flt(-0.6152927202), v_flt(0.4998474673), v_flt(-0.6979677227), v_flt(0.7568667263), v_flt(-0.6152612058), v_flt(0.06447140991), v_flt(-0.8155744872), v_flt(-0.5229602449), v_flt(0.6567836838), v_flt(-0.4799905631), v_flt(0.03153534591), v_flt(0.4724992466), v_flt(-0.3026458097), v_flt(-0.2191225827), v_flt(-0.620692287), v_flt(0.3107552588), v_flt(0.8235670294), v_flt(0.6474915988), v_flt(-0.5047637941), v_flt(0.4911488878), v_flt(-0.2307138167), v_flt(-0.5216800015), v_flt(0.6789305939), v_flt(0.9403734863), v_flt(0.702390397), v_flt(0.7347584625), v_flt(0.6779567958), v_flt(0.9765635805), v_flt(-0.9436177661), v_flt(-0.358465925), v_flt(-0.3058706624), v_flt(0.5533414464), v_flt(-0.8838306897), v_flt(0.04496841812), v_flt(0.01687374963), v_flt(-0.9927133148), v_flt(-0.211752318), v_flt(0.3732015249), v_flt(0.9632990593), v_flt(-0.07682417004), v_flt(-0.07232213047), v_flt(0.4733721775), v_flt(0.2579229713), v_flt(0.7995216286), v_flt(0.3928189967), v_flt(0.04107517667), v_flt(0.1534542912), v_flt(0.6468965045), v_flt(0.4030684878), v_flt(-0.5617300988), v_flt(-0.885463029), v_flt(0.693729985), v_flt(-0.5736527866), v_flt(-0.9911905409), v_flt(-0.66451538), v_flt(0.2028855685), v_flt(0.8019541421), v_flt(-0.3903877149), v_flt(-0.4888495114), v_flt(-0.2753714057), v_flt(-0.8915202143), v_flt(0.5273119089), v_flt(0.9363714773), v_flt(-0.5212228249), v_flt(-0.31642672), v_flt(0.2409440761), v_flt(-0.703776404), v_flt(-0.6996810411), v_flt(-0.7058714505), v_flt(-0.3650566783), v_flt(0.1064744278), v_flt(0.7985729102), v_flt(0.424680257), v_flt(-0.6384535592), v_flt(0.1540161646), v_flt(-0.07702731943), v_flt(-0.5627789132), v_flt(-0.7667919169), v_flt(-0.509815999), v_flt(0.4590525092), v_flt(0.1552595611), v_flt(0.345402042), v_flt(0.7537656024), v_flt(0.7906259247), v_flt(-0.6218493452), v_flt(0.02979350071), v_flt(-0.1337893489), v_flt(-0.1483818606), v_flt(0.549965562), v_flt(0.01882482408), v_flt(-0.7833783002), v_flt(0.4702855809), v_flt(0.2435827372), v_flt(0.2978428332), v_flt(0.2256499906), v_flt(0.4885036897), v_flt(0.5312962584), v_flt(0.05401156992), v_flt(0.1749922158), v_flt(-0.7352273018), v_flt(0.6058980284), v_flt(0.4416079111), v_flt(0.4417378638), v_flt(0.5455879807), v_flt(-0.6681295324), v_flt(0.1973431441), v_flt(0.4053292055), v_flt(0.2220375492), v_flt(0.2957118467), v_flt(0.6910913512), v_flt(0.5940890106), v_flt(-0.2014135283), v_flt(-0.9172588213), v_flt(-0.4254361401), v_flt(-0.6146586825), v_flt(-0.7996193253), v_flt(-0.3716777111), v_flt(-0.9448876842), v_flt(-0.2620349924), v_flt(0.9615995749), v_flt(-0.4679683524), v_flt(0.3905937144), v_flt(0.613593722), v_flt(0.1422937358), v_flt(0.1908754211), v_flt(0.8189704912), v_flt(-0.7300408736), v_flt(-0.4108776451), v_flt(-0.5319834504), v_flt(-0.8970265651), v_flt(-0.5386359045), v_flt(0.4082255906), v_flt(0.7245356676), v_flt(0.5239080873), v_flt(-0.8937552226), v_flt(-0.553637673), v_flt(0.2354455182), v_flt(-0.0860293075), v_flt(-0.1399373318), v_flt(-0.4666323327), v_flt(0.5560157407), v_flt(0.1772619533), v_flt(-0.8893937725), v_flt(-0.5632714576), v_flt(-0.5666264959), v_flt(-0.3670263736), v_flt(-0.06717242579), v_flt(0.6205295181), v_flt(-0.4110536264), v_flt(0.7090054553), v_flt(0.183899597), v_flt(-0.5605470555), v_flt(0.3879565548), v_flt(0.7420893903), v_flt(-0.2347595118), v_flt(-0.8577217497), v_flt(0.6325590203), v_flt(-0.8736152276), v_flt(0.7048011129), v_flt(-0.06317948268), v_flt(0.8753285574), v_flt(-0.05843650473), v_flt(-0.3674922622), v_flt(-0.5256624401), v_flt(0.7861039337), v_flt(0.3287714416), v_flt(0.5910593099), v_flt(-0.3896960134), v_flt(0.6864605361), v_flt(0.7164918431), v_flt(-0.290014277), v_flt(-0.6796169617), v_flt(0.1632515592), v_flt(0.04485347486), v_flt(0.8320545697), v_flt(0.01339408056), v_flt(-0.2874989857), v_flt(0.615630723), v_flt(0.3430367014), v_flt(0.8193658136), v_flt(-0.5829600957), v_flt(0.07911697781), v_flt(0.7854296063), v_flt(-0.4107442306), v_flt(0.4766964066), v_flt(-0.9045999527), v_flt(-0.1673856787), v_flt(0.2828077348), v_flt(-0.5902737632), v_flt(-0.321506229), v_flt(-0.5224513133), v_flt(-0.4090169985), v_flt(-0.3599685311), }; #undef DECLARE_LUT };