From 80cfe1eb633efb58a65b58e0e7043089815e28c6 Mon Sep 17 00:00:00 2001
From: ArmarX User <armarx@kit.edu>
Date: Wed, 3 Jul 2019 16:59:56 +0200
Subject: [PATCH] torque estimation and init torque controller for imagine
 gripper

---
 .../units/RobotUnit/BasicControllers.cpp      |  15 +-
 .../KITGripperEtherCAT/CMakeLists.txt         |   2 +
 .../JointPWMTorqueController.cpp              | 103 +++
 .../JointPWMTorqueController.h                |  42 ++
 .../JointPWMVelocityController.cpp            |   9 +-
 .../KITGripperBasisBoard.cpp                  |  10 +
 .../KITGripperBasisBoard.h                    |   2 +
 .../KITGripperBasisBoardData.cpp              |   5 +
 .../KITGripperBasisBoardData.h                |   3 +
 .../KITGripperBasisBoardSlave.h               |  16 -
 .../Misc/TorqueEstimation.cpp                 |  73 +-
 .../Misc/TorqueEstimation.h                   |   4 +-
 .../Misc/TorqueEstimationWeights.h            | 650 ++++++++++++++----
 13 files changed, 720 insertions(+), 214 deletions(-)
 create mode 100644 source/RobotAPI/libraries/KITGripperEtherCAT/KITGripperBasisBoard/JointController/JointPWMTorqueController.cpp
 create mode 100644 source/RobotAPI/libraries/KITGripperEtherCAT/KITGripperBasisBoard/JointController/JointPWMTorqueController.h

diff --git a/source/RobotAPI/components/units/RobotUnit/BasicControllers.cpp b/source/RobotAPI/components/units/RobotUnit/BasicControllers.cpp
index 0d14dfb44..950db1b8c 100644
--- a/source/RobotAPI/components/units/RobotUnit/BasicControllers.cpp
+++ b/source/RobotAPI/components/units/RobotUnit/BasicControllers.cpp
@@ -327,27 +327,30 @@ namespace armarx
         // 3. we need to decelerate               (other cases)
         //handle case 1
         const float curverror = targetV - currentV;
+
         if (std::abs(curverror) < directSetVLimit)
         {
             return targetV;
         }
-
         //handle case 2 + 3
         const bool accelerate = sign(targetV) == sign(currentV) &&     // v in same direction
                                 std::abs(targetV) > std::abs(currentV); // currently to slow
 
         const float usedacc = accelerate ? acceleration : -deceleration;
+
         const float maxDeltaV = std::abs(usedacc * useddt);
         if (maxDeltaV >= std::abs(curverror))
         {
             //we change our v too much with the used acceleration
             //but we could reach our target with a lower acceleration ->set the target
-
             return targetV;
         }
+
         const float deltaVel = boost::algorithm::clamp(sign(currentV) * usedacc * useddt, -maxDeltaV, maxDeltaV);
         const float nextV = currentV + deltaVel;
+        //        ARMARX_ERROR << deactivateSpam(0.05) << "nextV: " << nextV << " , deltaVel: " << deltaVel;
         return nextV;
+        //        return targetV; // TODO vel can't be larger than 3.14??
     }
 
     float VelocityControllerWithAccelerationBounds::estimateTime() const
@@ -399,7 +402,7 @@ namespace armarx
         const float brakingDist = sign(currentV) * vsquared / 2.f / std::abs(deceleration); //the braking distance points in the direction of the velocity
 
         const float posIfBrakingNow = currentPosition + brakingDist;
-        //        ARMARX_INFO << deactivateSpam(1) << VAROUT(currentPosition) << VAROUT(positionLimitLoSoft) << VAROUT(positionLimitHiSoft) << VAROUT(posIfBrakingNow);
+        //        ARMARX_INFO << deactivateSpam(0.1) << VAROUT(currentPosition) << VAROUT(positionLimitLoSoft) << VAROUT(positionLimitHiSoft) << VAROUT(posIfBrakingNow);
         if ((posIfBrakingNow <= positionLimitLoSoft && currentV < 0)  || (posIfBrakingNow >= positionLimitHiSoft && currentV > 0))
         {
             //case 1. -> brake now! (we try to have v=0 at the limit)
@@ -411,7 +414,7 @@ namespace armarx
             const float dec = std::abs(vsquared / 2.f / wayToGo);
             const float vel = currentV - sign(currentV) * dec * upperDt;
             nextv = boost::algorithm::clamp(vel, -maxV, maxV);
-            //            ARMARX_INFO << deactivateSpam(1) << "clamped new Vel: " << VAROUT(nextv);
+            //            ARMARX_INFO << deactivateSpam(0.1) << "handle 1: clamped new Vel: " << VAROUT(nextv);
             if (sign(currentV) != sign(nextv))
             {
                 //                ARMARX_INFO << deactivateSpam(1) << "wrong sign: stopping"; //stop now
@@ -422,14 +425,14 @@ namespace armarx
         {
             //handle 2-3
             nextv = VelocityControllerWithAccelerationBounds::run();
-            //            ARMARX_INFO << deactivateSpam(1) << "Desired target Vel: " << targetV << " " << VAROUT(nextv);
+            //            ARMARX_INFO << deactivateSpam(0.1) << "handle 2-3 Desired target Vel: " << targetV << " " << VAROUT(nextv);
 
         }
         if (softLimitViolation == sign(nextv) && nextv != 0)
         {
             //the area between soft and hard limits is sticky
             //the controller can only move out of it (not further in)
-            //            ARMARX_DEBUG << deactivateSpam(1) << "Soft limit violation. " << softLimitViolation << VAROUT(nextv);
+            //            ARMARX_DEBUG << deactivateSpam(0.1) << "Soft limit violation. " << softLimitViolation << VAROUT(nextv);
             return 0;
         }
 
diff --git a/source/RobotAPI/libraries/KITGripperEtherCAT/CMakeLists.txt b/source/RobotAPI/libraries/KITGripperEtherCAT/CMakeLists.txt
index d89cf6c63..f43e8443a 100644
--- a/source/RobotAPI/libraries/KITGripperEtherCAT/CMakeLists.txt
+++ b/source/RobotAPI/libraries/KITGripperEtherCAT/CMakeLists.txt
@@ -54,6 +54,7 @@ set(LIB_FILES
     KITGripperBasisBoard/Misc/TorqueEstimation.cpp
     KITGripperBasisBoard/JointController/JointPWMVelocityController.cpp
     KITGripperBasisBoard/JointController/JointPWMPositionController.cpp
+    KITGripperBasisBoard/JointController/JointPWMTorqueController.cpp
     KITGripperBasisBoard/JointController/JointKITGripperEmergencyStopController.cpp
     KITGripperBasisBoard/JointController/JointKITGripperStopMovementController.cpp
     KITGripperBasisBoard/JointController/PWMVelocityController.cpp
@@ -70,6 +71,7 @@ set(LIB_HEADERS
     KITGripperBasisBoard/Misc/TorqueEstimationWeights.h
     KITGripperBasisBoard/JointController/JointPWMVelocityController.h
     KITGripperBasisBoard/JointController/JointPWMPositionController.h
+    KITGripperBasisBoard/JointController/JointPWMTorqueController.h
     KITGripperBasisBoard/JointController/JointKITGripperEmergencyStopController.h
     KITGripperBasisBoard/JointController/JointKITGripperStopMovementController.h
     KITGripperBasisBoard/JointController/PWMVelocityController.h
diff --git a/source/RobotAPI/libraries/KITGripperEtherCAT/KITGripperBasisBoard/JointController/JointPWMTorqueController.cpp b/source/RobotAPI/libraries/KITGripperEtherCAT/KITGripperBasisBoard/JointController/JointPWMTorqueController.cpp
new file mode 100644
index 000000000..8db055d62
--- /dev/null
+++ b/source/RobotAPI/libraries/KITGripperEtherCAT/KITGripperBasisBoard/JointController/JointPWMTorqueController.cpp
@@ -0,0 +1,103 @@
+#include "JointPWMTorqueController.h"
+#include "../KITGripperBasisBoard.h"
+
+#include <ArmarXCore/core/logging/Logging.h>
+
+using namespace armarx;
+
+
+JointPWMTorqueController::JointPWMTorqueController(const std::string deviceName, KITGripperBasisBoardPtr board, ActorDataPtr jointData, MotorTorqueEstimatorPtr torqueEstimation)
+    : JointController(), target(), board(board), deviceName(deviceName), torqueEstimation(torqueEstimation)
+{
+    actorIndex = board->getActorIndex(deviceName);
+    dataPtr = jointData;
+}
+
+JointPWMTorqueController::~JointPWMTorqueController() noexcept(true)
+{
+    stopRequested = true;
+    try
+    {
+    }
+    catch (...)
+    {
+    }
+}
+
+void JointPWMTorqueController::rtRun(const IceUtil::Time& sensorValuesTimestamp, const IceUtil::Time& timeSinceLastIteration)
+{
+    if (target.isValid())
+    {
+        const float velocity = dataPtr->getVelocity();
+        const float targetTorque = target.torque;
+
+        const int maxIter = 5;
+        int counter = 0;
+
+        float pwm_approx1 = 3000.;
+        float pwm_approx2 = -3000.;
+
+        auto f = [ = ](float pwm)
+        {
+            int32_t pwm_integer = (int32_t) pwm;
+            //return torqueEstimation->linearModel_dcx22(velocity, pwm_integer) - targetTorque;
+            torqueEstimation->estimateTorque(velocity, pwm_integer);
+            return torqueEstimation->getTorqueWithInertia() - targetTorque;
+            //return torqueEstimation->linearModel_dcx22(velocity, pwm_integer) - targetTorque;
+        };
+
+        if (f(pwm_approx1) * f(pwm_approx2) >= 0)
+        {
+            //ARMARX_INFO << deactivateSpam(1) << "ASSERT";
+            dataPtr->setTargetPWM(0);
+            return;
+        }
+
+        float pwm_approx3 = pwm_approx1;
+
+        for (; counter < maxIter; counter++)
+        {
+            pwm_approx3 = (pwm_approx1 * f(pwm_approx2) - pwm_approx2 * f(pwm_approx1)) / (f(pwm_approx2) - f(pwm_approx1));
+            if (abs(f(pwm_approx3)) <= .01)
+            {
+                break;
+            }
+            else if (f(pwm_approx3) * f(pwm_approx1) < 0)
+            {
+                pwm_approx2 = pwm_approx3;
+            }
+            else
+            {
+                pwm_approx1 = pwm_approx3;
+            }
+        }
+
+        //ARMARX_INFO << deactivateSpam(0.1) << VAROUT(pwm_approx3) << VAROUT(f(pwm_approx3)) << VAROUT(counter);
+        dataPtr->setTargetPWM(int(pwm_approx3));
+    }
+}
+
+ControlTargetBase* JointPWMTorqueController::getControlTarget()
+{
+    return &target;
+}
+
+void JointPWMTorqueController::rtPreActivateController()
+{
+}
+
+void JointPWMTorqueController::rtPostDeactivateController()
+{
+    ARMARX_RT_LOGF_INFO("Setting PWM to 0");
+    dataPtr->setTargetPWM(0);
+}
+
+StringVariantBaseMap JointPWMTorqueController::publish(const DebugDrawerInterfacePrx& draw, const DebugObserverInterfacePrx& observer) const
+{
+    return {};
+}
+
+
+
+
+
diff --git a/source/RobotAPI/libraries/KITGripperEtherCAT/KITGripperBasisBoard/JointController/JointPWMTorqueController.h b/source/RobotAPI/libraries/KITGripperEtherCAT/KITGripperBasisBoard/JointController/JointPWMTorqueController.h
new file mode 100644
index 000000000..c6e7f294f
--- /dev/null
+++ b/source/RobotAPI/libraries/KITGripperEtherCAT/KITGripperBasisBoard/JointController/JointPWMTorqueController.h
@@ -0,0 +1,42 @@
+#pragma once
+
+#include <RobotAPI/components/units/RobotUnit/JointControllers/JointController.h>
+#include <RobotAPI/components/units/RobotUnit/ControlTargets/ControlTarget1DoFActuator.h>
+#include "../KITGripperBasisBoardData.h"
+#include "../Misc/TorqueEstimation.h"
+
+
+namespace armarx
+{
+    using KITGripperBasisBoardPtr = std::shared_ptr<class KITGripperBasisBoard>;
+
+
+    class JointPWMTorqueController;
+    typedef std::shared_ptr<JointPWMTorqueController> JointPWMTorqueControllerPtr;
+
+    class JointPWMTorqueController : public JointController
+    {
+    public:
+        JointPWMTorqueController(const std::string deviceName, KITGripperBasisBoardPtr board, ActorDataPtr jointData, MotorTorqueEstimatorPtr torqueEstimation);
+        ~JointPWMTorqueController() noexcept(true);
+
+        void rtRun(const IceUtil::Time& sensorValuesTimestamp, const IceUtil::Time& timeSinceLastIteration) override ;
+        ControlTargetBase* getControlTarget() override;
+
+        void rtPreActivateController() override;
+    protected:
+        ControlTarget1DoFActuatorTorque target;
+        ActorDataPtr dataPtr;
+
+        KITGripperBasisBoardPtr board;
+        const std::string deviceName;
+        MotorTorqueEstimatorPtr torqueEstimation;
+
+        size_t actorIndex = 0;
+        bool stopRequested = false;
+    protected:
+        void rtPostDeactivateController() override;
+    public:
+        StringVariantBaseMap publish(const DebugDrawerInterfacePrx& draw, const DebugObserverInterfacePrx& observer) const override;
+    };
+}
diff --git a/source/RobotAPI/libraries/KITGripperEtherCAT/KITGripperBasisBoard/JointController/JointPWMVelocityController.cpp b/source/RobotAPI/libraries/KITGripperEtherCAT/KITGripperBasisBoard/JointController/JointPWMVelocityController.cpp
index 856c244cf..4f5a29f3d 100644
--- a/source/RobotAPI/libraries/KITGripperEtherCAT/KITGripperBasisBoard/JointController/JointPWMVelocityController.cpp
+++ b/source/RobotAPI/libraries/KITGripperEtherCAT/KITGripperBasisBoard/JointController/JointPWMVelocityController.cpp
@@ -62,7 +62,7 @@ void JointPWMVelocityController::rtRun(const IceUtil::Time& sensorValuesTimestam
             if (isLimitless)
             {
                 velController.currentPosition = velController.positionLimitHiSoft - (velController.positionLimitHiSoft - velController.positionLimitLoSoft) * 0.5;
-                //                ARMARX_INFO << VAROUT(velController.currentPosition) << VAROUT(velController.positionLimitLoSoft) << VAROUT(velController.positionLimitHiSoft);
+                ARMARX_INFO << deactivateSpam(1) << "currentPosition: " << velController.currentPosition;
             }
             else
             {
@@ -72,14 +72,12 @@ void JointPWMVelocityController::rtRun(const IceUtil::Time& sensorValuesTimestam
             velController.dt = timeSinceLastIteration.toSecondsDouble();
             velController.targetV = target.velocity;
             double newVel = velController.run();
+            ARMARX_INFO << deactivateSpam(1) << VAROUT(newVel) << VAROUT(target.velocity);
 
-
-            //            ARMARX_INFO << deactivateSpam(1) << VAROUT(newVel) << VAROUT(target.velocity);
             if (std::isnan(newVel))
             {
                 newVel = 0;
             }
-            //            float newVel = target.velocity;
             if ((currentPosition > velController.positionLimitHiSoft && target.velocity > 0)
                 || (currentPosition < velController.positionLimitLoSoft && target.velocity < 0))
             {
@@ -87,9 +85,8 @@ void JointPWMVelocityController::rtRun(const IceUtil::Time& sensorValuesTimestam
                 ARMARX_INFO << deactivateSpam(1) << "Breaking now at " << dataPtr->getPosition() << " pwm: " << dataPtr->getTargetPWM();
             }
 
-
             auto targetPWM = static_cast<int>(controller.run(timeSinceLastIteration, dataPtr->getVelocity(), newVel));
-
+            ARMARX_INFO << deactivateSpam(1) << "Target PWM: " << targetPWM;
             dataPtr->setTargetPWM(targetPWM);
 
             lastTargetVelocity = newVel;
diff --git a/source/RobotAPI/libraries/KITGripperEtherCAT/KITGripperBasisBoard/KITGripperBasisBoard.cpp b/source/RobotAPI/libraries/KITGripperEtherCAT/KITGripperBasisBoard/KITGripperBasisBoard.cpp
index 69b043336..c40b66657 100644
--- a/source/RobotAPI/libraries/KITGripperEtherCAT/KITGripperBasisBoard/KITGripperBasisBoard.cpp
+++ b/source/RobotAPI/libraries/KITGripperEtherCAT/KITGripperBasisBoard/KITGripperBasisBoard.cpp
@@ -26,6 +26,7 @@
 #include <ArmarXCore/core/logging/Logging.h>
 #include <ArmarXCore/core/exceptions/local/ExpressionException.h>
 #include "JointController/JointPWMPositionController.h"
+#include "JointController/JointPWMTorqueController.h"
 #include "JointController/JointZeroTorqueController.h"
 #include "JointController/JointKITGripperEmergencyStopController.h"
 #include "JointController/JointKITGripperStopMovementController.h"
@@ -254,6 +255,15 @@ namespace armarx
             {
                 ARMARX_VERBOSE << "Position Control disabled for " << getDeviceName();
             }
+            if (actorDataPtr->getTorqueControlEnabled())
+            {
+                torqueController.reset(new JointPWMTorqueController(getDeviceName(), dev, actorDataPtr, torqueEstimator));
+                addJointController(torqueController.get());
+            }
+            else
+            {
+                ARMARX_VERBOSE << "Position Control disabled for " << getDeviceName();
+            }
         }
     }
 
diff --git a/source/RobotAPI/libraries/KITGripperEtherCAT/KITGripperBasisBoard/KITGripperBasisBoard.h b/source/RobotAPI/libraries/KITGripperEtherCAT/KITGripperBasisBoard/KITGripperBasisBoard.h
index 987930597..a345164e8 100644
--- a/source/RobotAPI/libraries/KITGripperEtherCAT/KITGripperBasisBoard/KITGripperBasisBoard.h
+++ b/source/RobotAPI/libraries/KITGripperEtherCAT/KITGripperBasisBoard/KITGripperBasisBoard.h
@@ -41,6 +41,7 @@ namespace armarx
     using JointKITGripperEmergencyStopControllerPtr = std::shared_ptr<class JointKITGripperEmergencyStopController>;
     using JointPWMVelocityControllerPtr = std::shared_ptr<class JointPWMVelocityController>;
     using JointPWMPositionControllerPtr = std::shared_ptr<class JointPWMPositionController>;
+    using JointPWMTorqueControllerPtr = std::shared_ptr<class JointPWMTorqueController>;
     using JointPWMZeroTorqueControllerPtr = std::shared_ptr<class JointPWMZeroTorqueController>;
     using ParallelGripperPositionControllerPtr = std::shared_ptr<class ParallelGripperPositionController>;
     using ParallelGripperVelocityControllerPtr = std::shared_ptr<class ParallelGripperVelocityController>;
@@ -81,6 +82,7 @@ namespace armarx
             JointKITGripperStopMovementControllerPtr stopMovementController;
             JointPWMVelocityControllerPtr velocityController;
             JointPWMPositionControllerPtr positionController;
+            JointPWMTorqueControllerPtr torqueController;
             JointPWMZeroTorqueControllerPtr zeroTorqueController;
 
             /// The data object for copying to non-rt part
diff --git a/source/RobotAPI/libraries/KITGripperEtherCAT/KITGripperBasisBoard/KITGripperBasisBoardData.cpp b/source/RobotAPI/libraries/KITGripperEtherCAT/KITGripperBasisBoard/KITGripperBasisBoardData.cpp
index edfde923e..8b590d2c2 100644
--- a/source/RobotAPI/libraries/KITGripperEtherCAT/KITGripperBasisBoard/KITGripperBasisBoardData.cpp
+++ b/source/RobotAPI/libraries/KITGripperEtherCAT/KITGripperBasisBoard/KITGripperBasisBoardData.cpp
@@ -343,6 +343,11 @@ namespace armarx
         return velocityControlEnabled;
     }
 
+    bool ActorData::getTorqueControlEnabled() const
+    {
+        return torqueControlEnabled;
+    }
+
     float ActorData::getCurrentPWMBoundGradient() const
     {
         return currentPWMBoundGradient;
diff --git a/source/RobotAPI/libraries/KITGripperEtherCAT/KITGripperBasisBoard/KITGripperBasisBoardData.h b/source/RobotAPI/libraries/KITGripperEtherCAT/KITGripperBasisBoard/KITGripperBasisBoardData.h
index 09d57c926..b4fa3c6a6 100644
--- a/source/RobotAPI/libraries/KITGripperEtherCAT/KITGripperBasisBoard/KITGripperBasisBoardData.h
+++ b/source/RobotAPI/libraries/KITGripperEtherCAT/KITGripperBasisBoard/KITGripperBasisBoardData.h
@@ -120,6 +120,8 @@ namespace armarx
 
         bool getVelocityControlEnabled() const;
 
+        bool getTorqueControlEnabled() const;
+
         float getCurrentPWMBoundGradient() const;
 
         int32_t getCurrentPWMBoundOffset() const;
@@ -156,6 +158,7 @@ namespace armarx
         LinearConvertedValue<int32_t> targetPWMPtr;
         bool positionControlEnabled = true;
         bool velocityControlEnabled = true;
+        bool torqueControlEnabled = true;
         float currentPWMBoundGradient = 3.75;
         int32_t currentPWMBoundOffset = 1500;
         std::string motorModelType = "None";
diff --git a/source/RobotAPI/libraries/KITGripperEtherCAT/KITGripperBasisBoard/KITGripperBasisBoardSlave.h b/source/RobotAPI/libraries/KITGripperEtherCAT/KITGripperBasisBoard/KITGripperBasisBoardSlave.h
index fb5a71215..d96244105 100644
--- a/source/RobotAPI/libraries/KITGripperEtherCAT/KITGripperBasisBoard/KITGripperBasisBoardSlave.h
+++ b/source/RobotAPI/libraries/KITGripperEtherCAT/KITGripperBasisBoard/KITGripperBasisBoardSlave.h
@@ -122,21 +122,5 @@ namespace armarx
     };
     using KITGripperBasisBoardFactoryPtr = std::shared_ptr<KITGripperBasisBoardFactory>;
 
-
-    //    class KITGripperBasisBoardFactory : public EtherCATDeviceFactory
-    //    {
-    //        KITGripperBasisBoardFactory() {}
-    //        // AbstractFactoryMethod
-    //    public:
-    //        static std::string getName()
-    //        {
-    //            return "KITGripperBasisBoardFactory";
-    //        }
-    //    private:
-    //        static SubClassRegistry registry;
-    //        static SharedPointerType createInstance(EtherCATFactoryArgs args);
-    //    };
-    //    using KITGripperBasisBoardFactoryPtr = std::shared_ptr<KITGripperBasisBoardFactory>;
-
 } // namespace armarx
 
diff --git a/source/RobotAPI/libraries/KITGripperEtherCAT/KITGripperBasisBoard/Misc/TorqueEstimation.cpp b/source/RobotAPI/libraries/KITGripperEtherCAT/KITGripperBasisBoard/Misc/TorqueEstimation.cpp
index a59f2eede..b989ce63b 100644
--- a/source/RobotAPI/libraries/KITGripperEtherCAT/KITGripperBasisBoard/Misc/TorqueEstimation.cpp
+++ b/source/RobotAPI/libraries/KITGripperEtherCAT/KITGripperBasisBoard/Misc/TorqueEstimation.cpp
@@ -248,43 +248,26 @@ float MotorTorqueEstimator::linearModel_dcx16(int32_t nI, int32_t pwm)
     return T;
 }
 
-float MotorTorqueEstimator::linearModel_dcx22(int32_t nI, int32_t pwm)
+float MotorTorqueEstimator::linearModel_dcx22(float nI, int32_t pwm)
 {
-    float n = (float) nI * 1000 * 60 / 4096; //ticks/ms -> turns/min
-    float T_f = 1000. / 231.; //übersetzung getriebe + Nm->m
-    float motor_a = 226. + 30.; //Drehzahlkonstante   [min-1 V-1]
-    float motor_b = 123.;   //Kennliniensteigung [min-1 mNm-1]
-    float motor_eta = 0.4; //Wirkungsgrad Getriebe *Motor, max from datasheet:0.75*0.85
-    float Umax = 48.; //Spannung bei pwm max
-    float pwmmax = 3000.;
-    float pwm_zero = 250.;
-    float U;
-    float T_motor;
-
-
-    U = (float(fabs(pwm) - pwm_zero) / (pwmmax - pwm_zero))  *   Umax;
-    if (U < 0)
-    {
-        U = 0;
-    }
-    if (pwm < 0)
-    {
-        U *= -1;
-    }
-    if (pwm == 0)
-    {
-        U = 0;
-    }
-
-    //U(M,n)=(n-b*M)/a
-    T_motor = (U * motor_a - n) / -motor_b;
-    auto T = T_motor * motor_eta / T_f;
-
-    return T;
+    float n = nI * 60.f / M_PI / 2.f * 231.f; //rad/s -> turns/min
+    float T_f = 1000.f / 231.f; //übersetzung getriebe + Nm->m
+    float motor_a = 226.f - 60.f; //Drehzahlkonstante   [min-1 V-1]
+    float motor_b = 123.f;   //Kennliniensteigung [min-1 mNm-1]
+    float motor_eta = 0.8f; //Wirkungsgrad Getriebe *Motor, max from datasheet:0.75*0.85
+    float Umax = 48.f; //Spannung bei pwm max
+    float Ulost = 0.f;
+    float pwmmax = 3000.f;
+    //float pwm_zero = 0.f;
+
+    //float U = std::max(0.f, (abs(static_cast<float>(pwm)) - pwm_zero) / (pwmmax - pwm_zero) * (Umax - Ulost)) * (pwm >= 0 ? 1.f : -1.f);
+    float U = (pwm / pwmmax) * (Umax - Ulost);
+    float T_motor = (U * motor_a - n) / -motor_b;
+    return (T_motor * motor_eta / T_f);
 }
 
 
-void MotorTorqueEstimator::estimateTorque(int32_t vel, int32_t pwm)//, int motorModel, bool linearModelOnly = false)
+void MotorTorqueEstimator::estimateTorque(float vel, int32_t pwm)//, int motorModel, bool linearModelOnly = false)
 {
     // calculate the torque based on the linear model
     //    std::cout << "model type: " << motorModel << std::endl;
@@ -338,16 +321,16 @@ void MotorTorqueEstimator::estimateTorque(int32_t vel, int32_t pwm)//, int motor
         torque += imgFcl6[0];
     }
 
-    // calculating the torque induced by motor inertia
-    double timeNow = IceUtil::Time::now().toMilliSecondsDouble();
-    //    float deltaT = timeNow - last_time;
-    float deltaT = 1; // in millisecond
-    last_time = timeNow;
-
-    float angVel = (float) 2 * M_PI * vel / 4.096 / deltaT;  //radian / s
-    angVel = lowpassFilterFactor * angVel + (1 - lowpassFilterFactor) * vel_old;
-    float acc = (float) 0.001 * (angVel - vel_old) / deltaT;
-    vel_old = angVel;
-    float inertiaTorque = acc * inertia;
-    torqueWithInertia = torque + inertiaTorque;
+    //    // calculating the torque induced by motor inertia
+    //    double timeNow = IceUtil::Time::now().toMilliSecondsDouble();
+    //    //    float deltaT = timeNow - last_time;
+    //    float deltaT = 1; // in millisecond
+    //    last_time = timeNow;
+
+    //    float angVel = (float) 2 * M_PI * vel / 4.096 / deltaT;  //radian / s
+    //    angVel = lowpassFilterFactor * angVel + (1 - lowpassFilterFactor) * vel_old;
+    //    float acc = (float) 0.001 * (angVel - vel_old) / deltaT;
+    //    vel_old = angVel;
+    //    float inertiaTorque = acc * inertia;
+    torqueWithInertia = torque;// + inertiaTorque;
 }
diff --git a/source/RobotAPI/libraries/KITGripperEtherCAT/KITGripperBasisBoard/Misc/TorqueEstimation.h b/source/RobotAPI/libraries/KITGripperEtherCAT/KITGripperBasisBoard/Misc/TorqueEstimation.h
index 48f7d3c47..a11e8a879 100644
--- a/source/RobotAPI/libraries/KITGripperEtherCAT/KITGripperBasisBoard/Misc/TorqueEstimation.h
+++ b/source/RobotAPI/libraries/KITGripperEtherCAT/KITGripperBasisBoard/Misc/TorqueEstimation.h
@@ -50,9 +50,9 @@ public:
     bool fcl4();
     bool fcl5();
     bool fcl6();
-    void estimateTorque(int32_t n, int32_t pwm);
+    void estimateTorque(float n, int32_t pwm);
     float linearModel_dcx16(int32_t nI, int32_t pwm);
-    float linearModel_dcx22(int32_t nI, int32_t pwm);
+    float linearModel_dcx22(float nI, int32_t pwm);
     size_t getActorIndex()
     {
         return actorIndex;
diff --git a/source/RobotAPI/libraries/KITGripperEtherCAT/KITGripperBasisBoard/Misc/TorqueEstimationWeights.h b/source/RobotAPI/libraries/KITGripperEtherCAT/KITGripperBasisBoard/Misc/TorqueEstimationWeights.h
index 879c577c1..b23e9e604 100644
--- a/source/RobotAPI/libraries/KITGripperEtherCAT/KITGripperBasisBoard/Misc/TorqueEstimationWeights.h
+++ b/source/RobotAPI/libraries/KITGripperEtherCAT/KITGripperBasisBoard/Misc/TorqueEstimationWeights.h
@@ -2,188 +2,560 @@
 #define __WEIGHTS_H
 #include <Eigen/Dense>
 
+//namespace torqueEstimation
+//{
+//    [[maybe_unused]] static float vel_factor = 3.0;
+//    [[maybe_unused]] static float pwm_factor = 1700.0;
+
+//    const float fc1Bias[32] =
+//    {-0.1725007f, 0.22678013f, -2.6970465f, -0.09974048f, -0.040749375f, -0.3334482f, -0.18494219f, -0.20274766f, -6.2339034f, -4.9872985f, 6.6949763f, -0.6522415f, -1.3953217f, -0.51651675f, -0.09272681f, -0.23633692f, -0.10075914f, -0.1347109f, -0.114599496f, 3.0961406f, -0.17013408f, -0.30206567f, -5.290483f, -0.40755567f, -0.16429213f, -1.437501f, 1.602204f, 0.07425786f, -0.17111687f, 0.82998264f, -1.294294f, 4.771558};
+
+
+//    const float fc1Weights[5][32] =
+//    {
+//        {0.39510715f, 2.2571743f, 11.232412f, 0.33511007f, -0.044520352f, 16.551588f, -1.2571356f, -0.069339834f, -4.204365f, 3.9510756f, 10.907067f, -1.270677f, 14.355322f, -0.36474267f, 0.32876113f, -0.10301032f, -0.030761613f, -0.110590644f, -16.870008f, -12.285435f, 0.15018675f, -0.11950688f, -0.71111417f, 0.037136745f, -0.3118552f, -0.121771194f, -9.268497f, 1.3213003f, 0.015661843f, -0.3644132f, -2.0449922f, 9.157172},
+//        {-0.19617346f, -0.9198749f, -4.00497f, -0.01626744f, 0.018566411f, 0.884013f, 5.438814f, -0.04524398f, -4.387919f, 1.1794418f, -8.181262f, 0.63301134f, -11.397979f, -0.006001467f, 0.09748432f, 0.40305105f, -0.28367123f, 0.04917077f, -0.9402751f, 5.756441f, -0.28350142f, -0.1988372f, -0.83927745f, -0.05356783f, -0.1426097f, -4.110529f, -8.217274f, -1.0155729f, 0.2013786f, -3.2269154f, 0.69511706f, -4.583247},
+//        {-0.17688863f, 1.9354447f, 10.955149f, -0.19510064f, 0.0053031216f, 17.132185f, -1.2578416f, -0.20770107f, -4.9015293f, 4.2327037f, 10.556939f, -1.591539f, 15.001568f, -0.38140342f, -0.2607554f, -0.2586876f, 0.17359637f, -0.060046587f, -16.70466f, -11.981966f, 0.06437229f, 0.5703454f, -0.6421704f, 0.5702476f, 0.094934516f, 0.24701057f, -9.218313f, 1.1528211f, -0.24124904f, 0.08925969f, -2.1281826f, 9.149714},
+//        {0.02153813f, -1.7012273f, -4.0677867f, -0.08651627f, 0.0032935648f, 1.4195906f, 5.43577f, 0.23591566f, -4.700518f, 1.2050697f, -8.056505f, 0.30889472f, -11.660024f, 0.5915395f, -0.17743187f, -0.12816206f, 0.173937f, 0.06920555f, -1.1299522f, 5.7109337f, 0.10083512f, -0.13235904f, -1.318466f, -0.38831258f, 0.31123385f, -4.3729515f, -7.914687f, -1.4119735f, -0.015423074f, -2.988349f, 0.13015744f, -4.585248},
+//        {-0.34205815f, -0.2626863f, 0.17063111f, -0.35764512f, 0.04428321f, -0.1697224f, -0.07391724f, -0.37947303f, 0.24839932f, 0.23418152f, -0.23645417f, -0.33066875f, -0.19210157f, -0.16795783f, -0.34705806f, 0.12497914f, 0.37148726f, 0.20467919f, -0.1568616f, -0.09960741f, 0.25018013f, 0.07886663f, 0.34574914f, -0.40105188f, 0.33387697f, -0.33532098f, 0.32188654f, -0.099698424f, -0.33172235f, 0.18135023f, 0.11229843f, 0.25068903}
+//    };
+
+
+//    const float fc2Bias[32] =
+//    {2.3046737f, -3.376031f, 2.7361434f, -1.7360973f, -0.248257f, -5.090162f, -4.0918236f, 1.0919446f, -3.0854917f, 0.3669868f, -0.09065635f, -2.0386674f, -0.05936379f, 3.7291315f, -3.8670359f, -0.36154845f, 0.05045309f, -14.602577f, 1.1551954f, 2.4240172f, -2.7817678f, -6.52547f, -0.16630115f, 4.4722996f, -6.154681f, -1.3765417f, -0.08405621f, 2.360645f, -0.8325788f, 2.4377012f, 1.4452578f, -0.054815926};
+
+
+//    const float fc2Weights[32][32] =
+//    {
+//        {0.06672375f, 0.03981204f, 0.4298145f, -0.4013211f, 0.030190138f, -0.13413878f, -0.06241652f, -0.49100602f, 0.26731324f, 0.18380892f, 0.1315184f, -0.30871984f, -0.06503027f, -0.09315861f, -0.12100003f, 0.07088469f, -0.052212186f, 0.21298058f, -0.08823374f, 0.09589224f, 0.20408788f, -0.28329554f, 0.22384411f, 0.0134339435f, 0.08031619f, 0.008691284f, 0.29529724f, 0.16917771f, -0.0039900946f, -0.22732116f, -0.3664234f, -0.0683193},
+//        {-7.33564f, 10.284348f, -0.5726711f, 9.463029f, 0.08291308f, -5.0315213f, 2.856347f, -3.1128118f, 1.0949352f, -4.297197f, 0.0169012f, 5.883996f, 0.5857671f, -24.788378f, 14.092353f, 3.2012587f, 2.8702588f, 5.96139f, -8.119783f, -2.1658237f, 2.4337258f, 7.698476f, -0.17180617f, 1.687615f, 0.1942111f, 10.478304f, 0.10060822f, -6.537223f, 0.7543064f, 1.9572775f, -10.5896225f, 0.23346461},
+//        {-1.5227464f, 22.263823f, -0.49379733f, 2.8480804f, -0.10550693f, -9.013599f, 1.4504116f, -4.1394453f, 0.50905573f, -0.48919106f, 0.09463619f, 21.075937f, 9.124178f, -9.512246f, -0.98959124f, -18.584335f, 5.515375f, 6.348406f, -2.5109622f, -1.7007587f, 4.371499f, 3.262495f, -0.30386263f, 5.0723014f, 3.5425358f, 2.8363314f, -0.5141079f, -5.284889f, 1.0300736f, -2.5009334f, -2.565704f, 0.14685073},
+//        {-1.3511561f, 0.067527264f, 0.03207382f, 0.0039824564f, -0.0794694f, -0.28399357f, 0.044033196f, 0.1552143f, -0.19059747f, 0.068717234f, -0.17684978f, -0.060900316f, -0.09924195f, 0.22687863f, 0.15407263f, -0.100492574f, 0.020151345f, -0.31645426f, -0.15415344f, -0.12234637f, 0.28883266f, 0.07648122f, -0.19040743f, -0.07561039f, -0.34996137f, -0.043174732f, 0.1263864f, -0.07232601f, 0.22912653f, -0.12931624f, 0.16876964f, 0.035036884},
+//        {-0.027614722f, -0.15375322f, 0.15479827f, -0.040814992f, 0.08823914f, -0.14149623f, 0.2551347f, -0.103067316f, -0.1295854f, -0.3158188f, 0.19040854f, 0.052206445f, -0.041617952f, 0.15680033f, -0.12503436f, 0.029681498f, 0.061775006f, -0.12955941f, 0.34682432f, -0.14659873f, -0.053150598f, 0.05367754f, 0.20053828f, 0.15406348f, -0.047879178f, -0.285771f, 0.041893344f, 0.26605374f, -0.57365185f, -0.117251046f, -0.028690392f, -0.05576961},
+//        {-29.300598f, -42.006226f, -0.23785204f, 1.0081468f, -0.07736528f, -4.929497f, 0.016984f, 2.7997177f, -0.5993182f, 1.4043167f, 0.006310487f, -12.316349f, -7.464633f, 2.3339503f, -10.99952f, -1.4181191f, -5.3978205f, -0.9160084f, -0.57192063f, -23.279203f, 0.31513935f, -0.52580607f, 0.1553356f, -7.7709603f, -1.3876374f, 2.1354678f, 0.095952384f, -20.485518f, -1.5443673f, -1.511262f, -0.7326366f, -0.267584},
+//        {-0.5594176f, -6.888753f, -1.6626513f, 0.0790406f, -0.42663917f, -1.0957495f, -0.02794237f, 0.30795652f, 2.441239f, 0.24079339f, -0.14302072f, -0.8659194f, 1.4585729f, 0.1942107f, -18.035809f, -0.5791919f, 4.7361016f, -1.4346285f, -0.5557014f, -3.8727703f, -2.3609412f, -1.0736175f, -0.016646797f, -10.726834f, 1.0153993f, -5.029551f, -0.242208f, 2.077944f, -0.82427967f, 3.265529f, -8.716459f, -0.19501616},
+//        {2.4132562f, 1.7898282f, 2.3240876f, -1.3080649f, -0.07303938f, 0.06168544f, -0.64258385f, 1.1812865f, 1.2299591f, -4.6774454f, 0.027036889f, -0.24539495f, -0.17167485f, -0.67892337f, -2.958341f, -0.91007787f, 2.5619612f, 0.2744017f, -1.6152515f, -0.56008095f, 0.6784698f, -0.34037033f, -0.20392452f, 0.508049f, -1.526551f, -1.2311649f, -0.124074675f, -0.26846382f, -0.5703097f, 5.3762107f, -0.5952847f, 0.0061843316},
+//        {1.0931673f, -7.3679214f, -0.5985262f, -0.7051916f, 0.11660278f, -0.6877138f, -1.6327153f, -1.4512339f, -0.025593447f, -0.10911486f, -0.12713556f, -14.42331f, -7.988586f, -17.172691f, -3.4801257f, -0.3769848f, -3.002207f, 1.1855037f, -1.1464509f, -2.4293313f, 4.5631657f, -0.17157991f, -0.010936868f, -1.3019978f, -13.998105f, -0.06420606f, -0.19789563f, 1.686253f, -0.7059018f, -1.1249135f, 2.8461576f, -1.5028518},
+//        {-0.27207246f, -0.20969442f, 3.4450173f, -0.90108556f, -1.2984949f, -0.81887645f, 0.24997796f, -28.352472f, 0.99843067f, -3.1921399f, -1.8428282f, -1.689321f, -4.6914825f, 3.1511476f, 0.27317092f, 0.045436285f, -0.8609569f, 2.392712f, -1.739862f, -0.5150505f, -6.918803f, 1.9290682f, -1.1633883f, -3.2851126f, -2.646161f, -3.4287448f, -1.2866911f, -1.1970419f, 3.9454505f, -2.005193f, 1.6165966f, 0.12669909},
+//        {2.9708714f, -0.95986474f, 1.7249324f, -3.2697103f, 0.03755713f, -2.2244103f, 0.23445286f, -0.13788523f, -0.661059f, -1.6640873f, -0.36343703f, -2.3472748f, 0.2084521f, 0.5839008f, -2.3541636f, 0.8297119f, 2.085695f, -4.2831416f, -0.7408386f, 3.0645552f, -1.6071215f, -6.1273637f, -0.11925948f, 3.4298916f, -3.2585394f, -1.4067111f, -0.044584967f, 3.8299177f, 1.0222963f, 1.4237952f, 3.7824342f, -0.059232913},
+//        {0.35525054f, 1.4542918f, 0.012768871f, 0.22577578f, 0.34905314f, 0.10699096f, 0.32554242f, -0.05457905f, 0.086092874f, 0.30712673f, 0.3422782f, -4.4570327f, 0.22911765f, -1.511622f, -4.622275f, 1.2753466f, -0.85320574f, -0.03947779f, -0.113232866f, -3.188151f, -0.013641321f, -0.13811979f, -0.10314173f, -1.6585289f, -1.4179429f, -0.06470196f, 0.26033264f, 0.17802355f, -0.13500683f, 0.28904206f, -1.0417407f, -0.33958516},
+//        {0.018590616f, -5.6185517f, 5.9500194f, 4.650389f, -0.10002072f, -2.6981034f, 0.7693098f, 2.9769938f, -0.38595822f, 0.94942206f, -0.33520997f, 9.680918f, 1.1542379f, -9.190922f, -2.9543948f, 7.3437467f, -0.30097672f, 2.7158196f, -4.501616f, -1.8421304f, 2.7353113f, -0.37420464f, -0.025804913f, -2.550714f, 3.4625616f, -0.25259703f, -0.3508392f, -2.910739f, -0.98215246f, 1.7083962f, -6.9790177f, -0.23934703},
+//        {1.2796549f, 1.6428136f, -2.331014f, 0.47840074f, -0.36852604f, 0.39259568f, -0.39148664f, 0.8452899f, 1.9196569f, -3.4076731f, -0.062341016f, -0.38649395f, -7.379683f, 1.0762918f, -0.29080665f, -4.7851305f, 0.07381187f, 0.112777054f, 0.2628042f, 0.36232072f, -0.04090517f, -0.003565067f, 0.003187059f, 1.8601334f, -1.0435531f, 1.2796884f, -0.25559354f, -0.18323837f, -3.6666112f, -0.57592535f, -0.0866006f, 0.1398785},
+//        {-0.039665814f, 0.17942517f, 0.17748955f, 1.0280329f, 0.1761893f, 0.16937727f, -0.14977464f, -0.05389512f, -0.07112407f, -1.2921491f, -0.15922146f, 0.13559765f, -0.035964075f, 0.1997586f, 0.047902975f, -0.5316791f, -0.021313842f, -0.739655f, -0.000694107f, -0.26580292f, 0.2257282f, -0.12752165f, -0.14252584f, 0.06391947f, -0.6073695f, 0.08091097f, -0.1530388f, 0.40658376f, 0.10591612f, -0.0895371f, 0.11751159f, 0.13086073},
+//        {0.44440156f, -0.14244008f, -0.024899907f, 0.6068209f, -0.044918586f, -0.28395322f, 0.31534466f, -0.40047562f, 0.3507789f, -1.1369462f, -0.2502713f, 0.1462691f, -1.094232f, 0.1400827f, -0.72197914f, -1.0459919f, -0.4191913f, -0.19707204f, -0.62316525f, -0.21968427f, -0.06558542f, 0.14933474f, -0.58463037f, 0.09242671f, -0.19239254f, -0.26865494f, -0.26763722f, 0.42619875f, -0.62403363f, 0.149245f, 0.105942294f, 0.15438588},
+//        {2.9774177f, 0.11893796f, -0.030067127f, -2.3903174f, -0.6278204f, 0.71382916f, 0.2177451f, 0.039715406f, -0.0086141005f, 0.48976183f, -0.42510647f, 1.5093122f, -0.537936f, -9.242118e-05f, 0.39906317f, -0.82221633f, 0.16236012f, 0.36789364f, -2.3485773f, -0.24769245f, 0.24103326f, -0.19623761f, -0.20218498f, 0.27088854f, -0.01837088f, -0.12805222f, -0.24647267f, 0.6915754f, 0.5131639f, -0.28441676f, -0.24411462f, -0.21990426},
+//        {-0.5481942f, -0.09144253f, 1.6166676f, -0.32307783f, 0.07639165f, -1.5741732f, -3.4616601f, 0.5508388f, 1.537149f, 2.4479384f, 0.21077996f, 0.099228054f, -23.974644f, 3.488545f, 0.04388257f, -2.7474682f, -2.285467f, -1.5086187f, -0.11117369f, -0.50427306f, -3.205178f, 2.1157758f, 0.06745863f, 3.18755f, 1.8946489f, -0.97607267f, -0.16692668f, -0.8396545f, -5.3309174f, -2.2130654f, 0.3298538f, -0.49893945},
+//        {0.5406687f, 4.3126593f, 2.0165842f, -0.96754783f, -0.3741138f, -1.9128562f, 1.4284966f, -11.846182f, -1.1048306f, -0.19225451f, -0.022864373f, 0.8683505f, -18.590033f, 1.1024392f, 8.267256f, -2.176614f, 2.1204329f, 0.7171414f, 1.1875408f, 1.4916124f, -0.38236487f, -0.36544248f, 0.0029179598f, -22.828068f, -1.4560589f, -4.405755f, 0.10342543f, -1.5118104f, -15.811164f, 5.670773f, 1.7081658f, -0.13610314},
+//        {7.364663f, 0.14077501f, 0.16337182f, 2.8885152f, -0.000528927f, -2.3424945f, -1.0842777f, -0.95577484f, -0.5032399f, -3.3901248f, -0.12043851f, -0.15165281f, -7.8236375f, 1.2898501f, -0.5934695f, -1.7003489f, -2.120079f, 2.522183f, -0.989488f, 1.9092784f, -1.1829445f, -9.79599f, -0.37674657f, -10.661039f, -10.43826f, 4.3794084f, -0.17708081f, -0.16226012f, -9.104723f, -6.016003f, -1.3563076f, -0.17927353},
+//        {0.65976214f, -0.69378126f, 2.6152503f, -4.2868857f, -0.5129069f, -9.867447f, 1.0904249f, -0.1036951f, 1.3234177f, -0.45103982f, 0.20678674f, -1.339659f, -0.4567993f, 0.18541948f, -1.6106132f, -0.09874719f, -0.7770424f, 0.03944957f, -1.9414114f, 0.9872766f, -2.0920346f, -6.258561f, -0.046254743f, 2.228591f, -4.7839494f, 4.8087816f, -0.084092535f, -0.24784163f, -1.1353854f, 1.3802198f, -0.94006157f, -0.03565456},
+//        {-0.30896315f, -0.860514f, 0.08772144f, 0.086373135f, -0.17789678f, 0.29052868f, -0.023447229f, 0.03871594f, 0.22749558f, 0.06497324f, 0.1512284f, -0.4247122f, -0.16008559f, 0.043180015f, -0.18297796f, 0.07381081f, -0.19587533f, 0.14093257f, 0.50419664f, -0.08958871f, 0.063011065f, 0.17298721f, 0.40320584f, 0.16772592f, 0.30643088f, 0.2045452f, -0.043923855f, 0.5208287f, -0.07654832f, 0.046925552f, 0.11926591f, -0.35307777},
+//        {37.55157f, -1.3358451f, 1.9096538f, -0.38295364f, 0.45906729f, -0.040599175f, -16.024897f, -3.7581606f, 3.4560614f, -0.40831462f, -0.09947094f, -2.61469f, 0.16386037f, 3.3848467f, -1.8439375f, 13.398237f, -16.006344f, 34.003914f, -37.688145f, 0.08601539f, 5.3420606f, 0.25448218f, 0.0971535f, -0.12070697f, -5.608643f, -0.22552827f, 0.22174726f, -23.563591f, -0.6252556f, -2.289929f, -5.699306f, -1.31278},
+//        {-2.0058863f, -21.198523f, 1.7569826f, -2.3668137f, -0.07917042f, -0.9704946f, -0.4862934f, 0.5644845f, -1.1703589f, 0.10662636f, -0.340146f, -11.464577f, -5.8809953f, -1.4824659f, -6.003332f, -0.13634342f, -4.788258f, -1.1189235f, -8.753833f, -5.5215473f, 0.8256637f, -0.25864193f, -0.31531668f, -1.273406f, -3.9944947f, 0.595693f, 0.10466566f, -1.8277134f, -0.2747406f, -0.08571568f, -4.138713f, -0.014542673},
+//        {-3.7086928f, 0.057167407f, -0.09404559f, 0.61403203f, -0.112739876f, -0.43696213f, -0.024829734f, -1.039127f, 0.020173678f, -0.027686108f, 0.121961415f, -1.1711127f, -1.0055399f, -0.121838726f, -2.0965528f, -0.23009554f, 0.46532091f, -0.13417134f, -0.32540452f, -0.05464886f, 0.3030558f, -0.19097869f, -0.14713521f, -0.3620254f, 0.06124472f, -0.16736446f, -0.054223098f, -0.08182485f, -0.22149314f, 0.08322779f, -0.21364668f, -0.09680105},
+//        {-2.3282464f, 3.729344f, -0.8176267f, -5.708258f, 0.16116187f, 3.257225f, -4.767446f, -3.660202f, -0.33828092f, -0.34975937f, 0.108061776f, 1.0062399f, -0.024204824f, -5.4284515f, -11.839455f, -1.1998953f, -1.1846381f, -0.29173943f, 0.010682502f, 7.4564085f, 0.82957906f, 0.24016067f, 0.19872919f, -6.9185243f, 9.850762f, -3.9184654f, -0.0107750585f, -0.25330967f, 0.27995756f, -13.938132f, -1.4173851f, -2.6429021},
+//        {-1.4613216f, -3.9483132f, -10.867505f, -4.8033915f, 0.14816566f, -2.024163f, -0.34048882f, 2.3864727f, -0.53675175f, -0.13151328f, -0.34836397f, 2.864102f, -3.9981687f, 1.5515136f, -5.1017203f, 1.1199483f, -0.1568827f, 0.39161184f, 0.7031629f, -2.9780972f, -4.3226414f, 0.023288712f, -0.255986f, -4.346594f, 4.325134f, 2.436293f, 0.016705431f, 0.7705823f, -3.2631085f, -5.7985535f, -1.1523384f, -0.091823414},
+//        {-3.9949884f, 6.783225f, -5.2527895f, 6.9999876f, 0.12748419f, -1.1060017f, 4.34082f, 1.0183424f, 3.8162572f, -13.21761f, -0.24110846f, 2.1573458f, 0.3715204f, 10.364913f, 17.097471f, 5.182952f, -0.046438083f, 0.7106297f, -3.0440707f, -7.6048985f, 8.406917f, 3.9449587f, 0.034920085f, 1.0324994f, 1.7549764f, -2.5036466f, -0.09543819f, -1.2531227f, 1.2496982f, 0.32981667f, -5.875489f, -0.057525594},
+//        {3.1159813f, 0.32751906f, 0.17584619f, 1.6777943f, -0.3707683f, -0.43120086f, -2.4453216f, -0.762067f, 2.365559f, -1.7951444f, -0.26427886f, -1.3152533f, -7.629102f, 1.0253571f, 0.3196189f, -11.054079f, 0.4645029f, -1.414041f, 0.22743952f, -0.52533734f, -0.44237474f, -0.31648928f, -0.045488015f, -0.94692457f, -0.23710065f, 0.41878378f, -0.119467594f, -1.246084f, -3.672228f, 0.62743074f, -1.0318882f, 0.0019755964},
+//        {-2.4740925f, -2.6364005f, -27.364426f, -14.663115f, -0.025526734f, -5.2705336f, 1.7903801f, -1.4312683f, -1.6052309f, -0.03867145f, -0.24569839f, 0.3891716f, -2.2523723f, 1.264505f, 1.733905f, 2.5898297f, -0.54112816f, -0.22606058f, -0.0885049f, -2.98231f, 0.72436446f, -0.3056006f, -0.044455007f, 0.07737577f, 2.999365f, -8.009719f, 0.027415745f, 0.78489184f, -1.5302483f, -5.9144425f, -5.179494f, 0.08897877},
+//        {0.75679934f, 1.9665747f, 0.14301285f, 0.43746036f, -0.13887417f, -0.5372397f, 0.3056983f, 1.7238832f, 0.18415947f, -0.31391847f, 0.16376889f, -10.325887f, -0.20071152f, -5.9973626f, -3.968474f, 3.09189f, -1.7783576f, 0.1953062f, -0.5037622f, -9.427882f, -2.574464f, -0.2872022f, 0.01894744f, -1.3807551f, -3.3288243f, 0.08864605f, -0.14176254f, 0.6994176f, -2.592588f, 0.10172729f, -0.892668f, 0.024463806},
+//        {-10.052881f, 6.984906f, 1.1047839f, -1.4045211f, -0.28321338f, 9.171776f, -0.37304115f, -2.1867568f, -0.9683499f, -0.66589f, 0.3458701f, -4.175087f, 4.87769f, -2.695726f, 5.6379704f, -6.0621114f, -1.7119229f, 1.8465183f, 0.68080306f, -2.1503947f, 1.5916108f, 1.780433f, -0.3812424f, 1.4533328f, -3.3854184f, -0.005151311f, -0.19068937f, -3.143224f, 3.4283628f, 5.7489724f, 3.5461948f, 0.012586101}
+//    };
+
+
+//    const float fc3Bias[32] =
+//    {-11.626858f, -1.349514f, -9.372318f, 5.0239177f, -3.9088044f, -40.95454f, -15.642905f, -15.010235f, 6.417626f, -4.2379055f, -5.1646776f, 2.6740355f, -14.412832f, -2.086157f, -3.2124348f, -3.3375404f, -3.6323268f, -18.70663f, 5.8120136f, 1.5725747f, -20.42584f, 4.667783f, -3.7278218f, -11.045126f, 1.6113156f, 3.151734f, 11.640496f, 12.412202f, -8.234628f, 7.883496f, -0.6465467f, 3.5200396};
+
+
+//    const float fc3Weights[32][32] =
+//    {
+//        {2.6831248f, -4.4955134f, -5.5426955f, 1.4940343f, -9.172581f, 0.97271204f, -0.5832895f, 1.5646566f, 5.7779765f, 1.9770533f, 3.0977783f, 0.77563876f, -8.828412f, -0.9105255f, 0.6344218f, -1.2782247f, -1.1595885f, 0.82867324f, 2.1164122f, -0.7720938f, -15.439497f, -6.509407f, -3.1320221f, 0.059967663f, -15.132107f, 3.1828585f, -0.1753283f, -1.3935773f, 2.7807221f, 2.7552922f, -2.3884315f, -1.1267844},
+//        {6.6640434f, -6.466692f, 1.3339496f, 6.325452f, -1.4555265f, 2.5997794f, 2.0317912f, -0.11982468f, -12.383653f, 0.47374663f, -3.0536327f, 1.3271657f, 2.912844f, -1.0011166f, 2.5777118f, -5.538148f, -3.5479016f, 0.92302567f, 3.4525857f, 0.93188274f, 0.27060428f, -0.25531533f, -2.048662f, -6.5886245f, -0.26020953f, 7.7541056f, 0.5050105f, 1.2951151f, -0.4855247f, 0.9520496f, 0.92540324f, -3.6440644},
+//        {-7.8400054f, -0.96650743f, -10.417799f, -0.50682163f, -1.5168216f, -3.654786f, 0.3343183f, -2.2488067f, -0.2661077f, 1.1789706f, -4.107494f, 1.8627859f, 1.041825f, -0.36242315f, -17.169449f, -0.4124302f, 1.5766137f, -0.16341712f, 2.2455392f, -0.3128347f, -0.3991724f, -0.91876864f, 0.54643935f, -0.60492516f, 1.7346072f, -4.1428576f, -0.8780914f, -3.0820758f, -3.4794867f, -2.9541378f, -0.42510036f, 0.63649565},
+//        {7.0212045f, 1.0967739f, -4.5538683f, -2.4503584f, 2.2522726f, 7.2482986f, -2.6375363f, 2.0146315f, 1.1994785f, -0.75390416f, 6.119258f, -0.33081326f, 1.8496753f, -0.20974289f, 6.5553f, -4.2613735f, 0.76725835f, 0.37288523f, 0.71951336f, 0.004253354f, -0.7412868f, -2.3438783f, -1.7129602f, 4.7772365f, -2.870875f, -7.8762717f, -0.45272648f, 2.4031472f, -2.8487058f, 1.5433558f, -0.16431622f, 2.7374663},
+//        {0.3088886f, 0.3307203f, 0.0038545637f, 0.46553752f, -0.5554034f, -0.20348431f, 0.21098572f, 0.062145468f, 0.088202305f, 0.18943472f, 0.21072812f, -0.15111296f, 0.051719695f, 0.019015137f, -0.3605174f, 0.23167086f, 0.08986041f, 0.3106382f, -0.076905265f, 0.05874602f, 0.30621597f, -0.057096533f, 0.237741f, -0.022404743f, 0.104863815f, 0.019853901f, 0.16820307f, -0.17504682f, 0.08521022f, -0.027018966f, 0.05329839f, -0.023520967},
+//        {-5.6431756f, 4.1123567f, 1.1951563f, 11.919423f, -1.8794509f, 3.1712513f, 1.7473952f, -1.7705579f, -44.936344f, -0.5830683f, -3.8831203f, 14.219821f, 0.27376184f, -1.8738784f, -11.623983f, 3.262544f, 6.1066732f, -0.43056297f, -2.7534328f, 0.48382154f, -1.8401556f, -1.5844074f, 5.412701f, 4.322393f, -0.14314917f, -1.7488464f, 4.9000635f, -3.7664618f, 9.960576f, -0.68967575f, -6.4410467f, -56.480473},
+//        {0.28326088f, 4.696893f, 5.006831f, -3.6735692f, 0.90574616f, -5.8800483f, 0.042472035f, -1.487731f, 16.483643f, 1.2718588f, 2.9016879f, -0.72583604f, 6.5873375f, -0.34822956f, -11.884385f, 15.002716f, 1.7862686f, -13.962526f, 5.18994f, 0.021499423f, 1.0378915f, 0.52630913f, 8.069334f, -2.2334125f, 7.521239f, 6.884711f, -1.2046309f, 11.259116f, 11.230296f, -9.584327f, -2.1205893f, -0.36298397},
+//        {-9.7509775f, -0.8609128f, -0.73513985f, 0.922032f, 1.3304715f, -11.30634f, -1.3198553f, -2.2907236f, -1.029411f, 3.8728771f, -0.64585227f, 1.490638f, 1.1999203f, -0.9091476f, -3.7755518f, -7.063347f, -0.37272906f, -0.3437679f, 0.77063525f, -0.6502122f, -4.6907425f, -0.97836083f, -0.9311217f, -0.48155195f, 1.1028318f, -4.257323f, 0.13203835f, -5.475152f, 1.2448156f, -3.159574f, -9.502999f, -3.9624615},
+//        {-15.433739f, -7.810092f, -0.37957102f, 10.00894f, 4.4952607f, -12.807649f, -4.0599046f, -4.801793f, 0.73406017f, 9.363863f, -0.64650077f, 3.260435f, -1.5484173f, 1.8456827f, -0.3659404f, 4.7156925f, -3.1581204f, 10.051151f, 1.5092742f, 0.79264665f, 2.4820006f, 4.9198937f, -0.5493099f, -6.3790517f, 1.7490286f, -9.10138f, 7.1202974f, 0.9355067f, -1.3158416f, -3.3499496f, -0.00067621f, -7.9132524},
+//        {-21.16808f, 1.5579449f, -4.2444315f, 6.3309956f, -3.726757f, -13.801942f, -4.9073753f, -10.509116f, 4.988498f, 0.5006294f, -6.142712f, 1.8219482f, 0.03755921f, -0.44650847f, -7.6826916f, -13.358486f, 1.1236638f, -28.013832f, 3.3412867f, 1.3019336f, -3.1775968f, -5.546195f, -8.305582f, 0.91808194f, -0.38795388f, 0.7776855f, 2.2767692f, -6.621522f, 8.479031f, -27.310972f, -0.21566634f, -8.246715},
+//        {0.14258733f, 0.20902786f, -0.018203901f, 0.07800326f, -0.07222334f, -0.14881906f, 0.16816212f, 0.25612178f, 0.45741457f, -0.07141378f, -0.0906293f, 0.16928475f, 0.08693396f, 0.22864029f, -0.79223025f, 0.18828192f, 0.013336098f, 0.014493377f, 0.08691919f, -0.11425169f, 0.43243796f, 0.07442798f, 0.23107933f, 0.06913599f, -0.17037126f, 0.023612173f, 0.11938313f, 0.2500578f, 0.24743554f, 0.2577999f, -0.24954143f, 0.17583923},
+//        {1.5990194f, -1.0366396f, -0.25288212f, 2.1531987f, 1.409669f, -0.6022225f, -0.44280818f, 3.9855382f, 0.06915726f, -8.937121f, 2.545173f, -0.7906602f, -1.4569364f, -0.8388769f, 1.3004754f, 0.246562f, -24.17735f, -0.09496073f, -0.6056975f, -0.21848072f, 0.72501254f, 0.10369901f, -7.0799193f, 0.7978794f, -12.698303f, 0.193409f, 0.7049178f, -0.5912632f, -0.96402174f, 1.9265717f, -1.3554481f, 2.7340431},
+//        {-8.332298f, 1.9919211f, 3.0675619f, 15.229589f, -1.3185409f, 0.8737806f, -7.5970163f, 9.290768f, 18.06153f, -5.92627f, 17.836336f, 2.327755f, -9.327044f, 2.9821033f, -8.007122f, 12.618743f, 3.1854756f, -17.91732f, 1.6133273f, 4.2730365f, 8.137906f, -0.10244803f, -14.579142f, 12.59631f, 2.0015109f, 17.563765f, -3.3674638f, 8.076288f, -1.5395219f, 14.594737f, -5.028967f, 5.97321},
+//        {0.6784022f, 0.17874604f, 0.20428422f, 1.6898847f, -5.3594375f, -0.6954463f, -2.3213913f, 0.1904108f, -0.64368254f, -3.157793f, -4.853736f, -1.1060272f, -3.7299206f, -1.3040518f, 0.48819393f, 2.6343439f, 0.007191167f, -2.1489372f, -1.0826794f, -2.1680439f, 1.4685178f, 0.65028393f, -8.642875f, -1.026048f, 0.9590906f, 0.27529073f, -1.9115411f, 0.8038421f, 1.0603914f, -4.5175157f, -1.9094107f, -0.50599325},
+//        {0.5783473f, -8.9641905f, 0.13475236f, 1.8007779f, -3.1327107f, -0.2584388f, 0.73086345f, -8.138723f, -12.803733f, 1.4470732f, -12.050522f, 9.60135f, -28.676044f, 0.27556974f, 2.033702f, 2.2840154f, -9.182361f, 0.18878752f, 1.0675948f, -0.74190015f, -6.019404f, 0.35884273f, 1.8746774f, -5.119238f, 4.4613576f, 3.3155346f, -8.42848f, 2.5321484f, -3.9611285f, 4.041922f, -1.1552551f, -6.8025885},
+//        {2.1402159f, 1.0628688f, -0.400023f, -4.089873f, -21.659088f, -1.5037125f, -2.406332f, 1.149464f, -0.04090214f, 0.008511601f, -4.0007515f, 0.35201585f, -4.843385f, 2.4955769f, -0.97630167f, -1.216846f, 3.1471202f, -4.493033f, 1.1599516f, -0.54867166f, -2.5541618f, 0.467319f, -5.9003844f, 2.4249504f, -2.7233806f, 7.989668f, 1.0308882f, 0.7188654f, 1.2212999f, -0.3069095f, 1.0933104f, -4.1677284},
+//        {3.3490767f, 3.0777035f, -0.28997165f, -0.4062164f, -6.162865f, 4.657236f, 2.484278f, -7.1952076f, 9.887143f, -4.0775013f, -10.068268f, -3.7419055f, -4.428435f, 0.57930255f, -3.7900846f, -7.227961f, 1.8615469f, 0.020258103f, 0.6531697f, 0.7960549f, 3.0491598f, 1.7985086f, 2.935189f, -7.4453816f, -2.3981035f, 11.559943f, -0.12868682f, 6.6751924f, -2.5115573f, -11.790944f, 5.64707f, -10.301181},
+//        {0.9538868f, -0.7637179f, -1.4913262f, -18.88934f, 3.7432516f, -0.23626083f, -0.760115f, 0.35603613f, -3.9746263f, -15.226114f, -6.7906284f, -2.5771635f, -2.0817375f, -14.308349f, 0.63071895f, -1.8601065f, -7.408404f, -0.79035944f, -1.9163043f, -1.2656362f, 5.407153f, 0.26411775f, 1.9955751f, -6.4265566f, 2.917853f, -1.6334728f, -3.3604164f, 2.7993622f, -2.4327345f, -2.23679f, -0.9630017f, -1.2870086},
+//        {-0.5025882f, 1.1790487f, 1.3338101f, 9.495901f, -10.713719f, 0.9651308f, -2.573606f, -2.152307f, -1.196245f, 0.65983164f, -1.0797473f, 1.9549464f, -4.6305923f, 1.154624f, -0.41978753f, 0.70177233f, -0.10286182f, 2.937943f, 3.3497283f, -15.824282f, -9.776005f, -1.9952215f, 0.61950076f, 2.724993f, -0.09036149f, -5.1951275f, -0.25674662f, -3.6986966f, 1.3560708f, -1.2011509f, 0.051559493f, -6.9771957},
+//        {-7.4035373f, 5.1600485f, -4.69383f, -5.9008613f, 1.8471997f, -1.3354447f, -6.1869345f, -3.2639894f, 2.367339f, 2.8426511f, 11.0454235f, -2.753237f, -0.56647027f, -1.6185173f, 1.9957658f, 6.595863f, 3.733098f, 0.73998195f, -2.727706f, -1.745426f, -7.7963824f, 0.6955321f, 5.453936f, 10.372324f, 2.633549f, -6.6095467f, 3.0811222f, -2.1174722f, 0.39025635f, -0.523542f, -1.4637051f, 1.1112385},
+//        {1.6204466f, 1.3209492f, -5.868372f, 13.4881935f, -6.232702f, -0.11523006f, 0.79170215f, 4.0185094f, -3.333121f, 8.980314f, 8.904728f, -2.6895566f, -10.864289f, -0.40871894f, -6.902001f, -5.1474204f, 4.192219f, -9.585855f, -19.935024f, 1.00174f, 2.0049834f, 2.1582184f, -8.243879f, 6.0444603f, -1.583439f, 3.8221707f, -3.2464938f, 12.57682f, -1.0667462f, -4.386673f, -1.1156126f, 2.538872},
+//        {-17.073034f, -21.840431f, -0.12448069f, -5.4427567f, -3.4274716f, 0.12729168f, -4.875463f, -1.1601908f, -2.5333579f, 9.885269f, 4.485741f, -4.106672f, 1.7113214f, -0.06324087f, 2.840915f, -3.5009694f, -20.488132f, -0.08664215f, 5.652096f, 3.5796585f, 20.149979f, 0.08357941f, -1.026016f, 0.29108667f, -11.148219f, -0.34410638f, -2.1049752f, -5.0280685f, -26.939062f, 0.13607068f, -0.27308166f, -2.1993597},
+//        {-0.17579699f, 0.2176594f, 0.04227364f, -0.14671864f, 0.18892919f, 0.07211765f, 0.07415793f, 0.2388806f, 0.36446294f, -0.08590321f, 0.12406814f, 0.25136924f, 0.39125866f, 0.17123434f, -1.040553f, 0.048700184f, -0.14530747f, -0.22883715f, -0.08401002f, -0.056402188f, 0.4382661f, -0.2532995f, 0.29709852f, 0.29719985f, -0.064198725f, 0.09568114f, 0.30269817f, -0.27103597f, 0.2777477f, 0.060215414f, -0.16067553f, -0.11698248},
+//        {-8.819067f, -14.870139f, -4.225622f, 19.680935f, 13.162269f, -20.355497f, 0.015749756f, -5.418908f, -1.046242f, 5.906986f, 12.09053f, 12.218507f, -5.9440017f, -0.85192865f, 0.0057886913f, -12.361271f, 6.6372223f, 5.001172f, 7.289707f, 3.5604196f, 7.4272404f, -0.6778449f, 7.7842035f, -12.165356f, -22.357273f, 10.980887f, -9.458869f, -7.725956f, -0.59767693f, 3.9570143f, -28.076708f, -5.0593443},
+//        {-0.108586214f, 0.8491657f, 0.40846497f, -4.2162685f, 1.09542f, 0.097222626f, 3.663135f, -5.3608904f, -7.447206f, -4.5811834f, 2.7488427f, 3.443404f, -0.70934224f, -8.599037f, -1.755614f, -2.3146174f, -3.7573464f, -0.9518419f, -2.0529008f, 0.24073935f, 0.8772135f, 0.77532244f, -0.010015737f, -1.1113634f, 0.8591777f, 2.2183585f, 0.13677748f, -2.622197f, 0.75366753f, -2.712298f, -1.0744858f, -0.6882756},
+//        {-0.90747195f, 0.98834753f, -12.803673f, -1.5113475f, -0.94200927f, -3.0428562f, 1.6891762f, 1.4379904f, -1.6395735f, -4.682228f, 0.9705862f, -0.29608917f, -3.948672f, 2.4202282f, -5.174419f, 3.3402805f, -1.443117f, 1.6071632f, -3.5201197f, 1.4799823f, 3.9119768f, -3.530535f, -1.2659082f, -6.831232f, 1.855224f, 8.419732f, -11.813911f, 0.34711084f, 2.0100627f, -0.7429211f, -12.290348f, -0.77084243},
+//        {0.27965063f, 0.27758142f, 0.20745192f, 1.0612024f, -0.51094055f, -0.08370326f, -0.037472457f, 0.044123333f, 0.07616475f, 0.42481086f, -0.0698172f, 0.21660034f, 0.19836904f, -0.28605413f, -1.6465003f, 0.24952966f, -0.16262677f, 0.25169638f, 0.33610946f, 0.10928392f, 0.53764296f, 0.23835279f, 0.029037314f, 0.010176629f, -0.28185803f, -0.18325365f, 0.3092609f, 0.19176334f, 0.09629367f, 0.20633617f, 0.08339015f, -0.022787755},
+//        {-2.4809327f, -0.7156183f, -0.07612088f, -10.42435f, -2.798917f, -0.97597724f, 0.8712458f, -3.368576f, 5.1590147f, 1.1134121f, 5.578238f, 0.022185886f, -2.294222f, 0.49463937f, -0.71157813f, 2.4491267f, -0.6251125f, -0.39211804f, -0.6629393f, -0.09530408f, -3.1588972f, -0.42726988f, -1.658225f, 0.99961674f, -4.3927073f, -5.117899f, 4.361399f, -0.74864674f, 2.0207748f, 0.95523643f, -1.2198546f, 1.4445705},
+//        {10.949101f, 2.0395255f, -23.644606f, -14.1644f, -5.214726f, -9.942036f, 2.6494458f, 7.0667934f, -5.671373f, 3.3834453f, 2.8819098f, 0.27790964f, -8.190017f, 0.13760129f, -2.5664642f, 1.0670519f, -0.4054258f, 1.6281005f, -5.2472534f, 2.4202917f, -6.9134483f, -0.10936404f, -9.597802f, -8.272098f, -23.394186f, -3.703891f, -14.401303f, 9.604623f, 8.895963f, 3.2631905f, -11.942595f, 1.4563167},
+//        {-1.1745272f, -0.27557215f, 1.9462359f, -1.0942852f, 2.2147815f, 5.2577825f, 0.44096676f, -11.000947f, 2.2804732f, -2.675235f, 0.2643595f, -0.5675499f, 2.5162954f, -0.8245577f, -11.416575f, -8.964938f, -0.25215003f, 0.7626508f, 1.9191246f, 0.09376732f, -2.0528247f, 0.086576335f, 0.5161473f, -9.885663f, -0.31933555f, -0.8713748f, 1.2243863f, 1.601354f, -8.624075f, 4.0158944f, -0.5711936f, -11.475857},
+//        {1.1071237f, -1.754836f, -0.5278198f, -3.9759343f, 1.8432f, -1.7886511f, -0.6634945f, -7.1604342f, -2.3928356f, -0.6567468f, -0.3547941f, -5.8756423f, -0.08779283f, 1.0606128f, -2.2515717f, -0.756617f, -1.4497243f, -0.43028793f, -0.9177648f, -0.45272765f, 1.2167006f, 0.762876f, -1.0052495f, 0.78127396f, 0.9806698f, 2.2603147f, 1.4846536f, -0.8055759f, -1.2293768f, -1.2963456f, 0.8767455f, 1.120016},
+//        {0.13468753f, 0.12094364f, -0.87016183f, 0.07498481f, 0.2894364f, 0.20386946f, 0.29222554f, -0.071803115f, -0.0066290214f, 0.44156998f, 0.28492412f, 0.16992731f, -0.082463205f, 0.3661464f, 0.14938426f, -0.18572776f, 0.17422286f, 0.113349535f, 0.056831695f, 0.051568907f, 0.13662575f, -0.026493082f, -0.013057242f, 0.14288992f, 0.19464271f, 0.050465144f, 0.12859644f, 0.19824149f, 0.25516936f, -0.1986374f, -0.14091456f, 0.1188877}
+//    };
+
+
+//    const float fc4Bias[16] =
+//    {-1.5801663f, -5.7106977f, -6.507955f, -15.219874f, -4.9331303f, -1.956595f, -4.1715784f, -14.133401f, -33.762524f, 5.821844f, 9.873775f, 0.9787893f, -9.723649f, 9.240744f, -8.434304f, 0.76460505};
+
+
+//    const float fc4Weights[32][16] =
+//    {
+//        {0.56238085f, -3.0397754f, 0.21714959f, -1.7992656f, -2.0850203f, -0.6649371f, -0.46362337f, -0.5546455f, 3.317993f, -2.6324725f, -11.336797f, -0.0026070627f, 0.11525108f, -0.46432462f, -0.49703136f, -2.157538},
+//        {-2.9159844f, -0.9478042f, 3.107508f, 5.6307993f, 1.1747048f, 1.392608f, 0.82697725f, 1.4300385f, 1.5438035f, -5.103981f, -2.6230364f, -17.231888f, 1.5110964f, -0.48502326f, 0.22955129f, -11.242066},
+//        {-2.5529926f, 16.616896f, 7.833677f, 19.66502f, -8.208761f, 2.0700674f, -8.136614f, -3.5872452f, 2.0356345f, 7.9162073f, -8.353474f, 11.927772f, 2.103749f, -0.28891376f, -2.7275257f, -27.634613},
+//        {-0.5182607f, -0.7870561f, -0.4268821f, -2.2260294f, -1.0712844f, 0.4003633f, 0.55872524f, -1.3913051f, -2.9625115f, -1.6389148f, 0.5098196f, -6.629347f, -0.1307074f, -0.21493466f, -0.52973616f, -14.910885},
+//        {1.0228734f, -0.051126376f, -1.9083009f, -17.341444f, 0.02610417f, -1.2519653f, -9.050514f, -1.2991875f, 4.2719283f, 1.3659542f, 0.09870705f, 0.17525083f, -1.4532083f, 1.5136187f, 0.77203f, -0.188271},
+//        {0.46822557f, -12.583177f, -0.59535456f, -0.48390794f, 6.343938f, -4.4385495f, 2.5149865f, 1.5208083f, -3.1317008f, 2.089563f, -3.9305453f, -14.557289f, -0.3229449f, 2.4018145f, -3.4494681f, -3.3720644},
+//        {-0.5414332f, 2.2325897f, -3.7476182f, 7.886683f, 0.91637605f, 0.82154775f, -0.5906309f, -2.3020644f, -4.372889f, -2.677223f, -4.9526095f, -17.854837f, 0.5711343f, 0.36653444f, 0.43021208f, 7.4917846},
+//        {-2.7861702f, -2.3827384f, 1.6655037f, 5.664285f, 3.590246f, -5.9533625f, 1.8310407f, 1.5954102f, -2.108971f, 10.778965f, 4.5069685f, -9.952345f, -0.6195708f, 0.38597986f, 1.2979568f, 5.0903378},
+//        {0.14803536f, 0.07229686f, 0.020760344f, -1.1697431f, -0.41120517f, -0.25661838f, -0.5087365f, -0.07783286f, 1.3671141f, -0.098727055f, -1.1402252f, -0.5169756f, -0.7208456f, -0.08261165f, 0.008844413f, -0.21104242},
+//        {1.3752433f, 3.8321037f, 2.2480047f, -0.3410616f, 1.6465849f, 0.6669397f, 3.3903208f, 0.99921566f, -3.191796f, -6.5844736f, 4.04545f, 1.3047059f, -0.3711203f, -1.6781158f, -3.5039978f, 0.53901464},
+//        {0.21932366f, -1.804592f, -0.14769164f, 0.44113427f, 0.87809753f, -1.1515367f, -1.7162144f, -0.71964246f, 1.7802873f, -3.0904794f, -4.2510686f, -1.9964919f, -1.5377743f, 0.05871769f, -0.7137625f, 0.5588719},
+//        {0.40986887f, 1.8595752f, -1.2893298f, -12.021264f, -0.29613614f, -2.1362286f, -1.0004483f, 0.042530302f, -17.400745f, 1.1355108f, -0.45261592f, 0.91593415f, -0.9535729f, -0.71174616f, 0.64465404f, 5.03776},
+//        {-0.09899603f, 1.6266836f, -1.4003546f, -22.332172f, -1.6078504f, 1.1703284f, -12.327816f, 1.6878431f, 7.0676684f, 4.3838325f, 1.3641676f, 1.7940197f, 0.28998172f, -2.044945f, -0.79100424f, -23.311504},
+//        {-0.4899493f, -0.884765f, 0.94459784f, 6.5274763f, 6.9163322f, 5.618434f, 5.531959f, 0.35670832f, 11.535225f, 8.998099f, -6.857174f, 6.586155f, 5.599372f, 1.1791843f, 0.050386056f, 0.21595243},
+//        {1.8238914f, 1.764126f, -0.15980159f, 3.8037841f, 0.11102001f, -1.0857004f, -2.6215258f, 0.4884136f, -11.367793f, -31.72133f, 0.026312366f, 2.1543734f, 0.7334969f, -0.089642994f, 0.6859032f, -1.8920664},
+//        {-0.45700255f, -0.7361905f, 0.4131514f, 1.3011111f, -12.453678f, -2.1469142f, 2.4600413f, -2.7513914f, -10.118741f, 4.160841f, -0.1810429f, 0.64680463f, -1.7290046f, 0.0056985854f, -1.6208024f, 0.3063948},
+//        {-0.13116711f, -2.724775f, -3.7448587f, 2.340339f, -1.3638133f, -2.8564413f, 4.8727794f, 2.220389f, 6.5711894f, 8.083837f, 5.3274627f, -3.7865849f, -1.9483864f, 1.901837f, -0.7383015f, 1.9678802},
+//        {-1.6284227f, -3.36753f, 1.909432f, -0.6339842f, -1.8378332f, -2.4178948f, 7.660271f, -5.1712923f, 4.7919555f, 1.6175585f, -8.135669f, -0.67276174f, 2.3583243f, -2.9098449f, 1.147051f, -7.390245},
+//        {0.07185825f, -3.6374776f, -0.34848598f, 0.23350984f, 1.7622637f, -0.9118698f, 0.12927918f, -0.42762908f, -5.916525f, -0.77167565f, 0.83428097f, -1.2868841f, 0.053342696f, 1.8129255f, 0.014200038f, 1.578488},
+//        {-0.082029626f, 5.0630965f, -4.8816094f, 8.861971f, -0.14090073f, 6.7073207f, -12.300684f, -1.568069f, -27.37352f, -1.4254571f, -11.550296f, 5.4501877f, -2.9976478f, 3.4415216f, -0.84561366f, -21.178164},
+//        {-3.2324476f, -7.5048823f, -1.3809435f, 0.5848171f, 1.0766163f, -1.1140586f, -3.4171658f, -0.565198f, -2.1036713f, 1.4585761f, -1.3171655f, -1.1541417f, -1.120689f, -1.972421f, -2.515485f, -12.830891},
+//        {0.5466138f, 5.340821f, -0.11266608f, 1.0864142f, 7.8647647f, 3.334151f, -7.806899f, 3.8629494f, 6.1866474f, 6.6908956f, -1.2030203f, -0.18893866f, 3.9145195f, 1.9709027f, 1.1972318f, 9.323808},
+//        {1.9036609f, -8.532006f, -1.0697482f, 6.654297f, 3.9733307f, 3.0426931f, -9.609337f, 1.088387f, -19.063456f, -2.613097f, -2.1883066f, 4.3143935f, -0.31363636f, 1.1334413f, 0.8626488f, -0.99726},
+//        {-0.95305145f, -15.290289f, -0.71515304f, -7.7542124f, -8.0915365f, 3.3771508f, 2.699354f, -1.1801528f, -0.15334368f, -2.1855893f, -2.7360086f, 6.6385317f, 0.40349072f, -0.18532908f, -0.64179826f, -2.2558835},
+//        {-0.05414181f, -0.22454357f, 2.391725f, 3.6586432f, -1.5495913f, -0.36354113f, 2.4815335f, -0.8740155f, -2.4841752f, -4.977187f, -1.0754834f, -6.7267213f, 1.5983422f, 1.7031977f, 0.22868828f, 0.016446419},
+//        {0.03750331f, -0.032138113f, -0.25755268f, -0.4551118f, -0.8602618f, -0.3347496f, 0.73593086f, -0.44143897f, -1.4067283f, -0.75800633f, 2.6738737f, -1.2532781f, -0.8102915f, 0.2794467f, -0.38057443f, -0.67397356},
+//        {-0.49723914f, 0.029330159f, 0.39815906f, -1.1869856f, -1.2082859f, 0.30459142f, 0.07853545f, 0.4977005f, -3.37226f, -1.1693447f, -0.9642942f, 0.23964794f, 1.4759054f, 0.0012406739f, 0.21420333f, -0.34833124},
+//        {-0.05352296f, -1.9148537f, -0.16909526f, -4.993688f, -0.4883091f, -0.05227033f, -0.75578165f, -0.18961945f, -7.2197385f, 0.6790277f, 0.66547275f, 0.48027667f, 0.9890905f, 0.24404792f, 0.5673923f, -0.9879157},
+//        {1.6561393f, 3.0830727f, -0.74564874f, -4.3011284f, -0.52795434f, 1.1036724f, -1.8559978f, -0.14236055f, -0.44651356f, 0.44570142f, 0.47354952f, 1.3912429f, 0.010758217f, -0.57681906f, -0.24128853f, 0.9867925},
+//        {-0.25847346f, 0.7993898f, -0.9416813f, -13.92774f, 0.5049233f, 2.4638858f, 2.8190415f, 1.7000062f, -1.8694353f, 0.5626202f, -0.52264583f, -0.3262518f, -0.81089294f, -1.9809825f, -1.8797697f, 0.9524579},
+//        {-0.2934239f, 1.9209585f, -2.9957645f, -3.725883f, -12.826668f, 0.4538767f, -0.6946423f, 0.64159137f, 4.607628f, -15.334194f, 3.8978179f, 0.0038737606f, -0.7324011f, -2.304237f, 0.079147115f, -1.5144109},
+//        {-0.85019904f, 10.603733f, -0.42874137f, 8.563852f, -15.766857f, 13.883514f, -2.4326727f, 0.8265381f, -4.369171f, 6.266809f, 13.916177f, -8.880743f, 6.743208f, 2.8913302f, 2.7752159f, 16.145699}
+//    };
+
+
+//    const float fc5Bias[8] =
+//    {-25.259504f, 5.6391354f, -25.816568f, -9.096108f, 7.828989f, -25.70257f, -0.009333595f, 7.9045005};
+
+
+//    const float fc5Weights[16][8] =
+//    {
+//        {-9.307203f, -0.19314575f, -5.528223f, 0.013239182f, 0.16719459f, 0.027883798f, -0.8218508f, -0.025968282},
+//        {-0.97859055f, 0.09182135f, 1.0133168f, 0.24412544f, -0.23705243f, -0.039308112f, 0.29450038f, 0.1926721},
+//        {-3.9250305f, -0.10867976f, -13.185176f, -3.9776928f, 0.23029353f, 0.57671756f, -4.108808f, -0.076916374},
+//        {-2.7633615f, -0.19978073f, -5.537154f, 0.23044616f, -1.570707f, -0.13473718f, -0.17602885f, -0.07151861},
+//        {-0.17042409f, 0.07859923f, 0.8986792f, 0.24046656f, -0.4258496f, -0.016353779f, -0.8967395f, 0.27535945},
+//        {-0.3653936f, 0.06486343f, -3.1070416f, -0.15682282f, -1.3299732f, -1.1759338f, -0.4994709f, -0.10265558},
+//        {-4.259094f, -0.11701631f, -1.8780426f, 0.00056667766f, 0.10116402f, 0.0047641457f, -0.34580395f, -0.078354},
+//        {-1.1465675f, 0.025982728f, -9.465647f, 1.3296916f, -0.7958228f, -1.9341754f, 0.01705435f, -0.16730289},
+//        {0.34962693f, -0.11511998f, -0.5092686f, -0.06601961f, 0.17001894f, 0.5153995f, -0.15973818f, 0.0706943},
+//        {0.13373552f, 0.06066018f, 0.008725825f, -0.5618891f, -0.750111f, 0.018318675f, -0.00069643377f, -0.024359178},
+//        {0.087909386f, -0.07264094f, -2.7280958f, -1.1823826f, -2.762611f, 0.26194477f, -3.5255816f, -0.109285444},
+//        {-1.4585793f, -0.17163578f, 0.86795115f, -1.41756f, 0.13541968f, 0.47914818f, -0.06183842f, 0.08933238},
+//        {-0.029534902f, -0.092530124f, -10.636531f, -2.9060192f, -0.37845507f, -0.050379146f, -0.21643645f, 0.08562727},
+//        {-0.46695334f, 0.1272523f, -3.4165366f, -3.9639747f, -0.1673427f, 0.070585415f, -0.99679786f, -0.14988084},
+//        {-8.576644f, -0.11040724f, 4.0571685f, 0.3210012f, 0.10250335f, -0.2888597f, -0.8909691f, 0.14389941},
+//        {-4.5858135f, -0.07161462f, -0.254622f, -0.38845152f, 0.121349275f, 0.11697207f, -0.7694772f, 0.16180813}
+//    };
+
+
+//    const float fc6Bias[1] =
+//    {-0.1999227};
+
+
+//    const float fc6Weights[8][1] =
+//    {
+//        {-0.032033958},
+//        {0.03178262},
+//        {0.009037968},
+//        {-0.0108014885},
+//        {-0.038279105},
+//        {0.015250896},
+//        {0.013847462},
+//        {-0.025045853}
+//    };
+
+//}
+
 namespace torqueEstimation
 {
-    [[maybe_unused]] static float vel_factor = 459.0;
+    [[maybe_unused]] static float vel_factor = 3.0;
     [[maybe_unused]] static float pwm_factor = 1700.0;
 
+    const float fc1Bias[32] =
+    {-0.16980676f, 0.26994336f, -2.1925f, -0.09974048f, -0.040749375f, -0.58257467f, -0.33320472f, -0.14128444f, -6.145697f, -5.3528833f, 9.295793f, -0.12272272f, -1.1053843f, -0.42706624f, -0.09272681f, -0.18668996f, -0.10075914f, -0.10249945f, -0.24018285f, 3.6277905f, -0.028640358f, -0.30206567f, -4.562958f, -0.011242941f, -0.13553949f, -1.7838428f, 1.4745395f, 0.14751163f, -0.17111687f, 0.360957f, -0.27888083f, 3.2775214};
+
+
     const float fc1Weights[5][32] =
     {
-        {-0.2055357695f, 0.1997956634f, 0.0573679060f, 5.6070003510f, -0.0359823219f, -0.6203082204f, -3.5134258270f, -0.0713983923f, 0.0685816705f, -0.0381882004f, -1.7217775583f, -3.8536903858f, -0.3756493032f, -0.1594707817f, -6.3813128471f, -0.3226724863f, 0.2063246369f, -0.6387553811f, 0.0372939110f, 3.8864912987f, 1.4991726875f, 4.3318767548f, -1.9102532864f, -0.0856776312f, -0.5104419589f, 0.3844818473f, -0.5385549664f, 0.0184886176f, -0.2233840525f, 0.3443737030f, -0.1556139588f, 8.5595130920f},
-        {0.2853892446f, 0.9347148538f, 0.2580135465f, -5.0483689308f, -0.1692553312f, 0.6664142609f, -0.8050979972f, -0.1831562817f, 0.2196862400f, 0.0588629805f, 2.8238334656f, 4.0935006142f, 0.3776662350f, 0.1199822798f, 6.6613926888f, -0.1866912246f, 0.0059743905f, -4.2951517105f, -0.1723812819f, -3.6761276722f, 1.8258478642f, -1.4123811722f, 1.8817381859f, -0.3389021456f, 0.4059905112f, -0.3896758854f, 0.7206512094f, 0.2583603859f, -2.8177876472f, -0.2914963961f, 0.4590151906f, -9.9321269989f},
-        {-0.5632920861f, 0.1988572478f, -0.5542681813f, 5.7822799683f, 0.3820048273f, -0.2525918782f, -3.3970746994f, 0.2208536267f, 0.0045266999f, 0.3900515437f, -1.7668331861f, -3.6709997654f, -0.2005964518f, 0.1454627365f, -6.3249039650f, 0.2582260370f, -0.2433532774f, -0.9390440583f, -0.5737978816f, 4.1182165146f, 1.6590707302f, 4.8758029938f, -1.8478810787f, 0.0048876349f, 0.1774665117f, -0.1789420843f, -0.5673617721f, -0.2723075449f, -0.3745986819f, 0.0240579937f, -0.2824915946f, 8.3010101318f},
-        {0.4449025393f, 0.6115619540f, 0.0187926833f, -5.4022917747f, 0.0334641673f, 0.4216177166f, -0.8479185700f, -0.4422490299f, -0.2795608342f, -0.3466927111f, 2.2280035019f, 3.5217893124f, 0.1864205599f, -0.1767526865f, 6.5718340874f, 0.3395559490f, -0.0630193949f, -4.2917470932f, 0.4928318858f, -3.4380824566f, 2.2824761868f, -1.3895356655f, 1.8980522156f, 0.3309353590f, 0.0092654871f, 0.2050092816f, 0.4185230136f, -0.0931341946f, -3.0571875572f, -0.0199668277f, 0.0238261241f, -10.0575485229f},
-        {-0.0596951246f, -1.8140755892f, -0.1749392897f, 0.2104561627f, -0.2132787555f, -0.1574463993f, -6.4865732193f, -0.7267509699f, -0.1174281165f, -0.0856533423f, 0.4403370619f, -0.6915963888f, -0.2986042798f, -0.3891125619f, 1.3234760761f, 0.0340486430f, -0.0694809407f, -7.1216664314f, -0.1790750027f, 1.6705595255f, -5.9638838768f, -0.9045498967f, -0.1985210180f, -0.1773930788f, -0.1488362402f, -0.0660701320f, -0.0532661825f, -0.1185604334f, 0.3091884255f, -0.1427213848f, -0.0880882740f, 1.5660281181f}
+        {0.38993168f, 2.2224703f, 9.603384f, 0.33511007f, -0.044520352f, 15.878335f, -0.6432682f, -0.07725046f, -4.120412f, 4.3209043f, 8.606368f, 0.044174366f, 13.801517f, -0.39009655f, 0.32876113f, -0.112594455f, -0.030761613f, -0.118289374f, -17.70762f, -14.6012f, 0.2984976f, -0.11950688f, 0.051638503f, 1.6833673f, -0.31972337f, -0.7774141f, -7.211493f, 1.5416558f, 0.015661843f, 0.39483646f, -0.23410058f, 12.077286},
+        {-0.19974203f, -0.93000335f, -3.5148702f, -0.01626744f, 0.018566411f, 2.5893433f, 6.98179f, -0.044998247f, -4.552548f, 1.1888784f, -6.9420567f, 0.24176499f, -10.924993f, -0.02522945f, 0.09748432f, 0.39023137f, -0.28367123f, 0.048401784f, -1.3582946f, 6.7572865f, -0.077664346f, -0.1988372f, -1.1387277f, 0.1909675f, -0.14328295f, -5.2647877f, -7.479315f, -0.9983075f, 0.2013786f, -2.255022f, 0.45991233f, -6.891433},
+        {-0.18206456f, 1.9007896f, 9.32612f, -0.19510064f, 0.0053031216f, 16.45895f, -0.64397395f, -0.21561155f, -4.8175764f, 4.602464f, 8.25624f, -0.2766819f, 14.4477625f, -0.4067573f, -0.2607554f, -0.2682717f, 0.17359637f, -0.0677453f, -17.542273f, -14.297731f, 0.21268314f, 0.5703454f, 0.12058251f, 2.2164826f, 0.08706642f, -0.40863097f, -7.1613135f, 1.3731766f, -0.24124904f, 0.8484993f, -0.31728634f, 12.069828},
+        {0.017969765f, -1.7113672f, -3.5777116f, -0.08651627f, 0.0032935648f, 3.1249268f, 6.978746f, 0.23616143f, -4.865147f, 1.2145063f, -6.81736f, -0.08236024f, -11.187037f, 0.57231086f, -0.17743187f, -0.14098218f, 0.173937f, 0.06843647f, -1.5479716f, 6.711779f, 0.3066708f, -0.13235904f, -1.6179054f, -0.14377287f, 0.3105607f, -5.52721f, -7.1766357f, -1.3947288f, -0.015423074f, -2.0164618f, -0.10505105f, -6.8934336},
+        {-0.34205815f, -0.2626863f, 0.17063111f, -0.35764512f, 0.04428321f, -0.1697224f, -0.07391724f, -0.37947303f, 0.24839932f, 0.23418152f, -0.23645417f, -0.33066875f, -0.19210157f, -0.16795783f, -0.34705806f, 0.12497914f, 0.37148726f, 0.20467919f, -0.1568616f, -0.09960741f, 0.25018013f, 0.07886663f, 0.34574914f, -0.40105188f, 0.33387697f, -0.33532098f, 0.32188654f, -0.099698424f, -0.33172235f, 0.18135023f, 0.11229843f, 0.25068903}
     };
 
 
-    const float fc1Bias[32] =
-    {-0.2996839881f, -2.2546701431f, -0.5477045178f, -1.2242631912f, -0.2746987045f, -0.5186939240f, -6.1057929993f, -0.9974002242f, -0.2025506645f, -0.2643158436f, -0.5174910426f, -0.6349564195f, -0.5265557766f, -0.5465639234f, -0.8746579289f, -0.2214775383f, -0.3936641812f, -9.3305616379f, -0.3976268172f, -0.0949812457f, -4.9294414520f, -0.2506873310f, -1.1473840475f, -0.2789034545f, -0.2843038142f, -0.1568380445f, -0.3574894667f, -0.1897565275f, -0.0161396451f, -0.5330590010f, -0.3432305753f, -2.3037126064f};
+    const float fc2Bias[32] =
+    {0.40227157f, -1.3547263f, 2.3703637f, -1.0284232f, -0.248257f, -2.6718383f, -3.0875826f, 0.009840164f, 0.37588558f, -0.42370635f, -0.09065635f, -2.2102888f, 0.3747036f, 2.5925505f, -2.7346334f, -0.08784565f, 0.5258246f, -10.484859f, 1.5748776f, 1.8451533f, -1.9094563f, -4.145229f, -0.16630115f, 3.7382243f, -4.444213f, -1.1657159f, -0.08405621f, 1.7508072f, 0.03492723f, 2.889157f, 1.2208744f, -0.054815926};
 
 
     const float fc2Weights[32][32] =
     {
-        {0.7028352022f, -0.2518471181f, -0.3251887262f, -0.1293392181f, -0.0480363145f, -0.2164561749f, -0.1114568934f, 0.0847787485f, 0.2538841367f, 0.0906840563f, 0.2075847685f, 0.0800402164f, -0.2112799883f, -0.3601601422f, -0.2693049312f, -0.3371258378f, 0.1860402822f, 0.1293898672f, 0.5152844191f, -0.0005433710f, -0.3649958968f, -0.5045146346f, 0.7517039180f, 0.0467921384f, -0.0150561901f, -0.2420729399f, -0.2145421207f, -0.7155304551f, 0.1590870321f, -1.1922683716f, 0.1453628838f, -0.3018942773f},
-        {0.4329630733f, 0.2430671006f, -0.8269199729f, -0.1718535721f, 0.6189324260f, -1.1788749695f, 2.3799111843f, -1.0581681728f, -1.0104187727f, -0.6895720959f, 0.6333325505f, 0.1227911711f, -1.3420652151f, 0.0161968544f, -0.9277707934f, -1.6182627678f, 3.4310810566f, -0.0272786003f, 0.9764053226f, 1.7808814049f, -1.4981951714f, -0.2589629292f, 0.0806718767f, -0.0988150090f, 0.0121101709f, -3.1666336060f, -0.9463910460f, -1.3826171160f, -0.1921611279f, -0.4246963561f, 0.0819954872f, -1.1248966455f},
-        {0.3439708948f, 0.1729307026f, -0.4266345203f, -0.1223015115f, -0.2364580184f, 0.0005747200f, 0.1383670121f, -0.0798279345f, -0.0409396328f, 0.2926900089f, 0.4414319098f, -0.0774125233f, -0.0639059693f, 0.0000417514f, -0.3764672279f, -0.2038611472f, 0.1025535613f, -0.2993794680f, 0.0265453998f, -0.0355118513f, 0.2918146253f, -0.4358098209f, 0.0194903836f, -0.0299784839f, -0.2588784993f, -0.2383993119f, -0.2728497982f, -0.3301697373f, 0.1411939114f, 0.1025134176f, -0.3637280166f, 0.1707316041f},
-        {-0.3416239917f, -0.1238532588f, 0.0436132401f, -0.3475806415f, -2.6594336033f, -0.9691415429f, -2.7146120071f, -0.4172722399f, -5.5016303062f, -3.0360279083f, -0.4493477941f, -0.3950566947f, -1.1143312454f, 0.0175548382f, 0.5904526711f, -2.4258356094f, -6.8880228996f, -0.3979260027f, -0.5621471405f, -8.3594980240f, -0.5225185752f, -0.0404085517f, 2.6085379124f, 0.0378435813f, -0.0098032495f, 2.7800383568f, 2.0576617718f, -1.8591514826f, -0.7343788147f, -0.4695331156f, 0.1112806350f, 1.4430732727f},
-        {-0.0525006801f, 0.3783730865f, 0.1891198754f, 0.0213207081f, -0.2073568851f, 0.1397801638f, 0.0859736055f, 0.2507794499f, 0.1215454638f, -0.1463970691f, 0.1565153897f, 0.0612230189f, 0.2093681097f, 0.1229698434f, -0.0846480504f, -0.2200313061f, 0.2009770274f, 0.0123162027f, -0.0025048242f, 0.0691637024f, -0.0181692336f, 0.2928285897f, -0.0372800417f, -0.3242078722f, 0.2153842747f, 0.0912938938f, 0.0259480923f, 0.2408835292f, -0.0780527815f, -0.0694554597f, -0.5314068198f, -0.3713911176f},
-        {-0.3659447432f, -1.0637227297f, -0.6574027538f, 0.1915589571f, -0.0923616737f, -0.6854819655f, -0.7665759921f, -0.3916678429f, 0.0046403264f, 0.1432497799f, -0.9219073057f, 0.3549784422f, -0.1066768840f, 0.0990313441f, -0.9819003344f, -0.6210372448f, 0.1118606776f, 0.2755944431f, -0.8569695354f, -0.1976287961f, -0.2853681743f, -0.6686331034f, 0.2660720646f, -0.1277324557f, 0.0465747900f, 0.4344924688f, -0.2714323103f, 0.2368822843f, -0.0763014555f, -0.2818318605f, -0.3344349861f, 0.1119496822f},
-        {-8.4284162521f, -0.5330117941f, 0.2430908680f, -0.9680790901f, 17.7502479553f, -11.1728906631f, -9.4553775787f, 6.4060249329f, -19.9450950623f, -9.8665761948f, -0.4943230152f, -0.0203626100f, 3.4065568447f, 0.1984576881f, 0.1283037961f, -1.1749160290f, -14.7431478500f, -0.9983112216f, -2.9252219200f, -6.1029782295f, -3.7169921398f, 0.0391248949f, -5.0480856895f, 0.1063139364f, -0.0771418661f, 9.4767627716f, -4.7266154289f, 2.5198585987f, -0.2968094051f, 0.0457970649f, -0.0931691378f, 5.0110268593f},
-        {-0.3695061207f, 0.1182122529f, -0.1756125242f, -1.9989162683f, -0.1902875155f, -0.5620827079f, -1.4479638338f, -0.0801911950f, 0.1420777738f, -1.3847892284f, -0.7704963088f, 0.0931626707f, -0.1455746740f, -0.2081220299f, -0.1101334319f, -0.1995007843f, 0.1743076593f, -0.2777135074f, -0.5316527486f, -0.7597036958f, 0.1699331254f, -0.0814936012f, -0.1331967264f, -0.1476776600f, -0.1340599060f, -0.1023281068f, -0.0449587218f, 0.5310350657f, -0.4073688686f, -0.1218718365f, -0.3036770225f, 0.5314686298f},
-        {-0.6574068069f, -0.4164880514f, -0.0907117650f, 0.0752569512f, -0.1371883452f, -0.0603592172f, -0.4597431421f, 0.1653049141f, -0.2182130367f, -0.1304199547f, 0.1074393615f, -0.0336866528f, -0.2670994699f, -0.0481679738f, -0.0528879240f, -0.0296069179f, 0.2772396803f, -0.0399867371f, 0.0935128778f, -0.2692438662f, 0.1292352676f, -0.4318626225f, 0.0235706642f, -0.0248435289f, -0.0899237916f, 0.2455069125f, -0.3291662335f, -1.0510460138f, 0.0582070835f, -0.0467071161f, 0.2144248039f, 0.2426371127f},
-        {-0.3157160878f, -0.4219513237f, 0.0111433808f, 0.0273274425f, 0.2885468304f, 0.4742646515f, 0.4801633060f, -0.0572001375f, -0.3388701677f, -0.6163141727f, -0.3216553330f, -0.1361154020f, -0.2719146311f, -0.0309467372f, 0.0720715001f, -0.5097295642f, 0.1592271924f, -0.1735037714f, 0.2940475941f, -0.3154088259f, 0.1547768563f, -0.3129318058f, -0.4059058130f, -0.1461700797f, -0.2799991965f, -0.2784145772f, 0.2787654102f, -0.7949113846f, -0.3778579533f, -0.0571825393f, 0.3065904379f, 0.5446800590f},
-        {-11.8102788925f, -0.5548009276f, -0.4933342040f, -0.0146987140f, 14.7732305527f, -3.3242385387f, -4.3986229897f, 0.9681160450f, -11.3604030609f, -8.9482917786f, -0.5679091215f, -1.4008077383f, -12.8347654343f, -0.3398197591f, -2.0602822304f, -10.3154926300f, 3.3564658165f, -0.3715273142f, -1.1404612064f, -0.5240572095f, -5.8742475510f, -0.8057600856f, -1.5432174206f, -0.0802463219f, -0.1602455229f, -0.8414320946f, -4.2538943291f, 4.6012043953f, -0.2584485114f, -0.3790409267f, -0.7869391441f, 0.8633705378f},
-        {-1.0586528778f, -0.1419243515f, -0.0970374048f, 0.2961471677f, 3.8987035751f, -2.2678067684f, -1.4299131632f, 0.7676140070f, -9.9476909637f, 5.8023109436f, -3.9433639050f, -0.4502748251f, 0.8263508677f, -0.2590869963f, -0.0040865224f, -2.3295035362f, 0.8782870770f, -0.6496896148f, 0.4475262761f, 2.5988130569f, 0.7252852321f, -0.4031449258f, -0.9870574474f, -0.3840217292f, -0.2451169640f, 1.9900392294f, 1.5628668070f, 0.8736712933f, -0.0124829793f, 0.0401136354f, -0.3562023640f, 0.2699736655f},
-        {-0.0120646609f, 0.3022353053f, -0.1795586795f, -0.0325300470f, 0.1483502388f, -0.3772916794f, -0.0676282048f, 0.2362668216f, -0.0225414429f, 0.4359962046f, -0.0775927231f, -0.0436186716f, -0.4518926442f, 0.1925306767f, -0.0252785441f, -0.2602519393f, 0.0216296762f, 0.0660978556f, 0.0655388087f, 0.1850759685f, 0.1910172254f, 0.1433989257f, 0.0925811827f, -0.1367113143f, -0.3113737106f, 0.0142191835f, -0.4499391317f, -0.6342935562f, 0.0016022279f, -0.0294085406f, -0.4484280348f, -0.1730211675f},
-        {-1.0707663298f, 1.4295915365f, -1.2444705963f, -0.1815876514f, -0.2770722806f, 0.3313229382f, -0.0980075672f, -0.4719111025f, 0.2169308513f, -0.4073899686f, -0.3677752912f, 0.1686977446f, -0.3691555560f, -0.0566529781f, 0.2436147034f, 0.0352467895f, 0.2247329205f, 0.1287635118f, 0.2276323736f, -1.1428972483f, 0.0267670061f, -0.3803151846f, 0.1016131118f, -0.3375857770f, -0.3619975746f, -0.0580476969f, -0.2426059097f, -0.2319097221f, 0.1949766576f, -2.0283784866f, -0.1499034166f, 0.3203954101f},
-        {-9.3854074478f, -0.0246858224f, -0.8499143124f, -0.2564937472f, -9.3853092194f, -0.6312729120f, -5.0737833977f, 1.9478274584f, 2.6517164707f, 2.3842592239f, -5.2550106049f, -0.3242772520f, 0.8110681176f, -0.3066453636f, -1.3071999550f, 2.7409677505f, 4.5771627426f, -0.5061553717f, -1.4946135283f, 3.5521233082f, -2.9335832596f, -0.5765511990f, 0.0422952175f, -0.1721477956f, -0.2773832083f, 0.2279552370f, -5.2490863800f, -0.7335987091f, -0.1851830781f, 0.0654127821f, -2.0507786274f, 0.3237775564f},
-        {-0.2222796977f, -0.3723528683f, 0.0691528544f, -0.3326320350f, 0.1267025322f, -0.0477940738f, 0.0229985509f, -0.0779023990f, 0.1464604437f, -0.1281969845f, 0.0605426840f, 0.0904146507f, 0.0433506742f, 0.1155809388f, 0.1346668303f, 0.0832128003f, 0.0945276693f, -0.2366465777f, -0.0344646983f, -0.0648121014f, -0.1341129988f, 0.0577474162f, -0.1170159131f, -0.0575251095f, 0.2074271739f, 0.1984294653f, 0.2561211288f, -0.4803146720f, 0.1444168389f, -1.3286510706f, 0.2394987047f, 0.0752803981f},
-        {0.1440746784f, -0.0171720050f, 0.4093155265f, 0.0168101508f, 0.3510462344f, -0.2379340529f, -0.1087244079f, 0.0702282861f, -0.2610715032f, -0.1717523634f, -0.0145056592f, -0.3848222494f, 0.1109743863f, 0.1177851558f, -0.1664983183f, -0.1298100203f, -0.1001451164f, -0.1466456205f, -0.3134774268f, -0.4611427784f, 0.0405314565f, -0.3590387702f, 0.2124959528f, 0.2551239133f, -0.1097064912f, 0.2295900434f, 0.1829279214f, -0.0514878631f, -0.1421726197f, 0.1224616244f, -0.2044410706f, -0.0536189489f},
-        {-1.1521507502f, -0.3603971601f, 0.0563264266f, -1.3970239162f, -1.4270666838f, -2.8226051331f, -3.5476942062f, -2.5657920837f, -0.5939258933f, -5.4976310730f, -4.0049266815f, -0.5885877609f, -0.1167592034f, 0.0184592586f, -1.5224845409f, -4.8727149963f, 3.0517530441f, -0.1223363504f, -0.2621241212f, -3.8385307789f, -2.8868563175f, -0.3684002161f, -0.3500567973f, 0.1355150640f, -0.4692768753f, -6.4998006821f, -1.3951023817f, -0.6174461842f, -0.1671719849f, -0.5628139973f, -0.2307008952f, 8.5936250687f},
-        {-0.3384640515f, 0.2626960576f, -0.2724999785f, -0.3156481981f, 0.1593002975f, -0.0599933714f, -0.5736973286f, -0.0508794934f, 0.0508684218f, 0.1900248677f, -0.2414632142f, -0.0151213873f, -0.0642893165f, -0.0736586526f, 0.3415043652f, 0.2434819192f, 0.1858230978f, -0.0688576773f, 0.0958920494f, 0.0314638801f, -0.2458027154f, -0.5904662013f, 0.0937323049f, 0.1025661081f, -0.1099876687f, 0.1343368292f, -0.2600298226f, 0.3431377113f, -0.2248598337f, -0.0926240832f, -0.0758377016f, -0.0951057747f},
-        {-10.8200063705f, -0.2333872318f, 0.0629985109f, -0.5098025203f, 5.5954618454f, -0.0266051386f, 1.0398765802f, 2.6189880371f, -0.8284100294f, -1.0288726091f, -19.0959739685f, -0.4239546657f, 2.2480175495f, -0.3452661932f, 0.5333261490f, 3.0123581886f, -0.5058676600f, -0.5662975311f, -1.4740906954f, 2.3249070644f, 1.9839859009f, 0.0691346005f, -8.4895219803f, -0.0517179966f, -0.3145155013f, 0.0487585813f, 0.5590797067f, 1.1825811863f, -1.1296035051f, -0.4631800354f, 0.0042153052f, 4.9763317108f},
-        {0.8741941452f, 0.2847254574f, -0.0165548436f, 0.0214925446f, 0.0281693470f, -3.5478408337f, 5.1184897423f, -1.0630372763f, -0.3170503676f, -7.8191223145f, -0.7177888751f, 0.0192223061f, -6.6766848564f, 0.0839038268f, -4.0633893013f, -0.6456161737f, 1.9720232487f, 0.5165043473f, 0.1431490332f, 3.3671495914f, -2.0822234154f, -0.2774647176f, 3.5052692890f, 0.0942892134f, -0.1689221412f, -23.8342685699f, -5.3589863777f, -15.0655832291f, 0.1842747778f, 0.0636580139f, -0.8683874011f, -9.0183506012f},
-        {5.8148365021f, -0.0181446839f, 0.0218663495f, -0.6435270309f, -4.6314897537f, 1.0660556555f, -0.7006200552f, -1.7170858383f, -11.6315021515f, -1.8548130989f, 2.3387854099f, 0.1161770225f, -4.4872589111f, 0.0984403118f, 2.3550364971f, -1.3147095442f, -1.7980459929f, 0.2122275829f, 0.2098008990f, 0.8191279769f, -2.6600685120f, -0.9796918035f, 3.9549865723f, -0.3468909264f, 0.1095151901f, 2.1919665337f, 0.8045359850f, 1.2023586035f, 0.1413695663f, -0.4612948000f, -0.0958333239f, 0.5004554391f},
-        {-10.4134435654f, -1.6761026382f, -2.1109883785f, -0.8899091482f, 0.9217932224f, -0.1489774138f, -1.2502399683f, -0.2223093659f, 0.2842899561f, 0.2826307416f, -11.5551824570f, 0.2193767130f, 0.2752348483f, 0.0379434153f, -3.4593420029f, 0.2076737136f, 0.1856303215f, 0.2192035168f, -0.7756754160f, 0.0748336688f, 0.4596520662f, -0.6056127548f, -0.0012871140f, -0.3025635183f, -0.5217733383f, -0.4117718935f, -0.3294989765f, 0.2200052887f, 0.2029565573f, 0.2765416205f, -0.4646576941f, -0.0226360932f},
-        {-0.3001706302f, -1.0916574001f, -0.1813789010f, -0.1071366295f, -0.5642485023f, -0.4381268024f, -0.2561828494f, 0.2427830398f, -0.0773036852f, 0.1807658523f, -0.6189127564f, -0.5280420780f, -0.2278218716f, 0.2025674731f, -0.1903136224f, 0.2945006490f, -0.0809962600f, 0.1900134534f, -0.5843535066f, -0.1001444906f, 0.1827683747f, 0.2382754385f, 0.3387266994f, -0.3220880032f, 0.1786493659f, 0.0670973137f, -0.1765727550f, -0.0752916187f, -0.1503725797f, -0.1599606723f, -0.5018463135f, 0.0873332471f},
-        {-0.1636323780f, 0.1241440102f, 0.0475576073f, 0.1504822969f, -0.1423517764f, -0.1402205229f, -0.1181961671f, 0.3235143721f, 0.0912692472f, 0.3641940355f, -0.2788277864f, -1.0504397154f, 0.1891589761f, 0.1606433988f, 0.5445721745f, -0.1664946973f, 0.2456973046f, -0.3874065876f, -0.3910988867f, 0.1926820129f, -0.0088137649f, -0.4388289452f, -0.1335452497f, -0.0635569021f, -0.2904116213f, -0.0950278938f, -1.6520583630f, 0.0426815301f, -0.2116074115f, -0.2022051066f, -0.7181299925f, 0.1868721247f},
-        {0.0034010340f, 0.2792718112f, -0.4612697959f, 0.0420143865f, -0.2565088868f, 0.1659194678f, 0.2364908457f, 0.3249883950f, 0.1776097417f, -0.1085670367f, -0.1002039164f, -0.0526343510f, 0.1710232794f, -0.1661372930f, 0.1210514680f, 0.0878346786f, -0.3646489382f, -0.0152188586f, -0.1779934615f, 0.0524123646f, 0.2448512614f, -0.1211499125f, -0.1922912896f, -0.3014973998f, -0.2541061938f, -0.0387258530f, 0.1648880988f, -0.0043392545f, 0.2601354420f, 0.0364522561f, 0.1693428457f, 0.0329939090f},
-        {-0.2273397893f, -0.3498373628f, -0.0433691703f, -0.6629248857f, 0.1507195234f, -0.1990272850f, -0.1220994815f, 0.1678037792f, -4.3043742180f, -0.0007548440f, -0.3417711258f, -0.1170029715f, -1.3333457708f, -0.0142377056f, 0.5767194033f, 0.4187206626f, -0.0696189702f, 0.1859471947f, -0.3047918975f, 0.4045199156f, 0.2059099227f, -0.7050588131f, 0.1555795074f, -0.0812577009f, -0.3910994828f, -0.0145086460f, -0.0485258102f, -0.0066310908f, -0.1054076031f, -0.5957096219f, -0.2342762351f, 0.0350304283f},
-        {0.0149504738f, -0.0129147042f, -0.5884258151f, 0.0588622056f, 0.0843603089f, -0.0650319681f, -0.1795133650f, -2.2022593021f, 0.1941308379f, -0.2966808379f, -0.2518850267f, -0.2675821781f, -0.5772732496f, 0.1356097460f, 0.1572682261f, -0.4143220186f, -1.1145333052f, -0.1922410876f, -0.1281387955f, 0.0762870386f, -0.2557103634f, 0.0021827971f, 0.1089263260f, 0.2346664369f, 0.2724923491f, 0.0007219575f, 0.2104968876f, -0.0320289358f, -0.1094986573f, -0.0914234072f, -0.2628631294f, 0.1553151160f},
-        {0.7854294777f, -1.2805747986f, -0.4509948492f, -0.5390222073f, -7.2329969406f, -4.1658449173f, 0.9921216369f, -19.2893733978f, -0.0606014021f, -1.3520914316f, -2.8341577053f, -0.5397177935f, -0.4183989465f, -0.3706202805f, -4.5540037155f, 0.8042452931f, 2.8141219616f, -0.0732958987f, -0.5256106257f, -0.1778799146f, -1.4509961605f, 0.0517916530f, 0.2504193485f, -0.3624364734f, 0.0715965852f, -2.5190768242f, -20.3786926270f, -0.2376282662f, 0.0138650360f, -0.1234268844f, -0.4907496870f, -1.5723351240f},
-        {0.1309531778f, -0.4162278175f, 0.0861416981f, -0.0754620507f, 0.3168306947f, -0.3067710400f, -0.0102485251f, -0.1974389702f, 0.1207621619f, -0.0179167688f, -0.1688643098f, 0.0122922705f, 0.1167635992f, 0.0521559902f, -0.3053426147f, -0.3361171484f, -0.3374931216f, -0.2523073256f, -0.0067732469f, 0.0612988696f, 0.1934308410f, 0.0817848817f, -0.1016546264f, -0.1203937978f, 0.1065604016f, -0.1992163658f, 0.3401925266f, -0.0275416337f, -0.2688343525f, -0.0388706326f, 0.1756630838f, 0.4808184803f},
-        {0.4282532632f, -0.0259445906f, 0.3069318831f, -0.3668542504f, 0.3145154119f, -0.3847868145f, 0.2201283127f, -0.0448469892f, 0.1542371064f, 0.2123837769f, -0.1569138467f, 0.0211382862f, -0.2548147142f, -0.2737289667f, -0.3175657392f, -0.5842364430f, -0.0748774335f, -0.1540294737f, -0.1290857196f, 0.1770722121f, 0.1833150536f, 0.0081414832f, 0.2064791620f, -0.1276530772f, 0.1270321757f, 0.1417734623f, -0.2329282910f, -0.3905624747f, 0.2545000315f, -0.3035842478f, 0.0064902604f, -0.3016678095f},
-        {-7.5552926064f, -0.9295108318f, -0.2481519580f, 0.7649185658f, 1.9046311378f, -0.1586459428f, 2.0594851971f, -1.3088877201f, -1.2542868853f, -4.6562218666f, 6.3942017555f, -0.6503939629f, -0.7048695683f, 0.2057881355f, 6.5724821091f, 1.7823606730f, -2.8745467663f, -0.3315669894f, 0.9826352596f, -2.7425603867f, -1.9275763035f, -0.2427215725f, -0.5757774115f, 0.2017655820f, -0.1918183118f, -16.7525539398f, -0.7728430629f, 1.0563217402f, -0.4434075356f, -0.7302488089f, -0.2927037179f, 2.4355039597f}
+        {0.06672375f, 0.03981204f, 0.4298145f, -0.4013211f, 0.030190138f, -0.13413878f, -0.06241652f, -0.49100602f, 0.26731324f, 0.18380892f, 0.1315184f, -0.30869436f, -0.06503027f, -0.09315861f, -0.12100003f, 0.07112847f, -0.05266142f, 0.21295387f, -0.08823374f, 0.09589224f, 0.20408788f, -0.28329554f, 0.22384411f, 0.0134339435f, 0.08025903f, 0.008691284f, 0.29529724f, 0.16944666f, -0.0039900946f, -0.22732116f, -0.3664234f, -0.0683193},
+        {-2.1227763f, 10.170722f, -4.03415f, 7.267417f, 0.08291308f, -3.54509f, 2.609561f, -2.3163092f, -4.396937f, -3.766659f, 0.0169012f, 5.6891036f, 0.18181351f, -22.923233f, 13.777428f, 2.8975048f, 3.962701f, 4.6553783f, -9.520277f, -4.585875f, 1.6604785f, 5.033961f, -0.17180617f, 1.3543965f, 0.24194916f, 8.06401f, 0.10060822f, -5.9505386f, 0.13856797f, -1.4251561f, -9.612924f, 0.23346461},
+        {-1.5227464f, 25.410858f, 0.5817949f, 2.5203528f, -0.10550693f, -4.6376295f, 2.1464746f, -3.8057957f, 0.07474632f, -0.39438474f, 0.09463619f, 20.055346f, 7.275666f, -8.830634f, -1.0137278f, -13.521425f, -3.6657958f, 5.6888595f, -2.5519874f, -1.7007587f, 3.505049f, 2.616792f, -0.30386263f, 2.5153656f, 10.094789f, 1.9307327f, -0.5141079f, -3.3568308f, 0.78002214f, -3.5164044f, -6.5120087f, 0.14685073},
+        {-1.3511561f, 0.067527264f, 0.03207382f, 0.0039824564f, -0.0794694f, -0.28399357f, 0.044033196f, 0.1552143f, -0.19059747f, 0.068717234f, -0.17684978f, -0.060900316f, -0.09924195f, 0.22687863f, 0.15407263f, -0.100492574f, 0.020151345f, -0.31645426f, -0.15415344f, -0.12234637f, 0.28883266f, 0.07648122f, -0.19040743f, -0.07561039f, -0.34996137f, -0.043174732f, 0.1263864f, -0.07232601f, 0.22912653f, -0.12931624f, 0.16876964f, 0.035036884},
+        {-0.027614722f, -0.15375322f, 0.15479827f, -0.040814992f, 0.08823914f, -0.14149623f, 0.2551347f, -0.103067316f, -0.1295854f, -0.3158188f, 0.19040854f, 0.052206445f, -0.041617952f, 0.15680033f, -0.12503436f, 0.029681498f, 0.061775006f, -0.12955941f, 0.34682432f, -0.14659873f, -0.053150598f, 0.05367754f, 0.20053828f, 0.15406348f, -0.047879178f, -0.285771f, 0.041893344f, 0.26605374f, -0.57365185f, -0.117251046f, -0.028690392f, -0.05576961},
+        {-17.151749f, -39.492805f, -1.2024553f, 1.9588258f, -0.07736528f, -5.2065253f, -0.29117894f, 2.191213f, -0.1650226f, 1.324556f, 0.006310487f, -6.430134f, -5.948062f, 1.5409943f, -10.76759f, -3.644144f, -3.1583552f, -0.55358696f, -0.54641867f, -22.060873f, 0.6369516f, 0.07492229f, 0.1553356f, -7.0720816f, -1.3876374f, 2.166365f, 0.095952384f, -18.38613f, -1.3726138f, -1.0356613f, 0.7348369f, -0.267584},
+        {-0.30342725f, -0.0056236666f, -0.019807426f, 0.16085227f, -0.42663917f, 2.517932f, -0.21218781f, 0.08004644f, 1.8669873f, -0.20774584f, -0.14302072f, 4.237393f, 3.4713297f, -0.024902236f, -8.890535f, -0.5791919f, 2.1711538f, -0.714267f, 1.899649f, -4.4203115f, -1.6022537f, -0.35694274f, -0.016646797f, -4.3509583f, 1.0153993f, -4.023154f, -0.242208f, 1.4045252f, 0.13526651f, 2.3990853f, -7.200686f, -0.19501616},
+        {2.413265f, 1.7898282f, 2.3322725f, -1.3006285f, -0.07303938f, 0.061336145f, -0.6310755f, 1.184681f, 1.2397695f, -4.7100186f, 0.027036889f, -0.24568623f, -0.17167485f, -0.6986436f, -2.958341f, -0.91007787f, 2.5619612f, 0.28502074f, -1.6131259f, -0.56008095f, 0.6784698f, -0.31836012f, -0.20392452f, 0.508049f, -1.526551f, -1.2396832f, -0.124074675f, -0.26846382f, -0.57222533f, 5.3956094f, -0.5952847f, 0.0061843316},
+        {0.99247867f, -6.023889f, -0.5985262f, -0.7051916f, 0.11660278f, -0.6877138f, -0.91224265f, -1.4512339f, -0.025593447f, -0.10911486f, -0.12713556f, -13.573469f, -5.641887f, -13.851829f, -6.7997274f, 0.42562693f, -3.7068074f, 0.8072398f, -0.7854639f, -3.2709775f, 3.5446029f, -0.17157991f, -0.010936868f, -1.3019978f, -9.295555f, -0.06420606f, -0.19789563f, 1.5609305f, -0.7059018f, -1.1249135f, 2.3760593f, -1.5028518},
+        {-0.27207246f, -0.20969442f, 4.5191894f, -0.4953859f, -1.2984949f, -0.81887645f, 1.318628f, -25.55209f, 1.1321247f, -3.314245f, -1.8428282f, -1.5206003f, -4.6914825f, 2.4828916f, 0.27317092f, 0.045436285f, -0.8609569f, 2.6983569f, -1.451327f, -0.5150505f, -5.941237f, 1.7375484f, -1.1633883f, -3.2851126f, -2.646161f, -3.240541f, -1.2866911f, -1.1970419f, 3.238756f, -1.1621339f, 1.6165966f, 0.12669909},
+        {0.83463377f, -0.54728717f, 1.5248504f, -3.0966601f, 0.03755713f, -1.6336836f, -0.056941565f, -0.16227213f, -2.7637382f, -1.2509931f, -0.36343703f, -2.3690217f, 0.31372806f, 0.69055635f, -1.9301114f, 0.9147483f, 1.5906968f, -4.13262f, -0.5111758f, 2.6714692f, -1.363504f, -6.5764236f, -0.11925948f, 2.915674f, -2.6272519f, -1.6349031f, -0.044584967f, 3.1182435f, 0.9305356f, 1.3285031f, 3.3156786f, -0.059232913},
+        {-2.144869f, -0.06878232f, 0.012768871f, 0.22449045f, 0.34905314f, 0.10699096f, -0.021374252f, -0.05457905f, 0.08823766f, 0.30712673f, 0.3422782f, -0.51450926f, 0.22911765f, 0.27013117f, -0.40809962f, -0.31828284f, -0.615128f, -0.47739068f, 0.2888616f, 0.3252281f, 0.025355825f, -0.13811979f, -0.10314173f, -1.6585289f, 0.09932479f, -0.067099564f, 0.26033264f, 0.5020934f, -0.13500683f, 0.28904206f, -0.060706027f, -0.33958516},
+        {-0.7004303f, -5.989323f, 3.6441653f, 6.103153f, -0.10002072f, -2.1391478f, -0.1617208f, 2.8038473f, -2.628487f, 1.3258182f, -0.33520997f, 8.80979f, 0.27354676f, -3.7619104f, -5.187713f, 6.978667f, 0.5808219f, 1.4376309f, -3.2707767f, -3.0319438f, 1.0626248f, -1.7446611f, -0.025804913f, -2.2031457f, 2.87443f, 0.87700164f, -0.3508392f, -2.831375f, -1.5346022f, 1.0217476f, -7.6207876f, -0.23934703},
+        {1.2859198f, 1.6428136f, -2.331014f, 0.4779812f, -0.36852604f, 0.39259526f, -0.39148664f, 0.8452899f, 1.9205302f, -3.4077425f, -0.062341016f, -0.38649392f, -7.379683f, 1.0761995f, -0.29080665f, -4.7851305f, 0.07381187f, 0.106977984f, 0.25610018f, 0.36232072f, -0.04090517f, -0.003565067f, 0.003187059f, 1.8601334f, -1.0435531f, 1.2797265f, -0.25559354f, -0.18323837f, -3.6666112f, -0.57592535f, -0.0866006f, 0.1398785},
+        {-0.039665814f, 0.17942517f, 0.17748955f, 1.0280329f, 0.1761893f, 0.16937727f, -0.14977464f, -0.05389512f, -0.07112407f, -1.2921491f, -0.15922146f, 0.13559765f, -0.035964075f, 0.1997586f, 0.047902975f, -0.5316791f, -0.021313842f, -0.739655f, -0.000694107f, -0.26580292f, 0.2257282f, -0.12752165f, -0.14252584f, 0.06391947f, -0.6073695f, 0.08091097f, -0.1530388f, 0.40658376f, 0.10591612f, -0.0895371f, 0.11751159f, 0.13086073},
+        {0.44426593f, -0.14244008f, -0.028790697f, 0.60937786f, -0.044918586f, -0.28544784f, 0.3127091f, -0.40287706f, 0.35065314f, -1.1311872f, -0.2502713f, 0.1461625f, -1.094232f, 0.13766573f, -0.72197914f, -1.0459919f, -0.4191913f, -0.20634043f, -0.6219831f, -0.21968427f, -0.06558542f, 0.14571755f, -0.58463037f, 0.09242671f, -0.19239254f, -0.27997494f, -0.26763722f, 0.42619875f, -0.62611973f, 0.14588125f, 0.105942294f, 0.15438588},
+        {2.9774177f, 0.11893796f, -0.030067127f, -2.3903174f, -0.6278204f, 0.71382916f, 0.2177451f, 0.039715406f, -0.0086141005f, 0.48976183f, -0.42510647f, 1.5093122f, -0.537936f, -9.242118e-05f, 0.39906317f, -0.82221633f, 0.16236012f, 0.36789364f, -2.3485773f, -0.24769245f, 0.24103326f, -0.19623761f, -0.20218498f, 0.27088854f, -0.01837088f, -0.12805222f, -0.24647267f, 0.6915754f, 0.5131639f, -0.28441676f, -0.24411462f, -0.21990426},
+        {-0.54802793f, -0.09144253f, 1.6166676f, -0.3230601f, 0.07639165f, -1.5741732f, -3.4616601f, 0.5508388f, 1.5370946f, 2.4479973f, 0.21077996f, 0.099228054f, -23.974644f, 3.4885495f, 0.04388257f, -2.7474682f, -2.285467f, -1.5087568f, -0.11148429f, -0.50427306f, -3.205178f, 2.1157758f, 0.06745863f, 3.18755f, 1.8946489f, -0.97607267f, -0.16692668f, -0.8396518f, -5.3309174f, -2.2130654f, 0.3298538f, -0.49893945},
+        {0.725968f, 3.5573084f, -7.114807f, -2.7123024f, -0.3741138f, 2.7274814f, 1.6547829f, -10.661932f, -1.1048306f, -0.19225451f, -0.022864373f, 0.709122f, -16.442327f, 2.5489252f, 7.7919025f, -1.5030146f, 1.3383108f, 0.86329764f, 0.9863266f, 0.43847996f, -3.1083434f, -0.36544248f, 0.0029179598f, -20.125507f, -0.6225338f, -3.5071166f, 0.10342543f, -1.4238043f, -13.502309f, 4.807112f, 0.74649173f, -0.13610314},
+        {6.3753185f, 1.8990202f, 0.3773866f, 3.3717997f, -0.000528927f, 0.73127466f, -1.0737598f, -0.9065113f, -0.067697845f, -2.6923404f, -0.12043851f, 0.02852705f, -6.7030225f, 0.3652842f, 0.79752105f, -1.9701958f, -2.088673f, 2.5375066f, -0.77789724f, 2.3621006f, -0.5099291f, -9.848617f, -0.37674657f, -9.578517f, -12.251768f, 4.2070136f, -0.17708081f, -1.1287258f, -7.9922924f, -3.4524362f, -1.1446911f, -0.17927353},
+        {0.7986129f, -0.6030406f, 2.4890203f, -4.276404f, -0.5129069f, -11.108745f, 0.902222f, -0.032119863f, 1.4461275f, -0.2992898f, 0.20678674f, -1.402222f, -0.12213059f, 0.39756128f, -1.5998582f, -0.09944769f, -0.48754722f, -0.6574689f, -1.5129113f, 0.82796f, -2.092002f, -7.2097783f, -0.046254743f, 1.532157f, -4.7855687f, 4.756667f, -0.084092535f, -0.33500457f, -0.90686095f, 1.2748541f, -0.29002047f, -0.03565456},
+        {-0.30896315f, -0.860514f, 0.08772144f, 0.086373135f, -0.17789678f, 0.29052868f, -0.023447229f, 0.03871594f, 0.22749558f, 0.06497324f, 0.1512284f, -0.4247122f, -0.16008559f, 0.043180015f, -0.18297796f, 0.07381081f, -0.19587533f, 0.14093257f, 0.50419664f, -0.08958871f, 0.063011065f, 0.17298721f, 0.40320584f, 0.16772592f, 0.30643088f, 0.2045452f, -0.043923855f, 0.5208287f, -0.07654832f, 0.046925552f, 0.11926591f, -0.35307777},
+        {28.933432f, -1.3358451f, 1.9096538f, -0.38295364f, 0.45906729f, -0.040599175f, -16.024897f, -3.7581606f, 3.4560614f, -0.40831462f, -0.09947094f, -2.8724163f, 0.16386037f, 3.3848467f, -1.6022316f, 21.034029f, -14.855806f, 34.024937f, -30.176119f, 0.08601539f, 5.3420606f, 0.25448218f, 0.0971535f, -0.12070697f, -4.6405663f, -0.22552827f, 0.22174726f, -31.271975f, -0.6252556f, -2.289929f, -0.97535306f, -1.31278},
+        {-1.8696654f, -26.933628f, 2.1722138f, -2.8883216f, -0.07917042f, 0.019560046f, -0.12119921f, 0.55073464f, -1.0550268f, 0.38292935f, -0.340146f, -9.848131f, -7.5665107f, -0.73256636f, -3.4011421f, -0.15691113f, -5.768119f, -0.33105686f, -10.966341f, -5.4887366f, 1.0047201f, -0.27099198f, -0.31531668f, -2.9074066f, -3.8923256f, 1.4205852f, 0.10466566f, -1.2453331f, -0.82419336f, -1.0469812f, -2.7741961f, -0.014542673},
+        {-3.7257702f, 0.0571199f, -0.09404559f, 0.6140442f, -0.112739876f, -0.43696213f, -0.024829734f, -1.039127f, 0.020145742f, -0.027684871f, 0.121961415f, -1.1709923f, -1.0055399f, -0.12108593f, -2.0977259f, -0.22324406f, 0.47772095f, -0.15231213f, -0.32118657f, -0.05327268f, 0.3030558f, -0.19097869f, -0.14713521f, -0.3620254f, 0.061218522f, -0.16736446f, -0.054223098f, -0.07311561f, -0.22149314f, 0.08322779f, -0.20716862f, -0.09680105},
+        {-2.0969288f, 2.9252894f, -0.8176267f, -5.717279f, 0.16116187f, 0.49752092f, -2.8890822f, -8.105639f, -0.33828092f, -0.34975937f, 0.108061776f, 0.84174937f, -0.7781999f, -3.633041f, -11.474361f, 0.09790999f, -0.27968135f, -0.13819848f, 0.3081501f, 4.448811f, -0.123376116f, 0.24016067f, 0.19872919f, -3.8820136f, 7.7370424f, -3.9184654f, -0.0107750585f, -0.5086485f, -1.6115111f, -9.109398f, -1.19675f, -2.6429021},
+        {-1.4307925f, -4.7030926f, -24.395765f, 3.1161213f, 0.14816566f, -3.1372583f, -0.42031214f, 2.5481014f, -0.53675175f, -0.13151328f, -0.34836397f, 3.3804939f, -4.046711f, 0.58396435f, -4.7166758f, 0.55279964f, 0.3384726f, 0.6437049f, 0.40991604f, -3.3565226f, -1.8335408f, 0.023288712f, -0.255986f, -4.075503f, 2.961299f, 0.79229075f, 0.016705431f, 1.1904074f, -3.5802393f, -5.6467266f, -1.1827403f, -0.091823414},
+        {-7.7319546f, 6.0332527f, -7.931404f, 4.7827125f, 0.12748419f, -0.93503845f, 3.1007187f, -0.7009563f, 3.0479763f, -10.999255f, -0.24110846f, 1.5008445f, -0.113096595f, 4.802697f, 16.680922f, 5.460172f, 1.8528329f, -0.037660215f, -5.3332534f, -7.933987f, 7.118915f, 3.3917274f, 0.034920085f, 0.9536356f, 1.3519874f, -4.184277f, -0.09543819f, -2.2770896f, 0.7876003f, -0.89098734f, -6.8261385f, -0.057525594},
+        {3.1159813f, 0.32751906f, 0.17584619f, 1.6777943f, -0.3707683f, -0.43120086f, -2.4453216f, -0.762067f, 2.365559f, -1.7951444f, -0.26427886f, -1.3152533f, -7.629102f, 1.0253571f, 0.3196189f, -11.054079f, 0.4645029f, -1.414041f, 0.22743952f, -0.52533734f, -0.44237474f, -0.31648928f, -0.045488015f, -0.94692457f, -0.23710065f, 0.41878378f, -0.119467594f, -1.246084f, -3.672228f, 0.62743074f, -1.0318882f, 0.0019755964},
+        {-2.7895513f, -4.1385813f, -23.815798f, -12.903678f, -0.025526734f, -4.358911f, 1.070285f, 1.0780374f, -1.6052309f, -0.03867145f, -0.24569839f, 0.6738761f, -2.4314058f, -0.86786f, 2.057335f, 2.3822873f, -0.08561688f, 0.14519231f, -0.46213084f, -3.4400222f, 2.9570181f, -0.3056006f, -0.044455007f, 0.32656857f, 2.1484435f, -11.9926605f, 0.027415745f, 1.4886463f, -1.3823717f, -4.286869f, -4.407597f, 0.08897877},
+        {-0.06260068f, 0.0630405f, 0.14301285f, 0.43746036f, -0.13887417f, -0.5372397f, 0.07061372f, 1.7238832f, 0.18415947f, -0.31391847f, 0.16376889f, -0.0015911001f, -0.20071152f, 0.12613615f, -0.06385564f, -0.2701113f, -0.48603654f, 0.0040946133f, 0.3270832f, 0.15637945f, -2.5465333f, -0.2872022f, 0.01894744f, -1.3807551f, -0.112751886f, 0.08864605f, -0.14176254f, 0.28136924f, -2.592588f, 0.10172729f, -0.06363124f, 0.024463806},
+        {-12.747094f, 6.8597374f, 1.6855108f, -4.305559f, -0.28321338f, 8.154225f, 0.6520309f, -2.055767f, -0.59251827f, -0.45498374f, 0.3458701f, -4.075382f, 4.8977437f, -2.4267116f, 6.3720593f, -6.315065f, -3.2350428f, 2.5292606f, 2.0658195f, -2.938097f, 1.5445166f, 2.132352f, -0.3812424f, 0.8824541f, -2.5767212f, 0.9917955f, -0.19068937f, -3.8280706f, 3.7777863f, 4.3173766f, 3.9095836f, 0.012586101}
     };
 
 
-    const float fc2Bias[32] =
-    {-1.4964368343f, -0.4743577838f, -0.4512416422f, -0.4922141731f, -5.1149101257f, 8.8500652313f, -15.7193136215f, -0.0800511166f, 2.7641799450f, 3.4012768269f, 0.0683615580f, -0.1829399616f, 5.3457593918f, -0.4106808603f, -16.5018920898f, -11.1810235977f, -8.3992519379f, -0.4962880909f, -0.9232602119f, -11.2513113022f, 2.3576202393f, -0.4867421985f, -3.7326567173f, -0.2190053761f, -0.3950267136f, -1.8300843239f, 7.8722882271f, -1.0580558777f, -0.4571195245f, -0.4307751656f, -0.3282840848f, -4.9084253311f};
+    const float fc3Bias[32] =
+    {-16.036657f, 0.657172f, -6.0551586f, 4.802943f, -2.2765937f, -33.4947f, -13.79414f, -12.869539f, 5.2520843f, -2.7861738f, -5.5158367f, 3.6636384f, -11.09227f, -0.69794047f, -2.894278f, -0.53132373f, 2.1872444f, -15.230901f, 5.0349936f, 0.64912736f, -19.048439f, 5.275235f, -1.205542f, -11.504072f, 1.2370431f, 1.3661917f, 7.529622f, 8.005942f, -7.71125f, 8.280351f, 1.7782894f, 3.6759334};
 
 
     const float fc3Weights[32][32] =
     {
-        {2.1267073154f, -0.3118368387f, -1.0274667740f, -0.3681430817f, -0.2503374219f, -1.2477926016f, -1.3221302032f, 1.8165496588f, -0.1359463781f, -1.7964631319f, -0.0097085517f, -0.3852086663f, -3.3534936905f, -0.8397763371f, -0.4446444511f, -1.6745910645f, 3.2378242016f, -1.0022313595f, -9.9781904221f, 0.1582326442f, 0.5432472825f, 0.0471910089f, 5.9129772186f, -0.2324501723f, -4.1757726669f, -2.3055243492f, 0.0340588912f, -9.1570177078f, 3.9973771572f, -5.0203042030f, -0.4807384312f, -0.2449323237f},
-        {0.2926399410f, -0.3126508892f, -0.2911956012f, -0.6654194593f, -1.9371089935f, -0.5545672178f, 0.4246672988f, 0.3819307983f, 0.2514972389f, -0.4406578541f, -0.9821344614f, -0.3851819932f, 1.1248499155f, 0.0522659570f, 0.0575070083f, 0.4138618112f, -0.8817019463f, -0.6708815694f, 0.4475752711f, -0.0536939353f, 0.2634044886f, -0.7456439734f, 0.3254241347f, 0.7578423023f, -0.0451397039f, -0.3245976269f, 0.3969579041f, -0.3185728490f, 0.5564263463f, -0.6522557735f, -0.1052212864f, -0.4474395216f},
-        {0.1283721924f, -0.0823663324f, -0.0326546133f, -0.4661917388f, 0.2401303649f, -0.2880379856f, -0.1517074406f, 0.2752179205f, -0.1285577416f, -0.9086889029f, 0.0597265214f, 0.0445332415f, 0.0693372712f, 0.3575956523f, -0.2324096560f, 0.6556770205f, -0.2550288737f, 0.0115993991f, -0.1578786522f, -0.2495867163f, 0.5065354705f, 0.1579007357f, -0.3488564789f, -0.3209209442f, -0.1637986600f, 0.0921269283f, -0.0206926819f, -0.4815258384f, 0.1049012691f, 0.0869352594f, 0.0118843094f, 0.0378016829f},
-        {-0.1867472231f, -0.0983402878f, -0.2410253137f, 0.1428901106f, 0.5535175800f, 0.4710266590f, 0.7919189930f, -0.1014919057f, -0.0083244918f, 0.1866499782f, -0.2188591063f, -0.2367116362f, -0.3858147562f, 0.2450350076f, 0.1948615909f, 0.2732373476f, -0.7079418898f, -0.4475770295f, -0.0726167932f, 0.0758384317f, -0.0683538988f, -0.3337415755f, 0.6586756110f, -0.3540558219f, 0.1567319185f, 0.2762941718f, -0.1348233819f, -0.2360792607f, -0.0053496510f, 0.3404291868f, 0.0747083575f, -0.4553619027f},
-        {-0.7439086437f, -0.5030723810f, -0.0015834231f, -0.2131769657f, -0.1265947670f, 0.6866528392f, -6.0031766891f, -1.1717530489f, -0.8875666857f, -0.7657486796f, -0.4995601177f, -1.3289493322f, 0.5762737989f, -0.1594046950f, -1.7588888407f, 0.0773057416f, -1.0809998512f, 3.3575456142f, -2.1498513222f, -0.1858167648f, 1.1153688431f, -0.2805164158f, -2.4953896999f, -3.0942769051f, -4.6361846924f, -7.2082462311f, -0.2423758358f, 9.1199541092f, -1.9552760124f, 1.5397961140f, -4.8174195290f, -0.1466594040f},
-        {-12.2784042358f, 0.2199732214f, -0.1896684021f, -0.3432999253f, -0.2287421525f, 3.4079124928f, -1.9381728172f, -0.6183780432f, -2.6809947491f, -13.9357881546f, -0.3349778652f, -1.1822427511f, -0.4702038467f, -0.4513809979f, -4.1594862938f, -1.3155949116f, -2.8984313011f, 0.8626719713f, 0.9431877732f, 0.1867329180f, 1.8311676979f, 0.0268813707f, -0.2230326235f, 1.5717616081f, 4.5641150475f, -5.9756793976f, -0.3749696314f, 6.8801670074f, -0.5390860438f, 2.2278966904f, 1.6726257801f, -0.4617499709f},
-        {-1.1322755814f, -1.6074182987f, 0.3383499086f, -0.0879338682f, -0.3024970293f, -0.9650658965f, -0.7258930802f, -2.2438650131f, -8.0822734833f, -1.1866042614f, -0.1294266731f, -0.3437821269f, -5.2474503517f, -3.8555898666f, -0.9632506967f, -1.5082763433f, -2.1201927662f, 1.0083860159f, 0.9984830022f, 0.0244099908f, 1.3445159197f, 0.0025331527f, 0.3188533485f, -1.2511210442f, 4.4629726410f, -0.6043246984f, -0.2112076432f, 0.2277358621f, -0.4532658756f, -2.5137176514f, -0.6861492395f, -0.2597316206f},
-        {-11.9988451004f, -0.1067576185f, -0.2066107839f, 0.0828568414f, -0.3275893927f, 2.5277581215f, 3.2627487183f, -5.6365389824f, 5.3499884605f, -3.2246093750f, -0.2226941139f, 0.1935922205f, -4.1013288498f, 0.0029573692f, -1.5204852819f, -4.4882822037f, 4.6080155373f, 4.0036969185f, 0.9089803696f, -0.2275806665f, -2.7591450214f, -0.1230073869f, 2.7025136948f, 5.8001189232f, -2.8862383366f, 1.4778681993f, -0.5003541112f, -8.5913944244f, 0.0913238823f, -3.5371487141f, 0.1153692529f, 0.0406519361f},
-        {-2.5129640102f, 0.3217219710f, -0.0095533794f, 0.1789117903f, -0.0394163057f, -12.0436925888f, 7.2080974579f, -0.6646071076f, 7.5206618309f, 3.8631877899f, -0.1600254625f, -0.8080578446f, -0.5643880963f, -0.0537163280f, -0.5046658516f, 0.4704113901f, -1.0934047699f, 1.3934750557f, 1.6021199226f, 0.2552498877f, -2.1392021179f, -0.1866302639f, -1.9532939196f, 4.3028411865f, -2.0663371086f, -1.1156477928f, 0.0436181799f, -4.5952415466f, -4.1031899452f, -4.2674293518f, -1.3652423620f, -0.3086400926f},
-        {-2.4256632328f, -0.8204917312f, -0.0080023678f, 0.0641652644f, 0.1045749411f, -6.7571711540f, -5.8372755051f, -2.5383017063f, 1.3260424137f, 0.7004460692f, -0.2244220227f, 0.5836414695f, -0.1815587580f, -0.3951809406f, -0.1336556673f, -4.6909227371f, -6.2935724258f, 3.7900424004f, 2.5683553219f, -0.1162255332f, 4.1622815132f, 0.1073398590f, -5.1608195305f, -8.2401542664f, -5.8381042480f, -7.4464135170f, -0.1182934269f, 3.2788193226f, 1.4351627827f, 6.3681168556f, 5.1041111946f, -0.1208729222f},
-        {4.9961571693f, 0.0185269248f, -0.2817080617f, -0.0505358987f, -0.2017169148f, 0.5220227242f, -9.6225223541f, 3.5301513672f, -1.2750257254f, -16.6149158478f, -0.2861652076f, -0.1112170741f, -2.9041886330f, -0.7071534991f, -1.5988026857f, -8.9261875153f, -14.3294153214f, 0.6273730397f, 1.6051287651f, -0.1642416716f, -3.4014506340f, 0.0300757475f, 6.7346963882f, -1.6067913771f, 1.6891504526f, -3.9646015167f, -0.0779341832f, 4.6224765778f, -0.5721715689f, -5.5780882835f, -0.1785165519f, 0.0633503497f},
-        {0.1060310677f, -0.5470390320f, -0.2241495699f, -0.4295381904f, -0.0263416618f, 0.2030417621f, -0.1120280996f, -0.0827973634f, -0.3317763507f, 0.0817295536f, 0.0069632535f, -0.1319767535f, 0.9747350216f, 0.2557510436f, 0.1425391138f, 0.1720905155f, -0.0782878473f, -0.0193020143f, 0.1281307042f, -0.2256549150f, 0.1310895681f, -0.5182238221f, 0.3424457908f, -0.1979330033f, 0.1891248226f, -0.0348026715f, 0.0921394229f, -0.0947700441f, -0.0883120522f, 0.0940800980f, 0.1856457591f, -1.7943713665f},
-        {-4.0017580986f, -0.9870634079f, -0.3691159189f, -0.4045964777f, -0.9596207142f, -4.4315557480f, -2.6966378689f, -2.4839437008f, 2.0009076595f, -2.3518767357f, 0.0318453647f, -0.5925750136f, -8.7461175919f, 1.2080634832f, -0.9580079317f, -1.3870022297f, -2.9447979927f, -4.2511048317f, -0.7817761898f, -0.3507715464f, 0.2093277872f, -0.2879707217f, 0.9649841189f, -10.7083244324f, -7.3718595505f, 1.7227441072f, -0.2694068253f, -2.7931368351f, 1.4890755415f, 0.6705868244f, 1.4951418638f, -0.1209532097f},
-        {-0.2123307288f, -0.3103626966f, -0.2075639665f, -0.0577281974f, -0.0194090679f, 0.2053133696f, -0.0279764533f, -0.1785610318f, -0.0686176419f, 0.2033739239f, -0.1825354397f, -0.0740804151f, 0.2677070498f, 0.2260797173f, -0.3779144287f, 0.0846814588f, 0.2516773045f, 0.1258523315f, 0.0956230313f, -0.1808306128f, 0.3722532988f, -0.1553636193f, -0.0801539496f, 0.2497462928f, -0.1287349761f, -0.1542355567f, -0.2239110470f, -0.0359012038f, 0.0341420211f, 0.1991766691f, -0.1235702857f, -0.0031303430f},
-        {6.9049019814f, -0.6181007624f, -0.1168652996f, -0.3459298015f, 0.1081510484f, -0.6562979817f, 2.9601066113f, 4.0602450371f, -0.7127177119f, -0.0100999130f, 0.5118251443f, 0.2948195040f, -14.6811800003f, -0.1756128967f, -2.3726568222f, -2.2973806858f, 0.2021040469f, 3.7788739204f, 0.0394109413f, -0.5389692783f, -2.5069026947f, -0.1306917369f, 1.1527950764f, -4.1568374634f, -5.4282240868f, 1.0624045134f, 0.2346842736f, -7.4216456413f, -10.1741409302f, -5.2678761482f, -1.5980980396f, -0.4154963493f},
-        {-5.9673295021f, -0.4644198418f, -0.4291569293f, -0.2272513807f, -0.4974555075f, 2.6671023369f, -6.5609960556f, 0.3609015644f, 10.3618955612f, -2.0600147247f, -0.5190568566f, -0.2184191942f, -1.4022922516f, -1.4489669800f, -4.0840444565f, -4.2195286751f, -0.4894198477f, -2.7413768768f, -6.3571834564f, -0.1267714947f, -0.8546049595f, -0.2224794775f, -0.3131478429f, -0.9897703528f, -6.1158819199f, 0.3078280985f, -0.4307037592f, -14.2193670273f, -0.3561481237f, -9.1594533920f, -0.7577811480f, -0.3548552096f},
-        {-6.2391667366f, -0.1269952357f, -0.2936189175f, -0.9923886061f, 0.0176051259f, -1.9780510664f, 0.0654375777f, -1.7040052414f, -0.1822838187f, -1.7437926531f, -1.0801513195f, -0.7526912093f, -5.0536708832f, -0.7413324714f, -2.9236466885f, -6.1675448418f, -0.9600590467f, -2.5335817337f, -1.1323231459f, -0.8290102482f, 0.5944318175f, -0.0634517670f, 0.9594070911f, 1.3713343143f, -3.9021794796f, -0.7598190904f, -0.7681146860f, -1.0350772142f, 0.8626580238f, -1.0701311827f, 0.6357883215f, -0.1052244753f},
-        {0.0669496581f, 0.1127517670f, -0.0209338553f, -0.0054164180f, -0.1271978915f, 0.0695113614f, -0.3660996258f, -0.7821827531f, -0.2065943033f, 0.2308539152f, 0.4742313325f, 0.1034071371f, -0.0490562394f, 0.4140049219f, -0.0322051346f, -0.0112497425f, 0.0862999111f, -0.1826869249f, -0.0142615261f, -0.0710267127f, 0.0182412416f, 0.0835287198f, -0.0485102497f, -0.1113768369f, -0.3792001903f, -0.0910689160f, 0.0768057555f, -0.4180118442f, -0.0000109978f, -0.0632229522f, 0.0589419529f, 0.1596196741f},
-        {0.3151653707f, -0.4588074088f, -0.3387854099f, 0.1461272687f, 0.0001908212f, -0.0586236343f, -0.8286342025f, 0.2795176804f, 0.4374869168f, 0.0628984645f, -0.2587254047f, 0.2453358322f, -0.6134222746f, 0.0773593485f, 0.2486565858f, -0.5328485370f, 0.6034097075f, -0.3007964790f, -0.2765316963f, -0.2508219779f, -0.2341709882f, 0.0143393278f, 0.1970690787f, -0.2759173810f, -0.7320910692f, -0.2636430860f, -0.0779949948f, -0.5681775808f, 0.0010494586f, 0.3486377001f, 0.5590596199f, -0.1548434943f},
-        {0.2904222906f, 0.2120339572f, -1.5837268829f, 0.1351595223f, -1.0482976437f, 0.6585662961f, 1.2837238312f, -8.8914051056f, 0.1900334507f, -6.2876024246f, -1.1750501394f, -0.9563908577f, -6.0589551926f, -0.0554546751f, -2.5099968910f, 0.2854703367f, 0.5719563365f, -0.4985203147f, -0.8484790921f, -0.2796662748f, -2.6506903172f, -0.0737289563f, 0.1099997908f, -6.8096685410f, -9.5710783005f, -3.5462114811f, -0.3454555869f, -4.1742453575f, -6.2087631226f, 1.0913355350f, -5.9188799858f, -0.0447143987f},
-        {-0.1762033552f, -0.9464151859f, -0.3476518989f, -0.1438073069f, -0.1068934649f, -2.6918101311f, 13.4009866714f, -0.0717068240f, -1.2019355297f, -2.8347525597f, 0.1641165912f, -0.0925235450f, 4.8379797935f, 2.1199939251f, -0.3954177201f, -1.5702075958f, 0.0889840126f, -1.7895882130f, 1.9846193790f, -0.0691496804f, -6.4447302818f, 0.1634601355f, 9.6448106766f, -0.7868277431f, 2.1918652058f, -0.5956330895f, -0.4198028147f, 2.8396642208f, 3.0820310116f, 3.5346202850f, 1.1110432148f, 0.1005667076f},
-        {0.2411281914f, 0.1411192566f, -0.0250760857f, -0.1230037659f, 0.6549731493f, 0.2007940114f, -1.5664811134f, 0.3535908461f, 0.6514756680f, -0.3146148622f, 0.0244260952f, -0.1043881625f, 0.5631551743f, -0.1026171371f, -0.2293619066f, 0.0751082525f, 0.1610344499f, 0.3488910794f, -0.3952502310f, 0.0538705476f, -0.1643067747f, -0.0639704242f, 0.1503835022f, 0.1106679291f, 0.3851269782f, 0.3049305081f, 0.2240979224f, 0.4056433737f, -0.3284457624f, -0.4254478812f, -0.0813698918f, -1.5299969912f},
-        {4.3450713158f, -0.4628526270f, -0.1491935551f, -0.2041818649f, -0.5786065459f, -1.2504427433f, -0.2758893967f, -0.3101694584f, 2.9785020351f, -4.7803659439f, -0.3506944776f, -0.9885157347f, -7.2183914185f, -0.1302880943f, -2.8009421825f, -0.6073452830f, -0.8039718270f, -12.0689706802f, -0.7140820026f, -0.3246946931f, 2.0155956745f, -0.3901022673f, 3.3020424843f, -0.5596037507f, 0.5555099249f, 0.2735705674f, -0.2914109826f, -14.4507541656f, -17.0698108673f, -4.3910245895f, -5.2524790764f, -0.2280410379f},
-        {-0.0042843656f, -0.1069235355f, 0.0691635162f, 0.0867756158f, 0.2937769592f, 0.0736219883f, -0.1853623986f, -0.1654763520f, 0.2185866535f, 0.1437660605f, -0.2649201155f, -0.1712868661f, -0.0538765527f, -0.1329404116f, 0.0423769951f, 0.3043175936f, 0.2732996941f, 0.0199668072f, 0.2512804568f, 0.1751035899f, -0.2383348942f, -0.2895450890f, -0.0679779947f, -0.2974975705f, 0.1156523153f, -0.2165189683f, 0.2342301458f, -0.1439705789f, 0.3337920308f, 0.2263115346f, 0.2996229827f, 0.1000883803f},
-        {-0.0903539732f, -0.2626895308f, -0.2928705215f, -0.1522098780f, -0.1990660727f, 0.1050468609f, 0.0752090216f, -0.0103869336f, 0.0290090404f, -0.2140946537f, -0.3905937076f, -0.0324644707f, 0.1388606578f, -0.0920412987f, 0.2089990675f, -0.0512218550f, 0.0448999256f, -0.0192409158f, 0.0232043508f, -0.1123628542f, 0.1863525957f, -0.1689641625f, -0.0414763764f, -0.0482044294f, 0.1756522357f, 0.3836692274f, -0.2097899765f, 0.0034760062f, 0.3211987317f, -0.1981586516f, 0.0146787502f, 0.1057996526f},
-        {-0.5354076028f, -0.3253239095f, -0.1333258152f, -0.0967850685f, 0.0488308556f, 1.7821354866f, -2.4696009159f, -1.0925548077f, 4.8946523666f, -5.5363497734f, -0.0556999668f, -0.3859304488f, -0.4668995738f, 1.1459211111f, 0.0986527577f, -5.5068421364f, -2.1916167736f, 0.9777641892f, 1.2964626551f, -0.1227272600f, -2.6892449856f, 0.2693175077f, 2.4651014805f, -0.2143563330f, -8.1490335464f, -1.1221495867f, -0.2091181278f, -2.5353107452f, 1.5514105558f, -0.8118920326f, -0.0759748369f, 0.0815865844f},
-        {-1.1687350273f, 0.0523806289f, 0.1928860396f, -0.1731245518f, -0.0422611423f, -3.5962536335f, 2.1258342266f, 0.0682783425f, -0.6722916365f, 0.6611677408f, -0.4290418625f, -0.2772609890f, 0.0911868215f, -0.2093296349f, -2.5827946663f, 4.6710624695f, 2.0906822681f, 0.5159549713f, 0.3715068996f, -0.2340186238f, -0.4284092188f, 0.0376657546f, -5.7211947441f, -1.1870640516f, 2.2118372917f, -8.0735073090f, -0.0517498069f, -4.1637449265f, -17.3150138855f, 3.2159905434f, -5.9302067757f, -0.0362711921f},
-        {-9.7952108383f, -0.6339132190f, -1.7921937704f, -0.3130472600f, -0.7404204011f, -1.6049377918f, 0.1309763938f, -7.6337146759f, 0.4408401549f, 3.3682234287f, -0.7966508269f, -0.0931789875f, -4.3933353424f, -7.4179029465f, 0.2328766286f, -2.2703931332f, -11.0213117599f, -11.4555244446f, 0.8035743237f, -0.3479077518f, 2.3253028393f, -0.1451899409f, -0.3695332706f, -16.2041606903f, -3.2792532444f, 0.6592780352f, -0.4765171707f, 1.1891194582f, -0.2045537680f, -0.2613292336f, -7.1603960991f, -0.0806212798f},
-        {-0.2485560924f, -0.5306785703f, -0.2062491179f, -0.1363802254f, -0.0375753008f, -0.2761560082f, -0.2498460114f, -0.0567790791f, -0.4666529298f, -0.0051496779f, 0.0906768441f, 0.3301909864f, 0.0531814285f, 0.2584980726f, 0.0183127709f, 0.1766013205f, 0.1447227001f, -0.1579496711f, 0.0043631280f, 0.1031887531f, 0.0396930017f, -0.0095448559f, 0.1428825110f, -0.0905142054f, 0.0705604851f, -0.7297466397f, 0.1558683962f, -0.0418609716f, 0.1233214065f, 0.1279907525f, 0.1352362633f, -0.0770157427f},
-        {-0.0049988753f, 0.1279107481f, 0.0449896753f, 0.6752018332f, -0.2889954150f, 0.4311439991f, -0.3787408769f, -0.4591981173f, -0.1940811723f, -0.0184744801f, 0.0441148244f, -0.1790693253f, -0.7149969935f, -0.0285517797f, -0.1489535421f, -0.5780433416f, 0.5109094977f, 0.6176788211f, -0.3211218417f, 0.1074986085f, 0.2505583465f, -2.5777461529f, 0.3480081260f, -0.8229233623f, -0.6535633206f, 0.5414181352f, 0.8112808466f, -0.3283018768f, 0.4965822697f, 0.8790674806f, 1.1569755077f, 0.2319966406f},
-        {-0.2767451704f, 0.2554717064f, -0.2503568828f, 0.2911026180f, -0.0896157026f, 0.0468162894f, -1.6308424473f, -0.2833184302f, -1.0214830637f, -0.1677722186f, 0.0416059718f, -0.0212873127f, -1.5793803930f, -0.0655662566f, -0.2267671078f, 0.3937034011f, 0.0103700571f, 0.1117373928f, 0.3512356877f, -0.1141320691f, 0.2422832102f, -3.8471693993f, -0.6802755594f, 0.1919109225f, -0.2617484927f, -0.5890094638f, 0.0800860524f, 0.1804080307f, -0.0786418170f, 0.2081480175f, -0.2514747679f, -1.6461024284f},
-        {-4.4110560417f, 0.0582131147f, -0.2296621650f, 0.0098368116f, -0.3111234009f, -0.7137008309f, 2.6443011761f, -5.5492348671f, -4.7353625298f, -1.0368877649f, -0.4160888791f, -1.2896853685f, 3.9724817276f, -10.6603651047f, 2.2762250900f, -3.0436787605f, -8.0274572372f, -1.4319875240f, -3.7743313313f, -0.0725755915f, -0.0383329280f, -0.3231822848f, 0.4311948717f, -2.6726655960f, -0.5350571871f, -1.4796928167f, -0.1884928495f, -5.7419962883f, -0.9663215280f, 0.1886327565f, -8.7959461212f, -0.1736448258f}
+        {1.7914062f, -0.80565685f, -0.39612606f, 0.46151608f, -5.0547504f, 2.1346629f, -0.5866113f, 1.7330999f, 5.226532f, 1.1254648f, 1.7528123f, 0.90921766f, -3.8873222f, -0.2108171f, 1.3019018f, -1.0913831f, -1.3496892f, 0.9275422f, 1.3916702f, -0.7422027f, -14.226913f, -5.5119143f, -2.7041047f, -0.13495028f, -14.246616f, 3.1755843f, -0.4515219f, -1.870079f, 2.3558214f, 2.1852665f, -2.2582603f, -0.2651835},
+        {5.647242f, -3.9835858f, 0.931489f, 3.3007982f, -2.888885f, 3.3434181f, 3.113636f, 2.3520875f, -10.915207f, 0.32706144f, -5.4228387f, 0.6384291f, 2.9980261f, -0.8077258f, 2.0209413f, -7.658149f, -3.55588f, 0.4685455f, 1.0317082f, 1.0402937f, 0.19504467f, -0.39325416f, -2.2248638f, -7.4588633f, 0.7588274f, 7.2947793f, -1.3555585f, -0.57599604f, -0.57280046f, 0.33494148f, -0.31496456f, -4.755319},
+        {-5.9991474f, -1.1403159f, -11.33599f, 0.60962296f, -1.0966874f, -1.4063604f, 1.1463064f, -4.7807693f, -0.50755405f, 0.42847365f, -4.162336f, 1.1214046f, 1.3445568f, -0.30147338f, -4.126416f, 0.09994955f, 0.67730397f, -0.057805058f, 0.91069597f, -0.27020407f, -1.2696394f, -0.83790714f, 1.1411543f, -1.7861574f, 0.07681395f, -3.0172122f, 0.6165021f, -0.96005017f, -4.1577115f, -2.6224468f, 1.4562567f, -0.24586783},
+        {5.3007693f, 0.49572623f, -4.5557156f, -3.5083375f, 1.9247313f, 7.479415f, -1.8582624f, 3.8689556f, 1.0793132f, -2.3364534f, 4.018371f, -0.7708218f, 1.0431026f, -0.7113181f, 5.8986697f, -5.5499806f, 0.9676053f, -0.36285186f, 0.29998538f, 0.08598248f, -1.023619f, -0.48214775f, -1.7129602f, 1.3980522f, -1.8813517f, -4.434983f, -0.45562232f, 1.2737273f, -1.5506862f, 1.425247f, -0.16431622f, -0.31915954},
+        {0.3088886f, 0.3307203f, 0.0038545637f, 0.46553752f, -0.5554034f, -0.20348431f, 0.21098572f, 0.062145468f, 0.088202305f, 0.18943472f, 0.21072812f, -0.15111296f, 0.051719695f, 0.019015137f, -0.3605174f, 0.23167086f, 0.08986041f, 0.3106382f, -0.076905265f, 0.05874602f, 0.30621597f, -0.057096533f, 0.237741f, -0.022404743f, 0.104863815f, 0.019853901f, 0.16820307f, -0.17504682f, 0.08521022f, -0.027018966f, 0.05329839f, -0.023520967},
+        {-7.7084813f, 2.3591592f, 2.8843453f, 13.241424f, -0.6651888f, 3.2497187f, -0.50742024f, -6.2830806f, -46.71722f, 1.7797878f, -3.1279156f, 10.672918f, -1.3214766f, -4.5027514f, -9.128087f, -6.4020877f, 4.9751344f, -1.1876704f, -0.3599553f, 0.49255747f, -0.6557815f, -2.3448792f, 5.746542f, 4.0341144f, -1.088373f, 1.1883944f, 5.0502124f, -1.8084757f, 12.22285f, 2.7382843f, -8.599025f, -31.40234},
+        {0.36155763f, 5.4455132f, 4.488669f, -3.923355f, -0.820914f, -16.298044f, -3.1316485f, -1.9166328f, 12.38712f, -0.26673836f, 4.4545574f, -0.57802206f, 4.648841f, 0.7637474f, -3.908132f, 14.506466f, 2.1075368f, -14.774023f, 4.2891836f, -0.3039282f, 2.2345228f, 1.4033413f, 1.409226f, 1.0029585f, 7.1141834f, 4.4565873f, -6.4395723f, 5.532671f, 10.5177f, -6.2024813f, -9.314759f, 0.6965771},
+        {-9.117531f, -1.4787956f, -0.07104897f, 1.344829f, 0.9584191f, -12.913689f, -0.7288005f, -5.3216767f, -1.0168352f, 3.582094f, -3.073695f, 2.2389143f, 1.4112512f, -4.5213313f, -5.6649365f, -7.5397f, -0.2905528f, -0.39536518f, 1.077748f, -0.5659086f, -8.959649f, 0.8034261f, -3.5947678f, -1.4993094f, 1.3526626f, -1.8678566f, 0.6622105f, -3.7716002f, -0.7685331f, -0.87507397f, -9.836991f, -1.935384},
+        {-8.221142f, -4.3225994f, -0.37957102f, 8.015113f, 1.633809f, -16.756836f, -4.060193f, -6.7441864f, -0.4872511f, 7.8677726f, -1.0855521f, 2.972455f, -0.6089119f, -4.493702f, -4.8978987f, 4.6163955f, -2.5031369f, 6.112043f, 0.53816795f, 0.43453735f, 1.0070152f, 2.2013514f, -0.5493099f, -1.0691575f, 1.9252634f, -2.0430956f, 5.474391f, -2.693929f, -1.0808609f, -5.189752f, -0.00067621f, -7.8679376},
+        {-8.969784f, 3.5864365f, -3.4007072f, 5.803325f, -3.2227387f, -8.553061f, -5.66965f, -8.122391f, 4.032728f, -3.68136f, -3.4215803f, 2.502909f, -0.12894903f, -0.20262916f, -12.231395f, -17.79648f, 1.2436817f, -19.347525f, 2.3952353f, 1.5843247f, -1.8039918f, -7.517674f, -8.305582f, -0.9093137f, -2.232838f, 0.37190816f, 5.130753f, -3.7103784f, 7.097017f, -27.291662f, -0.21566634f, -8.210125},
+        {0.14258733f, 0.20902786f, -0.018203901f, 0.07800326f, -0.07222334f, -0.14881906f, 0.16816212f, 0.25612178f, 0.45741457f, -0.07141378f, -0.0906293f, 0.16928475f, 0.08693396f, 0.22864029f, -0.79223025f, 0.18828192f, 0.013336098f, 0.014493377f, 0.08691919f, -0.11425169f, 0.43243796f, 0.07442798f, 0.23107933f, 0.06913599f, -0.17037126f, 0.023612173f, 0.11938313f, 0.2500578f, 0.24743554f, 0.2577999f, -0.24954143f, 0.17583923},
+        {1.6388919f, -0.908915f, -0.22562806f, 1.5896182f, 1.6168954f, -1.6881789f, -0.29928216f, 4.1326814f, 2.2320786f, -6.240735f, 3.0816762f, 0.6780304f, -1.4569364f, -1.0918908f, 1.8644958f, 1.1386685f, -16.243244f, 0.42369974f, -0.88692474f, -0.0788016f, 1.5530138f, 1.1847423f, -10.768902f, 1.5300117f, -12.619702f, 0.06500927f, -0.9535428f, 0.5700415f, -1.5649694f, 0.7089466f, -0.7874601f, 2.752182},
+        {-4.9323163f, 1.7900536f, 2.8887112f, 16.029755f, -2.9453113f, -0.48427415f, -12.525861f, 7.4464316f, 17.931095f, -5.1633263f, 18.110052f, 0.6812524f, -9.327044f, 3.7740967f, -6.884192f, 12.944945f, 3.60061f, -17.939108f, -1.0989302f, 2.233405f, 6.1407666f, 1.5207521f, -14.605522f, 15.714419f, 2.0015109f, 15.564239f, -3.2278194f, -1.1879808f, -1.7570707f, 18.70997f, -6.339709f, 6.50026},
+        {-0.51074374f, 0.47097707f, -1.3086584f, 1.0273447f, -5.2774186f, -1.3639426f, -3.8754718f, -0.32310244f, -0.5258077f, -2.179402f, -4.9742465f, -1.3217412f, -3.8901458f, -1.2903636f, -0.21521178f, 5.447236f, -0.08359479f, -3.0129268f, -0.7978363f, -2.2252333f, 1.600086f, 0.007311248f, -6.2438574f, -0.92388284f, 1.1546443f, -2.072724f, -2.854204f, 1.3238871f, 1.7942152f, -3.7292764f, -2.4658728f, 0.83125985},
+        {1.2671186f, -8.05823f, -0.8078366f, 7.1307755f, 0.51732427f, -0.8940509f, 1.3026669f, -9.683313f, -9.393374f, 0.6670799f, -14.321387f, 6.384599f, -27.683575f, -0.58957887f, 0.18644892f, -0.87433684f, -8.790864f, -0.07432924f, 1.3672997f, -0.4159067f, -1.8177145f, 1.1142206f, 2.7553732f, -11.329235f, 5.490611f, 4.7399797f, -3.353679f, 4.744391f, -3.6721454f, 0.8017916f, 0.10661039f, -6.068803},
+        {1.6135243f, -0.024282938f, 0.41224384f, -3.8035262f, -27.836716f, -3.1119373f, -2.9096475f, -0.76968294f, 3.7775657f, 0.66680336f, -0.74983007f, 0.47796455f, -4.819364f, 1.2707988f, -2.837753f, -2.8921022f, 2.5686119f, -0.10341748f, 0.7980184f, -0.4372682f, -2.4216585f, 0.85246134f, -4.9367833f, 1.751316f, -2.7233806f, 5.838808f, 1.3771757f, -0.1038435f, 1.288101f, 0.86719376f, 2.3448205f, -4.063523},
+        {3.4947512f, 3.3424711f, 0.9101695f, -3.2834852f, -7.3810043f, 4.997476f, 4.1129947f, -6.874846f, 6.504028f, -2.7484825f, -8.253036f, -3.3120131f, -3.6880867f, 1.2199539f, -3.179483f, -8.460522f, -2.2204885f, -0.9946265f, 1.1893251f, 0.8426715f, 1.27212f, 1.8100618f, 1.0439723f, -6.715419f, -3.5307617f, 10.06498f, -0.9898101f, 2.3629231f, -2.3281705f, -10.521034f, 5.0716567f, -9.200674},
+        {1.2178478f, -0.2313189f, -0.23575228f, -13.033817f, 3.513209f, -0.677971f, -0.8736642f, 0.43081564f, -3.8947117f, -8.13449f, -3.9256945f, -4.153904f, -2.243911f, -9.130566f, 0.570356f, -3.411293f, -6.115388f, -1.420293f, -1.644672f, -1.1513855f, 2.4364066f, 0.19460016f, -1.2474072f, -4.5941663f, 0.9283048f, -1.6937749f, -1.7424034f, 1.700875f, -1.9130815f, -1.6691438f, -3.5165145f, -1.4267505},
+        {-2.6196556f, 0.7132369f, 1.7329736f, 15.429194f, -9.018211f, -2.0340767f, -4.9728274f, -1.4189153f, 1.2628565f, 0.500136f, 1.7255708f, -1.8266225f, -4.644291f, -0.20929372f, -0.9014841f, -0.08708525f, 4.2104025f, 3.60293f, 2.539874f, -18.232891f, -5.512729f, -1.7433261f, -0.8977725f, 3.809054f, 2.0422487f, -8.003588f, -0.093172416f, -1.4180439f, -0.059563916f, -1.8503497f, -3.2279449f, -7.248503},
+        {-3.8485339f, 2.2213385f, -2.1484807f, -2.44701f, 2.0920758f, -2.2683203f, -4.0094543f, -2.1012008f, 1.1597598f, 1.1182823f, 6.8505793f, -1.5648096f, 0.38284534f, -0.43943805f, -0.8373106f, 11.792716f, 2.3111918f, 0.2810266f, -1.6637869f, -0.86732906f, -10.796718f, 0.5886356f, 1.2018139f, 8.048273f, 1.7934788f, -5.594966f, 2.258684f, 0.6955334f, -0.04031148f, -0.2916655f, -4.070697f, -0.3104612},
+        {4.1283803f, 2.0622256f, -6.4086876f, 15.29703f, -3.2757757f, -0.11523006f, 1.0034788f, 1.4469593f, -0.77478296f, 5.9932623f, 4.4157133f, -6.4719777f, -17.435266f, 0.15780947f, -6.3154244f, -3.3269591f, 2.1809258f, -10.457642f, -10.308333f, 0.5111225f, 3.6219826f, 1.2988629f, -8.243879f, 4.479834f, -1.5833981f, 4.4332113f, -4.0344195f, 8.994552f, -1.0603226f, -2.9213858f, -1.2554829f, 2.9271224},
+        {-9.899223f, -13.032679f, -0.12448069f, -4.2505803f, -0.97926474f, 0.12729168f, -4.8796287f, -0.06375193f, -0.55370045f, 0.3304919f, 5.241529f, 5.804237f, -0.8161717f, -0.06324087f, 2.840915f, -1.9046143f, -16.63866f, -0.08664215f, 1.7824566f, 0.86874807f, 11.54059f, 0.08357941f, -1.026016f, 0.29108667f, -7.9782114f, -0.34410638f, 0.11575276f, -2.776203f, -6.8669496f, 0.13607068f, -0.27308166f, -1.7575605},
+        {-0.17579699f, 0.2176594f, 0.04227364f, -0.14671864f, 0.18892919f, 0.07211765f, 0.07415793f, 0.2388806f, 0.36446294f, -0.08590321f, 0.12406814f, 0.25136924f, 0.39125866f, 0.17123434f, -1.040553f, 0.048700184f, -0.14530747f, -0.22883715f, -0.08401002f, -0.056402188f, 0.4382661f, -0.2532995f, 0.29709852f, 0.29719985f, -0.064198725f, 0.09568114f, 0.30269817f, -0.27103597f, 0.2777477f, 0.060215414f, -0.16067553f, -0.11698248},
+        {-4.6970067f, -9.784733f, -3.3697283f, 17.84421f, 11.614192f, -21.712906f, 0.95904005f, 0.06498439f, -2.4505053f, 5.135909f, 11.823142f, 11.167013f, -3.610445f, -0.7032511f, 0.0057886913f, -12.361271f, 6.6522794f, 7.392463f, 6.3494706f, 5.1472774f, 6.644986f, -0.27306712f, 6.1350904f, -10.977844f, -10.0620985f, 9.004579f, -4.6961994f, -7.031211f, -0.6150708f, 3.7120275f, -18.134506f, -5.0437098},
+        {-0.17119634f, 2.9791453f, -3.5755649f, -1.1951265f, 1.09542f, 0.024298923f, 2.1006625f, -6.7423396f, -8.134009f, -4.5811834f, 1.4763205f, 4.377629f, -0.70934224f, -1.6887653f, -1.0979426f, -1.9963247f, 1.0497115f, -0.3751097f, -1.909814f, 0.039776348f, -0.17693087f, -0.06673319f, -0.010015737f, 1.1143703f, 0.8591777f, 0.9064384f, -0.4413786f, -3.3736544f, 1.4758457f, -1.9063784f, -4.0851855f, -0.7154143},
+        {0.22280218f, 0.94867676f, -9.036496f, -1.2555475f, -1.5680002f, -4.492304f, 1.5476395f, 1.5692449f, -2.0050159f, -3.4023998f, 0.78171396f, 0.10543206f, -3.678707f, 2.2489085f, -0.8805179f, 3.9573605f, -0.8752827f, 1.3230579f, -2.2359078f, 0.9703249f, 3.169299f, -3.5922358f, 1.0543603f, -8.392697f, 1.4411566f, 6.7666306f, -9.667536f, 0.3049829f, 3.3728678f, 0.8523196f, -11.596693f, -0.104892306},
+        {0.27965063f, 0.27758142f, 0.20745192f, 1.0612024f, -0.51094055f, -0.08370326f, -0.037472457f, 0.044123333f, 0.07616475f, 0.42481086f, -0.0698172f, 0.21660034f, 0.19836904f, -0.28605413f, -1.6465003f, 0.24952966f, -0.16262677f, 0.25169638f, 0.33610946f, 0.10928392f, 0.53764296f, 0.23835279f, 0.029037314f, 0.010176629f, -0.28185803f, -0.18325365f, 0.3092609f, 0.19176334f, 0.09629367f, 0.20633617f, 0.08339015f, -0.022787755},
+        {-2.1301756f, -0.88878995f, -0.25695115f, -6.192932f, -2.3349595f, -1.5753849f, -0.29992554f, -5.002126f, 5.8941884f, 0.8583375f, 3.7697537f, -0.93076533f, -1.8825517f, 1.5392503f, -1.2617368f, 6.53197f, 0.36571726f, 0.33893034f, -0.16298303f, -0.4091526f, -1.7857326f, -0.86919945f, 1.012114f, 1.9826225f, -6.8262076f, -4.5531383f, 3.5071368f, -0.65628755f, 3.1090932f, 1.1626259f, 0.8233848f, 0.12005902},
+        {8.71147f, 3.7173862f, -18.684528f, -11.245945f, -3.825321f, -7.7290297f, 3.6023405f, 4.620071f, -6.341059f, 1.3007519f, 1.4845124f, -0.92249227f, -5.7542214f, -1.1174575f, -2.5664642f, 0.8054936f, 0.32299876f, 3.6724799f, -3.7990427f, 2.0019195f, -5.9325767f, -0.058660727f, -9.1576185f, -6.9543f, -12.495141f, -7.791994f, -6.8371854f, 6.679582f, -2.0851026f, 5.029356f, -16.094381f, 2.1985676},
+        {-2.6674254f, -1.1188734f, 0.7367407f, -1.0788542f, 3.1546638f, 4.134124f, -0.29143634f, -8.008235f, 2.8949158f, -1.330566f, 1.774663f, -0.35338584f, 2.7110639f, -0.8190528f, -18.830994f, -17.144173f, -0.37161258f, 0.4794081f, 1.2049181f, 0.16664213f, -2.3092f, -0.48423097f, 0.4284348f, -11.70906f, -0.24019702f, -2.2202604f, 0.95467263f, 0.42333966f, -6.32866f, 3.3718455f, -1.8886749f, -5.2132344},
+        {1.1806351f, -1.4302741f, -0.09694423f, -3.4382358f, 1.4759142f, -0.76767415f, -0.16477297f, -8.433284f, -2.1389315f, -0.6622377f, -0.30421177f, -2.735694f, -0.15797172f, 0.56494904f, -0.48187438f, -0.8722949f, -0.54558724f, -0.73165196f, -0.398949f, -0.27602616f, 0.6453096f, 0.95005685f, -0.67911834f, -0.15606092f, 1.0010574f, 3.819701f, 0.22428349f, -0.46528614f, -2.2599835f, -0.5069026f, 1.5785724f, 2.2800274},
+        {0.13468753f, 0.12094364f, -0.87016183f, 0.07498481f, 0.2894364f, 0.20386946f, 0.29222554f, -0.071803115f, -0.0066290214f, 0.44156998f, 0.28492412f, 0.16992731f, -0.082463205f, 0.3661464f, 0.14938426f, -0.18572776f, 0.17422286f, 0.113349535f, 0.056831695f, 0.051568907f, 0.13662575f, -0.026493082f, -0.013057242f, 0.14288992f, 0.19464271f, 0.050465144f, 0.12859644f, 0.19824149f, 0.25516936f, -0.1986374f, -0.14091456f, 0.1188877}
     };
 
 
-    const float fc3Bias[32] =
-    {-11.7193555832f, -0.6158396602f, -0.5767308474f, -0.4492973387f, -0.4815680087f, -1.5243271589f, -28.5404338837f, 4.9779524803f, -48.1950645447f, 5.1014094353f, -0.8038403392f, -0.7135465741f, 7.9977378845f, -3.9328453541f, -22.0385246277f, 0.3583163023f, 1.1570060253f, -13.7082090378f, 2.4488532543f, -0.4611511827f, -7.0892620087f, -0.3534394205f, -4.1933374405f, -13.2186746597f, -16.0344810486f, 5.2995457649f, -0.7092553973f, -11.6922359467f, 5.9151840210f, -4.7581868172f, -5.7193002701f, -0.4998539686f};
+    const float fc4Bias[16] =
+    {-2.7985106f, -2.7712271f, -1.6791794f, -6.795368f, -2.789574f, 1.7483559f, -4.0892835f, -10.518786f, -28.253544f, 9.647625f, 7.117528f, 0.564729f, -8.741218f, 8.831492f, -7.38007f, 2.1328087};
 
 
     const float fc4Weights[32][16] =
     {
-        {0.1313932389f, -0.6613871455f, 0.0097358534f, -0.1018039361f, -0.4058391750f, 0.4376264215f, -1.2572003603f, -3.6500022411f, -0.4249550700f, -0.2536546886f, -0.8922878504f, -0.4847670496f, -0.5938788652f, 0.1258193851f, -0.2272187024f, -0.1410650164f},
-        {0.0492341593f, 0.0943892971f, -0.5367519855f, 0.2006352544f, -0.3140752912f, 0.3790577352f, 0.5460243821f, 1.5730974674f, 0.4506726563f, -0.3239695728f, 0.1827834398f, -0.2436640859f, 0.4437866211f, 0.3330729902f, -0.2623860538f, -0.2274987251f},
-        {0.3261446357f, -0.5036940575f, -0.0645739883f, 0.1797081381f, -0.0971707106f, 0.7298631668f, -0.4873719513f, -0.1038509980f, -0.8186036348f, -0.0861302018f, 0.0887329206f, -0.2477209568f, -0.4017193019f, -0.2803779542f, 0.5708403587f, 0.7890117168f},
-        {-0.4605375826f, -0.3520908654f, 0.4579149187f, -0.6693316698f, 0.3497380316f, 0.2658064663f, -0.1681881249f, -0.3272072375f, -0.0845411718f, 0.2394114435f, -0.0101059023f, 0.4046859443f, -0.7417863607f, 0.4150537550f, 0.0869048312f, 0.0200589113f},
-        {-0.7960591316f, 0.7115456462f, 0.5414740443f, 0.2834898829f, -0.1049120426f, 1.2471122742f, 0.9764256477f, -0.2314370126f, 0.4565517008f, -0.1377106160f, 0.0066791684f, -0.0875304118f, -0.3973374367f, -0.4656803310f, -1.2865468264f, -0.2754203975f},
-        {-0.1267081201f, -0.3586117029f, -0.4626653492f, 0.0707737282f, -0.4280650318f, 0.3731042147f, -1.5224643946f, -0.0001562309f, -0.5457718372f, -0.8392512798f, -0.3297198415f, -3.6849846840f, -0.3235607445f, -0.4571735561f, -2.5906243324f, -0.0216693431f},
-        {-0.1975702047f, -0.6478233337f, -1.0000374317f, -0.7892091870f, -0.6129112840f, 0.4033009410f, -1.0652874708f, -5.0731873512f, -0.8335696459f, -0.0490954109f, -4.0255231857f, -2.5913162231f, -0.0984867662f, -0.3165186942f, -1.6619985104f, -0.1019358039f},
-        {-0.0070813317f, -1.4723222256f, -0.1055053324f, -0.0588658154f, -0.0424999259f, -2.5744652748f, -1.9830906391f, 1.0004559755f, 0.7691277862f, -0.1811856925f, -0.2902224660f, -0.2105268091f, 1.2195326090f, -0.0701754391f, -0.4191590548f, 0.0362841599f},
-        {-0.1953794360f, -0.7642983794f, -0.5502391458f, -0.6046341658f, -0.0868658274f, -1.0930783749f, -0.4096246660f, -0.2226173431f, -0.9467145205f, 0.0366492942f, -1.0827271938f, -1.3997668028f, 0.1914290041f, -0.1873319149f, -0.3942896426f, 0.0503584519f},
-        {-0.0302787200f, -5.7183461189f, 0.0836869702f, -0.1351985931f, 0.1218350157f, -0.0037351907f, 0.9376742840f, 0.5179937482f, -1.2707405090f, -0.2760854661f, 0.9394776821f, -0.6231134534f, -0.5011545420f, -1.0431542397f, -0.3772255182f, -0.9186507463f},
-        {0.5151054263f, -0.1792936772f, 0.5858933330f, -0.0756824464f, -0.1400850862f, 0.3227327764f, -0.0678724647f, 0.6420112848f, 0.7452553511f, 0.0104118586f, 0.1161525100f, -0.9172155261f, -0.3198927939f, 0.0625916570f, 1.1083164215f, 0.5252248645f},
-        {0.0453939959f, 0.0149580799f, -0.6745067239f, 0.2029461563f, 0.2238395065f, -0.2415017635f, -0.0304794274f, 0.0479286723f, -0.3008814454f, -0.2162462026f, -0.3752769828f, 0.7910355926f, -0.1502458900f, 0.2189511806f, -0.4534323215f, 0.2343945056f},
-        {-0.0660357103f, 0.5701023936f, -0.7573124170f, -0.4243010581f, -0.3647210896f, 0.9252396226f, -2.1346116066f, -1.5707424879f, -1.0428055525f, 0.0289310124f, -2.2915866375f, -2.0114760399f, -1.4218503237f, -0.6069518924f, -3.6163923740f, -1.0943173170f},
-        {-0.3510537148f, 0.0646613464f, -0.1941086054f, -0.3585000038f, -0.6358650923f, 0.4817451835f, 0.1834470332f, 1.5077445507f, 0.1200657785f, 0.0157124996f, 0.0893150121f, 0.2747304440f, -0.8162755370f, -2.2185630798f, -0.7672387958f, -0.7171642184f},
-        {-0.2655964494f, -0.6097341180f, 0.2751416266f, 0.0416029692f, -0.3487569392f, -4.3967308998f, -0.0399694182f, -0.5985686183f, -0.3526073098f, -0.0124356151f, -0.7412110567f, 0.3568145633f, 2.2140672207f, 0.3069616854f, -0.3047554493f, -0.9152814150f},
-        {-0.3112998009f, -1.2923207283f, -0.2642335892f, 0.1059029102f, -0.6062253118f, 1.7047382593f, -0.2192801982f, -7.2568459511f, -0.6452113390f, -0.1957286149f, 0.4478967488f, 2.1868736744f, 1.0964838266f, -0.5934657454f, -0.9350823164f, 0.1335169673f},
-        {-0.1445592940f, -3.8598067760f, -0.0888997465f, -0.4536363184f, -0.0818780512f, -0.5499716997f, 0.8879400492f, 0.3036511838f, -2.1018016338f, -0.3131541610f, -2.5331704617f, -2.7884752750f, -1.5264098644f, -0.2974909842f, -0.3884962499f, -1.6347447634f},
-        {-0.1576830745f, -1.0188829899f, -0.1347837746f, 0.0133346859f, -0.1020436883f, 0.9006328583f, 0.4465196133f, -1.9912528992f, -1.1890530586f, -0.2928483784f, -1.1970791817f, -1.0793333054f, -0.6542327404f, 0.0027635724f, -0.7239921689f, -0.1350315958f},
-        {-0.0101720933f, 0.8065249920f, -0.2725579739f, -0.5590948462f, -0.6773648858f, -0.9759730697f, 1.1105380058f, -0.9370074272f, -1.0632905960f, -0.2358790785f, -2.6182923317f, -0.5131548643f, 0.3938317299f, -0.6527919173f, -0.5773690343f, -2.7888607979f},
-        {0.9983167648f, 0.0334987827f, 0.1105532423f, -0.4079656899f, -0.1334102899f, 0.1476265639f, 0.0125124194f, -0.2545211911f, -0.3887112439f, -0.3177830279f, -0.3589894176f, 0.1081808954f, -0.3721842766f, 0.0556281544f, -0.0388795845f, 0.2037374824f},
-        {-0.4827512801f, -0.2132459283f, -0.9375121593f, -1.3464082479f, -0.5630852580f, 0.0437785275f, -6.4064550400f, -2.0924882889f, -0.2812258899f, -0.5477465987f, -1.5397117138f, -4.5946688652f, -0.4861118793f, -0.7390319705f, -1.4275629520f, -1.5372459888f},
-        {0.0196762551f, -0.0118051507f, 0.2246439159f, -0.2613828778f, -0.5333120823f, -0.1223717630f, -0.1976639330f, -0.1101496667f, -0.0134799089f, 0.0676583350f, 0.2612578273f, 0.1215140149f, 0.2203066051f, 0.2337986380f, 0.1590026319f, -0.0366739817f},
-        {-2.0189671516f, 0.4665688872f, -0.8338592052f, -0.3301258981f, -0.4463534951f, -0.3213590384f, -0.2176769376f, -0.7976086736f, -1.4433599710f, -0.9578914046f, -2.3176016808f, -3.3081896305f, 0.1362658292f, -0.9325780272f, -7.5809931755f, -6.1999273300f},
-        {-0.2162996083f, -1.1839522123f, -1.3205081224f, -0.0846010596f, -0.2445309013f, -0.2086048126f, 0.8832997084f, 0.2233153582f, 0.6593582034f, -0.2484957576f, -0.5232675672f, -0.0044967751f, 0.1215033680f, -0.2973840833f, -0.0051185489f, 0.4212923348f},
-        {-0.3386851847f, -0.1535801440f, 0.2589180470f, -0.5164783001f, -0.0374755822f, 0.2122802138f, 0.2694437504f, -1.9194368124f, -0.4101884961f, -0.5941445827f, -1.8583507538f, -0.8249487281f, -1.2600407600f, -0.3161348701f, -1.8951197863f, -0.5458792448f},
-        {-0.5639970899f, 0.5414865613f, -0.9907631874f, -0.7151839733f, -0.3994543254f, -0.8817944527f, -0.5968976021f, -0.2674676180f, 0.4723920822f, -0.6860534549f, -1.4526910782f, -2.7732286453f, 0.6615548134f, -0.4297663867f, -0.3635542095f, -0.7897509336f},
-        {0.2338507622f, -0.0548883379f, -0.6124376655f, 0.3055166602f, -0.6472301483f, -0.0934592113f, -0.0791300610f, 0.0744187683f, -0.0494301580f, -0.0888935924f, -0.2844451666f, -0.3919087350f, -0.1899581403f, 0.0696015507f, -0.3865183890f, 0.1351541430f},
-        {-0.3884226382f, 0.6438637376f, -0.0235484447f, -0.4085457325f, -0.3678089380f, -0.3611978292f, -1.9616941214f, -0.6029480100f, -1.0217937231f, 0.0628737658f, 1.1272052526f, -0.7026557922f, -2.6631255150f, -0.0570945218f, -0.8197408915f, -0.0155918878f},
-        {-0.3045629263f, -1.2819237709f, -0.4050366580f, -1.0614979267f, -0.1641227305f, -1.2281309366f, -1.3765566349f, 0.6788370609f, -1.5758328438f, -1.0314040184f, -6.2401552200f, -3.9707064629f, 0.3741535544f, -0.5852952600f, 0.2783090174f, -0.1958702654f},
-        {-0.3730004132f, 0.3823136389f, -0.0965899155f, -0.1237012967f, -0.0356198289f, -0.2304152846f, -2.5172274113f, -0.2180451900f, -0.3073972762f, -0.2923755348f, -4.9185404778f, -3.6769018173f, -0.4479543269f, -0.0074586943f, 0.7228356004f, -0.3836637735f},
-        {-1.5993598700f, -1.3894209862f, 0.0539587401f, -0.3277336061f, -0.2855097055f, -3.6847970486f, -4.5063147545f, -1.4260863066f, -3.9039046764f, -1.1701396704f, -1.8200896978f, -2.4587380886f, 0.2993653715f, 0.0570639670f, -2.6918485165f, -1.4997549057f},
-        {0.1219597459f, 0.0154820858f, 0.3974801600f, 0.3066018224f, 0.1819918901f, 0.0161614101f, 0.0640004650f, 0.1952118576f, -0.2755865157f, 0.0411446691f, 0.0500190333f, 0.1724539101f, -0.1740499139f, 0.3841970265f, 0.3317279220f, 0.4177183211f}
+        {0.19789425f, -2.903841f, 0.96416384f, 0.7641616f, -2.994523f, -0.9327362f, -0.2864158f, 0.0737345f, -4.481294f, -4.030361f, -11.54802f, -0.26523557f, 0.38340458f, -0.17161602f, -0.38188905f, -2.7481656},
+        {-2.124681f, 0.48083204f, 1.1133684f, 6.094087f, 0.88738173f, 1.6677709f, 0.10132102f, 1.094943f, -1.2475195f, -3.4210348f, -4.2059836f, -13.424512f, 0.7118958f, -0.48200157f, -0.9736819f, -8.639708},
+        {-1.476452f, 13.862889f, 9.126758f, 16.065615f, -8.735897f, 3.8107407f, -5.788274f, -4.531948f, 6.3731833f, 1.643253f, -8.772617f, 9.521937f, 2.9946086f, 1.3726804f, -9.198953f, -29.673178},
+        {-0.39075172f, -0.6176885f, -0.19784623f, -0.050055932f, -0.839266f, 0.06107414f, 0.45244378f, -0.7176358f, -2.5067008f, -2.2022011f, 0.7933599f, -5.1226125f, -0.4905139f, -0.28462663f, -0.8221794f, -8.166356},
+        {0.8210932f, -0.8923191f, -3.4908407f, -14.982753f, 0.14606155f, -0.97340053f, -7.5841055f, -1.8783953f, 3.9199278f, 0.9654067f, -0.21487744f, 1.910102f, -0.12863497f, 1.4629232f, -0.090132974f, -0.6384058},
+        {-1.513232f, -11.368586f, -1.241017f, 2.063856f, 6.453667f, -5.8557987f, 3.6384296f, 0.75558954f, -7.109685f, 3.8687286f, 0.055786394f, -12.473434f, -2.026456f, 1.7353146f, -1.4069344f, -0.70212394},
+        {-3.0800622f, 2.010159f, -9.41683f, 6.933352f, 0.14150532f, -0.63298666f, -3.7476666f, -3.3160586f, -3.4308996f, -1.6742607f, -3.5708373f, -16.507002f, 0.40949577f, 0.1730626f, -0.02273033f, 7.729112},
+        {-2.5769503f, -0.03348871f, 1.8841813f, 0.6567165f, 1.4541687f, -2.7733593f, 2.689798f, -0.86193216f, -0.5403119f, 8.177366f, 0.91739935f, -9.84326f, 0.37091395f, 1.3242421f, -3.9325454f, 3.525585},
+        {-0.11426659f, -0.25191957f, 0.37082702f, -2.6157644f, -0.14928836f, -0.3209338f, -0.096812464f, 0.20679034f, -0.19883575f, -0.016320094f, -1.400281f, -0.3481347f, -0.2933405f, -0.16648495f, 0.24673693f, 0.12564223},
+        {2.6572928f, 2.1002178f, 1.7585319f, -4.4535213f, 1.3052484f, 2.3689134f, 2.6400592f, 0.97565955f, -6.430212f, 2.481041f, 4.2139378f, 2.3969347f, -0.26770714f, -1.6007291f, -0.8972212f, 1.0714774},
+        {0.28599408f, -1.7593877f, -0.08391661f, -0.068126455f, 0.26486525f, -1.2882489f, -2.5672383f, -0.7833289f, 1.5764711f, -2.8287435f, -1.7404923f, -3.0554004f, -0.21506393f, 0.3457227f, 0.18651573f, 0.14555244},
+        {0.37195358f, -0.07477292f, -5.2213807f, -5.566581f, -0.68953604f, -1.4413413f, -0.7455509f, -0.43815863f, -0.71425074f, 2.303947f, 0.41829827f, 1.4578007f, -0.71778417f, -0.16351087f, 0.39073583f, 2.0461962},
+        {0.030233353f, 1.2417716f, -3.408369f, -17.515953f, -0.9757869f, 1.7381774f, -11.216142f, 2.0000966f, 2.134032f, 1.9627371f, 1.3142427f, -1.405489f, -0.40995285f, -1.8418016f, 0.40623552f, -23.985088},
+        {0.45786577f, -2.329075f, 1.8829451f, 4.631422f, 4.66082f, 4.424725f, 1.2640496f, 0.27714705f, 7.506146f, 3.6483214f, -3.7358708f, 6.354863f, 3.7655523f, 2.1927617f, 0.66881806f, -1.4135485},
+        {2.9763217f, 0.27945852f, -1.1739397f, 1.7323555f, -3.049829f, 0.111501f, -3.8812234f, 0.41296533f, -9.16147f, -31.434183f, 0.4774815f, 1.5857337f, 0.9228391f, -2.9968884f, 1.662949f, -0.57451695},
+        {-0.092731886f, -0.030126233f, 0.22813287f, 1.298289f, -12.397257f, -0.72478634f, 0.08628863f, -0.10510798f, 0.2181713f, -0.23561831f, -0.55255616f, 0.035518706f, -0.41188356f, 0.05718903f, -0.74885f, 0.094986625},
+        {0.12787859f, 1.1635892f, -7.4371023f, 4.0413003f, -0.84695256f, -1.088837f, 1.9041123f, -0.31843835f, 5.2289934f, 6.121564f, 5.1536016f, -2.8441145f, -0.48532748f, 1.4463755f, -2.2054958f, 2.2571676},
+        {-1.5634218f, 0.9164901f, 1.5763513f, -7.4767404f, -0.9136366f, -0.56053144f, 7.479919f, -0.60401934f, 6.2218847f, -1.2250826f, -4.0685096f, -0.9376997f, 0.6282888f, -2.9202425f, 0.21693048f, -3.736909},
+        {0.629911f, -2.3191698f, -0.008083906f, 1.7452703f, 1.3839586f, -1.5633304f, -0.25495723f, -0.22962432f, -4.8682604f, -0.74511385f, 1.5988612f, -1.7531602f, 0.080636226f, 2.3864985f, -0.4568046f, 0.9974067},
+        {-0.1851062f, 4.7347302f, -4.952539f, 9.007876f, -0.43841708f, 5.9082294f, -4.302394f, -0.1299641f, -26.42761f, -0.66697365f, -14.555259f, 3.704673f, -4.610109f, 3.2826073f, -0.36440003f, -14.6695},
+        {-4.5832405f, -8.68695f, 2.9759934f, 1.3427778f, 1.0422415f, -1.2703123f, -1.0536628f, -2.2701483f, -2.1040905f, 2.2888858f, 1.1281024f, -4.7166038f, -1.0073037f, -1.7451352f, -3.9570346f, -9.852553},
+        {0.67364484f, 6.5663686f, 0.04808462f, 1.2150273f, 6.267417f, 4.3615127f, -12.870113f, 2.052957f, 5.070229f, 3.9961936f, -2.7967942f, -1.7926744f, 2.8714447f, 2.6443439f, -0.5380919f, 5.513216},
+        {2.0291376f, -3.019621f, 0.15177749f, 1.6151377f, 1.6282482f, 2.8819327f, -9.971195f, 0.6495298f, -14.005819f, -2.1216054f, -4.16313f, 3.3429854f, 1.6171294f, 1.323336f, 4.030207f, -1.490264},
+        {-0.58945274f, -21.66627f, 0.43447945f, -4.1082172f, -8.503363f, 0.04212416f, 2.9486206f, -1.8066338f, -4.703437f, 1.1345068f, 0.79472566f, 3.145418f, -1.1415863f, -0.9197721f, -5.042564f, -0.36312562},
+        {-0.51252025f, 1.1703497f, 5.5524373f, 4.264755f, -2.8661225f, 0.15943956f, 2.169277f, 0.011137591f, -4.618198f, -4.432196f, -1.5416052f, -2.7467837f, 2.3132453f, 1.5830443f, -0.34314293f, -0.30035704},
+        {-0.13470322f, -0.5128117f, -0.2492034f, -1.7671716f, -0.9102625f, -0.37768313f, 1.3092726f, -0.39127007f, 0.47833103f, -0.01009103f, 2.458042f, -0.82682914f, -0.371164f, 0.277628f, 0.05197998f, -0.6120553},
+        {-0.6199878f, -0.122203216f, 1.1601263f, 0.121158764f, -0.70651525f, 0.7829083f, -0.12545949f, 0.109547086f, -3.7740996f, -0.738345f, -1.6949515f, -0.6538718f, 1.1379838f, 0.42421758f, 0.3893838f, -0.3994108},
+        {0.29549626f, -1.8794767f, -1.3624305f, -7.85027f, -0.3905004f, -0.1478696f, -0.11938424f, -0.088428035f, -10.145394f, 0.71823466f, -0.22717142f, 1.0094587f, 0.6230677f, 0.69702363f, 0.98347914f, -0.6685888},
+        {1.4709576f, 2.448548f, -2.6820564f, 1.0323526f, -2.1482725f, 1.3284314f, -1.0215044f, -0.54184836f, 1.3564234f, 0.28882268f, 0.12945333f, 1.679069f, 0.12113758f, -0.7355804f, -2.1172125f, -0.3741458},
+        {-0.1766836f, 0.66920984f, -1.258602f, -10.7145815f, 0.5078805f, 1.4951755f, 1.5685893f, 2.411344f, -2.106786f, -0.3097519f, -0.9272704f, 0.15662985f, -0.4407806f, -1.7539107f, -1.6316533f, 1.0863771},
+        {-0.6040021f, -0.37506396f, -4.3298674f, -2.4893231f, -11.710889f, -0.5095527f, -0.7176066f, 0.09185948f, 2.234503f, -3.1359224f, 4.8426538f, -0.79503596f, -1.2749926f, -1.8132485f, 0.4589721f, -1.9116075},
+        {-1.2429206f, 11.564185f, 0.15958047f, 9.435047f, -4.363836f, 16.44209f, 10.600197f, 7.5145874f, -4.3775687f, 13.13862f, 15.217751f, -8.903153f, 2.6129663f, -2.6414235f, -1.8428161f, 5.8257456}
     };
 
 
-    const float fc4Bias[16] =
-    {-0.5141325593f, -0.8478075862f, -1.0021078587f, -1.7178856134f, -0.9628381133f, 0.1455254108f, -3.6562759876f, 1.7083742619f, -8.0320730209f, -0.9758637547f, -3.8376631737f, -0.1638645679f, 3.8785557747f, -1.0468775034f, -29.1870574951f, -6.1543283463f};
+    const float fc5Bias[8] =
+    {-24.407114f, 5.874887f, -24.54849f, -3.189599f, 6.0860515f, -14.987922f, 3.6327412f, 7.249363};
 
 
     const float fc5Weights[16][8] =
     {
-        {-0.0377756208f, -0.0376064293f, -0.0772271156f, 0.5590630174f, -0.3684624434f, 1.0009193420f, 1.3445713520f, 0.5627732277f},
-        {-0.4041293859f, 0.1303688884f, -0.3772308826f, -0.8144312501f, -0.3996099234f, -0.8786695004f, -0.1038818136f, -0.6491676569f},
-        {-0.1548538208f, -0.4342842698f, -0.3643324077f, 0.7171005011f, -0.2240766436f, -0.3029537201f, 0.0784914643f, 0.2668318450f},
-        {0.0582836233f, 0.1667208225f, 0.1605709791f, -0.8526514769f, -0.0394123383f, 0.3542331457f, -0.0112714395f, -0.8478502035f},
-        {0.1886940002f, 1.4096331596f, -0.0266252328f, 0.1160744503f, 1.3083670139f, -0.4767547250f, -0.7634902000f, -1.2924789190f},
-        {-0.3800563812f, -0.2717871964f, -0.2375701517f, -0.8516035080f, -0.3561956882f, -0.5633419156f, 0.1343641281f, -0.8182802796f},
-        {-0.4533548355f, 0.4980821609f, -0.0113001689f, -0.6163378358f, -0.0099237291f, -0.0464528799f, 1.4334065914f, -0.1762148142f},
-        {-0.4913391173f, 0.1923918128f, -0.5117462277f, -0.5446628928f, -0.7394183278f, 0.1009852663f, -0.2048954815f, -0.3028838933f},
-        {0.0514116511f, -0.1429781914f, -0.2054089010f, -0.3337486684f, -0.9298329949f, -0.0842700675f, -0.9120995402f, -1.0035445690f},
-        {0.1642776728f, -0.1338489354f, -0.3949478865f, 0.2676415145f, 0.2334752530f, 0.1165231466f, 0.3371087313f, -0.0303090699f},
-        {-0.0316087417f, -0.3532579839f, -0.5091804862f, 0.0389130265f, -0.1303991377f, -1.4411540031f, -0.0542913377f, -0.6798272133f},
-        {-0.0166958608f, -0.3853805959f, -0.0088427681f, -0.1329081804f, -0.1517693698f, -0.7518531680f, -0.0679639205f, 0.1632424593f},
-        {-0.2969943583f, 0.2169936597f, -0.2704928219f, -0.5222067237f, -0.2086613327f, -0.5919396281f, -0.1555189341f, -0.5921875238f},
-        {0.3620398343f, -0.0771873146f, -0.4576121271f, 0.4077250361f, 0.1402812898f, -0.3508163095f, -0.0904585123f, 0.1637402475f},
-        {-0.3381429911f, -0.9172439575f, -0.2056993395f, -0.0469768532f, -0.0229178257f, 0.0243457071f, -0.1943701357f, -0.0122073563f},
-        {-0.2032035887f, -0.0370536968f, -0.2462941855f, 0.3719790280f, 0.1286954135f, 0.1040267125f, 0.2068356276f, 0.0400213264f}
+        {-9.307117f, -0.15813076f, -3.9937193f, -0.054085433f, 0.15290532f, -0.018552512f, -0.69383943f, -0.07337002},
+        {-0.97859055f, 0.028280078f, 1.0846199f, 0.16780452f, -0.20534511f, -0.816353f, 0.37425166f, 0.29136515},
+        {-3.914646f, -0.03936347f, -12.99414f, -2.412231f, 0.15684775f, 0.3149098f, -4.120737f, -0.117957},
+        {-2.7609231f, -0.21902153f, -5.537154f, 0.0074397177f, -0.064639494f, -0.2681032f, -0.2914747f, -0.10874464},
+        {-0.09186151f, 0.12207271f, 1.9051577f, -0.17271876f, -0.22513168f, -0.038834304f, -0.8967395f, 0.20288783},
+        {-0.3653042f, 0.06780988f, -2.825828f, -0.13369988f, -0.64171535f, -0.44208798f, -0.24912047f, -0.13826188},
+        {-4.2581906f, -0.21333228f, -1.0574671f, 0.07694438f, 0.05547773f, 0.024847157f, -0.18474951f, 0.02893195},
+        {-1.1465675f, 0.018124353f, -9.05997f, -0.0061233244f, 0.08411851f, -0.9119083f, 0.0014376526f, -0.2041712},
+        {0.34962693f, -0.1395288f, -0.5092686f, 0.7089871f, -1.3475783f, -0.36324114f, -0.15973818f, 0.11048314},
+        {0.23909935f, 0.059388112f, 0.20830949f, -1.8413094f, -1.0590628f, 0.09310133f, 0.03753289f, 0.013212222},
+        {0.120861754f, -0.05690211f, -2.738665f, -0.69460964f, -2.6172419f, 0.12018725f, -3.5244389f, -0.003944067},
+        {-1.4585793f, -0.119857244f, 0.86795115f, -0.09652176f, 0.16562779f, 0.34312963f, 0.043481424f, 0.13893305},
+        {-0.09302213f, -0.13965684f, -9.5771265f, -0.0071952003f, -0.42514244f, -0.037027627f, 0.45372102f, 0.20317307},
+        {-0.3617513f, 0.117458664f, -3.2850826f, -1.8686582f, -0.09870791f, 0.050866276f, -0.99002f, -0.13132761},
+        {-8.576644f, -0.056777757f, 5.386655f, -1.2093059f, -0.1869416f, -0.093246445f, -0.89308083f, 0.10057256},
+        {-4.5858135f, -0.12447534f, 0.26698247f, 0.24063732f, 0.25769427f, 0.2400876f, -0.18331185f, 0.13803637}
     };
 
 
-    const float fc5Bias[8] =
-    {-0.4388153255f, -2.2450299263f, -0.3559921980f, -0.9536105990f, -1.0454660654f, -0.8810431957f, 1.6276029348f, -0.6507120728f};
+    const float fc6Bias[1] =
+    {-0.35592738};
 
 
     const float fc6Weights[8][1] =
     {
-        {-0.5150820613f},
-        {0.1128230840f},
-        {0.0093749743f},
-        {-0.4838168621f},
-        {0.2524490356f},
-        {-0.4693250954f},
-        {-0.1718080938f},
-        {-0.4312117100f}
+        {-0.0038554799},
+        {0.037531666},
+        {-0.00407549},
+        {-0.030138811},
+        {-0.037572403},
+        {0.015717514},
+        {0.032862693},
+        {-0.017663201}
     };
+}
 
 
-    const float fc6Bias[1] =
-    {0.0394757539f};
+//OLD WEIGHTS
 
-}
+//namespace torqueEstimation
+//{
+//    [[maybe_unused]] static float vel_factor = 459.0;
+//    [[maybe_unused]] static float pwm_factor = 1700.0;
+
+//    const float fc1Weights[5][32] =
+//    {
+//        {-0.2055357695f, 0.1997956634f, 0.0573679060f, 5.6070003510f, -0.0359823219f, -0.6203082204f, -3.5134258270f, -0.0713983923f, 0.0685816705f, -0.0381882004f, -1.7217775583f, -3.8536903858f, -0.3756493032f, -0.1594707817f, -6.3813128471f, -0.3226724863f, 0.2063246369f, -0.6387553811f, 0.0372939110f, 3.8864912987f, 1.4991726875f, 4.3318767548f, -1.9102532864f, -0.0856776312f, -0.5104419589f, 0.3844818473f, -0.5385549664f, 0.0184886176f, -0.2233840525f, 0.3443737030f, -0.1556139588f, 8.5595130920f},
+//        {0.2853892446f, 0.9347148538f, 0.2580135465f, -5.0483689308f, -0.1692553312f, 0.6664142609f, -0.8050979972f, -0.1831562817f, 0.2196862400f, 0.0588629805f, 2.8238334656f, 4.0935006142f, 0.3776662350f, 0.1199822798f, 6.6613926888f, -0.1866912246f, 0.0059743905f, -4.2951517105f, -0.1723812819f, -3.6761276722f, 1.8258478642f, -1.4123811722f, 1.8817381859f, -0.3389021456f, 0.4059905112f, -0.3896758854f, 0.7206512094f, 0.2583603859f, -2.8177876472f, -0.2914963961f, 0.4590151906f, -9.9321269989f},
+//        {-0.5632920861f, 0.1988572478f, -0.5542681813f, 5.7822799683f, 0.3820048273f, -0.2525918782f, -3.3970746994f, 0.2208536267f, 0.0045266999f, 0.3900515437f, -1.7668331861f, -3.6709997654f, -0.2005964518f, 0.1454627365f, -6.3249039650f, 0.2582260370f, -0.2433532774f, -0.9390440583f, -0.5737978816f, 4.1182165146f, 1.6590707302f, 4.8758029938f, -1.8478810787f, 0.0048876349f, 0.1774665117f, -0.1789420843f, -0.5673617721f, -0.2723075449f, -0.3745986819f, 0.0240579937f, -0.2824915946f, 8.3010101318f},
+//        {0.4449025393f, 0.6115619540f, 0.0187926833f, -5.4022917747f, 0.0334641673f, 0.4216177166f, -0.8479185700f, -0.4422490299f, -0.2795608342f, -0.3466927111f, 2.2280035019f, 3.5217893124f, 0.1864205599f, -0.1767526865f, 6.5718340874f, 0.3395559490f, -0.0630193949f, -4.2917470932f, 0.4928318858f, -3.4380824566f, 2.2824761868f, -1.3895356655f, 1.8980522156f, 0.3309353590f, 0.0092654871f, 0.2050092816f, 0.4185230136f, -0.0931341946f, -3.0571875572f, -0.0199668277f, 0.0238261241f, -10.0575485229f},
+//        {-0.0596951246f, -1.8140755892f, -0.1749392897f, 0.2104561627f, -0.2132787555f, -0.1574463993f, -6.4865732193f, -0.7267509699f, -0.1174281165f, -0.0856533423f, 0.4403370619f, -0.6915963888f, -0.2986042798f, -0.3891125619f, 1.3234760761f, 0.0340486430f, -0.0694809407f, -7.1216664314f, -0.1790750027f, 1.6705595255f, -5.9638838768f, -0.9045498967f, -0.1985210180f, -0.1773930788f, -0.1488362402f, -0.0660701320f, -0.0532661825f, -0.1185604334f, 0.3091884255f, -0.1427213848f, -0.0880882740f, 1.5660281181f}
+//    };
+
+
+//    const float fc1Bias[32] =
+//    {-0.2996839881f, -2.2546701431f, -0.5477045178f, -1.2242631912f, -0.2746987045f, -0.5186939240f, -6.1057929993f, -0.9974002242f, -0.2025506645f, -0.2643158436f, -0.5174910426f, -0.6349564195f, -0.5265557766f, -0.5465639234f, -0.8746579289f, -0.2214775383f, -0.3936641812f, -9.3305616379f, -0.3976268172f, -0.0949812457f, -4.9294414520f, -0.2506873310f, -1.1473840475f, -0.2789034545f, -0.2843038142f, -0.1568380445f, -0.3574894667f, -0.1897565275f, -0.0161396451f, -0.5330590010f, -0.3432305753f, -2.3037126064f};
+
+
+//    const float fc2Weights[32][32] =
+//    {
+//        {0.7028352022f, -0.2518471181f, -0.3251887262f, -0.1293392181f, -0.0480363145f, -0.2164561749f, -0.1114568934f, 0.0847787485f, 0.2538841367f, 0.0906840563f, 0.2075847685f, 0.0800402164f, -0.2112799883f, -0.3601601422f, -0.2693049312f, -0.3371258378f, 0.1860402822f, 0.1293898672f, 0.5152844191f, -0.0005433710f, -0.3649958968f, -0.5045146346f, 0.7517039180f, 0.0467921384f, -0.0150561901f, -0.2420729399f, -0.2145421207f, -0.7155304551f, 0.1590870321f, -1.1922683716f, 0.1453628838f, -0.3018942773f},
+//        {0.4329630733f, 0.2430671006f, -0.8269199729f, -0.1718535721f, 0.6189324260f, -1.1788749695f, 2.3799111843f, -1.0581681728f, -1.0104187727f, -0.6895720959f, 0.6333325505f, 0.1227911711f, -1.3420652151f, 0.0161968544f, -0.9277707934f, -1.6182627678f, 3.4310810566f, -0.0272786003f, 0.9764053226f, 1.7808814049f, -1.4981951714f, -0.2589629292f, 0.0806718767f, -0.0988150090f, 0.0121101709f, -3.1666336060f, -0.9463910460f, -1.3826171160f, -0.1921611279f, -0.4246963561f, 0.0819954872f, -1.1248966455f},
+//        {0.3439708948f, 0.1729307026f, -0.4266345203f, -0.1223015115f, -0.2364580184f, 0.0005747200f, 0.1383670121f, -0.0798279345f, -0.0409396328f, 0.2926900089f, 0.4414319098f, -0.0774125233f, -0.0639059693f, 0.0000417514f, -0.3764672279f, -0.2038611472f, 0.1025535613f, -0.2993794680f, 0.0265453998f, -0.0355118513f, 0.2918146253f, -0.4358098209f, 0.0194903836f, -0.0299784839f, -0.2588784993f, -0.2383993119f, -0.2728497982f, -0.3301697373f, 0.1411939114f, 0.1025134176f, -0.3637280166f, 0.1707316041f},
+//        {-0.3416239917f, -0.1238532588f, 0.0436132401f, -0.3475806415f, -2.6594336033f, -0.9691415429f, -2.7146120071f, -0.4172722399f, -5.5016303062f, -3.0360279083f, -0.4493477941f, -0.3950566947f, -1.1143312454f, 0.0175548382f, 0.5904526711f, -2.4258356094f, -6.8880228996f, -0.3979260027f, -0.5621471405f, -8.3594980240f, -0.5225185752f, -0.0404085517f, 2.6085379124f, 0.0378435813f, -0.0098032495f, 2.7800383568f, 2.0576617718f, -1.8591514826f, -0.7343788147f, -0.4695331156f, 0.1112806350f, 1.4430732727f},
+//        {-0.0525006801f, 0.3783730865f, 0.1891198754f, 0.0213207081f, -0.2073568851f, 0.1397801638f, 0.0859736055f, 0.2507794499f, 0.1215454638f, -0.1463970691f, 0.1565153897f, 0.0612230189f, 0.2093681097f, 0.1229698434f, -0.0846480504f, -0.2200313061f, 0.2009770274f, 0.0123162027f, -0.0025048242f, 0.0691637024f, -0.0181692336f, 0.2928285897f, -0.0372800417f, -0.3242078722f, 0.2153842747f, 0.0912938938f, 0.0259480923f, 0.2408835292f, -0.0780527815f, -0.0694554597f, -0.5314068198f, -0.3713911176f},
+//        {-0.3659447432f, -1.0637227297f, -0.6574027538f, 0.1915589571f, -0.0923616737f, -0.6854819655f, -0.7665759921f, -0.3916678429f, 0.0046403264f, 0.1432497799f, -0.9219073057f, 0.3549784422f, -0.1066768840f, 0.0990313441f, -0.9819003344f, -0.6210372448f, 0.1118606776f, 0.2755944431f, -0.8569695354f, -0.1976287961f, -0.2853681743f, -0.6686331034f, 0.2660720646f, -0.1277324557f, 0.0465747900f, 0.4344924688f, -0.2714323103f, 0.2368822843f, -0.0763014555f, -0.2818318605f, -0.3344349861f, 0.1119496822f},
+//        {-8.4284162521f, -0.5330117941f, 0.2430908680f, -0.9680790901f, 17.7502479553f, -11.1728906631f, -9.4553775787f, 6.4060249329f, -19.9450950623f, -9.8665761948f, -0.4943230152f, -0.0203626100f, 3.4065568447f, 0.1984576881f, 0.1283037961f, -1.1749160290f, -14.7431478500f, -0.9983112216f, -2.9252219200f, -6.1029782295f, -3.7169921398f, 0.0391248949f, -5.0480856895f, 0.1063139364f, -0.0771418661f, 9.4767627716f, -4.7266154289f, 2.5198585987f, -0.2968094051f, 0.0457970649f, -0.0931691378f, 5.0110268593f},
+//        {-0.3695061207f, 0.1182122529f, -0.1756125242f, -1.9989162683f, -0.1902875155f, -0.5620827079f, -1.4479638338f, -0.0801911950f, 0.1420777738f, -1.3847892284f, -0.7704963088f, 0.0931626707f, -0.1455746740f, -0.2081220299f, -0.1101334319f, -0.1995007843f, 0.1743076593f, -0.2777135074f, -0.5316527486f, -0.7597036958f, 0.1699331254f, -0.0814936012f, -0.1331967264f, -0.1476776600f, -0.1340599060f, -0.1023281068f, -0.0449587218f, 0.5310350657f, -0.4073688686f, -0.1218718365f, -0.3036770225f, 0.5314686298f},
+//        {-0.6574068069f, -0.4164880514f, -0.0907117650f, 0.0752569512f, -0.1371883452f, -0.0603592172f, -0.4597431421f, 0.1653049141f, -0.2182130367f, -0.1304199547f, 0.1074393615f, -0.0336866528f, -0.2670994699f, -0.0481679738f, -0.0528879240f, -0.0296069179f, 0.2772396803f, -0.0399867371f, 0.0935128778f, -0.2692438662f, 0.1292352676f, -0.4318626225f, 0.0235706642f, -0.0248435289f, -0.0899237916f, 0.2455069125f, -0.3291662335f, -1.0510460138f, 0.0582070835f, -0.0467071161f, 0.2144248039f, 0.2426371127f},
+//        {-0.3157160878f, -0.4219513237f, 0.0111433808f, 0.0273274425f, 0.2885468304f, 0.4742646515f, 0.4801633060f, -0.0572001375f, -0.3388701677f, -0.6163141727f, -0.3216553330f, -0.1361154020f, -0.2719146311f, -0.0309467372f, 0.0720715001f, -0.5097295642f, 0.1592271924f, -0.1735037714f, 0.2940475941f, -0.3154088259f, 0.1547768563f, -0.3129318058f, -0.4059058130f, -0.1461700797f, -0.2799991965f, -0.2784145772f, 0.2787654102f, -0.7949113846f, -0.3778579533f, -0.0571825393f, 0.3065904379f, 0.5446800590f},
+//        {-11.8102788925f, -0.5548009276f, -0.4933342040f, -0.0146987140f, 14.7732305527f, -3.3242385387f, -4.3986229897f, 0.9681160450f, -11.3604030609f, -8.9482917786f, -0.5679091215f, -1.4008077383f, -12.8347654343f, -0.3398197591f, -2.0602822304f, -10.3154926300f, 3.3564658165f, -0.3715273142f, -1.1404612064f, -0.5240572095f, -5.8742475510f, -0.8057600856f, -1.5432174206f, -0.0802463219f, -0.1602455229f, -0.8414320946f, -4.2538943291f, 4.6012043953f, -0.2584485114f, -0.3790409267f, -0.7869391441f, 0.8633705378f},
+//        {-1.0586528778f, -0.1419243515f, -0.0970374048f, 0.2961471677f, 3.8987035751f, -2.2678067684f, -1.4299131632f, 0.7676140070f, -9.9476909637f, 5.8023109436f, -3.9433639050f, -0.4502748251f, 0.8263508677f, -0.2590869963f, -0.0040865224f, -2.3295035362f, 0.8782870770f, -0.6496896148f, 0.4475262761f, 2.5988130569f, 0.7252852321f, -0.4031449258f, -0.9870574474f, -0.3840217292f, -0.2451169640f, 1.9900392294f, 1.5628668070f, 0.8736712933f, -0.0124829793f, 0.0401136354f, -0.3562023640f, 0.2699736655f},
+//        {-0.0120646609f, 0.3022353053f, -0.1795586795f, -0.0325300470f, 0.1483502388f, -0.3772916794f, -0.0676282048f, 0.2362668216f, -0.0225414429f, 0.4359962046f, -0.0775927231f, -0.0436186716f, -0.4518926442f, 0.1925306767f, -0.0252785441f, -0.2602519393f, 0.0216296762f, 0.0660978556f, 0.0655388087f, 0.1850759685f, 0.1910172254f, 0.1433989257f, 0.0925811827f, -0.1367113143f, -0.3113737106f, 0.0142191835f, -0.4499391317f, -0.6342935562f, 0.0016022279f, -0.0294085406f, -0.4484280348f, -0.1730211675f},
+//        {-1.0707663298f, 1.4295915365f, -1.2444705963f, -0.1815876514f, -0.2770722806f, 0.3313229382f, -0.0980075672f, -0.4719111025f, 0.2169308513f, -0.4073899686f, -0.3677752912f, 0.1686977446f, -0.3691555560f, -0.0566529781f, 0.2436147034f, 0.0352467895f, 0.2247329205f, 0.1287635118f, 0.2276323736f, -1.1428972483f, 0.0267670061f, -0.3803151846f, 0.1016131118f, -0.3375857770f, -0.3619975746f, -0.0580476969f, -0.2426059097f, -0.2319097221f, 0.1949766576f, -2.0283784866f, -0.1499034166f, 0.3203954101f},
+//        {-9.3854074478f, -0.0246858224f, -0.8499143124f, -0.2564937472f, -9.3853092194f, -0.6312729120f, -5.0737833977f, 1.9478274584f, 2.6517164707f, 2.3842592239f, -5.2550106049f, -0.3242772520f, 0.8110681176f, -0.3066453636f, -1.3071999550f, 2.7409677505f, 4.5771627426f, -0.5061553717f, -1.4946135283f, 3.5521233082f, -2.9335832596f, -0.5765511990f, 0.0422952175f, -0.1721477956f, -0.2773832083f, 0.2279552370f, -5.2490863800f, -0.7335987091f, -0.1851830781f, 0.0654127821f, -2.0507786274f, 0.3237775564f},
+//        {-0.2222796977f, -0.3723528683f, 0.0691528544f, -0.3326320350f, 0.1267025322f, -0.0477940738f, 0.0229985509f, -0.0779023990f, 0.1464604437f, -0.1281969845f, 0.0605426840f, 0.0904146507f, 0.0433506742f, 0.1155809388f, 0.1346668303f, 0.0832128003f, 0.0945276693f, -0.2366465777f, -0.0344646983f, -0.0648121014f, -0.1341129988f, 0.0577474162f, -0.1170159131f, -0.0575251095f, 0.2074271739f, 0.1984294653f, 0.2561211288f, -0.4803146720f, 0.1444168389f, -1.3286510706f, 0.2394987047f, 0.0752803981f},
+//        {0.1440746784f, -0.0171720050f, 0.4093155265f, 0.0168101508f, 0.3510462344f, -0.2379340529f, -0.1087244079f, 0.0702282861f, -0.2610715032f, -0.1717523634f, -0.0145056592f, -0.3848222494f, 0.1109743863f, 0.1177851558f, -0.1664983183f, -0.1298100203f, -0.1001451164f, -0.1466456205f, -0.3134774268f, -0.4611427784f, 0.0405314565f, -0.3590387702f, 0.2124959528f, 0.2551239133f, -0.1097064912f, 0.2295900434f, 0.1829279214f, -0.0514878631f, -0.1421726197f, 0.1224616244f, -0.2044410706f, -0.0536189489f},
+//        {-1.1521507502f, -0.3603971601f, 0.0563264266f, -1.3970239162f, -1.4270666838f, -2.8226051331f, -3.5476942062f, -2.5657920837f, -0.5939258933f, -5.4976310730f, -4.0049266815f, -0.5885877609f, -0.1167592034f, 0.0184592586f, -1.5224845409f, -4.8727149963f, 3.0517530441f, -0.1223363504f, -0.2621241212f, -3.8385307789f, -2.8868563175f, -0.3684002161f, -0.3500567973f, 0.1355150640f, -0.4692768753f, -6.4998006821f, -1.3951023817f, -0.6174461842f, -0.1671719849f, -0.5628139973f, -0.2307008952f, 8.5936250687f},
+//        {-0.3384640515f, 0.2626960576f, -0.2724999785f, -0.3156481981f, 0.1593002975f, -0.0599933714f, -0.5736973286f, -0.0508794934f, 0.0508684218f, 0.1900248677f, -0.2414632142f, -0.0151213873f, -0.0642893165f, -0.0736586526f, 0.3415043652f, 0.2434819192f, 0.1858230978f, -0.0688576773f, 0.0958920494f, 0.0314638801f, -0.2458027154f, -0.5904662013f, 0.0937323049f, 0.1025661081f, -0.1099876687f, 0.1343368292f, -0.2600298226f, 0.3431377113f, -0.2248598337f, -0.0926240832f, -0.0758377016f, -0.0951057747f},
+//        {-10.8200063705f, -0.2333872318f, 0.0629985109f, -0.5098025203f, 5.5954618454f, -0.0266051386f, 1.0398765802f, 2.6189880371f, -0.8284100294f, -1.0288726091f, -19.0959739685f, -0.4239546657f, 2.2480175495f, -0.3452661932f, 0.5333261490f, 3.0123581886f, -0.5058676600f, -0.5662975311f, -1.4740906954f, 2.3249070644f, 1.9839859009f, 0.0691346005f, -8.4895219803f, -0.0517179966f, -0.3145155013f, 0.0487585813f, 0.5590797067f, 1.1825811863f, -1.1296035051f, -0.4631800354f, 0.0042153052f, 4.9763317108f},
+//        {0.8741941452f, 0.2847254574f, -0.0165548436f, 0.0214925446f, 0.0281693470f, -3.5478408337f, 5.1184897423f, -1.0630372763f, -0.3170503676f, -7.8191223145f, -0.7177888751f, 0.0192223061f, -6.6766848564f, 0.0839038268f, -4.0633893013f, -0.6456161737f, 1.9720232487f, 0.5165043473f, 0.1431490332f, 3.3671495914f, -2.0822234154f, -0.2774647176f, 3.5052692890f, 0.0942892134f, -0.1689221412f, -23.8342685699f, -5.3589863777f, -15.0655832291f, 0.1842747778f, 0.0636580139f, -0.8683874011f, -9.0183506012f},
+//        {5.8148365021f, -0.0181446839f, 0.0218663495f, -0.6435270309f, -4.6314897537f, 1.0660556555f, -0.7006200552f, -1.7170858383f, -11.6315021515f, -1.8548130989f, 2.3387854099f, 0.1161770225f, -4.4872589111f, 0.0984403118f, 2.3550364971f, -1.3147095442f, -1.7980459929f, 0.2122275829f, 0.2098008990f, 0.8191279769f, -2.6600685120f, -0.9796918035f, 3.9549865723f, -0.3468909264f, 0.1095151901f, 2.1919665337f, 0.8045359850f, 1.2023586035f, 0.1413695663f, -0.4612948000f, -0.0958333239f, 0.5004554391f},
+//        {-10.4134435654f, -1.6761026382f, -2.1109883785f, -0.8899091482f, 0.9217932224f, -0.1489774138f, -1.2502399683f, -0.2223093659f, 0.2842899561f, 0.2826307416f, -11.5551824570f, 0.2193767130f, 0.2752348483f, 0.0379434153f, -3.4593420029f, 0.2076737136f, 0.1856303215f, 0.2192035168f, -0.7756754160f, 0.0748336688f, 0.4596520662f, -0.6056127548f, -0.0012871140f, -0.3025635183f, -0.5217733383f, -0.4117718935f, -0.3294989765f, 0.2200052887f, 0.2029565573f, 0.2765416205f, -0.4646576941f, -0.0226360932f},
+//        {-0.3001706302f, -1.0916574001f, -0.1813789010f, -0.1071366295f, -0.5642485023f, -0.4381268024f, -0.2561828494f, 0.2427830398f, -0.0773036852f, 0.1807658523f, -0.6189127564f, -0.5280420780f, -0.2278218716f, 0.2025674731f, -0.1903136224f, 0.2945006490f, -0.0809962600f, 0.1900134534f, -0.5843535066f, -0.1001444906f, 0.1827683747f, 0.2382754385f, 0.3387266994f, -0.3220880032f, 0.1786493659f, 0.0670973137f, -0.1765727550f, -0.0752916187f, -0.1503725797f, -0.1599606723f, -0.5018463135f, 0.0873332471f},
+//        {-0.1636323780f, 0.1241440102f, 0.0475576073f, 0.1504822969f, -0.1423517764f, -0.1402205229f, -0.1181961671f, 0.3235143721f, 0.0912692472f, 0.3641940355f, -0.2788277864f, -1.0504397154f, 0.1891589761f, 0.1606433988f, 0.5445721745f, -0.1664946973f, 0.2456973046f, -0.3874065876f, -0.3910988867f, 0.1926820129f, -0.0088137649f, -0.4388289452f, -0.1335452497f, -0.0635569021f, -0.2904116213f, -0.0950278938f, -1.6520583630f, 0.0426815301f, -0.2116074115f, -0.2022051066f, -0.7181299925f, 0.1868721247f},
+//        {0.0034010340f, 0.2792718112f, -0.4612697959f, 0.0420143865f, -0.2565088868f, 0.1659194678f, 0.2364908457f, 0.3249883950f, 0.1776097417f, -0.1085670367f, -0.1002039164f, -0.0526343510f, 0.1710232794f, -0.1661372930f, 0.1210514680f, 0.0878346786f, -0.3646489382f, -0.0152188586f, -0.1779934615f, 0.0524123646f, 0.2448512614f, -0.1211499125f, -0.1922912896f, -0.3014973998f, -0.2541061938f, -0.0387258530f, 0.1648880988f, -0.0043392545f, 0.2601354420f, 0.0364522561f, 0.1693428457f, 0.0329939090f},
+//        {-0.2273397893f, -0.3498373628f, -0.0433691703f, -0.6629248857f, 0.1507195234f, -0.1990272850f, -0.1220994815f, 0.1678037792f, -4.3043742180f, -0.0007548440f, -0.3417711258f, -0.1170029715f, -1.3333457708f, -0.0142377056f, 0.5767194033f, 0.4187206626f, -0.0696189702f, 0.1859471947f, -0.3047918975f, 0.4045199156f, 0.2059099227f, -0.7050588131f, 0.1555795074f, -0.0812577009f, -0.3910994828f, -0.0145086460f, -0.0485258102f, -0.0066310908f, -0.1054076031f, -0.5957096219f, -0.2342762351f, 0.0350304283f},
+//        {0.0149504738f, -0.0129147042f, -0.5884258151f, 0.0588622056f, 0.0843603089f, -0.0650319681f, -0.1795133650f, -2.2022593021f, 0.1941308379f, -0.2966808379f, -0.2518850267f, -0.2675821781f, -0.5772732496f, 0.1356097460f, 0.1572682261f, -0.4143220186f, -1.1145333052f, -0.1922410876f, -0.1281387955f, 0.0762870386f, -0.2557103634f, 0.0021827971f, 0.1089263260f, 0.2346664369f, 0.2724923491f, 0.0007219575f, 0.2104968876f, -0.0320289358f, -0.1094986573f, -0.0914234072f, -0.2628631294f, 0.1553151160f},
+//        {0.7854294777f, -1.2805747986f, -0.4509948492f, -0.5390222073f, -7.2329969406f, -4.1658449173f, 0.9921216369f, -19.2893733978f, -0.0606014021f, -1.3520914316f, -2.8341577053f, -0.5397177935f, -0.4183989465f, -0.3706202805f, -4.5540037155f, 0.8042452931f, 2.8141219616f, -0.0732958987f, -0.5256106257f, -0.1778799146f, -1.4509961605f, 0.0517916530f, 0.2504193485f, -0.3624364734f, 0.0715965852f, -2.5190768242f, -20.3786926270f, -0.2376282662f, 0.0138650360f, -0.1234268844f, -0.4907496870f, -1.5723351240f},
+//        {0.1309531778f, -0.4162278175f, 0.0861416981f, -0.0754620507f, 0.3168306947f, -0.3067710400f, -0.0102485251f, -0.1974389702f, 0.1207621619f, -0.0179167688f, -0.1688643098f, 0.0122922705f, 0.1167635992f, 0.0521559902f, -0.3053426147f, -0.3361171484f, -0.3374931216f, -0.2523073256f, -0.0067732469f, 0.0612988696f, 0.1934308410f, 0.0817848817f, -0.1016546264f, -0.1203937978f, 0.1065604016f, -0.1992163658f, 0.3401925266f, -0.0275416337f, -0.2688343525f, -0.0388706326f, 0.1756630838f, 0.4808184803f},
+//        {0.4282532632f, -0.0259445906f, 0.3069318831f, -0.3668542504f, 0.3145154119f, -0.3847868145f, 0.2201283127f, -0.0448469892f, 0.1542371064f, 0.2123837769f, -0.1569138467f, 0.0211382862f, -0.2548147142f, -0.2737289667f, -0.3175657392f, -0.5842364430f, -0.0748774335f, -0.1540294737f, -0.1290857196f, 0.1770722121f, 0.1833150536f, 0.0081414832f, 0.2064791620f, -0.1276530772f, 0.1270321757f, 0.1417734623f, -0.2329282910f, -0.3905624747f, 0.2545000315f, -0.3035842478f, 0.0064902604f, -0.3016678095f},
+//        {-7.5552926064f, -0.9295108318f, -0.2481519580f, 0.7649185658f, 1.9046311378f, -0.1586459428f, 2.0594851971f, -1.3088877201f, -1.2542868853f, -4.6562218666f, 6.3942017555f, -0.6503939629f, -0.7048695683f, 0.2057881355f, 6.5724821091f, 1.7823606730f, -2.8745467663f, -0.3315669894f, 0.9826352596f, -2.7425603867f, -1.9275763035f, -0.2427215725f, -0.5757774115f, 0.2017655820f, -0.1918183118f, -16.7525539398f, -0.7728430629f, 1.0563217402f, -0.4434075356f, -0.7302488089f, -0.2927037179f, 2.4355039597f}
+//    };
+
+
+//    const float fc2Bias[32] =
+//    {-1.4964368343f, -0.4743577838f, -0.4512416422f, -0.4922141731f, -5.1149101257f, 8.8500652313f, -15.7193136215f, -0.0800511166f, 2.7641799450f, 3.4012768269f, 0.0683615580f, -0.1829399616f, 5.3457593918f, -0.4106808603f, -16.5018920898f, -11.1810235977f, -8.3992519379f, -0.4962880909f, -0.9232602119f, -11.2513113022f, 2.3576202393f, -0.4867421985f, -3.7326567173f, -0.2190053761f, -0.3950267136f, -1.8300843239f, 7.8722882271f, -1.0580558777f, -0.4571195245f, -0.4307751656f, -0.3282840848f, -4.9084253311f};
+
+
+//    const float fc3Weights[32][32] =
+//    {
+//        {2.1267073154f, -0.3118368387f, -1.0274667740f, -0.3681430817f, -0.2503374219f, -1.2477926016f, -1.3221302032f, 1.8165496588f, -0.1359463781f, -1.7964631319f, -0.0097085517f, -0.3852086663f, -3.3534936905f, -0.8397763371f, -0.4446444511f, -1.6745910645f, 3.2378242016f, -1.0022313595f, -9.9781904221f, 0.1582326442f, 0.5432472825f, 0.0471910089f, 5.9129772186f, -0.2324501723f, -4.1757726669f, -2.3055243492f, 0.0340588912f, -9.1570177078f, 3.9973771572f, -5.0203042030f, -0.4807384312f, -0.2449323237f},
+//        {0.2926399410f, -0.3126508892f, -0.2911956012f, -0.6654194593f, -1.9371089935f, -0.5545672178f, 0.4246672988f, 0.3819307983f, 0.2514972389f, -0.4406578541f, -0.9821344614f, -0.3851819932f, 1.1248499155f, 0.0522659570f, 0.0575070083f, 0.4138618112f, -0.8817019463f, -0.6708815694f, 0.4475752711f, -0.0536939353f, 0.2634044886f, -0.7456439734f, 0.3254241347f, 0.7578423023f, -0.0451397039f, -0.3245976269f, 0.3969579041f, -0.3185728490f, 0.5564263463f, -0.6522557735f, -0.1052212864f, -0.4474395216f},
+//        {0.1283721924f, -0.0823663324f, -0.0326546133f, -0.4661917388f, 0.2401303649f, -0.2880379856f, -0.1517074406f, 0.2752179205f, -0.1285577416f, -0.9086889029f, 0.0597265214f, 0.0445332415f, 0.0693372712f, 0.3575956523f, -0.2324096560f, 0.6556770205f, -0.2550288737f, 0.0115993991f, -0.1578786522f, -0.2495867163f, 0.5065354705f, 0.1579007357f, -0.3488564789f, -0.3209209442f, -0.1637986600f, 0.0921269283f, -0.0206926819f, -0.4815258384f, 0.1049012691f, 0.0869352594f, 0.0118843094f, 0.0378016829f},
+//        {-0.1867472231f, -0.0983402878f, -0.2410253137f, 0.1428901106f, 0.5535175800f, 0.4710266590f, 0.7919189930f, -0.1014919057f, -0.0083244918f, 0.1866499782f, -0.2188591063f, -0.2367116362f, -0.3858147562f, 0.2450350076f, 0.1948615909f, 0.2732373476f, -0.7079418898f, -0.4475770295f, -0.0726167932f, 0.0758384317f, -0.0683538988f, -0.3337415755f, 0.6586756110f, -0.3540558219f, 0.1567319185f, 0.2762941718f, -0.1348233819f, -0.2360792607f, -0.0053496510f, 0.3404291868f, 0.0747083575f, -0.4553619027f},
+//        {-0.7439086437f, -0.5030723810f, -0.0015834231f, -0.2131769657f, -0.1265947670f, 0.6866528392f, -6.0031766891f, -1.1717530489f, -0.8875666857f, -0.7657486796f, -0.4995601177f, -1.3289493322f, 0.5762737989f, -0.1594046950f, -1.7588888407f, 0.0773057416f, -1.0809998512f, 3.3575456142f, -2.1498513222f, -0.1858167648f, 1.1153688431f, -0.2805164158f, -2.4953896999f, -3.0942769051f, -4.6361846924f, -7.2082462311f, -0.2423758358f, 9.1199541092f, -1.9552760124f, 1.5397961140f, -4.8174195290f, -0.1466594040f},
+//        {-12.2784042358f, 0.2199732214f, -0.1896684021f, -0.3432999253f, -0.2287421525f, 3.4079124928f, -1.9381728172f, -0.6183780432f, -2.6809947491f, -13.9357881546f, -0.3349778652f, -1.1822427511f, -0.4702038467f, -0.4513809979f, -4.1594862938f, -1.3155949116f, -2.8984313011f, 0.8626719713f, 0.9431877732f, 0.1867329180f, 1.8311676979f, 0.0268813707f, -0.2230326235f, 1.5717616081f, 4.5641150475f, -5.9756793976f, -0.3749696314f, 6.8801670074f, -0.5390860438f, 2.2278966904f, 1.6726257801f, -0.4617499709f},
+//        {-1.1322755814f, -1.6074182987f, 0.3383499086f, -0.0879338682f, -0.3024970293f, -0.9650658965f, -0.7258930802f, -2.2438650131f, -8.0822734833f, -1.1866042614f, -0.1294266731f, -0.3437821269f, -5.2474503517f, -3.8555898666f, -0.9632506967f, -1.5082763433f, -2.1201927662f, 1.0083860159f, 0.9984830022f, 0.0244099908f, 1.3445159197f, 0.0025331527f, 0.3188533485f, -1.2511210442f, 4.4629726410f, -0.6043246984f, -0.2112076432f, 0.2277358621f, -0.4532658756f, -2.5137176514f, -0.6861492395f, -0.2597316206f},
+//        {-11.9988451004f, -0.1067576185f, -0.2066107839f, 0.0828568414f, -0.3275893927f, 2.5277581215f, 3.2627487183f, -5.6365389824f, 5.3499884605f, -3.2246093750f, -0.2226941139f, 0.1935922205f, -4.1013288498f, 0.0029573692f, -1.5204852819f, -4.4882822037f, 4.6080155373f, 4.0036969185f, 0.9089803696f, -0.2275806665f, -2.7591450214f, -0.1230073869f, 2.7025136948f, 5.8001189232f, -2.8862383366f, 1.4778681993f, -0.5003541112f, -8.5913944244f, 0.0913238823f, -3.5371487141f, 0.1153692529f, 0.0406519361f},
+//        {-2.5129640102f, 0.3217219710f, -0.0095533794f, 0.1789117903f, -0.0394163057f, -12.0436925888f, 7.2080974579f, -0.6646071076f, 7.5206618309f, 3.8631877899f, -0.1600254625f, -0.8080578446f, -0.5643880963f, -0.0537163280f, -0.5046658516f, 0.4704113901f, -1.0934047699f, 1.3934750557f, 1.6021199226f, 0.2552498877f, -2.1392021179f, -0.1866302639f, -1.9532939196f, 4.3028411865f, -2.0663371086f, -1.1156477928f, 0.0436181799f, -4.5952415466f, -4.1031899452f, -4.2674293518f, -1.3652423620f, -0.3086400926f},
+//        {-2.4256632328f, -0.8204917312f, -0.0080023678f, 0.0641652644f, 0.1045749411f, -6.7571711540f, -5.8372755051f, -2.5383017063f, 1.3260424137f, 0.7004460692f, -0.2244220227f, 0.5836414695f, -0.1815587580f, -0.3951809406f, -0.1336556673f, -4.6909227371f, -6.2935724258f, 3.7900424004f, 2.5683553219f, -0.1162255332f, 4.1622815132f, 0.1073398590f, -5.1608195305f, -8.2401542664f, -5.8381042480f, -7.4464135170f, -0.1182934269f, 3.2788193226f, 1.4351627827f, 6.3681168556f, 5.1041111946f, -0.1208729222f},
+//        {4.9961571693f, 0.0185269248f, -0.2817080617f, -0.0505358987f, -0.2017169148f, 0.5220227242f, -9.6225223541f, 3.5301513672f, -1.2750257254f, -16.6149158478f, -0.2861652076f, -0.1112170741f, -2.9041886330f, -0.7071534991f, -1.5988026857f, -8.9261875153f, -14.3294153214f, 0.6273730397f, 1.6051287651f, -0.1642416716f, -3.4014506340f, 0.0300757475f, 6.7346963882f, -1.6067913771f, 1.6891504526f, -3.9646015167f, -0.0779341832f, 4.6224765778f, -0.5721715689f, -5.5780882835f, -0.1785165519f, 0.0633503497f},
+//        {0.1060310677f, -0.5470390320f, -0.2241495699f, -0.4295381904f, -0.0263416618f, 0.2030417621f, -0.1120280996f, -0.0827973634f, -0.3317763507f, 0.0817295536f, 0.0069632535f, -0.1319767535f, 0.9747350216f, 0.2557510436f, 0.1425391138f, 0.1720905155f, -0.0782878473f, -0.0193020143f, 0.1281307042f, -0.2256549150f, 0.1310895681f, -0.5182238221f, 0.3424457908f, -0.1979330033f, 0.1891248226f, -0.0348026715f, 0.0921394229f, -0.0947700441f, -0.0883120522f, 0.0940800980f, 0.1856457591f, -1.7943713665f},
+//        {-4.0017580986f, -0.9870634079f, -0.3691159189f, -0.4045964777f, -0.9596207142f, -4.4315557480f, -2.6966378689f, -2.4839437008f, 2.0009076595f, -2.3518767357f, 0.0318453647f, -0.5925750136f, -8.7461175919f, 1.2080634832f, -0.9580079317f, -1.3870022297f, -2.9447979927f, -4.2511048317f, -0.7817761898f, -0.3507715464f, 0.2093277872f, -0.2879707217f, 0.9649841189f, -10.7083244324f, -7.3718595505f, 1.7227441072f, -0.2694068253f, -2.7931368351f, 1.4890755415f, 0.6705868244f, 1.4951418638f, -0.1209532097f},
+//        {-0.2123307288f, -0.3103626966f, -0.2075639665f, -0.0577281974f, -0.0194090679f, 0.2053133696f, -0.0279764533f, -0.1785610318f, -0.0686176419f, 0.2033739239f, -0.1825354397f, -0.0740804151f, 0.2677070498f, 0.2260797173f, -0.3779144287f, 0.0846814588f, 0.2516773045f, 0.1258523315f, 0.0956230313f, -0.1808306128f, 0.3722532988f, -0.1553636193f, -0.0801539496f, 0.2497462928f, -0.1287349761f, -0.1542355567f, -0.2239110470f, -0.0359012038f, 0.0341420211f, 0.1991766691f, -0.1235702857f, -0.0031303430f},
+//        {6.9049019814f, -0.6181007624f, -0.1168652996f, -0.3459298015f, 0.1081510484f, -0.6562979817f, 2.9601066113f, 4.0602450371f, -0.7127177119f, -0.0100999130f, 0.5118251443f, 0.2948195040f, -14.6811800003f, -0.1756128967f, -2.3726568222f, -2.2973806858f, 0.2021040469f, 3.7788739204f, 0.0394109413f, -0.5389692783f, -2.5069026947f, -0.1306917369f, 1.1527950764f, -4.1568374634f, -5.4282240868f, 1.0624045134f, 0.2346842736f, -7.4216456413f, -10.1741409302f, -5.2678761482f, -1.5980980396f, -0.4154963493f},
+//        {-5.9673295021f, -0.4644198418f, -0.4291569293f, -0.2272513807f, -0.4974555075f, 2.6671023369f, -6.5609960556f, 0.3609015644f, 10.3618955612f, -2.0600147247f, -0.5190568566f, -0.2184191942f, -1.4022922516f, -1.4489669800f, -4.0840444565f, -4.2195286751f, -0.4894198477f, -2.7413768768f, -6.3571834564f, -0.1267714947f, -0.8546049595f, -0.2224794775f, -0.3131478429f, -0.9897703528f, -6.1158819199f, 0.3078280985f, -0.4307037592f, -14.2193670273f, -0.3561481237f, -9.1594533920f, -0.7577811480f, -0.3548552096f},
+//        {-6.2391667366f, -0.1269952357f, -0.2936189175f, -0.9923886061f, 0.0176051259f, -1.9780510664f, 0.0654375777f, -1.7040052414f, -0.1822838187f, -1.7437926531f, -1.0801513195f, -0.7526912093f, -5.0536708832f, -0.7413324714f, -2.9236466885f, -6.1675448418f, -0.9600590467f, -2.5335817337f, -1.1323231459f, -0.8290102482f, 0.5944318175f, -0.0634517670f, 0.9594070911f, 1.3713343143f, -3.9021794796f, -0.7598190904f, -0.7681146860f, -1.0350772142f, 0.8626580238f, -1.0701311827f, 0.6357883215f, -0.1052244753f},
+//        {0.0669496581f, 0.1127517670f, -0.0209338553f, -0.0054164180f, -0.1271978915f, 0.0695113614f, -0.3660996258f, -0.7821827531f, -0.2065943033f, 0.2308539152f, 0.4742313325f, 0.1034071371f, -0.0490562394f, 0.4140049219f, -0.0322051346f, -0.0112497425f, 0.0862999111f, -0.1826869249f, -0.0142615261f, -0.0710267127f, 0.0182412416f, 0.0835287198f, -0.0485102497f, -0.1113768369f, -0.3792001903f, -0.0910689160f, 0.0768057555f, -0.4180118442f, -0.0000109978f, -0.0632229522f, 0.0589419529f, 0.1596196741f},
+//        {0.3151653707f, -0.4588074088f, -0.3387854099f, 0.1461272687f, 0.0001908212f, -0.0586236343f, -0.8286342025f, 0.2795176804f, 0.4374869168f, 0.0628984645f, -0.2587254047f, 0.2453358322f, -0.6134222746f, 0.0773593485f, 0.2486565858f, -0.5328485370f, 0.6034097075f, -0.3007964790f, -0.2765316963f, -0.2508219779f, -0.2341709882f, 0.0143393278f, 0.1970690787f, -0.2759173810f, -0.7320910692f, -0.2636430860f, -0.0779949948f, -0.5681775808f, 0.0010494586f, 0.3486377001f, 0.5590596199f, -0.1548434943f},
+//        {0.2904222906f, 0.2120339572f, -1.5837268829f, 0.1351595223f, -1.0482976437f, 0.6585662961f, 1.2837238312f, -8.8914051056f, 0.1900334507f, -6.2876024246f, -1.1750501394f, -0.9563908577f, -6.0589551926f, -0.0554546751f, -2.5099968910f, 0.2854703367f, 0.5719563365f, -0.4985203147f, -0.8484790921f, -0.2796662748f, -2.6506903172f, -0.0737289563f, 0.1099997908f, -6.8096685410f, -9.5710783005f, -3.5462114811f, -0.3454555869f, -4.1742453575f, -6.2087631226f, 1.0913355350f, -5.9188799858f, -0.0447143987f},
+//        {-0.1762033552f, -0.9464151859f, -0.3476518989f, -0.1438073069f, -0.1068934649f, -2.6918101311f, 13.4009866714f, -0.0717068240f, -1.2019355297f, -2.8347525597f, 0.1641165912f, -0.0925235450f, 4.8379797935f, 2.1199939251f, -0.3954177201f, -1.5702075958f, 0.0889840126f, -1.7895882130f, 1.9846193790f, -0.0691496804f, -6.4447302818f, 0.1634601355f, 9.6448106766f, -0.7868277431f, 2.1918652058f, -0.5956330895f, -0.4198028147f, 2.8396642208f, 3.0820310116f, 3.5346202850f, 1.1110432148f, 0.1005667076f},
+//        {0.2411281914f, 0.1411192566f, -0.0250760857f, -0.1230037659f, 0.6549731493f, 0.2007940114f, -1.5664811134f, 0.3535908461f, 0.6514756680f, -0.3146148622f, 0.0244260952f, -0.1043881625f, 0.5631551743f, -0.1026171371f, -0.2293619066f, 0.0751082525f, 0.1610344499f, 0.3488910794f, -0.3952502310f, 0.0538705476f, -0.1643067747f, -0.0639704242f, 0.1503835022f, 0.1106679291f, 0.3851269782f, 0.3049305081f, 0.2240979224f, 0.4056433737f, -0.3284457624f, -0.4254478812f, -0.0813698918f, -1.5299969912f},
+//        {4.3450713158f, -0.4628526270f, -0.1491935551f, -0.2041818649f, -0.5786065459f, -1.2504427433f, -0.2758893967f, -0.3101694584f, 2.9785020351f, -4.7803659439f, -0.3506944776f, -0.9885157347f, -7.2183914185f, -0.1302880943f, -2.8009421825f, -0.6073452830f, -0.8039718270f, -12.0689706802f, -0.7140820026f, -0.3246946931f, 2.0155956745f, -0.3901022673f, 3.3020424843f, -0.5596037507f, 0.5555099249f, 0.2735705674f, -0.2914109826f, -14.4507541656f, -17.0698108673f, -4.3910245895f, -5.2524790764f, -0.2280410379f},
+//        {-0.0042843656f, -0.1069235355f, 0.0691635162f, 0.0867756158f, 0.2937769592f, 0.0736219883f, -0.1853623986f, -0.1654763520f, 0.2185866535f, 0.1437660605f, -0.2649201155f, -0.1712868661f, -0.0538765527f, -0.1329404116f, 0.0423769951f, 0.3043175936f, 0.2732996941f, 0.0199668072f, 0.2512804568f, 0.1751035899f, -0.2383348942f, -0.2895450890f, -0.0679779947f, -0.2974975705f, 0.1156523153f, -0.2165189683f, 0.2342301458f, -0.1439705789f, 0.3337920308f, 0.2263115346f, 0.2996229827f, 0.1000883803f},
+//        {-0.0903539732f, -0.2626895308f, -0.2928705215f, -0.1522098780f, -0.1990660727f, 0.1050468609f, 0.0752090216f, -0.0103869336f, 0.0290090404f, -0.2140946537f, -0.3905937076f, -0.0324644707f, 0.1388606578f, -0.0920412987f, 0.2089990675f, -0.0512218550f, 0.0448999256f, -0.0192409158f, 0.0232043508f, -0.1123628542f, 0.1863525957f, -0.1689641625f, -0.0414763764f, -0.0482044294f, 0.1756522357f, 0.3836692274f, -0.2097899765f, 0.0034760062f, 0.3211987317f, -0.1981586516f, 0.0146787502f, 0.1057996526f},
+//        {-0.5354076028f, -0.3253239095f, -0.1333258152f, -0.0967850685f, 0.0488308556f, 1.7821354866f, -2.4696009159f, -1.0925548077f, 4.8946523666f, -5.5363497734f, -0.0556999668f, -0.3859304488f, -0.4668995738f, 1.1459211111f, 0.0986527577f, -5.5068421364f, -2.1916167736f, 0.9777641892f, 1.2964626551f, -0.1227272600f, -2.6892449856f, 0.2693175077f, 2.4651014805f, -0.2143563330f, -8.1490335464f, -1.1221495867f, -0.2091181278f, -2.5353107452f, 1.5514105558f, -0.8118920326f, -0.0759748369f, 0.0815865844f},
+//        {-1.1687350273f, 0.0523806289f, 0.1928860396f, -0.1731245518f, -0.0422611423f, -3.5962536335f, 2.1258342266f, 0.0682783425f, -0.6722916365f, 0.6611677408f, -0.4290418625f, -0.2772609890f, 0.0911868215f, -0.2093296349f, -2.5827946663f, 4.6710624695f, 2.0906822681f, 0.5159549713f, 0.3715068996f, -0.2340186238f, -0.4284092188f, 0.0376657546f, -5.7211947441f, -1.1870640516f, 2.2118372917f, -8.0735073090f, -0.0517498069f, -4.1637449265f, -17.3150138855f, 3.2159905434f, -5.9302067757f, -0.0362711921f},
+//        {-9.7952108383f, -0.6339132190f, -1.7921937704f, -0.3130472600f, -0.7404204011f, -1.6049377918f, 0.1309763938f, -7.6337146759f, 0.4408401549f, 3.3682234287f, -0.7966508269f, -0.0931789875f, -4.3933353424f, -7.4179029465f, 0.2328766286f, -2.2703931332f, -11.0213117599f, -11.4555244446f, 0.8035743237f, -0.3479077518f, 2.3253028393f, -0.1451899409f, -0.3695332706f, -16.2041606903f, -3.2792532444f, 0.6592780352f, -0.4765171707f, 1.1891194582f, -0.2045537680f, -0.2613292336f, -7.1603960991f, -0.0806212798f},
+//        {-0.2485560924f, -0.5306785703f, -0.2062491179f, -0.1363802254f, -0.0375753008f, -0.2761560082f, -0.2498460114f, -0.0567790791f, -0.4666529298f, -0.0051496779f, 0.0906768441f, 0.3301909864f, 0.0531814285f, 0.2584980726f, 0.0183127709f, 0.1766013205f, 0.1447227001f, -0.1579496711f, 0.0043631280f, 0.1031887531f, 0.0396930017f, -0.0095448559f, 0.1428825110f, -0.0905142054f, 0.0705604851f, -0.7297466397f, 0.1558683962f, -0.0418609716f, 0.1233214065f, 0.1279907525f, 0.1352362633f, -0.0770157427f},
+//        {-0.0049988753f, 0.1279107481f, 0.0449896753f, 0.6752018332f, -0.2889954150f, 0.4311439991f, -0.3787408769f, -0.4591981173f, -0.1940811723f, -0.0184744801f, 0.0441148244f, -0.1790693253f, -0.7149969935f, -0.0285517797f, -0.1489535421f, -0.5780433416f, 0.5109094977f, 0.6176788211f, -0.3211218417f, 0.1074986085f, 0.2505583465f, -2.5777461529f, 0.3480081260f, -0.8229233623f, -0.6535633206f, 0.5414181352f, 0.8112808466f, -0.3283018768f, 0.4965822697f, 0.8790674806f, 1.1569755077f, 0.2319966406f},
+//        {-0.2767451704f, 0.2554717064f, -0.2503568828f, 0.2911026180f, -0.0896157026f, 0.0468162894f, -1.6308424473f, -0.2833184302f, -1.0214830637f, -0.1677722186f, 0.0416059718f, -0.0212873127f, -1.5793803930f, -0.0655662566f, -0.2267671078f, 0.3937034011f, 0.0103700571f, 0.1117373928f, 0.3512356877f, -0.1141320691f, 0.2422832102f, -3.8471693993f, -0.6802755594f, 0.1919109225f, -0.2617484927f, -0.5890094638f, 0.0800860524f, 0.1804080307f, -0.0786418170f, 0.2081480175f, -0.2514747679f, -1.6461024284f},
+//        {-4.4110560417f, 0.0582131147f, -0.2296621650f, 0.0098368116f, -0.3111234009f, -0.7137008309f, 2.6443011761f, -5.5492348671f, -4.7353625298f, -1.0368877649f, -0.4160888791f, -1.2896853685f, 3.9724817276f, -10.6603651047f, 2.2762250900f, -3.0436787605f, -8.0274572372f, -1.4319875240f, -3.7743313313f, -0.0725755915f, -0.0383329280f, -0.3231822848f, 0.4311948717f, -2.6726655960f, -0.5350571871f, -1.4796928167f, -0.1884928495f, -5.7419962883f, -0.9663215280f, 0.1886327565f, -8.7959461212f, -0.1736448258f}
+//    };
+
+
+//    const float fc3Bias[32] =
+//    {-11.7193555832f, -0.6158396602f, -0.5767308474f, -0.4492973387f, -0.4815680087f, -1.5243271589f, -28.5404338837f, 4.9779524803f, -48.1950645447f, 5.1014094353f, -0.8038403392f, -0.7135465741f, 7.9977378845f, -3.9328453541f, -22.0385246277f, 0.3583163023f, 1.1570060253f, -13.7082090378f, 2.4488532543f, -0.4611511827f, -7.0892620087f, -0.3534394205f, -4.1933374405f, -13.2186746597f, -16.0344810486f, 5.2995457649f, -0.7092553973f, -11.6922359467f, 5.9151840210f, -4.7581868172f, -5.7193002701f, -0.4998539686f};
+
+
+//    const float fc4Weights[32][16] =
+//    {
+//        {0.1313932389f, -0.6613871455f, 0.0097358534f, -0.1018039361f, -0.4058391750f, 0.4376264215f, -1.2572003603f, -3.6500022411f, -0.4249550700f, -0.2536546886f, -0.8922878504f, -0.4847670496f, -0.5938788652f, 0.1258193851f, -0.2272187024f, -0.1410650164f},
+//        {0.0492341593f, 0.0943892971f, -0.5367519855f, 0.2006352544f, -0.3140752912f, 0.3790577352f, 0.5460243821f, 1.5730974674f, 0.4506726563f, -0.3239695728f, 0.1827834398f, -0.2436640859f, 0.4437866211f, 0.3330729902f, -0.2623860538f, -0.2274987251f},
+//        {0.3261446357f, -0.5036940575f, -0.0645739883f, 0.1797081381f, -0.0971707106f, 0.7298631668f, -0.4873719513f, -0.1038509980f, -0.8186036348f, -0.0861302018f, 0.0887329206f, -0.2477209568f, -0.4017193019f, -0.2803779542f, 0.5708403587f, 0.7890117168f},
+//        {-0.4605375826f, -0.3520908654f, 0.4579149187f, -0.6693316698f, 0.3497380316f, 0.2658064663f, -0.1681881249f, -0.3272072375f, -0.0845411718f, 0.2394114435f, -0.0101059023f, 0.4046859443f, -0.7417863607f, 0.4150537550f, 0.0869048312f, 0.0200589113f},
+//        {-0.7960591316f, 0.7115456462f, 0.5414740443f, 0.2834898829f, -0.1049120426f, 1.2471122742f, 0.9764256477f, -0.2314370126f, 0.4565517008f, -0.1377106160f, 0.0066791684f, -0.0875304118f, -0.3973374367f, -0.4656803310f, -1.2865468264f, -0.2754203975f},
+//        {-0.1267081201f, -0.3586117029f, -0.4626653492f, 0.0707737282f, -0.4280650318f, 0.3731042147f, -1.5224643946f, -0.0001562309f, -0.5457718372f, -0.8392512798f, -0.3297198415f, -3.6849846840f, -0.3235607445f, -0.4571735561f, -2.5906243324f, -0.0216693431f},
+//        {-0.1975702047f, -0.6478233337f, -1.0000374317f, -0.7892091870f, -0.6129112840f, 0.4033009410f, -1.0652874708f, -5.0731873512f, -0.8335696459f, -0.0490954109f, -4.0255231857f, -2.5913162231f, -0.0984867662f, -0.3165186942f, -1.6619985104f, -0.1019358039f},
+//        {-0.0070813317f, -1.4723222256f, -0.1055053324f, -0.0588658154f, -0.0424999259f, -2.5744652748f, -1.9830906391f, 1.0004559755f, 0.7691277862f, -0.1811856925f, -0.2902224660f, -0.2105268091f, 1.2195326090f, -0.0701754391f, -0.4191590548f, 0.0362841599f},
+//        {-0.1953794360f, -0.7642983794f, -0.5502391458f, -0.6046341658f, -0.0868658274f, -1.0930783749f, -0.4096246660f, -0.2226173431f, -0.9467145205f, 0.0366492942f, -1.0827271938f, -1.3997668028f, 0.1914290041f, -0.1873319149f, -0.3942896426f, 0.0503584519f},
+//        {-0.0302787200f, -5.7183461189f, 0.0836869702f, -0.1351985931f, 0.1218350157f, -0.0037351907f, 0.9376742840f, 0.5179937482f, -1.2707405090f, -0.2760854661f, 0.9394776821f, -0.6231134534f, -0.5011545420f, -1.0431542397f, -0.3772255182f, -0.9186507463f},
+//        {0.5151054263f, -0.1792936772f, 0.5858933330f, -0.0756824464f, -0.1400850862f, 0.3227327764f, -0.0678724647f, 0.6420112848f, 0.7452553511f, 0.0104118586f, 0.1161525100f, -0.9172155261f, -0.3198927939f, 0.0625916570f, 1.1083164215f, 0.5252248645f},
+//        {0.0453939959f, 0.0149580799f, -0.6745067239f, 0.2029461563f, 0.2238395065f, -0.2415017635f, -0.0304794274f, 0.0479286723f, -0.3008814454f, -0.2162462026f, -0.3752769828f, 0.7910355926f, -0.1502458900f, 0.2189511806f, -0.4534323215f, 0.2343945056f},
+//        {-0.0660357103f, 0.5701023936f, -0.7573124170f, -0.4243010581f, -0.3647210896f, 0.9252396226f, -2.1346116066f, -1.5707424879f, -1.0428055525f, 0.0289310124f, -2.2915866375f, -2.0114760399f, -1.4218503237f, -0.6069518924f, -3.6163923740f, -1.0943173170f},
+//        {-0.3510537148f, 0.0646613464f, -0.1941086054f, -0.3585000038f, -0.6358650923f, 0.4817451835f, 0.1834470332f, 1.5077445507f, 0.1200657785f, 0.0157124996f, 0.0893150121f, 0.2747304440f, -0.8162755370f, -2.2185630798f, -0.7672387958f, -0.7171642184f},
+//        {-0.2655964494f, -0.6097341180f, 0.2751416266f, 0.0416029692f, -0.3487569392f, -4.3967308998f, -0.0399694182f, -0.5985686183f, -0.3526073098f, -0.0124356151f, -0.7412110567f, 0.3568145633f, 2.2140672207f, 0.3069616854f, -0.3047554493f, -0.9152814150f},
+//        {-0.3112998009f, -1.2923207283f, -0.2642335892f, 0.1059029102f, -0.6062253118f, 1.7047382593f, -0.2192801982f, -7.2568459511f, -0.6452113390f, -0.1957286149f, 0.4478967488f, 2.1868736744f, 1.0964838266f, -0.5934657454f, -0.9350823164f, 0.1335169673f},
+//        {-0.1445592940f, -3.8598067760f, -0.0888997465f, -0.4536363184f, -0.0818780512f, -0.5499716997f, 0.8879400492f, 0.3036511838f, -2.1018016338f, -0.3131541610f, -2.5331704617f, -2.7884752750f, -1.5264098644f, -0.2974909842f, -0.3884962499f, -1.6347447634f},
+//        {-0.1576830745f, -1.0188829899f, -0.1347837746f, 0.0133346859f, -0.1020436883f, 0.9006328583f, 0.4465196133f, -1.9912528992f, -1.1890530586f, -0.2928483784f, -1.1970791817f, -1.0793333054f, -0.6542327404f, 0.0027635724f, -0.7239921689f, -0.1350315958f},
+//        {-0.0101720933f, 0.8065249920f, -0.2725579739f, -0.5590948462f, -0.6773648858f, -0.9759730697f, 1.1105380058f, -0.9370074272f, -1.0632905960f, -0.2358790785f, -2.6182923317f, -0.5131548643f, 0.3938317299f, -0.6527919173f, -0.5773690343f, -2.7888607979f},
+//        {0.9983167648f, 0.0334987827f, 0.1105532423f, -0.4079656899f, -0.1334102899f, 0.1476265639f, 0.0125124194f, -0.2545211911f, -0.3887112439f, -0.3177830279f, -0.3589894176f, 0.1081808954f, -0.3721842766f, 0.0556281544f, -0.0388795845f, 0.2037374824f},
+//        {-0.4827512801f, -0.2132459283f, -0.9375121593f, -1.3464082479f, -0.5630852580f, 0.0437785275f, -6.4064550400f, -2.0924882889f, -0.2812258899f, -0.5477465987f, -1.5397117138f, -4.5946688652f, -0.4861118793f, -0.7390319705f, -1.4275629520f, -1.5372459888f},
+//        {0.0196762551f, -0.0118051507f, 0.2246439159f, -0.2613828778f, -0.5333120823f, -0.1223717630f, -0.1976639330f, -0.1101496667f, -0.0134799089f, 0.0676583350f, 0.2612578273f, 0.1215140149f, 0.2203066051f, 0.2337986380f, 0.1590026319f, -0.0366739817f},
+//        {-2.0189671516f, 0.4665688872f, -0.8338592052f, -0.3301258981f, -0.4463534951f, -0.3213590384f, -0.2176769376f, -0.7976086736f, -1.4433599710f, -0.9578914046f, -2.3176016808f, -3.3081896305f, 0.1362658292f, -0.9325780272f, -7.5809931755f, -6.1999273300f},
+//        {-0.2162996083f, -1.1839522123f, -1.3205081224f, -0.0846010596f, -0.2445309013f, -0.2086048126f, 0.8832997084f, 0.2233153582f, 0.6593582034f, -0.2484957576f, -0.5232675672f, -0.0044967751f, 0.1215033680f, -0.2973840833f, -0.0051185489f, 0.4212923348f},
+//        {-0.3386851847f, -0.1535801440f, 0.2589180470f, -0.5164783001f, -0.0374755822f, 0.2122802138f, 0.2694437504f, -1.9194368124f, -0.4101884961f, -0.5941445827f, -1.8583507538f, -0.8249487281f, -1.2600407600f, -0.3161348701f, -1.8951197863f, -0.5458792448f},
+//        {-0.5639970899f, 0.5414865613f, -0.9907631874f, -0.7151839733f, -0.3994543254f, -0.8817944527f, -0.5968976021f, -0.2674676180f, 0.4723920822f, -0.6860534549f, -1.4526910782f, -2.7732286453f, 0.6615548134f, -0.4297663867f, -0.3635542095f, -0.7897509336f},
+//        {0.2338507622f, -0.0548883379f, -0.6124376655f, 0.3055166602f, -0.6472301483f, -0.0934592113f, -0.0791300610f, 0.0744187683f, -0.0494301580f, -0.0888935924f, -0.2844451666f, -0.3919087350f, -0.1899581403f, 0.0696015507f, -0.3865183890f, 0.1351541430f},
+//        {-0.3884226382f, 0.6438637376f, -0.0235484447f, -0.4085457325f, -0.3678089380f, -0.3611978292f, -1.9616941214f, -0.6029480100f, -1.0217937231f, 0.0628737658f, 1.1272052526f, -0.7026557922f, -2.6631255150f, -0.0570945218f, -0.8197408915f, -0.0155918878f},
+//        {-0.3045629263f, -1.2819237709f, -0.4050366580f, -1.0614979267f, -0.1641227305f, -1.2281309366f, -1.3765566349f, 0.6788370609f, -1.5758328438f, -1.0314040184f, -6.2401552200f, -3.9707064629f, 0.3741535544f, -0.5852952600f, 0.2783090174f, -0.1958702654f},
+//        {-0.3730004132f, 0.3823136389f, -0.0965899155f, -0.1237012967f, -0.0356198289f, -0.2304152846f, -2.5172274113f, -0.2180451900f, -0.3073972762f, -0.2923755348f, -4.9185404778f, -3.6769018173f, -0.4479543269f, -0.0074586943f, 0.7228356004f, -0.3836637735f},
+//        {-1.5993598700f, -1.3894209862f, 0.0539587401f, -0.3277336061f, -0.2855097055f, -3.6847970486f, -4.5063147545f, -1.4260863066f, -3.9039046764f, -1.1701396704f, -1.8200896978f, -2.4587380886f, 0.2993653715f, 0.0570639670f, -2.6918485165f, -1.4997549057f},
+//        {0.1219597459f, 0.0154820858f, 0.3974801600f, 0.3066018224f, 0.1819918901f, 0.0161614101f, 0.0640004650f, 0.1952118576f, -0.2755865157f, 0.0411446691f, 0.0500190333f, 0.1724539101f, -0.1740499139f, 0.3841970265f, 0.3317279220f, 0.4177183211f}
+//    };
+
+
+//    const float fc4Bias[16] =
+//    {-0.5141325593f, -0.8478075862f, -1.0021078587f, -1.7178856134f, -0.9628381133f, 0.1455254108f, -3.6562759876f, 1.7083742619f, -8.0320730209f, -0.9758637547f, -3.8376631737f, -0.1638645679f, 3.8785557747f, -1.0468775034f, -29.1870574951f, -6.1543283463f};
+
+
+//    const float fc5Weights[16][8] =
+//    {
+//        {-0.0377756208f, -0.0376064293f, -0.0772271156f, 0.5590630174f, -0.3684624434f, 1.0009193420f, 1.3445713520f, 0.5627732277f},
+//        {-0.4041293859f, 0.1303688884f, -0.3772308826f, -0.8144312501f, -0.3996099234f, -0.8786695004f, -0.1038818136f, -0.6491676569f},
+//        {-0.1548538208f, -0.4342842698f, -0.3643324077f, 0.7171005011f, -0.2240766436f, -0.3029537201f, 0.0784914643f, 0.2668318450f},
+//        {0.0582836233f, 0.1667208225f, 0.1605709791f, -0.8526514769f, -0.0394123383f, 0.3542331457f, -0.0112714395f, -0.8478502035f},
+//        {0.1886940002f, 1.4096331596f, -0.0266252328f, 0.1160744503f, 1.3083670139f, -0.4767547250f, -0.7634902000f, -1.2924789190f},
+//        {-0.3800563812f, -0.2717871964f, -0.2375701517f, -0.8516035080f, -0.3561956882f, -0.5633419156f, 0.1343641281f, -0.8182802796f},
+//        {-0.4533548355f, 0.4980821609f, -0.0113001689f, -0.6163378358f, -0.0099237291f, -0.0464528799f, 1.4334065914f, -0.1762148142f},
+//        {-0.4913391173f, 0.1923918128f, -0.5117462277f, -0.5446628928f, -0.7394183278f, 0.1009852663f, -0.2048954815f, -0.3028838933f},
+//        {0.0514116511f, -0.1429781914f, -0.2054089010f, -0.3337486684f, -0.9298329949f, -0.0842700675f, -0.9120995402f, -1.0035445690f},
+//        {0.1642776728f, -0.1338489354f, -0.3949478865f, 0.2676415145f, 0.2334752530f, 0.1165231466f, 0.3371087313f, -0.0303090699f},
+//        {-0.0316087417f, -0.3532579839f, -0.5091804862f, 0.0389130265f, -0.1303991377f, -1.4411540031f, -0.0542913377f, -0.6798272133f},
+//        {-0.0166958608f, -0.3853805959f, -0.0088427681f, -0.1329081804f, -0.1517693698f, -0.7518531680f, -0.0679639205f, 0.1632424593f},
+//        {-0.2969943583f, 0.2169936597f, -0.2704928219f, -0.5222067237f, -0.2086613327f, -0.5919396281f, -0.1555189341f, -0.5921875238f},
+//        {0.3620398343f, -0.0771873146f, -0.4576121271f, 0.4077250361f, 0.1402812898f, -0.3508163095f, -0.0904585123f, 0.1637402475f},
+//        {-0.3381429911f, -0.9172439575f, -0.2056993395f, -0.0469768532f, -0.0229178257f, 0.0243457071f, -0.1943701357f, -0.0122073563f},
+//        {-0.2032035887f, -0.0370536968f, -0.2462941855f, 0.3719790280f, 0.1286954135f, 0.1040267125f, 0.2068356276f, 0.0400213264f}
+//    };
+
+
+//    const float fc5Bias[8] =
+//    {-0.4388153255f, -2.2450299263f, -0.3559921980f, -0.9536105990f, -1.0454660654f, -0.8810431957f, 1.6276029348f, -0.6507120728f};
+
+
+//    const float fc6Weights[8][1] =
+//    {
+//        {-0.5150820613f},
+//        {0.1128230840f},
+//        {0.0093749743f},
+//        {-0.4838168621f},
+//        {0.2524490356f},
+//        {-0.4693250954f},
+//        {-0.1718080938f},
+//        {-0.4312117100f}
+//    };
+
+
+//    const float fc6Bias[1] =
+//    {0.0394757539f};
+
+//}
 #endif
-- 
GitLab