Hardware components | ||||||
![]() |
| × | 1 | |||
| × | 1 | ||||
Software apps and online services | ||||||
![]() |
| |||||
![]() |
| |||||
| ||||||
Our project enables hands-free control of a drawing robot or visualization system using natural voice commands. Instead of relying on traditional buttons or GUI controls, we designed a system where spoken instructions are converted into structured numerical control signals that can be directly consumed by downstream systems, such as LabVIEW and robot controllers. This system integrates modern speech recognition with classical robotics control algorithms to achieve a natural, intuitive, and robust user experience.
Voice-Controlled System (The "Brain")The core of our interaction layer is a Python-based module designed for voice-controlled shape drawing, serving as the system's "Brain". The workflow begins with capturing short audio clips via a microphone, which are transcribed into text in real-time using AssemblyAI. The code then parses this text to identify shape types (e.g., rectangle, circle, digits) and detect relative size commands like "bigger" or "smaller". Crucially, the system utilizes "State Maintenance" to remember the "last shape" and current "scale factor", enabling context-aware commands where the robot intuitively understands instructions to modify the size of a previously selected shape.
LabVIEW Communication & IntegrationTo bridge our Python AI layer with the robot hardware, we integrated the system into LabVIEW by building upon the "LabVIEW Assignment 3" framework using a "Key down structure". We introduced a specific trigger key, "o" (ASCII 111), to initiate the communication. When this key is pressed, the system calls our language processing Python node, which processes the audio and returns two specific float values: "Shape and Size" to LabVIEW. This modular setup allows the complex speech processing to be handled in Python, while LabVIEW manages the low-level signal flow effectively.
Following is the NI tutorial on how to use the Python node in LabVIEW.
https://www.ni.com/en/support/documentation/supplemental/18/installing-python-for-calling-python-code.html
LabVIEW version in our lab is 2021 SP1 32-bit ( you can check it with Help -> About LabVIEW to find the information) and the latest supported python version is 3.9. For most cases, the default python version on Lab computers should be like 3.14 or higher, which means we have to download a python3.9 32-bit version on the computer to use in LabVIEW.
Let's see it on python.org:
https://www.python.org/downloads/release/python-3913/
After successfully downloaded, it is strongly suggested to remember the path for this python.exe because we have to paste this as "Python Path" input of python node. If you forget it, use the "where python" in cmd to find the path of.exe. It should be something like:
C:\Users\zhihao12\AppData\Local\Microsoft\WindowsApps\python.exe
Besides the "Python Path" input, there is another path input you need to define called "Module Path". This refers to the path of your pyhton file in the computer.
After given all these path we still need to define the return type of python node and select according control and indicator vi to pass and receive the values from python node. Here are a small test vi used to add two values together.
Based on this simple VI, you can develop more advanced ones to achieve the function you want with python node. That's the brief instruction of how to use python node in ME461's Lab environment.
Trajectory Tracking: Pure Pursuit AlgorithmOnce the robot receives a motion command, the Pure Pursuit algorithm is used to achieve smooth and stable trajectory tracking. Pure Pursuit works by selecting a lookahead point located at a fixed distance ahead of the robot along the reference path, and computing the required steering command to reach this point. For our differential-drive mobile robot, the steering command is realized by converting the desired curvature into a left–right wheel speed difference through kinematic relationships.
Compared with a simple Straight-Then-Turn strategy, Pure Pursuit produces smooth and continuous steering without abrupt direction changes. It better reflects real vehicle motion behavior, provides reliable tracking of discrete waypoints, and remains computationally efficient, making it well suited for real-time control.
Reference Path Representation
The reference trajectory is represented by two arrays:
pathX[]: stores the x-coordinates of the reference path waypoints
pathY[]: stores the y-coordinates of the reference path waypoints
Each waypoint on the path is defined by the coordinate pair (pathX[i], pathY[i]), and the ordered sequence of these points forms the desired trajectory that the robot should follow
Step 1: Projection Point Determination
The reference trajectory is discretized into a sequence of waypoints defined by the pathX and pathY arrays.
At each control cycle, the robot determines its projection point on the path by finding the waypoint whose (x, y) position is closest to the robot’s current position. To improve efficiency, the search is restricted to a fixed range ahead of the previously selected index.
//------------------------update index of the car
float distance = 0.0;
int index_temp = index;
float min_distance =
(x_current - pathX[index]) * (x_current - pathX[index]) +
(y_current - pathY[index]) * (y_current - pathY[index]);
int search_end = MIN(index + searchRange, array_length - 1);
for (int i = index + 1; i <= search_end; i++)
{
distance =
(x_current - pathX[i]) * (x_current - pathX[i]) +
(y_current - pathY[i]) * (y_current - pathY[i]);
if (distance < min_distance)
{
min_distance = distance;
index_temp = i;
}
}
index = index_temp;Step 2: Lookahead Tracking Point Selection
A fixed lookahead distance, expressed as a predefined number of waypoints, is used.
Starting from the projection point index, a waypoint further along the path is selected as the lookahead tracking point, which serves as the immediate goal for motion control.
//-----------------------select lookahead point
target_index = MIN(index + lookaheadStep, array_length - 1);
x_track = pathX[target_index];
y_track = pathY[target_index];Step 3: Control Command Computation
The relative geometry between the robot’s current position and the selected tracking point is used to compute the required path curvature. This curvature is converted into an angular velocity and then mapped to left and right wheel speed commands using the robot’s wheelbase and a desired linear velocity.
Angle normalization and curvature limiting are applied to ensure numerical stability and safe motion execution.
//-----------------------distance and angles between tracking points and car's position
dx = x_track - x_current;
dy = y_track - y_current;
l = sqrtf(dx * dx + dy * dy);
alpha = atan2f(dy, dx) - theta_current;
// Normalize alpha to [-PI, PI]
while (alpha > PI) alpha -= TWOPI;
while (alpha < -PI) alpha += TWOPI;
//-----------------------kappa with SAFETY CHECK
if (l > 0.1) {
kappa = 2.0 * sinf(alpha) / l;
} else {
kappa = 0.0;
}
//-----------------------Limit kappa
float max_kappa = 5.0;
if (kappa > max_kappa) kappa = max_kappa;
if (kappa < -max_kappa) kappa = -max_kappa;
//-----------------------kappa -> angular velocity
omega_d = v_ref * kappa;
//-----------------------left/right speed
r_RightSpeed = v_ref + 0.5 * L * omega_d;
r_LeftSpeed = v_ref - 0.5 * L * omega_d;Advantages & Key FeaturesOur audio-based approach offers several significant improvements over traditional control methods. It enables natural, intuitive interaction using speech rather than manual inputs, while smart state management allows for persistent shape memory and global size scaling with bounded control (1-5). Additionally, the command parser ensures robustness against partial or ambiguous commands, and the modular structure facilitates easy integration with LabVIEW robotic pipelines, making the system extensible to new shapes or gestures in the future.
DemostrationFinal_project_main.c
C/C++//#############################################################################
// FILE: LAB6starter_main.c
//
// TITLE: Lab Starter
//#############################################################################
// Included Files
#include <stdio.h>
#include <stdlib.h>
#include <stdarg.h>
#include <string.h>
#include <math.h>
#include <limits.h>
#include "F28x_Project.h"
#include "driverlib.h"
#include "device.h"
#include "F28379dSerial.h"
#include "LEDPatterns.h"
#include "song.h"
#include "dsp.h"
#include "fpu32/fpu_rfft.h"
#include "digit_paths.h"
#define PI 3.1415926535897932384626433832795
#define TWOPI 6.283185307179586476925286766559
#define HALFPI 1.5707963267948966192313216916398
// The Launchpad's CPU Frequency set to 200 you should not change this value
#define LAUNCHPAD_CPU_FREQUENCY 200
// ----- code for CAN start here -----
#include "F28379dCAN.h"
//#define TX_MSG_DATA_LENGTH 4
//#define TX_MSG_OBJ_ID 0 //transmit
#define RX_MSG_DATA_LENGTH 8
#define RX_MSG_OBJ_ID_1 1 //measurement from sensor 1
#define RX_MSG_OBJ_ID_2 2 //measurement from sensor 2
#define RX_MSG_OBJ_ID_3 3 //quality from sensor 1
#define RX_MSG_OBJ_ID_4 4 //quality from sensor 2
#define MIN(a, b) ((a) <= (b) ? (a) : (b))
#define MAX(a, b) ((a) >= (b) ? (a) : (b))
// ----- code for CAN end here -----
// Interrupt Service Routines predefinition
__interrupt void cpu_timer0_isr(void);
__interrupt void cpu_timer1_isr(void);
__interrupt void cpu_timer2_isr(void);
__interrupt void SWI_isr(void);
// ----- code for CAN start here -----
__interrupt void can_isr(void);
// ----- code for CAN end here -----
__interrupt void SPIB_isr(void);
void setupSpib(void);
//*******************************************************************
//Ziheng and Zhihao: define the functions
void init_eQEPs(void);
float readEncLeft(void);
float readEncRight(void);
float Saturate(float input, float saturation_limit);
void setEPW2A(float controleffort);
void setEPW2B(float controleffort);
//*******************************************************************
// Count variables
uint32_t numTimer0calls = 0;
uint32_t numSWIcalls = 0;
extern uint32_t numRXA;
uint16_t UARTPrint = 0;
uint16_t LEDdisplaynum = 0;
int16_t accelx_raw = 0;
int16_t accely_raw = 0;
int16_t accelz_raw = 0;
int16_t gyrox_raw = 0;
int16_t gyroy_raw = 0;
int16_t gyroz_raw = 0;
float accelx = 0;
float accely = 0;
float accelz = 0;
float gyrox = 0;
float gyroy = 0;
float gyroz = 0;
int32_t SpibNumCalls = 0;
// ----- code for CAN start here -----
// volatile uint32_t txMsgCount = 0;
// extern uint16_t txMsgData[4];
volatile uint32_t rxMsgCount_1 = 0;
volatile uint32_t rxMsgCount_3 = 0;
extern uint16_t rxMsgData[8];
uint32_t dis_raw_1[2];
uint32_t dis_raw_3[2];
uint32_t dis_1 = 0;
uint32_t dis_3 = 0;
uint32_t quality_raw_1[4];
uint32_t quality_raw_3[4];
float quality_1 = 0.0;
float quality_3 = 0.0;
uint32_t lightlevel_raw_1[4];
uint32_t lightlevel_raw_3[4];
float lightlevel_1 = 0.0;
float lightlevel_3 = 0.0;
uint32_t measure_status_1 = 0;
uint32_t measure_status_3 = 0;
volatile uint32_t errorFlag = 0;
//*******************************************************
//global variables
float LeftWheel = 0.0;
float RightWheel = 0.0;
float LeftWheel_1 = 0.0;
float RightWheel_1 = 0.0;
float LeftSpeed = 0.0;//Ziheng ndZhihao: linear speed of the wheels
float RightSpeed = 0.0;
//PI controller variables
int16_t updown = 1;
float u_left = 0.0;
float u_right = 0.0;
float r_velocity = 0.25;
float e_left = 0.0;
float e_left_1 = 0.0;
float e_right = 0.0;
float e_right_1 = 0.0;
float Ik_left = 0.0;
float Ik_left_1 = 0.0;
float Ik_right = 0.0;
float Ik_right_1 = 0.0;
float r_turn = 0.0;
float e_turn = 0.0;
float r_LeftSpeed = 0.0;
float r_RightSpeed = 0.0;
//-----------------------------------
//PI controller gains
float Kp = 4.0;
float Ki = 25.0;
float Kp_turn = 3.0;
//-----------------------------------
//Labview
float printLV3 = 0;
float printLV4 = 0;
float printLV5 = 0;
float printLV6 = 0;
float printLV7 = 0;
float printLV8 = 0;
float shape = 0.0;
float size_cmd = 1.0;
float x = 0;
float y = 0;
float bearing = 0;
extern uint16_t NewLVData;
extern float fromLVvalues[LVNUM_TOFROM_FLOATS];
extern LVSendFloats_t DataToLabView;
extern char LVsenddata[LVNUM_TOFROM_FLOATS*4+2];
extern uint16_t newLinuxCommands;
extern float LinuxCommands[CMDNUM_FROM_FLOATS];
//***************************************************
//***************************************************
// FinalProject
// Ziheng and Zhihao: Kinematics modeling
float avgV = 0.0;
float omega = 0.0;
float x_current = 0.0;//position x
float y_current = 0.0;//postion y
float theta_current = 0.0;//theta
float time_s = 0.004;//sampling time
float L = 0.173;//width of the car
// float WR = 0.173;
// float xr = 0.0;
// float xr_1 = 0.0;
// float phir = 0.0;
// float RWh = 0.0593;
// float yr = 0.0;
// float yr_1 = 0.0;
// float avgSpeed = 0.0;
// float dotxr = 0.0;
// float dotxr_1 = 0.0;
// float dotyr = 0.0;
// float dotyr_1 = 0.0;
//------------------------------------------------
// Purepursuit
//***************************************************
#define array_length 520
//int array_length = 520;
//***************************************************
float v_ref = 0.0;// reference linear velocity
int lookaheadStep = array_length / 10;//the step of looking ahead
int searchRange = 20;
int index = 0;// the step that the car is at
bool finished = false;//check whether the car finished tracking
float kappa = 0.0;
float omega_d = 0.0;
int target_index = 0;
float x_track = 0.0;//tracking points
float y_track = 0.0;
float dx;
float dy;
float l;
float alpha;
float stop_thresh = 0.1;
int go = 0;//flag of robot moving activation
//------------------------------------------------
// routes
float pathX[520] = {0};
float pathX_square[520]={ 0.0000000000000000e+00, 1.1627906976744186e-02, 2.3255813953488372e-02, 3.4883720930232558e-02, 4.6511627906976744e-02, 5.8139534883720929e-02, 6.9767441860465115e-02, 8.1395348837209308e-02, 9.3023255813953487e-02, 1.0465116279069768e-01, 1.1627906976744186e-01, 1.2790697674418605e-01, 1.3953488372093023e-01, 1.5116279069767441e-01, 1.6279069767441862e-01, 1.7441860465116280e-01, 1.8604651162790697e-01, 1.9767441860465115e-01, 2.0930232558139536e-01, 2.2093023255813954e-01, 2.3255813953488372e-01, 2.4418604651162790e-01, 2.5581395348837210e-01, 2.6744186046511625e-01, 2.7906976744186046e-01, 2.9069767441860467e-01, 3.0232558139534882e-01, 3.1395348837209303e-01, 3.2558139534883723e-01, 3.3720930232558138e-01, 3.4883720930232559e-01, 3.6046511627906974e-01, 3.7209302325581395e-01, 3.8372093023255816e-01, 3.9534883720930231e-01, 4.0697674418604651e-01, 4.1860465116279072e-01, 4.3023255813953487e-01, 4.4186046511627908e-01, 4.5348837209302323e-01, 4.6511627906976744e-01, 4.7674418604651164e-01, 4.8837209302325579e-01, 5.0000000000000000e-01, 5.1162790697674421e-01, 5.2325581395348841e-01, 5.3488372093023251e-01, 5.4651162790697672e-01, 5.5813953488372092e-01, 5.6976744186046513e-01, 5.8139534883720934e-01, 5.9302325581395354e-01, 6.0465116279069764e-01, 6.1627906976744184e-01, 6.2790697674418605e-01, 6.3953488372093026e-01, 6.5116279069767447e-01, 6.6279069767441856e-01, 6.7441860465116277e-01, 6.8604651162790697e-01, 6.9767441860465118e-01, 7.0930232558139539e-01, 7.2093023255813948e-01, 7.3255813953488369e-01, 7.4418604651162790e-01, 7.5581395348837210e-01, 7.6744186046511631e-01, 7.7906976744186052e-01, 7.9069767441860461e-01, 8.0232558139534882e-01, 8.1395348837209303e-01, 8.2558139534883723e-01, 8.3720930232558144e-01, 8.4883720930232553e-01, 8.6046511627906974e-01, 8.7209302325581395e-01, 8.8372093023255816e-01, 8.9534883720930236e-01, 9.0697674418604646e-01, 9.1860465116279066e-01, 9.3023255813953487e-01, 9.4186046511627908e-01, 9.5348837209302328e-01, 9.6511627906976749e-01, 9.7674418604651159e-01, 9.8837209302325579e-01, 1.0000000000000000e+00, 1.0116279069767442e+00, 1.0232558139534884e+00, 1.0348837209302326e+00, 1.0465116279069768e+00, 1.0581395348837210e+00, 1.0697674418604650e+00, 1.0813953488372092e+00, 1.0930232558139534e+00, 1.1046511627906976e+00, 1.1162790697674418e+00, 1.1279069767441861e+00, 1.1395348837209303e+00, 1.1511627906976745e+00, 1.1627906976744187e+00, 1.1744186046511629e+00, 1.1860465116279071e+00, 1.1976744186046511e+00, 1.2093023255813953e+00, 1.2209302325581395e+00, 1.2325581395348837e+00, 1.2441860465116279e+00, 1.2558139534883721e+00, 1.2674418604651163e+00, 1.2790697674418605e+00, 1.2906976744186047e+00, 1.3023255813953489e+00, 1.3139534883720929e+00, 1.3255813953488371e+00, 1.3372093023255813e+00, 1.3488372093023255e+00, 1.3604651162790697e+00, 1.3720930232558139e+00, 1.3837209302325582e+00, 1.3953488372093024e+00, 1.4069767441860466e+00, 1.4186046511627908e+00, 1.4302325581395350e+00, 1.4418604651162790e+00, 1.4534883720930232e+00, 1.4651162790697674e+00, 1.4767441860465116e+00, 1.4883720930232558e+00, 1.5000000000000000e+00, 1.5000000000000000e+00, 1.5000000000000000e+00, 1.5000000000000000e+00, 1.5000000000000000e+00, 1.5000000000000000e+00, 1.5000000000000000e+00, 1.5000000000000000e+00, 1.5000000000000000e+00, 1.5000000000000000e+00, 1.5000000000000000e+00, 1.5000000000000000e+00, 1.5000000000000000e+00, 1.5000000000000000e+00, 1.5000000000000000e+00, 1.5000000000000000e+00, 1.5000000000000000e+00, 1.5000000000000000e+00, 1.5000000000000000e+00, 1.5000000000000000e+00, 1.5000000000000000e+00, 1.5000000000000000e+00, 1.5000000000000000e+00, 1.5000000000000000e+00, 1.5000000000000000e+00, 1.5000000000000000e+00, 1.5000000000000000e+00, 1.5000000000000000e+00, 1.5000000000000000e+00, 1.5000000000000000e+00, 1.5000000000000000e+00, 1.5000000000000000e+00, 1.5000000000000000e+00, 1.5000000000000000e+00, 1.5000000000000000e+00, 1.5000000000000000e+00, 1.5000000000000000e+00, 1.5000000000000000e+00, 1.5000000000000000e+00, 1.5000000000000000e+00, 1.5000000000000000e+00, 1.5000000000000000e+00, 1.5000000000000000e+00, 1.5000000000000000e+00, 1.5000000000000000e+00, 1.5000000000000000e+00, 1.5000000000000000e+00, 1.5000000000000000e+00, 1.5000000000000000e+00, 1.5000000000000000e+00, 1.5000000000000000e+00, 1.5000000000000000e+00, 1.5000000000000000e+00, 1.5000000000000000e+00, 1.5000000000000000e+00, 1.5000000000000000e+00, 1.5000000000000000e+00, 1.5000000000000000e+00, 1.5000000000000000e+00, 1.5000000000000000e+00, 1.5000000000000000e+00, 1.5000000000000000e+00, 1.5000000000000000e+00, 1.5000000000000000e+00, 1.5000000000000000e+00, 1.5000000000000000e+00, 1.5000000000000000e+00, 1.5000000000000000e+00, 1.5000000000000000e+00, 1.5000000000000000e+00, 1.5000000000000000e+00, 1.5000000000000000e+00, 1.5000000000000000e+00, 1.5000000000000000e+00, 1.5000000000000000e+00, 1.5000000000000000e+00, 1.5000000000000000e+00, 1.5000000000000000e+00, 1.5000000000000000e+00, 1.5000000000000000e+00, 1.5000000000000000e+00, 1.5000000000000000e+00, 1.5000000000000000e+00, 1.5000000000000000e+00, 1.5000000000000000e+00, 1.5000000000000000e+00, 1.5000000000000000e+00, 1.5000000000000000e+00, 1.5000000000000000e+00, 1.5000000000000000e+00, 1.5000000000000000e+00, 1.5000000000000000e+00, 1.5000000000000000e+00, 1.5000000000000000e+00, 1.5000000000000000e+00, 1.5000000000000000e+00, 1.5000000000000000e+00, 1.5000000000000000e+00, 1.5000000000000000e+00, 1.5000000000000000e+00, 1.5000000000000000e+00, 1.5000000000000000e+00, 1.5000000000000000e+00, 1.5000000000000000e+00, 1.5000000000000000e+00, 1.5000000000000000e+00, 1.5000000000000000e+00, 1.5000000000000000e+00, 1.5000000000000000e+00, 1.5000000000000000e+00, 1.5000000000000000e+00, 1.5000000000000000e+00, 1.5000000000000000e+00, 1.5000000000000000e+00, 1.5000000000000000e+00, 1.5000000000000000e+00, 1.5000000000000000e+00, 1.5000000000000000e+00, 1.5000000000000000e+00, 1.5000000000000000e+00, 1.5000000000000000e+00, 1.5000000000000000e+00, 1.5000000000000000e+00, 1.5000000000000000e+00, 1.5000000000000000e+00, 1.5000000000000000e+00, 1.5000000000000000e+00, 1.5000000000000000e+00, 1.5000000000000000e+00, 1.5000000000000000e+00, 1.5000000000000000e+00, 1.5000000000000000e+00, 1.4883720930232558e+00, 1.4767441860465116e+00, 1.4651162790697674e+00, 1.4534883720930232e+00, 1.4418604651162790e+00, 1.4302325581395350e+00, 1.4186046511627908e+00, 1.4069767441860466e+00, 1.3953488372093024e+00, 1.3837209302325582e+00, 1.3720930232558139e+00, 1.3604651162790697e+00, 1.3488372093023255e+00, 1.3372093023255813e+00, 1.3255813953488371e+00, 1.3139534883720931e+00, 1.3023255813953489e+00, 1.2906976744186047e+00, 1.2790697674418605e+00, 1.2674418604651163e+00, 1.2558139534883721e+00, 1.2441860465116279e+00, 1.2325581395348837e+00, 1.2209302325581395e+00, 1.2093023255813953e+00, 1.1976744186046511e+00, 1.1860465116279069e+00, 1.1744186046511627e+00, 1.1627906976744187e+00, 1.1511627906976745e+00, 1.1395348837209303e+00, 1.1279069767441861e+00, 1.1162790697674418e+00, 1.1046511627906976e+00, 1.0930232558139534e+00, 1.0813953488372092e+00, 1.0697674418604652e+00, 1.0581395348837210e+00, 1.0465116279069768e+00, 1.0348837209302326e+00, 1.0232558139534884e+00, 1.0116279069767442e+00, 1.0000000000000000e+00, 9.8837209302325579e-01, 9.7674418604651159e-01, 9.6511627906976749e-01, 9.5348837209302328e-01, 9.4186046511627908e-01, 9.3023255813953487e-01, 9.1860465116279066e-01, 9.0697674418604646e-01, 8.9534883720930236e-01, 8.8372093023255816e-01, 8.7209302325581395e-01, 8.6046511627906974e-01, 8.4883720930232553e-01, 8.3720930232558144e-01, 8.2558139534883723e-01, 8.1395348837209303e-01, 8.0232558139534882e-01, 7.9069767441860461e-01, 7.7906976744186052e-01, 7.6744186046511631e-01, 7.5581395348837210e-01, 7.4418604651162790e-01, 7.3255813953488369e-01, 7.2093023255813948e-01, 7.0930232558139539e-01, 6.9767441860465118e-01, 6.8604651162790697e-01, 6.7441860465116277e-01, 6.6279069767441856e-01, 6.5116279069767447e-01, 6.3953488372093026e-01, 6.2790697674418605e-01, 6.1627906976744184e-01, 6.0465116279069764e-01, 5.9302325581395354e-01, 5.8139534883720934e-01, 5.6976744186046513e-01, 5.5813953488372092e-01, 5.4651162790697672e-01, 5.3488372093023251e-01, 5.2325581395348841e-01, 5.1162790697674421e-01, 5.0000000000000000e-01, 4.8837209302325579e-01, 4.7674418604651159e-01, 4.6511627906976738e-01, 4.5348837209302317e-01, 4.4186046511627897e-01, 4.3023255813953498e-01, 4.1860465116279078e-01, 4.0697674418604657e-01, 3.9534883720930236e-01, 3.8372093023255816e-01, 3.7209302325581395e-01, 3.6046511627906974e-01, 3.4883720930232553e-01, 3.3720930232558133e-01, 3.2558139534883712e-01, 3.1395348837209291e-01, 3.0232558139534893e-01, 2.9069767441860472e-01, 2.7906976744186052e-01, 2.6744186046511631e-01, 2.5581395348837210e-01, 2.4418604651162790e-01, 2.3255813953488369e-01, 2.2093023255813948e-01, 2.0930232558139528e-01, 1.9767441860465107e-01, 1.8604651162790709e-01, 1.7441860465116288e-01, 1.6279069767441867e-01, 1.5116279069767447e-01, 1.3953488372093026e-01, 1.2790697674418605e-01, 1.1627906976744184e-01, 1.0465116279069764e-01, 9.3023255813953432e-02, 8.1395348837209225e-02, 6.9767441860465018e-02, 5.8139534883721034e-02, 4.6511627906976827e-02, 3.4883720930232620e-02, 2.3255813953488413e-02, 1.1627906976744207e-02, 0.0000000000000000e+00, 0.0000000000000000e+00, 0.0000000000000000e+00, 0.0000000000000000e+00, 0.0000000000000000e+00, 0.0000000000000000e+00, 0.0000000000000000e+00, 0.0000000000000000e+00, 0.0000000000000000e+00, 0.0000000000000000e+00, 0.0000000000000000e+00, 0.0000000000000000e+00, 0.0000000000000000e+00, 0.0000000000000000e+00, 0.0000000000000000e+00, 0.0000000000000000e+00, 0.0000000000000000e+00, 0.0000000000000000e+00, 0.0000000000000000e+00, 0.0000000000000000e+00, 0.0000000000000000e+00, 0.0000000000000000e+00, 0.0000000000000000e+00, 0.0000000000000000e+00, 0.0000000000000000e+00, 0.0000000000000000e+00, 0.0000000000000000e+00, 0.0000000000000000e+00, 0.0000000000000000e+00, 0.0000000000000000e+00, 0.0000000000000000e+00, 0.0000000000000000e+00, 0.0000000000000000e+00, 0.0000000000000000e+00, 0.0000000000000000e+00, 0.0000000000000000e+00, 0.0000000000000000e+00, 0.0000000000000000e+00, 0.0000000000000000e+00, 0.0000000000000000e+00, 0.0000000000000000e+00, 0.0000000000000000e+00, 0.0000000000000000e+00, 0.0000000000000000e+00, 0.0000000000000000e+00, 0.0000000000000000e+00, 0.0000000000000000e+00, 0.0000000000000000e+00, 0.0000000000000000e+00, 0.0000000000000000e+00, 0.0000000000000000e+00, 0.0000000000000000e+00, 0.0000000000000000e+00, 0.0000000000000000e+00, 0.0000000000000000e+00, 0.0000000000000000e+00, 0.0000000000000000e+00, 0.0000000000000000e+00, 0.0000000000000000e+00, 0.0000000000000000e+00, 0.0000000000000000e+00, 0.0000000000000000e+00, 0.0000000000000000e+00, 0.0000000000000000e+00, 0.0000000000000000e+00, 0.0000000000000000e+00, 0.0000000000000000e+00, 0.0000000000000000e+00, 0.0000000000000000e+00, 0.0000000000000000e+00, 0.0000000000000000e+00, 0.0000000000000000e+00, 0.0000000000000000e+00, 0.0000000000000000e+00, 0.0000000000000000e+00, 0.0000000000000000e+00, 0.0000000000000000e+00, 0.0000000000000000e+00, 0.0000000000000000e+00, 0.0000000000000000e+00, 0.0000000000000000e+00, 0.0000000000000000e+00, 0.0000000000000000e+00, 0.0000000000000000e+00, 0.0000000000000000e+00, 0.0000000000000000e+00, 0.0000000000000000e+00, 0.0000000000000000e+00, 0.0000000000000000e+00, 0.0000000000000000e+00, 0.0000000000000000e+00, 0.0000000000000000e+00, 0.0000000000000000e+00, 0.0000000000000000e+00, 0.0000000000000000e+00, 0.0000000000000000e+00, 0.0000000000000000e+00, 0.0000000000000000e+00, 0.0000000000000000e+00, 0.0000000000000000e+00, 0.0000000000000000e+00, 0.0000000000000000e+00, 0.0000000000000000e+00, 0.0000000000000000e+00, 0.0000000000000000e+00, 0.0000000000000000e+00, 0.0000000000000000e+00, 0.0000000000000000e+00, 0.0000000000000000e+00, 0.0000000000000000e+00, 0.0000000000000000e+00, 0.0000000000000000e+00, 0.0000000000000000e+00, 0.0000000000000000e+00, 0.0000000000000000e+00, 0.0000000000000000e+00, 0.0000000000000000e+00, 0.0000000000000000e+00, 0.0000000000000000e+00, 0.0000000000000000e+00, 0.0000000000000000e+00, 0.0000000000000000e+00, 0.0000000000000000e+00, 0.0000000000000000e+00, 0.0000000000000000e+00, 0.0000000000000000e+00, 0.0000000000000000e+00, 0.0000000000000000e+00, 0.0000000000000000e+00, 0.0000000000000000e+00, 0.0000000000000000e+00};
float pathX_rectangle[520]={ 0.0000000000000000e+00, 1.5503875968992248e-02, 3.1007751937984496e-02, 4.6511627906976744e-02, 6.2015503875968991e-02, 7.7519379844961239e-02, 9.3023255813953487e-02, 1.0852713178294573e-01, 1.2403100775193798e-01, 1.3953488372093023e-01, 1.5503875968992248e-01, 1.7054263565891473e-01, 1.8604651162790697e-01, 2.0155038759689922e-01, 2.1705426356589147e-01, 2.3255813953488372e-01, 2.4806201550387597e-01, 2.6356589147286824e-01, 2.7906976744186046e-01, 2.9457364341085274e-01, 3.1007751937984496e-01, 3.2558139534883723e-01, 3.4108527131782945e-01, 3.5658914728682173e-01, 3.7209302325581395e-01, 3.8759689922480622e-01, 4.0310077519379844e-01, 4.1860465116279072e-01, 4.3410852713178294e-01, 4.4961240310077522e-01, 4.6511627906976744e-01, 4.8062015503875971e-01, 4.9612403100775193e-01, 5.1162790697674421e-01, 5.2713178294573648e-01, 5.4263565891472865e-01, 5.5813953488372092e-01, 5.7364341085271320e-01, 5.8914728682170547e-01, 6.0465116279069764e-01, 6.2015503875968991e-01, 6.3565891472868219e-01, 6.5116279069767447e-01, 6.6666666666666663e-01, 6.8217054263565891e-01, 6.9767441860465118e-01, 7.1317829457364346e-01, 7.2868217054263562e-01, 7.4418604651162790e-01, 7.5968992248062017e-01, 7.7519379844961245e-01, 7.9069767441860461e-01, 8.0620155038759689e-01, 8.2170542635658916e-01, 8.3720930232558144e-01, 8.5271317829457360e-01, 8.6821705426356588e-01, 8.8372093023255816e-01, 8.9922480620155043e-01, 9.1472868217054260e-01, 9.3023255813953487e-01, 9.4573643410852715e-01, 9.6124031007751942e-01, 9.7674418604651159e-01, 9.9224806201550386e-01, 1.0077519379844961e+00, 1.0232558139534884e+00, 1.0387596899224807e+00, 1.0542635658914730e+00, 1.0697674418604650e+00, 1.0852713178294573e+00, 1.1007751937984496e+00, 1.1162790697674418e+00, 1.1317829457364341e+00, 1.1472868217054264e+00, 1.1627906976744187e+00, 1.1782945736434109e+00, 1.1937984496124030e+00, 1.2093023255813953e+00, 1.2248062015503876e+00, 1.2403100775193798e+00, 1.2558139534883721e+00, 1.2713178294573644e+00, 1.2868217054263567e+00, 1.3023255813953489e+00, 1.3178294573643410e+00, 1.3333333333333333e+00, 1.3488372093023255e+00, 1.3643410852713178e+00, 1.3798449612403101e+00, 1.3953488372093024e+00, 1.4108527131782946e+00, 1.4263565891472869e+00, 1.4418604651162790e+00, 1.4573643410852712e+00, 1.4728682170542635e+00, 1.4883720930232558e+00, 1.5038759689922481e+00, 1.5193798449612403e+00, 1.5348837209302326e+00, 1.5503875968992249e+00, 1.5658914728682169e+00, 1.5813953488372092e+00, 1.5968992248062015e+00, 1.6124031007751938e+00, 1.6279069767441861e+00, 1.6434108527131783e+00, 1.6589147286821706e+00, 1.6744186046511629e+00, 1.6899224806201549e+00, 1.7054263565891472e+00, 1.7209302325581395e+00, 1.7364341085271318e+00, 1.7519379844961240e+00, 1.7674418604651163e+00, 1.7829457364341086e+00, 1.7984496124031009e+00, 1.8139534883720929e+00, 1.8294573643410852e+00, 1.8449612403100775e+00, 1.8604651162790697e+00, 1.8759689922480620e+00, 1.8914728682170543e+00, 1.9069767441860466e+00, 1.9224806201550388e+00, 1.9379844961240309e+00, 1.9534883720930232e+00, 1.9689922480620154e+00, 1.9844961240310077e+00, 2.0000000000000000e+00, 2.0000000000000000e+00, 2.0000000000000000e+00, 2.0000000000000000e+00, 2.0000000000000000e+00, 2.0000000000000000e+00, 2.0000000000000000e+00, 2.0000000000000000e+00, 2.0000000000000000e+00, 2.0000000000000000e+00, 2.0000000000000000e+00, 2.0000000000000000e+00, 2.0000000000000000e+00, 2.0000000000000000e+00, 2.0000000000000000e+00, 2.0000000000000000e+00, 2.0000000000000000e+00, 2.0000000000000000e+00, 2.0000000000000000e+00, 2.0000000000000000e+00, 2.0000000000000000e+00, 2.0000000000000000e+00, 2.0000000000000000e+00, 2.0000000000000000e+00, 2.0000000000000000e+00, 2.0000000000000000e+00, 2.0000000000000000e+00, 2.0000000000000000e+00, 2.0000000000000000e+00, 2.0000000000000000e+00, 2.0000000000000000e+00, 2.0000000000000000e+00, 2.0000000000000000e+00, 2.0000000000000000e+00, 2.0000000000000000e+00, 2.0000000000000000e+00, 2.0000000000000000e+00, 2.0000000000000000e+00, 2.0000000000000000e+00, 2.0000000000000000e+00, 2.0000000000000000e+00, 2.0000000000000000e+00, 2.0000000000000000e+00, 2.0000000000000000e+00, 2.0000000000000000e+00, 2.0000000000000000e+00, 2.0000000000000000e+00, 2.0000000000000000e+00, 2.0000000000000000e+00, 2.0000000000000000e+00, 2.0000000000000000e+00, 2.0000000000000000e+00, 2.0000000000000000e+00, 2.0000000000000000e+00, 2.0000000000000000e+00, 2.0000000000000000e+00, 2.0000000000000000e+00, 2.0000000000000000e+00, 2.0000000000000000e+00, 2.0000000000000000e+00, 2.0000000000000000e+00, 2.0000000000000000e+00, 2.0000000000000000e+00, 2.0000000000000000e+00, 2.0000000000000000e+00, 2.0000000000000000e+00, 2.0000000000000000e+00, 2.0000000000000000e+00, 2.0000000000000000e+00, 2.0000000000000000e+00, 2.0000000000000000e+00, 2.0000000000000000e+00, 2.0000000000000000e+00, 2.0000000000000000e+00, 2.0000000000000000e+00, 2.0000000000000000e+00, 2.0000000000000000e+00, 2.0000000000000000e+00, 2.0000000000000000e+00, 2.0000000000000000e+00, 2.0000000000000000e+00, 2.0000000000000000e+00, 2.0000000000000000e+00, 2.0000000000000000e+00, 2.0000000000000000e+00, 2.0000000000000000e+00, 2.0000000000000000e+00, 2.0000000000000000e+00, 2.0000000000000000e+00, 2.0000000000000000e+00, 2.0000000000000000e+00, 2.0000000000000000e+00, 2.0000000000000000e+00, 2.0000000000000000e+00, 2.0000000000000000e+00, 2.0000000000000000e+00, 2.0000000000000000e+00, 2.0000000000000000e+00, 2.0000000000000000e+00, 2.0000000000000000e+00, 2.0000000000000000e+00, 2.0000000000000000e+00, 2.0000000000000000e+00, 2.0000000000000000e+00, 2.0000000000000000e+00, 2.0000000000000000e+00, 2.0000000000000000e+00, 2.0000000000000000e+00, 2.0000000000000000e+00, 2.0000000000000000e+00, 2.0000000000000000e+00, 2.0000000000000000e+00, 2.0000000000000000e+00, 2.0000000000000000e+00, 2.0000000000000000e+00, 2.0000000000000000e+00, 2.0000000000000000e+00, 2.0000000000000000e+00, 2.0000000000000000e+00, 2.0000000000000000e+00, 2.0000000000000000e+00, 2.0000000000000000e+00, 2.0000000000000000e+00, 2.0000000000000000e+00, 2.0000000000000000e+00, 2.0000000000000000e+00, 2.0000000000000000e+00, 2.0000000000000000e+00, 2.0000000000000000e+00, 2.0000000000000000e+00, 2.0000000000000000e+00, 2.0000000000000000e+00, 1.9844961240310077e+00, 1.9689922480620154e+00, 1.9534883720930232e+00, 1.9379844961240309e+00, 1.9224806201550388e+00, 1.9069767441860466e+00, 1.8914728682170543e+00, 1.8759689922480620e+00, 1.8604651162790697e+00, 1.8449612403100775e+00, 1.8294573643410852e+00, 1.8139534883720931e+00, 1.7984496124031009e+00, 1.7829457364341086e+00, 1.7674418604651163e+00, 1.7519379844961240e+00, 1.7364341085271318e+00, 1.7209302325581395e+00, 1.7054263565891472e+00, 1.6899224806201549e+00, 1.6744186046511627e+00, 1.6589147286821706e+00, 1.6434108527131783e+00, 1.6279069767441861e+00, 1.6124031007751938e+00, 1.5968992248062015e+00, 1.5813953488372092e+00, 1.5658914728682172e+00, 1.5503875968992249e+00, 1.5348837209302326e+00, 1.5193798449612403e+00, 1.5038759689922481e+00, 1.4883720930232558e+00, 1.4728682170542635e+00, 1.4573643410852712e+00, 1.4418604651162790e+00, 1.4263565891472867e+00, 1.4108527131782944e+00, 1.3953488372093024e+00, 1.3798449612403101e+00, 1.3643410852713178e+00, 1.3488372093023255e+00, 1.3333333333333335e+00, 1.3178294573643412e+00, 1.3023255813953489e+00, 1.2868217054263567e+00, 1.2713178294573644e+00, 1.2558139534883721e+00, 1.2403100775193798e+00, 1.2248062015503876e+00, 1.2093023255813953e+00, 1.1937984496124030e+00, 1.1782945736434107e+00, 1.1627906976744184e+00, 1.1472868217054264e+00, 1.1317829457364341e+00, 1.1162790697674418e+00, 1.1007751937984496e+00, 1.0852713178294575e+00, 1.0697674418604652e+00, 1.0542635658914730e+00, 1.0387596899224807e+00, 1.0232558139534884e+00, 1.0077519379844961e+00, 9.9224806201550386e-01, 9.7674418604651159e-01, 9.6124031007751931e-01, 9.4573643410852704e-01, 9.3023255813953498e-01, 9.1472868217054271e-01, 8.9922480620155043e-01, 8.8372093023255816e-01, 8.6821705426356588e-01, 8.5271317829457360e-01, 8.3720930232558133e-01, 8.2170542635658905e-01, 8.0620155038759700e-01, 7.9069767441860472e-01, 7.7519379844961245e-01, 7.5968992248062017e-01, 7.4418604651162790e-01, 7.2868217054263562e-01, 7.1317829457364335e-01, 6.9767441860465107e-01, 6.8217054263565902e-01, 6.6666666666666674e-01, 6.5116279069767447e-01, 6.3565891472868219e-01, 6.2015503875968991e-01, 6.0465116279069764e-01, 5.8914728682170536e-01, 5.7364341085271309e-01, 5.5813953488372103e-01, 5.4263565891472876e-01, 5.2713178294573648e-01, 5.1162790697674421e-01, 4.9612403100775193e-01, 4.8062015503875966e-01, 4.6511627906976738e-01, 4.4961240310077510e-01, 4.3410852713178305e-01, 4.1860465116279078e-01, 4.0310077519379850e-01, 3.8759689922480622e-01, 3.7209302325581395e-01, 3.5658914728682167e-01, 3.4108527131782940e-01, 3.2558139534883712e-01, 3.1007751937984507e-01, 2.9457364341085279e-01, 2.7906976744186052e-01, 2.6356589147286824e-01, 2.4806201550387597e-01, 2.3255813953488369e-01, 2.1705426356589141e-01, 2.0155038759689914e-01, 1.8604651162790709e-01, 1.7054263565891481e-01, 1.5503875968992253e-01, 1.3953488372093026e-01, 1.2403100775193798e-01, 1.0852713178294571e-01, 9.3023255813953432e-02, 7.7519379844961156e-02, 6.2015503875969102e-02, 4.6511627906976827e-02, 3.1007751937984551e-02, 1.5503875968992276e-02, 0.0000000000000000e+00, 0.0000000000000000e+00, 0.0000000000000000e+00, 0.0000000000000000e+00, 0.0000000000000000e+00, 0.0000000000000000e+00, 0.0000000000000000e+00, 0.0000000000000000e+00, 0.0000000000000000e+00, 0.0000000000000000e+00, 0.0000000000000000e+00, 0.0000000000000000e+00, 0.0000000000000000e+00, 0.0000000000000000e+00, 0.0000000000000000e+00, 0.0000000000000000e+00, 0.0000000000000000e+00, 0.0000000000000000e+00, 0.0000000000000000e+00, 0.0000000000000000e+00, 0.0000000000000000e+00, 0.0000000000000000e+00, 0.0000000000000000e+00, 0.0000000000000000e+00, 0.0000000000000000e+00, 0.0000000000000000e+00, 0.0000000000000000e+00, 0.0000000000000000e+00, 0.0000000000000000e+00, 0.0000000000000000e+00, 0.0000000000000000e+00, 0.0000000000000000e+00, 0.0000000000000000e+00, 0.0000000000000000e+00, 0.0000000000000000e+00, 0.0000000000000000e+00, 0.0000000000000000e+00, 0.0000000000000000e+00, 0.0000000000000000e+00, 0.0000000000000000e+00, 0.0000000000000000e+00, 0.0000000000000000e+00, 0.0000000000000000e+00, 0.0000000000000000e+00, 0.0000000000000000e+00, 0.0000000000000000e+00, 0.0000000000000000e+00, 0.0000000000000000e+00, 0.0000000000000000e+00, 0.0000000000000000e+00, 0.0000000000000000e+00, 0.0000000000000000e+00, 0.0000000000000000e+00, 0.0000000000000000e+00, 0.0000000000000000e+00, 0.0000000000000000e+00, 0.0000000000000000e+00, 0.0000000000000000e+00, 0.0000000000000000e+00, 0.0000000000000000e+00, 0.0000000000000000e+00, 0.0000000000000000e+00, 0.0000000000000000e+00, 0.0000000000000000e+00, 0.0000000000000000e+00, 0.0000000000000000e+00, 0.0000000000000000e+00, 0.0000000000000000e+00, 0.0000000000000000e+00, 0.0000000000000000e+00, 0.0000000000000000e+00, 0.0000000000000000e+00, 0.0000000000000000e+00, 0.0000000000000000e+00, 0.0000000000000000e+00, 0.0000000000000000e+00, 0.0000000000000000e+00, 0.0000000000000000e+00, 0.0000000000000000e+00, 0.0000000000000000e+00, 0.0000000000000000e+00, 0.0000000000000000e+00, 0.0000000000000000e+00, 0.0000000000000000e+00, 0.0000000000000000e+00, 0.0000000000000000e+00, 0.0000000000000000e+00, 0.0000000000000000e+00, 0.0000000000000000e+00, 0.0000000000000000e+00, 0.0000000000000000e+00, 0.0000000000000000e+00, 0.0000000000000000e+00, 0.0000000000000000e+00, 0.0000000000000000e+00, 0.0000000000000000e+00, 0.0000000000000000e+00, 0.0000000000000000e+00, 0.0000000000000000e+00, 0.0000000000000000e+00, 0.0000000000000000e+00, 0.0000000000000000e+00, 0.0000000000000000e+00, 0.0000000000000000e+00, 0.0000000000000000e+00, 0.0000000000000000e+00, 0.0000000000000000e+00, 0.0000000000000000e+00, 0.0000000000000000e+00, 0.0000000000000000e+00, 0.0000000000000000e+00, 0.0000000000000000e+00, 0.0000000000000000e+00, 0.0000000000000000e+00, 0.0000000000000000e+00, 0.0000000000000000e+00, 0.0000000000000000e+00, 0.0000000000000000e+00, 0.0000000000000000e+00, 0.0000000000000000e+00, 0.0000000000000000e+00, 0.0000000000000000e+00, 0.0000000000000000e+00, 0.0000000000000000e+00, 0.0000000000000000e+00, 0.0000000000000000e+00, 0.0000000000000000e+00, 0.0000000000000000e+00, 0.0000000000000000e+00, 0.0000000000000000e+00, 0.0000000000000000e+00};
float pathX_circle[520]={ 3.0616169978683830e-17, 6.0530171750010006e-03, 1.2105147211102205e-02, 1.8155503099423900e-02, 2.4203198091108429e-02, 3.0247345827282533e-02, 3.6287060468964266e-02, 4.2321456826891937e-02, 4.8349650491259617e-02, 5.4370757961336606e-02, 6.0383896774955495e-02, 6.6388185637846153e-02, 7.2382744552800415e-02, 7.8366694948644830e-02, 8.4339159809006164e-02, 9.0299263800847407e-02, 9.6246133402758588e-02, 1.0217889703298055e-01, 1.0809668517714605e-01, 1.1399863051571615e-01, 1.1988386805109678e-01, 1.2575153523441304e-01, 1.3160077209192644e-01, 1.3743072135107351e-01, 1.4324052856610872e-01, 1.4902934224333350e-01, 1.5479631396589261e-01, 1.6054059851811900e-01, 1.6626135400940978e-01, 1.7195774199761504e-01, 1.7762892761192137e-01, 1.8327407967521150e-01, 1.8889237082588256e-01, 1.9448297763910599e-01, 2.0004508074750918e-01, 2.0557786496126387e-01, 2.1108051938756073e-01, 2.1655223754945582e-01, 2.2199221750406822e-01, 2.2739966196011452e-01, 2.3277377839476082e-01, 2.3811377916977572e-01, 2.4341888164696801e-01, 2.4868830830289129e-01, 2.5392128684279891e-01, 2.5911705031383220e-01, 2.6427483721742656e-01, 2.6939389162091798e-01, 2.7447346326833322e-01, 2.7951280769034831e-01, 2.8451118631339961e-01, 2.8946786656792967e-01, 2.9438212199575386e-01, 2.9925323235653134e-01, 3.0408048373332408e-01, 3.0886316863723007e-01, 3.1360058611107344e-01, 3.1829204183213794e-01, 3.2293684821392810e-01, 3.2753432450694242e-01, 3.3208379689844553e-01, 3.3658459861122259e-01, 3.4103607000130365e-01, 3.4543755865464171e-01, 3.4978841948273143e-01, 3.5408801481715441e-01, 3.5833571450303681e-01, 3.6253089599140542e-01, 3.6667294443042980e-01, 3.7076125275553545e-01, 3.7479522177837626e-01, 3.7877426027465250e-01, 3.8269778507076124e-01, 3.8656522112926733e-01, 3.9037600163318170e-01, 3.9412956806903471e-01, 3.9782537030873277e-01, 4.0146286669018616e-01, 4.0504152409669525e-01, 4.0856081803508548e-01, 4.1202023271257726e-01, 4.1541926111238181e-01, 4.1875740506800985e-01, 4.2203417533628385e-01, 4.2524909166904207e-01, 4.2840168288352465e-01, 4.3149148693143041e-01, 4.3451805096663587e-01, 4.3748093141156463e-01, 4.4037969402219868e-01, 4.4321391395172216e-01, 4.4598317581278729e-01, 4.4868707373839428e-01, 4.5132521144137555e-01, 4.5389720227247649e-01, 4.5640266927702294e-01, 4.5884124525016845e-01, 4.6121257279071237e-01, 4.6351630435348101e-01, 4.6575210230026443e-01, 4.6791963894930083e-01, 4.7001859662330275e-01, 4.7204866769601561e-01, 4.7400955463730432e-01, 4.7590097005675946e-01, 4.7772263674581783e-01, 4.7947428771839035e-01, 4.8115566624999201e-01, 4.8276652591536789e-01, 4.8430663062460944e-01, 4.8577575465775608e-01, 4.8717368269787742e-01, 4.8850020986262993e-01, 4.8975514173428514e-01, 4.9093829438822373e-01, 4.9204949441989165e-01, 4.9308857897021457e-01, 4.9405539574946694e-01, 4.9494980305959146e-01, 4.9577166981496695e-01, 4.9652087556162000e-01, 4.9719731049487925e-01, 4.9780087547546831e-01, 4.9833148204403588e-01, 4.9878905243412042e-01, 4.9917351958354761e-01, 4.9948482714425935e-01, 4.9972292949057190e-01, 4.9988779172586312e-01, 4.9997938968768668e-01, 4.9999770995131371e-01, 4.9994274983169990e-01, 4.9981451738387950e-01, 4.9961303140178442e-01, 4.9933832141548984e-01, 4.9899042768688634e-01, 4.9856940120377902e-01, 4.9807530367241443e-01, 4.9750820750843733e-01, 4.9686819582627673e-01, 4.9615536242696495e-01, 4.9536981178438994e-01, 4.9451165902998323e-01, 4.9358102993584635e-01, 4.9257806089631734e-01, 4.9150289890798060e-01, 4.9035570154812308e-01, 4.8913663695163906e-01, 4.8784588378638860e-01, 4.8648363122701138e-01, 4.8505007892720103e-01, 4.8354543699044378e-01, 4.8196992593922505e-01, 4.8032377668270976e-01, 4.7860723048289971e-01, 4.7682053891927395e-01, 4.7496396385191675e-01, 4.7303777738313929e-01, 4.7104226181759978e-01, 4.6897770962092866e-01, 4.6684442337686416e-01, 4.6464271574290517e-01, 4.6237290940448822e-01, 4.6003533702769361e-01, 4.5763034121048968e-01, 4.5515827443252121e-01, 4.5261949900344928e-01, 4.5001438700985114e-01, 4.4734332026068585e-01, 4.4460669023133653e-01, 4.4180489800623490e-01, 4.3893835422007782e-01, 4.3600747899764380e-01, 4.3301270189221935e-01, 4.2995446182264280e-01, 4.2683320700897576e-01, 4.2364939490681103e-01, 4.2040349214022810e-01, 4.1709597443340324e-01, 4.1372732654088690e-01, 4.1029804217655741e-01, 4.0680862394126166e-01, 4.0325958324915312e-01, 3.9965144025273808e-01, 3.9598472376664207e-01, 3.9225997119010486e-01, 3.8847772842821937e-01, 3.8463854981192253e-01, 3.8074299801675238e-01, 3.7679164398038079e-01, 3.7278506681893608e-01, 3.6872385374212790e-01, 3.6460859996718359e-01, 3.6043990863161313e-01, 3.5621839070481209e-01, 3.5194466489851739e-01, 3.4761935757612772e-01, 3.4324310266090274e-01, 3.3881654154305502e-01, 3.3434032298574640e-01, 3.2981510303000405e-01, 3.2524154489857093e-01, 3.2062031889870241e-01, 3.1595210232392507e-01, 3.1123757935477175e-01, 3.0647744095850737e-01, 3.0167238478785907e-01, 2.9682311507876763e-01, 2.9193034254717348e-01, 2.8699478428485370e-01, 2.8201716365432328e-01, 2.7699821018281806e-01, 2.7193865945537526e-01, 2.6683925300702360e-01, 2.6170073821410389e-01, 2.5652386818473200e-01, 2.5130940164842247e-01, 2.4605810284488780e-01, 2.4077074141203103e-01, 2.3544809227314525e-01, 2.3009093552334128e-01, 2.2470005631521439e-01, 2.1927624474377211e-01, 2.1382029573063635e-01, 2.0833300890753859e-01, 2.0281518849912536e-01, 1.9726764320508872e-01, 1.9169118608164293e-01, 1.8608663442236156e-01, 1.8045480963839369e-01, 1.7479653713807666e-01, 1.6911264620596342e-01, 1.6340396988128120e-01, 1.5767134483583958e-01, 1.5191561125140732e-01, 1.4613761269657377e-01, 1.4033819600311451e-01, 1.3451821114187817e-01, 1.2867851109821346e-01, 1.2281995174695527e-01, 1.1694339172698499e-01, 1.1104969231538797e-01, 1.0513971730122404e-01, 9.9214332858928098e-02, 9.3274407421363226e-02, 8.7320811552541441e-02, 8.1354417820033498e-02, 7.5376100667082752e-02, 6.9386736284446457e-02, 6.3387202481979738e-02, 5.7378378559982485e-02, 5.1361145180327659e-02, 4.5336384237390864e-02, 3.9304978728798200e-02, 3.3267812626012416e-02, 2.7225770744777458e-02, 2.1179738615438374e-02, 1.5130602353156702e-02, 9.0792485280401687e-03, 3.0265640352054807e-03, -3.0265640352054191e-03, -9.0792485280398860e-03, -1.5130602353156639e-02, -2.1179738615438311e-02, -2.7225770744777399e-02, -3.3267812626012354e-02, -3.9304978728798359e-02, -4.5336384237391024e-02, -5.1361145180327597e-02, -5.7378378559982207e-02, -6.3387202481979460e-02, -6.9386736284446179e-02, -7.5376100667082682e-02, -8.1354417820033650e-02, -8.7320811552541608e-02, -9.3274407421363170e-02, -9.9214332858928042e-02, -1.0513971730122397e-01, -1.1104969231538792e-01, -1.1694339172698494e-01, -1.2281995174695522e-01, -1.2867851109821341e-01, -1.3451821114187790e-01, -1.4033819600311445e-01, -1.4613761269657372e-01, -1.5191561125140726e-01, -1.5767134483583975e-01, -1.6340396988128136e-01, -1.6911264620596356e-01, -1.7479653713807661e-01, -1.8045480963839344e-01, -1.8608663442236129e-01, -1.9169118608164265e-01, -1.9726764320508866e-01, -2.0281518849912550e-01, -2.0833300890753875e-01, -2.1382029573063630e-01, -2.1927624474377205e-01, -2.2470005631521436e-01, -2.3009093552334123e-01, -2.3544809227314539e-01, -2.4077074141203098e-01, -2.4605810284488774e-01, -2.5130940164842225e-01, -2.5652386818473177e-01, -2.6170073821410383e-01, -2.6683925300702355e-01, -2.7193865945537538e-01, -2.7699821018281823e-01, -2.8201716365432322e-01, -2.8699478428485370e-01, -2.9193034254717343e-01, -2.9682311507876741e-01, -3.0167238478785885e-01, -3.0647744095850732e-01, -3.1123757935477186e-01, -3.1595210232392501e-01, -3.2062031889870235e-01, -3.2524154489857093e-01, -3.2981510303000405e-01, -3.3434032298574634e-01, -3.3881654154305518e-01, -3.4324310266090274e-01, -3.4761935757612750e-01, -3.5194466489851717e-01, -3.5621839070481187e-01, -3.6043990863161290e-01, -3.6460859996718353e-01, -3.6872385374212785e-01, -3.7278506681893619e-01, -3.7679164398038056e-01, -3.8074299801675249e-01, -3.8463854981192264e-01, -3.8847772842821932e-01, -3.9225997119010481e-01, -3.9598472376664201e-01, -3.9965144025273808e-01, -4.0325958324915295e-01, -4.0680862394126172e-01, -4.1029804217655724e-01, -4.1372732654088695e-01, -4.1709597443340307e-01, -4.2040349214022821e-01, -4.2364939490681103e-01, -4.2683320700897559e-01, -4.2995446182264291e-01, -4.3301270189221924e-01, -4.3600747899764386e-01, -4.3893835422007765e-01, -4.4180489800623501e-01, -4.4460669023133637e-01, -4.4734332026068585e-01, -4.5001438700985108e-01, -4.5261949900344928e-01, -4.5515827443252127e-01, -4.5763034121048957e-01, -4.6003533702769361e-01, -4.6237290940448811e-01, -4.6464271574290522e-01, -4.6684442337686410e-01, -4.6897770962092866e-01, -4.7104226181759978e-01, -4.7303777738313924e-01, -4.7496396385191680e-01, -4.7682053891927384e-01, -4.7860723048289977e-01, -4.8032377668270981e-01, -4.8196992593922505e-01, -4.8354543699044372e-01, -4.8505007892720103e-01, -4.8648363122701133e-01, -4.8784588378638855e-01, -4.8913663695163900e-01, -4.9035570154812308e-01, -4.9150289890798066e-01, -4.9257806089631734e-01, -4.9358102993584635e-01, -4.9451165902998323e-01, -4.9536981178438994e-01, -4.9615536242696495e-01, -4.9686819582627673e-01, -4.9750820750843727e-01, -4.9807530367241448e-01, -4.9856940120377896e-01, -4.9899042768688634e-01, -4.9933832141548984e-01, -4.9961303140178442e-01, -4.9981451738387950e-01, -4.9994274983169990e-01, -4.9999770995131371e-01, -4.9997938968768668e-01, -4.9988779172586312e-01, -4.9972292949057195e-01, -4.9948482714425935e-01, -4.9917351958354761e-01, -4.9878905243412042e-01, -4.9833148204403588e-01, -4.9780087547546831e-01, -4.9719731049487920e-01, -4.9652087556162000e-01, -4.9577166981496695e-01, -4.9494980305959146e-01, -4.9405539574946694e-01, -4.9308857897021463e-01, -4.9204949441989165e-01, -4.9093829438822378e-01, -4.8975514173428519e-01, -4.8850020986262987e-01, -4.8717368269787736e-01, -4.8577575465775608e-01, -4.8430663062460944e-01, -4.8276652591536795e-01, -4.8115566624999206e-01, -4.7947428771839040e-01, -4.7772263674581789e-01, -4.7590097005675941e-01, -4.7400955463730432e-01, -4.7204866769601561e-01, -4.7001859662330275e-01, -4.6791963894930089e-01, -4.6575210230026443e-01, -4.6351630435348112e-01, -4.6121257279071232e-01, -4.5884124525016856e-01, -4.5640266927702289e-01, -4.5389720227247665e-01, -4.5132521144137561e-01, -4.4868707373839428e-01, -4.4598317581278735e-01, -4.4321391395172199e-01, -4.4037969402219879e-01, -4.3748093141156452e-01, -4.3451805096663609e-01, -4.3149148693143041e-01, -4.2840168288352459e-01, -4.2524909166904212e-01, -4.2203417533628390e-01, -4.1875740506800996e-01, -4.1541926111238170e-01, -4.1202023271257743e-01, -4.0856081803508537e-01, -4.0504152409669525e-01, -4.0146286669018610e-01, -3.9782537030873277e-01, -3.9412956806903471e-01, -3.9037600163318176e-01, -3.8656522112926744e-01, -3.8269778507076141e-01, -3.7877426027465239e-01, -3.7479522177837621e-01, -3.7076125275553540e-01, -3.6667294443042980e-01, -3.6253089599140548e-01, -3.5833571450303686e-01, -3.5408801481715457e-01, -3.4978841948273126e-01, -3.4543755865464187e-01, -3.4103607000130359e-01, -3.3658459861122292e-01, -3.3208379689844553e-01, -3.2753432450694248e-01, -3.2293684821392815e-01, -3.1829204183213772e-01, -3.1360058611107355e-01, -3.0886316863722990e-01, -3.0408048373332436e-01, -2.9925323235653123e-01, -2.9438212199575420e-01, -2.8946786656792967e-01, -2.8451118631339967e-01, -2.7951280769034847e-01, -2.7447346326833300e-01, -2.6939389162091826e-01, -2.6427483721742645e-01, -2.5911705031383242e-01, -2.5392128684279885e-01, -2.4868830830289135e-01, -2.4341888164696807e-01, -2.3811377916977577e-01, -2.3277377839476096e-01, -2.2739966196011477e-01, -2.2199221750406847e-01, -2.1655223754945568e-01, -2.1108051938756067e-01, -2.0557786496126382e-01, -2.0004508074750924e-01, -1.9448297763910605e-01, -1.8889237082588273e-01, -1.8327407967521167e-01, -1.7762892761192162e-01, -1.7195774199761488e-01, -1.6626135400940961e-01, -1.6054059851811894e-01, -1.5479631396589266e-01, -1.4902934224333356e-01, -1.4324052856610878e-01, -1.3743072135107365e-01, -1.3160077209192628e-01, -1.2575153523441332e-01, -1.1988386805109663e-01, -1.1399863051571654e-01, -1.0809668517714599e-01, -1.0217889703298061e-01, -9.6246133402758657e-02, -9.0299263800847143e-02, -8.4339159809006345e-02, -7.8366694948644663e-02, -7.2382744552800693e-02, -6.6388185637846112e-02, -6.0383896774955891e-02, -5.4370757961336669e-02, -4.8349650491259673e-02, -4.2321456826892111e-02, -3.6287060468963996e-02, -3.0247345827282817e-02, -2.4203198091108265e-02, -1.8155503099424292e-02, -1.2105147211102155e-02, -6.0530171750010622e-03, -9.1848509936051484e-17};
float pathX_oval[520]={ 0.0000000000000000e+00, 2.4212068700004093e-02, 4.8420588844408675e-02, 7.2622012397695668e-02, 9.6812792364433548e-02, 1.2098938330913017e-01, 1.4514824187585690e-01, 1.6928582730756780e-01, 1.9339860196503825e-01, 2.1748303184534645e-01, 2.4153558709982176e-01, 2.6555274255138461e-01, 2.8953097821120144e-01, 3.1346677979457926e-01, 3.3735663923602444e-01, 3.6119705520338957e-01, 3.8498453361103407e-01, 4.0871558813192216e-01, 4.3238674070858391e-01, 4.5599452206286450e-01, 4.7953547220438680e-01, 5.0300614093765206e-01, 5.2640308836770588e-01, 5.4972288540429382e-01, 5.7296211426443455e-01, 5.9611736897333389e-01, 6.1918525586357043e-01, 6.4216239407247577e-01, 6.6504541603763878e-01, 6.8783096799046006e-01, 7.1051571044768547e-01, 7.3309631870084579e-01, 7.5556948330353024e-01, 7.7793191055642374e-01, 8.0018032299003672e-01, 8.2231145984505527e-01, 8.4432207755024291e-01, 8.6620895019782307e-01, 8.8796887001627278e-01, 9.0959864784045807e-01, 9.3109511357904307e-01, 9.5245511667910254e-01, 9.7367552658787193e-01, 9.9475323321156528e-01, 1.0156851473711954e+00, 1.0364682012553286e+00, 1.0570993488697062e+00, 1.0775755664836721e+00, 1.0978938530733329e+00, 1.1180512307613930e+00, 1.1380447452535984e+00, 1.1578714662717184e+00, 1.1775284879830155e+00, 1.1970129294261251e+00, 1.2163219349332961e+00, 1.2354526745489203e+00, 1.2544023444442935e+00, 1.2731681673285518e+00, 1.2917473928557124e+00, 1.3101372980277697e+00, 1.3283351875937819e+00, 1.3463383944448903e+00, 1.3641442800052146e+00, 1.3817502346185668e+00, 1.3991536779309255e+00, 1.4163520592686176e+00, 1.4333428580121472e+00, 1.4501235839656217e+00, 1.4666917777217190e+00, 1.4830450110221416e+00, 1.4991808871135051e+00, 1.5150970410986098e+00, 1.5307911402830450e+00, 1.5462608845170691e+00, 1.5615040065327268e+00, 1.5765182722761386e+00, 1.5913014812349309e+00, 1.6058514667607446e+00, 1.6201660963867810e+00, 1.6342432721403419e+00, 1.6480809308503090e+00, 1.6616770444495272e+00, 1.6750296202720394e+00, 1.6881367013451354e+00, 1.7009963666761683e+00, 1.7136067315340986e+00, 1.7259659477257216e+00, 1.7380722038665435e+00, 1.7499237256462583e+00, 1.7615187760887947e+00, 1.7728556558068884e+00, 1.7839327032511489e+00, 1.7947482949535771e+00, 1.8053008457655022e+00, 1.8155888090899059e+00, 1.8256106771080918e+00, 1.8353649810006738e+00, 1.8448502911628495e+00, 1.8540652174139240e+00, 1.8630084092010577e+00, 1.8716785557972033e+00, 1.8800743864932108e+00, 1.8881946707840624e+00, 1.8960382185492173e+00, 1.9036038802270379e+00, 1.9108905469832713e+00, 1.9178971508735614e+00, 1.9246226649999680e+00, 1.9310661036614716e+00, 1.9372265224984375e+00, 1.9431030186310243e+00, 1.9486947307915095e+00, 1.9540008394505197e+00, 1.9590205669371406e+00, 1.9637531775528949e+00, 1.9681979776795666e+00, 1.9723543158808583e+00, 1.9762215829978678e+00, 1.9797992122383659e+00, 1.9830866792598678e+00, 1.9860835022464800e+00, 1.9887892419795170e+00, 1.9912035019018732e+00, 1.9933259281761435e+00, 1.9951562097364817e+00, 1.9966940783341904e+00, 1.9979393085770374e+00, 1.9988917179622876e+00, 1.9995511669034525e+00, 1.9999175587507467e+00, 1.9999908398052548e+00, 1.9997709993267996e+00, 1.9992580695355180e+00, 1.9984521256071377e+00, 1.9973532856619594e+00, 1.9959617107475456e+00, 1.9942776048151161e+00, 1.9923012146896577e+00, 1.9900328300337493e+00, 1.9874727833051069e+00, 1.9846214497078598e+00, 1.9814792471375597e+00, 1.9780466361199329e+00, 1.9743241197433854e+00, 1.9703122435852694e+00, 1.9660115956319226e+00, 1.9614228061924923e+00, 1.9565465478065562e+00, 1.9513835351455544e+00, 1.9459345249080455e+00, 1.9402003157088041e+00, 1.9341817479617751e+00, 1.9278797037569002e+00, 1.9212951067308393e+00, 1.9144289219315989e+00, 1.9072821556770958e+00, 1.8998558554076670e+00, 1.8921511095325572e+00, 1.8841690472703991e+00, 1.8759108384837146e+00, 1.8673776935074566e+00, 1.8585708629716207e+00, 1.8494916376179529e+00, 1.8401413481107745e+00, 1.8305213648419587e+00, 1.8206330977300849e+00, 1.8104779960137973e+00, 1.8000575480394045e+00, 1.7893732810427436e+00, 1.7784267609253461e+00, 1.7672195920249398e+00, 1.7557534168803113e+00, 1.7440299159905752e+00, 1.7320508075688774e+00, 1.7198178472905714e+00, 1.7073328280359030e+00, 1.6945975796272443e+00, 1.6816139685609124e+00, 1.6683838977336132e+00, 1.6549093061635476e+00, 1.6411921687062296e+00, 1.6272344957650466e+00, 1.6130383329966125e+00, 1.5986057610109525e+00, 1.5839388950665683e+00, 1.5690398847604194e+00, 1.5539109137128775e+00, 1.5385541992476901e+00, 1.5229719920670097e+00, 1.5071665759215231e+00, 1.4911402672757443e+00, 1.4748954149685116e+00, 1.4584343998687344e+00, 1.4417596345264525e+00, 1.4248735628192484e+00, 1.4077786595940696e+00, 1.3904774303045109e+00, 1.3729724106436112e+00, 1.3552661661722203e+00, 1.3373612919429856e+00, 1.3192604121200164e+00, 1.3009661795942840e+00, 1.2824812755948096e+00, 1.2638084092957003e+00, 1.2449503174190870e+00, 1.2259097638340295e+00, 1.2066895391514363e+00, 1.1872924603150705e+00, 1.1677213701886939e+00, 1.1479791371394150e+00, 1.1280686546172931e+00, 1.1079928407312725e+00, 1.0877546378215011e+00, 1.0673570120280946e+00, 1.0468029528564156e+00, 1.0260954727389282e+00, 1.0052376065936901e+00, 9.8423241137955131e-01, 9.6308296564812423e-01, 9.4179236909258113e-01, 9.2036374209336524e-01, 8.9880022526085779e-01, 8.7710497897508855e-01, 8.5528118292254551e-01, 8.3333203563015446e-01, 8.1126075399650155e-01, 7.8907057282035498e-01, 7.6676474432657182e-01, 7.4434653768944636e-01, 7.2181923855357488e-01, 6.9918614855230676e-01, 6.7645058482385378e-01, 6.5361587952512490e-01, 6.3068537934335844e-01, 6.0766244500562938e-01, 5.8455045078629531e-01, 5.6135278401245814e-01, 5.3807284456751281e-01, 5.1471404439285395e-01, 4.9127980698782120e-01, 4.6777356690794014e-01, 4.4419876926155200e-01, 4.2055886920489627e-01, 3.9685733143571250e-01, 3.7309762968545301e-01, 3.4928324621016588e-01, 3.2541767128013410e-01, 3.0150440266833112e-01, 2.7754694513778594e-01, 2.5354880992791906e-01, 2.2951351423993008e-01, 2.0544458072131078e-01, 1.8134553694956357e-01, 1.5721991491519291e-01, 1.3307125050404978e-01, 1.0890308297910996e-01, 8.4718954461753621e-02, 6.0522409412626925e-02, 3.6316994112160800e-02, 1.2106256140822044e-02, -1.2106256140821555e-02, -3.6316994112159419e-02, -6.0522409412626439e-02, -8.4718954461753135e-02, -1.0890308297910947e-01, -1.3307125050404928e-01, -1.5721991491519330e-01, -1.8134553694956398e-01, -2.0544458072131028e-01, -2.2951351423992869e-01, -2.5354880992791773e-01, -2.7754694513778461e-01, -3.0150440266833062e-01, -3.2541767128013449e-01, -3.4928324621016632e-01, -3.7309762968545257e-01, -3.9685733143571200e-01, -4.2055886920489577e-01, -4.4419876926155155e-01, -4.6777356690793964e-01, -4.9127980698782076e-01, -5.1471404439285351e-01, -5.3807284456751148e-01, -5.6135278401245770e-01, -5.8455045078629475e-01, -6.0766244500562894e-01, -6.3068537934335889e-01, -6.5361587952512534e-01, -6.7645058482385412e-01, -6.9918614855230621e-01, -7.2181923855357366e-01, -7.4434653768944503e-01, -7.6676474432657049e-01, -7.8907057282035442e-01, -8.1126075399650188e-01, -8.3333203563015490e-01, -8.5528118292254507e-01, -8.7710497897508810e-01, -8.9880022526085734e-01, -9.2036374209336480e-01, -9.4179236909258146e-01, -9.6308296564812379e-01, -9.8423241137955086e-01, -1.0052376065936888e+00, -1.0260954727389269e+00, -1.0468029528564153e+00, -1.0673570120280942e+00, -1.0877546378215015e+00, -1.1079928407312727e+00, -1.1280686546172927e+00, -1.1479791371394146e+00, -1.1677213701886935e+00, -1.1872924603150694e+00, -1.2066895391514352e+00, -1.2259097638340293e+00, -1.2449503174190872e+00, -1.2638084092957000e+00, -1.2824812755948092e+00, -1.3009661795942835e+00, -1.3192604121200160e+00, -1.3373612919429851e+00, -1.3552661661722205e+00, -1.3729724106436108e+00, -1.3904774303045100e+00, -1.4077786595940687e+00, -1.4248735628192475e+00, -1.4417596345264514e+00, -1.4584343998687341e+00, -1.4748954149685114e+00, -1.4911402672757448e+00, -1.5071665759215223e+00, -1.5229719920670099e+00, -1.5385541992476905e+00, -1.5539109137128773e+00, -1.5690398847604192e+00, -1.5839388950665680e+00, -1.5986057610109521e+00, -1.6130383329966116e+00, -1.6272344957650469e+00, -1.6411921687062287e+00, -1.6549093061635478e+00, -1.6683838977336123e+00, -1.6816139685609126e+00, -1.6945975796272441e+00, -1.7073328280359024e+00, -1.7198178472905716e+00, -1.7320508075688770e+00, -1.7440299159905754e+00, -1.7557534168803106e+00, -1.7672195920249398e+00, -1.7784267609253455e+00, -1.7893732810427434e+00, -1.8000575480394043e+00, -1.8104779960137971e+00, -1.8206330977300851e+00, -1.8305213648419580e+00, -1.8401413481107745e+00, -1.8494916376179522e+00, -1.8585708629716207e+00, -1.8673776935074564e+00, -1.8759108384837146e+00, -1.8841690472703991e+00, -1.8921511095325567e+00, -1.8998558554076672e+00, -1.9072821556770954e+00, -1.9144289219315991e+00, -1.9212951067308393e+00, -1.9278797037569002e+00, -1.9341817479617749e+00, -1.9402003157088041e+00, -1.9459345249080453e+00, -1.9513835351455542e+00, -1.9565465478065560e+00, -1.9614228061924923e+00, -1.9660115956319224e+00, -1.9703122435852694e+00, -1.9743241197433854e+00, -1.9780466361199329e+00, -1.9814792471375595e+00, -1.9846214497078598e+00, -1.9874727833051069e+00, -1.9900328300337491e+00, -1.9923012146896579e+00, -1.9942776048151158e+00, -1.9959617107475454e+00, -1.9973532856619594e+00, -1.9984521256071377e+00, -1.9992580695355180e+00, -1.9997709993267996e+00, -1.9999908398052548e+00, -1.9999175587507467e+00, -1.9995511669034525e+00, -1.9988917179622878e+00, -1.9979393085770374e+00, -1.9966940783341904e+00, -1.9951562097364817e+00, -1.9933259281761435e+00, -1.9912035019018732e+00, -1.9887892419795168e+00, -1.9860835022464802e+00, -1.9830866792598678e+00, -1.9797992122383661e+00, -1.9762215829978678e+00, -1.9723543158808585e+00, -1.9681979776795666e+00, -1.9637531775528951e+00, -1.9590205669371408e+00, -1.9540008394505195e+00, -1.9486947307915095e+00, -1.9431030186310243e+00, -1.9372265224984377e+00, -1.9310661036614718e+00, -1.9246226649999683e+00, -1.9178971508735616e+00, -1.9108905469832715e+00, -1.9036038802270379e+00, -1.8960382185492173e+00, -1.8881946707840624e+00, -1.8800743864932110e+00, -1.8716785557972035e+00, -1.8630084092010579e+00, -1.8540652174139245e+00, -1.8448502911628493e+00, -1.8353649810006742e+00, -1.8256106771080916e+00, -1.8155888090899066e+00, -1.8053008457655024e+00, -1.7947482949535773e+00, -1.7839327032511494e+00, -1.7728556558068882e+00, -1.7615187760887951e+00, -1.7499237256462581e+00, -1.7380722038665444e+00, -1.7259659477257216e+00, -1.7136067315340986e+00, -1.7009963666761685e+00, -1.6881367013451356e+00, -1.6750296202720398e+00, -1.6616770444495268e+00, -1.6480809308503099e+00, -1.6342432721403417e+00, -1.6201660963867810e+00, -1.6058514667607446e+00, -1.5913014812349313e+00, -1.5765182722761391e+00, -1.5615040065327270e+00, -1.5462608845170700e+00, -1.5307911402830456e+00, -1.5150970410986098e+00, -1.4991808871135048e+00, -1.4830450110221416e+00, -1.4666917777217192e+00, -1.4501235839656219e+00, -1.4333428580121477e+00, -1.4163520592686183e+00, -1.3991536779309250e+00, -1.3817502346185677e+00, -1.3641442800052144e+00, -1.3463383944448917e+00, -1.3283351875937821e+00, -1.3101372980277701e+00, -1.2917473928557128e+00, -1.2731681673285511e+00, -1.2544023444442944e+00, -1.2354526745489198e+00, -1.2163219349332974e+00, -1.1970129294261251e+00, -1.1775284879830168e+00, -1.1578714662717187e+00, -1.1380447452535989e+00, -1.1180512307613939e+00, -1.0978938530733322e+00, -1.0775755664836730e+00, -1.0570993488697058e+00, -1.0364682012553299e+00, -1.0156851473711954e+00, -9.9475323321156550e-01, -9.7367552658787238e-01, -9.5245511667910321e-01, -9.3109511357904395e-01, -9.0959864784045918e-01, -8.8796887001627400e-01, -8.6620895019782285e-01, -8.4432207755024280e-01, -8.2231145984505538e-01, -8.0018032299003705e-01, -7.7793191055642430e-01, -7.5556948330353102e-01, -7.3309631870084679e-01, -7.1051571044768669e-01, -6.8783096799045962e-01, -6.6504541603763856e-01, -6.4216239407247588e-01, -6.1918525586357076e-01, -5.9611736897333434e-01, -5.7296211426443522e-01, -5.4972288540429481e-01, -5.2640308836770522e-01, -5.0300614093765339e-01, -4.7953547220438664e-01, -4.5599452206286628e-01, -4.3238674070858407e-01, -4.0871558813192255e-01, -3.8498453361103474e-01, -3.6119705520338868e-01, -3.3735663923602549e-01, -3.1346677979457876e-01, -2.8953097821120294e-01, -2.6555274255138456e-01, -2.4153558709982367e-01, -2.1748303184534681e-01, -1.9339860196503883e-01, -1.6928582730756855e-01, -1.4514824187585609e-01, -1.2098938330913138e-01, -9.6812792364433187e-02, -7.2622012397697291e-02, -4.8420588844408745e-02, -2.4212068700004370e-02, -4.8985871965894128e-16};
float pathX_7[520]={ 0.0000000000000000e+00, 4.8469160734881528e-03, 9.6938321469763056e-03, 1.4540748220464460e-02, 1.9387664293952611e-02, 2.4234580367440764e-02, 2.9081496440928920e-02, 3.3928412514417070e-02, 3.8775328587905222e-02, 4.3622244661393375e-02, 4.8469160734881528e-02, 5.3316076808369681e-02, 5.8162992881857840e-02, 6.3009908955345986e-02, 6.7856825028834139e-02, 7.2703741102322292e-02, 7.7550657175810445e-02, 8.2397573249298611e-02, 8.7244489322786750e-02, 9.2091405396274917e-02, 9.6938321469763056e-02, 1.0178523754325122e-01, 1.0663215361673936e-01, 1.1147906969022753e-01, 1.1632598576371568e-01, 1.2117290183720382e-01, 1.2601981791069197e-01, 1.3086673398418014e-01, 1.3571365005766828e-01, 1.4056056613115644e-01, 1.4540748220464458e-01, 1.5025439827813275e-01, 1.5510131435162089e-01, 1.5994823042510906e-01, 1.6479514649859722e-01, 1.6964206257208536e-01, 1.7448897864557350e-01, 1.7933589471906167e-01, 1.8418281079254983e-01, 1.8902972686603797e-01, 1.9387664293952611e-01, 1.9872355901301428e-01, 2.0357047508650244e-01, 2.0841739115999058e-01, 2.1326430723347872e-01, 2.1811122330696689e-01, 2.2295813938045506e-01, 2.2780505545394319e-01, 2.3265197152743136e-01, 2.3749888760091950e-01, 2.4234580367440764e-01, 2.4719271974789578e-01, 2.5203963582138394e-01, 2.5688655189487208e-01, 2.6173346796836028e-01, 2.6658038404184842e-01, 2.7142730011533656e-01, 2.7627421618882475e-01, 2.8112113226231289e-01, 2.8596804833580108e-01, 2.9081496440928917e-01, 2.9566188048277731e-01, 3.0050879655626550e-01, 3.0535571262975364e-01, 3.1020262870324178e-01, 3.1504954477672997e-01, 3.1989646085021811e-01, 3.2474337692370625e-01, 3.2959029299719445e-01, 3.3443720907068253e-01, 3.3928412514417072e-01, 3.4413104121765886e-01, 3.4897795729114700e-01, 3.5382487336463520e-01, 3.5867178943812333e-01, 3.6351870551161147e-01, 3.6836562158509967e-01, 3.7321253765858781e-01, 3.7805945373207595e-01, 3.8290636980556408e-01, 3.8775328587905222e-01, 3.9260020195254042e-01, 3.9744711802602856e-01, 4.0229403409951670e-01, 4.0714095017300489e-01, 4.1198786624649303e-01, 4.1683478231998117e-01, 4.2168169839346931e-01, 4.2652861446695745e-01, 4.3137553054044564e-01, 4.3622244661393378e-01, 4.4106936268742192e-01, 4.4591627876091011e-01, 4.5076319483439825e-01, 4.5561011090788639e-01, 4.6045702698137458e-01, 4.6530394305486272e-01, 4.7015085912835081e-01, 4.7499777520183900e-01, 4.7984469127532714e-01, 4.8469160734881528e-01, 4.8953852342230342e-01, 4.9438543949579156e-01, 4.9923235556927970e-01, 5.0407927164276789e-01, 5.0892618771625608e-01, 5.1377310378974417e-01, 5.1862001986323236e-01, 5.2346693593672056e-01, 5.2831385201020864e-01, 5.3316076808369683e-01, 5.3800768415718503e-01, 5.4285460023067311e-01, 5.4770151630416131e-01, 5.5254843237764950e-01, 5.5739534845113770e-01, 5.6224226452462578e-01, 5.6708918059811397e-01, 5.7193609667160217e-01, 5.7678301274509014e-01, 5.8162992881857833e-01, 5.8647684489206653e-01, 5.9132376096555461e-01, 5.9617067703904281e-01, 6.0101759311253100e-01, 6.0586450918601908e-01, 6.1071142525950728e-01, 6.1555834133299547e-01, 6.2040525740648356e-01, 6.2525217347997175e-01, 6.3009908955345995e-01, 6.3494600562694803e-01, 6.3979292170043622e-01, 6.4463983777392442e-01, 6.4948675384741250e-01, 6.5433366992090070e-01, 6.5918058599438889e-01, 6.6402750206787708e-01, 6.6887441814136506e-01, 6.7372133421485325e-01, 6.7856825028834145e-01, 6.8341516636182953e-01, 6.8826208243531772e-01, 6.9310899850880592e-01, 6.9795591458229400e-01, 7.0280283065578220e-01, 7.0764974672927039e-01, 7.1249666280275847e-01, 7.1734357887624667e-01, 7.2219049494973486e-01, 7.2703741102322295e-01, 7.3188432709671114e-01, 7.3673124317019933e-01, 7.4157815924368742e-01, 7.4642507531717561e-01, 7.5127199139066381e-01, 7.5611890746415189e-01, 7.6096582353763997e-01, 7.6581273961112817e-01, 7.7065965568461636e-01, 7.7550657175810445e-01, 7.8035348783159264e-01, 7.8520040390508083e-01, 7.9004731997856892e-01, 7.9489423605205711e-01, 7.9974115212554531e-01, 8.0458806819903339e-01, 8.0943498427252158e-01, 8.1428190034600978e-01, 8.1912881641949786e-01, 8.2397573249298606e-01, 8.2882264856647425e-01, 8.3366956463996233e-01, 8.3851648071345053e-01, 8.4336339678693861e-01, 8.4821031286042670e-01, 8.5305722893391489e-01, 8.5790414500740309e-01, 8.6275106108089128e-01, 8.6759797715437936e-01, 8.7244489322786756e-01, 8.7729180930135575e-01, 8.8213872537484384e-01, 8.8698564144833203e-01, 8.9183255752182022e-01, 8.9667947359530831e-01, 8.9943311310852581e-01, 8.9763301366976145e-01, 8.9583291423099709e-01, 8.9403281479223273e-01, 8.9223271535346838e-01, 8.9043261591470413e-01, 8.8863251647593977e-01, 8.8683241703717541e-01, 8.8503231759841106e-01, 8.8323221815964670e-01, 8.8143211872088234e-01, 8.7963201928211798e-01, 8.7783191984335374e-01, 8.7603182040458938e-01, 8.7423172096582502e-01, 8.7243162152706066e-01, 8.7063152208829631e-01, 8.6883142264953195e-01, 8.6703132321076770e-01, 8.6523122377200334e-01, 8.6343112433323899e-01, 8.6163102489447463e-01, 8.5983092545571027e-01, 8.5803082601694602e-01, 8.5623072657818156e-01, 8.5443062713941731e-01, 8.5263052770065295e-01, 8.5083042826188859e-01, 8.4903032882312424e-01, 8.4723022938435988e-01, 8.4543012994559552e-01, 8.4363003050683116e-01, 8.4182993106806692e-01, 8.4002983162930245e-01, 8.3822973219053820e-01, 8.3642963275177384e-01, 8.3462953331300949e-01, 8.3282943387424513e-01, 8.3102933443548088e-01, 8.2922923499671641e-01, 8.2742913555795217e-01, 8.2562903611918781e-01, 8.2382893668042345e-01, 8.2202883724165909e-01, 8.2022873780289474e-01, 8.1842863836413038e-01, 8.1662853892536602e-01, 8.1482843948660166e-01, 8.1302834004783731e-01, 8.1122824060907306e-01, 8.0942814117030859e-01, 8.0762804173154434e-01, 8.0582794229278010e-01, 8.0402784285401574e-01, 8.0222774341525138e-01, 8.0042764397648702e-01, 7.9862754453772267e-01, 7.9682744509895831e-01, 7.9502734566019406e-01, 7.9322724622142959e-01, 7.9142714678266535e-01, 7.8962704734390099e-01, 7.8782694790513663e-01, 7.8602684846637227e-01, 7.8422674902760792e-01, 7.8242664958884356e-01, 7.8062655015007920e-01, 7.7882645071131495e-01, 7.7702635127255049e-01, 7.7522625183378624e-01, 7.7342615239502188e-01, 7.7162605295625752e-01, 7.6982595351749317e-01, 7.6802585407872881e-01, 7.6622575463996445e-01, 7.6442565520120009e-01, 7.6262555576243585e-01, 7.6082545632367138e-01, 7.5902535688490713e-01, 7.5722525744614277e-01, 7.5542515800737842e-01, 7.5362505856861406e-01, 7.5182495912984981e-01, 7.5002485969108534e-01, 7.4822476025232110e-01, 7.4642466081355663e-01, 7.4462456137479238e-01, 7.4282446193602802e-01, 7.4102436249726367e-01, 7.3922426305849942e-01, 7.3742416361973506e-01, 7.3562406418097070e-01, 7.3382396474220635e-01, 7.3202386530344210e-01, 7.3022376586467763e-01, 7.2842366642591339e-01, 7.2662356698714903e-01, 7.2482346754838467e-01, 7.2302336810962031e-01, 7.2122326867085595e-01, 7.1942316923209160e-01, 7.1762306979332724e-01, 7.1582297035456299e-01, 7.1402287091579852e-01, 7.1222277147703428e-01, 7.1042267203826992e-01, 7.0862257259950556e-01, 7.0682247316074120e-01, 7.0502237372197696e-01, 7.0322227428321249e-01, 7.0142217484444824e-01, 6.9962207540568389e-01, 6.9782197596691953e-01, 6.9602187652815517e-01, 6.9422177708939081e-01, 6.9242167765062645e-01, 6.9062157821186210e-01, 6.8882147877309774e-01, 6.8702137933433338e-01, 6.8522127989556902e-01, 6.8342118045680478e-01, 6.8162108101804031e-01, 6.7982098157927606e-01, 6.7802088214051182e-01, 6.7622078270174735e-01, 6.7442068326298310e-01, 6.7262058382421874e-01, 6.7082048438545439e-01, 6.6902038494669014e-01, 6.6722028550792567e-01, 6.6542018606916142e-01, 6.6362008663039707e-01, 6.6181998719163271e-01, 6.6001988775286835e-01, 6.5821978831410399e-01, 6.5641968887533964e-01, 6.5461958943657528e-01, 6.5281948999781103e-01, 6.5101939055904656e-01, 6.4921929112028232e-01, 6.4741919168151796e-01, 6.4561909224275360e-01, 6.4381899280398924e-01, 6.4201889336522489e-01, 6.4021879392646053e-01, 6.3841869448769617e-01, 6.3661859504893181e-01, 6.3481849561016745e-01, 6.3301839617140310e-01, 6.3121829673263896e-01, 6.2941819729387449e-01, 6.2761809785511025e-01, 6.2581799841634589e-01, 6.2401789897758153e-01, 6.2221779953881717e-01, 6.2041770010005282e-01, 6.1861760066128846e-01, 6.1681750122252410e-01, 6.1501740178375974e-01, 6.1321730234499539e-01, 6.1141720290623103e-01, 6.0961710346746678e-01, 6.0781700402870242e-01, 6.0601690458993818e-01, 6.0421680515117382e-01, 6.0241670571240946e-01, 6.0061660627364510e-01, 5.9881650683488075e-01, 5.9701640739611639e-01, 5.9521630795735203e-01, 5.9341620851858767e-01, 5.9161610907982332e-01, 5.8981600964105896e-01, 5.8801591020229460e-01, 5.8621581076353024e-01, 5.8441571132476600e-01, 5.8261561188600153e-01, 5.8081551244723728e-01, 5.7901541300847303e-01, 5.7721531356970857e-01, 5.7541521413094432e-01, 5.7361511469217996e-01, 5.7181501525341560e-01, 5.7001491581465125e-01, 5.6821481637588689e-01, 5.6641471693712253e-01, 5.6461461749835817e-01, 5.6281451805959382e-01, 5.6101441862082946e-01, 5.5921431918206521e-01, 5.5741421974330085e-01, 5.5561412030453650e-01, 5.5381402086577214e-01, 5.5201392142700789e-01, 5.5021382198824342e-01, 5.4841372254947918e-01, 5.4661362311071482e-01, 5.4481352367195046e-01, 5.4301342423318610e-01, 5.4121332479442175e-01, 5.3941322535565739e-01, 5.3761312591689303e-01, 5.3581302647812890e-01, 5.3401292703936432e-01, 5.3221282760060018e-01, 5.3041272816183582e-01, 5.2861262872307146e-01, 5.2681252928430711e-01, 5.2501242984554253e-01, 5.2321233040677839e-01, 5.2141223096801403e-01, 5.1961213152924968e-01, 5.1781203209048532e-01, 5.1601193265172096e-01, 5.1421183321295660e-01, 5.1241173377419236e-01, 5.1061163433542789e-01, 5.0881153489666353e-01, 5.0701143545789928e-01, 5.0521133601913493e-01, 5.0341123658037046e-01, 5.0161113714160632e-01, 4.9981103770284208e-01, 4.9801093826407766e-01, 4.9621083882531331e-01, 4.9441073938654900e-01, 4.9261063994778465e-01, 4.9081054050902023e-01, 4.8901044107025587e-01, 4.8721034163149157e-01, 4.8541024219272721e-01, 4.8361014275396275e-01, 4.8181004331519856e-01, 4.8000994387643420e-01, 4.7820984443766978e-01, 4.7640974499890554e-01, 4.7460964556014112e-01, 4.7280954612137677e-01, 4.7100944668261246e-01, 4.6920934724384811e-01, 4.6740924780508369e-01, 4.6560914836631945e-01, 4.6380904892755509e-01, 4.6200894948879068e-01, 4.6020885005002643e-01, 4.5840875061126202e-01, 4.5660865117249766e-01, 4.5480855173373336e-01, 4.5300845229496900e-01, 4.5120835285620459e-01, 4.4940825341744040e-01, 4.4760815397867593e-01, 4.4580805453991157e-01, 4.4400795510114738e-01, 4.4220785566238296e-01, 4.4040775622361861e-01, 4.3860765678485431e-01, 4.3680755734608995e-01, 4.3500745790732553e-01, 4.3320735846856129e-01, 4.3140725902979687e-01, 4.2960715959103252e-01, 4.2780706015226827e-01, 4.2600696071350386e-01, 4.2420686127473944e-01, 4.2240676183597520e-01, 4.2060666239721084e-01, 4.1880656295844643e-01, 4.1700646351968218e-01, 4.1520636408091777e-01, 4.1340626464215341e-01, 4.1160616520338900e-01, 4.0980606576462475e-01, 4.0800596632586034e-01, 4.0620586688709598e-01, 4.0440576744833173e-01, 4.0260566800956732e-01, 4.0080556857080291e-01, 3.9900546913203871e-01, 3.9720536969327436e-01, 3.9540527025450989e-01, 3.9360517081574564e-01, 3.9180507137698128e-01, 3.9000497193821693e-01, 3.8820487249945268e-01, 3.8640477306068821e-01, 3.8460467362192385e-01, 3.8280457418315961e-01, 3.8100447474439525e-01, 3.7920437530563078e-01, 3.7740427586686676e-01, 3.7560417642810240e-01, 3.7380407698933793e-01, 3.7200397755057368e-01, 3.7020387811180933e-01, 3.6840377867304497e-01, 3.6660367923428072e-01, 3.6480357979551625e-01, 3.6300348035675190e-01, 3.6120338091798765e-01, 3.5940328147922329e-01, 3.5760318204045882e-01, 3.5580308260169458e-01, 3.5400298316293022e-01, 3.5220288372416586e-01, 3.5040278428540161e-01, 3.4860268484663715e-01, 3.4680258540787279e-01, 3.4500248596910854e-01, 3.4320238653034418e-01, 3.4140228709157971e-01, 3.3960218765281558e-01, 3.3780208821405111e-01, 3.3600198877528675e-01, 3.3420188933652251e-01, 3.3240178989775815e-01, 3.3060169045899368e-01, 3.2880159102022943e-01, 3.2700149158146508e-01, 3.2520139214270072e-01, 3.2340129270393647e-01, 3.2160119326517200e-01, 3.1980109382640765e-01, 3.1800099438764340e-01, 3.1620089494887904e-01, 3.1440079551011457e-01, 3.1260069607135033e-01, 3.1080059663258597e-01, 3.0900049719382161e-01, 3.0720039775505736e-01, 3.0540029831629290e-01, 3.0360019887752854e-01, 3.0180009943876440e-01, 2.9999999999999993e-01};
float pathX_8[520]={ 0.0000000000000000e+00, 1.2106034350002046e-02, 2.4210294422204338e-02, 3.6311006198847834e-02, 4.8406396182216774e-02, 6.0494691654565086e-02, 7.2574120937928449e-02, 8.4642913653783902e-02, 9.6699300982519124e-02, 1.0874151592267323e-01, 1.2076779354991088e-01, 1.3277637127569231e-01, 1.4476548910560072e-01, 1.5673338989728963e-01, 1.6867831961801222e-01, 1.8059852760169479e-01, 1.9249226680551704e-01, 2.0435779406596108e-01, 2.1619337035429195e-01, 2.2799726103143225e-01, 2.3976773610219340e-01, 2.5150307046882603e-01, 2.6320154418385294e-01, 2.7486144270214691e-01, 2.8648105713221728e-01, 2.9805868448666695e-01, 3.0959262793178521e-01, 3.2108119703623789e-01, 3.3252270801881939e-01, 3.4391548399523003e-01, 3.5525785522384273e-01, 3.6654815935042290e-01, 3.7778474165176512e-01, 3.8896595527821187e-01, 4.0009016149501836e-01, 4.1115572992252764e-01, 4.2216103877512146e-01, 4.3310447509891153e-01, 4.4398443500813639e-01, 4.5479932392022904e-01, 4.6554755678952153e-01, 4.7622755833955127e-01, 4.8683776329393597e-01, 4.9737661660578264e-01, 5.0784257368559771e-01, 5.1823410062766428e-01, 5.2854967443485312e-01, 5.3878778324183607e-01, 5.4894692653666644e-01, 5.5902561538069651e-01, 5.6902237262679922e-01, 5.7893573313585922e-01, 5.8876424399150773e-01, 5.9850646471306257e-01, 6.0816096746664805e-01, 6.1772633727446014e-01, 6.2720117222214677e-01, 6.3658408366427588e-01, 6.4587369642785619e-01, 6.5506864901388484e-01, 6.6416759379689094e-01, 6.7316919722244517e-01, 6.8207214000260730e-01, 6.9087511730928342e-01, 6.9957683896546274e-01, 7.0817602963430881e-01, 7.1667142900607361e-01, 7.2506179198281084e-01, 7.3334588886085950e-01, 7.4152250551107080e-01, 7.4959044355675253e-01, 7.5754852054930488e-01, 7.6539557014152249e-01, 7.7313044225853456e-01, 7.8075200326636340e-01, 7.8825913613806931e-01, 7.9565074061746544e-01, 8.0292573338037232e-01, 8.1008304819339050e-01, 8.1712163607017096e-01, 8.2404046542515452e-01, 8.3083852222476362e-01, 8.3751481013601969e-01, 8.4406835067256769e-01, 8.5049818333808413e-01, 8.5680336576704930e-01, 8.6298297386286082e-01, 8.6903610193327174e-01, 8.7496186282312916e-01, 8.8075938804439735e-01, 8.8642782790344421e-01, 8.9196635162557447e-01, 8.9737414747678856e-01, 9.0265042288275110e-01, 9.0779440454495297e-01, 9.1280533855404589e-01, 9.1768249050033690e-01, 9.2242514558142474e-01, 9.2703260870696202e-01, 9.3150420460052885e-01, 9.3583927789860166e-01, 9.4003719324660540e-01, 9.4409733539203122e-01, 9.4801910927460864e-01, 9.5180194011351893e-01, 9.5544527349163566e-01, 9.5894857543678069e-01, 9.6231133249998402e-01, 9.6553305183073579e-01, 9.6861326124921876e-01, 9.7155150931551215e-01, 9.7434736539575473e-01, 9.7700041972525986e-01, 9.7951028346857028e-01, 9.8187658877644746e-01, 9.8409898883978331e-01, 9.8617715794042915e-01, 9.8811079149893388e-01, 9.8989960611918293e-01, 9.9154333962993391e-01, 9.9304175112324000e-01, 9.9439462098975850e-01, 9.9560175095093661e-01, 9.9666296408807176e-01, 9.9757810486824083e-01, 9.9834703916709522e-01, 9.9896965428851869e-01, 9.9944585898114380e-01, 9.9977558345172624e-01, 9.9995877937537336e-01, 9.9999541990262741e-01, 9.9988549966339979e-01, 9.9962903476775899e-01, 9.9922606280356885e-01, 9.9867664283097968e-01, 9.9798085537377279e-01, 9.9713880240755803e-01, 9.9615060734482885e-01, 9.9501641501687466e-01, 9.9373639165255345e-01, 9.9231072485392990e-01, 9.9073962356877987e-01, 9.8902331805996646e-01, 9.8716205987169270e-01, 9.8515612179263468e-01, 9.8300579781596131e-01, 9.8071140309624616e-01, 9.7827327390327812e-01, 9.7569176757277720e-01, 9.7296726245402276e-01, 9.7010015785440207e-01, 9.6709087398088756e-01, 9.6393985187845010e-01, 9.6064755336541963e-01, 9.5721446096579943e-01, 9.5364107783854790e-01, 9.4992792770383350e-01, 9.4607555476627858e-01, 9.4208452363519957e-01, 9.3795541924185732e-01, 9.3368884675372832e-01, 9.2928543148581033e-01, 9.2474581880897644e-01, 9.2007067405538723e-01, 9.1526068242097935e-01, 9.1031654886504243e-01, 9.0523899800689867e-01, 9.0002877401970227e-01, 8.9468664052137181e-01, 8.8921338046267306e-01, 8.8360979601246992e-01, 8.7787670844015564e-01, 8.7201495799528761e-01, 8.6602540378443871e-01, 8.5990892364528571e-01, 8.5366641401795151e-01, 8.4729878981362217e-01, 8.4080698428045619e-01, 8.3419194886680659e-01, 8.2745465308177379e-01, 8.2059608435311482e-01, 8.1361724788252332e-01, 8.0651916649830624e-01, 7.9930288050547627e-01, 7.9196944753328413e-01, 7.8451994238020972e-01, 7.7695545685643874e-01, 7.6927709962384505e-01, 7.6148599603350486e-01, 7.5358328796076157e-01, 7.4557013363787217e-01, 7.3744770748425581e-01, 7.2921719993436718e-01, 7.2087981726322625e-01, 7.1243678140962419e-01, 7.0388932979703478e-01, 6.9523871515225544e-01, 6.8648620532180560e-01, 6.7763308308611014e-01, 6.6868064597149279e-01, 6.5963020606000822e-01, 6.5048308979714198e-01, 6.4124063779740481e-01, 6.3190420464785013e-01, 6.2247515870954351e-01, 6.1295488191701475e-01, 6.0334476957571814e-01, 5.9364623015753526e-01, 5.8386068509434697e-01, 5.7398956856970751e-01, 5.6403432730864655e-01, 5.5399642036563623e-01, 5.4387731891075053e-01, 5.3367850601404732e-01, 5.2340147642820778e-01, 5.1304773636946410e-01, 5.0261880329684505e-01, 4.9211620568977565e-01, 4.8154148282406212e-01, 4.7089618454629056e-01, 4.6018187104668262e-01, 4.4940011263042889e-01, 4.3855248948754427e-01, 4.2764059146127276e-01, 4.1666601781507723e-01, 4.0563037699825077e-01, 3.9453528641017749e-01, 3.8338237216328591e-01, 3.7217326884472318e-01, 3.6090961927678744e-01, 3.4959307427615338e-01, 3.3822529241192689e-01, 3.2680793976256245e-01, 3.1534268967167922e-01, 3.0383122250281469e-01, 2.9227522539314765e-01, 2.8067639200622907e-01, 2.6903642228375640e-01, 2.5735702219642698e-01, 2.4563990349391060e-01, 2.3388678345397007e-01, 2.2209938463077600e-01, 2.1027943460244813e-01, 1.9842866571785625e-01, 1.8654881484272651e-01, 1.7464162310508294e-01, 1.6270883564006705e-01, 1.5075220133416556e-01, 1.3877347256889297e-01, 1.2677440496395953e-01, 1.1475675711996504e-01, 1.0272229036065539e-01, 9.0672768474781784e-02, 7.8609957457596455e-02, 6.6535625252024888e-02, 5.4451541489554979e-02, 4.2359477230876810e-02, 3.0261204706313462e-02, 1.8158497056080400e-02, 6.0531280704110221e-03, -6.0531280704107775e-03, -1.8158497056079709e-02, -3.0261204706313220e-02, -4.2359477230876567e-02, -5.4451541489554736e-02, -6.6535625252024638e-02, -7.8609957457596649e-02, -9.0672768474781992e-02, -1.0272229036065514e-01, -1.1475675711996434e-01, -1.2677440496395886e-01, -1.3877347256889230e-01, -1.5075220133416531e-01, -1.6270883564006725e-01, -1.7464162310508316e-01, -1.8654881484272628e-01, -1.9842866571785600e-01, -2.1027943460244788e-01, -2.2209938463077578e-01, -2.3388678345396982e-01, -2.4563990349391038e-01, -2.5735702219642675e-01, -2.6903642228375574e-01, -2.8067639200622885e-01, -2.9227522539314738e-01, -3.0383122250281447e-01, -3.1534268967167944e-01, -3.2680793976256267e-01, -3.3822529241192706e-01, -3.4959307427615310e-01, -3.6090961927678683e-01, -3.7217326884472252e-01, -3.8338237216328525e-01, -3.9453528641017721e-01, -4.0563037699825094e-01, -4.1666601781507745e-01, -4.2764059146127253e-01, -4.3855248948754405e-01, -4.4940011263042867e-01, -4.6018187104668240e-01, -4.7089618454629073e-01, -4.8154148282406189e-01, -4.9211620568977543e-01, -5.0261880329684439e-01, -5.1304773636946344e-01, -5.2340147642820767e-01, -5.3367850601404709e-01, -5.4387731891075075e-01, -5.5399642036563634e-01, -5.6403432730864633e-01, -5.7398956856970729e-01, -5.8386068509434674e-01, -5.9364623015753470e-01, -6.0334476957571759e-01, -6.1295488191701464e-01, -6.2247515870954362e-01, -6.3190420464785002e-01, -6.4124063779740459e-01, -6.5048308979714176e-01, -6.5963020606000800e-01, -6.6868064597149257e-01, -6.7763308308611025e-01, -6.8648620532180538e-01, -6.9523871515225499e-01, -7.0388932979703434e-01, -7.1243678140962374e-01, -7.2087981726322570e-01, -7.2921719993436707e-01, -7.3744770748425570e-01, -7.4557013363787239e-01, -7.5358328796076113e-01, -7.6148599603350497e-01, -7.6927709962384527e-01, -7.7695545685643863e-01, -7.8451994238020961e-01, -7.9196944753328402e-01, -7.9930288050547604e-01, -8.0651916649830580e-01, -8.1361724788252343e-01, -8.2059608435311437e-01, -8.2745465308177391e-01, -8.3419194886680614e-01, -8.4080698428045630e-01, -8.4729878981362206e-01, -8.5366641401795118e-01, -8.5990892364528582e-01, -8.6602540378443849e-01, -8.7201495799528772e-01, -8.7787670844015531e-01, -8.8360979601246992e-01, -8.8921338046267273e-01, -8.9468664052137170e-01, -9.0002877401970216e-01, -9.0523899800689855e-01, -9.1031654886504254e-01, -9.1526068242097902e-01, -9.2007067405538723e-01, -9.2474581880897611e-01, -9.2928543148581033e-01, -9.3368884675372821e-01, -9.3795541924185732e-01, -9.4208452363519957e-01, -9.4607555476627836e-01, -9.4992792770383361e-01, -9.5364107783854768e-01, -9.5721446096579954e-01, -9.6064755336541963e-01, -9.6393985187845010e-01, -9.6709087398088744e-01, -9.7010015785440207e-01, -9.7296726245402265e-01, -9.7569176757277709e-01, -9.7827327390327801e-01, -9.8071140309624616e-01, -9.8300579781596120e-01, -9.8515612179263468e-01, -9.8716205987169270e-01, -9.8902331805996646e-01, -9.9073962356877976e-01, -9.9231072485392990e-01, -9.9373639165255345e-01, -9.9501641501687454e-01, -9.9615060734482896e-01, -9.9713880240755792e-01, -9.9798085537377268e-01, -9.9867664283097968e-01, -9.9922606280356885e-01, -9.9962903476775899e-01, -9.9988549966339979e-01, -9.9999541990262741e-01, -9.9995877937537336e-01, -9.9977558345172624e-01, -9.9944585898114391e-01, -9.9896965428851869e-01, -9.9834703916709522e-01, -9.9757810486824083e-01, -9.9666296408807176e-01, -9.9560175095093661e-01, -9.9439462098975839e-01, -9.9304175112324011e-01, -9.9154333962993391e-01, -9.8989960611918304e-01, -9.8811079149893388e-01, -9.8617715794042926e-01, -9.8409898883978331e-01, -9.8187658877644757e-01, -9.7951028346857039e-01, -9.7700041972525975e-01, -9.7434736539575473e-01, -9.7155150931551215e-01, -9.6861326124921887e-01, -9.6553305183073590e-01, -9.6231133249998413e-01, -9.5894857543678080e-01, -9.5544527349163577e-01, -9.5180194011351893e-01, -9.4801910927460864e-01, -9.4409733539203122e-01, -9.4003719324660551e-01, -9.3583927789860177e-01, -9.3150420460052896e-01, -9.2703260870696225e-01, -9.2242514558142463e-01, -9.1768249050033712e-01, -9.1280533855404578e-01, -9.0779440454495330e-01, -9.0265042288275121e-01, -8.9737414747678867e-01, -8.9196635162557469e-01, -8.8642782790344410e-01, -8.8075938804439757e-01, -8.7496186282312904e-01, -8.6903610193327219e-01, -8.6298297386286082e-01, -8.5680336576704930e-01, -8.5049818333808425e-01, -8.4406835067256780e-01, -8.3751481013601992e-01, -8.3083852222476340e-01, -8.2404046542515497e-01, -8.1712163607017085e-01, -8.1008304819339050e-01, -8.0292573338037232e-01, -7.9565074061746566e-01, -7.8825913613806953e-01, -7.8075200326636351e-01, -7.7313044225853500e-01, -7.6539557014152282e-01, -7.5754852054930488e-01, -7.4959044355675242e-01, -7.4152250551107080e-01, -7.3334588886085961e-01, -7.2506179198281095e-01, -7.1667142900607383e-01, -7.0817602963430915e-01, -6.9957683896546252e-01, -6.9087511730928386e-01, -6.8207214000260719e-01, -6.7316919722244584e-01, -6.6416759379689105e-01, -6.5506864901388506e-01, -6.4587369642785641e-01, -6.3658408366427555e-01, -6.2720117222214722e-01, -6.1772633727445991e-01, -6.0816096746664872e-01, -5.9850646471306257e-01, -5.8876424399150840e-01, -5.7893573313585933e-01, -5.6902237262679944e-01, -5.5902561538069695e-01, -5.4894692653666610e-01, -5.3878778324183652e-01, -5.2854967443485290e-01, -5.1823410062766495e-01, -5.0784257368559771e-01, -4.9737661660578275e-01, -4.8683776329393619e-01, -4.7622755833955160e-01, -4.6554755678952198e-01, -4.5479932392022959e-01, -4.4398443500813700e-01, -4.3310447509891142e-01, -4.2216103877512140e-01, -4.1115572992252769e-01, -4.0009016149501853e-01, -3.8896595527821215e-01, -3.7778474165176551e-01, -3.6654815935042340e-01, -3.5525785522384334e-01, -3.4391548399522981e-01, -3.3252270801881928e-01, -3.2108119703623794e-01, -3.0959262793178538e-01, -2.9805868448666717e-01, -2.8648105713221761e-01, -2.7486144270214741e-01, -2.6320154418385261e-01, -2.5150307046882669e-01, -2.3976773610219332e-01, -2.2799726103143314e-01, -2.1619337035429204e-01, -2.0435779406596127e-01, -1.9249226680551737e-01, -1.8059852760169434e-01, -1.6867831961801275e-01, -1.5673338989728938e-01, -1.4476548910560147e-01, -1.3277637127569228e-01, -1.2076779354991184e-01, -1.0874151592267341e-01, -9.6699300982519415e-02, -8.4642913653784277e-02, -7.2574120937928047e-02, -6.0494691654565690e-02, -4.8406396182216593e-02, -3.6311006198848646e-02, -2.4210294422204372e-02, -1.2106034350002185e-02, -2.4492935982947064e-16};
float pathY[520] = {0};
float pathY_square[520]={ 0.0000000000000000e+00, 0.0000000000000000e+00, 0.0000000000000000e+00, 0.0000000000000000e+00, 0.0000000000000000e+00, 0.0000000000000000e+00, 0.0000000000000000e+00, 0.0000000000000000e+00, 0.0000000000000000e+00, 0.0000000000000000e+00, 0.0000000000000000e+00, 0.0000000000000000e+00, 0.0000000000000000e+00, 0.0000000000000000e+00, 0.0000000000000000e+00, 0.0000000000000000e+00, 0.0000000000000000e+00, 0.0000000000000000e+00, 0.0000000000000000e+00, 0.0000000000000000e+00, 0.0000000000000000e+00, 0.0000000000000000e+00, 0.0000000000000000e+00, 0.0000000000000000e+00, 0.0000000000000000e+00, 0.0000000000000000e+00, 0.0000000000000000e+00, 0.0000000000000000e+00, 0.0000000000000000e+00, 0.0000000000000000e+00, 0.0000000000000000e+00, 0.0000000000000000e+00, 0.0000000000000000e+00, 0.0000000000000000e+00, 0.0000000000000000e+00, 0.0000000000000000e+00, 0.0000000000000000e+00, 0.0000000000000000e+00, 0.0000000000000000e+00, 0.0000000000000000e+00, 0.0000000000000000e+00, 0.0000000000000000e+00, 0.0000000000000000e+00, 0.0000000000000000e+00, 0.0000000000000000e+00, 0.0000000000000000e+00, 0.0000000000000000e+00, 0.0000000000000000e+00, 0.0000000000000000e+00, 0.0000000000000000e+00, 0.0000000000000000e+00, 0.0000000000000000e+00, 0.0000000000000000e+00, 0.0000000000000000e+00, 0.0000000000000000e+00, 0.0000000000000000e+00, 0.0000000000000000e+00, 0.0000000000000000e+00, 0.0000000000000000e+00, 0.0000000000000000e+00, 0.0000000000000000e+00, 0.0000000000000000e+00, 0.0000000000000000e+00, 0.0000000000000000e+00, 0.0000000000000000e+00, 0.0000000000000000e+00, 0.0000000000000000e+00, 0.0000000000000000e+00, 0.0000000000000000e+00, 0.0000000000000000e+00, 0.0000000000000000e+00, 0.0000000000000000e+00, 0.0000000000000000e+00, 0.0000000000000000e+00, 0.0000000000000000e+00, 0.0000000000000000e+00, 0.0000000000000000e+00, 0.0000000000000000e+00, 0.0000000000000000e+00, 0.0000000000000000e+00, 0.0000000000000000e+00, 0.0000000000000000e+00, 0.0000000000000000e+00, 0.0000000000000000e+00, 0.0000000000000000e+00, 0.0000000000000000e+00, 0.0000000000000000e+00, 0.0000000000000000e+00, 0.0000000000000000e+00, 0.0000000000000000e+00, 0.0000000000000000e+00, 0.0000000000000000e+00, 0.0000000000000000e+00, 0.0000000000000000e+00, 0.0000000000000000e+00, 0.0000000000000000e+00, 0.0000000000000000e+00, 0.0000000000000000e+00, 0.0000000000000000e+00, 0.0000000000000000e+00, 0.0000000000000000e+00, 0.0000000000000000e+00, 0.0000000000000000e+00, 0.0000000000000000e+00, 0.0000000000000000e+00, 0.0000000000000000e+00, 0.0000000000000000e+00, 0.0000000000000000e+00, 0.0000000000000000e+00, 0.0000000000000000e+00, 0.0000000000000000e+00, 0.0000000000000000e+00, 0.0000000000000000e+00, 0.0000000000000000e+00, 0.0000000000000000e+00, 0.0000000000000000e+00, 0.0000000000000000e+00, 0.0000000000000000e+00, 0.0000000000000000e+00, 0.0000000000000000e+00, 0.0000000000000000e+00, 0.0000000000000000e+00, 0.0000000000000000e+00, 0.0000000000000000e+00, 0.0000000000000000e+00, 0.0000000000000000e+00, 0.0000000000000000e+00, 0.0000000000000000e+00, 0.0000000000000000e+00, 0.0000000000000000e+00, 0.0000000000000000e+00, 1.1627906976744186e-02, 2.3255813953488372e-02, 3.4883720930232558e-02, 4.6511627906976744e-02, 5.8139534883720929e-02, 6.9767441860465115e-02, 8.1395348837209308e-02, 9.3023255813953487e-02, 1.0465116279069768e-01, 1.1627906976744186e-01, 1.2790697674418605e-01, 1.3953488372093023e-01, 1.5116279069767441e-01, 1.6279069767441862e-01, 1.7441860465116280e-01, 1.8604651162790697e-01, 1.9767441860465115e-01, 2.0930232558139536e-01, 2.2093023255813954e-01, 2.3255813953488372e-01, 2.4418604651162790e-01, 2.5581395348837210e-01, 2.6744186046511625e-01, 2.7906976744186046e-01, 2.9069767441860467e-01, 3.0232558139534882e-01, 3.1395348837209303e-01, 3.2558139534883723e-01, 3.3720930232558138e-01, 3.4883720930232559e-01, 3.6046511627906974e-01, 3.7209302325581395e-01, 3.8372093023255816e-01, 3.9534883720930231e-01, 4.0697674418604651e-01, 4.1860465116279072e-01, 4.3023255813953487e-01, 4.4186046511627908e-01, 4.5348837209302323e-01, 4.6511627906976744e-01, 4.7674418604651164e-01, 4.8837209302325579e-01, 5.0000000000000000e-01, 5.1162790697674421e-01, 5.2325581395348841e-01, 5.3488372093023251e-01, 5.4651162790697672e-01, 5.5813953488372092e-01, 5.6976744186046513e-01, 5.8139534883720934e-01, 5.9302325581395354e-01, 6.0465116279069764e-01, 6.1627906976744184e-01, 6.2790697674418605e-01, 6.3953488372093026e-01, 6.5116279069767447e-01, 6.6279069767441856e-01, 6.7441860465116277e-01, 6.8604651162790697e-01, 6.9767441860465118e-01, 7.0930232558139539e-01, 7.2093023255813948e-01, 7.3255813953488369e-01, 7.4418604651162790e-01, 7.5581395348837210e-01, 7.6744186046511631e-01, 7.7906976744186052e-01, 7.9069767441860461e-01, 8.0232558139534882e-01, 8.1395348837209303e-01, 8.2558139534883723e-01, 8.3720930232558144e-01, 8.4883720930232553e-01, 8.6046511627906974e-01, 8.7209302325581395e-01, 8.8372093023255816e-01, 8.9534883720930236e-01, 9.0697674418604646e-01, 9.1860465116279066e-01, 9.3023255813953487e-01, 9.4186046511627908e-01, 9.5348837209302328e-01, 9.6511627906976749e-01, 9.7674418604651159e-01, 9.8837209302325579e-01, 1.0000000000000000e+00, 1.0116279069767442e+00, 1.0232558139534884e+00, 1.0348837209302326e+00, 1.0465116279069768e+00, 1.0581395348837210e+00, 1.0697674418604650e+00, 1.0813953488372092e+00, 1.0930232558139534e+00, 1.1046511627906976e+00, 1.1162790697674418e+00, 1.1279069767441861e+00, 1.1395348837209303e+00, 1.1511627906976745e+00, 1.1627906976744187e+00, 1.1744186046511629e+00, 1.1860465116279071e+00, 1.1976744186046511e+00, 1.2093023255813953e+00, 1.2209302325581395e+00, 1.2325581395348837e+00, 1.2441860465116279e+00, 1.2558139534883721e+00, 1.2674418604651163e+00, 1.2790697674418605e+00, 1.2906976744186047e+00, 1.3023255813953489e+00, 1.3139534883720929e+00, 1.3255813953488371e+00, 1.3372093023255813e+00, 1.3488372093023255e+00, 1.3604651162790697e+00, 1.3720930232558139e+00, 1.3837209302325582e+00, 1.3953488372093024e+00, 1.4069767441860466e+00, 1.4186046511627908e+00, 1.4302325581395350e+00, 1.4418604651162790e+00, 1.4534883720930232e+00, 1.4651162790697674e+00, 1.4767441860465116e+00, 1.4883720930232558e+00, 1.5000000000000000e+00, 1.5000000000000000e+00, 1.5000000000000000e+00, 1.5000000000000000e+00, 1.5000000000000000e+00, 1.5000000000000000e+00, 1.5000000000000000e+00, 1.5000000000000000e+00, 1.5000000000000000e+00, 1.5000000000000000e+00, 1.5000000000000000e+00, 1.5000000000000000e+00, 1.5000000000000000e+00, 1.5000000000000000e+00, 1.5000000000000000e+00, 1.5000000000000000e+00, 1.5000000000000000e+00, 1.5000000000000000e+00, 1.5000000000000000e+00, 1.5000000000000000e+00, 1.5000000000000000e+00, 1.5000000000000000e+00, 1.5000000000000000e+00, 1.5000000000000000e+00, 1.5000000000000000e+00, 1.5000000000000000e+00, 1.5000000000000000e+00, 1.5000000000000000e+00, 1.5000000000000000e+00, 1.5000000000000000e+00, 1.5000000000000000e+00, 1.5000000000000000e+00, 1.5000000000000000e+00, 1.5000000000000000e+00, 1.5000000000000000e+00, 1.5000000000000000e+00, 1.5000000000000000e+00, 1.5000000000000000e+00, 1.5000000000000000e+00, 1.5000000000000000e+00, 1.5000000000000000e+00, 1.5000000000000000e+00, 1.5000000000000000e+00, 1.5000000000000000e+00, 1.5000000000000000e+00, 1.5000000000000000e+00, 1.5000000000000000e+00, 1.5000000000000000e+00, 1.5000000000000000e+00, 1.5000000000000000e+00, 1.5000000000000000e+00, 1.5000000000000000e+00, 1.5000000000000000e+00, 1.5000000000000000e+00, 1.5000000000000000e+00, 1.5000000000000000e+00, 1.5000000000000000e+00, 1.5000000000000000e+00, 1.5000000000000000e+00, 1.5000000000000000e+00, 1.5000000000000000e+00, 1.5000000000000000e+00, 1.5000000000000000e+00, 1.5000000000000000e+00, 1.5000000000000000e+00, 1.5000000000000000e+00, 1.5000000000000000e+00, 1.5000000000000000e+00, 1.5000000000000000e+00, 1.5000000000000000e+00, 1.5000000000000000e+00, 1.5000000000000000e+00, 1.5000000000000000e+00, 1.5000000000000000e+00, 1.5000000000000000e+00, 1.5000000000000000e+00, 1.5000000000000000e+00, 1.5000000000000000e+00, 1.5000000000000000e+00, 1.5000000000000000e+00, 1.5000000000000000e+00, 1.5000000000000000e+00, 1.5000000000000000e+00, 1.5000000000000000e+00, 1.5000000000000000e+00, 1.5000000000000000e+00, 1.5000000000000000e+00, 1.5000000000000000e+00, 1.5000000000000000e+00, 1.5000000000000000e+00, 1.5000000000000000e+00, 1.5000000000000000e+00, 1.5000000000000000e+00, 1.5000000000000000e+00, 1.5000000000000000e+00, 1.5000000000000000e+00, 1.5000000000000000e+00, 1.5000000000000000e+00, 1.5000000000000000e+00, 1.5000000000000000e+00, 1.5000000000000000e+00, 1.5000000000000000e+00, 1.5000000000000000e+00, 1.5000000000000000e+00, 1.5000000000000000e+00, 1.5000000000000000e+00, 1.5000000000000000e+00, 1.5000000000000000e+00, 1.5000000000000000e+00, 1.5000000000000000e+00, 1.5000000000000000e+00, 1.5000000000000000e+00, 1.5000000000000000e+00, 1.5000000000000000e+00, 1.5000000000000000e+00, 1.5000000000000000e+00, 1.5000000000000000e+00, 1.5000000000000000e+00, 1.5000000000000000e+00, 1.5000000000000000e+00, 1.5000000000000000e+00, 1.5000000000000000e+00, 1.5000000000000000e+00, 1.5000000000000000e+00, 1.5000000000000000e+00, 1.5000000000000000e+00, 1.5000000000000000e+00, 1.5000000000000000e+00, 1.5000000000000000e+00, 1.5000000000000000e+00, 1.5000000000000000e+00, 1.5000000000000000e+00, 1.4883720930232558e+00, 1.4767441860465116e+00, 1.4651162790697674e+00, 1.4534883720930232e+00, 1.4418604651162790e+00, 1.4302325581395350e+00, 1.4186046511627908e+00, 1.4069767441860466e+00, 1.3953488372093024e+00, 1.3837209302325582e+00, 1.3720930232558139e+00, 1.3604651162790697e+00, 1.3488372093023255e+00, 1.3372093023255813e+00, 1.3255813953488371e+00, 1.3139534883720931e+00, 1.3023255813953489e+00, 1.2906976744186047e+00, 1.2790697674418605e+00, 1.2674418604651163e+00, 1.2558139534883721e+00, 1.2441860465116279e+00, 1.2325581395348837e+00, 1.2209302325581395e+00, 1.2093023255813953e+00, 1.1976744186046511e+00, 1.1860465116279069e+00, 1.1744186046511627e+00, 1.1627906976744187e+00, 1.1511627906976745e+00, 1.1395348837209303e+00, 1.1279069767441861e+00, 1.1162790697674418e+00, 1.1046511627906976e+00, 1.0930232558139534e+00, 1.0813953488372092e+00, 1.0697674418604652e+00, 1.0581395348837210e+00, 1.0465116279069768e+00, 1.0348837209302326e+00, 1.0232558139534884e+00, 1.0116279069767442e+00, 1.0000000000000000e+00, 9.8837209302325579e-01, 9.7674418604651159e-01, 9.6511627906976749e-01, 9.5348837209302328e-01, 9.4186046511627908e-01, 9.3023255813953487e-01, 9.1860465116279066e-01, 9.0697674418604646e-01, 8.9534883720930236e-01, 8.8372093023255816e-01, 8.7209302325581395e-01, 8.6046511627906974e-01, 8.4883720930232553e-01, 8.3720930232558144e-01, 8.2558139534883723e-01, 8.1395348837209303e-01, 8.0232558139534882e-01, 7.9069767441860461e-01, 7.7906976744186052e-01, 7.6744186046511631e-01, 7.5581395348837210e-01, 7.4418604651162790e-01, 7.3255813953488369e-01, 7.2093023255813948e-01, 7.0930232558139539e-01, 6.9767441860465118e-01, 6.8604651162790697e-01, 6.7441860465116277e-01, 6.6279069767441856e-01, 6.5116279069767447e-01, 6.3953488372093026e-01, 6.2790697674418605e-01, 6.1627906976744184e-01, 6.0465116279069764e-01, 5.9302325581395354e-01, 5.8139534883720934e-01, 5.6976744186046513e-01, 5.5813953488372092e-01, 5.4651162790697672e-01, 5.3488372093023251e-01, 5.2325581395348841e-01, 5.1162790697674421e-01, 5.0000000000000000e-01, 4.8837209302325579e-01, 4.7674418604651159e-01, 4.6511627906976738e-01, 4.5348837209302317e-01, 4.4186046511627897e-01, 4.3023255813953498e-01, 4.1860465116279078e-01, 4.0697674418604657e-01, 3.9534883720930236e-01, 3.8372093023255816e-01, 3.7209302325581395e-01, 3.6046511627906974e-01, 3.4883720930232553e-01, 3.3720930232558133e-01, 3.2558139534883712e-01, 3.1395348837209291e-01, 3.0232558139534893e-01, 2.9069767441860472e-01, 2.7906976744186052e-01, 2.6744186046511631e-01, 2.5581395348837210e-01, 2.4418604651162790e-01, 2.3255813953488369e-01, 2.2093023255813948e-01, 2.0930232558139528e-01, 1.9767441860465107e-01, 1.8604651162790709e-01, 1.7441860465116288e-01, 1.6279069767441867e-01, 1.5116279069767447e-01, 1.3953488372093026e-01, 1.2790697674418605e-01, 1.1627906976744184e-01, 1.0465116279069764e-01, 9.3023255813953432e-02, 8.1395348837209225e-02, 6.9767441860465018e-02, 5.8139534883721034e-02, 4.6511627906976827e-02, 3.4883720930232620e-02, 2.3255813953488413e-02, 1.1627906976744207e-02, 0.0000000000000000e+00};
float pathY_rectangle[520]={ 0.0000000000000000e+00, 0.0000000000000000e+00, 0.0000000000000000e+00, 0.0000000000000000e+00, 0.0000000000000000e+00, 0.0000000000000000e+00, 0.0000000000000000e+00, 0.0000000000000000e+00, 0.0000000000000000e+00, 0.0000000000000000e+00, 0.0000000000000000e+00, 0.0000000000000000e+00, 0.0000000000000000e+00, 0.0000000000000000e+00, 0.0000000000000000e+00, 0.0000000000000000e+00, 0.0000000000000000e+00, 0.0000000000000000e+00, 0.0000000000000000e+00, 0.0000000000000000e+00, 0.0000000000000000e+00, 0.0000000000000000e+00, 0.0000000000000000e+00, 0.0000000000000000e+00, 0.0000000000000000e+00, 0.0000000000000000e+00, 0.0000000000000000e+00, 0.0000000000000000e+00, 0.0000000000000000e+00, 0.0000000000000000e+00, 0.0000000000000000e+00, 0.0000000000000000e+00, 0.0000000000000000e+00, 0.0000000000000000e+00, 0.0000000000000000e+00, 0.0000000000000000e+00, 0.0000000000000000e+00, 0.0000000000000000e+00, 0.0000000000000000e+00, 0.0000000000000000e+00, 0.0000000000000000e+00, 0.0000000000000000e+00, 0.0000000000000000e+00, 0.0000000000000000e+00, 0.0000000000000000e+00, 0.0000000000000000e+00, 0.0000000000000000e+00, 0.0000000000000000e+00, 0.0000000000000000e+00, 0.0000000000000000e+00, 0.0000000000000000e+00, 0.0000000000000000e+00, 0.0000000000000000e+00, 0.0000000000000000e+00, 0.0000000000000000e+00, 0.0000000000000000e+00, 0.0000000000000000e+00, 0.0000000000000000e+00, 0.0000000000000000e+00, 0.0000000000000000e+00, 0.0000000000000000e+00, 0.0000000000000000e+00, 0.0000000000000000e+00, 0.0000000000000000e+00, 0.0000000000000000e+00, 0.0000000000000000e+00, 0.0000000000000000e+00, 0.0000000000000000e+00, 0.0000000000000000e+00, 0.0000000000000000e+00, 0.0000000000000000e+00, 0.0000000000000000e+00, 0.0000000000000000e+00, 0.0000000000000000e+00, 0.0000000000000000e+00, 0.0000000000000000e+00, 0.0000000000000000e+00, 0.0000000000000000e+00, 0.0000000000000000e+00, 0.0000000000000000e+00, 0.0000000000000000e+00, 0.0000000000000000e+00, 0.0000000000000000e+00, 0.0000000000000000e+00, 0.0000000000000000e+00, 0.0000000000000000e+00, 0.0000000000000000e+00, 0.0000000000000000e+00, 0.0000000000000000e+00, 0.0000000000000000e+00, 0.0000000000000000e+00, 0.0000000000000000e+00, 0.0000000000000000e+00, 0.0000000000000000e+00, 0.0000000000000000e+00, 0.0000000000000000e+00, 0.0000000000000000e+00, 0.0000000000000000e+00, 0.0000000000000000e+00, 0.0000000000000000e+00, 0.0000000000000000e+00, 0.0000000000000000e+00, 0.0000000000000000e+00, 0.0000000000000000e+00, 0.0000000000000000e+00, 0.0000000000000000e+00, 0.0000000000000000e+00, 0.0000000000000000e+00, 0.0000000000000000e+00, 0.0000000000000000e+00, 0.0000000000000000e+00, 0.0000000000000000e+00, 0.0000000000000000e+00, 0.0000000000000000e+00, 0.0000000000000000e+00, 0.0000000000000000e+00, 0.0000000000000000e+00, 0.0000000000000000e+00, 0.0000000000000000e+00, 0.0000000000000000e+00, 0.0000000000000000e+00, 0.0000000000000000e+00, 0.0000000000000000e+00, 0.0000000000000000e+00, 0.0000000000000000e+00, 0.0000000000000000e+00, 0.0000000000000000e+00, 0.0000000000000000e+00, 0.0000000000000000e+00, 0.0000000000000000e+00, 0.0000000000000000e+00, 7.7519379844961239e-03, 1.5503875968992248e-02, 2.3255813953488372e-02, 3.1007751937984496e-02, 3.8759689922480620e-02, 4.6511627906976744e-02, 5.4263565891472867e-02, 6.2015503875968991e-02, 6.9767441860465115e-02, 7.7519379844961239e-02, 8.5271317829457363e-02, 9.3023255813953487e-02, 1.0077519379844961e-01, 1.0852713178294573e-01, 1.1627906976744186e-01, 1.2403100775193798e-01, 1.3178294573643412e-01, 1.3953488372093023e-01, 1.4728682170542637e-01, 1.5503875968992248e-01, 1.6279069767441862e-01, 1.7054263565891473e-01, 1.7829457364341086e-01, 1.8604651162790697e-01, 1.9379844961240311e-01, 2.0155038759689922e-01, 2.0930232558139536e-01, 2.1705426356589147e-01, 2.2480620155038761e-01, 2.3255813953488372e-01, 2.4031007751937986e-01, 2.4806201550387597e-01, 2.5581395348837210e-01, 2.6356589147286824e-01, 2.7131782945736432e-01, 2.7906976744186046e-01, 2.8682170542635660e-01, 2.9457364341085274e-01, 3.0232558139534882e-01, 3.1007751937984496e-01, 3.1782945736434109e-01, 3.2558139534883723e-01, 3.3333333333333331e-01, 3.4108527131782945e-01, 3.4883720930232559e-01, 3.5658914728682173e-01, 3.6434108527131781e-01, 3.7209302325581395e-01, 3.7984496124031009e-01, 3.8759689922480622e-01, 3.9534883720930231e-01, 4.0310077519379844e-01, 4.1085271317829458e-01, 4.1860465116279072e-01, 4.2635658914728680e-01, 4.3410852713178294e-01, 4.4186046511627908e-01, 4.4961240310077522e-01, 4.5736434108527130e-01, 4.6511627906976744e-01, 4.7286821705426357e-01, 4.8062015503875971e-01, 4.8837209302325579e-01, 4.9612403100775193e-01, 5.0387596899224807e-01, 5.1162790697674421e-01, 5.1937984496124034e-01, 5.2713178294573648e-01, 5.3488372093023251e-01, 5.4263565891472865e-01, 5.5038759689922478e-01, 5.5813953488372092e-01, 5.6589147286821706e-01, 5.7364341085271320e-01, 5.8139534883720934e-01, 5.8914728682170547e-01, 5.9689922480620150e-01, 6.0465116279069764e-01, 6.1240310077519378e-01, 6.2015503875968991e-01, 6.2790697674418605e-01, 6.3565891472868219e-01, 6.4341085271317833e-01, 6.5116279069767447e-01, 6.5891472868217049e-01, 6.6666666666666663e-01, 6.7441860465116277e-01, 6.8217054263565891e-01, 6.8992248062015504e-01, 6.9767441860465118e-01, 7.0542635658914732e-01, 7.1317829457364346e-01, 7.2093023255813948e-01, 7.2868217054263562e-01, 7.3643410852713176e-01, 7.4418604651162790e-01, 7.5193798449612403e-01, 7.5968992248062017e-01, 7.6744186046511631e-01, 7.7519379844961245e-01, 7.8294573643410847e-01, 7.9069767441860461e-01, 7.9844961240310075e-01, 8.0620155038759689e-01, 8.1395348837209303e-01, 8.2170542635658916e-01, 8.2945736434108530e-01, 8.3720930232558144e-01, 8.4496124031007747e-01, 8.5271317829457360e-01, 8.6046511627906974e-01, 8.6821705426356588e-01, 8.7596899224806202e-01, 8.8372093023255816e-01, 8.9147286821705429e-01, 8.9922480620155043e-01, 9.0697674418604646e-01, 9.1472868217054260e-01, 9.2248062015503873e-01, 9.3023255813953487e-01, 9.3798449612403101e-01, 9.4573643410852715e-01, 9.5348837209302328e-01, 9.6124031007751942e-01, 9.6899224806201545e-01, 9.7674418604651159e-01, 9.8449612403100772e-01, 9.9224806201550386e-01, 1.0000000000000000e+00, 1.0000000000000000e+00, 1.0000000000000000e+00, 1.0000000000000000e+00, 1.0000000000000000e+00, 1.0000000000000000e+00, 1.0000000000000000e+00, 1.0000000000000000e+00, 1.0000000000000000e+00, 1.0000000000000000e+00, 1.0000000000000000e+00, 1.0000000000000000e+00, 1.0000000000000000e+00, 1.0000000000000000e+00, 1.0000000000000000e+00, 1.0000000000000000e+00, 1.0000000000000000e+00, 1.0000000000000000e+00, 1.0000000000000000e+00, 1.0000000000000000e+00, 1.0000000000000000e+00, 1.0000000000000000e+00, 1.0000000000000000e+00, 1.0000000000000000e+00, 1.0000000000000000e+00, 1.0000000000000000e+00, 1.0000000000000000e+00, 1.0000000000000000e+00, 1.0000000000000000e+00, 1.0000000000000000e+00, 1.0000000000000000e+00, 1.0000000000000000e+00, 1.0000000000000000e+00, 1.0000000000000000e+00, 1.0000000000000000e+00, 1.0000000000000000e+00, 1.0000000000000000e+00, 1.0000000000000000e+00, 1.0000000000000000e+00, 1.0000000000000000e+00, 1.0000000000000000e+00, 1.0000000000000000e+00, 1.0000000000000000e+00, 1.0000000000000000e+00, 1.0000000000000000e+00, 1.0000000000000000e+00, 1.0000000000000000e+00, 1.0000000000000000e+00, 1.0000000000000000e+00, 1.0000000000000000e+00, 1.0000000000000000e+00, 1.0000000000000000e+00, 1.0000000000000000e+00, 1.0000000000000000e+00, 1.0000000000000000e+00, 1.0000000000000000e+00, 1.0000000000000000e+00, 1.0000000000000000e+00, 1.0000000000000000e+00, 1.0000000000000000e+00, 1.0000000000000000e+00, 1.0000000000000000e+00, 1.0000000000000000e+00, 1.0000000000000000e+00, 1.0000000000000000e+00, 1.0000000000000000e+00, 1.0000000000000000e+00, 1.0000000000000000e+00, 1.0000000000000000e+00, 1.0000000000000000e+00, 1.0000000000000000e+00, 1.0000000000000000e+00, 1.0000000000000000e+00, 1.0000000000000000e+00, 1.0000000000000000e+00, 1.0000000000000000e+00, 1.0000000000000000e+00, 1.0000000000000000e+00, 1.0000000000000000e+00, 1.0000000000000000e+00, 1.0000000000000000e+00, 1.0000000000000000e+00, 1.0000000000000000e+00, 1.0000000000000000e+00, 1.0000000000000000e+00, 1.0000000000000000e+00, 1.0000000000000000e+00, 1.0000000000000000e+00, 1.0000000000000000e+00, 1.0000000000000000e+00, 1.0000000000000000e+00, 1.0000000000000000e+00, 1.0000000000000000e+00, 1.0000000000000000e+00, 1.0000000000000000e+00, 1.0000000000000000e+00, 1.0000000000000000e+00, 1.0000000000000000e+00, 1.0000000000000000e+00, 1.0000000000000000e+00, 1.0000000000000000e+00, 1.0000000000000000e+00, 1.0000000000000000e+00, 1.0000000000000000e+00, 1.0000000000000000e+00, 1.0000000000000000e+00, 1.0000000000000000e+00, 1.0000000000000000e+00, 1.0000000000000000e+00, 1.0000000000000000e+00, 1.0000000000000000e+00, 1.0000000000000000e+00, 1.0000000000000000e+00, 1.0000000000000000e+00, 1.0000000000000000e+00, 1.0000000000000000e+00, 1.0000000000000000e+00, 1.0000000000000000e+00, 1.0000000000000000e+00, 1.0000000000000000e+00, 1.0000000000000000e+00, 1.0000000000000000e+00, 1.0000000000000000e+00, 1.0000000000000000e+00, 1.0000000000000000e+00, 1.0000000000000000e+00, 1.0000000000000000e+00, 1.0000000000000000e+00, 1.0000000000000000e+00, 1.0000000000000000e+00, 1.0000000000000000e+00, 1.0000000000000000e+00, 9.9224806201550386e-01, 9.8449612403100772e-01, 9.7674418604651159e-01, 9.6899224806201545e-01, 9.6124031007751942e-01, 9.5348837209302328e-01, 9.4573643410852715e-01, 9.3798449612403101e-01, 9.3023255813953487e-01, 9.2248062015503873e-01, 9.1472868217054260e-01, 9.0697674418604657e-01, 8.9922480620155043e-01, 8.9147286821705429e-01, 8.8372093023255816e-01, 8.7596899224806202e-01, 8.6821705426356588e-01, 8.6046511627906974e-01, 8.5271317829457360e-01, 8.4496124031007747e-01, 8.3720930232558133e-01, 8.2945736434108530e-01, 8.2170542635658916e-01, 8.1395348837209303e-01, 8.0620155038759689e-01, 7.9844961240310075e-01, 7.9069767441860461e-01, 7.8294573643410859e-01, 7.7519379844961245e-01, 7.6744186046511631e-01, 7.5968992248062017e-01, 7.5193798449612403e-01, 7.4418604651162790e-01, 7.3643410852713176e-01, 7.2868217054263562e-01, 7.2093023255813948e-01, 7.1317829457364335e-01, 7.0542635658914721e-01, 6.9767441860465118e-01, 6.8992248062015504e-01, 6.8217054263565891e-01, 6.7441860465116277e-01, 6.6666666666666674e-01, 6.5891472868217060e-01, 6.5116279069767447e-01, 6.4341085271317833e-01, 6.3565891472868219e-01, 6.2790697674418605e-01, 6.2015503875968991e-01, 6.1240310077519378e-01, 6.0465116279069764e-01, 5.9689922480620150e-01, 5.8914728682170536e-01, 5.8139534883720922e-01, 5.7364341085271320e-01, 5.6589147286821706e-01, 5.5813953488372092e-01, 5.5038759689922478e-01, 5.4263565891472876e-01, 5.3488372093023262e-01, 5.2713178294573648e-01, 5.1937984496124034e-01, 5.1162790697674421e-01, 5.0387596899224807e-01, 4.9612403100775193e-01, 4.8837209302325579e-01, 4.8062015503875966e-01, 4.7286821705426352e-01, 4.6511627906976749e-01, 4.5736434108527135e-01, 4.4961240310077522e-01, 4.4186046511627908e-01, 4.3410852713178294e-01, 4.2635658914728680e-01, 4.1860465116279066e-01, 4.1085271317829453e-01, 4.0310077519379850e-01, 3.9534883720930236e-01, 3.8759689922480622e-01, 3.7984496124031009e-01, 3.7209302325581395e-01, 3.6434108527131781e-01, 3.5658914728682167e-01, 3.4883720930232553e-01, 3.4108527131782951e-01, 3.3333333333333337e-01, 3.2558139534883723e-01, 3.1782945736434109e-01, 3.1007751937984496e-01, 3.0232558139534882e-01, 2.9457364341085268e-01, 2.8682170542635654e-01, 2.7906976744186052e-01, 2.7131782945736438e-01, 2.6356589147286824e-01, 2.5581395348837210e-01, 2.4806201550387597e-01, 2.4031007751937983e-01, 2.3255813953488369e-01, 2.2480620155038755e-01, 2.1705426356589153e-01, 2.0930232558139539e-01, 2.0155038759689925e-01, 1.9379844961240311e-01, 1.8604651162790697e-01, 1.7829457364341084e-01, 1.7054263565891470e-01, 1.6279069767441856e-01, 1.5503875968992253e-01, 1.4728682170542640e-01, 1.3953488372093026e-01, 1.3178294573643412e-01, 1.2403100775193798e-01, 1.1627906976744184e-01, 1.0852713178294571e-01, 1.0077519379844957e-01, 9.3023255813953543e-02, 8.5271317829457405e-02, 7.7519379844961267e-02, 6.9767441860465129e-02, 6.2015503875968991e-02, 5.4263565891472854e-02, 4.6511627906976716e-02, 3.8759689922480578e-02, 3.1007751937984551e-02, 2.3255813953488413e-02, 1.5503875968992276e-02, 7.7519379844961378e-03, 0.0000000000000000e+00};
float pathY_circle[520]={ 0.0000000000000000e+00, 3.6640359436790337e-05, 1.4655606768343432e-04, 3.2973101533567695e-04, 5.8613835600984654e-04, 9.1574051027737413e-04, 1.3184891711727764e-03, 1.7943253112731594e-03, 2.3431791913497424e-03, 2.9649703705887376e-03, 3.6596077183809195e-03, 4.4269894276778854e-03, 5.2670030299130643e-03, 6.1795254114851428e-03, 7.1644228318019088e-03, 8.2215509428814060e-03, 9.3507548105078442e-03, 1.0551868936938769e-02, 1.1824717285160991e-02, 1.3169113304690561e-02, 1.4584859958913898e-02, 1.6071749753965914e-02, 1.7629564769140460e-02, 1.9258076688829229e-02, 2.0957046835983817e-02, 2.2726226207096745e-02, 2.4565355508695819e-02, 2.6474165195346344e-02, 2.8452375509156302e-02, 3.0499696520777886e-02, 3.2615828171900119e-02, 3.4800460319225790e-02, 3.7053272779926372e-02, 3.9373935378568703e-02, 4.1762107995505782e-02, 4.4217440616725279e-02, 4.6739573385148059e-02, 4.9328136653369437e-02, 5.1982751037835062e-02, 5.4703027474444166e-02, 5.7488567275571056e-02, 6.0338962188497658e-02, 6.3253794455247314e-02, 6.6232636873812145e-02, 6.9275052860764685e-02, 7.2380596515243534e-02, 7.5548812684305633e-02, 7.8779237029634186e-02, 8.2071396095592775e-02, 8.5424807378615131e-02, 8.8838979397922513e-02, 9.2313411767554865e-02, 9.5847595269708818e-02, 9.9441011929369050e-02, 1.0309313509022344e-01, 1.0680342949185079e-01, 1.1057135134816903e-01, 1.1439634842713359e-01, 1.1827786013167335e-01, 1.2221531758185200e-01, 1.2620814369824485e-01, 1.3025575328651540e-01, 1.3435755312318304e-01, 1.3851294204256637e-01, 1.4272131102489094e-01, 1.4698204328554809e-01, 1.5129451436549196e-01, 1.5565809222276067e-01, 1.6007213732510989e-01, 1.6453600274374303e-01, 1.6904903424812651e-01, 1.7361057040187439e-01, 1.7821994265968960e-01, 1.8287647546534702e-01, 1.8757948635070371e-01, 1.9232828603572255e-01, 1.9712217852949410e-01, 2.0196046123224215e-01, 2.0684242503829747e-01, 2.1176735444002570e-01, 2.1673452763269285e-01, 2.2174321662025426e-01, 2.2679268732205077e-01, 2.3188219968039642e-01, 2.3701100776904244e-01, 2.4217835990250158e-01, 2.4738349874621574e-01, 2.5262566142755222e-01, 2.5790407964761175e-01, 2.6321797979383088e-01, 2.6856658305336401e-01, 2.7394910552722762e-01, 2.7936475834518926e-01, 2.8481274778138543e-01, 2.9029227537065172e-01, 2.9580253802554635e-01, 3.0134272815405228e-01, 3.0691203377793880e-01, 3.1250963865176651e-01, 3.1813472238251739e-01, 3.2378646054983196e-01, 3.2946402482683890e-01, 3.3516658310155489e-01, 3.4089329959884018e-01, 3.4664333500289168e-01, 3.5241584658025304e-01, 3.5820998830332851e-01, 3.6402491097437628e-01, 3.6985976234996942e-01, 3.7571368726590149e-01, 3.8158582776252009e-01, 3.8747532321047140e-01, 3.9338131043683511e-01, 3.9930292385163180e-01, 4.0523929557468574e-01, 4.1118955556282233e-01, 4.1715283173738255e-01, 4.2312825011203659e-01, 4.2911493492087627e-01, 4.3511200874676886e-01, 4.4111859264995201e-01, 4.4713380629685301e-01, 4.5315676808911126e-01, 4.5918659529278727e-01, 4.6522240416773636e-01, 4.7126331009713202e-01, 4.7730842771711612e-01, 4.8335687104655861e-01, 4.8940775361690908e-01, 4.9546018860211843e-01, 5.0151328894861347e-01, 5.0756616750530448e-01, 5.1361793715360760e-01, 5.1966771093746233e-01, 5.2571460219332489e-01, 5.3175772468011884e-01, 5.3779619270912415e-01, 5.4382912127378469e-01, 5.4985562617941608e-01, 5.5587482417279477e-01, 5.6188583307160900e-01, 5.6788777189375195e-01, 5.7387976098644078e-01, 5.7986092215513896e-01, 5.8583037879226629e-01, 5.9178725600567528e-01, 5.9773068074687730e-01, 6.0365978193899728e-01, 6.0957369060443944e-01, 6.1547153999224746e-01, 6.2135246570513536e-01, 6.2721560582617519e-01, 6.3306010104512134e-01, 6.3888509478435163e-01, 6.4468973332440860e-01, 6.5047316592912230e-01, 6.5623454497029499e-01, 6.6197302605193120e-01, 6.6768776813399289e-01, 6.7337793365566423e-01, 6.7904268865810535e-01, 6.8468120290667867e-01, 6.9029265001262896e-01, 6.9587620755420077e-01, 7.0143105719717314e-01, 7.0695638481479550e-01, 7.1245138060710866e-01, 7.1791523921962852e-01, 7.2334715986138132e-01, 7.2874634642226832e-01, 7.3411200758974404e-01, 7.3944335696479346e-01, 7.4473961317718718e-01, 7.4999999999999989e-01, 7.5522374646337587e-01, 7.6041008696752299e-01, 7.6555826139492034e-01, 7.7066751522172217e-01, 7.7573709962834125e-01, 7.8076627160919876e-01, 7.8575429408161823e-01, 7.9070043599385464e-01, 7.9560397243223813e-01, 8.0046418472741832e-01, 8.0528036055969299e-01, 8.1005179406340821e-01, 8.1477778593040939e-01, 8.1945764351253392e-01, 8.2409068092312565e-01, 8.2867621913756095e-01, 8.3321358609276630e-01, 8.3770211678571671e-01, 8.4214115337090090e-01, 8.4653004525673436e-01, 8.5086814920091258e-01, 8.5515482940468424e-01, 8.5938945760603525e-01, 8.6357141317176866e-01, 8.6770008318846392e-01, 8.7177486255230707e-01, 8.7579515405777630e-01, 8.7976036848516836e-01, 8.8366992468695593e-01, 8.8752324967296092e-01, 8.9131977869433354e-01, 8.9505895532632174e-01, 8.9874023154982230e-01, 9.0236306783169939e-01, 9.0592693320385864e-01, 9.0943130534106731e-01, 9.1287567063750641e-01, 9.1625952428204616e-01, 9.1958237033223100e-01, 9.2284372178696661e-01, 9.2604310065789486e-01, 9.2918003803944826e-01, 9.3225407417757422e-01, 9.3526475853711677e-01, 9.3821164986784744e-01, 9.4109431626913587e-01, 9.4391233525324969e-01, 9.4666529380727527e-01, 9.4935278845364846e-01, 9.5197442530929033e-01, 9.5452982014333387e-01, 9.5701859843343828e-01, 9.5944039542067894e-01, 9.6179485616300764e-01, 9.6408163558727289e-01, 9.6630039853979444e-01, 9.6845081983548387e-01, 9.7053258430550438e-01, 9.7254538684346215e-01, 9.7448893245012336e-01, 9.7636293627664950e-01, 9.7816712366634562e-01, 9.7990123019491349e-01, 9.8156500170920757e-01, 9.8315819436448237e-01, 9.8468057466013170e-01, 9.8613191947391088e-01, 9.8751201609463712e-01, 9.8882066225336529e-01, 9.9005766615303326e-01, 9.9122284649657078e-01, 9.9231603251347145e-01, 9.9333706398482102e-01, 9.9428579126677896e-01, 9.9516207531251089e-01, 9.9596578769256705e-01, 9.9669681061370563e-01, 9.9735503693615613e-01, 9.9794037018932258e-01, 9.9845272458592171e-01, 9.9889202503455654e-01, 9.9925820715072156e-01, 9.9955121726623952e-01, 9.9977101243712663e-01, 9.9991756044988667e-01, 9.9999083982623205e-01, 9.9999083982623205e-01, 9.9991756044988667e-01, 9.9977101243712663e-01, 9.9955121726623952e-01, 9.9925820715072156e-01, 9.9889202503455654e-01, 9.9845272458592171e-01, 9.9794037018932258e-01, 9.9735503693615624e-01, 9.9669681061370563e-01, 9.9596578769256716e-01, 9.9516207531251089e-01, 9.9428579126677907e-01, 9.9333706398482102e-01, 9.9231603251347145e-01, 9.9122284649657078e-01, 9.9005766615303337e-01, 9.8882066225336540e-01, 9.8751201609463712e-01, 9.8613191947391088e-01, 9.8468057466013181e-01, 9.8315819436448249e-01, 9.8156500170920769e-01, 9.7990123019491360e-01, 9.7816712366634562e-01, 9.7636293627664950e-01, 9.7448893245012336e-01, 9.7254538684346215e-01, 9.7053258430550438e-01, 9.6845081983548398e-01, 9.6630039853979444e-01, 9.6408163558727300e-01, 9.6179485616300786e-01, 9.5944039542067894e-01, 9.5701859843343817e-01, 9.5452982014333387e-01, 9.5197442530929033e-01, 9.4935278845364857e-01, 9.4666529380727527e-01, 9.4391233525324980e-01, 9.4109431626913587e-01, 9.3821164986784744e-01, 9.3526475853711688e-01, 9.3225407417757444e-01, 9.2918003803944837e-01, 9.2604310065789486e-01, 9.2284372178696672e-01, 9.1958237033223089e-01, 9.1625952428204605e-01, 9.1287567063750641e-01, 9.0943130534106731e-01, 9.0592693320385875e-01, 9.0236306783169951e-01, 8.9874023154982252e-01, 8.9505895532632174e-01, 8.9131977869433343e-01, 8.8752324967296092e-01, 8.8366992468695593e-01, 8.7976036848516848e-01, 8.7579515405777630e-01, 8.7177486255230707e-01, 8.6770008318846381e-01, 8.6357141317176878e-01, 8.5938945760603547e-01, 8.5515482940468435e-01, 8.5086814920091269e-01, 8.4653004525673459e-01, 8.4214115337090090e-01, 8.3770211678571682e-01, 8.3321358609276608e-01, 8.2867621913756118e-01, 8.2409068092312565e-01, 8.1945764351253381e-01, 8.1477778593040950e-01, 8.1005179406340821e-01, 8.0528036055969310e-01, 8.0046418472741832e-01, 7.9560397243223835e-01, 7.9070043599385453e-01, 7.8575429408161845e-01, 7.8076627160919854e-01, 7.7573709962834148e-01, 7.7066751522172194e-01, 7.6555826139492045e-01, 7.6041008696752321e-01, 7.5522374646337576e-01, 7.5000000000000022e-01, 7.4473961317718707e-01, 7.3944335696479369e-01, 7.3411200758974382e-01, 7.2874634642226854e-01, 7.2334715986138143e-01, 7.1791523921962863e-01, 7.1245138060710878e-01, 7.0695638481479528e-01, 7.0143105719717336e-01, 6.9587620755420077e-01, 6.9029265001262941e-01, 6.8468120290667867e-01, 6.7904268865810535e-01, 6.7337793365566423e-01, 6.6768776813399300e-01, 6.6197302605193131e-01, 6.5623454497029488e-01, 6.5047316592912252e-01, 6.4468973332440849e-01, 6.3888509478435163e-01, 6.3306010104512145e-01, 6.2721560582617530e-01, 6.2135246570513536e-01, 6.1547153999224757e-01, 6.0957369060443967e-01, 6.0365978193899750e-01, 5.9773068074687730e-01, 5.9178725600567528e-01, 5.8583037879226618e-01, 5.7986092215513896e-01, 5.7387976098644078e-01, 5.6788777189375206e-01, 5.6188583307160911e-01, 5.5587482417279466e-01, 5.4985562617941641e-01, 5.4382912127378458e-01, 5.3779619270912460e-01, 5.3175772468011884e-01, 5.2571460219332489e-01, 5.1966771093746245e-01, 5.1361793715360726e-01, 5.0756616750530459e-01, 5.0151328894861336e-01, 4.9546018860211882e-01, 4.8940775361690902e-01, 4.8335687104655900e-01, 4.7730842771711612e-01, 4.7126331009713218e-01, 4.6522240416773653e-01, 4.5918659529278699e-01, 4.5315676808911154e-01, 4.4713380629685284e-01, 4.4111859264995240e-01, 4.3511200874676881e-01, 4.2911493492087632e-01, 4.2312825011203659e-01, 4.1715283173738260e-01, 4.1118955556282250e-01, 4.0523929557468602e-01, 3.9930292385163207e-01, 3.9338131043683494e-01, 3.8747532321047135e-01, 3.8158582776252004e-01, 3.7571368726590154e-01, 3.6985976234996959e-01, 3.6402491097437639e-01, 3.5820998830332862e-01, 3.5241584658025332e-01, 3.4664333500289146e-01, 3.4089329959884018e-01, 3.3516658310155484e-01, 3.2946402482683890e-01, 3.2378646054983201e-01, 3.1813472238251744e-01, 3.1250963865176679e-01, 3.0691203377793863e-01, 3.0134272815405250e-01, 2.9580253802554624e-01, 2.9029227537065205e-01, 2.8481274778138549e-01, 2.7936475834518931e-01, 2.7394910552722773e-01, 2.6856658305336378e-01, 2.6321797979383105e-01, 2.5790407964761164e-01, 2.5262566142755261e-01, 2.4738349874621568e-01, 2.4217835990250158e-01, 2.3701100776904249e-01, 2.3188219968039647e-01, 2.2679268732205088e-01, 2.2174321662025409e-01, 2.1673452763269307e-01, 2.1176735444002559e-01, 2.0684242503829742e-01, 2.0196046123224209e-01, 1.9712217852949415e-01, 1.9232828603572261e-01, 1.8757948635070382e-01, 1.8287647546534719e-01, 1.7821994265968977e-01, 1.7361057040187422e-01, 1.6904903424812640e-01, 1.6453600274374303e-01, 1.6007213732510989e-01, 1.5565809222276072e-01, 1.5129451436549202e-01, 1.4698204328554826e-01, 1.4272131102489077e-01, 1.3851294204256653e-01, 1.3435755312318298e-01, 1.3025575328651562e-01, 1.2620814369824485e-01, 1.2221531758185206e-01, 1.1827786013167335e-01, 1.1439634842713342e-01, 1.1057135134816914e-01, 1.0680342949185062e-01, 1.0309313509022361e-01, 9.9441011929368994e-02, 9.5847595269709041e-02, 9.2313411767554865e-02, 8.8838979397922513e-02, 8.5424807378615242e-02, 8.2071396095592608e-02, 7.8779237029634352e-02, 7.5548812684305522e-02, 7.2380596515243645e-02, 6.9275052860764685e-02, 6.6232636873812201e-02, 6.3253794455247314e-02, 6.0338962188497713e-02, 5.7488567275571167e-02, 5.4703027474444277e-02, 5.1982751037835173e-02, 4.9328136653369381e-02, 4.6739573385148003e-02, 4.4217440616725223e-02, 4.1762107995505782e-02, 3.9373935378568703e-02, 3.7053272779926427e-02, 3.4800460319225845e-02, 3.2615828171900230e-02, 3.0499696520777830e-02, 2.8452375509156247e-02, 2.6474165195346344e-02, 2.4565355508695819e-02, 2.2726226207096800e-02, 2.0957046835983817e-02, 1.9258076688829284e-02, 1.7629564769140460e-02, 1.6071749753966025e-02, 1.4584859958913898e-02, 1.3169113304690616e-02, 1.1824717285160991e-02, 1.0551868936938769e-02, 9.3507548105078442e-03, 8.2215509428813505e-03, 7.1644228318019643e-03, 6.1795254114851428e-03, 5.2670030299131199e-03, 4.4269894276778854e-03, 3.6596077183809750e-03, 2.9649703705887376e-03, 2.3431791913497424e-03, 1.7943253112731594e-03, 1.3184891711727764e-03, 9.1574051027742964e-04, 5.8613835600979103e-04, 3.2973101533567695e-04, 1.4655606768343432e-04, 3.6640359436790337e-05, 0.0000000000000000e+00};
float pathY_oval[520]={ -0.0000000000000000e+00, 7.3280718873580675e-05, 2.9311213536686864e-04, 6.5946203067135389e-04, 1.1722767120195821e-03, 1.8314810205547483e-03, 2.6369783423455528e-03, 3.5886506225463188e-03, 4.6863583826994848e-03, 5.9299407411774752e-03, 7.3192154367618389e-03, 8.8539788553557708e-03, 1.0534006059826129e-02, 1.2359050822970286e-02, 1.4328845663603818e-02, 1.6443101885762812e-02, 1.8701509621015688e-02, 2.1103737873877537e-02, 2.3649434570321981e-02, 2.6338226609381121e-02, 2.9169719917827797e-02, 3.2143499507931828e-02, 3.5259129538280920e-02, 3.8516153377658457e-02, 4.1914093671967634e-02, 4.5452452414193489e-02, 4.9130711017391637e-02, 5.2948330390692688e-02, 5.6904751018312605e-02, 6.0999393041555772e-02, 6.5231656343800237e-02, 6.9600920638451469e-02, 7.4106545559852743e-02, 7.8747870757137406e-02, 8.3524215991011452e-02, 8.8434881233450446e-02, 9.3479146770296118e-02, 9.8656273306738873e-02, 1.0396550207567012e-01, 1.0940605494888833e-01, 1.1497713455114211e-01, 1.2067792437699532e-01, 1.2650758891049452e-01, 1.3246527374762440e-01, 1.3855010572152937e-01, 1.4476119303048696e-01, 1.5109762536861115e-01, 1.5755847405926837e-01, 1.6414279219118544e-01, 1.7084961475723026e-01, 1.7767795879584491e-01, 1.8462682353510973e-01, 1.9169519053941764e-01, 1.9888202385873810e-01, 2.0618627018044677e-01, 2.1360685898370146e-01, 2.2114270269633796e-01, 2.2879269685426717e-01, 2.3655572026334659e-01, 2.4443063516370400e-01, 2.5241628739648958e-01, 2.6051150657303079e-01, 2.6871510624636608e-01, 2.7702588408513273e-01, 2.8544262204978188e-01, 2.9396408657109618e-01, 3.0258902873098381e-01, 3.1131618444552134e-01, 3.2014427465021977e-01, 3.2907200548748605e-01, 3.3809806849625290e-01, 3.4722114080374866e-01, 3.5643988531937920e-01, 3.6575295093069393e-01, 3.7515897270140741e-01, 3.8465657207144510e-01, 3.9424435705898808e-01, 4.0392092246448430e-01, 4.1368485007659483e-01, 4.2353470888005140e-01, 4.3346905526538559e-01, 4.4348643324050852e-01, 4.5358537464410142e-01, 4.6376439936079283e-01, 4.7402201553808487e-01, 4.8435671980500317e-01, 4.9476699749243136e-01, 5.0525132285510432e-01, 5.1580815929522350e-01, 5.2643595958766176e-01, 5.3713316610672801e-01, 5.4789821105445524e-01, 5.5872951669037851e-01, 5.6962549556277087e-01, 5.8058455074130344e-01, 5.9160507605109269e-01, 6.0268545630810444e-01, 6.1382406755587748e-01, 6.2501927730353302e-01, 6.3626944476503478e-01, 6.4757292109966391e-01, 6.5892804965367768e-01, 6.7033316620310979e-01, 6.8178659919768037e-01, 6.9328667000578326e-01, 7.0483169316050609e-01, 7.1641997660665691e-01, 7.2804982194875245e-01, 7.3971952469993885e-01, 7.5142737453180286e-01, 7.6317165552504007e-01, 7.7495064642094269e-01, 7.8676262087367022e-01, 7.9860584770326359e-01, 8.1047859114937149e-01, 8.2237911112564455e-01, 8.3430566347476509e-01, 8.4625650022407306e-01, 8.5822986984175254e-01, 8.7022401749353773e-01, 8.8223718529990391e-01, 8.9426761259370591e-01, 9.0631353617822252e-01, 9.1837319058557443e-01, 9.3044480833547261e-01, 9.4252662019426392e-01, 9.5461685543423225e-01, 9.6671374209311711e-01, 9.7881550723381805e-01, 9.9092037720423676e-01, 1.0030265778972269e+00, 1.0151323350106090e+00, 1.0272358743072150e+00, 1.0393354218749247e+00, 1.0514292043866496e+00, 1.0635154493602377e+00, 1.0755923854182483e+00, 1.0876582425475694e+00, 1.0997112523588322e+00, 1.1117496483455895e+00, 1.1237716661432180e+00, 1.1357755437875037e+00, 1.1477595219728813e+00, 1.1597218443102779e+00, 1.1716607575845324e+00, 1.1835745120113506e+00, 1.1954613614937546e+00, 1.2073195638779946e+00, 1.2191473812088789e+00, 1.2309430799844947e+00, 1.2427049314102705e+00, 1.2544312116523504e+00, 1.2661202020902427e+00, 1.2777701895687033e+00, 1.2893794666488172e+00, 1.3009463318582446e+00, 1.3124690899405900e+00, 1.3239460521038624e+00, 1.3353755362679858e+00, 1.3467558673113285e+00, 1.3580853773162107e+00, 1.3693624058133573e+00, 1.3805853000252579e+00, 1.3917524151084015e+00, 1.4028621143943460e+00, 1.4139127696295910e+00, 1.4249027612142173e+00, 1.4358304784392570e+00, 1.4466943197227626e+00, 1.4574926928445366e+00, 1.4682240151794881e+00, 1.4788867139295869e+00, 1.4894792263543744e+00, 1.4999999999999998e+00, 1.5104474929267517e+00, 1.5208201739350460e+00, 1.5311165227898407e+00, 1.5413350304434441e+00, 1.5514741992566825e+00, 1.5615325432183975e+00, 1.5715085881632365e+00, 1.5814008719877091e+00, 1.5912079448644760e+00, 1.6009283694548364e+00, 1.6105607211193860e+00, 1.6201035881268164e+00, 1.6295555718608188e+00, 1.6389152870250676e+00, 1.6481813618462513e+00, 1.6573524382751219e+00, 1.6664271721855326e+00, 1.6754042335714334e+00, 1.6842823067418018e+00, 1.6930600905134687e+00, 1.7017362984018249e+00, 1.7103096588093682e+00, 1.7187789152120705e+00, 1.7271428263435373e+00, 1.7354001663769276e+00, 1.7435497251046139e+00, 1.7515903081155524e+00, 1.7595207369703367e+00, 1.7673398493739116e+00, 1.7750464993459216e+00, 1.7826395573886671e+00, 1.7901179106526435e+00, 1.7974804630996446e+00, 1.8047261356633986e+00, 1.8118538664077173e+00, 1.8188626106821344e+00, 1.8257513412750126e+00, 1.8325190485640923e+00, 1.8391647406644620e+00, 1.8456874435739332e+00, 1.8520862013157895e+00, 1.8583600760788963e+00, 1.8645081483551484e+00, 1.8705295170742335e+00, 1.8764232997356949e+00, 1.8821886325382717e+00, 1.8878246705064994e+00, 1.8933305876145505e+00, 1.8987055769072969e+00, 1.9039488506185807e+00, 1.9090596402866677e+00, 1.9140371968668766e+00, 1.9188807908413579e+00, 1.9235897123260153e+00, 1.9281632711745458e+00, 1.9326007970795889e+00, 1.9369016396709677e+00, 1.9410651686110088e+00, 1.9450907736869243e+00, 1.9489778649002467e+00, 1.9527258725532990e+00, 1.9563342473326912e+00, 1.9598024603898270e+00, 1.9631300034184151e+00, 1.9663163887289647e+00, 1.9693611493202634e+00, 1.9722638389478218e+00, 1.9750240321892742e+00, 1.9776413245067306e+00, 1.9801153323060665e+00, 1.9824456929931416e+00, 1.9846320650269429e+00, 1.9866741279696420e+00, 1.9885715825335579e+00, 1.9903241506250218e+00, 1.9919315753851341e+00, 1.9933936212274113e+00, 1.9947100738723123e+00, 1.9958807403786452e+00, 1.9969054491718434e+00, 1.9977840500691131e+00, 1.9985164143014431e+00, 1.9991024345324790e+00, 1.9995420248742533e+00, 1.9998351208997733e+00, 1.9999816796524641e+00, 1.9999816796524641e+00, 1.9998351208997733e+00, 1.9995420248742533e+00, 1.9991024345324790e+00, 1.9985164143014433e+00, 1.9977840500691131e+00, 1.9969054491718434e+00, 1.9958807403786452e+00, 1.9947100738723125e+00, 1.9933936212274113e+00, 1.9919315753851343e+00, 1.9903241506250218e+00, 1.9885715825335581e+00, 1.9866741279696420e+00, 1.9846320650269429e+00, 1.9824456929931416e+00, 1.9801153323060667e+00, 1.9776413245067308e+00, 1.9750240321892742e+00, 1.9722638389478218e+00, 1.9693611493202636e+00, 1.9663163887289650e+00, 1.9631300034184154e+00, 1.9598024603898272e+00, 1.9563342473326912e+00, 1.9527258725532992e+00, 1.9489778649002467e+00, 1.9450907736869243e+00, 1.9410651686110088e+00, 1.9369016396709680e+00, 1.9326007970795889e+00, 1.9281632711745460e+00, 1.9235897123260157e+00, 1.9188807908413579e+00, 1.9140371968668763e+00, 1.9090596402866677e+00, 1.9039488506185807e+00, 1.8987055769072971e+00, 1.8933305876145505e+00, 1.8878246705064996e+00, 1.8821886325382717e+00, 1.8764232997356949e+00, 1.8705295170742338e+00, 1.8645081483551489e+00, 1.8583600760788967e+00, 1.8520862013157897e+00, 1.8456874435739334e+00, 1.8391647406644620e+00, 1.8325190485640921e+00, 1.8257513412750128e+00, 1.8188626106821348e+00, 1.8118538664077175e+00, 1.8047261356633990e+00, 1.7974804630996450e+00, 1.7901179106526435e+00, 1.7826395573886669e+00, 1.7750464993459218e+00, 1.7673398493739119e+00, 1.7595207369703370e+00, 1.7515903081155528e+00, 1.7435497251046141e+00, 1.7354001663769276e+00, 1.7271428263435376e+00, 1.7187789152120709e+00, 1.7103096588093687e+00, 1.7017362984018256e+00, 1.6930600905134692e+00, 1.6842823067418018e+00, 1.6754042335714336e+00, 1.6664271721855322e+00, 1.6573524382751224e+00, 1.6481813618462513e+00, 1.6389152870250676e+00, 1.6295555718608190e+00, 1.6201035881268167e+00, 1.6105607211193862e+00, 1.6009283694548366e+00, 1.5912079448644767e+00, 1.5814008719877091e+00, 1.5715085881632369e+00, 1.5615325432183973e+00, 1.5514741992566832e+00, 1.5413350304434439e+00, 1.5311165227898409e+00, 1.5208201739350464e+00, 1.5104474929267515e+00, 1.5000000000000004e+00, 1.4894792263543741e+00, 1.4788867139295876e+00, 1.4682240151794879e+00, 1.4574926928445371e+00, 1.4466943197227629e+00, 1.4358304784392573e+00, 1.4249027612142176e+00, 1.4139127696295908e+00, 1.4028621143943467e+00, 1.3917524151084015e+00, 1.3805853000252588e+00, 1.3693624058133573e+00, 1.3580853773162107e+00, 1.3467558673113287e+00, 1.3353755362679860e+00, 1.3239460521038628e+00, 1.3124690899405898e+00, 1.3009463318582453e+00, 1.2893794666488172e+00, 1.2777701895687033e+00, 1.2661202020902429e+00, 1.2544312116523506e+00, 1.2427049314102709e+00, 1.2309430799844954e+00, 1.2191473812088793e+00, 1.2073195638779950e+00, 1.1954613614937546e+00, 1.1835745120113506e+00, 1.1716607575845324e+00, 1.1597218443102779e+00, 1.1477595219728816e+00, 1.1357755437875041e+00, 1.1237716661432184e+00, 1.1117496483455893e+00, 1.0997112523588328e+00, 1.0876582425475692e+00, 1.0755923854182492e+00, 1.0635154493602379e+00, 1.0514292043866500e+00, 1.0393354218749249e+00, 1.0272358743072145e+00, 1.0151323350106094e+00, 1.0030265778972267e+00, 9.9092037720423765e-01, 9.7881550723381805e-01, 9.6671374209311800e-01, 9.5461685543423225e-01, 9.4252662019426436e-01, 9.3044480833547305e-01, 9.1837319058557398e-01, 9.0631353617822319e-01, 8.9426761259370580e-01, 8.8223718529990480e-01, 8.7022401749353773e-01, 8.5822986984175276e-01, 8.4625650022407328e-01, 8.3430566347476531e-01, 8.2237911112564510e-01, 8.1047859114937215e-01, 7.9860584770326426e-01, 7.8676262087366999e-01, 7.7495064642094280e-01, 7.6317165552504018e-01, 7.5142737453180308e-01, 7.3971952469993929e-01, 7.2804982194875290e-01, 7.1641997660665735e-01, 7.0483169316050676e-01, 6.9328667000578303e-01, 6.8178659919768037e-01, 6.7033316620310979e-01, 6.5892804965367791e-01, 6.4757292109966413e-01, 6.3626944476503500e-01, 6.2501927730353368e-01, 6.1382406755587726e-01, 6.0268545630810499e-01, 5.9160507605109247e-01, 5.8058455074130422e-01, 5.6962549556277109e-01, 5.5872951669037874e-01, 5.4789821105445558e-01, 5.3713316610672768e-01, 5.2643595958766221e-01, 5.1580815929522328e-01, 5.0525132285510521e-01, 4.9476699749243136e-01, 4.8435671980500317e-01, 4.7402201553808498e-01, 4.6376439936079294e-01, 4.5358537464410187e-01, 4.4348643324050818e-01, 4.3346905526538615e-01, 4.2353470888005118e-01, 4.1368485007659495e-01, 4.0392092246448430e-01, 3.9424435705898830e-01, 3.8465657207144521e-01, 3.7515897270140763e-01, 3.6575295093069438e-01, 3.5643988531937965e-01, 3.4722114080374855e-01, 3.3809806849625290e-01, 3.2907200548748605e-01, 3.2014427465021988e-01, 3.1131618444552156e-01, 3.0258902873098414e-01, 2.9396408657109652e-01, 2.8544262204978166e-01, 2.7702588408513318e-01, 2.6871510624636596e-01, 2.6051150657303135e-01, 2.5241628739648969e-01, 2.4443063516370411e-01, 2.3655572026334681e-01, 2.2879269685426684e-01, 2.2114270269633829e-01, 2.1360685898370135e-01, 2.0618627018044733e-01, 1.9888202385873799e-01, 1.9169519053941819e-01, 1.8462682353510973e-01, 1.7767795879584514e-01, 1.7084961475723048e-01, 1.6414279219118522e-01, 1.5755847405926870e-01, 1.5109762536861115e-01, 1.4476119303048740e-01, 1.3855010572152937e-01, 1.3246527374762440e-01, 1.2650758891049463e-01, 1.2067792437699543e-01, 1.1497713455114233e-01, 1.0940605494888855e-01, 1.0396550207567046e-01, 9.8656273306738762e-02, 9.3479146770296118e-02, 8.8434881233450557e-02, 8.3524215991011563e-02, 7.8747870757137517e-02, 7.4106545559852854e-02, 6.9600920638451691e-02, 6.5231656343800459e-02, 6.0999393041555661e-02, 5.6904751018312494e-02, 5.2948330390692688e-02, 4.9130711017391637e-02, 4.5452452414193600e-02, 4.1914093671967745e-02, 3.8516153377658569e-02, 3.5259129538280920e-02, 3.2143499507932050e-02, 2.9169719917827797e-02, 2.6338226609381343e-02, 2.3649434570321981e-02, 2.1103737873877537e-02, 1.8701509621015688e-02, 1.6443101885762812e-02, 1.4328845663603929e-02, 1.2359050822970286e-02, 1.0534006059826240e-02, 8.8539788553557708e-03, 7.3192154367619500e-03, 5.9299407411774752e-03, 4.6863583826994848e-03, 3.5886506225463188e-03, 2.6369783423455528e-03, 1.8314810205548593e-03, 1.1722767120195821e-03, 6.5946203067135389e-04, 2.9311213536686864e-04, 7.3280718873580675e-05, -0.0000000000000000e+00};
float pathY_7[520]={ 0.0000000000000000e+00, 0.0000000000000000e+00, 0.0000000000000000e+00, 0.0000000000000000e+00, 0.0000000000000000e+00, 0.0000000000000000e+00, 0.0000000000000000e+00, 0.0000000000000000e+00, 0.0000000000000000e+00, 0.0000000000000000e+00, 0.0000000000000000e+00, 0.0000000000000000e+00, 0.0000000000000000e+00, 0.0000000000000000e+00, 0.0000000000000000e+00, 0.0000000000000000e+00, 0.0000000000000000e+00, 0.0000000000000000e+00, 0.0000000000000000e+00, 0.0000000000000000e+00, 0.0000000000000000e+00, 0.0000000000000000e+00, 0.0000000000000000e+00, 0.0000000000000000e+00, 0.0000000000000000e+00, 0.0000000000000000e+00, 0.0000000000000000e+00, 0.0000000000000000e+00, 0.0000000000000000e+00, 0.0000000000000000e+00, 0.0000000000000000e+00, 0.0000000000000000e+00, 0.0000000000000000e+00, 0.0000000000000000e+00, 0.0000000000000000e+00, 0.0000000000000000e+00, 0.0000000000000000e+00, 0.0000000000000000e+00, 0.0000000000000000e+00, 0.0000000000000000e+00, 0.0000000000000000e+00, 0.0000000000000000e+00, 0.0000000000000000e+00, 0.0000000000000000e+00, 0.0000000000000000e+00, 0.0000000000000000e+00, 0.0000000000000000e+00, 0.0000000000000000e+00, 0.0000000000000000e+00, 0.0000000000000000e+00, 0.0000000000000000e+00, 0.0000000000000000e+00, 0.0000000000000000e+00, 0.0000000000000000e+00, 0.0000000000000000e+00, 0.0000000000000000e+00, 0.0000000000000000e+00, 0.0000000000000000e+00, 0.0000000000000000e+00, 0.0000000000000000e+00, 0.0000000000000000e+00, 0.0000000000000000e+00, 0.0000000000000000e+00, 0.0000000000000000e+00, 0.0000000000000000e+00, 0.0000000000000000e+00, 0.0000000000000000e+00, 0.0000000000000000e+00, 0.0000000000000000e+00, 0.0000000000000000e+00, 0.0000000000000000e+00, 0.0000000000000000e+00, 0.0000000000000000e+00, 0.0000000000000000e+00, 0.0000000000000000e+00, 0.0000000000000000e+00, 0.0000000000000000e+00, 0.0000000000000000e+00, 0.0000000000000000e+00, 0.0000000000000000e+00, 0.0000000000000000e+00, 0.0000000000000000e+00, 0.0000000000000000e+00, 0.0000000000000000e+00, 0.0000000000000000e+00, 0.0000000000000000e+00, 0.0000000000000000e+00, 0.0000000000000000e+00, 0.0000000000000000e+00, 0.0000000000000000e+00, 0.0000000000000000e+00, 0.0000000000000000e+00, 0.0000000000000000e+00, 0.0000000000000000e+00, 0.0000000000000000e+00, 0.0000000000000000e+00, 0.0000000000000000e+00, 0.0000000000000000e+00, 0.0000000000000000e+00, 0.0000000000000000e+00, 0.0000000000000000e+00, 0.0000000000000000e+00, 0.0000000000000000e+00, 0.0000000000000000e+00, 0.0000000000000000e+00, 0.0000000000000000e+00, 0.0000000000000000e+00, 0.0000000000000000e+00, 0.0000000000000000e+00, 0.0000000000000000e+00, 0.0000000000000000e+00, 0.0000000000000000e+00, 0.0000000000000000e+00, 0.0000000000000000e+00, 0.0000000000000000e+00, 0.0000000000000000e+00, 0.0000000000000000e+00, 0.0000000000000000e+00, 0.0000000000000000e+00, 0.0000000000000000e+00, 0.0000000000000000e+00, 0.0000000000000000e+00, 0.0000000000000000e+00, 0.0000000000000000e+00, 0.0000000000000000e+00, 0.0000000000000000e+00, 0.0000000000000000e+00, 0.0000000000000000e+00, 0.0000000000000000e+00, 0.0000000000000000e+00, 0.0000000000000000e+00, 0.0000000000000000e+00, 0.0000000000000000e+00, 0.0000000000000000e+00, 0.0000000000000000e+00, 0.0000000000000000e+00, 0.0000000000000000e+00, 0.0000000000000000e+00, 0.0000000000000000e+00, 0.0000000000000000e+00, 0.0000000000000000e+00, 0.0000000000000000e+00, 0.0000000000000000e+00, 0.0000000000000000e+00, 0.0000000000000000e+00, 0.0000000000000000e+00, 0.0000000000000000e+00, 0.0000000000000000e+00, 0.0000000000000000e+00, 0.0000000000000000e+00, 0.0000000000000000e+00, 0.0000000000000000e+00, 0.0000000000000000e+00, 0.0000000000000000e+00, 0.0000000000000000e+00, 0.0000000000000000e+00, 0.0000000000000000e+00, 0.0000000000000000e+00, 0.0000000000000000e+00, 0.0000000000000000e+00, 0.0000000000000000e+00, 0.0000000000000000e+00, 0.0000000000000000e+00, 0.0000000000000000e+00, 0.0000000000000000e+00, 0.0000000000000000e+00, 0.0000000000000000e+00, 0.0000000000000000e+00, 0.0000000000000000e+00, 0.0000000000000000e+00, 0.0000000000000000e+00, 0.0000000000000000e+00, 0.0000000000000000e+00, 0.0000000000000000e+00, 0.0000000000000000e+00, 0.0000000000000000e+00, 0.0000000000000000e+00, 0.0000000000000000e+00, 0.0000000000000000e+00, 0.0000000000000000e+00, 0.0000000000000000e+00, 0.0000000000000000e+00, 0.0000000000000000e+00, 0.0000000000000000e+00, 0.0000000000000000e+00, 0.0000000000000000e+00, 1.4172172286856021e-03, 5.9174658255964942e-03, 1.0417714422507284e-02, 1.4917963019418175e-02, 1.9418211616329065e-02, 2.3918460213239859e-02, 2.8418708810150746e-02, 3.2918957407061536e-02, 3.7419206003972326e-02, 4.1919454600883213e-02, 4.6419703197794107e-02, 5.0919951794705001e-02, 5.5420200391615798e-02, 5.9920448988526692e-02, 6.4420697585437572e-02, 6.8920946182348369e-02, 7.3421194779259263e-02, 7.7921443376170157e-02, 8.2421691973080830e-02, 8.6921940569991724e-02, 9.1422189166902618e-02, 9.5922437763813512e-02, 1.0042268636072431e-01, 1.0492293495763511e-01, 1.0942318355454608e-01, 1.1392343215145687e-01, 1.1842368074836765e-01, 1.2292392934527865e-01, 1.2742417794218944e-01, 1.3192442653910025e-01, 1.3642467513601123e-01, 1.4092492373292204e-01, 1.4542517232983282e-01, 1.4992542092674382e-01, 1.5442566952365461e-01, 1.5892591812056539e-01, 1.6342616671747640e-01, 1.6792641531438715e-01, 1.7242666391129796e-01, 1.7692691250820894e-01, 1.8142716110511975e-01, 1.8592740970203053e-01, 1.9042765829894154e-01, 1.9492790689585232e-01, 1.9942815549276333e-01, 2.0392840408967408e-01, 2.0842865268658489e-01, 2.1292890128349587e-01, 2.1742914988040668e-01, 2.2192939847731746e-01, 2.2642964707422847e-01, 2.3092989567113925e-01, 2.3543014426804984e-01, 2.3993039286496082e-01, 2.4443064146187163e-01, 2.4893089005878238e-01, 2.5343113865569344e-01, 2.5793138725260417e-01, 2.6243163584951495e-01, 2.6693188444642596e-01, 2.7143213304333674e-01, 2.7593238164024758e-01, 2.8043263023715853e-01, 2.8493287883406937e-01, 2.8943312743098010e-01, 2.9393337602789116e-01, 2.9843362462480189e-01, 3.0293387322171272e-01, 3.0743412181862367e-01, 3.1193437041553451e-01, 3.1643461901244530e-01, 3.2093486760935624e-01, 3.2543511620626708e-01, 3.2993536480317781e-01, 3.3443561340008887e-01, 3.3893586199699960e-01, 3.4343611059391044e-01, 3.4793635919082139e-01, 3.5243660778773223e-01, 3.5693685638464301e-01, 3.6143710498155401e-01, 3.6593735357846480e-01, 3.7043760217537558e-01, 3.7493785077228658e-01, 3.7943809936919737e-01, 3.8393834796610837e-01, 3.8843859656301916e-01, 3.9293884515992988e-01, 3.9743909375684094e-01, 4.0193934235375151e-01, 4.0643959095066229e-01, 4.1093983954757329e-01, 4.1544008814448408e-01, 4.1994033674139486e-01, 4.2444058533830586e-01, 4.2894083393521665e-01, 4.3344108253212743e-01, 4.3794133112903844e-01, 4.4244157972594922e-01, 4.4694182832286000e-01, 4.5144207691977101e-01, 4.5594232551668179e-01, 4.6044257411359257e-01, 4.6494282271050358e-01, 4.6944307130741436e-01, 4.7394331990432514e-01, 4.7844356850123615e-01, 4.8294381709814693e-01, 4.8744406569505772e-01, 4.9194431429196872e-01, 4.9644456288887950e-01, 5.0094481148579029e-01, 5.0544506008270129e-01, 5.0994530867961207e-01, 5.1444555727652286e-01, 5.1894580587343386e-01, 5.2344605447034465e-01, 5.2794630306725543e-01, 5.3244655166416643e-01, 5.3694680026107722e-01, 5.4144704885798811e-01, 5.4594729745489901e-01, 5.5044754605180979e-01, 5.5494779464872057e-01, 5.5944804324563158e-01, 5.6394829184254225e-01, 5.6844854043945314e-01, 5.7294878903636404e-01, 5.7744903763327471e-01, 5.8194928623018582e-01, 5.8644953482709650e-01, 5.9094978342400728e-01, 5.9545003202091829e-01, 5.9995028061782907e-01, 6.0445052921473996e-01, 6.0895077781165086e-01, 6.1345102640856175e-01, 6.1795127500547242e-01, 6.2245152360238354e-01, 6.2695177219929421e-01, 6.3145202079620499e-01, 6.3595226939311600e-01, 6.4045251799002678e-01, 6.4495276658693768e-01, 6.4945301518384857e-01, 6.5395326378075946e-01, 6.5845351237767025e-01, 6.6295376097458125e-01, 6.6745400957149204e-01, 6.7195425816840271e-01, 6.7645450676531371e-01, 6.8095475536222450e-01, 6.8545500395913539e-01, 6.8995525255604628e-01, 6.9445550115295718e-01, 6.9895574974986796e-01, 7.0345599834677897e-01, 7.0795624694368975e-01, 7.1245649554060042e-01, 7.1695674413751154e-01, 7.2145699273442221e-01, 7.2595724133133310e-01, 7.3045748992824389e-01, 7.3495773852515456e-01, 7.3945798712206545e-01, 7.4395823571897635e-01, 7.4845848431588724e-01, 7.5295873291279825e-01, 7.5745898150970903e-01, 7.6195923010661970e-01, 7.6645947870353082e-01, 7.7095972730044149e-01, 7.7545997589735238e-01, 7.7996022449426328e-01, 7.8446047309117417e-01, 7.8896072168808495e-01, 7.9346097028499596e-01, 7.9796121888190674e-01, 8.0246146747881741e-01, 8.0696171607572853e-01, 8.1146196467263920e-01, 8.1596221326955010e-01, 8.2046246186646099e-01, 8.2496271046337188e-01, 8.2946295906028267e-01, 8.3396320765719367e-01, 8.3846345625410446e-01, 8.4296370485101524e-01, 8.4746395344792624e-01, 8.5196420204483692e-01, 8.5646445064174781e-01, 8.6096469923865870e-01, 8.6546494783556960e-01, 8.6996519643248038e-01, 8.7446544502939139e-01, 8.7896569362630217e-01, 8.8346594222321295e-01, 8.8796619082012396e-01, 8.9246643941703474e-01, 8.9696668801394530e-01, 9.0146693661085631e-01, 9.0596718520776709e-01, 9.1046743380467787e-01, 9.1496768240158888e-01, 9.1946793099849966e-01, 9.2396817959541044e-01, 9.2846842819232145e-01, 9.3296867678923234e-01, 9.3746892538614346e-01, 9.4196917398305402e-01, 9.4646942257996480e-01, 9.5096967117687592e-01, 9.5546991977378648e-01, 9.5997016837069760e-01, 9.6447041696760838e-01, 9.6897066556451894e-01, 9.7347091416143006e-01, 9.7797116275834117e-01, 9.8247141135525173e-01, 9.8697165995216252e-01, 9.9147190854907363e-01, 9.9597215714598419e-01, 1.0004724057428946e+00, 1.0049726543398059e+00, 1.0094729029367167e+00, 1.0139731515336274e+00, 1.0184734001305382e+00, 1.0229736487274494e+00, 1.0274738973243602e+00, 1.0319741459212710e+00, 1.0364743945181818e+00, 1.0409746431150930e+00, 1.0454748917120036e+00, 1.0499751403089144e+00, 1.0544753889058254e+00, 1.0589756375027362e+00, 1.0634758860996472e+00, 1.0679761346965579e+00, 1.0724763832934687e+00, 1.0769766318903797e+00, 1.0814768804872907e+00, 1.0859771290842013e+00, 1.0904773776811121e+00, 1.0949776262780233e+00, 1.0994778748749336e+00, 1.1039781234718449e+00, 1.1084783720687557e+00, 1.1129786206656664e+00, 1.1174788692625772e+00, 1.1219791178594885e+00, 1.1264793664563990e+00, 1.1309796150533100e+00, 1.1354798636502208e+00, 1.1399801122471316e+00, 1.1444803608440426e+00, 1.1489806094409534e+00, 1.1534808580378642e+00, 1.1579811066347752e+00, 1.1624813552316862e+00, 1.1669816038285967e+00, 1.1714818524255077e+00, 1.1759821010224187e+00, 1.1804823496193291e+00, 1.1849825982162403e+00, 1.1894828468131513e+00, 1.1939830954100619e+00, 1.1984833440069727e+00, 1.2029835926038839e+00, 1.2074838412007944e+00, 1.2119840897977054e+00, 1.2164843383946162e+00, 1.2209845869915275e+00, 1.2254848355884380e+00, 1.2299850841853490e+00, 1.2344853327822598e+00, 1.2389855813791706e+00, 1.2434858299760816e+00, 1.2479860785729926e+00, 1.2524863271699032e+00, 1.2569865757668142e+00, 1.2614868243637252e+00, 1.2659870729606357e+00, 1.2704873215575467e+00, 1.2749875701544577e+00, 1.2794878187513681e+00, 1.2839880673482793e+00, 1.2884883159451903e+00, 1.2929885645421009e+00, 1.2974888131390117e+00, 1.3019890617359229e+00, 1.3064893103328330e+00, 1.3109895589297440e+00, 1.3154898075266550e+00, 1.3199900561235656e+00, 1.3244903047204766e+00, 1.3289905533173876e+00, 1.3334908019142981e+00, 1.3379910505112091e+00, 1.3424912991081199e+00, 1.3469915477050307e+00, 1.3514917963019417e+00, 1.3559920448988527e+00, 1.3604922934957633e+00, 1.3649925420926743e+00, 1.3694927906895853e+00, 1.3739930392864959e+00, 1.3784932878834069e+00, 1.3829935364803179e+00, 1.3874937850772284e+00, 1.3919940336741394e+00, 1.3964942822710504e+00, 1.4009945308679610e+00, 1.4054947794648720e+00, 1.4099950280617830e+00, 1.4144952766586936e+00, 1.4189955252556046e+00, 1.4234957738525156e+00, 1.4279960224494261e+00, 1.4324962710463371e+00, 1.4369965196432481e+00, 1.4414967682401587e+00, 1.4459970168370697e+00, 1.4504972654339807e+00, 1.4549975140308913e+00, 1.4594977626278023e+00, 1.4639980112247133e+00, 1.4684982598216239e+00, 1.4729985084185349e+00, 1.4774987570154459e+00, 1.4819990056123564e+00, 1.4864992542092674e+00, 1.4909995028061784e+00, 1.4954997514030890e+00, 1.5000000000000000e+00};
float pathY_8[520]={ 0.0000000000000000e+00, 1.2105147211102171e-02, 2.4203198091108383e-02, 3.6287060468964225e-02, 4.8349650491259569e-02, 6.0383896774955440e-02, 7.2382744552800360e-02, 8.4339159809006123e-02, 9.6246133402758519e-02, 1.0809668517714596e-01, 1.1988386805109670e-01, 1.3160077209192647e-01, 1.4324052856610864e-01, 1.5479631396589261e-01, 1.6626135400940970e-01, 1.7762892761192137e-01, 1.8889237082588253e-01, 2.0004508074750918e-01, 2.1108051938756073e-01, 2.2199221750406817e-01, 2.3277377839476077e-01, 2.4341888164696798e-01, 2.5392128684279891e-01, 2.6427483721742656e-01, 2.7447346326833322e-01, 2.8451118631339961e-01, 2.9438212199575381e-01, 3.0408048373332408e-01, 3.1360058611107339e-01, 3.2293684821392810e-01, 3.3208379689844547e-01, 3.4103607000130365e-01, 3.4978841948273137e-01, 3.5833571450303675e-01, 3.6667294443042980e-01, 3.7479522177837626e-01, 3.8269778507076119e-01, 3.9037600163318165e-01, 3.9782537030873277e-01, 4.0504152409669519e-01, 4.1202023271257726e-01, 4.1875740506800979e-01, 4.2524909166904207e-01, 4.3149148693143041e-01, 4.3748093141156458e-01, 4.4321391395172216e-01, 4.4868707373839428e-01, 4.5389720227247654e-01, 4.5884124525016845e-01, 4.6351630435348096e-01, 4.6791963894930089e-01, 4.7204866769601556e-01, 4.7590097005675946e-01, 4.7947428771839029e-01, 4.8276652591536784e-01, 4.8577575465775613e-01, 4.8850020986262993e-01, 4.9093829438822373e-01, 4.9308857897021463e-01, 4.9494980305959146e-01, 4.9652087556161995e-01, 4.9780087547546831e-01, 4.9878905243412042e-01, 4.9948482714425940e-01, 4.9988779172586306e-01, 4.9999770995131371e-01, 4.9981451738387955e-01, 4.9933832141548989e-01, 4.9856940120377896e-01, 4.9750820750843727e-01, 4.9615536242696501e-01, 4.9451165902998323e-01, 4.9257806089631734e-01, 4.9035570154812308e-01, 4.8784588378638860e-01, 4.8505007892720098e-01, 4.8196992593922511e-01, 4.7860723048289977e-01, 4.7496396385191680e-01, 4.7104226181759978e-01, 4.6684442337686416e-01, 4.6237290940448822e-01, 4.5763034121048973e-01, 4.5261949900344928e-01, 4.4734332026068585e-01, 4.4180489800623496e-01, 4.3600747899764380e-01, 4.2995446182264285e-01, 4.2364939490681108e-01, 4.1709597443340329e-01, 4.1029804217655741e-01, 4.0325958324915306e-01, 3.9598472376664207e-01, 3.8847772842821937e-01, 3.8074299801675243e-01, 3.7278506681893614e-01, 3.6460859996718364e-01, 3.5621839070481209e-01, 3.4761935757612777e-01, 3.3881654154305507e-01, 3.2981510303000411e-01, 3.2062031889870241e-01, 3.1123757935477170e-01, 3.0167238478785907e-01, 2.9193034254717343e-01, 2.8201716365432328e-01, 2.7193865945537532e-01, 2.6170073821410395e-01, 2.5130940164842253e-01, 2.4077074141203103e-01, 2.3009093552334131e-01, 2.1927624474377214e-01, 2.0833300890753861e-01, 1.9726764320508872e-01, 1.8608663442236156e-01, 1.7479653713807669e-01, 1.6340396988128122e-01, 1.5191561125140737e-01, 1.4033819600311451e-01, 1.2867851109821352e-01, 1.1694339172698504e-01, 1.0513971730122408e-01, 9.3274407421363267e-02, 8.1354417820033526e-02, 6.9386736284446485e-02, 5.7378378559982519e-02, 4.5336384237390892e-02, 3.3267812626012444e-02, 2.1179738615438405e-02, 9.0792485280401999e-03, -3.0265640352053888e-03, -1.5130602353156610e-02, -2.7225770744777365e-02, -3.9304978728798325e-02, -5.1361145180327562e-02, -6.3387202481979432e-02, -7.5376100667082654e-02, -8.7320811552541566e-02, -9.9214332858928000e-02, -1.1104969231538789e-01, -1.2281995174695517e-01, -1.3451821114187787e-01, -1.4613761269657372e-01, -1.5767134483583972e-01, -1.6911264620596353e-01, -1.8045480963839342e-01, -1.9169118608164265e-01, -2.0281518849912547e-01, -2.1382029573063627e-01, -2.2470005631521431e-01, -2.3544809227314534e-01, -2.4605810284488772e-01, -2.5652386818473172e-01, -2.6683925300702355e-01, -2.7699821018281812e-01, -2.8699478428485364e-01, -2.9682311507876735e-01, -3.0647744095850732e-01, -3.1595210232392495e-01, -3.2524154489857088e-01, -3.3434032298574634e-01, -3.4324310266090269e-01, -3.5194466489851717e-01, -3.6043990863161285e-01, -3.6872385374212785e-01, -3.7679164398038056e-01, -3.8463854981192264e-01, -3.9225997119010481e-01, -3.9965144025273808e-01, -4.0680862394126172e-01, -4.1372732654088701e-01, -4.2040349214022821e-01, -4.2683320700897559e-01, -4.3301270189221919e-01, -4.3893835422007765e-01, -4.4460669023133637e-01, -4.5001438700985108e-01, -4.5515827443252116e-01, -4.6003533702769361e-01, -4.6464271574290517e-01, -4.6897770962092866e-01, -4.7303777738313918e-01, -4.7682053891927378e-01, -4.8032377668270981e-01, -4.8354543699044367e-01, -4.8648363122701133e-01, -4.8913663695163900e-01, -4.9150289890798060e-01, -4.9358102993584640e-01, -4.9536981178438994e-01, -4.9686819582627673e-01, -4.9807530367241443e-01, -4.9899042768688634e-01, -4.9961303140178437e-01, -4.9994274983169984e-01, -4.9997938968768668e-01, -4.9972292949057190e-01, -4.9917351958354766e-01, -4.9833148204403588e-01, -4.9719731049487920e-01, -4.9577166981496695e-01, -4.9405539574946700e-01, -4.9204949441989165e-01, -4.8975514173428519e-01, -4.8717368269787742e-01, -4.8430663062460944e-01, -4.8115566624999206e-01, -4.7772263674581783e-01, -4.7400955463730432e-01, -4.7001859662330275e-01, -4.6575210230026443e-01, -4.6121257279071237e-01, -4.5640266927702289e-01, -4.5132521144137561e-01, -4.4598317581278729e-01, -4.4037969402219879e-01, -4.3451805096663609e-01, -4.2840168288352465e-01, -4.2203417533628390e-01, -4.1541926111238170e-01, -4.0856081803508543e-01, -4.0146286669018616e-01, -3.9412956806903476e-01, -3.8656522112926750e-01, -3.7877426027465239e-01, -3.7076125275553545e-01, -3.6253089599140553e-01, -3.5408801481715457e-01, -3.4543755865464193e-01, -3.3658459861122286e-01, -3.2753432450694253e-01, -3.1829204183213777e-01, -3.0886316863722996e-01, -2.9925323235653123e-01, -2.8946786656792967e-01, -2.7951280769034853e-01, -2.6939389162091826e-01, -2.5911705031383248e-01, -2.4868830830289135e-01, -2.3811377916977580e-01, -2.2739966196011480e-01, -2.1655223754945571e-01, -2.0557786496126385e-01, -1.9448297763910607e-01, -1.8327407967521170e-01, -1.7195774199761490e-01, -1.6054059851811897e-01, -1.4902934224333358e-01, -1.3743072135107368e-01, -1.2575153523441335e-01, -1.1399863051571658e-01, -1.0217889703298064e-01, -9.0299263800847171e-02, -7.8366694948644691e-02, -6.6388185637846139e-02, -5.4370757961336696e-02, -4.2321456826892138e-02, -3.0247345827282845e-02, -1.8155503099424326e-02, -6.0530171750010926e-03, 6.0530171750008480e-03, 1.8155503099423636e-02, 3.0247345827282602e-02, 4.2321456826891896e-02, 5.4370757961336461e-02, 6.6388185637845890e-02, 7.8366694948644885e-02, 9.0299263800847379e-02, 1.0217889703298040e-01, 1.1399863051571589e-01, 1.2575153523441268e-01, 1.3743072135107304e-01, 1.4902934224333336e-01, 1.6054059851811917e-01, 1.7195774199761513e-01, 1.8327407967521148e-01, 1.9448297763910585e-01, 2.0557786496126362e-01, 2.1655223754945549e-01, 2.2739966196011457e-01, 2.3811377916977561e-01, 2.4868830830289115e-01, 2.5911705031383186e-01, 2.6939389162091809e-01, 2.7951280769034825e-01, 2.8946786656792950e-01, 2.9925323235653145e-01, 3.0886316863723012e-01, 3.1829204183213788e-01, 3.2753432450694231e-01, 3.3658459861122242e-01, 3.4543755865464137e-01, 3.5408801481715407e-01, 3.6253089599140531e-01, 3.7076125275553556e-01, 3.7877426027465255e-01, 3.8656522112926733e-01, 3.9412956806903460e-01, 4.0146286669018605e-01, 4.0856081803508532e-01, 4.1541926111238181e-01, 4.2203417533628379e-01, 4.2840168288352448e-01, 4.3451805096663570e-01, 4.4037969402219840e-01, 4.4598317581278729e-01, 4.5132521144137550e-01, 4.5640266927702300e-01, 4.6121257279071237e-01, 4.6575210230026431e-01, 4.7001859662330270e-01, 4.7400955463730421e-01, 4.7772263674581766e-01, 4.8115566624999184e-01, 4.8430663062460938e-01, 4.8717368269787736e-01, 4.8975514173428514e-01, 4.9204949441989160e-01, 4.9405539574946689e-01, 4.9577166981496695e-01, 4.9719731049487909e-01, 4.9833148204403588e-01, 4.9917351958354761e-01, 4.9972292949057190e-01, 4.9997938968768668e-01, 4.9994274983169995e-01, 4.9961303140178442e-01, 4.9899042768688640e-01, 4.9807530367241454e-01, 4.9686819582627667e-01, 4.9536981178438999e-01, 4.9358102993584629e-01, 4.9150289890798066e-01, 4.8913663695163900e-01, 4.8648363122701144e-01, 4.8354543699044378e-01, 4.8032377668270987e-01, 4.7682053891927401e-01, 4.7303777738313918e-01, 4.6897770962092888e-01, 4.6464271574290517e-01, 4.6003533702769389e-01, 4.5515827443252116e-01, 4.5001438700985119e-01, 4.4460669023133670e-01, 4.3893835422007754e-01, 4.3301270189221963e-01, 4.2683320700897548e-01, 4.2040349214022854e-01, 4.1372732654088684e-01, 4.0680862394126210e-01, 3.9965144025273819e-01, 3.9225997119010497e-01, 3.8463854981192275e-01, 3.7679164398038040e-01, 3.6872385374212829e-01, 3.6043990863161290e-01, 3.5194466489851778e-01, 3.4324310266090269e-01, 3.3434032298574651e-01, 3.2524154489857110e-01, 3.1595210232392518e-01, 3.0647744095850765e-01, 2.9682311507876724e-01, 2.8699478428485420e-01, 2.7699821018281801e-01, 2.6683925300702360e-01, 2.5652386818473194e-01, 2.4605810284488797e-01, 2.3544809227314559e-01, 2.2470005631521475e-01, 2.1382029573063671e-01, 2.0281518849912589e-01, 1.9169118608164265e-01, 1.8045480963839344e-01, 1.6911264620596356e-01, 1.5767134483583975e-01, 1.4613761269657394e-01, 1.3451821114187831e-01, 1.2281995174695563e-01, 1.1104969231538769e-01, 9.9214332858928680e-02, 8.7320811552541386e-02, 7.5376100667083556e-02, 6.3387202481979668e-02, 5.1361145180327812e-02, 3.9304978728798567e-02, 2.7225770744776945e-02, 1.5130602353157076e-02, 3.0265640352051897e-03, -9.0792485280392892e-03, -2.1179738615438381e-02, -3.3267812626011542e-02, -4.5336384237390871e-02, -5.7378378559982054e-02, -6.9386736284446027e-02, -8.1354417820033942e-02, -9.3274407421362573e-02, -1.0513971730122426e-01, -1.1694339172698415e-01, -1.2867851109821349e-01, -1.4033819600311431e-01, -1.5191561125140712e-01, -1.6340396988128100e-01, -1.7479653713807622e-01, -1.8608663442236092e-01, -1.9726764320508808e-01, -2.0833300890753878e-01, -2.1927624474377211e-01, -2.3009093552334128e-01, -2.4077074141203084e-01, -2.5130940164842214e-01, -2.6170073821410356e-01, -2.7193865945537493e-01, -2.8201716365432267e-01, -2.9193034254717365e-01, -3.0167238478785907e-01, -3.1123757935477170e-01, -3.2062031889870224e-01, -3.2981510303000394e-01, -3.3881654154305491e-01, -3.4761935757612722e-01, -3.5621839070481226e-01, -3.6460859996718314e-01, -3.7278506681893625e-01, -3.8074299801675182e-01, -3.8847772842821920e-01, -3.9598472376664196e-01, -4.0325958324915284e-01, -4.1029804217655763e-01, -4.1709597443340307e-01, -4.2364939490681114e-01, -4.2995446182264235e-01, -4.3600747899764380e-01, -4.4180489800623496e-01, -4.4734332026068585e-01, -4.5261949900344922e-01, -4.5763034121048946e-01, -4.6237290940448839e-01, -4.6684442337686394e-01, -4.7104226181759989e-01, -4.7496396385191669e-01, -4.7860723048289977e-01, -4.8196992593922505e-01, -4.8505007892720103e-01, -4.8784588378638855e-01, -4.9035570154812302e-01, -4.9257806089631723e-01, -4.9451165902998329e-01, -4.9615536242696495e-01, -4.9750820750843727e-01, -4.9856940120377896e-01, -4.9933832141548978e-01, -4.9981451738387950e-01, -4.9999770995131371e-01, -4.9988779172586306e-01, -4.9948482714425940e-01, -4.9878905243412042e-01, -4.9780087547546842e-01, -4.9652087556162000e-01, -4.9494980305959158e-01, -4.9308857897021463e-01, -4.9093829438822373e-01, -4.8850020986263004e-01, -4.8577575465775602e-01, -4.8276652591536806e-01, -4.7947428771839035e-01, -4.7590097005675969e-01, -4.7204866769601567e-01, -4.6791963894930094e-01, -4.6351630435348118e-01, -4.5884124525016828e-01, -4.5389720227247671e-01, -4.4868707373839412e-01, -4.4321391395172249e-01, -4.3748093141156458e-01, -4.3149148693143052e-01, -4.2524909166904223e-01, -4.1875740506801001e-01, -4.1202023271257754e-01, -4.0504152409669558e-01, -3.9782537030873316e-01, -3.9037600163318159e-01, -3.8269778507076113e-01, -3.7479522177837626e-01, -3.6667294443042991e-01, -3.5833571450303697e-01, -3.4978841948273171e-01, -3.4103607000130404e-01, -3.3208379689844597e-01, -3.2293684821392793e-01, -3.1360058611107333e-01, -3.0408048373332414e-01, -2.9438212199575398e-01, -2.8451118631339978e-01, -2.7447346326833350e-01, -2.6427483721742701e-01, -2.5392128684279858e-01, -2.4341888164696857e-01, -2.3277377839476068e-01, -2.2199221750406897e-01, -2.1108051938756081e-01, -2.0004508074750937e-01, -1.8889237082588287e-01, -1.7762892761192092e-01, -1.6626135400941019e-01, -1.5479631396589236e-01, -1.4324052856610936e-01, -1.3160077209192644e-01, -1.1988386805109764e-01, -1.0809668517714614e-01, -9.6246133402758810e-02, -8.4339159809006484e-02, -7.2382744552799957e-02, -6.0383896774956036e-02, -4.8349650491259388e-02, -3.6287060468965029e-02, -2.4203198091108418e-02, -1.2105147211102309e-02, -2.4492935982947064e-16};
//*******************************************************
//*******************************************************
//Wall Following
float distright = 0.0;
float distfront = 0.0;
float Kpright = 0.001;
float Kpfront = 0.0002;
float ref_right = 200.0;
float ref_front = 1400.0;
int rightwallfollow = 1;
//*********************************************
//EXERCISE 8
float distf = 0.0;
// ----- code for CAN end here -----
void main(void)
{
// PLL, WatchDog, enable Peripheral Clocks
// This example function is found in the F2837xD_SysCtrl.c file.
InitSysCtrl();
InitGpio();
// Blue LED on LaunchPad
GPIO_SetupPinMux(31, GPIO_MUX_CPU1, 0);
GPIO_SetupPinOptions(31, GPIO_OUTPUT, GPIO_PUSHPULL);
GpioDataRegs.GPASET.bit.GPIO31 = 1;
// Red LED on LaunchPad
GPIO_SetupPinMux(34, GPIO_MUX_CPU1, 0);
GPIO_SetupPinOptions(34, GPIO_OUTPUT, GPIO_PUSHPULL);
GpioDataRegs.GPBSET.bit.GPIO34 = 1;
// LED1 and PWM Pin
GPIO_SetupPinMux(22, GPIO_MUX_CPU1, 0);
GPIO_SetupPinOptions(22, GPIO_OUTPUT, GPIO_PUSHPULL);
GpioDataRegs.GPACLEAR.bit.GPIO22 = 1;
// LED2
GPIO_SetupPinMux(94, GPIO_MUX_CPU1, 0);
GPIO_SetupPinOptions(94, GPIO_OUTPUT, GPIO_PUSHPULL);
GpioDataRegs.GPCCLEAR.bit.GPIO94 = 1;
// LED3
GPIO_SetupPinMux(95, GPIO_MUX_CPU1, 0);
GPIO_SetupPinOptions(95, GPIO_OUTPUT, GPIO_PUSHPULL);
GpioDataRegs.GPCCLEAR.bit.GPIO95 = 1;
// LED4
GPIO_SetupPinMux(97, GPIO_MUX_CPU1, 0);
GPIO_SetupPinOptions(97, GPIO_OUTPUT, GPIO_PUSHPULL);
GpioDataRegs.GPDCLEAR.bit.GPIO97 = 1;
// LED5
GPIO_SetupPinMux(111, GPIO_MUX_CPU1, 0);
GPIO_SetupPinOptions(111, GPIO_OUTPUT, GPIO_PUSHPULL);
GpioDataRegs.GPDCLEAR.bit.GPIO111 = 1;
// LED6
GPIO_SetupPinMux(130, GPIO_MUX_CPU1, 0);
GPIO_SetupPinOptions(130, GPIO_OUTPUT, GPIO_PUSHPULL);
GpioDataRegs.GPECLEAR.bit.GPIO130 = 1;
// LED7
GPIO_SetupPinMux(131, GPIO_MUX_CPU1, 0);
GPIO_SetupPinOptions(131, GPIO_OUTPUT, GPIO_PUSHPULL);
GpioDataRegs.GPECLEAR.bit.GPIO131 = 1;
// LED8
GPIO_SetupPinMux(25, GPIO_MUX_CPU1, 0);
GPIO_SetupPinOptions(25, GPIO_OUTPUT, GPIO_PUSHPULL);
GpioDataRegs.GPACLEAR.bit.GPIO25 = 1;
// LED9
GPIO_SetupPinMux(26, GPIO_MUX_CPU1, 0);
GPIO_SetupPinOptions(26, GPIO_OUTPUT, GPIO_PUSHPULL);
GpioDataRegs.GPACLEAR.bit.GPIO26 = 1;
// LED10
GPIO_SetupPinMux(27, GPIO_MUX_CPU1, 0);
GPIO_SetupPinOptions(27, GPIO_OUTPUT, GPIO_PUSHPULL);
GpioDataRegs.GPACLEAR.bit.GPIO27 = 1;
// LED11
GPIO_SetupPinMux(60, GPIO_MUX_CPU1, 0);
GPIO_SetupPinOptions(60, GPIO_OUTPUT, GPIO_PUSHPULL);
GpioDataRegs.GPBCLEAR.bit.GPIO60 = 1;
// LED12
GPIO_SetupPinMux(61, GPIO_MUX_CPU1, 0);
GPIO_SetupPinOptions(61, GPIO_OUTPUT, GPIO_PUSHPULL);
GpioDataRegs.GPBCLEAR.bit.GPIO61 = 1;
// LED13
GPIO_SetupPinMux(157, GPIO_MUX_CPU1, 0);
GPIO_SetupPinOptions(157, GPIO_OUTPUT, GPIO_PUSHPULL);
GpioDataRegs.GPECLEAR.bit.GPIO157 = 1;
// LED14
GPIO_SetupPinMux(158, GPIO_MUX_CPU1, 0);
GPIO_SetupPinOptions(158, GPIO_OUTPUT, GPIO_PUSHPULL);
GpioDataRegs.GPECLEAR.bit.GPIO158 = 1;
// LED15
GPIO_SetupPinMux(159, GPIO_MUX_CPU1, 0);
GPIO_SetupPinOptions(159, GPIO_OUTPUT, GPIO_PUSHPULL);
GpioDataRegs.GPECLEAR.bit.GPIO159 = 1;
// LED16
GPIO_SetupPinMux(160, GPIO_MUX_CPU1, 0);
GPIO_SetupPinOptions(160, GPIO_OUTPUT, GPIO_PUSHPULL);
GpioDataRegs.GPFCLEAR.bit.GPIO160 = 1;
//WIZNET Reset
GPIO_SetupPinMux(0, GPIO_MUX_CPU1, 0);
GPIO_SetupPinOptions(0, GPIO_OUTPUT, GPIO_PUSHPULL);
GpioDataRegs.GPASET.bit.GPIO0 = 1;
//ESP8266 Reset
GPIO_SetupPinMux(1, GPIO_MUX_CPU1, 0);
GPIO_SetupPinOptions(1, GPIO_OUTPUT, GPIO_PUSHPULL);
GpioDataRegs.GPASET.bit.GPIO1 = 1;
//SPIRAM CS Chip Select
GPIO_SetupPinMux(19, GPIO_MUX_CPU1, 0);
GPIO_SetupPinOptions(19, GPIO_OUTPUT, GPIO_PUSHPULL);
GpioDataRegs.GPASET.bit.GPIO19 = 1;
//DRV8874 #1 DIR Direction
GPIO_SetupPinMux(29, GPIO_MUX_CPU1, 0);
GPIO_SetupPinOptions(29, GPIO_OUTPUT, GPIO_PUSHPULL);
GpioDataRegs.GPASET.bit.GPIO29 = 1;
//DRV8874 #2 DIR Direction
GPIO_SetupPinMux(32, GPIO_MUX_CPU1, 0);
GPIO_SetupPinOptions(32, GPIO_OUTPUT, GPIO_PUSHPULL);
GpioDataRegs.GPBSET.bit.GPIO32 = 1;
//DAN28027 CS Chip Select
GPIO_SetupPinMux(9, GPIO_MUX_CPU1, 0);
GPIO_SetupPinOptions(9, GPIO_OUTPUT, GPIO_PUSHPULL);
GpioDataRegs.GPASET.bit.GPIO9 = 1;
//MPU9250 CS Chip Select
GPIO_SetupPinMux(66, GPIO_MUX_CPU1, 0);
GPIO_SetupPinOptions(66, GPIO_OUTPUT, GPIO_PUSHPULL);
GpioDataRegs.GPCSET.bit.GPIO66 = 1;
//WIZNET CS Chip Select
GPIO_SetupPinMux(125, GPIO_MUX_CPU1, 0);
GPIO_SetupPinOptions(125, GPIO_OUTPUT, GPIO_PUSHPULL);
GpioDataRegs.GPDSET.bit.GPIO125 = 1;
//PushButton 1
GPIO_SetupPinMux(4, GPIO_MUX_CPU1, 0);
GPIO_SetupPinOptions(4, GPIO_INPUT, GPIO_PULLUP);
//PushButton 2
GPIO_SetupPinMux(5, GPIO_MUX_CPU1, 0);
GPIO_SetupPinOptions(5, GPIO_INPUT, GPIO_PULLUP);
//PushButton 3
GPIO_SetupPinMux(6, GPIO_MUX_CPU1, 0);
GPIO_SetupPinOptions(6, GPIO_INPUT, GPIO_PULLUP);
//PushButton 4
GPIO_SetupPinMux(7, GPIO_MUX_CPU1, 0);
GPIO_SetupPinOptions(7, GPIO_INPUT, GPIO_PULLUP);
//Joy Stick Pushbutton
GPIO_SetupPinMux(8, GPIO_MUX_CPU1, 0);
GPIO_SetupPinOptions(8, GPIO_INPUT, GPIO_PULLUP);
// ----- code for CAN start here -----
//GPIO17 - CANRXB
GPIO_SetupPinMux(17, GPIO_MUX_CPU1, 2);
GPIO_SetupPinOptions(17, GPIO_INPUT, GPIO_ASYNC);
//GPIO12 - CANTXB
GPIO_SetupPinMux(12, GPIO_MUX_CPU1, 2);
GPIO_SetupPinOptions(12, GPIO_OUTPUT, GPIO_PUSHPULL);
// ----- code for CAN end here -----
// ----- code for CAN start here -----
// Initialize the CAN controller
InitCANB();
// Set up the CAN bus bit rate to 1000 kbps
setCANBitRate(200000000, 1000000);
// Enables Interrupt line 0, Error & Status Change interrupts in CAN_CTL register.
CanbRegs.CAN_CTL.bit.IE0= 1;
CanbRegs.CAN_CTL.bit.EIE= 1;
// ----- code for CAN end here -----
// Clear all interrupts and initialize PIE vector table:
// Disable CPU interrupts
DINT;
// Initialize the PIE control registers to their default state.
// The default state is all PIE interrupts disabled and flags
// are cleared.
// This function is found in the F2837xD_PieCtrl.c file.
InitPieCtrl();
// Disable CPU interrupts and clear all CPU interrupt flags:
IER = 0x0000;
IFR = 0x0000;
// Initialize the PIE vector table with pointers to the shell Interrupt
// Service Routines (ISR).
// This will populate the entire table, even if the interrupt
// is not used in this example. This is useful for debug purposes.
// The shell ISR routines are found in F2837xD_DefaultIsr.c.
// This function is found in F2837xD_PieVect.c.
InitPieVectTable();
// Interrupts that are used in this example are re-mapped to
// ISR functions found within this project
EALLOW; // This is needed to write to EALLOW protected registers
PieVectTable.TIMER0_INT = &cpu_timer0_isr;
PieVectTable.TIMER1_INT = &cpu_timer1_isr;
PieVectTable.TIMER2_INT = &cpu_timer2_isr;
PieVectTable.SCIA_RX_INT = &RXAINT_recv_ready;
PieVectTable.SCIB_RX_INT = &RXBINT_recv_ready;
PieVectTable.SCIC_RX_INT = &RXCINT_recv_ready;
PieVectTable.SCID_RX_INT = &RXDINT_recv_ready;
PieVectTable.SCIA_TX_INT = &TXAINT_data_sent;
PieVectTable.SCIB_TX_INT = &TXBINT_data_sent;
PieVectTable.SCIC_TX_INT = &TXCINT_data_sent;
PieVectTable.SCID_TX_INT = &TXDINT_data_sent;
PieVectTable.SPIB_RX_INT = &SPIB_isr;
PieVectTable.EMIF_ERROR_INT = &SWI_isr;
// ----- code for CAN start here -----
PieVectTable.CANB0_INT = &can_isr;
// ----- code for CAN end here -----
EDIS; // This is needed to disable write to EALLOW protected registers
// Initialize the CpuTimers Device Peripheral. This function can be
// found in F2837xD_CpuTimers.c
InitCpuTimers();
// Configure CPU-Timer 0, 1, and 2 to interrupt every given period:
// 200MHz CPU Freq, Period (in uSeconds)
ConfigCpuTimer(&CpuTimer0, LAUNCHPAD_CPU_FREQUENCY, 1000);
ConfigCpuTimer(&CpuTimer1, LAUNCHPAD_CPU_FREQUENCY, 20000);
ConfigCpuTimer(&CpuTimer2, LAUNCHPAD_CPU_FREQUENCY, time_s * 1000000);//set period to 4ms
// Enable CpuTimer Interrupt bit TIE
CpuTimer0Regs.TCR.all = 0x4000;
CpuTimer1Regs.TCR.all = 0x4000;
CpuTimer2Regs.TCR.all = 0x4000;
init_serialSCIA(&SerialA,115200);
setupSpib();
//**********************************************************************
//EPWM2A
EPwm2Regs.TBCTL.bit.CTRMODE = 0;
EPwm2Regs.TBCTL.bit.FREE_SOFT = 2;
EPwm2Regs.TBCTL.bit.PHSEN = 0;
EPwm2Regs.TBCTL.bit.CLKDIV = 0;
EPwm2Regs.TBCTR = 0;
EPwm2Regs.TBPRD = 2500;
//epwm2a-----------
EPwm2Regs.CMPA.bit.CMPA = 0;
EPwm2Regs.AQCTLA.bit.CAU = 1;
EPwm2Regs.AQCTLA.bit.ZRO = 2;
EPwm2Regs.TBPHS.bit.TBPHS = 0;
GPIO_SetupPinMux(2, GPIO_MUX_CPU1, 1); //GPIO PinName, CPU, Mux Index
//-------------------
//epwm2b-------------
EPwm2Regs.CMPB.bit.CMPB = 0;
EPwm2Regs.AQCTLB.bit.CBU = 1;
EPwm2Regs.AQCTLB.bit.ZRO = 2;
GPIO_SetupPinMux(3, GPIO_MUX_CPU1, 1); //GPIO PinName, CPU, Mux Index
//-------------------
//-------------------
//Ziheng andZhihao: disable epwm9 to activate the buzzer
//EPWM9A
EPwm9Regs.TBCTL.bit.CTRMODE = 0;
EPwm9Regs.TBCTL.bit.FREE_SOFT = 2;
EPwm9Regs.TBCTL.bit.PHSEN = 0;
EPwm9Regs.TBCTL.bit.CLKDIV = 1;
EPwm9Regs.TBCTR = 0;
EPwm9Regs.TBPRD = 1;//Initialize the TBPRD to decrease the high noise at the beginning
//epwm9a-----------
// EPwm9Regs.CMPA.bit.CMPA = 0;
// EPwm9Regs.AQCTLA.bit.CAU = 1;
EPwm9Regs.AQCTLA.bit.ZRO = 3;
EPwm9Regs.TBPHS.bit.TBPHS = 0;
GPIO_SetupPinMux(16, GPIO_MUX_CPU1, 5); //GPIO PinName, CPU, Mux Index
//-------------------
//disable pull up resistance
EALLOW; // Below are protected registers
GpioCtrlRegs.GPAPUD.bit.GPIO2 = 1; // For EPWM2A
GpioCtrlRegs.GPAPUD.bit.GPIO3 = 1; // For EPWM2B
GpioCtrlRegs.GPAPUD.bit.GPIO16 = 1; // For EPWM9A
EDIS;
//**********************************************************************
//***************************************************************
init_eQEPs();//
//***************************************************************
// Enable CPU int1 which is connected to CPU-Timer 0, CPU int13
// which is connected to CPU-Timer 1, and CPU int 14, which is connected
// to CPU-Timer 2: int 12 is for the SWI.
IER |= M_INT1;
IER |= M_INT6;
IER |= M_INT8; // SCIC SCID
IER |= M_INT9; // SCIA CANB
IER |= M_INT12;
IER |= M_INT13;
IER |= M_INT14;
// Enable TINT0 in the PIE: Group 1 interrupt 7
PieCtrlRegs.PIEIER1.bit.INTx7 = 1;
// Enable SWI in the PIE: Group 12 interrupt 9
PieCtrlRegs.PIEIER12.bit.INTx9 = 1;
PieCtrlRegs.PIEIER6.bit.INTx3 = 1; //SPiB
// ----- code for CAN start here -----
// Enable CANB in the PIE: Group 9 interrupt 7
PieCtrlRegs.PIEIER9.bit.INTx7 = 1;
// ----- code for CAN end here -----
// ----- code for CAN start here -----
// Enable the CAN interrupt signal
CanbRegs.CAN_GLB_INT_EN.bit.GLBINT0_EN = 1;
// ----- code for CAN end here -----
init_serialSCIC(&SerialC,115200);
init_serialSCID(&SerialD,115200);
// Enable global Interrupts and higher priority real-time debug events
EINT; // Enable Global interrupt INTM
ERTM; // Enable Global realtime interrupt DBGM
// ----- code for CAN start here -----
// // Transmit Message
// // Initialize the transmit message object used for sending CAN messages.
// // Message Object Parameters:
// // Message Object ID Number: 0
// // Message Identifier: 0x1
// // Message Frame: Standard
// // Message Type: Transmit
// // Message ID Mask: 0x0
// // Message Object Flags: Transmit Interrupt
// // Message Data Length: 4 Bytes
// //
// CANsetupMessageObject(CANB_BASE, TX_MSG_OBJ_ID, 0x1, CAN_MSG_FRAME_STD,
// CAN_MSG_OBJ_TYPE_TX, 0, CAN_MSG_OBJ_TX_INT_ENABLE,
// TX_MSG_DATA_LENGTH);
// Measured Distance from 1
// Initialize the receive message object 1 used for receiving CAN messages.
// Message Object Parameters:
// Message Object ID Number: 1
// Message Identifier: 0x060b0101
// Message Frame: Standard
// Message Type: Receive
// Message ID Mask: 0x0
// Message Object Flags: Receive Interrupt
// Message Data Length: 8 Bytes (Note that DLC field is a "don't care"
// for a Receive mailbox)
//
CANsetupMessageObject(CANB_BASE, RX_MSG_OBJ_ID_1, 0x060b0101, CAN_MSG_FRAME_EXT,
CAN_MSG_OBJ_TYPE_RX, 0, CAN_MSG_OBJ_RX_INT_ENABLE,
RX_MSG_DATA_LENGTH);
// Measured Distance from 2
// Initialize the receive message object 2 used for receiving CAN messages.
// Message Object Parameters:
// Message Object ID Number: 2
// Message Identifier: 0x060b0102
// Message Frame: Standard
// Message Type: Receive
// Message ID Mask: 0x0
// Message Object Flags: Receive Interrupt
// Message Data Length: 8 Bytes (Note that DLC field is a "don't care"
// for a Receive mailbox)
//
CANsetupMessageObject(CANB_BASE, RX_MSG_OBJ_ID_2, 0x060b0103, CAN_MSG_FRAME_EXT,
CAN_MSG_OBJ_TYPE_RX, 0, CAN_MSG_OBJ_RX_INT_ENABLE,
RX_MSG_DATA_LENGTH);
// Measurement Quality from 1
// Initialize the receive message object 2 used for receiving CAN messages.
// Message Object Parameters:
// Message Object ID Number: 3
// Message Identifier: 0x060b0201
// Message Frame: Standard
// Message Type: Receive
// Message ID Mask: 0x0
// Message Object Flags: Receive Interrupt
// Message Data Length: 8 Bytes (Note that DLC field is a "don't care"
// for a Receive mailbox)
//
CANsetupMessageObject(CANB_BASE, RX_MSG_OBJ_ID_3, 0x060b0201, CAN_MSG_FRAME_EXT,
CAN_MSG_OBJ_TYPE_RX, 0, CAN_MSG_OBJ_RX_INT_ENABLE,
RX_MSG_DATA_LENGTH);
// Measurement Quality from 2
// Initialize the receive message object 2 used for receiving CAN messages.
// Message Object Parameters:
// Message Object ID Number: 4
// Message Identifier: 0x060b0202
// Message Frame: Standard
// Message Type: Receive
// Message ID Mask: 0x0
// Message Object Flags: Receive Interrupt
// Message Data Length: 8 Bytes (Note that DLC field is a "don't care"
// for a Receive mailbox)
//
CANsetupMessageObject(CANB_BASE, RX_MSG_OBJ_ID_4, 0x060b0203, CAN_MSG_FRAME_EXT,
CAN_MSG_OBJ_TYPE_RX, 0, CAN_MSG_OBJ_RX_INT_ENABLE,
RX_MSG_DATA_LENGTH);
//
// Start CAN module operations
//
CanbRegs.CAN_CTL.bit.Init = 0;
CanbRegs.CAN_CTL.bit.CCE = 0;
// // Initialize the transmit message object data buffer to be sent
// txMsgData[0] = 0x12;
// txMsgData[1] = 0x34;
// txMsgData[2] = 0x56;
// txMsgData[3] = 0x78;
// // Loop Forever - A message will be sent once per second.
// for(;;)
// {
//
// CANsendMessage(CANB_BASE, TX_MSG_OBJ_ID, TX_MSG_DATA_LENGTH, txMsgData);
// txMsgCount++;
// DEVICE_DELAY_US(1000000);
// }
// ----- code for CAN end here -----
// IDLE loop. Just sit and loop forever (optional):
while(1)
{
if (UARTPrint == 1 ) {
//serial_printf(&SerialA,"Num Timer2:%ld Num SerialRX: %ld\r\n",CpuTimer2.InterruptCount,numRXA);
//serial_printf(&SerialA,"a:%.3f,%.3f,%.3f g:%.3f,%.3f,%.3f\r\n",accelx,accely,accelz,gyrox,gyroy,gyroz);
//serial_printf(&SerialA,"D1 %ld D2 %ld",dis_1,dis_3);
//serial_printf(&SerialA," St1 %ld St2 %ld\n\r",measure_status_1,measure_status_3);
serial_printf(&SerialA,"LeftWheel: %.3f, RightWheel: %.3f, LeftSpeed: %.3f, RightSpeed: %.3f, Control effort Left: %.3f, Control Effort Right\r\n",LeftWheel, RightWheel, LeftSpeed, RightSpeed, u_left, u_right);
//serial_printf(&SerialA,"LSpeed: %.3f, RSpeed: %.3f, U: %.3f\r\n",LeftSpeed, RightSpeed, u);
UARTPrint = 0;
}
}
}
// SWI_isr, Using this interrupt as a Software started interrupt
__interrupt void SWI_isr(void) {
// These three lines of code allow SWI_isr, to be interrupted by other interrupt functions
// making it lower priority than all other Hardware interrupts.
PieCtrlRegs.PIEACK.all = PIEACK_GROUP12;
asm(" NOP"); // Wait one cycle
EINT; // Clear INTM to enable interrupts
// Insert SWI ISR Code here.......
numSWIcalls++;
DINT;
}
// cpu_timer0_isr - CPU Timer0 ISR
__interrupt void cpu_timer0_isr(void)
{
CpuTimer0.InterruptCount++;
numTimer0calls++;
// if ((numTimer0calls%50) == 0) {
// PieCtrlRegs.PIEIFR12.bit.INTx9 = 1; // Manually cause the interrupt for the SWI
// }
if ((numTimer0calls%250) == 0) {
displayLEDletter(LEDdisplaynum);
LEDdisplaynum++;
if (LEDdisplaynum == 0xFFFF) { // prevent roll over exception
LEDdisplaynum = 0;
}
}
//Clear GPIO9 Low to act as a Slave Select. Right now, just to scope. Later to select DAN28027 chip
//GpioDataRegs.GPACLEAR.bit.GPIO9 = 1;
// SpibRegs.SPIFFRX.bit.RXFFIL = 2; // Issue the SPIB_RX_INT when two values are in the RX FIFO
// SpibRegs.SPITXBUF = 0x4A3B; // 0x4A3B and 0xB517 have no special meaning. Wanted to send
// SpibRegs.SPITXBUF = 0xB517; // something so you can see the pattern on the Oscilloscope
// SpibRegs.SPIFFRX.bit.RXFFIL = 3; // Issue the SPIB_RX_INT when two values are in the RX FIFO
// SpibRegs.SPITXBUF = 0xDA;
// SpibRegs.SPITXBUF = 500; // PWM value
// SpibRegs.SPITXBUF = 2200; // PWM Value
GpioDataRegs.GPCCLEAR.bit.GPIO66 = 1;
SpibRegs.SPIFFRX.bit.RXFFIL = 8;
SpibRegs.SPITXBUF = 0xBA00;
SpibRegs.SPITXBUF = 0x0000;
SpibRegs.SPITXBUF = 0x0000;
SpibRegs.SPITXBUF = 0x0000;
SpibRegs.SPITXBUF = 0x0000;
SpibRegs.SPITXBUF = 0x0000;
SpibRegs.SPITXBUF = 0x0000;
SpibRegs.SPITXBUF = 0x0000;
if ((numTimer0calls%50) == 0) {
// Blink LaunchPad Red LED
GpioDataRegs.GPBTOGGLE.bit.GPIO34 = 1;
}
// Acknowledge this interrupt to receive more interrupts from group 1
PieCtrlRegs.PIEACK.all = PIEACK_GROUP1;
}
// cpu_timer1_isr - CPU Timer1 ISR
__interrupt void cpu_timer1_isr(void)
{
CpuTimer1.InterruptCount++;
}
// cpu_timer2_isr CPU Timer2 ISR
__interrupt void cpu_timer2_isr(void)
{
// Blink LaunchPad Blue LED
GpioDataRegs.GPATOGGLE.bit.GPIO31 = 1;
CpuTimer2.InterruptCount++;
//******************************************************************
if (NewLVData == 1) {
NewLVData = 0;
r_velocity = fromLVvalues[0];
r_turn = fromLVvalues[1];
shape = fromLVvalues[2];
size_cmd = fromLVvalues[3];
printLV5 = fromLVvalues[4];
printLV6 = fromLVvalues[5];
printLV7 = fromLVvalues[6];
printLV8 = fromLVvalues[7];
}
if((CpuTimer2.InterruptCount%62) == 0) { // change to the counter variable of you selected 4ms. timer
DataToLabView.floatData[0] = x_current;
DataToLabView.floatData[1] = y_current;
DataToLabView.floatData[2] = theta_current;
DataToLabView.floatData[3] = 2.0*((float)numTimer0calls)*.001;
DataToLabView.floatData[4] = 3.0*((float)numTimer0calls)*.001;
DataToLabView.floatData[5] = (float)numTimer0calls;
DataToLabView.floatData[6] = (float)numTimer0calls*4.0;
DataToLabView.floatData[7] = (float)numTimer0calls*5.0;
LVsenddata[0] = '*'; // header for LVdata
LVsenddata[1] = '$';
for (int i=0;i<LVNUM_TOFROM_FLOATS*4;i++) {
if (i%2==0) {
LVsenddata[i+2] = DataToLabView.rawData[i/2] & 0xFF;
} else {
LVsenddata[i+2] = (DataToLabView.rawData[i/2]>>8) & 0xFF;
}
}
serial_sendSCID(&SerialD, LVsenddata, 4*LVNUM_TOFROM_FLOATS + 2);
}
//***********************************************************************
// if (shape == 0.0)
// {
// generate_digit_path(0, pathX, pathY, 520);
// v_ref = 0.12;
// go = 1;
// }
// else if (shape == 1.0)
// {
// generate_digit_path(1, pathX, pathY, 520);
// v_ref = 0.12;
// go = 1;
// }
// else if (shape == 2.0)
// {
// generate_digit_path(2, pathX, pathY, 520);
// v_ref = 0.12;
// go = 1;
// }
//--------------------------------------------------
// Load new shape (ONLY when shape is changed by LV)
//--------------------------------------------------
if (shape > 0 && go == 0) // only load when idle
{
index = 0;
target_index = 0;
finished = false;
// if (shape == 0.0)
// {
// generate_digit_path(0, pathX, pathY, 520);
// v_ref = 0.12;
// go = 1;
// }
if (shape == 1.0)
{
generate_digit_path(1, pathX, pathY, 520);
v_ref = 0.12;
go = 1;
}
else if (shape == 2.0)
{
generate_digit_path(2, pathX, pathY, 520);
v_ref = 0.12;
go = 1;
}
else if (shape == 3.0)
{
generate_digit_path(3, pathX, pathY, 520);
v_ref = 0.12;
go = 1;
}
else if (shape == 4.0)
{
generate_digit_path(4, pathX, pathY, 520);
v_ref = 0.12;
go = 1;
}else if (shape == 5.0)
{
generate_digit_path(5, pathX, pathY, 520);
v_ref = 0.12;
go = 1;
}
else if (shape == 6.0)
{
generate_digit_path(6, pathX, pathY, 520);
v_ref = 0.12;
go = 1;}
else if (shape == 7.0)
{
for (int i = 0; i < 520; i++) {
pathX[i] = pathX_7[i];
pathY[i] = pathY_7[i];
}
v_ref = 0.12;
go = 1;
}
else if (shape == 8.0)
{
for (int i = 0; i < 520; i++) {
pathX[i] = pathX_8[i];
pathY[i] = pathY_8[i];
}
}
else if (shape == 9.0)
{
generate_digit_path(9, pathX, pathY, 520);
}
else if (shape == 10.0)
{
for (int i = 0; i < 520; i++) {
pathX[i] = pathX_square[i];
pathY[i] = pathY_square[i];
}
}
else if (shape == 11.0)
{
for (int i = 0; i < 520; i++) {
pathX[i] = pathX_rectangle[i];
pathY[i] = pathY_rectangle[i];
}
}
else if (shape == 12.0)
{
for (int i = 0; i < 520; i++) {
pathX[i] = pathX_circle[i];
pathY[i] = pathY_circle[i];
}
}
else if (shape == 13.0)
{
...
This file has been truncated, please download it to see its full contents.
voice_command_listener_12_18.py
Pythondef listen_once(input=0):
# All imports inside the function
import assemblyai as aai
import sounddevice as sd
import numpy as np
import wavio
import tempfile
FS = 16000
DURATION = 4.0
TMP_WAV = tempfile.gettempdir() + "\\command.wav"
# TMP_WAV = "/tmp/command.wav"
# ---------------------------------------------------
# BEEP SOUND
# ---------------------------------------------------
def play_beep(freq=440, duration=0.25, fs=FS):
t = np.linspace(0, duration, int(fs * duration), False)
tone = np.sin(freq * 2 * np.pi * t) * 0.3
sd.play(tone, fs)
sd.wait()
# ---------------------------------------------------
# RECORD AUDIO
# ---------------------------------------------------
def record_audio_to_wav(filename=TMP_WAV, duration=DURATION, fs=FS):
play_beep()
print(" Listening... Speak your command.")
audio = sd.rec(int(duration * fs), samplerate=fs, channels=1, dtype="int16")
sd.wait()
print(" Recording finished.")
wavio.write(filename, audio, fs, sampwidth=2)
return filename
# ---------------------------------------------------
# TRANSCRIBE AUDIO
# ---------------------------------------------------
def transcribe_file(filename=TMP_WAV) -> str:
aai.settings.api_key = ""
#Please enter your AssemblyAI token here
config = aai.TranscriptionConfig(
speech_model=aai.SpeechModel.universal
)
transcriber = aai.Transcriber(config=config)
transcript = transcriber.transcribe(filename)
if transcript.status == "error":
raise RuntimeError(f"Transcription failed: {transcript.error}")
text = transcript.text or ""
print(f" Transcript: {text}")
return text.lower()
# ---------------------------------------------------
# PARSE COMMAND
# ---------------------------------------------------
def parse_command(text: str):
stop_cmd = "stop" in text
start_cmd = any(word in text for word in ["start", "begin", "go"])
size_cmd = None
if any(w in text for w in ["bigger", "larger", "increase", "big"]):
size_cmd = "bigger"
elif any(w in text for w in ["smaller", "decrease", "small"]):
size_cmd = "smaller"
elif "default size" in text or "normal size" in text:
size_cmd = "default"
shape = None
if "square" in text:
shape = 10
elif "rectangle" in text:
shape = 11
elif "circle" in text:
shape = 12
elif "oval" in text or "ellipse" in text:
shape = 13
digit_words = {
"zero": 0, "oh": 0,
"one": 1, "won": 1,
"two": 2, "to": 2, "too": 2,
"three": 3,
"four": 4, "for": 4,
"five": 5,
"six": 6,
"seven": 7,
"eight": 8,
"nine": 9,
}
tokens = text.split()
for tok in tokens:
if tok.isdigit() and len(tok) == 1:
shape = f"digit_{int(tok)}"
break
if tok in digit_words:
shape = f"digit_{digit_words[tok]}"
break
return shape, stop_cmd, start_cmd, size_cmd
# ---------------------------------------------------
# MAIN LOGIC OF listen_once
# ---------------------------------------------------
wav = record_audio_to_wav()
text = transcribe_file(wav)
shape, stop_cmd, start_cmd, size_cmd = parse_command(text)
return (shape, size_cmd)
















Comments