diff --git a/.gitignore b/.gitignore index 2433285..46c2549 100644 --- a/.gitignore +++ b/.gitignore @@ -5,4 +5,5 @@ *.bak a.out *.bin -*.elf \ No newline at end of file +*.elf +.spurip_history diff --git a/tfrog-motordriver/communication.c b/tfrog-motordriver/communication.c index 298fac2..e5d3f15 100644 --- a/tfrog-motordriver/communication.c +++ b/tfrog-motordriver/communication.c @@ -1,6 +1,6 @@ -//----------------------------------------------------------------------------- -// Headers -//------------------------------------------------------------------------------ +// ----------------------------------------------------------------------------- +// Headers +// ------------------------------------------------------------------------------ #include #include @@ -16,7 +16,6 @@ #include "controlVelocity.h" #include "controlPWM.h" - unsigned char send_buf[1024]; unsigned char receive_buf[2048]; int w_receive_buf = 0; @@ -26,27 +25,27 @@ extern const Pin pinPWMEnable; inline void send( char *buf ) { - for( ; *buf; buf ++ ) + for( ; *buf; buf++ ) { - send_buf[send_buf_pos] = (unsigned char)(*buf); - send_buf_pos ++; + send_buf[send_buf_pos] = ( unsigned char )( *buf ); + send_buf_pos++; } } inline void flush( void ) { static int itry = 0; - if( send_buf_pos == 0 ) return; - while (1) + if( send_buf_pos == 0 ) + return; + while( 1 ) { - if( CDCDSerialDriver_Write(send_buf, - send_buf_pos, 0, 0) != USBD_STATUS_SUCCESS ) + if( CDCDSerialDriver_Write( send_buf, send_buf_pos, 0, 0 ) != USBD_STATUS_SUCCESS ) { - itry ++; + itry++; if( itry > 0 ) { send_buf[send_buf_pos] = 0; - TRACE_ERROR( "Send Failed\n\r%s\n\r", send_buf); + TRACE_ERROR( "Send Failed\n\r%s\n\r", send_buf ); break; } } @@ -55,12 +54,11 @@ inline void flush( void ) break; } } -// CDCDSerialDriver_Write(send_buf, send_buf_pos, 0, 0); -// printf("%u\n\r",send_buf_pos); + // CDCDSerialDriver_Write(send_buf, send_buf_pos, 0, 0); + // printf("%u\n\r",send_buf_pos); send_buf_pos = 0; } - /** * @brief エンコード */ @@ -111,19 +109,19 @@ inline int encode( unsigned char *src, int len, unsigned char *dst, int buf_max inline int decord( unsigned char *src, int len, unsigned char *dst, int buf_max ) { static unsigned short dat, b; -// static int pos; + // static int pos; static int s_pos, w_pos; static int rerr; -// pos = 0; // read position + // pos = 0; // read position w_pos = 0; // write_position s_pos = 0; // shift position rerr = 0; dat = 0; b = 0; - while( /*pos <*/ len ) + while( /* pos < */ len ) { - // if( src[pos] >= 0x40 ) - // b = src[pos] - 0x40; + // if( src[pos] >= 0x40 ) + // b = src[pos] - 0x40; if( *src >= 0x40 ) b = *src - 0x40; else @@ -140,9 +138,9 @@ inline int decord( unsigned char *src, int len, unsigned char *dst, int buf_max s_pos -= 8; dat = dat << 8; } - // pos++; - src ++; - len --; + // pos++; + src++; + len--; } if( rerr ) @@ -167,7 +165,7 @@ inline int data_send( short cnt1, short cnt2, short pwm1, short pwm2, short *ana data[7] = ( ( Integer2 ) pwm2 ).byte[0]; len = 8; - for ( i = 0; analog_mask != 0; analog_mask = analog_mask >> 1, i++ ) + for( i = 0; analog_mask != 0; analog_mask = analog_mask >> 1, i++ ) { if( analog_mask & 1 ) { @@ -179,13 +177,14 @@ inline int data_send( short cnt1, short cnt2, short pwm1, short pwm2, short *ana // 変換 send_buf_pos = 0; - send_buf[ 0 ] = COMMUNICATION_START_BYTE; + send_buf[0] = COMMUNICATION_START_BYTE; encode_len = encode( ( unsigned char * )data, len, send_buf + 1, 1024 - 2 ); - if( encode_len < 0 ) return encode_len; - send_buf[ encode_len + 1 ] = COMMUNICATION_END_BYTE; + if( encode_len < 0 ) + return encode_len; + send_buf[encode_len + 1] = COMMUNICATION_END_BYTE; send_buf_pos = encode_len + 2; - flush(); + flush( ); return encode_len; } @@ -195,12 +194,13 @@ inline int data_fetch( unsigned char *data, int len ) unsigned char *data_begin; data_begin = data; - for( ; len; len -- ) + for( ; len; len-- ) { - receive_buf[ w_receive_buf ] = *data; - w_receive_buf ++; - data ++; - if( w_receive_buf >= 2048 ) w_receive_buf = 0; + receive_buf[w_receive_buf] = *data; + w_receive_buf++; + data++; + if( w_receive_buf >= 2048 ) + w_receive_buf = 0; if( w_receive_buf == r_receive_buf ) { break; @@ -209,34 +209,36 @@ inline int data_fetch( unsigned char *data, int len ) if( len ) { int i; - for( i = 0; i < len; i ++ ) + for( i = 0; i < len; i++ ) { - data_begin[ i ] = data[ i ]; + data_begin[i] = data[i]; } } return len; } -inline int data_analyze( ) +inline int data_analyze( ) { unsigned char line[64]; unsigned char *data; int r_buf, len; - enum{ + enum + { STATE_IDLE, STATE_RECIEVING } state = STATE_IDLE; r_buf = r_receive_buf; - data = &receive_buf[ r_receive_buf ]; + data = &receive_buf[r_receive_buf]; len = 0; - for( ; ; ) + for( ;; ) { - if( r_buf == w_receive_buf ) break; - line[ len ] = *data; - len ++; + if( r_buf == w_receive_buf ) + break; + line[len] = *data; + len++; - switch( state ) + switch ( state ) { case STATE_IDLE: if( *data == COMMUNICATION_START_BYTE ) @@ -247,8 +249,8 @@ inline int data_analyze( ) if( *data == COMMUNICATION_END_BYTE ) { - line[ len - 1 ] = 0; - extended_command_analyze( (char*)line ); + line[len - 1] = 0; + extended_command_analyze( ( char * )line ); len = 0; r_receive_buf = r_buf; state = STATE_IDLE; @@ -259,7 +261,7 @@ inline int data_analyze( ) { static unsigned char rawdata[16]; int data_len; - + data_len = decord( line, len - 1, rawdata, 16 ); command_analyze( rawdata, data_len ); len = 0; @@ -268,8 +270,8 @@ inline int data_analyze( ) } break; } - data ++; - r_buf ++; + data++; + r_buf++; if( r_buf >= 2048 ) { r_buf = 0; @@ -279,12 +281,11 @@ inline int data_analyze( ) return 0; } - // ////////////////////////////////////////////////// /* 受信したYPSpur拡張コマンドの解析 */ inline int extended_command_analyze( char *data ) { -// char line[64]; + // char line[64]; static int i; if( driver_param.servo_level != SERVO_LEVEL_STOP ) @@ -310,13 +311,13 @@ inline int extended_command_analyze( char *data ) unsigned char tmp; tmp = 0; - for ( i = 6; data[i] != 0 && data[i] != '\n' && data[i] != '\r'; i++ ) + for( i = 6; data[i] != 0 && data[i] != '\n' && data[i] != '\r'; i++ ) { tmp = tmp << 1; if( data[i] == '1' ) tmp |= 1; } -// analog_mask = tmp; + // analog_mask = tmp; driver_param.admask = tmp; send( data ); send( "\n00P\n\n" ); @@ -327,14 +328,14 @@ inline int extended_command_analyze( char *data ) // PE0-3(0-3), PB2-5(4-7) tmp = 0; - for ( i = 8; data[i] != 0 && data[i] != '\n' && data[i] != '\r'; i++ ) + for( i = 8; data[i] != 0 && data[i] != '\n' && data[i] != '\r'; i++ ) { tmp = tmp << 1; if( data[i] == '1' ) tmp |= 1; } -// PFC.PEIOR.WORD = ( PFC.PEIOR.WORD & 0xFFF0 ) | ( ( tmp & 0x0F ) << 0 ); -// PFC.PBIOR.WORD = ( PFC.PBIOR.WORD & 0xFFC3 ) | ( ( tmp & 0xF0 ) >> 2 ); + // PFC.PEIOR.WORD = ( PFC.PEIOR.WORD & 0xFFF0 ) | ( ( tmp & 0x0F ) << 0 ); + // PFC.PBIOR.WORD = ( PFC.PBIOR.WORD & 0xFFC3 ) | ( ( tmp & 0xF0 ) >> 2 ); driver_param.io_dir = tmp; send( data ); send( "\n00P\n\n" ); @@ -343,18 +344,24 @@ inline int extended_command_analyze( char *data ) { unsigned short tmp; char num[3]; -// tmp = ( PE.DR.WORD & 0x0F ) | ( ( PB.DR.WORD & 0x3C ) << 2 ); + // tmp = ( PE.DR.WORD & 0x0F ) | ( ( PB.DR.WORD & 0x3C ) << 2 ); tmp = 0; send( data ); send( "\n" ); - if( ( tmp >> 4 ) > 9 ){ + if( ( tmp >> 4 ) > 9 ) + { num[0] = ( tmp >> 4 ) - 10 + 'A'; - }else{ + } + else + { num[0] = ( tmp >> 4 ) + '0'; } - if( ( tmp & 0xF ) > 9 ){ + if( ( tmp & 0xF ) > 9 ) + { num[1] = ( tmp & 0xF ) - 10 + 'A'; - }else{ + } + else + { num[1] = ( tmp & 0xF ) + '0'; } num[2] = 0; @@ -365,12 +372,12 @@ inline int extended_command_analyze( char *data ) { if( data[5] == '1' ) { -// dio_enable = 1; + // dio_enable = 1; driver_param.io_mask = 0xFF; } else { -// dio_enable = 0; + // dio_enable = 0; driver_param.io_mask = 0; } send( data ); @@ -382,25 +389,25 @@ inline int extended_command_analyze( char *data ) // PA18-21(0-3), PB2-5(4-7) tmp = 0; - for ( i = 6; data[i] != 0 && data[i] != '\n' && data[i] != '\r'; i++ ) + for( i = 6; data[i] != 0 && data[i] != '\n' && data[i] != '\r'; i++ ) { tmp = tmp << 1; if( data[i] == '1' ) tmp |= 1; } -// PE.DR.WORD = ( PE.DR.WORD & 0xFFF0 ) | ( ( tmp & 0x0F ) << 0 ); -// PB.DR.WORD = ( PB.DR.WORD & 0xFFC3 ) | ( ( tmp & 0xF0 ) >> 2 ); + // PE.DR.WORD = ( PE.DR.WORD & 0xFFF0 ) | ( ( tmp & 0x0F ) << 0 ); + // PB.DR.WORD = ( PB.DR.WORD & 0xFFC3 ) | ( ( tmp & 0xF0 ) >> 2 ); send( data ); send( "\n00P\n\n" ); } else if( strstr( data, "SS" ) == data ) { int tmp; -// volatile int lo; + // volatile int lo; -// cnt_updated = 0; + // cnt_updated = 0; tmp = 0; - for ( i = 2; data[i] != 0 && data[i] != '\n' && data[i] != '\r'; i++ ) + for( i = 2; data[i] != 0 && data[i] != '\n' && data[i] != '\r'; i++ ) { tmp *= 10; tmp += data[i] - '0'; @@ -408,19 +415,19 @@ inline int extended_command_analyze( char *data ) send( data ); send( "\n00P\n\n" ); // 送信終了まで待機 -// while( SCI_send_rp[channel] != SCI_send_wp[channel] ); -// for ( lo = 0; lo < 10000; lo++ ); /* wait more than 1bit time */ -// sci_init( tmp ); -// sci_start( ); // start SCI -// cnt_updated = 0; + // while( SCI_send_rp[channel] != SCI_send_wp[channel] ); + // for ( lo = 0; lo < 10000; lo++ ); /* wait more than 1bit time */ + // sci_init( tmp ); + // sci_start( ); // start SCI + // cnt_updated = 0; } else if( strstr( data, "STORE" ) == data ) { int chk = 0xAACC; AT91C_BASE_EFC1->EFC_FMR = AT91C_MC_FWS_1FWS; - memcpy( (int*)0x0017FF00, &driver_param, sizeof(driver_param) ); - memcpy( (int*)( 0x0017FF00 + sizeof(driver_param) ), motor_param, sizeof(motor_param) ); - memcpy( (int*)( 0x0017FF00 + sizeof(driver_param) + sizeof(motor_param) ), &chk, sizeof(chk) ); + memcpy( ( int * )0x0017FF00, &driver_param, sizeof ( driver_param ) ); + memcpy( ( int * )( 0x0017FF00 + sizeof ( driver_param ) ), motor_param, sizeof ( motor_param ) ); + memcpy( ( int * )( 0x0017FF00 + sizeof ( driver_param ) + sizeof ( motor_param ) ), &chk, sizeof ( chk ) ); AT91C_BASE_EFC1->EFC_FCR = AT91C_MC_FCMD_START_PROG | ( 0x3FF << 8 ); send( data ); send( "\n00P\n\n" ); @@ -432,7 +439,7 @@ inline int extended_command_analyze( char *data ) send( data ); send( "\n0Ee\n\n" ); } - flush(); + flush( ); return 1; } @@ -454,8 +461,8 @@ inline int command_analyze( unsigned char *data, int len ) if( imotor < 0 || imotor >= 2 ) return 0; -// if(data[0] != PARAM_w_ref) -// printf("get %d %d %d\n\r",data[0],data[1],i.integer); + // if(data[0] != PARAM_w_ref) + // printf("get %d %d %d\n\r",data[0],data[1],i.integer); switch ( data[0] ) { case PARAM_w_ref: @@ -505,10 +512,10 @@ inline int command_analyze( unsigned char *data, int len ) motor_param[imotor].Ki = i.integer; break; case PARAM_pwm_max: - driver_param.PWM_max = i.integer; + driver_param.PWM_max = i.integer; break; case PARAM_pwm_min: - driver_param.PWM_min = i.integer; + driver_param.PWM_min = i.integer; break; case PARAM_toq_max: motor_param[imotor].torque_max = i.integer; @@ -532,25 +539,26 @@ inline int command_analyze( unsigned char *data, int len ) case PARAM_servo: if( driver_param.servo_level < SERVO_LEVEL_TORQUE && i.integer >= SERVO_LEVEL_TORQUE ) { - if( THEVA.GENERAL.ID != 0xA0 ){ - TRACE_ERROR("Invalid FPGA %u !\n\r", THEVA.GENERAL.ID ); + if( THEVA.GENERAL.ID != 0xA0 ) + { + TRACE_ERROR( "Invalid FPGA %u !\n\r", THEVA.GENERAL.ID ); while( 1 ); } - // printf("initialized\n\r" ); - controlPWM_config(); + // printf("initialized\n\r" ); + controlPWM_config( ); THEVA.GENERAL.PWM.COUNT_ENABLE = 1; - THEVA.GENERAL.OUTPUT_ENABLE = 1; + THEVA.GENERAL.OUTPUT_ENABLE = 1; PIO_Clear( &pinPWMEnable ); - // printf("PWM Period: %d\n\r", THEVA.GENERAL.PWM.HALF_PERIOD); - // printf("PWM Deadtime: %d\n\r", THEVA.GENERAL.PWM.DEADTIME); + // printf("PWM Period: %d\n\r", THEVA.GENERAL.PWM.HALF_PERIOD); + // printf("PWM Deadtime: %d\n\r", THEVA.GENERAL.PWM.DEADTIME); - // AIC_EnableIT(AT91C_ID_TC0); + // AIC_EnableIT(AT91C_ID_TC0); } if( driver_param.servo_level < SERVO_LEVEL_VELOCITY && i.integer >= SERVO_LEVEL_VELOCITY ) - { // servo levelが速度制御に推移した + { // servo levelが速度制御に推移した motor[0].error_integ = 0; motor[1].error_integ = 0; } @@ -570,11 +578,10 @@ inline int command_analyze( unsigned char *data, int len ) driver_param.admask = i.integer; break; case PARAM_enc_rev: - motor_param[imotor].enc_rev = i.integer; + motor_param[imotor].enc_rev = i.integer; default: return 0; } driver_param.watchdog = 0; return 0; } - diff --git a/tfrog-motordriver/communication.h b/tfrog-motordriver/communication.h index 0e87039..22ddead 100644 --- a/tfrog-motordriver/communication.h +++ b/tfrog-motordriver/communication.h @@ -57,11 +57,9 @@ typedef enum PARAM_ad_mask } YPSpur_loco_param; - #define COMMUNICATION_START_BYTE 0x09 #define COMMUNICATION_END_BYTE 0x0a - /* firmware */ #define YP_FIRMWARE_NAME "2010.11.04" /* parametor files dir */ @@ -73,10 +71,7 @@ typedef enum /* vendor */ #define YP_VENDOR_NAME "Univ. of Tsukuba - Intelligent Robot Lab." - - - -int data_analyze( ); +int data_analyze( ); int data_fetch( unsigned char *data, int len ); int extended_command_analyze( char *data ); int command_analyze( unsigned char *data, int len ); @@ -84,5 +79,4 @@ int data_send( short cnt1, short cnt2, short pwm1, short pwm2, short *analog, un int decord( unsigned char *src, int len, unsigned char *dst, int buf_max ); int encode( unsigned char *src, int len, unsigned char *dst, int buf_max ); - #endif diff --git a/tfrog-motordriver/controlPWM.c b/tfrog-motordriver/controlPWM.c index 599771c..22a9e4f 100644 --- a/tfrog-motordriver/controlPWM.c +++ b/tfrog-motordriver/controlPWM.c @@ -1,6 +1,6 @@ -//----------------------------------------------------------------------------- -// Headers -//------------------------------------------------------------------------------ +// ----------------------------------------------------------------------------- +// Headers +// ------------------------------------------------------------------------------ #include #include @@ -21,17 +21,17 @@ #include "controlVelocity.h" #include "power.h" +static const Pin pinsLeds[] = { PINS_LEDS }; -static const Pin pinsLeds[] = {PINS_LEDS}; -static const unsigned int numLeds = PIO_LISTSIZE(pinsLeds); +static const unsigned int numLeds = PIO_LISTSIZE( pinsLeds ); -static const Pin pinPWMCycle = PIN_PWM_CYCLE; +static const Pin pinPWMCycle = PIN_PWM_CYCLE; static const Pin pinPWMCycle2 = PIN_PWM_CYCLE2; -/// PWM Enable pin instance. +// / PWM Enable pin instance. static const Pin pinPWMEnable = PIN_PWM_ENABLE; -//static long enc2phase[2]; +// static long enc2phase[2]; short SinTB[2][4096]; int phase_offset[2][2]; int phase90[2]; @@ -41,7 +41,7 @@ int PWM_center = 0; extern int velcontrol; -void controlPWM_config( ) +void controlPWM_config( ) { static unsigned short hall[2]; static int i, j; @@ -51,24 +51,23 @@ void controlPWM_config( ) bwatchdog = driver_param.enable_watchdog; driver_param.enable_watchdog = 0; - - hall[0] = *(unsigned short*)&THEVA.MOTOR[0].ROT_DETECTER; - hall[1] = *(unsigned short*)&THEVA.MOTOR[1].ROT_DETECTER; - + + hall[0] = *( unsigned short * )&THEVA.MOTOR[0].ROT_DETECTER; + hall[1] = *( unsigned short * )&THEVA.MOTOR[1].ROT_DETECTER; + PWM_resolution = 1200; deadtime = 36; THEVA.GENERAL.PWM.HALF_PERIOD = PWM_resolution; - THEVA.GENERAL.PWM.DEADTIME = deadtime; + THEVA.GENERAL.PWM.DEADTIME = deadtime; PWM_abs_max = PWM_resolution - deadtime - 1; PWM_abs_min = deadtime + 1; - PWM_center = PWM_resolution / 2; + PWM_center = PWM_resolution / 2; - -// PIO_Clear( &pinsLeds[USBD_LEDPOWER] ); - for( i = 0; i < 2; i ++ ) + // PIO_Clear( &pinsLeds[USBD_LEDPOWER] ); + for( i = 0; i < 2; i++ ) { - // enc2phase[i] = 2000 / motor_param[i].enc_rev; + // enc2phase[i] = 2000 / motor_param[i].enc_rev; THEVA.MOTOR[i].PWM[0].H = 0; THEVA.MOTOR[i].PWM[1].H = 0; @@ -77,28 +76,28 @@ void controlPWM_config( ) THEVA.MOTOR[i].PWM[1].L = PWM_resolution; THEVA.MOTOR[i].PWM[2].L = PWM_resolution; - motor_param[i].enc_drev[0] = motor_param[i].enc_rev / 6; + motor_param[i].enc_drev[0] = motor_param[i].enc_rev / 6; motor_param[i].enc_drev[1] = motor_param[i].enc_rev * 2 / 6; motor_param[i].enc_drev[2] = motor_param[i].enc_rev * 3 / 6; motor_param[i].enc_drev[3] = motor_param[i].enc_rev * 4 / 6; motor_param[i].enc_drev[4] = motor_param[i].enc_rev * 5 / 6; motor_param[i].enc_drev[5] = motor_param[i].enc_rev; - + motor_param[i].enc_10hz = motor_param[i].enc_rev * 10 * 4 / 1000; if( hall[i] & HALL_U ) { if( hall[i] & HALL_V ) { - motor_param[i].enc0 = motor[i].pos - motor_param[i].enc_rev * 5 / 12; // 150度 + motor_param[i].enc0 = motor[i].pos - motor_param[i].enc_rev * 5 / 12; // 150度 } else if( hall[i] & HALL_W ) { - motor_param[i].enc0 = motor[i].pos - motor_param[i].enc_rev * 1 / 12; // 30度 + motor_param[i].enc0 = motor[i].pos - motor_param[i].enc_rev * 1 / 12; // 30度 } else { - motor_param[i].enc0 = motor[i].pos - motor_param[i].enc_rev * 3 / 12; // 90度 + motor_param[i].enc0 = motor[i].pos - motor_param[i].enc_rev * 3 / 12; // 90度 } } else @@ -109,76 +108,78 @@ void controlPWM_config( ) } else if( !( hall[i] & HALL_W ) ) { - motor_param[i].enc0 = motor[i].pos - motor_param[i].enc_rev * 7 / 12; // 210度 + motor_param[i].enc0 = motor[i].pos - motor_param[i].enc_rev * 7 / 12; // 210度 } else { - motor_param[i].enc0 = motor[i].pos - motor_param[i].enc_rev * 9 / 12; // 270度 + motor_param[i].enc0 = motor[i].pos - motor_param[i].enc_rev * 9 / 12; // 270度 } } phase90[i] = motor_param[i].enc_rev - motor_param[i].enc_rev / 4; - phase_offset[i][ 0 ] = motor_param[i].enc_rev / 3; - phase_offset[i][ 1 ] = motor_param[i].enc_rev * 2 / 3; + phase_offset[i][0] = motor_param[i].enc_rev / 3; + phase_offset[i][1] = motor_param[i].enc_rev * 2 / 3; if( i == 1 && motor_param[1].enc_rev == motor_param[0].enc_rev ) { - for( j = 0; j < motor_param[i].enc_rev; j ++ ) + for( j = 0; j < motor_param[i].enc_rev; j++ ) { SinTB[1][j] = SinTB[0][j]; } break; } - for( j = 0; j < motor_param[i].enc_rev/2; j ++ ) + for( j = 0; j < motor_param[i].enc_rev / 2; j++ ) { fixp4 val; int ival; val = ( fp4sin( FP4_PI2 * j / motor_param[i].enc_rev ) - + fp4mul( fp4sin( FP4_PI2 * 3 * j / motor_param[i].enc_rev ), DOUBLE2FP4(0.1547) ) ); + + fp4mul( fp4sin( FP4_PI2 * 3 * j / motor_param[i].enc_rev ), DOUBLE2FP4( 0.1547 ) ) ); // = ( 2.0 / sqrt( 3.0 ) - 1.0 ) - ival = val * /*4730*/3547 / FP4_ONE; - - if( ival > 4096 ) ival = 4096; - else if( ival < -4096 ) ival = -4096; - + ival = val * /* 4730 */ 3547 / FP4_ONE; + + if( ival > 4096 ) + ival = 4096; + else if( ival < -4096 ) + ival = -4096; + SinTB[i][j] = ival; driver_param.watchdog = 0; } - for( j = 0; j < motor_param[i].enc_rev/2; j ++ ) + for( j = 0; j < motor_param[i].enc_rev / 2; j++ ) { - SinTB[i][j+motor_param[i].enc_rev/2] = -SinTB[i][j]; + SinTB[i][j + motor_param[i].enc_rev / 2] = -SinTB[i][j]; } } driver_param.enable_watchdog = bwatchdog; -// PIO_Set( &pinsLeds[USBD_LEDPOWER] ); + // PIO_Set( &pinsLeds[USBD_LEDPOWER] ); } - -//------------------------------------------------------------------------------ -/// PWM control interrupt (every PWM period) 20us/50us -//------------------------------------------------------------------------------ -//void FIQ_PWMPeriod( const Pin *pPin ) -void FIQ_PWMPeriod( ) +// ------------------------------------------------------------------------------ +// / PWM control interrupt (every PWM period) 20us/50us +// ------------------------------------------------------------------------------ +// void FIQ_PWMPeriod( const Pin *pPin ) +void FIQ_PWMPeriod( ) { static unsigned short enc[2]; static unsigned short _enc[2]; static unsigned short hall[2]; static unsigned short _hall[2]; - //static int test = 0; + // static int test = 0; static int i; static int init = 0; static int cnt = 0; -// AT91C_BASE_AIC->AIC_ICCR = 1 << AT91C_ID_IRQ0; + // AT91C_BASE_AIC->AIC_ICCR = 1 << AT91C_ID_IRQ0; - if( driver_param.servo_level < SERVO_LEVEL_TORQUE ) return; - //PIO_Clear( &pinsLeds[USBD_LEDPOWER] ); + if( driver_param.servo_level < SERVO_LEVEL_TORQUE ) + return; + // PIO_Clear( &pinsLeds[USBD_LEDPOWER] ); motor[0].enc = enc[0] = THEVA.MOTOR[0].ENCODER; motor[1].enc = enc[1] = THEVA.MOTOR[1].ENCODER; - hall[0] = *(unsigned short*)&THEVA.MOTOR[0].ROT_DETECTER; - hall[1] = *(unsigned short*)&THEVA.MOTOR[1].ROT_DETECTER; + hall[0] = *( unsigned short * )&THEVA.MOTOR[0].ROT_DETECTER; + hall[1] = *( unsigned short * )&THEVA.MOTOR[1].ROT_DETECTER; if( !init ) { @@ -191,12 +192,16 @@ void FIQ_PWMPeriod( ) return; } - motor[0].pos += (short)( enc[0] - _enc[0] ); - motor[1].pos += (short)( enc[1] - _enc[1] ); - if( motor[0].pos >= motor_param[0].enc_rev ) motor[0].pos -= motor_param[0].enc_rev; - if( motor[1].pos >= motor_param[1].enc_rev ) motor[1].pos -= motor_param[1].enc_rev; - if( motor[0].pos < 0 ) motor[0].pos += motor_param[0].enc_rev; - if( motor[1].pos < 0 ) motor[1].pos += motor_param[1].enc_rev; + motor[0].pos += ( short )( enc[0] - _enc[0] ); + motor[1].pos += ( short )( enc[1] - _enc[1] ); + if( motor[0].pos >= motor_param[0].enc_rev ) + motor[0].pos -= motor_param[0].enc_rev; + if( motor[1].pos >= motor_param[1].enc_rev ) + motor[1].pos -= motor_param[1].enc_rev; + if( motor[0].pos < 0 ) + motor[0].pos += motor_param[0].enc_rev; + if( motor[1].pos < 0 ) + motor[1].pos += motor_param[1].enc_rev; // PWM計算 { @@ -204,65 +209,73 @@ void FIQ_PWMPeriod( ) static int phase[3]; static int j; - for( j = 0; j < 2; j ++ ) + for( j = 0; j < 2; j++ ) { - phase[0] = ( ( motor[j].pos - motor_param[j].enc0) ) - phase90[j]; - while( phase[0] < 0 ) phase[0] += motor_param[j].enc_rev; - while( phase[0] >= motor_param[j].enc_rev ) phase[0] -= motor_param[j].enc_rev; - - phase[1] = phase[0] - phase_offset[j][ 0 ]; - while( phase[1] < 0 ) phase[1] += motor_param[j].enc_rev; - while( phase[1] >= motor_param[j].enc_rev ) phase[1] -= motor_param[j].enc_rev; - - phase[2] = phase[0] - phase_offset[j][ 1 ]; - while( phase[2] < 0 ) phase[2] += motor_param[j].enc_rev; - while( phase[2] >= motor_param[j].enc_rev ) phase[2] -= motor_param[j].enc_rev; - - for( i = 0; i < 3; i ++ ) + phase[0] = ( ( motor[j].pos - motor_param[j].enc0 ) ) - phase90[j]; + while( phase[0] < 0 ) + phase[0] += motor_param[j].enc_rev; + while( phase[0] >= motor_param[j].enc_rev ) + phase[0] -= motor_param[j].enc_rev; + + phase[1] = phase[0] - phase_offset[j][0]; + while( phase[1] < 0 ) + phase[1] += motor_param[j].enc_rev; + while( phase[1] >= motor_param[j].enc_rev ) + phase[1] -= motor_param[j].enc_rev; + + phase[2] = phase[0] - phase_offset[j][1]; + while( phase[2] < 0 ) + phase[2] += motor_param[j].enc_rev; + while( phase[2] >= motor_param[j].enc_rev ) + phase[2] -= motor_param[j].enc_rev; + + for( i = 0; i < 3; i++ ) { static int pwmt; - pwmt = ( ( (int)SinTB[j][ phase[i] ] * motor[j].ref.rate ) / 8192 ) + PWM_center; - if( pwmt < PWM_abs_min ) pwmt = PWM_abs_min; - if( pwmt > PWM_abs_max ) pwmt = PWM_abs_max; + pwmt = ( ( ( int )SinTB[j][phase[i]] * motor[j].ref.rate ) / 8192 ) + PWM_center; + if( pwmt < PWM_abs_min ) + pwmt = PWM_abs_min; + if( pwmt > PWM_abs_max ) + pwmt = PWM_abs_max; pwm[j][i] = pwmt; } } - for( i = 0; i < 3; i ++ ) + for( i = 0; i < 3; i++ ) { THEVA.MOTOR[0].PWM[i].H = pwm[0][i]; THEVA.MOTOR[1].PWM[i].H = pwm[1][i]; } } - + // ゼロ点計算 - for( i = 0; i < 2; i ++ ) + for( i = 0; i < 2; i++ ) { static char u; static char v; static char w; - + { u = v = w = 0; - switch( hall[i] ^ _hall[i] ) + switch ( hall[i] ^ _hall[i] ) { case HALL_U: if( !( _hall[i] & HALL_U ) ) - u = 1; // 正回転 U立ち上がり 0度 + u = 1; // 正回転 U立ち上がり 0度 else - u = -1; // 正回転 U立ち下がり 180度 + u = -1; // 正回転 U立ち下がり 180度 break; case HALL_V: if( !( _hall[i] & HALL_V ) ) - v = 1; // 正回転 V立ち上がり 120度 + v = 1; // 正回転 V立ち上がり 120度 else - v = -1; // 正回転 V立ち下がり 300度 + v = -1; // 正回転 V立ち下がり 300度 break; case HALL_W: if( !( _hall[i] & HALL_W ) ) - w = 1; // 正回転 W立ち上がり 240度 + w = 1; // 正回転 W立ち上がり 240度 else - w = -1; // 正回転 W立ち下がり 60度 + w = -1; // 正回転 W立ち下がり 60度 break; default: // エラー @@ -272,22 +285,23 @@ void FIQ_PWMPeriod( ) // 逆回転 if( motor[i].vel < -8 ) { - u = -u; v = -v; w = -w; + u = -u; + v = -v; + w = -w; } else if( motor[i].vel <= 8 ) { - continue; + continue; } - + // ホール素子は高速域では信頼できない - if( motor[i].vel < -motor_param[i].enc_10hz || - motor[i].vel > motor_param[i].enc_10hz ) + if( motor[i].vel < -motor_param[i].enc_10hz || motor[i].vel > motor_param[i].enc_10hz ) { - continue; + continue; } - + // ゼロ点計算 - + if( w == -1 ) motor_param[i].enc0 = motor[i].pos - motor_param[i].enc_drev[0]; else if( v == 1 ) @@ -305,64 +319,58 @@ void FIQ_PWMPeriod( ) _hall[0] = hall[0]; _hall[1] = hall[1]; - - if( cnt ++ % 20 == 0 ) + + if( cnt++ % 20 == 0 ) { - static int _vel[2][4] = { { 0, 0, 0, 0 }, { 0, 0, 0, 0 } }; - static unsigned short __enc[2]; - static unsigned char cnt = 0; - int vel[2]; - - velcontrol = 1; - for ( i = 0; i < 2; i++ ) - { - vel[i] = (short)( enc[i] - __enc[i] ); - _vel[i][cnt] = vel[i]; - if( abs( vel[i] ) < 32 ) - { - motor[i].vel = _vel[i][0] + _vel[i][1] + _vel[i][2] + _vel[i][3]; - } - else - { - motor[i].vel = vel[i] * 4; - } - __enc[i] = enc[i]; + static int _vel[2][4] = { {0, 0, 0, 0}, {0, 0, 0, 0} }; + static unsigned short __enc[2]; + static unsigned char cnt = 0; + int vel[2]; + + velcontrol = 1; + for( i = 0; i < 2; i++ ) + { + vel[i] = ( short )( enc[i] - __enc[i] ); + _vel[i][cnt] = vel[i]; + if( abs( vel[i] ) < 32 ) + { + motor[i].vel = _vel[i][0] + _vel[i][1] + _vel[i][2] + _vel[i][3]; + } + else + { + motor[i].vel = vel[i] * 4; + } + __enc[i] = enc[i]; motor[i].enc_buf = enc[i]; - } - cnt ++; - if( cnt >= 4 ) cnt = 0; + } + cnt++; + if( cnt >= 4 ) + cnt = 0; } - + _enc[0] = enc[0]; _enc[1] = enc[1]; - //PIO_Set( &pinsLeds[USBD_LEDPOWER] ); - + // PIO_Set( &pinsLeds[USBD_LEDPOWER] ); + return; } -//------------------------------------------------------------------------------ -/// Configure velocity control loop -//------------------------------------------------------------------------------ -void controlPWM_init( ) +// ------------------------------------------------------------------------------ +// / Configure velocity control loop +// ------------------------------------------------------------------------------ +void controlPWM_init( ) { -/* - PIO_Configure( &pinPWMCycle, 1 ); - AIC_ConfigureIT( AT91C_ID_FIQ, AT91C_AIC_SRCTYPE_EXT_NEGATIVE_EDGE, FIQ_PWMPeriod ); - -// AIC_EnableIT(AT91C_ID_FIQ); -*/ - - PIO_Configure( &pinPWMCycle2, 1 ); - AIC_ConfigureIT( AT91C_ID_IRQ0, 0 | AT91C_AIC_SRCTYPE_POSITIVE_EDGE, (void (*)(void))FIQ_PWMPeriod ); - AIC_EnableIT(AT91C_ID_IRQ0); - -/* - PIO_Configure(&pinPWMCycle, 1); - PIO_ConfigureIt(&pinPWMCycle, FIQ_PWMPeriod); - PIO_EnableIt(&pinPWMCycle); -*/ + /* + * PIO_Configure( &pinPWMCycle, 1 ); AIC_ConfigureIT( AT91C_ID_FIQ, AT91C_AIC_SRCTYPE_EXT_NEGATIVE_EDGE, + * FIQ_PWMPeriod ); + * + * // AIC_EnableIT(AT91C_ID_FIQ); */ + + PIO_Configure( &pinPWMCycle2, 1 ); + AIC_ConfigureIT( AT91C_ID_IRQ0, 0 | AT91C_AIC_SRCTYPE_POSITIVE_EDGE, ( void ( * )( void ) )FIQ_PWMPeriod ); + AIC_EnableIT( AT91C_ID_IRQ0 ); + + /* + * PIO_Configure(&pinPWMCycle, 1); PIO_ConfigureIt(&pinPWMCycle, FIQ_PWMPeriod); PIO_EnableIt(&pinPWMCycle); */ } - - - diff --git a/tfrog-motordriver/controlPWM.h b/tfrog-motordriver/controlPWM.h index a61958d..d48e495 100644 --- a/tfrog-motordriver/controlPWM.h +++ b/tfrog-motordriver/controlPWM.h @@ -1,9 +1,8 @@ #ifndef __CONTROL_PWM_H__ #define __CONTROL_PWM_H__ -void controlPWM_init( ); -RAMFUNC void controlPWM_config( ); -RAMFUNC void FIQ_PWMPeriod( ); +void controlPWM_init( ); +RAMFUNC void controlPWM_config( ); +RAMFUNC void FIQ_PWMPeriod( ); #endif - diff --git a/tfrog-motordriver/controlVelocity.c b/tfrog-motordriver/controlVelocity.c index 606c3af..c0bcb5a 100644 --- a/tfrog-motordriver/controlVelocity.c +++ b/tfrog-motordriver/controlVelocity.c @@ -1,6 +1,6 @@ -//----------------------------------------------------------------------------- -// Headers -//------------------------------------------------------------------------------ +// ----------------------------------------------------------------------------- +// Headers +// ------------------------------------------------------------------------------ #include #include @@ -17,37 +17,37 @@ #include "controlVelocity.h" #include "registerFPGA.h" -MotorState motor[2]; -MotorParam motor_param[2]; -DriverParam driver_param; +MotorState motor[2]; +MotorParam motor_param[2]; +DriverParam driver_param; extern int watchdog; -static const Pin pinsLeds[] = {PINS_LEDS}; -static const unsigned int numLeds = PIO_LISTSIZE(pinsLeds); +static const Pin pinsLeds[] = { PINS_LEDS }; -/// PWM Enable pin instance. +static const unsigned int numLeds = PIO_LISTSIZE( pinsLeds ); + +// / PWM Enable pin instance. static const Pin pinPWMEnable = PIN_PWM_ENABLE; -//------------------------------------------------------------------------------ -/// Velocity control loop (1ms) -//------------------------------------------------------------------------------ -void ISR_VelocityControl( ) +// ------------------------------------------------------------------------------ +// / Velocity control loop (1ms) +// ------------------------------------------------------------------------------ +void ISR_VelocityControl( ) { -// volatile unsigned int status; + // volatile unsigned int status; static int pwm_sum[2] = { 0, 0 }; static int error[2]; static int i; static int vel[2]; -// PIO_Clear(&pinsLeds[USBD_LEDOTHER]); - -// status = AT91C_BASE_TC0->TC_SR; + // PIO_Clear(&pinsLeds[USBD_LEDOTHER]); + // status = AT91C_BASE_TC0->TC_SR; if( driver_param.enable_watchdog ) { - driver_param.watchdog ++; + driver_param.watchdog++; if( driver_param.watchdog == driver_param.watchdog_limit ) { @@ -61,55 +61,55 @@ void ISR_VelocityControl( ) motor[0].pos = motor[1].pos = 0; motor_param[0].enc_rev = 0; motor_param[1].enc_rev = 0; - if( *(int*)( 0x0017FF00 + sizeof(driver_param) + sizeof(motor_param) ) == 0xAACC ) + if( *( int * )( 0x0017FF00 + sizeof ( driver_param ) + sizeof ( motor_param ) ) == 0xAACC ) { - memcpy( &driver_param, (int*)( 0x0017FF00 ), sizeof(driver_param) ); - memcpy( motor_param, (int*)( 0x0017FF00 + sizeof(driver_param) ), sizeof(motor_param) ); + memcpy( &driver_param, ( int * )( 0x0017FF00 ), sizeof ( driver_param ) ); + memcpy( motor_param, ( int * )( 0x0017FF00 + sizeof ( driver_param ) ), sizeof ( motor_param ) ); } THEVA.GENERAL.PWM.COUNT_ENABLE = 0; THEVA.GENERAL.OUTPUT_ENABLE = 0; PIO_Set( &pinPWMEnable ); return; - //AIC_DisableIT(AT91C_ID_TC0); + // AIC_DisableIT(AT91C_ID_TC0); } } if( driver_param.servo_level >= SERVO_LEVEL_TORQUE ) - { // servo_level 2(toque enable) + { // servo_level 2(toque enable) static int toq[2], out_pwm[2]; if( driver_param.servo_level >= SERVO_LEVEL_VELOCITY ) - { // servo_level 3 (speed enable) + { // servo_level 3 (speed enable) static int toq_pi[2], s_a, s_b; - for ( i = 0; i < 2; i++ ) + for( i = 0; i < 2; i++ ) { - motor[i].ref.vel_interval ++; - if( motor[i].ref.vel_changed ) - { - static int vel_buf[2] = { 0, 0 }; - motor[i].ref.vel_buf = motor[i].ref.vel * 4; - motor[i].ref.vel_diff = ( motor[i].ref.vel_buf - vel_buf[i] ) / motor[i].ref.vel_interval; - - vel_buf[i] = motor[i].ref.vel_buf; - motor[i].ref.vel_interval = 0; - - motor[i].ref.vel_changed = 0; - } - - // 積分 - motor[i].error = motor[i].ref.vel_buf - motor[i].vel; - motor[i].error_integ += motor[i].error; - if( motor[i].error_integ > driver_param.integ_max * 4 ) - { - motor[i].error_integ = driver_param.integ_max * 4; - } - else if( motor[i].error_integ < driver_param.integ_min * 4 ) - { - motor[i].error_integ = driver_param.integ_min * 4; - } - + motor[i].ref.vel_interval++; + if( motor[i].ref.vel_changed ) + { + static int vel_buf[2] = { 0, 0 }; + motor[i].ref.vel_buf = motor[i].ref.vel * 4; + motor[i].ref.vel_diff = ( motor[i].ref.vel_buf - vel_buf[i] ) / motor[i].ref.vel_interval; + + vel_buf[i] = motor[i].ref.vel_buf; + motor[i].ref.vel_interval = 0; + + motor[i].ref.vel_changed = 0; + } + + // 積分 + motor[i].error = motor[i].ref.vel_buf - motor[i].vel; + motor[i].error_integ += motor[i].error; + if( motor[i].error_integ > driver_param.integ_max * 4 ) + { + motor[i].error_integ = driver_param.integ_max * 4; + } + else if( motor[i].error_integ < driver_param.integ_min * 4 ) + { + motor[i].error_integ = driver_param.integ_min * 4; + } + // PI制御分 toq_pi[i] = motor[i].error * motor_param[i].Kp + motor[i].error_integ * motor_param[i].Ki; } @@ -118,20 +118,18 @@ void ISR_VelocityControl( ) s_a = ( toq_pi[0] + motor[0].ref.vel_diff ) / 4; s_b = ( toq_pi[1] + motor[1].ref.vel_diff ) / 4; - toq[0] = ( s_a * driver_param.Kdynamics[0] - + s_b * driver_param.Kdynamics[2] - + motor[0].ref.vel_buf * driver_param.Kdynamics[4] ) / 256; + toq[0] = ( s_a * driver_param.Kdynamics[0] + + s_b * driver_param.Kdynamics[2] + motor[0].ref.vel_buf * driver_param.Kdynamics[4] ) / 256; toq[1] = ( s_b * driver_param.Kdynamics[1] - + s_a * driver_param.Kdynamics[3] - + motor[1].ref.vel_buf * driver_param.Kdynamics[5] ) / 256; + + s_a * driver_param.Kdynamics[3] + motor[1].ref.vel_buf * driver_param.Kdynamics[5] ) / 256; } else - { // servo_level 2(toque enable) + { // servo_level 2(toque enable) toq[0] = 0; toq[1] = 0; } // 出力段 - for ( i = 0; i < 2; i++ ) + for( i = 0; i < 2; i++ ) { // トルクでクリッピング if( toq[i] >= motor_param[i].torque_max ) @@ -142,7 +140,7 @@ void ISR_VelocityControl( ) { toq[i] = motor_param[i].torque_min; } - + // 摩擦補償(線形) if( motor[i].vel > 0 ) { @@ -182,45 +180,36 @@ void ISR_VelocityControl( ) pwm_sum[0] += out_pwm[0]; pwm_sum[1] += out_pwm[1]; - - driver_param.cnt_updated ++; + driver_param.cnt_updated++; if( driver_param.cnt_updated == 5 ) { - // static long cnt = 0; + // static long cnt = 0; motor[0].ref.rate_buf = pwm_sum[0]; motor[1].ref.rate_buf = pwm_sum[1]; pwm_sum[0] = 0; pwm_sum[1] = 0; } - } // servo_level 2*/ + } // servo_level 2*/ else { motor[0].ref.rate = 0; motor[1].ref.rate = 0; } -// PIO_Set(&pinsLeds[USBD_LEDOTHER]); + // PIO_Set(&pinsLeds[USBD_LEDOTHER]); } -//------------------------------------------------------------------------------ -/// Configure velocity control loop -//------------------------------------------------------------------------------ -inline void controlVelocity_init( ) +// ------------------------------------------------------------------------------ +// / Configure velocity control loop +// ------------------------------------------------------------------------------ +inline void controlVelocity_init( ) { - // Configure timer 0 -/* - AT91C_BASE_PMC->PMC_PCER = (1 << AT91C_ID_TC0); - AT91C_BASE_TC0->TC_CCR = AT91C_TC_CLKDIS; - AT91C_BASE_TC0->TC_IDR = 0xFFFFFFFF; - AT91C_BASE_TC0->TC_CMR = AT91C_TC_CLKS_TIMER_DIV3_CLOCK - | AT91C_TC_WAVESEL_UP_AUTO - | AT91C_TC_WAVE; - AT91C_BASE_TC0->TC_RC = 1500 / 8; // 1ms 1500 - AT91C_BASE_TC0->TC_IER = AT91C_TC_CPCS; - - AIC_ConfigureIT(AT91C_ID_TC0, 1, ISR_VelocityControl); - //AIC_EnableIT(AT91C_ID_TC0); - - AT91C_BASE_TC0->TC_CCR = AT91C_TC_CLKEN | AT91C_TC_SWTRG; -*/ + // Configure timer 0 + /* + * AT91C_BASE_PMC->PMC_PCER = (1 << AT91C_ID_TC0); AT91C_BASE_TC0->TC_CCR = AT91C_TC_CLKDIS; AT91C_BASE_TC0->TC_IDR + * = 0xFFFFFFFF; AT91C_BASE_TC0->TC_CMR = AT91C_TC_CLKS_TIMER_DIV3_CLOCK | AT91C_TC_WAVESEL_UP_AUTO | + * AT91C_TC_WAVE; AT91C_BASE_TC0->TC_RC = 1500 / 8; // 1ms 1500 AT91C_BASE_TC0->TC_IER = AT91C_TC_CPCS; + * + * AIC_ConfigureIT(AT91C_ID_TC0, 1, ISR_VelocityControl); //AIC_EnableIT(AT91C_ID_TC0); + * + * AT91C_BASE_TC0->TC_CCR = AT91C_TC_CLKEN | AT91C_TC_SWTRG; */ } - diff --git a/tfrog-motordriver/controlVelocity.h b/tfrog-motordriver/controlVelocity.h index 17a5165..5e8d899 100644 --- a/tfrog-motordriver/controlVelocity.h +++ b/tfrog-motordriver/controlVelocity.h @@ -5,69 +5,69 @@ typedef struct _MotorState { - int vel; // count/ms - int pos; // count - int enc_buf; // count - unsigned short enc; + int vel; // count/ms + int pos; // count + int enc_buf; // count + unsigned short enc; - struct{ - int vel; // count/ms - int vel_buf; // count/ms - char vel_changed; - int vel_interval; - int vel_diff; // count/ms - int torque; // 1/100000 Nm - int rate; // -PWM_max < rate < PWM_max - int rate_buf; // + struct + { + int vel; // count/ms + int vel_buf; // count/ms + char vel_changed; + int vel_interval; + int vel_diff; // count/ms + int torque; // 1/100000 Nm + int rate; // -PWM_max < rate < PWM_max + int rate_buf; // } ref; - int error; - int error_integ; + int error; + int error_integ; } MotorState; typedef struct _MotorParam { - unsigned short enc_rev; // count/rev - unsigned short enc_10hz; - unsigned short enc_drev[6]; - int enc0; // count - int vel_max; // count/ms - int Kcurrent; - int Kvolt; - int Kp; // 1/s - int Ki; // 1/ss - int torque_max; - int torque_min; - int torque_limit; - int torque_offset; - int fr_plus; - int fr_wplus; - int fr_minus; - int fr_wminus; + unsigned short enc_rev; // count/rev + unsigned short enc_10hz; + unsigned short enc_drev[6]; + int enc0; // count + int vel_max; // count/ms + int Kcurrent; + int Kvolt; + int Kp; // 1/s + int Ki; // 1/ss + int torque_max; + int torque_min; + int torque_limit; + int torque_offset; + int fr_plus; + int fr_wplus; + int fr_minus; + int fr_wminus; } MotorParam; typedef struct _DriverParam { - int PWM_max; // clock - int PWM_min; // clock - int integ_max; // - int integ_min; // - int Kdynamics[6]; + int PWM_max; // clock + int PWM_min; // clock + int integ_max; // + int integ_min; // + int Kdynamics[6]; YPSpur_servo_level servo_level; - unsigned short watchdog_limit; - unsigned short watchdog; - unsigned short enable_watchdog; - unsigned char cnt_updated; - unsigned short admask; - unsigned short io_dir; - unsigned short io_mask; + unsigned short watchdog_limit; + unsigned short watchdog; + unsigned short enable_watchdog; + unsigned char cnt_updated; + unsigned short admask; + unsigned short io_dir; + unsigned short io_mask; } DriverParam; -extern MotorState motor[2]; -extern MotorParam motor_param[2]; -extern DriverParam driver_param; +extern MotorState motor[2]; +extern MotorParam motor_param[2]; +extern DriverParam driver_param; -void controlVelocity_init( ); -RAMFUNC void ISR_VelocityControl( ); +void controlVelocity_init( ); +RAMFUNC void ISR_VelocityControl( ); #endif - diff --git a/tfrog-motordriver/fixpawd.c b/tfrog-motordriver/fixpawd.c index 5c4d772..3e2a95c 100644 --- a/tfrog-motordriver/fixpawd.c +++ b/tfrog-motordriver/fixpawd.c @@ -1,3 +1,4 @@ + /** @file fixp.c @brief Fixed point value operation @@ -13,7 +14,7 @@ */ inline fixp4 fp4mulf( fixp4 a, fixp4 b ) { - return (fixp4)( ( (long long) a * b ) / FP4_ONE ); + return ( fixp4 ) ( ( ( long long )a * b ) / FP4_ONE ); } /** @@ -26,12 +27,14 @@ inline fixp4 fp4mul( fixp4 a, fixp4 b ) { long long y; - y = (long long) a * b; + y = ( long long )a *b; y = y >> FP4_POINTBIT; - if( y > 0x7FFFFFFF ) return 0x7FFFFFFF; - if( y < -0x7FFFFFFF ) return -0x7FFFFFFF; - return (fixp4)y; + if( y > 0x7FFFFFFF ) + return 0x7FFFFFFF; + if( y < -0x7FFFFFFF ) + return -0x7FFFFFFF; + return ( fixp4 ) y; } /** @@ -42,7 +45,7 @@ inline fixp4 fp4mul( fixp4 a, fixp4 b ) */ inline fixp4 fp4div( fixp4 a, fixp4 b ) { - return (fixp4)( ( (long long)a * FP4_ONE ) / b ); + return ( fixp4 ) ( ( ( long long )a * FP4_ONE ) / b ); } /** @@ -52,7 +55,7 @@ inline fixp4 fp4div( fixp4 a, fixp4 b ) */ inline fixp4 double2fp4( double a ) { - return (fixp4)( a * FP4_MUL + 0.5 ); + return ( fixp4 ) ( a * FP4_MUL + 0.5 ); } /** @@ -62,7 +65,7 @@ inline fixp4 double2fp4( double a ) */ inline fixp4 int2fp4( int a ) { - return (fixp4)( a * FP4_ONE ); + return ( fixp4 ) ( a * FP4_ONE ); } /** @@ -72,11 +75,5 @@ inline fixp4 int2fp4( int a ) */ inline double fp42double( fixp4 a ) { - return (double)a * FP4_DIV; + return ( double )a *FP4_DIV; } - - - - - - diff --git a/tfrog-motordriver/fixpawd.h b/tfrog-motordriver/fixpawd.h index d336896..0b91592 100644 --- a/tfrog-motordriver/fixpawd.h +++ b/tfrog-motordriver/fixpawd.h @@ -1,3 +1,4 @@ + /** @file fixp.h @brief Fixed point value operation @@ -6,7 +7,6 @@ #ifndef __FIX_POINT_AWD__ #define __FIX_POINT_AWD__ - #define INLINE inline typedef int fixp4; @@ -22,7 +22,7 @@ typedef int fixp4; #define DOUBLE2FP4(a) (fixp4)( a * FP4_MUL + 0.5 ) #define INT2FP4(a) (fixp4)( a << FP4_POINTBIT ) - + INLINE fixp4 fp4mul( fixp4 a, fixp4 b ); INLINE fixp4 fp4mulf( fixp4 a, fixp4 b ); INLINE fixp4 fp4div( fixp4 a, fixp4 b ); @@ -30,5 +30,4 @@ INLINE fixp4 double2fp4( double a ); INLINE fixp4 int2fp4( int a ); INLINE double fp42double( fixp4 a ); - #endif diff --git a/tfrog-motordriver/fixpawd_math.c b/tfrog-motordriver/fixpawd_math.c index c6b1df0..0ba8576 100644 --- a/tfrog-motordriver/fixpawd_math.c +++ b/tfrog-motordriver/fixpawd_math.c @@ -1,3 +1,4 @@ + /** @file fixpmath.c @brief Fixed point value mathmatical functions @@ -19,19 +20,19 @@ inline fixp4 abs( fixp4 x ) */ inline fixp4 fp4sinf( fixp4 x ) { - fixp4 x2; // x^2 - fixp4 xn; // x^3, x^5, ... - fixp4 res; // Output + fixp4 x2; // x^2 + fixp4 xn; // x^3, x^5, ... + fixp4 res; // Output xn = x; x2 = fp4mulf( x, x ); xn = fp4mulf( xn, x2 ); - res = x - fp4mulf( xn, DOUBLE2FP4( 1.0/6.0 ) ); + res = x - fp4mulf( xn, DOUBLE2FP4( 1.0 / 6.0 ) ); xn = fp4mulf( xn, x2 ); - res += fp4mulf( xn, DOUBLE2FP4( 1.0/120.0 ) ); + res += fp4mulf( xn, DOUBLE2FP4( 1.0 / 120.0 ) ); xn = fp4mulf( xn, x2 ); - res -= fp4mulf( xn, DOUBLE2FP4( 1.0/5040.0 ) ); + res -= fp4mulf( xn, DOUBLE2FP4( 1.0 / 5040.0 ) ); return res; } @@ -43,26 +44,36 @@ inline fixp4 fp4sinf( fixp4 x ) */ inline fixp4 fp4sin( fixp4 x ) { - char minus; // Is output value < 0 - fixp4 y; // Output + char minus; // Is output value < 0 + fixp4 y; // Output minus = 0; - if( x < 0 ){ - if( x < -FP4_PI2 ) x = x % (FP4_PI2); + if( x < 0 ) + { + if( x < -FP4_PI2 ) + x = x % ( FP4_PI2 ); x = FP4_PI2 - x; - }else{ - if( x > FP4_PI2 ) x = x % (FP4_PI2); + } + else + { + if( x > FP4_PI2 ) + x = x % ( FP4_PI2 ); } - if( x > FP4_PI ){ + if( x > FP4_PI ) + { minus = 1; x -= FP4_PI; } - if( x > FP4_PI_2 ) y = fp4cos( x - FP4_PI_2 ); - else if( x > FP4_PI_4 ) y = 2*fp4mulf( fp4cosf( x/2 ), fp4sinf( x/2 ) ); - else y = fp4sinf(x); - - if( minus ) return -y; + if( x > FP4_PI_2 ) + y = fp4cos( x - FP4_PI_2 ); + else if( x > FP4_PI_4 ) + y = 2 * fp4mulf( fp4cosf( x / 2 ), fp4sinf( x / 2 ) ); + else + y = fp4sinf( x ); + + if( minus ) + return -y; return y; } @@ -73,18 +84,18 @@ inline fixp4 fp4sin( fixp4 x ) */ inline fixp4 fp4cosf( fixp4 x ) { - fixp4 x2; // x^2 - fixp4 xn; // x^2, x^4, ... - fixp4 res; // Output - + fixp4 x2; // x^2 + fixp4 xn; // x^2, x^4, ... + fixp4 res; // Output + x2 = fp4mulf( x, x ); xn = x2; - res = FP4_ONE - fp4mulf( xn, DOUBLE2FP4( 1.0/2.0 ) ); + res = FP4_ONE - fp4mulf( xn, DOUBLE2FP4( 1.0 / 2.0 ) ); xn = fp4mulf( xn, x2 ); - res += fp4mulf( xn, DOUBLE2FP4( 1.0/24.0 ) ); + res += fp4mulf( xn, DOUBLE2FP4( 1.0 / 24.0 ) ); xn = fp4mulf( xn, x2 ); - res -= fp4mulf( xn, DOUBLE2FP4( 1.0/720.0 ) ); - + res -= fp4mulf( xn, DOUBLE2FP4( 1.0 / 720.0 ) ); + return res; } @@ -95,29 +106,40 @@ inline fixp4 fp4cosf( fixp4 x ) */ inline fixp4 fp4cos( fixp4 x ) { - char minus; // Is output value < 0 - fixp4 res; // Output + char minus; // Is output value < 0 + fixp4 res; // Output minus = 0; - - if( x < 0 ){ - if( x < -FP4_PI2 ) x = x % (FP4_PI2); + + if( x < 0 ) + { + if( x < -FP4_PI2 ) + x = x % ( FP4_PI2 ); x = FP4_PI2 - x; - }else{ - if( x > FP4_PI2 ) x = x % (FP4_PI2); } - if( x > FP4_PI ){ + else + { + if( x > FP4_PI2 ) + x = x % ( FP4_PI2 ); + } + if( x > FP4_PI ) + { minus = 1; x -= FP4_PI; } - if( x > FP4_PI_2 ) res = -fp4sin( x - FP4_PI_2 ); - else if( x > FP4_PI_4 ){ - res = fp4sinf( x/2 ); - res = FP4_ONE - 2*fp4mulf( res, res ); - }else res = fp4cosf(x); - - if( minus ) return -res; + if( x > FP4_PI_2 ) + res = -fp4sin( x - FP4_PI_2 ); + else if( x > FP4_PI_4 ) + { + res = fp4sinf( x / 2 ); + res = FP4_ONE - 2 * fp4mulf( res, res ); + } + else + res = fp4cosf( x ); + + if( minus ) + return -res; return res; } @@ -128,57 +150,68 @@ inline fixp4 fp4cos( fixp4 x ) */ inline fixp4 fp4atan( fixp4 x ) { - fixp4 xn; // x^2, x^3, ... - fixp4 th; // Output - char minus; // Is output value < 0 - char inv; // Is output value > 45deg + fixp4 xn; // x^2, x^3, ... + fixp4 th; // Output + char minus; // Is output value < 0 + char inv; // Is output value > 45deg minus = 0; inv = 0; - - if( x < 0 ){ + + if( x < 0 ) + { x = -x; minus = 1; } - if( x > FP4_ONE ){ - x = fp4div( FP4_ONE ,x ); + if( x > FP4_ONE ) + { + x = fp4div( FP4_ONE, x ); inv = 1; } xn = x; // 5 digit - if( x <= DOUBLE2FP4(0.005) ){ + if( x <= DOUBLE2FP4( 0.005 ) ) + { th = x; - }else if( x <= DOUBLE2FP4(0.45) ){ + } + else if( x <= DOUBLE2FP4( 0.45 ) ) + { // 0.0947x^5 + 0.0631x^4 - 0.3489x^3 + 0.0018x^2 + 0.9999x + 0.000003 - th = DOUBLE2FP4(0.000009); - th += fp4mul( xn , DOUBLE2FP4(0.99991) ); + th = DOUBLE2FP4( 0.000009 ); + th += fp4mul( xn, DOUBLE2FP4( 0.99991 ) ); xn = fp4mul( xn, x ); - th += fp4mul( xn , DOUBLE2FP4(0.0018) ); + th += fp4mul( xn, DOUBLE2FP4( 0.0018 ) ); xn = fp4mul( xn, x ); - th -= fp4mul( xn , DOUBLE2FP4(0.3489) ); + th -= fp4mul( xn, DOUBLE2FP4( 0.3489 ) ); xn = fp4mul( xn, x ); - th += fp4mul( xn , DOUBLE2FP4(0.0631) ); + th += fp4mul( xn, DOUBLE2FP4( 0.0631 ) ); xn = fp4mul( xn, x ); - th += fp4mul( xn , DOUBLE2FP4(0.0947) ); - }else if( x <= DOUBLE2FP4(0.995) ){ + th += fp4mul( xn, DOUBLE2FP4( 0.0947 ) ); + } + else if( x <= DOUBLE2FP4( 0.995 ) ) + { // -0.0687x^5 + 0.3126x^4 - 0.4914x^3 + 0.0332x^2 + 1.0006x + 0.00092 - th = -DOUBLE2FP4(0.000919); - th += fp4mul( xn , DOUBLE2FP4(1.0006) ); + th = -DOUBLE2FP4( 0.000919 ); + th += fp4mul( xn, DOUBLE2FP4( 1.0006 ) ); xn = fp4mul( xn, x ); - th += fp4mul( xn , DOUBLE2FP4(0.0332) ); + th += fp4mul( xn, DOUBLE2FP4( 0.0332 ) ); xn = fp4mul( xn, x ); - th -= fp4mul( xn , DOUBLE2FP4(0.4914) ); + th -= fp4mul( xn, DOUBLE2FP4( 0.4914 ) ); xn = fp4mul( xn, x ); - th += fp4mul( xn , DOUBLE2FP4(0.3126) ); + th += fp4mul( xn, DOUBLE2FP4( 0.3126 ) ); xn = fp4mul( xn, x ); - th -= fp4mul( xn , DOUBLE2FP4(0.0687) ); - }else{ - th = FP4_PI_4 - FP4_ONE/2 + x/2; + th -= fp4mul( xn, DOUBLE2FP4( 0.0687 ) ); + } + else + { + th = FP4_PI_4 - FP4_ONE / 2 + x / 2; } - if( inv ) th = FP4_PI_2 - th; - if( minus ) return -th; + if( inv ) + th = FP4_PI_2 - th; + if( minus ) + return -th; return th; } @@ -190,23 +223,35 @@ inline fixp4 fp4atan( fixp4 x ) */ inline fixp4 fp4atan2( fixp4 y, fixp4 x ) { - fixp4 th; // Output + fixp4 th; // Output - if( x > y ){ + if( x > y ) + { th = fp4atan( abs( fp4div( y, x ) ) ); - }else{ + } + else + { th = FP4_PI_2 - fp4atan( abs( fp4div( x, y ) ) ); } - if( y >= 0 ){ - if( x >= 0 ){ + if( y >= 0 ) + { + if( x >= 0 ) + { return th; - }else{ + } + else + { return FP4_PI - th; } - }else{ - if( x >= 0 ){ + } + else + { + if( x >= 0 ) + { return -th; - }else{ + } + else + { return -FP4_PI + th; } } @@ -220,31 +265,19 @@ inline fixp4 fp4atan2( fixp4 y, fixp4 x ) */ inline fixp4 fp4sqrt( fixp4 x ) { - fixp4 res; // Output + fixp4 res; // Output res = fp4mulf( x, fp4sqrtinv( x ) ); res = ( fp4div( x, res ) + res ) >> 1; return res; -/* - // Slow: - fixp4 s, res; - long long x1; - - x1 = ( (long long) x ) << FP4_POINTBIT; - s = 1 << FP4_POINTBIT; - res = x; - while( s < res ){ - s = s << 1; - res = res >> 1; - } - do{ - res = s; - s = ( x1 / s + s ) >> 1; - }while( s < res ); - - return s; -*/ + /* + * // Slow: fixp4 s, res; long long x1; + * + * x1 = ( (long long) x ) << FP4_POINTBIT; s = 1 << FP4_POINTBIT; res = x; while( s < res ){ s = s << 1; res = res + * >> 1; } do{ res = s; s = ( x1 / s + s ) >> 1; }while( s < res ); + * + * return s; */ } /** @@ -264,67 +297,95 @@ inline fixp4 fp4sqrtf( fixp4 x ) */ inline fixp4 fp4sqrtinv( fixp4 x ) { - fixp4 res; // Output - fixp4 h, t; // Temporary + fixp4 res; // Output + fixp4 h, t; // Temporary // char i; // Loop - if( x & 0x40000000 ) res = fp4_sqrt[ 32 - FP4_POINTBIT + 30 ]; - else if( x & 0x20000000 ) res = fp4_sqrt[ 32 - FP4_POINTBIT + 29 ]; - else if( x & 0x10000000 ) res = fp4_sqrt[ 32 - FP4_POINTBIT + 28 ]; - else if( x & 0x08000000 ) res = fp4_sqrt[ 32 - FP4_POINTBIT + 27 ]; - else if( x & 0x04000000 ) res = fp4_sqrt[ 32 - FP4_POINTBIT + 26 ]; - else if( x & 0x02000000 ) res = fp4_sqrt[ 32 - FP4_POINTBIT + 25 ]; - else if( x & 0x01000000 ) res = fp4_sqrt[ 32 - FP4_POINTBIT + 24 ]; - else if( x & 0x00800000 ) res = fp4_sqrt[ 32 - FP4_POINTBIT + 23 ]; - else if( x & 0x00400000 ) res = fp4_sqrt[ 32 - FP4_POINTBIT + 22 ]; - else if( x & 0x00200000 ) res = fp4_sqrt[ 32 - FP4_POINTBIT + 21 ]; - else if( x & 0x00100000 ) res = fp4_sqrt[ 32 - FP4_POINTBIT + 20 ]; - else if( x & 0x00080000 ) res = fp4_sqrt[ 32 - FP4_POINTBIT + 19 ]; - else if( x & 0x00040000 ) res = fp4_sqrt[ 32 - FP4_POINTBIT + 18 ]; - else if( x & 0x00020000 ) res = fp4_sqrt[ 32 - FP4_POINTBIT + 17 ]; - else if( x & 0x00010000 ) res = fp4_sqrt[ 32 - FP4_POINTBIT + 16 ]; - else if( x & 0x00008000 ) res = fp4_sqrt[ 32 - FP4_POINTBIT + 15 ]; - else if( x & 0x00004000 ) res = fp4_sqrt[ 32 - FP4_POINTBIT + 14 ]; - else if( x & 0x00002000 ) res = fp4_sqrt[ 32 - FP4_POINTBIT + 13 ]; - else if( x & 0x00001000 ) res = fp4_sqrt[ 32 - FP4_POINTBIT + 12 ]; - else if( x & 0x00000800 ) res = fp4_sqrt[ 32 - FP4_POINTBIT + 11 ]; - else if( x & 0x00000400 ) res = fp4_sqrt[ 32 - FP4_POINTBIT + 10 ]; - else if( x & 0x00000200 ) res = fp4_sqrt[ 32 - FP4_POINTBIT + 9 ]; - else if( x & 0x00000100 ) res = fp4_sqrt[ 32 - FP4_POINTBIT + 8 ]; - else if( x & 0x00000080 ) res = fp4_sqrt[ 32 - FP4_POINTBIT + 7 ]; - else if( x & 0x00000040 ) res = fp4_sqrt[ 32 - FP4_POINTBIT + 6 ]; - else if( x & 0x00000020 ) res = fp4_sqrt[ 32 - FP4_POINTBIT + 5 ]; - else if( x & 0x00000010 ) res = fp4_sqrt[ 32 - FP4_POINTBIT + 4 ]; - else if( x & 0x00000008 ) res = fp4_sqrt[ 32 - FP4_POINTBIT + 3 ]; - else if( x & 0x00000004 ) res = fp4_sqrt[ 32 - FP4_POINTBIT + 2 ]; - else if( x & 0x00000002 ) res = fp4_sqrt[ 32 - FP4_POINTBIT + 1 ]; - else if( x & 0x00000001 ) res = fp4_sqrt[ 32 - FP4_POINTBIT ]; - else return 0; - /* - // 'if' lines mean: - for( i = 30; i >= 0; i -- ){ - if( x & ( 1 << i ) ){ - res = fp4_sqrt[ 32 - FP4_POINTBIT + i ]; - break; - } - } - */ - do{ - h = FP4_ONE - ( ( ( ( (long long)x * res ) >> FP4_POINTBIT ) * res ) >> FP4_POINTBIT ); - + if( x & 0x40000000 ) + res = fp4_sqrt[32 - FP4_POINTBIT + 30]; + else if( x & 0x20000000 ) + res = fp4_sqrt[32 - FP4_POINTBIT + 29]; + else if( x & 0x10000000 ) + res = fp4_sqrt[32 - FP4_POINTBIT + 28]; + else if( x & 0x08000000 ) + res = fp4_sqrt[32 - FP4_POINTBIT + 27]; + else if( x & 0x04000000 ) + res = fp4_sqrt[32 - FP4_POINTBIT + 26]; + else if( x & 0x02000000 ) + res = fp4_sqrt[32 - FP4_POINTBIT + 25]; + else if( x & 0x01000000 ) + res = fp4_sqrt[32 - FP4_POINTBIT + 24]; + else if( x & 0x00800000 ) + res = fp4_sqrt[32 - FP4_POINTBIT + 23]; + else if( x & 0x00400000 ) + res = fp4_sqrt[32 - FP4_POINTBIT + 22]; + else if( x & 0x00200000 ) + res = fp4_sqrt[32 - FP4_POINTBIT + 21]; + else if( x & 0x00100000 ) + res = fp4_sqrt[32 - FP4_POINTBIT + 20]; + else if( x & 0x00080000 ) + res = fp4_sqrt[32 - FP4_POINTBIT + 19]; + else if( x & 0x00040000 ) + res = fp4_sqrt[32 - FP4_POINTBIT + 18]; + else if( x & 0x00020000 ) + res = fp4_sqrt[32 - FP4_POINTBIT + 17]; + else if( x & 0x00010000 ) + res = fp4_sqrt[32 - FP4_POINTBIT + 16]; + else if( x & 0x00008000 ) + res = fp4_sqrt[32 - FP4_POINTBIT + 15]; + else if( x & 0x00004000 ) + res = fp4_sqrt[32 - FP4_POINTBIT + 14]; + else if( x & 0x00002000 ) + res = fp4_sqrt[32 - FP4_POINTBIT + 13]; + else if( x & 0x00001000 ) + res = fp4_sqrt[32 - FP4_POINTBIT + 12]; + else if( x & 0x00000800 ) + res = fp4_sqrt[32 - FP4_POINTBIT + 11]; + else if( x & 0x00000400 ) + res = fp4_sqrt[32 - FP4_POINTBIT + 10]; + else if( x & 0x00000200 ) + res = fp4_sqrt[32 - FP4_POINTBIT + 9]; + else if( x & 0x00000100 ) + res = fp4_sqrt[32 - FP4_POINTBIT + 8]; + else if( x & 0x00000080 ) + res = fp4_sqrt[32 - FP4_POINTBIT + 7]; + else if( x & 0x00000040 ) + res = fp4_sqrt[32 - FP4_POINTBIT + 6]; + else if( x & 0x00000020 ) + res = fp4_sqrt[32 - FP4_POINTBIT + 5]; + else if( x & 0x00000010 ) + res = fp4_sqrt[32 - FP4_POINTBIT + 4]; + else if( x & 0x00000008 ) + res = fp4_sqrt[32 - FP4_POINTBIT + 3]; + else if( x & 0x00000004 ) + res = fp4_sqrt[32 - FP4_POINTBIT + 2]; + else if( x & 0x00000002 ) + res = fp4_sqrt[32 - FP4_POINTBIT + 1]; + else if( x & 0x00000001 ) + res = fp4_sqrt[32 - FP4_POINTBIT]; + else + return 0; + /* + * // 'if' lines mean: for( i = 30; i >= 0; i -- ){ if( x & ( 1 << i ) ){ res = fp4_sqrt[ 32 - FP4_POINTBIT + i ]; + * break; } } */ + do + { + h = FP4_ONE - ( ( ( ( ( long long )x * res ) >> FP4_POINTBIT ) * res ) >> FP4_POINTBIT ); + t = h * 3 + FP4_ONE * 4; - t = ( (long long)h * t ) >> ( FP4_POINTBIT + 3 ); + t = ( ( long long )h * t ) >> ( FP4_POINTBIT + 3 ); t += FP4_ONE; - - res = ( (long long)res * t ) >> FP4_POINTBIT; - }while( abs( h ) > res ); - res ++; // magic - + + res = ( ( long long )res * t ) >> FP4_POINTBIT; + } + while( abs( h ) > res ); + res++; // magic + #if FP4_POINTBIT > 17 - h = ( ( ( ( ( (long long)x * res ) >> FP4_POINTBIT ) * res ) >> FP4_POINTBIT ) * res ) >> FP4_POINTBIT; + h = ( ( ( ( ( ( long long )x * res ) >> FP4_POINTBIT ) * res ) >> FP4_POINTBIT ) * res ) >> FP4_POINTBIT; res = ( 3 * res - h ) >> 1; #endif - + return res; } @@ -335,15 +396,17 @@ inline fixp4 fp4sqrtinv( fixp4 x ) */ inline fixp4 fp4log2( fixp4 x ) { - fixp4 res; // Output - fixp4 fp; // Fraction - + fixp4 res; // Output + fixp4 fp; // Fraction + res = 0; - while( x < FP4_ONE ){ + while( x < FP4_ONE ) + { res -= FP4_ONE; x *= 2; } - while( x >= FP4_ONE*2 ){ + while( x >= FP4_ONE * 2 ) + { res += FP4_ONE; x /= 2; } @@ -352,11 +415,13 @@ inline fixp4 fp4log2( fixp4 x ) fp = FP4_ONE << ( 32 - FP4_POINTBIT - 5 ); res <<= ( 32 - FP4_POINTBIT - 5 ); - while( fp >= ( 1 << ( 33 - FP4_POINTBIT - 5 ) ) ){ + while( fp >= ( 1 << ( 33 - FP4_POINTBIT - 5 ) ) ) + { fp /= 2; - x = ( (long long)x * x ) >> ( 32 - 5 ); + x = ( ( long long )x * x ) >> ( 32 - 5 ); - if( x >= ( FP4_ONE << ( 32 - FP4_POINTBIT - 5 + 1 ) ) ){ + if( x >= ( FP4_ONE << ( 32 - FP4_POINTBIT - 5 + 1 ) ) ) + { x /= 2; res += fp; } @@ -371,15 +436,17 @@ inline fixp4 fp4log2( fixp4 x ) */ inline fixp4 fp4log2f( fixp4 x ) { - fixp4 res; // Output - fixp4 fp; // Fraction - + fixp4 res; // Output + fixp4 fp; // Fraction + res = 0; - while( x < FP4_ONE ){ + while( x < FP4_ONE ) + { res -= FP4_ONE; x *= 2; } - while( x >= FP4_ONE*2 ){ + while( x >= FP4_ONE * 2 ) + { res += FP4_ONE; x /= 2; } @@ -388,11 +455,13 @@ inline fixp4 fp4log2f( fixp4 x ) fp = FP4_ONE << ( 32 - FP4_POINTBIT - 5 ); res <<= ( 32 - FP4_POINTBIT - 5 ); - while( fp >= ( 1 << ( 33 - FP4_POINTBIT - 5 ) ) ){ + while( fp >= ( 1 << ( 33 - FP4_POINTBIT - 5 ) ) ) + { fp /= 2; x = ( x >> 13 ) * ( x >> 14 ); - if( x >= ( FP4_ONE << ( 32 - FP4_POINTBIT - 5 + 1 ) ) ){ + if( x >= ( FP4_ONE << ( 32 - FP4_POINTBIT - 5 + 1 ) ) ) + { x /= 2; res += fp; } @@ -469,36 +538,40 @@ inline fixp4 fp4lognf( fixp4 x, fixp4 n ) */ inline fixp4 fp4exp( fixp4 x ) { - fixp4 res; // Output + fixp4 res; // Output fixp4 mask; int i; char inv; - if( x < 0 ){ + if( x < 0 ) + { x = -x; inv = 1; - }else inv = 0; + } + else + inv = 0; mask = 1; res = FP4_ONE << ( 32 - FP4_POINTBIT - 6 ); - for( i = 31-FP4_POINTBIT; i < 33; i ++ ){ - if( x & mask ) res = fp4mulf( res, fp4_exp[i] ); + for( i = 31 - FP4_POINTBIT; i < 33; i++ ) + { + if( x & mask ) + res = fp4mulf( res, fp4_exp[i] ); mask <<= 1; } res >>= ( 32 - FP4_POINTBIT - 6 ); - if( x & ( 1 << ( 33 - 31 + FP4_POINTBIT + 0 ) ) ) res = fp4mul( res, fp4_exp[33] ); - if( x & ( 1 << ( 33 - 31 + FP4_POINTBIT + 1 ) ) ) res = fp4mul( res, fp4_exp[34] ); - if( x & ( 1 << ( 33 - 31 + FP4_POINTBIT + 2 ) ) ) res = fp4mul( res, fp4_exp[35] ); - - /* - // 'if' lines mean: - for( i = 33; i < 36; i ++ ){ - if( x & mask ) res = fp4mul( res, fp4_exp[i] ); - mask <<= 1; - } - */ - - if( inv ) return fp4div( FP4_ONE, res ); + if( x & ( 1 << ( 33 - 31 + FP4_POINTBIT + 0 ) ) ) + res = fp4mul( res, fp4_exp[33] ); + if( x & ( 1 << ( 33 - 31 + FP4_POINTBIT + 1 ) ) ) + res = fp4mul( res, fp4_exp[34] ); + if( x & ( 1 << ( 33 - 31 + FP4_POINTBIT + 2 ) ) ) + res = fp4mul( res, fp4_exp[35] ); + + /* + * // 'if' lines mean: for( i = 33; i < 36; i ++ ){ if( x & mask ) res = fp4mul( res, fp4_exp[i] ); mask <<= 1; } */ + + if( inv ) + return fp4div( FP4_ONE, res ); return res; } diff --git a/tfrog-motordriver/fixpawd_math.h b/tfrog-motordriver/fixpawd_math.h index edbe7fe..dbd1560 100644 --- a/tfrog-motordriver/fixpawd_math.h +++ b/tfrog-motordriver/fixpawd_math.h @@ -1,3 +1,4 @@ + /** @file fixpawd_math.c @brief Fixed point value mathmatical functions @@ -18,7 +19,6 @@ #define FP4_LOG2E DOUBLE2FP4(1.0/1.4426950408889634073599246810022) #define FP4_LOG2T DOUBLE2FP4(1.0/3.3219280948873623478703194294948) - INLINE fixp4 fp4sinf( fixp4 x ); INLINE fixp4 fp4cosf( fixp4 x ); INLINE fixp4 fp4sin( fixp4 x ); @@ -38,116 +38,112 @@ INLINE fixp4 fp4logf( fixp4 x ); INLINE fixp4 fp4lognf( fixp4 x, fixp4 n ); INLINE fixp4 fp4exp( fixp4 x ); - - /** Table for calc exp */ -static const fixp4 fp4_exp[36] = -{ - DOUBLE2FP4(1.0000000004656613), - DOUBLE2FP4(1.0000000009313226), - DOUBLE2FP4(1.0000000018626451), - DOUBLE2FP4(1.0000000037252903), - DOUBLE2FP4(1.0000000074505806), - DOUBLE2FP4(1.0000000149011612), - DOUBLE2FP4(1.0000000298023228), - DOUBLE2FP4(1.0000000596046466), - DOUBLE2FP4(1.0000001192092967), - DOUBLE2FP4(1.0000002384186075), - DOUBLE2FP4(1.0000004768372719), - DOUBLE2FP4(1.0000009536747712), - DOUBLE2FP4(1.0000019073504518), - DOUBLE2FP4(1.0000038147045416), - DOUBLE2FP4(1.0000076294236351), - DOUBLE2FP4(1.0000152589054785), - DOUBLE2FP4(1.0000305180437910), - DOUBLE2FP4(1.0000610370189331), - DOUBLE2FP4(1.0001220777633837), - DOUBLE2FP4(1.0002441704297478), - DOUBLE2FP4(1.0004884004786945), - DOUBLE2FP4(1.0009770394924165), - DOUBLE2FP4(1.0019550335910028), - DOUBLE2FP4(1.0039138893383475), - DOUBLE2FP4(1.0078430972064480), - DOUBLE2FP4(1.0157477085866857), - DOUBLE2FP4(1.0317434074991028), - DOUBLE2FP4(1.0644944589178593), - DOUBLE2FP4(1.1331484530668263), - DOUBLE2FP4(1.2840254166877414), - DOUBLE2FP4(1.6487212707001282), - DOUBLE2FP4(2.7182818284590451), - DOUBLE2FP4(7.3890560989306504), - DOUBLE2FP4(54.598150033144236), - DOUBLE2FP4(2980.9579870417283), - DOUBLE2FP4(8886110.5205078721) +static const fixp4 fp4_exp[36] = { + DOUBLE2FP4( 1.0000000004656613 ), + DOUBLE2FP4( 1.0000000009313226 ), + DOUBLE2FP4( 1.0000000018626451 ), + DOUBLE2FP4( 1.0000000037252903 ), + DOUBLE2FP4( 1.0000000074505806 ), + DOUBLE2FP4( 1.0000000149011612 ), + DOUBLE2FP4( 1.0000000298023228 ), + DOUBLE2FP4( 1.0000000596046466 ), + DOUBLE2FP4( 1.0000001192092967 ), + DOUBLE2FP4( 1.0000002384186075 ), + DOUBLE2FP4( 1.0000004768372719 ), + DOUBLE2FP4( 1.0000009536747712 ), + DOUBLE2FP4( 1.0000019073504518 ), + DOUBLE2FP4( 1.0000038147045416 ), + DOUBLE2FP4( 1.0000076294236351 ), + DOUBLE2FP4( 1.0000152589054785 ), + DOUBLE2FP4( 1.0000305180437910 ), + DOUBLE2FP4( 1.0000610370189331 ), + DOUBLE2FP4( 1.0001220777633837 ), + DOUBLE2FP4( 1.0002441704297478 ), + DOUBLE2FP4( 1.0004884004786945 ), + DOUBLE2FP4( 1.0009770394924165 ), + DOUBLE2FP4( 1.0019550335910028 ), + DOUBLE2FP4( 1.0039138893383475 ), + DOUBLE2FP4( 1.0078430972064480 ), + DOUBLE2FP4( 1.0157477085866857 ), + DOUBLE2FP4( 1.0317434074991028 ), + DOUBLE2FP4( 1.0644944589178593 ), + DOUBLE2FP4( 1.1331484530668263 ), + DOUBLE2FP4( 1.2840254166877414 ), + DOUBLE2FP4( 1.6487212707001282 ), + DOUBLE2FP4( 2.7182818284590451 ), + DOUBLE2FP4( 7.3890560989306504 ), + DOUBLE2FP4( 54.598150033144236 ), + DOUBLE2FP4( 2980.9579870417283 ), + DOUBLE2FP4( 8886110.5205078721 ) }; /** Table for calc sqrt */ -static const fixp4 fp4_sqrt[64] = -{ - DOUBLE2FP4(46340.950006), - DOUBLE2FP4(32767.999996), - DOUBLE2FP4(23170.475003), - DOUBLE2FP4(16383.999998), - DOUBLE2FP4(11585.237502), - DOUBLE2FP4(8191.999999), - DOUBLE2FP4(5792.618751), - DOUBLE2FP4(4096.000000), - DOUBLE2FP4(2896.309375), - DOUBLE2FP4(2048.000000), - DOUBLE2FP4(1448.154688), - DOUBLE2FP4(1024.000000), - DOUBLE2FP4(724.077344), - DOUBLE2FP4(512.000000), - DOUBLE2FP4(362.038672), - DOUBLE2FP4(256.000000), - DOUBLE2FP4(181.019336), - DOUBLE2FP4(128.000000), - DOUBLE2FP4(90.509668), - DOUBLE2FP4(64.000000), - DOUBLE2FP4(45.254834), - DOUBLE2FP4(32.000000), - DOUBLE2FP4(22.627417), - DOUBLE2FP4(16.000000), - DOUBLE2FP4(11.313708), - DOUBLE2FP4(8.000000), - DOUBLE2FP4(5.656854), - DOUBLE2FP4(4.000000), - DOUBLE2FP4(2.828427), - DOUBLE2FP4(2.000000), - DOUBLE2FP4(1.414214), - DOUBLE2FP4(1.000000), - DOUBLE2FP4(0.707107), - DOUBLE2FP4(0.500000), - DOUBLE2FP4(0.353553), - DOUBLE2FP4(0.250000), - DOUBLE2FP4(0.176777), - DOUBLE2FP4(0.125000), - DOUBLE2FP4(0.088388), - DOUBLE2FP4(0.062500), - DOUBLE2FP4(0.044194), - DOUBLE2FP4(0.031250), - DOUBLE2FP4(0.022097), - DOUBLE2FP4(0.015625), - DOUBLE2FP4(0.011049), - DOUBLE2FP4(0.007812), - DOUBLE2FP4(0.005524), - DOUBLE2FP4(0.003906), - DOUBLE2FP4(0.002762), - DOUBLE2FP4(0.001953), - DOUBLE2FP4(0.001381), - DOUBLE2FP4(0.000977), - DOUBLE2FP4(0.000691), - DOUBLE2FP4(0.000488), - DOUBLE2FP4(0.000345), - DOUBLE2FP4(0.000244), - DOUBLE2FP4(0.000173), - DOUBLE2FP4(0.000122), - DOUBLE2FP4(0.000086), - DOUBLE2FP4(0.000061), - DOUBLE2FP4(0.000043), - DOUBLE2FP4(0.000031), - DOUBLE2FP4(0.000022), - DOUBLE2FP4(0.000000) +static const fixp4 fp4_sqrt[64] = { + DOUBLE2FP4( 46340.950006 ), + DOUBLE2FP4( 32767.999996 ), + DOUBLE2FP4( 23170.475003 ), + DOUBLE2FP4( 16383.999998 ), + DOUBLE2FP4( 11585.237502 ), + DOUBLE2FP4( 8191.999999 ), + DOUBLE2FP4( 5792.618751 ), + DOUBLE2FP4( 4096.000000 ), + DOUBLE2FP4( 2896.309375 ), + DOUBLE2FP4( 2048.000000 ), + DOUBLE2FP4( 1448.154688 ), + DOUBLE2FP4( 1024.000000 ), + DOUBLE2FP4( 724.077344 ), + DOUBLE2FP4( 512.000000 ), + DOUBLE2FP4( 362.038672 ), + DOUBLE2FP4( 256.000000 ), + DOUBLE2FP4( 181.019336 ), + DOUBLE2FP4( 128.000000 ), + DOUBLE2FP4( 90.509668 ), + DOUBLE2FP4( 64.000000 ), + DOUBLE2FP4( 45.254834 ), + DOUBLE2FP4( 32.000000 ), + DOUBLE2FP4( 22.627417 ), + DOUBLE2FP4( 16.000000 ), + DOUBLE2FP4( 11.313708 ), + DOUBLE2FP4( 8.000000 ), + DOUBLE2FP4( 5.656854 ), + DOUBLE2FP4( 4.000000 ), + DOUBLE2FP4( 2.828427 ), + DOUBLE2FP4( 2.000000 ), + DOUBLE2FP4( 1.414214 ), + DOUBLE2FP4( 1.000000 ), + DOUBLE2FP4( 0.707107 ), + DOUBLE2FP4( 0.500000 ), + DOUBLE2FP4( 0.353553 ), + DOUBLE2FP4( 0.250000 ), + DOUBLE2FP4( 0.176777 ), + DOUBLE2FP4( 0.125000 ), + DOUBLE2FP4( 0.088388 ), + DOUBLE2FP4( 0.062500 ), + DOUBLE2FP4( 0.044194 ), + DOUBLE2FP4( 0.031250 ), + DOUBLE2FP4( 0.022097 ), + DOUBLE2FP4( 0.015625 ), + DOUBLE2FP4( 0.011049 ), + DOUBLE2FP4( 0.007812 ), + DOUBLE2FP4( 0.005524 ), + DOUBLE2FP4( 0.003906 ), + DOUBLE2FP4( 0.002762 ), + DOUBLE2FP4( 0.001953 ), + DOUBLE2FP4( 0.001381 ), + DOUBLE2FP4( 0.000977 ), + DOUBLE2FP4( 0.000691 ), + DOUBLE2FP4( 0.000488 ), + DOUBLE2FP4( 0.000345 ), + DOUBLE2FP4( 0.000244 ), + DOUBLE2FP4( 0.000173 ), + DOUBLE2FP4( 0.000122 ), + DOUBLE2FP4( 0.000086 ), + DOUBLE2FP4( 0.000061 ), + DOUBLE2FP4( 0.000043 ), + DOUBLE2FP4( 0.000031 ), + DOUBLE2FP4( 0.000022 ), + DOUBLE2FP4( 0.000000 ) }; #endif diff --git a/tfrog-motordriver/main.c b/tfrog-motordriver/main.c index 97ab9cb..e98e715 100644 --- a/tfrog-motordriver/main.c +++ b/tfrog-motordriver/main.c @@ -1,36 +1,20 @@ -/* ---------------------------------------------------------------------------- - * ATMEL Microcontroller Software Support - * ---------------------------------------------------------------------------- - * Copyright (c) 2008, Atmel Corporation - * - * All rights reserved. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions are met: - * - * - Redistributions of source code must retain the above copyright notice, - * this list of conditions and the disclaimer below. - * - * Atmel's name may not be used to endorse or promote products derived from - * this software without specific prior written permission. - * - * DISCLAIMER: THIS SOFTWARE IS PROVIDED BY ATMEL "AS IS" AND ANY EXPRESS OR - * IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF - * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT ARE - * DISCLAIMED. IN NO EVENT SHALL ATMEL BE LIABLE FOR ANY DIRECT, INDIRECT, - * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT - * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, - * OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF - * LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING - * NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, - * EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - * ---------------------------------------------------------------------------- - */ - - -//----------------------------------------------------------------------------- -// Headers -//------------------------------------------------------------------------------ +/* ---------------------------------------------------------------------------- ATMEL Microcontroller Software Support + * ---------------------------------------------------------------------------- Copyright (c) 2008, Atmel Corporation + * All rights reserved. Redistribution and use in source and binary forms, with or without modification, are permitted + * provided that the following conditions are met: - Redistributions of source code must retain the above copyright + * notice, this list of conditions and the disclaimer below. Atmel's name may not be used to endorse or promote + * products derived from this software without specific prior written permission. DISCLAIMER: THIS SOFTWARE IS PROVIDED + * * * BY ATMEL "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF + * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT ARE DISCLAIMED. IN NO EVENT SHALL ATMEL BE + * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED + * TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER + * CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR + * OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + * ---------------------------------------------------------------------------- */ + +// ----------------------------------------------------------------------------- +// Headers +// ------------------------------------------------------------------------------ #include #include @@ -53,120 +37,121 @@ #include "registerFPGA.h" #include "communication.h" - -//extern int getStackPointer( void ); -//extern int getIrqStackPointer( void ); +// extern int getStackPointer( void ); +// extern int getIrqStackPointer( void ); int watchdog = 0; int velcontrol = 0; -static const Pin pinsLeds[] = {PINS_LEDS}; -static const unsigned int numLeds = PIO_LISTSIZE(pinsLeds); +static const Pin pinsLeds[] = { PINS_LEDS }; + +static const unsigned int numLeds = PIO_LISTSIZE( pinsLeds ); extern unsigned char languageIdStringDescriptor[]; extern USBDDriverDescriptors cdcdSerialDriverDescriptors; -unsigned char manufacturerStringDescriptor2[64] = -{ - USBStringDescriptor_LENGTH(0), - USBGenericDescriptor_STRING +unsigned char manufacturerStringDescriptor2[64] = { + USBStringDescriptor_LENGTH( 0 ), + USBGenericDescriptor_STRING }; -unsigned char productStringDescriptor2[64] = -{ - USBStringDescriptor_LENGTH(0), - USBGenericDescriptor_STRING -}; -unsigned char *stringDescriptors2[3] = -{ - languageIdStringDescriptor, - productStringDescriptor2, - manufacturerStringDescriptor2 + +unsigned char productStringDescriptor2[64] = { + USBStringDescriptor_LENGTH( 0 ), + USBGenericDescriptor_STRING }; +unsigned char *stringDescriptors2[3] = { + languageIdStringDescriptor, + productStringDescriptor2, + manufacturerStringDescriptor2 +}; -//------------------------------------------------------------------------------ -// Definitions -//------------------------------------------------------------------------------ +// ------------------------------------------------------------------------------ +// Definitions +// ------------------------------------------------------------------------------ -/// Size in bytes of the buffer used for reading data from the USB & USART +// / Size in bytes of the buffer used for reading data from the USB & USART #define DATABUFFERSIZE \ BOARD_USB_ENDPOINTS_MAXPACKETSIZE(CDCDSerialDriverDescriptors_DATAIN) - -//------------------------------------------------------------------------------ -// Internal variables -//------------------------------------------------------------------------------ +// ------------------------------------------------------------------------------ +// Internal variables +// ------------------------------------------------------------------------------ char connecting = 0; -/// List of pins that must be configured for use by the application. +// / List of pins that must be configured for use by the application. static const Pin pins[] = { PIN_PWM_ENABLE }; -/// VBus pin instance. +// / VBus pin instance. static const Pin pinVbus = PIN_USB_VBUS; -/// PWM Enable pin instance. +// / PWM Enable pin instance. const Pin pinPWMEnable = PIN_PWM_ENABLE; -/// Buffer for storing incoming USB data. +// / Buffer for storing incoming USB data. static unsigned char usbBuffer[DATABUFFERSIZE]; +// ------------------------------------------------------------------------------ +// Main +// ------------------------------------------------------------------------------ -//------------------------------------------------------------------------------ -// Main -//------------------------------------------------------------------------------ - -void SRAM_Init() +void SRAM_Init( ) { - static const Pin pinsSram[] = {PINS_SRAM}; - - // Enable corresponding PIOs - PIO_Configure(pinsSram, PIO_LISTSIZE(pinsSram)); - - AT91C_BASE_SMC->SMC2_CSR[0] = 1 | AT91C_SMC2_WSEN | (0 << 8) | AT91C_SMC2_BAT | AT91C_SMC2_DBW_16 | (0 << 24) | (1 << 28); + static const Pin pinsSram[] = { PINS_SRAM }; + + // Enable corresponding PIOs + PIO_Configure( pinsSram, PIO_LISTSIZE( pinsSram ) ); + + AT91C_BASE_SMC->SMC2_CSR[0] = + 1 | AT91C_SMC2_WSEN | ( 0 << 8 ) | AT91C_SMC2_BAT | AT91C_SMC2_DBW_16 | ( 0 << 24 ) | ( 1 << 28 ); } -//------------------------------------------------------------------------------ -/// Handles interrupts coming from PIO controllers. -//------------------------------------------------------------------------------ -static void ISR_Vbus(const Pin *pPin) +// ------------------------------------------------------------------------------ +// / Handles interrupts coming from PIO controllers. +// ------------------------------------------------------------------------------ +static void ISR_Vbus( const Pin * pPin ) { - // Check current level on VBus - if ( PIO_Get(&pinVbus)) { - TRACE_INFO("VBUS conn\n\r"); - USBD_Connect(); + // Check current level on VBus + if( PIO_Get( &pinVbus ) ) + { + TRACE_INFO( "VBUS conn\n\r" ); + USBD_Connect( ); connecting = 1; - //LED_Set(USBD_LEDPOWER); - }else{ - TRACE_INFO("VBUS discon\n\r"); - USBD_Disconnect(); - //LED_Clear(USBD_LEDPOWER); - //LED_Clear(USBD_LEDUSB); + // LED_Set(USBD_LEDPOWER); + } + else + { + TRACE_INFO( "VBUS discon\n\r" ); + USBD_Disconnect( ); + // LED_Clear(USBD_LEDPOWER); + // LED_Clear(USBD_LEDUSB); PIO_Set( &pinPWMEnable ); - } + } } -//------------------------------------------------------------------------------ -/// Configures the VBus pin to trigger an interrupt when the level on that pin -/// changes. -//------------------------------------------------------------------------------ +// ------------------------------------------------------------------------------ +// / Configures the VBus pin to trigger an interrupt when the level on that pin +// / changes. +// ------------------------------------------------------------------------------ static void VBus_Configure( void ) { - TRACE_INFO("VBus configuration\n\r"); + TRACE_INFO( "VBus configuration\n\r" ); - // Configure PIO - PIO_Configure(&pinVbus, 1); - PIO_ConfigureIt(&pinVbus, ISR_Vbus); - PIO_EnableIt(&pinVbus); + // Configure PIO + PIO_Configure( &pinVbus, 1 ); + PIO_ConfigureIt( &pinVbus, ISR_Vbus ); + PIO_EnableIt( &pinVbus ); - ISR_Vbus(&pinVbus); + ISR_Vbus( &pinVbus ); } inline int natoi( unsigned char *buf, int size ) { int ret, i; ret = 0; - for( i = 0; i < size; i ++ ){ + for( i = 0; i < size; i++ ) + { if( '0' <= *buf && *buf <= '9' ) { ret *= 16; @@ -177,159 +162,149 @@ inline int natoi( unsigned char *buf, int size ) ret *= 16; ret += *buf - 'A' + 0xA; } - buf ++; + buf++; } return ret; } + inline int nitoa( unsigned char *buf, int data, int len ) { int i; - for( i = 0; i < len; i ++ ){ - *buf = ( ( (unsigned int)data >> ( ( len - i - 1 ) * 4 ) ) & 0xF ) + '0'; - if( *buf > '9' ){ + for( i = 0; i < len; i++ ) + { + *buf = ( ( ( unsigned int )data >> ( ( len - i - 1 ) * 4 ) ) & 0xF ) + '0'; + if( *buf > '9' ) + { *buf = *buf - '9' - 1 + 'A'; } - buf ++; + buf++; } return len; } - -//------------------------------------------------------------------------------ -/// Callback invoked when data has been received on the USB. -//------------------------------------------------------------------------------ -static void UsbDataReceived(unsigned int unused, - unsigned char status, - unsigned int received, - unsigned int remaining) +// ------------------------------------------------------------------------------ +// / Callback invoked when data has been received on the USB. +// ------------------------------------------------------------------------------ +static void UsbDataReceived( unsigned int unused, unsigned char status, unsigned int received, unsigned int remaining ) { - // Check that data has been received successfully - if (status == USBD_STATUS_SUCCESS) { + // Check that data has been received successfully + if( status == USBD_STATUS_SUCCESS ) + { static int remain = 0; - - //LED_Clear(USBD_LEDUSB); + + // LED_Clear(USBD_LEDUSB); remain = data_fetch( usbBuffer, received + remain ); - CDCDSerialDriver_Read(usbBuffer + remain, - DATABUFFERSIZE - remain, - (TransferCallback) UsbDataReceived, - 0); - //LED_Set(USBD_LEDUSB); -/* - TRACE_ERROR( - "%d %d\n", - driver_param.watchdog, THEVA.GENERAL.PWM.COUNT_ENABLE); -*/ - // Check if bytes have been discarded - if ((received == DATABUFFERSIZE) && (remaining > 0)) { - - TRACE_WARNING( - "UsbDataReceived: %u bytes discarded\n\r", - remaining); - } - } - else { - - TRACE_WARNING( "UsbDataReceived: Transfer error\n\r"); - } -} + CDCDSerialDriver_Read( usbBuffer + remain, DATABUFFERSIZE - remain, ( TransferCallback ) UsbDataReceived, 0 ); + // LED_Set(USBD_LEDUSB); + /* + * TRACE_ERROR( "%d %d\n", driver_param.watchdog, THEVA.GENERAL.PWM.COUNT_ENABLE); */ + // Check if bytes have been discarded + if( ( received == DATABUFFERSIZE ) && ( remaining > 0 ) ) + { + + TRACE_WARNING( "UsbDataReceived: %u bytes discarded\n\r", remaining ); + } + } + else + { + TRACE_WARNING( "UsbDataReceived: Transfer error\n\r" ); + } +} -//------------------------------------------------------------------------------ -// Main -//------------------------------------------------------------------------------ +// ------------------------------------------------------------------------------ +// Main +// ------------------------------------------------------------------------------ -//------------------------------------------------------------------------------ -/// Initializes drivers and start the USB <-> Serial bridge. -//------------------------------------------------------------------------------ -int main() +// ------------------------------------------------------------------------------ +// / Initializes drivers and start the USB <-> Serial bridge. +// ------------------------------------------------------------------------------ +int main( ) { short analog[16]; short enc_buf2[2]; - if( (AT91C_BASE_RSTC->RSTC_RSR & AT91C_RSTC_RSTTYP) == AT91C_RSTC_RSTTYP_WATCHDOG || - (AT91C_BASE_RSTC->RSTC_RSR & AT91C_RSTC_RSTTYP) == AT91C_RSTC_RSTTYP_BROWNOUT || - (AT91C_BASE_RSTC->RSTC_RSR & AT91C_RSTC_RSTTYP) == AT91C_RSTC_RSTTYP_WAKEUP || - (AT91C_BASE_RSTC->RSTC_RSR & AT91C_RSTC_RSTTYP) == AT91C_RSTC_RSTTYP_POWERUP ) + if( ( AT91C_BASE_RSTC->RSTC_RSR & AT91C_RSTC_RSTTYP ) == AT91C_RSTC_RSTTYP_WATCHDOG || + ( AT91C_BASE_RSTC->RSTC_RSR & AT91C_RSTC_RSTTYP ) == AT91C_RSTC_RSTTYP_BROWNOUT || + ( AT91C_BASE_RSTC->RSTC_RSR & AT91C_RSTC_RSTTYP ) == AT91C_RSTC_RSTTYP_WAKEUP || + ( AT91C_BASE_RSTC->RSTC_RSR & AT91C_RSTC_RSTTYP ) == AT91C_RSTC_RSTTYP_POWERUP ) { register int i; - LED_Configure(USBD_LEDPOWER); - PIO_Clear(&pinsLeds[USBD_LEDPOWER]); + LED_Configure( USBD_LEDPOWER ); + PIO_Clear( &pinsLeds[USBD_LEDPOWER] ); AT91C_BASE_WDTC->WDTC_WDCR = 1 | 0xA5000000; - for( i = 80000 / 4 - 1; i >= 0; i -- ) ((long *)0x00200000)[i] = 0; + for( i = 80000 / 4 - 1; i >= 0; i-- ) + ( ( long * )0x00200000 )[i] = 0; AT91C_BASE_RSTC->RSTC_RCR = 0xA5000000 | AT91C_RSTC_PROCRST | AT91C_RSTC_PERRST | AT91C_RSTC_EXTRST; } AT91C_BASE_RSTC->RSTC_RCR = 0xA5000000 | AT91C_RSTC_EXTRST; - TRACE_CONFIGURE(DBGU_STANDARD, 230400, BOARD_MCK); - printf("-- Locomotion Board %s --\n\r", SOFTPACK_VERSION); - printf("-- %s\n\r", BOARD_NAME); - printf("-- Compiled: %s %s --\n\r", __DATE__, __TIME__); + TRACE_CONFIGURE( DBGU_STANDARD, 230400, BOARD_MCK ); + printf( "-- Locomotion Board %s --\n\r", SOFTPACK_VERSION ); + printf( "-- %s\n\r", BOARD_NAME ); + printf( "-- Compiled: %s %s --\n\r", __DATE__, __TIME__ ); - // If they are present, configure Vbus & Wake-up pins - PIO_InitializeInterrupts(0); + // If they are present, configure Vbus & Wake-up pins + PIO_InitializeInterrupts( 0 ); - // Configure USART - PIO_Configure(pins, PIO_LISTSIZE(pins)); + // Configure USART + PIO_Configure( pins, PIO_LISTSIZE( pins ) ); // Disable PWM Output - PIO_Set( &pinPWMEnable ); + PIO_Set( &pinPWMEnable ); - - // BOT driver initialization - { + // BOT driver initialization + { const char manufacturer[] = { "T-frog project" }; const char product[] = { "T-frog Driver i-Cart2" }; int i; - manufacturerStringDescriptor2[0] = USBStringDescriptor_LENGTH(strlen(manufacturer)); - productStringDescriptor2[0] = USBStringDescriptor_LENGTH(strlen(product)); + manufacturerStringDescriptor2[0] = USBStringDescriptor_LENGTH( strlen( manufacturer ) ); + productStringDescriptor2[0] = USBStringDescriptor_LENGTH( strlen( product ) ); - for( i = 0; i < strlen(manufacturer); i ++ ) + for( i = 0; i < strlen( manufacturer ); i++ ) { - manufacturerStringDescriptor2[ i * 2 + 2 ] = manufacturer[i]; - manufacturerStringDescriptor2[ i * 2 + 2 + 1 ] = 0; + manufacturerStringDescriptor2[i * 2 + 2] = manufacturer[i]; + manufacturerStringDescriptor2[i * 2 + 2 + 1] = 0; } - for( i = 0; i < strlen(product); i ++ ) + for( i = 0; i < strlen( product ); i++ ) { - productStringDescriptor2[ i * 2 + 2 ] = product[i]; - productStringDescriptor2[ i * 2 + 2 + 1 ] = 0; + productStringDescriptor2[i * 2 + 2] = product[i]; + productStringDescriptor2[i * 2 + 2 + 1] = 0; } - } - cdcdSerialDriverDescriptors.pFsDevice->iManufacturer = 2; - cdcdSerialDriverDescriptors.pStrings = (const unsigned char **)stringDescriptors2; - cdcdSerialDriverDescriptors.numStrings = 3; - CDCDSerialDriver_Initialize(); - - LED_Configure(USBD_LEDPOWER); - LED_Configure(USBD_LEDUSB); - LED_Configure(USBD_LEDOTHER); - - // connect if needed - VBus_Configure(); -/* - printf("sizeof(int) = %d\n\r", (int)sizeof(int) ); - printf("sizeof(long int) = %d\n\r", (int)sizeof(long int) ); - printf("sizeof(long) = %d\n\r", (int)sizeof(long) ); - printf("sizeof(short) = %d\n\r", (int)sizeof(short) ); -*/ - printf("SRAM init\n\r" ); - SRAM_Init(); + } + cdcdSerialDriverDescriptors.pFsDevice->iManufacturer = 2; + cdcdSerialDriverDescriptors.pStrings = ( const unsigned char ** )stringDescriptors2; + cdcdSerialDriverDescriptors.numStrings = 3; + CDCDSerialDriver_Initialize( ); + + LED_Configure( USBD_LEDPOWER ); + LED_Configure( USBD_LEDUSB ); + LED_Configure( USBD_LEDOTHER ); + + // connect if needed + VBus_Configure( ); + /* + * printf("sizeof(int) = %d\n\r", (int)sizeof(int) ); printf("sizeof(long int) = %d\n\r", (int)sizeof(long int) ); + * printf("sizeof(long) = %d\n\r", (int)sizeof(long) ); printf("sizeof(short) = %d\n\r", (int)sizeof(short) ); */ + printf( "SRAM init\n\r" ); + SRAM_Init( ); // PWM Generator init THEVA.GENERAL.PWM.COUNT_ENABLE = 1; - THEVA.GENERAL.OUTPUT_ENABLE = 1; + THEVA.GENERAL.OUTPUT_ENABLE = 1; - printf("PWM control init\n\r" ); + printf( "PWM control init\n\r" ); // Configure PWM control - controlPWM_init(); + controlPWM_init( ); - printf("Velocity Control init\n\r" ); - // Configure velocity control loop - controlVelocity_init(); + printf( "Velocity Control init\n\r" ); + // Configure velocity control loop + controlVelocity_init( ); enc_buf2[0] = enc_buf2[1] = 0; motor[0].pos = motor[1].pos = 0; @@ -350,51 +325,52 @@ int main() motor_param[1].enc_rev = 0; watchdog = 1; - - if( *(int*)( 0x0017FF00 + sizeof(driver_param) + sizeof(motor_param) ) == 0xAACC ) + + if( *( int * )( 0x0017FF00 + sizeof ( driver_param ) + sizeof ( motor_param ) ) == 0xAACC ) { - memcpy( &driver_param, (int*)( 0x0017FF00 ), sizeof(driver_param) ); - memcpy( motor_param, (int*)( 0x0017FF00 + sizeof(driver_param) ), sizeof(motor_param) ); + memcpy( &driver_param, ( int * )( 0x0017FF00 ), sizeof ( driver_param ) ); + memcpy( motor_param, ( int * )( 0x0017FF00 + sizeof ( driver_param ) ), sizeof ( motor_param ) ); } -// PIO_Clear(&pinsLeds[USBD_LEDOTHER]); -// PIO_Set(&pinsLeds[USBD_LEDOTHER]); - // Driver loop - while (1) { - //static int i; - //int j; + // PIO_Clear(&pinsLeds[USBD_LEDOTHER]); + // PIO_Set(&pinsLeds[USBD_LEDOTHER]); + // Driver loop + while( 1 ) + { + // static int i; + // int j; - data_analyze( ); + data_analyze( ); if( watchdog == 0 ) { AT91C_BASE_WDTC->WDTC_WDCR = 1 | 0xA5000000; - if( driver_param.servo_level >= SERVO_LEVEL_TORQUE ) watchdog = 1; + if( driver_param.servo_level >= SERVO_LEVEL_TORQUE ) + watchdog = 1; } - if( connecting ){ - if(USBD_GetState() < USBD_STATE_CONFIGURED) continue; - - // Start receiving data on the USB - CDCDSerialDriver_Read(usbBuffer, - DATABUFFERSIZE, - (TransferCallback) UsbDataReceived, - 0); - connecting = 0; + if( connecting ) + { + if( USBD_GetState( ) < USBD_STATE_CONFIGURED ) + continue; + // Start receiving data on the USB + CDCDSerialDriver_Read( usbBuffer, DATABUFFERSIZE, ( TransferCallback ) UsbDataReceived, 0 ); + connecting = 0; } if( driver_param.cnt_updated >= 5 ) { unsigned short mask; - //static long cnt = 0; + // static long cnt = 0; /* 約5msおき */ - - mask = driver_param.admask;//analog_mask; - if( driver_param.io_mask ) mask |= 0x100; + + mask = driver_param.admask; // analog_mask; + if( driver_param.io_mask ) + mask |= 0x100; analog[8] = ( 15 << 12 ) | THEVA.PORT[0]; data_send( ( short )( ( short )motor[0].enc_buf - ( short )enc_buf2[0] ), - ( short )( ( short )motor[1].enc_buf - ( short )enc_buf2[1] ), - motor[0].ref.rate_buf, motor[1].ref.rate_buf, analog, mask ); + ( short )( ( short )motor[1].enc_buf - ( short )enc_buf2[1] ), + motor[0].ref.rate_buf, motor[1].ref.rate_buf, analog, mask ); enc_buf2[0] = motor[0].enc_buf; enc_buf2[1] = motor[1].enc_buf; @@ -405,8 +381,7 @@ int main() if( velcontrol == 1 ) { velcontrol = 0; - ISR_VelocityControl(); + ISR_VelocityControl( ); } - } + } } - diff --git a/tfrog-motordriver/mathSin2000.c b/tfrog-motordriver/mathSin2000.c index 4f7e58e..dab58ac 100644 --- a/tfrog-motordriver/mathSin2000.c +++ b/tfrog-motordriver/mathSin2000.c @@ -1,2002 +1,2002 @@ const short sin2000[2000] = { - 0, // 0(deg) 0.000000 - 173, // 0.18(deg) 0.005306 - 347, // 0.36(deg) 0.010612 - 521, // 0.54(deg) 0.015918 - 695, // 0.72(deg) 0.021223 - 869, // 0.9(deg) 0.026528 - 1043, // 1.08(deg) 0.031831 - 1216, // 1.26(deg) 0.037134 - 1390, // 1.44(deg) 0.042435 - 1564, // 1.62(deg) 0.047734 - 1737, // 1.8(deg) 0.053032 - 1911, // 1.98(deg) 0.058328 - 2084, // 2.16(deg) 0.063622 - 2258, // 2.34(deg) 0.068914 - 2431, // 2.52(deg) 0.074204 - 2604, // 2.7(deg) 0.079491 - 2777, // 2.88(deg) 0.084775 - 2950, // 3.06(deg) 0.090056 - 3123, // 3.24(deg) 0.095334 - 3296, // 3.42(deg) 0.100608 - 3469, // 3.6(deg) 0.105880 - 3642, // 3.78(deg) 0.111147 - 3814, // 3.96(deg) 0.116411 - 3986, // 4.14(deg) 0.121670 - 4159, // 4.32(deg) 0.126926 - 4331, // 4.5(deg) 0.132177 - 4503, // 4.68(deg) 0.137423 - 4674, // 4.86(deg) 0.142664 - 4846, // 5.04(deg) 0.147901 - 5017, // 5.22(deg) 0.153133 - 5189, // 5.4(deg) 0.158359 - 5360, // 5.58(deg) 0.163579 - 5531, // 5.76(deg) 0.168794 - 5701, // 5.94(deg) 0.174003 - 5872, // 6.12(deg) 0.179207 - 6042, // 6.3(deg) 0.184403 - 6212, // 6.48(deg) 0.189594 - 6382, // 6.66(deg) 0.194778 - 6552, // 6.84(deg) 0.199955 - 6721, // 7.02(deg) 0.205125 - 6890, // 7.2(deg) 0.210289 - 7059, // 7.38(deg) 0.215445 - 7228, // 7.56(deg) 0.220593 - 7396, // 7.74(deg) 0.225734 - 7565, // 7.92(deg) 0.230867 - 7732, // 8.1(deg) 0.235992 - 7900, // 8.28(deg) 0.241109 - 8068, // 8.46(deg) 0.246218 - 8235, // 8.64(deg) 0.251318 - 8402, // 8.82(deg) 0.256410 - 8568, // 9(deg) 0.261493 - 8734, // 9.18(deg) 0.266567 - 8900, // 9.36(deg) 0.271631 - 9066, // 9.54(deg) 0.276687 - 9231, // 9.72(deg) 0.281733 - 9396, // 9.9(deg) 0.286769 - 9561, // 10.08(deg) 0.291795 - 9725, // 10.26(deg) 0.296812 - 9889, // 10.44(deg) 0.301818 - 10053, // 10.62(deg) 0.306814 - 10217, // 10.8(deg) 0.311800 - 10380, // 10.98(deg) 0.316775 - 10542, // 11.16(deg) 0.321739 - 10705, // 11.34(deg) 0.326692 - 10866, // 11.52(deg) 0.331634 - 11028, // 11.7(deg) 0.336565 - 11189, // 11.88(deg) 0.341484 - 11350, // 12.06(deg) 0.346392 - 11511, // 12.24(deg) 0.351288 - 11671, // 12.42(deg) 0.356172 - 11830, // 12.6(deg) 0.361044 - 11989, // 12.78(deg) 0.365904 - 12148, // 12.96(deg) 0.370752 - 12307, // 13.14(deg) 0.375587 - 12465, // 13.32(deg) 0.380409 - 12622, // 13.5(deg) 0.385219 - 12780, // 13.68(deg) 0.390016 - 12936, // 13.86(deg) 0.394799 - 13093, // 14.04(deg) 0.399569 - 13248, // 14.22(deg) 0.404326 - 13404, // 14.4(deg) 0.409070 - 13559, // 14.58(deg) 0.413799 - 13713, // 14.76(deg) 0.418515 - 13867, // 14.94(deg) 0.423217 - 14021, // 15.12(deg) 0.427905 - 14174, // 15.3(deg) 0.432579 - 14327, // 15.48(deg) 0.437238 - 14479, // 15.66(deg) 0.441882 - 14631, // 15.84(deg) 0.446512 - 14782, // 16.02(deg) 0.451127 - 14933, // 16.2(deg) 0.455728 - 15083, // 16.38(deg) 0.460313 - 15233, // 16.56(deg) 0.464883 - 15382, // 16.74(deg) 0.469437 - 15531, // 16.92(deg) 0.473977 - 15679, // 17.1(deg) 0.478500 - 15827, // 17.28(deg) 0.483008 - 15974, // 17.46(deg) 0.487500 - 16121, // 17.64(deg) 0.491976 - 16267, // 17.82(deg) 0.496436 - 16412, // 18(deg) 0.500880 - 16557, // 18.18(deg) 0.505307 - 16702, // 18.36(deg) 0.509718 - 16846, // 18.54(deg) 0.514112 - 16989, // 18.72(deg) 0.518490 - 17132, // 18.9(deg) 0.522851 - 17275, // 19.08(deg) 0.527195 - 17416, // 19.26(deg) 0.531521 - 17558, // 19.44(deg) 0.535831 - 17698, // 19.62(deg) 0.540123 - 17838, // 19.8(deg) 0.544398 - 17978, // 19.98(deg) 0.548656 - 18117, // 20.16(deg) 0.552896 - 18255, // 20.34(deg) 0.557118 - 18393, // 20.52(deg) 0.561322 - 18530, // 20.7(deg) 0.565509 - 18667, // 20.88(deg) 0.569677 - 18803, // 21.06(deg) 0.573827 - 18938, // 21.24(deg) 0.577959 - 19073, // 21.42(deg) 0.582073 - 19207, // 21.6(deg) 0.586168 - 19341, // 21.78(deg) 0.590245 - 19474, // 21.96(deg) 0.594303 - 19606, // 22.14(deg) 0.598342 - 19738, // 22.32(deg) 0.602362 - 19869, // 22.5(deg) 0.606364 - 19999, // 22.68(deg) 0.610346 - 20129, // 22.86(deg) 0.614310 - 20258, // 23.04(deg) 0.618254 - 20387, // 23.22(deg) 0.622179 - 20515, // 23.4(deg) 0.626085 - 20642, // 23.58(deg) 0.629971 - 20769, // 23.76(deg) 0.633838 - 20895, // 23.94(deg) 0.637685 - 21021, // 24.12(deg) 0.641512 - 21145, // 24.3(deg) 0.645320 - 21269, // 24.48(deg) 0.649108 - 21393, // 24.66(deg) 0.652876 - 21516, // 24.84(deg) 0.656624 - 21638, // 25.02(deg) 0.660352 - 21759, // 25.2(deg) 0.664059 - 21880, // 25.38(deg) 0.667747 - 22000, // 25.56(deg) 0.671414 - 22120, // 25.74(deg) 0.675061 - 22239, // 25.92(deg) 0.678688 - 22357, // 26.1(deg) 0.682294 - 22474, // 26.28(deg) 0.685879 - 22591, // 26.46(deg) 0.689444 - 22707, // 26.64(deg) 0.692988 - 22823, // 26.82(deg) 0.696512 - 22938, // 27(deg) 0.700015 - 23052, // 27.18(deg) 0.703497 - 23165, // 27.36(deg) 0.706958 - 23278, // 27.54(deg) 0.710398 - 23390, // 27.72(deg) 0.713817 - 23501, // 27.9(deg) 0.717215 - 23612, // 28.08(deg) 0.720592 - 23722, // 28.26(deg) 0.723948 - 23831, // 28.44(deg) 0.727283 - 23940, // 28.62(deg) 0.730596 - 24048, // 28.8(deg) 0.733889 - 24155, // 28.98(deg) 0.737159 - 24261, // 29.16(deg) 0.740409 - 24367, // 29.34(deg) 0.743637 - 24472, // 29.52(deg) 0.746844 - 24576, // 29.7(deg) 0.750029 - 24680, // 29.88(deg) 0.753193 - 24783, // 30.06(deg) 0.756336 - 24885, // 30.24(deg) 0.759456 - 24987, // 30.42(deg) 0.762555 - 25088, // 30.6(deg) 0.765633 - 25188, // 30.78(deg) 0.768689 - 25287, // 30.96(deg) 0.771723 - 25386, // 31.14(deg) 0.774736 - 25484, // 31.32(deg) 0.777727 - 25581, // 31.5(deg) 0.780696 - 25678, // 31.68(deg) 0.783643 - 25774, // 31.86(deg) 0.786569 - 25869, // 32.04(deg) 0.789472 - 25963, // 32.22(deg) 0.792354 - 26057, // 32.4(deg) 0.795214 - 26150, // 32.58(deg) 0.798053 - 26242, // 32.76(deg) 0.800869 - 26334, // 32.94(deg) 0.803664 - 26425, // 33.12(deg) 0.806437 - 26515, // 33.3(deg) 0.809188 - 26604, // 33.48(deg) 0.811917 - 26693, // 33.66(deg) 0.814624 - 26781, // 33.84(deg) 0.817309 - 26868, // 34.02(deg) 0.819973 - 26955, // 34.2(deg) 0.822614 - 27041, // 34.38(deg) 0.825234 - 27126, // 34.56(deg) 0.827832 - 27210, // 34.74(deg) 0.830408 - 27294, // 34.92(deg) 0.832962 - 27377, // 35.1(deg) 0.835494 - 27459, // 35.28(deg) 0.838005 - 27541, // 35.46(deg) 0.840493 - 27622, // 35.64(deg) 0.842960 - 27702, // 35.82(deg) 0.845405 - 27781, // 36(deg) 0.847828 - 27860, // 36.18(deg) 0.850230 - 27938, // 36.36(deg) 0.852610 - 28015, // 36.54(deg) 0.854967 - 28092, // 36.72(deg) 0.857304 - 28167, // 36.9(deg) 0.859618 - 28243, // 37.08(deg) 0.861911 - 28317, // 37.26(deg) 0.864182 - 28391, // 37.44(deg) 0.866432 - 28464, // 37.62(deg) 0.868660 - 28536, // 37.8(deg) 0.870867 - 28608, // 37.98(deg) 0.873052 - 28679, // 38.16(deg) 0.875215 - 28749, // 38.34(deg) 0.877357 - 28818, // 38.52(deg) 0.879478 - 28887, // 38.7(deg) 0.881577 - 28955, // 38.88(deg) 0.883655 - 29022, // 39.06(deg) 0.885711 - 29089, // 39.24(deg) 0.887746 - 29155, // 39.42(deg) 0.889760 - 29220, // 39.6(deg) 0.891753 - 29285, // 39.78(deg) 0.893725 - 29349, // 39.96(deg) 0.895675 - 29412, // 40.14(deg) 0.897605 - 29475, // 40.32(deg) 0.899513 - 29537, // 40.5(deg) 0.901401 - 29598, // 40.68(deg) 0.903268 - 29658, // 40.86(deg) 0.905113 - 29718, // 41.04(deg) 0.906938 - 29777, // 41.22(deg) 0.908742 - 29836, // 41.4(deg) 0.910526 - 29893, // 41.58(deg) 0.912289 - 29950, // 41.76(deg) 0.914031 - 30007, // 41.94(deg) 0.915753 - 30063, // 42.12(deg) 0.917454 - 30118, // 42.3(deg) 0.919135 - 30172, // 42.48(deg) 0.920796 - 30226, // 42.66(deg) 0.922436 - 30279, // 42.84(deg) 0.924056 - 30331, // 43.02(deg) 0.925656 - 30383, // 43.2(deg) 0.927236 - 30434, // 43.38(deg) 0.928795 - 30485, // 43.56(deg) 0.930335 - 30535, // 43.74(deg) 0.931855 - 30584, // 43.92(deg) 0.933356 - 30632, // 44.1(deg) 0.934836 - 30680, // 44.28(deg) 0.936297 - 30727, // 44.46(deg) 0.937738 - 30774, // 44.64(deg) 0.939160 - 30820, // 44.82(deg) 0.940562 - 30865, // 45(deg) 0.941945 - 30910, // 45.18(deg) 0.943309 - 30954, // 45.36(deg) 0.944654 - 30997, // 45.54(deg) 0.945979 - 31040, // 45.72(deg) 0.947286 - 31082, // 45.9(deg) 0.948573 - 31124, // 46.08(deg) 0.949842 - 31165, // 46.26(deg) 0.951092 - 31205, // 46.44(deg) 0.952323 - 31245, // 46.62(deg) 0.953536 - 31284, // 46.8(deg) 0.954730 - 31323, // 46.98(deg) 0.955906 - 31361, // 47.16(deg) 0.957063 - 31398, // 47.34(deg) 0.958202 - 31435, // 47.52(deg) 0.959323 - 31471, // 47.7(deg) 0.960426 - 31506, // 47.88(deg) 0.961512 - 31541, // 48.06(deg) 0.962579 - 31576, // 48.24(deg) 0.963628 - 31609, // 48.42(deg) 0.964660 - 31643, // 48.6(deg) 0.965675 - 31675, // 48.78(deg) 0.966672 - 31707, // 48.96(deg) 0.967651 - 31739, // 49.14(deg) 0.968613 - 31770, // 49.32(deg) 0.969559 - 31800, // 49.5(deg) 0.970487 - 31830, // 49.68(deg) 0.971398 - 31860, // 49.86(deg) 0.972292 - 31888, // 50.04(deg) 0.973170 - 31917, // 50.22(deg) 0.974031 - 31944, // 50.4(deg) 0.974875 - 31971, // 50.58(deg) 0.975703 - 31998, // 50.76(deg) 0.976515 - 32024, // 50.94(deg) 0.977310 - 32050, // 51.12(deg) 0.978090 - 32075, // 51.3(deg) 0.978853 - 32099, // 51.48(deg) 0.979601 - 32123, // 51.66(deg) 0.980333 - 32147, // 51.84(deg) 0.981049 - 32169, // 52.02(deg) 0.981750 - 32192, // 52.2(deg) 0.982435 - 32214, // 52.38(deg) 0.983105 - 32235, // 52.56(deg) 0.983760 - 32256, // 52.74(deg) 0.984400 - 32277, // 52.92(deg) 0.985025 - 32297, // 53.1(deg) 0.985635 - 32316, // 53.28(deg) 0.986230 - 32335, // 53.46(deg) 0.986811 - 32354, // 53.64(deg) 0.987377 - 32372, // 53.82(deg) 0.987929 - 32390, // 54(deg) 0.988467 - 32407, // 54.18(deg) 0.988990 - 32423, // 54.36(deg) 0.989500 - 32440, // 54.54(deg) 0.989995 - 32455, // 54.72(deg) 0.990477 - 32471, // 54.9(deg) 0.990946 - 32486, // 55.08(deg) 0.991400 - 32500, // 55.26(deg) 0.991842 - 32514, // 55.44(deg) 0.992270 - 32528, // 55.62(deg) 0.992685 - 32541, // 55.8(deg) 0.993087 - 32554, // 55.98(deg) 0.993476 - 32566, // 56.16(deg) 0.993853 - 32578, // 56.34(deg) 0.994217 - 32590, // 56.52(deg) 0.994568 - 32601, // 56.7(deg) 0.994907 - 32611, // 56.88(deg) 0.995234 - 32622, // 57.06(deg) 0.995548 - 32632, // 57.24(deg) 0.995851 - 32641, // 57.42(deg) 0.996142 - 32650, // 57.6(deg) 0.996421 - 32659, // 57.78(deg) 0.996688 - 32667, // 57.96(deg) 0.996944 - 32675, // 58.14(deg) 0.997189 - 32683, // 58.32(deg) 0.997422 - 32690, // 58.5(deg) 0.997645 - 32697, // 58.68(deg) 0.997856 - 32704, // 58.86(deg) 0.998057 - 32710, // 59.04(deg) 0.998246 - 32716, // 59.22(deg) 0.998426 - 32721, // 59.4(deg) 0.998595 - 32727, // 59.58(deg) 0.998753 - 32732, // 59.76(deg) 0.998902 - 32736, // 59.94(deg) 0.999040 - 32740, // 60.12(deg) 0.999168 - 32744, // 60.3(deg) 0.999287 - 32748, // 60.48(deg) 0.999396 - 32751, // 60.66(deg) 0.999496 - 32754, // 60.84(deg) 0.999586 - 32757, // 61.02(deg) 0.999667 - 32759, // 61.2(deg) 0.999739 - 32761, // 61.38(deg) 0.999801 - 32763, // 61.56(deg) 0.999855 - 32764, // 61.74(deg) 0.999901 - 32765, // 61.92(deg) 0.999937 - 32766, // 62.1(deg) 0.999966 - 32767, // 62.28(deg) 0.999985 - 32767, // 62.46(deg) 0.999997 - 32767, // 62.64(deg) 1.000001 - 32767, // 62.82(deg) 0.999996 - 32767, // 63(deg) 0.999984 - 32766, // 63.18(deg) 0.999965 - 32765, // 63.36(deg) 0.999937 - 32764, // 63.54(deg) 0.999903 - 32763, // 63.72(deg) 0.999861 - 32761, // 63.9(deg) 0.999812 - 32759, // 64.08(deg) 0.999756 - 32757, // 64.26(deg) 0.999693 - 32755, // 64.44(deg) 0.999623 - 32753, // 64.62(deg) 0.999546 - 32750, // 64.8(deg) 0.999464 - 32747, // 64.98(deg) 0.999374 - 32744, // 65.16(deg) 0.999279 - 32741, // 65.34(deg) 0.999177 - 32737, // 65.52(deg) 0.999070 - 32733, // 65.7(deg) 0.998957 - 32729, // 65.88(deg) 0.998837 - 32725, // 66.06(deg) 0.998713 - 32721, // 66.24(deg) 0.998583 - 32717, // 66.42(deg) 0.998447 - 32712, // 66.6(deg) 0.998307 - 32707, // 66.78(deg) 0.998161 - 32702, // 66.96(deg) 0.998010 - 32697, // 67.14(deg) 0.997855 - 32692, // 67.32(deg) 0.997694 - 32687, // 67.5(deg) 0.997530 - 32681, // 67.68(deg) 0.997360 - 32675, // 67.86(deg) 0.997187 - 32669, // 68.04(deg) 0.997009 - 32664, // 68.22(deg) 0.996827 - 32657, // 68.4(deg) 0.996641 - 32651, // 68.58(deg) 0.996452 - 32645, // 68.76(deg) 0.996258 - 32638, // 68.94(deg) 0.996061 - 32632, // 69.12(deg) 0.995861 - 32625, // 69.3(deg) 0.995657 - 32618, // 69.48(deg) 0.995450 - 32612, // 69.66(deg) 0.995240 - 32605, // 69.84(deg) 0.995027 - 32597, // 70.02(deg) 0.994811 - 32590, // 70.2(deg) 0.994592 - 32583, // 70.38(deg) 0.994371 - 32576, // 70.56(deg) 0.994147 - 32568, // 70.74(deg) 0.993920 - 32561, // 70.92(deg) 0.993692 - 32553, // 71.1(deg) 0.993461 - 32546, // 71.28(deg) 0.993228 - 32538, // 71.46(deg) 0.992993 - 32530, // 71.64(deg) 0.992756 - 32522, // 71.82(deg) 0.992518 - 32514, // 72(deg) 0.992278 - 32507, // 72.18(deg) 0.992036 - 32499, // 72.36(deg) 0.991793 - 32491, // 72.54(deg) 0.991549 - 32483, // 72.72(deg) 0.991304 - 32474, // 72.9(deg) 0.991057 - 32466, // 73.08(deg) 0.990810 - 32458, // 73.26(deg) 0.990561 - 32450, // 73.44(deg) 0.990312 - 32442, // 73.62(deg) 0.990062 - 32434, // 73.8(deg) 0.989812 - 32425, // 73.98(deg) 0.989561 - 32417, // 74.16(deg) 0.989310 - 32409, // 74.34(deg) 0.989059 - 32401, // 74.52(deg) 0.988807 - 32392, // 74.7(deg) 0.988556 - 32384, // 74.88(deg) 0.988304 - 32376, // 75.06(deg) 0.988053 - 32368, // 75.24(deg) 0.987802 - 32360, // 75.42(deg) 0.987551 - 32351, // 75.6(deg) 0.987300 - 32343, // 75.78(deg) 0.987051 - 32335, // 75.96(deg) 0.986801 - 32327, // 76.14(deg) 0.986553 - 32319, // 76.32(deg) 0.986305 - 32311, // 76.5(deg) 0.986058 - 32303, // 76.68(deg) 0.985813 - 32295, // 76.86(deg) 0.985568 - 32287, // 77.04(deg) 0.985324 - 32279, // 77.22(deg) 0.985082 - 32271, // 77.4(deg) 0.984841 - 32263, // 77.58(deg) 0.984601 - 32255, // 77.76(deg) 0.984363 - 32247, // 77.94(deg) 0.984127 - 32240, // 78.12(deg) 0.983892 - 32232, // 78.3(deg) 0.983659 - 32224, // 78.48(deg) 0.983427 - 32217, // 78.66(deg) 0.983198 - 32209, // 78.84(deg) 0.982971 - 32202, // 79.02(deg) 0.982745 - 32195, // 79.2(deg) 0.982522 - 32188, // 79.38(deg) 0.982301 - 32180, // 79.56(deg) 0.982082 - 32173, // 79.74(deg) 0.981866 - 32166, // 79.92(deg) 0.981652 - 32159, // 80.1(deg) 0.981440 - 32152, // 80.28(deg) 0.981231 - 32146, // 80.46(deg) 0.981025 - 32139, // 80.64(deg) 0.980821 - 32132, // 80.82(deg) 0.980620 - 32126, // 81(deg) 0.980422 - 32120, // 81.18(deg) 0.980227 - 32113, // 81.36(deg) 0.980035 - 32107, // 81.54(deg) 0.979845 - 32101, // 81.72(deg) 0.979659 - 32095, // 81.9(deg) 0.979476 - 32089, // 82.08(deg) 0.979296 - 32083, // 82.26(deg) 0.979120 - 32078, // 82.44(deg) 0.978946 - 32072, // 82.62(deg) 0.978776 - 32067, // 82.8(deg) 0.978609 - 32061, // 82.98(deg) 0.978446 - 32056, // 83.16(deg) 0.978286 - 32051, // 83.34(deg) 0.978130 - 32046, // 83.52(deg) 0.977978 - 32041, // 83.7(deg) 0.977829 - 32036, // 83.88(deg) 0.977683 - 32032, // 84.06(deg) 0.977542 - 32027, // 84.24(deg) 0.977404 - 32023, // 84.42(deg) 0.977270 - 32018, // 84.6(deg) 0.977140 - 32014, // 84.78(deg) 0.977014 - 32010, // 84.96(deg) 0.976891 - 32006, // 85.14(deg) 0.976773 - 32003, // 85.32(deg) 0.976659 - 31999, // 85.5(deg) 0.976548 - 31996, // 85.68(deg) 0.976442 - 31992, // 85.86(deg) 0.976340 - 31989, // 86.04(deg) 0.976242 - 31986, // 86.22(deg) 0.976148 - 31983, // 86.4(deg) 0.976058 - 31980, // 86.58(deg) 0.975973 - 31978, // 86.76(deg) 0.975891 - 31975, // 86.94(deg) 0.975814 - 31973, // 87.12(deg) 0.975742 - 31970, // 87.3(deg) 0.975673 - 31968, // 87.48(deg) 0.975609 - 31966, // 87.66(deg) 0.975549 - 31964, // 87.84(deg) 0.975494 - 31963, // 88.02(deg) 0.975443 - 31961, // 88.2(deg) 0.975396 - 31960, // 88.38(deg) 0.975354 - 31959, // 88.56(deg) 0.975316 - 31958, // 88.74(deg) 0.975283 - 31957, // 88.92(deg) 0.975254 - 31956, // 89.1(deg) 0.975229 - 31955, // 89.28(deg) 0.975209 - 31955, // 89.46(deg) 0.975194 - 31954, // 89.64(deg) 0.975182 - 31954, // 89.82(deg) 0.975176 - 31954, // 90(deg) 0.975174 - 31954, // 90.18(deg) 0.975176 - 31954, // 90.36(deg) 0.975182 - 31955, // 90.54(deg) 0.975194 - 31955, // 90.72(deg) 0.975209 - 31956, // 90.9(deg) 0.975229 - 31957, // 91.08(deg) 0.975254 - 31958, // 91.26(deg) 0.975283 - 31959, // 91.44(deg) 0.975316 - 31960, // 91.62(deg) 0.975354 - 31961, // 91.8(deg) 0.975396 - 31963, // 91.98(deg) 0.975443 - 31964, // 92.16(deg) 0.975494 - 31966, // 92.34(deg) 0.975549 - 31968, // 92.52(deg) 0.975609 - 31970, // 92.7(deg) 0.975673 - 31973, // 92.88(deg) 0.975742 - 31975, // 93.06(deg) 0.975814 - 31978, // 93.24(deg) 0.975891 - 31980, // 93.42(deg) 0.975973 - 31983, // 93.6(deg) 0.976058 - 31986, // 93.78(deg) 0.976148 - 31989, // 93.96(deg) 0.976242 - 31992, // 94.14(deg) 0.976340 - 31996, // 94.32(deg) 0.976442 - 31999, // 94.5(deg) 0.976548 - 32003, // 94.68(deg) 0.976659 - 32006, // 94.86(deg) 0.976773 - 32010, // 95.04(deg) 0.976891 - 32014, // 95.22(deg) 0.977014 - 32018, // 95.4(deg) 0.977140 - 32023, // 95.58(deg) 0.977270 - 32027, // 95.76(deg) 0.977404 - 32032, // 95.94(deg) 0.977542 - 32036, // 96.12(deg) 0.977683 - 32041, // 96.3(deg) 0.977829 - 32046, // 96.48(deg) 0.977978 - 32051, // 96.66(deg) 0.978130 - 32056, // 96.84(deg) 0.978286 - 32061, // 97.02(deg) 0.978446 - 32067, // 97.2(deg) 0.978609 - 32072, // 97.38(deg) 0.978776 - 32078, // 97.56(deg) 0.978946 - 32083, // 97.74(deg) 0.979120 - 32089, // 97.92(deg) 0.979296 - 32095, // 98.1(deg) 0.979476 - 32101, // 98.28(deg) 0.979659 - 32107, // 98.46(deg) 0.979845 - 32113, // 98.64(deg) 0.980035 - 32120, // 98.82(deg) 0.980227 - 32126, // 99(deg) 0.980422 - 32132, // 99.18(deg) 0.980620 - 32139, // 99.36(deg) 0.980821 - 32146, // 99.54(deg) 0.981025 - 32152, // 99.72(deg) 0.981231 - 32159, // 99.9(deg) 0.981440 - 32166, // 100.08(deg) 0.981652 - 32173, // 100.26(deg) 0.981866 - 32180, // 100.44(deg) 0.982082 - 32188, // 100.62(deg) 0.982301 - 32195, // 100.8(deg) 0.982522 - 32202, // 100.98(deg) 0.982745 - 32209, // 101.16(deg) 0.982971 - 32217, // 101.34(deg) 0.983198 - 32224, // 101.52(deg) 0.983427 - 32232, // 101.7(deg) 0.983659 - 32240, // 101.88(deg) 0.983892 - 32247, // 102.06(deg) 0.984127 - 32255, // 102.24(deg) 0.984363 - 32263, // 102.42(deg) 0.984601 - 32271, // 102.6(deg) 0.984841 - 32279, // 102.78(deg) 0.985082 - 32287, // 102.96(deg) 0.985324 - 32295, // 103.14(deg) 0.985568 - 32303, // 103.32(deg) 0.985813 - 32311, // 103.5(deg) 0.986058 - 32319, // 103.68(deg) 0.986305 - 32327, // 103.86(deg) 0.986553 - 32335, // 104.04(deg) 0.986801 - 32343, // 104.22(deg) 0.987051 - 32351, // 104.4(deg) 0.987300 - 32360, // 104.58(deg) 0.987551 - 32368, // 104.76(deg) 0.987802 - 32376, // 104.94(deg) 0.988053 - 32384, // 105.12(deg) 0.988304 - 32392, // 105.3(deg) 0.988556 - 32401, // 105.48(deg) 0.988807 - 32409, // 105.66(deg) 0.989059 - 32417, // 105.84(deg) 0.989310 - 32425, // 106.02(deg) 0.989561 - 32434, // 106.2(deg) 0.989812 - 32442, // 106.38(deg) 0.990062 - 32450, // 106.56(deg) 0.990312 - 32458, // 106.74(deg) 0.990561 - 32466, // 106.92(deg) 0.990810 - 32474, // 107.1(deg) 0.991057 - 32483, // 107.28(deg) 0.991304 - 32491, // 107.46(deg) 0.991549 - 32499, // 107.64(deg) 0.991793 - 32507, // 107.82(deg) 0.992036 - 32514, // 108(deg) 0.992278 - 32522, // 108.18(deg) 0.992518 - 32530, // 108.36(deg) 0.992756 - 32538, // 108.54(deg) 0.992993 - 32546, // 108.72(deg) 0.993228 - 32553, // 108.9(deg) 0.993461 - 32561, // 109.08(deg) 0.993692 - 32568, // 109.26(deg) 0.993920 - 32576, // 109.44(deg) 0.994147 - 32583, // 109.62(deg) 0.994371 - 32590, // 109.8(deg) 0.994592 - 32597, // 109.98(deg) 0.994811 - 32605, // 110.16(deg) 0.995027 - 32612, // 110.34(deg) 0.995240 - 32618, // 110.52(deg) 0.995450 - 32625, // 110.7(deg) 0.995657 - 32632, // 110.88(deg) 0.995861 - 32638, // 111.06(deg) 0.996061 - 32645, // 111.24(deg) 0.996258 - 32651, // 111.42(deg) 0.996452 - 32657, // 111.6(deg) 0.996641 - 32664, // 111.78(deg) 0.996827 - 32669, // 111.96(deg) 0.997009 - 32675, // 112.14(deg) 0.997187 - 32681, // 112.32(deg) 0.997360 - 32687, // 112.5(deg) 0.997530 - 32692, // 112.68(deg) 0.997694 - 32697, // 112.86(deg) 0.997855 - 32702, // 113.04(deg) 0.998010 - 32707, // 113.22(deg) 0.998161 - 32712, // 113.4(deg) 0.998307 - 32717, // 113.58(deg) 0.998447 - 32721, // 113.76(deg) 0.998583 - 32725, // 113.94(deg) 0.998713 - 32729, // 114.12(deg) 0.998837 - 32733, // 114.3(deg) 0.998957 - 32737, // 114.48(deg) 0.999070 - 32741, // 114.66(deg) 0.999177 - 32744, // 114.84(deg) 0.999279 - 32747, // 115.02(deg) 0.999374 - 32750, // 115.2(deg) 0.999464 - 32753, // 115.38(deg) 0.999546 - 32755, // 115.56(deg) 0.999623 - 32757, // 115.74(deg) 0.999693 - 32759, // 115.92(deg) 0.999756 - 32761, // 116.1(deg) 0.999812 - 32763, // 116.28(deg) 0.999861 - 32764, // 116.46(deg) 0.999903 - 32765, // 116.64(deg) 0.999937 - 32766, // 116.82(deg) 0.999965 - 32767, // 117(deg) 0.999984 - 32767, // 117.18(deg) 0.999996 - 32767, // 117.36(deg) 1.000001 - 32767, // 117.54(deg) 0.999997 - 32767, // 117.72(deg) 0.999985 - 32766, // 117.9(deg) 0.999966 - 32765, // 118.08(deg) 0.999937 - 32764, // 118.26(deg) 0.999901 - 32763, // 118.44(deg) 0.999855 - 32761, // 118.62(deg) 0.999801 - 32759, // 118.8(deg) 0.999739 - 32757, // 118.98(deg) 0.999667 - 32754, // 119.16(deg) 0.999586 - 32751, // 119.34(deg) 0.999496 - 32748, // 119.52(deg) 0.999396 - 32744, // 119.7(deg) 0.999287 - 32740, // 119.88(deg) 0.999168 - 32736, // 120.06(deg) 0.999040 - 32732, // 120.24(deg) 0.998902 - 32727, // 120.42(deg) 0.998753 - 32721, // 120.6(deg) 0.998595 - 32716, // 120.78(deg) 0.998426 - 32710, // 120.96(deg) 0.998246 - 32704, // 121.14(deg) 0.998057 - 32697, // 121.32(deg) 0.997856 - 32690, // 121.5(deg) 0.997645 - 32683, // 121.68(deg) 0.997422 - 32675, // 121.86(deg) 0.997189 - 32667, // 122.04(deg) 0.996944 - 32659, // 122.22(deg) 0.996688 - 32650, // 122.4(deg) 0.996421 - 32641, // 122.58(deg) 0.996142 - 32632, // 122.76(deg) 0.995851 - 32622, // 122.94(deg) 0.995548 - 32611, // 123.12(deg) 0.995234 - 32601, // 123.3(deg) 0.994907 - 32590, // 123.48(deg) 0.994568 - 32578, // 123.66(deg) 0.994217 - 32566, // 123.84(deg) 0.993853 - 32554, // 124.02(deg) 0.993476 - 32541, // 124.2(deg) 0.993087 - 32528, // 124.38(deg) 0.992685 - 32514, // 124.56(deg) 0.992270 - 32500, // 124.74(deg) 0.991842 - 32486, // 124.92(deg) 0.991400 - 32471, // 125.1(deg) 0.990946 - 32455, // 125.28(deg) 0.990477 - 32440, // 125.46(deg) 0.989995 - 32423, // 125.64(deg) 0.989500 - 32407, // 125.82(deg) 0.988990 - 32390, // 126(deg) 0.988467 - 32372, // 126.18(deg) 0.987929 - 32354, // 126.36(deg) 0.987377 - 32335, // 126.54(deg) 0.986811 - 32316, // 126.72(deg) 0.986230 - 32297, // 126.9(deg) 0.985635 - 32277, // 127.08(deg) 0.985025 - 32256, // 127.26(deg) 0.984400 - 32235, // 127.44(deg) 0.983760 - 32214, // 127.62(deg) 0.983105 - 32192, // 127.8(deg) 0.982435 - 32169, // 127.98(deg) 0.981750 - 32147, // 128.16(deg) 0.981049 - 32123, // 128.34(deg) 0.980333 - 32099, // 128.52(deg) 0.979601 - 32075, // 128.7(deg) 0.978853 - 32050, // 128.88(deg) 0.978090 - 32024, // 129.06(deg) 0.977310 - 31998, // 129.24(deg) 0.976515 - 31971, // 129.42(deg) 0.975703 - 31944, // 129.6(deg) 0.974875 - 31917, // 129.78(deg) 0.974031 - 31888, // 129.96(deg) 0.973170 - 31860, // 130.14(deg) 0.972292 - 31830, // 130.32(deg) 0.971398 - 31800, // 130.5(deg) 0.970487 - 31770, // 130.68(deg) 0.969559 - 31739, // 130.86(deg) 0.968613 - 31707, // 131.04(deg) 0.967651 - 31675, // 131.22(deg) 0.966672 - 31643, // 131.4(deg) 0.965675 - 31609, // 131.58(deg) 0.964660 - 31576, // 131.76(deg) 0.963628 - 31541, // 131.94(deg) 0.962579 - 31506, // 132.12(deg) 0.961512 - 31471, // 132.3(deg) 0.960426 - 31435, // 132.48(deg) 0.959323 - 31398, // 132.66(deg) 0.958202 - 31361, // 132.84(deg) 0.957063 - 31323, // 133.02(deg) 0.955906 - 31284, // 133.2(deg) 0.954730 - 31245, // 133.38(deg) 0.953536 - 31205, // 133.56(deg) 0.952323 - 31165, // 133.74(deg) 0.951092 - 31124, // 133.92(deg) 0.949842 - 31082, // 134.1(deg) 0.948573 - 31040, // 134.28(deg) 0.947286 - 30997, // 134.46(deg) 0.945979 - 30954, // 134.64(deg) 0.944654 - 30910, // 134.82(deg) 0.943309 - 30865, // 135(deg) 0.941945 - 30820, // 135.18(deg) 0.940562 - 30774, // 135.36(deg) 0.939160 - 30727, // 135.54(deg) 0.937738 - 30680, // 135.72(deg) 0.936297 - 30632, // 135.9(deg) 0.934836 - 30584, // 136.08(deg) 0.933356 - 30535, // 136.26(deg) 0.931855 - 30485, // 136.44(deg) 0.930335 - 30434, // 136.62(deg) 0.928795 - 30383, // 136.8(deg) 0.927236 - 30331, // 136.98(deg) 0.925656 - 30279, // 137.16(deg) 0.924056 - 30226, // 137.34(deg) 0.922436 - 30172, // 137.52(deg) 0.920796 - 30118, // 137.7(deg) 0.919135 - 30063, // 137.88(deg) 0.917454 - 30007, // 138.06(deg) 0.915753 - 29950, // 138.24(deg) 0.914031 - 29893, // 138.42(deg) 0.912289 - 29836, // 138.6(deg) 0.910526 - 29777, // 138.78(deg) 0.908742 - 29718, // 138.96(deg) 0.906938 - 29658, // 139.14(deg) 0.905113 - 29598, // 139.32(deg) 0.903268 - 29537, // 139.5(deg) 0.901401 - 29475, // 139.68(deg) 0.899513 - 29412, // 139.86(deg) 0.897605 - 29349, // 140.04(deg) 0.895675 - 29285, // 140.22(deg) 0.893725 - 29220, // 140.4(deg) 0.891753 - 29155, // 140.58(deg) 0.889760 - 29089, // 140.76(deg) 0.887746 - 29022, // 140.94(deg) 0.885711 - 28955, // 141.12(deg) 0.883655 - 28887, // 141.3(deg) 0.881577 - 28818, // 141.48(deg) 0.879478 - 28749, // 141.66(deg) 0.877357 - 28679, // 141.84(deg) 0.875215 - 28608, // 142.02(deg) 0.873052 - 28536, // 142.2(deg) 0.870867 - 28464, // 142.38(deg) 0.868660 - 28391, // 142.56(deg) 0.866432 - 28317, // 142.74(deg) 0.864182 - 28243, // 142.92(deg) 0.861911 - 28167, // 143.1(deg) 0.859618 - 28092, // 143.28(deg) 0.857304 - 28015, // 143.46(deg) 0.854967 - 27938, // 143.64(deg) 0.852610 - 27860, // 143.82(deg) 0.850230 - 27781, // 144(deg) 0.847828 - 27702, // 144.18(deg) 0.845405 - 27622, // 144.36(deg) 0.842960 - 27541, // 144.54(deg) 0.840493 - 27459, // 144.72(deg) 0.838005 - 27377, // 144.9(deg) 0.835494 - 27294, // 145.08(deg) 0.832962 - 27210, // 145.26(deg) 0.830408 - 27126, // 145.44(deg) 0.827832 - 27041, // 145.62(deg) 0.825234 - 26955, // 145.8(deg) 0.822614 - 26868, // 145.98(deg) 0.819973 - 26781, // 146.16(deg) 0.817309 - 26693, // 146.34(deg) 0.814624 - 26604, // 146.52(deg) 0.811917 - 26515, // 146.7(deg) 0.809188 - 26425, // 146.88(deg) 0.806437 - 26334, // 147.06(deg) 0.803664 - 26242, // 147.24(deg) 0.800869 - 26150, // 147.42(deg) 0.798053 - 26057, // 147.6(deg) 0.795214 - 25963, // 147.78(deg) 0.792354 - 25869, // 147.96(deg) 0.789472 - 25774, // 148.14(deg) 0.786569 - 25678, // 148.32(deg) 0.783643 - 25581, // 148.5(deg) 0.780696 - 25484, // 148.68(deg) 0.777727 - 25386, // 148.86(deg) 0.774736 - 25287, // 149.04(deg) 0.771723 - 25188, // 149.22(deg) 0.768689 - 25088, // 149.4(deg) 0.765633 - 24987, // 149.58(deg) 0.762555 - 24885, // 149.76(deg) 0.759456 - 24783, // 149.94(deg) 0.756336 - 24680, // 150.12(deg) 0.753193 - 24576, // 150.3(deg) 0.750029 - 24472, // 150.48(deg) 0.746844 - 24367, // 150.66(deg) 0.743637 - 24261, // 150.84(deg) 0.740409 - 24155, // 151.02(deg) 0.737159 - 24048, // 151.2(deg) 0.733889 - 23940, // 151.38(deg) 0.730596 - 23831, // 151.56(deg) 0.727283 - 23722, // 151.74(deg) 0.723948 - 23612, // 151.92(deg) 0.720592 - 23501, // 152.1(deg) 0.717215 - 23390, // 152.28(deg) 0.713817 - 23278, // 152.46(deg) 0.710398 - 23165, // 152.64(deg) 0.706958 - 23052, // 152.82(deg) 0.703497 - 22938, // 153(deg) 0.700015 - 22823, // 153.18(deg) 0.696512 - 22707, // 153.36(deg) 0.692988 - 22591, // 153.54(deg) 0.689444 - 22474, // 153.72(deg) 0.685879 - 22357, // 153.9(deg) 0.682294 - 22239, // 154.08(deg) 0.678688 - 22120, // 154.26(deg) 0.675061 - 22000, // 154.44(deg) 0.671414 - 21880, // 154.62(deg) 0.667747 - 21759, // 154.8(deg) 0.664059 - 21638, // 154.98(deg) 0.660352 - 21516, // 155.16(deg) 0.656624 - 21393, // 155.34(deg) 0.652876 - 21269, // 155.52(deg) 0.649108 - 21145, // 155.7(deg) 0.645320 - 21021, // 155.88(deg) 0.641512 - 20895, // 156.06(deg) 0.637685 - 20769, // 156.24(deg) 0.633838 - 20642, // 156.42(deg) 0.629971 - 20515, // 156.6(deg) 0.626085 - 20387, // 156.78(deg) 0.622179 - 20258, // 156.96(deg) 0.618254 - 20129, // 157.14(deg) 0.614310 - 19999, // 157.32(deg) 0.610346 - 19869, // 157.5(deg) 0.606364 - 19738, // 157.68(deg) 0.602362 - 19606, // 157.86(deg) 0.598342 - 19474, // 158.04(deg) 0.594303 - 19341, // 158.22(deg) 0.590245 - 19207, // 158.4(deg) 0.586168 - 19073, // 158.58(deg) 0.582073 - 18938, // 158.76(deg) 0.577959 - 18803, // 158.94(deg) 0.573827 - 18667, // 159.12(deg) 0.569677 - 18530, // 159.3(deg) 0.565509 - 18393, // 159.48(deg) 0.561322 - 18255, // 159.66(deg) 0.557118 - 18117, // 159.84(deg) 0.552896 - 17978, // 160.02(deg) 0.548656 - 17838, // 160.2(deg) 0.544398 - 17698, // 160.38(deg) 0.540123 - 17558, // 160.56(deg) 0.535831 - 17416, // 160.74(deg) 0.531521 - 17275, // 160.92(deg) 0.527195 - 17132, // 161.1(deg) 0.522851 - 16989, // 161.28(deg) 0.518490 - 16846, // 161.46(deg) 0.514112 - 16702, // 161.64(deg) 0.509718 - 16557, // 161.82(deg) 0.505307 - 16412, // 162(deg) 0.500880 - 16267, // 162.18(deg) 0.496436 - 16121, // 162.36(deg) 0.491976 - 15974, // 162.54(deg) 0.487500 - 15827, // 162.72(deg) 0.483008 - 15679, // 162.9(deg) 0.478500 - 15531, // 163.08(deg) 0.473977 - 15382, // 163.26(deg) 0.469437 - 15233, // 163.44(deg) 0.464883 - 15083, // 163.62(deg) 0.460313 - 14933, // 163.8(deg) 0.455728 - 14782, // 163.98(deg) 0.451127 - 14631, // 164.16(deg) 0.446512 - 14479, // 164.34(deg) 0.441882 - 14327, // 164.52(deg) 0.437238 - 14174, // 164.7(deg) 0.432579 - 14021, // 164.88(deg) 0.427905 - 13867, // 165.06(deg) 0.423217 - 13713, // 165.24(deg) 0.418515 - 13559, // 165.42(deg) 0.413799 - 13404, // 165.6(deg) 0.409070 - 13248, // 165.78(deg) 0.404326 - 13093, // 165.96(deg) 0.399569 - 12936, // 166.14(deg) 0.394799 - 12780, // 166.32(deg) 0.390016 - 12622, // 166.5(deg) 0.385219 - 12465, // 166.68(deg) 0.380409 - 12307, // 166.86(deg) 0.375587 - 12148, // 167.04(deg) 0.370752 - 11989, // 167.22(deg) 0.365904 - 11830, // 167.4(deg) 0.361044 - 11671, // 167.58(deg) 0.356172 - 11511, // 167.76(deg) 0.351288 - 11350, // 167.94(deg) 0.346392 - 11189, // 168.12(deg) 0.341484 - 11028, // 168.3(deg) 0.336565 - 10866, // 168.48(deg) 0.331634 - 10705, // 168.66(deg) 0.326692 - 10542, // 168.84(deg) 0.321739 - 10380, // 169.02(deg) 0.316775 - 10217, // 169.2(deg) 0.311800 - 10053, // 169.38(deg) 0.306814 - 9889, // 169.56(deg) 0.301818 - 9725, // 169.74(deg) 0.296812 - 9561, // 169.92(deg) 0.291795 - 9396, // 170.1(deg) 0.286769 - 9231, // 170.28(deg) 0.281733 - 9066, // 170.46(deg) 0.276687 - 8900, // 170.64(deg) 0.271631 - 8734, // 170.82(deg) 0.266567 - 8568, // 171(deg) 0.261493 - 8402, // 171.18(deg) 0.256410 - 8235, // 171.36(deg) 0.251318 - 8068, // 171.54(deg) 0.246218 - 7900, // 171.72(deg) 0.241109 - 7732, // 171.9(deg) 0.235992 - 7565, // 172.08(deg) 0.230867 - 7396, // 172.26(deg) 0.225734 - 7228, // 172.44(deg) 0.220593 - 7059, // 172.62(deg) 0.215445 - 6890, // 172.8(deg) 0.210289 - 6721, // 172.98(deg) 0.205125 - 6552, // 173.16(deg) 0.199955 - 6382, // 173.34(deg) 0.194778 - 6212, // 173.52(deg) 0.189594 - 6042, // 173.7(deg) 0.184403 - 5872, // 173.88(deg) 0.179207 - 5701, // 174.06(deg) 0.174003 - 5531, // 174.24(deg) 0.168794 - 5360, // 174.42(deg) 0.163579 - 5189, // 174.6(deg) 0.158359 - 5017, // 174.78(deg) 0.153133 - 4846, // 174.96(deg) 0.147901 - 4674, // 175.14(deg) 0.142664 - 4503, // 175.32(deg) 0.137423 - 4331, // 175.5(deg) 0.132177 - 4159, // 175.68(deg) 0.126926 - 3986, // 175.86(deg) 0.121670 - 3814, // 176.04(deg) 0.116411 - 3642, // 176.22(deg) 0.111147 - 3469, // 176.4(deg) 0.105880 - 3296, // 176.58(deg) 0.100608 - 3123, // 176.76(deg) 0.095334 - 2950, // 176.94(deg) 0.090056 - 2777, // 177.12(deg) 0.084775 - 2604, // 177.3(deg) 0.079491 - 2431, // 177.48(deg) 0.074204 - 2258, // 177.66(deg) 0.068914 - 2084, // 177.84(deg) 0.063622 - 1911, // 178.02(deg) 0.058328 - 1737, // 178.2(deg) 0.053032 - 1564, // 178.38(deg) 0.047734 - 1390, // 178.56(deg) 0.042435 - 1216, // 178.74(deg) 0.037134 - 1043, // 178.92(deg) 0.031831 - 869, // 179.1(deg) 0.026528 - 695, // 179.28(deg) 0.021223 - 521, // 179.46(deg) 0.015918 - 347, // 179.64(deg) 0.010612 - 173, // 179.82(deg) 0.005306 - 0, // 180(deg) 0.000000 - -173, // 180.18(deg) -0.005306 - -347, // 180.36(deg) -0.010612 - -521, // 180.54(deg) -0.015918 - -695, // 180.72(deg) -0.021223 - -869, // 180.9(deg) -0.026528 - -1043, // 181.08(deg) -0.031831 - -1216, // 181.26(deg) -0.037134 - -1390, // 181.44(deg) -0.042435 - -1564, // 181.62(deg) -0.047734 - -1737, // 181.8(deg) -0.053032 - -1911, // 181.98(deg) -0.058328 - -2084, // 182.16(deg) -0.063622 - -2258, // 182.34(deg) -0.068914 - -2431, // 182.52(deg) -0.074204 - -2604, // 182.7(deg) -0.079491 - -2777, // 182.88(deg) -0.084775 - -2950, // 183.06(deg) -0.090056 - -3123, // 183.24(deg) -0.095334 - -3296, // 183.42(deg) -0.100608 - -3469, // 183.6(deg) -0.105880 - -3642, // 183.78(deg) -0.111147 - -3814, // 183.96(deg) -0.116411 - -3986, // 184.14(deg) -0.121670 - -4159, // 184.32(deg) -0.126926 - -4331, // 184.5(deg) -0.132177 - -4503, // 184.68(deg) -0.137423 - -4674, // 184.86(deg) -0.142664 - -4846, // 185.04(deg) -0.147901 - -5017, // 185.22(deg) -0.153133 - -5189, // 185.4(deg) -0.158359 - -5360, // 185.58(deg) -0.163579 - -5531, // 185.76(deg) -0.168794 - -5701, // 185.94(deg) -0.174003 - -5872, // 186.12(deg) -0.179207 - -6042, // 186.3(deg) -0.184403 - -6212, // 186.48(deg) -0.189594 - -6382, // 186.66(deg) -0.194778 - -6552, // 186.84(deg) -0.199955 - -6721, // 187.02(deg) -0.205125 - -6890, // 187.2(deg) -0.210289 - -7059, // 187.38(deg) -0.215445 - -7228, // 187.56(deg) -0.220593 - -7396, // 187.74(deg) -0.225734 - -7565, // 187.92(deg) -0.230867 - -7732, // 188.1(deg) -0.235992 - -7900, // 188.28(deg) -0.241109 - -8068, // 188.46(deg) -0.246218 - -8235, // 188.64(deg) -0.251318 - -8402, // 188.82(deg) -0.256410 - -8568, // 189(deg) -0.261493 - -8734, // 189.18(deg) -0.266567 - -8900, // 189.36(deg) -0.271631 - -9066, // 189.54(deg) -0.276687 - -9231, // 189.72(deg) -0.281733 - -9396, // 189.9(deg) -0.286769 - -9561, // 190.08(deg) -0.291795 - -9725, // 190.26(deg) -0.296812 - -9889, // 190.44(deg) -0.301818 - -10053, // 190.62(deg) -0.306814 - -10217, // 190.8(deg) -0.311800 - -10380, // 190.98(deg) -0.316775 - -10542, // 191.16(deg) -0.321739 - -10705, // 191.34(deg) -0.326692 - -10866, // 191.52(deg) -0.331634 - -11028, // 191.7(deg) -0.336565 - -11189, // 191.88(deg) -0.341484 - -11350, // 192.06(deg) -0.346392 - -11511, // 192.24(deg) -0.351288 - -11671, // 192.42(deg) -0.356172 - -11830, // 192.6(deg) -0.361044 - -11989, // 192.78(deg) -0.365904 - -12148, // 192.96(deg) -0.370752 - -12307, // 193.14(deg) -0.375587 - -12465, // 193.32(deg) -0.380409 - -12622, // 193.5(deg) -0.385219 - -12780, // 193.68(deg) -0.390016 - -12936, // 193.86(deg) -0.394799 - -13093, // 194.04(deg) -0.399569 - -13248, // 194.22(deg) -0.404326 - -13404, // 194.4(deg) -0.409070 - -13559, // 194.58(deg) -0.413799 - -13713, // 194.76(deg) -0.418515 - -13867, // 194.94(deg) -0.423217 - -14021, // 195.12(deg) -0.427905 - -14174, // 195.3(deg) -0.432579 - -14327, // 195.48(deg) -0.437238 - -14479, // 195.66(deg) -0.441882 - -14631, // 195.84(deg) -0.446512 - -14782, // 196.02(deg) -0.451127 - -14933, // 196.2(deg) -0.455728 - -15083, // 196.38(deg) -0.460313 - -15233, // 196.56(deg) -0.464883 - -15382, // 196.74(deg) -0.469437 - -15531, // 196.92(deg) -0.473977 - -15679, // 197.1(deg) -0.478500 - -15827, // 197.28(deg) -0.483008 - -15974, // 197.46(deg) -0.487500 - -16121, // 197.64(deg) -0.491976 - -16267, // 197.82(deg) -0.496436 - -16412, // 198(deg) -0.500880 - -16557, // 198.18(deg) -0.505307 - -16702, // 198.36(deg) -0.509718 - -16846, // 198.54(deg) -0.514112 - -16989, // 198.72(deg) -0.518490 - -17132, // 198.9(deg) -0.522851 - -17275, // 199.08(deg) -0.527195 - -17416, // 199.26(deg) -0.531521 - -17558, // 199.44(deg) -0.535831 - -17698, // 199.62(deg) -0.540123 - -17838, // 199.8(deg) -0.544398 - -17978, // 199.98(deg) -0.548656 - -18117, // 200.16(deg) -0.552896 - -18255, // 200.34(deg) -0.557118 - -18393, // 200.52(deg) -0.561322 - -18530, // 200.7(deg) -0.565509 - -18667, // 200.88(deg) -0.569677 - -18803, // 201.06(deg) -0.573827 - -18938, // 201.24(deg) -0.577959 - -19073, // 201.42(deg) -0.582073 - -19207, // 201.6(deg) -0.586168 - -19341, // 201.78(deg) -0.590245 - -19474, // 201.96(deg) -0.594303 - -19606, // 202.14(deg) -0.598342 - -19738, // 202.32(deg) -0.602362 - -19869, // 202.5(deg) -0.606364 - -19999, // 202.68(deg) -0.610346 - -20129, // 202.86(deg) -0.614310 - -20258, // 203.04(deg) -0.618254 - -20387, // 203.22(deg) -0.622179 - -20515, // 203.4(deg) -0.626085 - -20642, // 203.58(deg) -0.629971 - -20769, // 203.76(deg) -0.633838 - -20895, // 203.94(deg) -0.637685 - -21021, // 204.12(deg) -0.641512 - -21145, // 204.3(deg) -0.645320 - -21269, // 204.48(deg) -0.649108 - -21393, // 204.66(deg) -0.652876 - -21516, // 204.84(deg) -0.656624 - -21638, // 205.02(deg) -0.660352 - -21759, // 205.2(deg) -0.664059 - -21880, // 205.38(deg) -0.667747 - -22000, // 205.56(deg) -0.671414 - -22120, // 205.74(deg) -0.675061 - -22239, // 205.92(deg) -0.678688 - -22357, // 206.1(deg) -0.682294 - -22474, // 206.28(deg) -0.685879 - -22591, // 206.46(deg) -0.689444 - -22707, // 206.64(deg) -0.692988 - -22823, // 206.82(deg) -0.696512 - -22938, // 207(deg) -0.700015 - -23052, // 207.18(deg) -0.703497 - -23165, // 207.36(deg) -0.706958 - -23278, // 207.54(deg) -0.710398 - -23390, // 207.72(deg) -0.713817 - -23501, // 207.9(deg) -0.717215 - -23612, // 208.08(deg) -0.720592 - -23722, // 208.26(deg) -0.723948 - -23831, // 208.44(deg) -0.727283 - -23940, // 208.62(deg) -0.730596 - -24048, // 208.8(deg) -0.733889 - -24155, // 208.98(deg) -0.737159 - -24261, // 209.16(deg) -0.740409 - -24367, // 209.34(deg) -0.743637 - -24472, // 209.52(deg) -0.746844 - -24576, // 209.7(deg) -0.750029 - -24680, // 209.88(deg) -0.753193 - -24783, // 210.06(deg) -0.756336 - -24885, // 210.24(deg) -0.759456 - -24987, // 210.42(deg) -0.762555 - -25088, // 210.6(deg) -0.765633 - -25188, // 210.78(deg) -0.768689 - -25287, // 210.96(deg) -0.771723 - -25386, // 211.14(deg) -0.774736 - -25484, // 211.32(deg) -0.777727 - -25581, // 211.5(deg) -0.780696 - -25678, // 211.68(deg) -0.783643 - -25774, // 211.86(deg) -0.786569 - -25869, // 212.04(deg) -0.789472 - -25963, // 212.22(deg) -0.792354 - -26057, // 212.4(deg) -0.795214 - -26150, // 212.58(deg) -0.798053 - -26242, // 212.76(deg) -0.800869 - -26334, // 212.94(deg) -0.803664 - -26425, // 213.12(deg) -0.806437 - -26515, // 213.3(deg) -0.809188 - -26604, // 213.48(deg) -0.811917 - -26693, // 213.66(deg) -0.814624 - -26781, // 213.84(deg) -0.817309 - -26868, // 214.02(deg) -0.819973 - -26955, // 214.2(deg) -0.822614 - -27041, // 214.38(deg) -0.825234 - -27126, // 214.56(deg) -0.827832 - -27210, // 214.74(deg) -0.830408 - -27294, // 214.92(deg) -0.832962 - -27377, // 215.1(deg) -0.835494 - -27459, // 215.28(deg) -0.838005 - -27541, // 215.46(deg) -0.840493 - -27622, // 215.64(deg) -0.842960 - -27702, // 215.82(deg) -0.845405 - -27781, // 216(deg) -0.847828 - -27860, // 216.18(deg) -0.850230 - -27938, // 216.36(deg) -0.852610 - -28015, // 216.54(deg) -0.854967 - -28092, // 216.72(deg) -0.857304 - -28167, // 216.9(deg) -0.859618 - -28243, // 217.08(deg) -0.861911 - -28317, // 217.26(deg) -0.864182 - -28391, // 217.44(deg) -0.866432 - -28464, // 217.62(deg) -0.868660 - -28536, // 217.8(deg) -0.870867 - -28608, // 217.98(deg) -0.873052 - -28679, // 218.16(deg) -0.875215 - -28749, // 218.34(deg) -0.877357 - -28818, // 218.52(deg) -0.879478 - -28887, // 218.7(deg) -0.881577 - -28955, // 218.88(deg) -0.883655 - -29022, // 219.06(deg) -0.885711 - -29089, // 219.24(deg) -0.887746 - -29155, // 219.42(deg) -0.889760 - -29220, // 219.6(deg) -0.891753 - -29285, // 219.78(deg) -0.893725 - -29349, // 219.96(deg) -0.895675 - -29412, // 220.14(deg) -0.897605 - -29475, // 220.32(deg) -0.899513 - -29537, // 220.5(deg) -0.901401 - -29598, // 220.68(deg) -0.903268 - -29658, // 220.86(deg) -0.905113 - -29718, // 221.04(deg) -0.906938 - -29777, // 221.22(deg) -0.908742 - -29836, // 221.4(deg) -0.910526 - -29893, // 221.58(deg) -0.912289 - -29950, // 221.76(deg) -0.914031 - -30007, // 221.94(deg) -0.915753 - -30063, // 222.12(deg) -0.917454 - -30118, // 222.3(deg) -0.919135 - -30172, // 222.48(deg) -0.920796 - -30226, // 222.66(deg) -0.922436 - -30279, // 222.84(deg) -0.924056 - -30331, // 223.02(deg) -0.925656 - -30383, // 223.2(deg) -0.927236 - -30434, // 223.38(deg) -0.928795 - -30485, // 223.56(deg) -0.930335 - -30535, // 223.74(deg) -0.931855 - -30584, // 223.92(deg) -0.933356 - -30632, // 224.1(deg) -0.934836 - -30680, // 224.28(deg) -0.936297 - -30727, // 224.46(deg) -0.937738 - -30774, // 224.64(deg) -0.939160 - -30820, // 224.82(deg) -0.940562 - -30865, // 225(deg) -0.941945 - -30910, // 225.18(deg) -0.943309 - -30954, // 225.36(deg) -0.944654 - -30997, // 225.54(deg) -0.945979 - -31040, // 225.72(deg) -0.947286 - -31082, // 225.9(deg) -0.948573 - -31124, // 226.08(deg) -0.949842 - -31165, // 226.26(deg) -0.951092 - -31205, // 226.44(deg) -0.952323 - -31245, // 226.62(deg) -0.953536 - -31284, // 226.8(deg) -0.954730 - -31323, // 226.98(deg) -0.955906 - -31361, // 227.16(deg) -0.957063 - -31398, // 227.34(deg) -0.958202 - -31435, // 227.52(deg) -0.959323 - -31471, // 227.7(deg) -0.960426 - -31506, // 227.88(deg) -0.961512 - -31541, // 228.06(deg) -0.962579 - -31576, // 228.24(deg) -0.963628 - -31609, // 228.42(deg) -0.964660 - -31643, // 228.6(deg) -0.965675 - -31675, // 228.78(deg) -0.966672 - -31707, // 228.96(deg) -0.967651 - -31739, // 229.14(deg) -0.968613 - -31770, // 229.32(deg) -0.969559 - -31800, // 229.5(deg) -0.970487 - -31830, // 229.68(deg) -0.971398 - -31860, // 229.86(deg) -0.972292 - -31888, // 230.04(deg) -0.973170 - -31917, // 230.22(deg) -0.974031 - -31944, // 230.4(deg) -0.974875 - -31971, // 230.58(deg) -0.975703 - -31998, // 230.76(deg) -0.976515 - -32024, // 230.94(deg) -0.977310 - -32050, // 231.12(deg) -0.978090 - -32075, // 231.3(deg) -0.978853 - -32099, // 231.48(deg) -0.979601 - -32123, // 231.66(deg) -0.980333 - -32147, // 231.84(deg) -0.981049 - -32169, // 232.02(deg) -0.981750 - -32192, // 232.2(deg) -0.982435 - -32214, // 232.38(deg) -0.983105 - -32235, // 232.56(deg) -0.983760 - -32256, // 232.74(deg) -0.984400 - -32277, // 232.92(deg) -0.985025 - -32297, // 233.1(deg) -0.985635 - -32316, // 233.28(deg) -0.986230 - -32335, // 233.46(deg) -0.986811 - -32354, // 233.64(deg) -0.987377 - -32372, // 233.82(deg) -0.987929 - -32390, // 234(deg) -0.988467 - -32407, // 234.18(deg) -0.988990 - -32423, // 234.36(deg) -0.989500 - -32440, // 234.54(deg) -0.989995 - -32455, // 234.72(deg) -0.990477 - -32471, // 234.9(deg) -0.990946 - -32486, // 235.08(deg) -0.991400 - -32500, // 235.26(deg) -0.991842 - -32514, // 235.44(deg) -0.992270 - -32528, // 235.62(deg) -0.992685 - -32541, // 235.8(deg) -0.993087 - -32554, // 235.98(deg) -0.993476 - -32566, // 236.16(deg) -0.993853 - -32578, // 236.34(deg) -0.994217 - -32590, // 236.52(deg) -0.994568 - -32601, // 236.7(deg) -0.994907 - -32611, // 236.88(deg) -0.995234 - -32622, // 237.06(deg) -0.995548 - -32632, // 237.24(deg) -0.995851 - -32641, // 237.42(deg) -0.996142 - -32650, // 237.6(deg) -0.996421 - -32659, // 237.78(deg) -0.996688 - -32667, // 237.96(deg) -0.996944 - -32675, // 238.14(deg) -0.997189 - -32683, // 238.32(deg) -0.997422 - -32690, // 238.5(deg) -0.997645 - -32697, // 238.68(deg) -0.997856 - -32704, // 238.86(deg) -0.998057 - -32710, // 239.04(deg) -0.998246 - -32716, // 239.22(deg) -0.998426 - -32721, // 239.4(deg) -0.998595 - -32727, // 239.58(deg) -0.998753 - -32732, // 239.76(deg) -0.998902 - -32736, // 239.94(deg) -0.999040 - -32740, // 240.12(deg) -0.999168 - -32744, // 240.3(deg) -0.999287 - -32748, // 240.48(deg) -0.999396 - -32751, // 240.66(deg) -0.999496 - -32754, // 240.84(deg) -0.999586 - -32757, // 241.02(deg) -0.999667 - -32759, // 241.2(deg) -0.999739 - -32761, // 241.38(deg) -0.999801 - -32763, // 241.56(deg) -0.999855 - -32764, // 241.74(deg) -0.999901 - -32765, // 241.92(deg) -0.999937 - -32766, // 242.1(deg) -0.999966 - -32767, // 242.28(deg) -0.999985 - -32767, // 242.46(deg) -0.999997 - -32768, // 242.64(deg) -1.000001 - -32767, // 242.82(deg) -0.999996 - -32767, // 243(deg) -0.999984 - -32766, // 243.18(deg) -0.999965 - -32765, // 243.36(deg) -0.999937 - -32764, // 243.54(deg) -0.999903 - -32763, // 243.72(deg) -0.999861 - -32761, // 243.9(deg) -0.999812 - -32759, // 244.08(deg) -0.999756 - -32757, // 244.26(deg) -0.999693 - -32755, // 244.44(deg) -0.999623 - -32753, // 244.62(deg) -0.999546 - -32750, // 244.8(deg) -0.999464 - -32747, // 244.98(deg) -0.999374 - -32744, // 245.16(deg) -0.999279 - -32741, // 245.34(deg) -0.999177 - -32737, // 245.52(deg) -0.999070 - -32733, // 245.7(deg) -0.998957 - -32729, // 245.88(deg) -0.998837 - -32725, // 246.06(deg) -0.998713 - -32721, // 246.24(deg) -0.998583 - -32717, // 246.42(deg) -0.998447 - -32712, // 246.6(deg) -0.998307 - -32707, // 246.78(deg) -0.998161 - -32702, // 246.96(deg) -0.998010 - -32697, // 247.14(deg) -0.997855 - -32692, // 247.32(deg) -0.997694 - -32687, // 247.5(deg) -0.997530 - -32681, // 247.68(deg) -0.997360 - -32675, // 247.86(deg) -0.997187 - -32669, // 248.04(deg) -0.997009 - -32664, // 248.22(deg) -0.996827 - -32657, // 248.4(deg) -0.996641 - -32651, // 248.58(deg) -0.996452 - -32645, // 248.76(deg) -0.996258 - -32638, // 248.94(deg) -0.996061 - -32632, // 249.12(deg) -0.995861 - -32625, // 249.3(deg) -0.995657 - -32618, // 249.48(deg) -0.995450 - -32612, // 249.66(deg) -0.995240 - -32605, // 249.84(deg) -0.995027 - -32597, // 250.02(deg) -0.994811 - -32590, // 250.2(deg) -0.994592 - -32583, // 250.38(deg) -0.994371 - -32576, // 250.56(deg) -0.994147 - -32568, // 250.74(deg) -0.993920 - -32561, // 250.92(deg) -0.993692 - -32553, // 251.1(deg) -0.993461 - -32546, // 251.28(deg) -0.993228 - -32538, // 251.46(deg) -0.992993 - -32530, // 251.64(deg) -0.992756 - -32522, // 251.82(deg) -0.992518 - -32514, // 252(deg) -0.992278 - -32507, // 252.18(deg) -0.992036 - -32499, // 252.36(deg) -0.991793 - -32491, // 252.54(deg) -0.991549 - -32483, // 252.72(deg) -0.991304 - -32474, // 252.9(deg) -0.991057 - -32466, // 253.08(deg) -0.990810 - -32458, // 253.26(deg) -0.990561 - -32450, // 253.44(deg) -0.990312 - -32442, // 253.62(deg) -0.990062 - -32434, // 253.8(deg) -0.989812 - -32425, // 253.98(deg) -0.989561 - -32417, // 254.16(deg) -0.989310 - -32409, // 254.34(deg) -0.989059 - -32401, // 254.52(deg) -0.988807 - -32392, // 254.7(deg) -0.988556 - -32384, // 254.88(deg) -0.988304 - -32376, // 255.06(deg) -0.988053 - -32368, // 255.24(deg) -0.987802 - -32360, // 255.42(deg) -0.987551 - -32351, // 255.6(deg) -0.987300 - -32343, // 255.78(deg) -0.987051 - -32335, // 255.96(deg) -0.986801 - -32327, // 256.14(deg) -0.986553 - -32319, // 256.32(deg) -0.986305 - -32311, // 256.5(deg) -0.986058 - -32303, // 256.68(deg) -0.985813 - -32295, // 256.86(deg) -0.985568 - -32287, // 257.04(deg) -0.985324 - -32279, // 257.22(deg) -0.985082 - -32271, // 257.4(deg) -0.984841 - -32263, // 257.58(deg) -0.984601 - -32255, // 257.76(deg) -0.984363 - -32247, // 257.94(deg) -0.984127 - -32240, // 258.12(deg) -0.983892 - -32232, // 258.3(deg) -0.983659 - -32224, // 258.48(deg) -0.983427 - -32217, // 258.66(deg) -0.983198 - -32209, // 258.84(deg) -0.982971 - -32202, // 259.02(deg) -0.982745 - -32195, // 259.2(deg) -0.982522 - -32188, // 259.38(deg) -0.982301 - -32180, // 259.56(deg) -0.982082 - -32173, // 259.74(deg) -0.981866 - -32166, // 259.92(deg) -0.981652 - -32159, // 260.1(deg) -0.981440 - -32152, // 260.28(deg) -0.981231 - -32146, // 260.46(deg) -0.981025 - -32139, // 260.64(deg) -0.980821 - -32132, // 260.82(deg) -0.980620 - -32126, // 261(deg) -0.980422 - -32120, // 261.18(deg) -0.980227 - -32113, // 261.36(deg) -0.980035 - -32107, // 261.54(deg) -0.979845 - -32101, // 261.72(deg) -0.979659 - -32095, // 261.9(deg) -0.979476 - -32089, // 262.08(deg) -0.979296 - -32083, // 262.26(deg) -0.979120 - -32078, // 262.44(deg) -0.978946 - -32072, // 262.62(deg) -0.978776 - -32067, // 262.8(deg) -0.978609 - -32061, // 262.98(deg) -0.978446 - -32056, // 263.16(deg) -0.978286 - -32051, // 263.34(deg) -0.978130 - -32046, // 263.52(deg) -0.977978 - -32041, // 263.7(deg) -0.977829 - -32036, // 263.88(deg) -0.977683 - -32032, // 264.06(deg) -0.977542 - -32027, // 264.24(deg) -0.977404 - -32023, // 264.42(deg) -0.977270 - -32018, // 264.6(deg) -0.977140 - -32014, // 264.78(deg) -0.977014 - -32010, // 264.96(deg) -0.976891 - -32006, // 265.14(deg) -0.976773 - -32003, // 265.32(deg) -0.976659 - -31999, // 265.5(deg) -0.976548 - -31996, // 265.68(deg) -0.976442 - -31992, // 265.86(deg) -0.976340 - -31989, // 266.04(deg) -0.976242 - -31986, // 266.22(deg) -0.976148 - -31983, // 266.4(deg) -0.976058 - -31980, // 266.58(deg) -0.975973 - -31978, // 266.76(deg) -0.975891 - -31975, // 266.94(deg) -0.975814 - -31973, // 267.12(deg) -0.975742 - -31970, // 267.3(deg) -0.975673 - -31968, // 267.48(deg) -0.975609 - -31966, // 267.66(deg) -0.975549 - -31964, // 267.84(deg) -0.975494 - -31963, // 268.02(deg) -0.975443 - -31961, // 268.2(deg) -0.975396 - -31960, // 268.38(deg) -0.975354 - -31959, // 268.56(deg) -0.975316 - -31958, // 268.74(deg) -0.975283 - -31957, // 268.92(deg) -0.975254 - -31956, // 269.1(deg) -0.975229 - -31955, // 269.28(deg) -0.975209 - -31955, // 269.46(deg) -0.975194 - -31954, // 269.64(deg) -0.975182 - -31954, // 269.82(deg) -0.975176 - -31954, // 270(deg) -0.975174 - -31954, // 270.18(deg) -0.975176 - -31954, // 270.36(deg) -0.975182 - -31955, // 270.54(deg) -0.975194 - -31955, // 270.72(deg) -0.975209 - -31956, // 270.9(deg) -0.975229 - -31957, // 271.08(deg) -0.975254 - -31958, // 271.26(deg) -0.975283 - -31959, // 271.44(deg) -0.975316 - -31960, // 271.62(deg) -0.975354 - -31961, // 271.8(deg) -0.975396 - -31963, // 271.98(deg) -0.975443 - -31964, // 272.16(deg) -0.975494 - -31966, // 272.34(deg) -0.975549 - -31968, // 272.52(deg) -0.975609 - -31970, // 272.7(deg) -0.975673 - -31973, // 272.88(deg) -0.975742 - -31975, // 273.06(deg) -0.975814 - -31978, // 273.24(deg) -0.975891 - -31980, // 273.42(deg) -0.975973 - -31983, // 273.6(deg) -0.976058 - -31986, // 273.78(deg) -0.976148 - -31989, // 273.96(deg) -0.976242 - -31992, // 274.14(deg) -0.976340 - -31996, // 274.32(deg) -0.976442 - -31999, // 274.5(deg) -0.976548 - -32003, // 274.68(deg) -0.976659 - -32006, // 274.86(deg) -0.976773 - -32010, // 275.04(deg) -0.976891 - -32014, // 275.22(deg) -0.977014 - -32018, // 275.4(deg) -0.977140 - -32023, // 275.58(deg) -0.977270 - -32027, // 275.76(deg) -0.977404 - -32032, // 275.94(deg) -0.977542 - -32036, // 276.12(deg) -0.977683 - -32041, // 276.3(deg) -0.977829 - -32046, // 276.48(deg) -0.977978 - -32051, // 276.66(deg) -0.978130 - -32056, // 276.84(deg) -0.978286 - -32061, // 277.02(deg) -0.978446 - -32067, // 277.2(deg) -0.978609 - -32072, // 277.38(deg) -0.978776 - -32078, // 277.56(deg) -0.978946 - -32083, // 277.74(deg) -0.979120 - -32089, // 277.92(deg) -0.979296 - -32095, // 278.1(deg) -0.979476 - -32101, // 278.28(deg) -0.979659 - -32107, // 278.46(deg) -0.979845 - -32113, // 278.64(deg) -0.980035 - -32120, // 278.82(deg) -0.980227 - -32126, // 279(deg) -0.980422 - -32132, // 279.18(deg) -0.980620 - -32139, // 279.36(deg) -0.980821 - -32146, // 279.54(deg) -0.981025 - -32152, // 279.72(deg) -0.981231 - -32159, // 279.9(deg) -0.981440 - -32166, // 280.08(deg) -0.981652 - -32173, // 280.26(deg) -0.981866 - -32180, // 280.44(deg) -0.982082 - -32188, // 280.62(deg) -0.982301 - -32195, // 280.8(deg) -0.982522 - -32202, // 280.98(deg) -0.982745 - -32209, // 281.16(deg) -0.982971 - -32217, // 281.34(deg) -0.983198 - -32224, // 281.52(deg) -0.983427 - -32232, // 281.7(deg) -0.983659 - -32240, // 281.88(deg) -0.983892 - -32247, // 282.06(deg) -0.984127 - -32255, // 282.24(deg) -0.984363 - -32263, // 282.42(deg) -0.984601 - -32271, // 282.6(deg) -0.984841 - -32279, // 282.78(deg) -0.985082 - -32287, // 282.96(deg) -0.985324 - -32295, // 283.14(deg) -0.985568 - -32303, // 283.32(deg) -0.985813 - -32311, // 283.5(deg) -0.986058 - -32319, // 283.68(deg) -0.986305 - -32327, // 283.86(deg) -0.986553 - -32335, // 284.04(deg) -0.986801 - -32343, // 284.22(deg) -0.987051 - -32351, // 284.4(deg) -0.987300 - -32360, // 284.58(deg) -0.987551 - -32368, // 284.76(deg) -0.987802 - -32376, // 284.94(deg) -0.988053 - -32384, // 285.12(deg) -0.988304 - -32392, // 285.3(deg) -0.988556 - -32401, // 285.48(deg) -0.988807 - -32409, // 285.66(deg) -0.989059 - -32417, // 285.84(deg) -0.989310 - -32425, // 286.02(deg) -0.989561 - -32434, // 286.2(deg) -0.989812 - -32442, // 286.38(deg) -0.990062 - -32450, // 286.56(deg) -0.990312 - -32458, // 286.74(deg) -0.990561 - -32466, // 286.92(deg) -0.990810 - -32474, // 287.1(deg) -0.991057 - -32483, // 287.28(deg) -0.991304 - -32491, // 287.46(deg) -0.991549 - -32499, // 287.64(deg) -0.991793 - -32507, // 287.82(deg) -0.992036 - -32514, // 288(deg) -0.992278 - -32522, // 288.18(deg) -0.992518 - -32530, // 288.36(deg) -0.992756 - -32538, // 288.54(deg) -0.992993 - -32546, // 288.72(deg) -0.993228 - -32553, // 288.9(deg) -0.993461 - -32561, // 289.08(deg) -0.993692 - -32568, // 289.26(deg) -0.993920 - -32576, // 289.44(deg) -0.994147 - -32583, // 289.62(deg) -0.994371 - -32590, // 289.8(deg) -0.994592 - -32597, // 289.98(deg) -0.994811 - -32605, // 290.16(deg) -0.995027 - -32612, // 290.34(deg) -0.995240 - -32618, // 290.52(deg) -0.995450 - -32625, // 290.7(deg) -0.995657 - -32632, // 290.88(deg) -0.995861 - -32638, // 291.06(deg) -0.996061 - -32645, // 291.24(deg) -0.996258 - -32651, // 291.42(deg) -0.996452 - -32657, // 291.6(deg) -0.996641 - -32664, // 291.78(deg) -0.996827 - -32669, // 291.96(deg) -0.997009 - -32675, // 292.14(deg) -0.997187 - -32681, // 292.32(deg) -0.997360 - -32687, // 292.5(deg) -0.997530 - -32692, // 292.68(deg) -0.997694 - -32697, // 292.86(deg) -0.997855 - -32702, // 293.04(deg) -0.998010 - -32707, // 293.22(deg) -0.998161 - -32712, // 293.4(deg) -0.998307 - -32717, // 293.58(deg) -0.998447 - -32721, // 293.76(deg) -0.998583 - -32725, // 293.94(deg) -0.998713 - -32729, // 294.12(deg) -0.998837 - -32733, // 294.3(deg) -0.998957 - -32737, // 294.48(deg) -0.999070 - -32741, // 294.66(deg) -0.999177 - -32744, // 294.84(deg) -0.999279 - -32747, // 295.02(deg) -0.999374 - -32750, // 295.2(deg) -0.999464 - -32753, // 295.38(deg) -0.999546 - -32755, // 295.56(deg) -0.999623 - -32757, // 295.74(deg) -0.999693 - -32759, // 295.92(deg) -0.999756 - -32761, // 296.1(deg) -0.999812 - -32763, // 296.28(deg) -0.999861 - -32764, // 296.46(deg) -0.999903 - -32765, // 296.64(deg) -0.999937 - -32766, // 296.82(deg) -0.999965 - -32767, // 297(deg) -0.999984 - -32767, // 297.18(deg) -0.999996 - -32768, // 297.36(deg) -1.000001 - -32767, // 297.54(deg) -0.999997 - -32767, // 297.72(deg) -0.999985 - -32766, // 297.9(deg) -0.999966 - -32765, // 298.08(deg) -0.999937 - -32764, // 298.26(deg) -0.999901 - -32763, // 298.44(deg) -0.999855 - -32761, // 298.62(deg) -0.999801 - -32759, // 298.8(deg) -0.999739 - -32757, // 298.98(deg) -0.999667 - -32754, // 299.16(deg) -0.999586 - -32751, // 299.34(deg) -0.999496 - -32748, // 299.52(deg) -0.999396 - -32744, // 299.7(deg) -0.999287 - -32740, // 299.88(deg) -0.999168 - -32736, // 300.06(deg) -0.999040 - -32732, // 300.24(deg) -0.998902 - -32727, // 300.42(deg) -0.998753 - -32721, // 300.6(deg) -0.998595 - -32716, // 300.78(deg) -0.998426 - -32710, // 300.96(deg) -0.998246 - -32704, // 301.14(deg) -0.998057 - -32697, // 301.32(deg) -0.997856 - -32690, // 301.5(deg) -0.997645 - -32683, // 301.68(deg) -0.997422 - -32675, // 301.86(deg) -0.997189 - -32667, // 302.04(deg) -0.996944 - -32659, // 302.22(deg) -0.996688 - -32650, // 302.4(deg) -0.996421 - -32641, // 302.58(deg) -0.996142 - -32632, // 302.76(deg) -0.995851 - -32622, // 302.94(deg) -0.995548 - -32611, // 303.12(deg) -0.995234 - -32601, // 303.3(deg) -0.994907 - -32590, // 303.48(deg) -0.994568 - -32578, // 303.66(deg) -0.994217 - -32566, // 303.84(deg) -0.993853 - -32554, // 304.02(deg) -0.993476 - -32541, // 304.2(deg) -0.993087 - -32528, // 304.38(deg) -0.992685 - -32514, // 304.56(deg) -0.992270 - -32500, // 304.74(deg) -0.991842 - -32486, // 304.92(deg) -0.991400 - -32471, // 305.1(deg) -0.990946 - -32455, // 305.28(deg) -0.990477 - -32440, // 305.46(deg) -0.989995 - -32423, // 305.64(deg) -0.989500 - -32407, // 305.82(deg) -0.988990 - -32390, // 306(deg) -0.988467 - -32372, // 306.18(deg) -0.987929 - -32354, // 306.36(deg) -0.987377 - -32335, // 306.54(deg) -0.986811 - -32316, // 306.72(deg) -0.986230 - -32297, // 306.9(deg) -0.985635 - -32277, // 307.08(deg) -0.985025 - -32256, // 307.26(deg) -0.984400 - -32235, // 307.44(deg) -0.983760 - -32214, // 307.62(deg) -0.983105 - -32192, // 307.8(deg) -0.982435 - -32169, // 307.98(deg) -0.981750 - -32147, // 308.16(deg) -0.981049 - -32123, // 308.34(deg) -0.980333 - -32099, // 308.52(deg) -0.979601 - -32075, // 308.7(deg) -0.978853 - -32050, // 308.88(deg) -0.978090 - -32024, // 309.06(deg) -0.977310 - -31998, // 309.24(deg) -0.976515 - -31971, // 309.42(deg) -0.975703 - -31944, // 309.6(deg) -0.974875 - -31917, // 309.78(deg) -0.974031 - -31888, // 309.96(deg) -0.973170 - -31860, // 310.14(deg) -0.972292 - -31830, // 310.32(deg) -0.971398 - -31800, // 310.5(deg) -0.970487 - -31770, // 310.68(deg) -0.969559 - -31739, // 310.86(deg) -0.968613 - -31707, // 311.04(deg) -0.967651 - -31675, // 311.22(deg) -0.966672 - -31643, // 311.4(deg) -0.965675 - -31609, // 311.58(deg) -0.964660 - -31576, // 311.76(deg) -0.963628 - -31541, // 311.94(deg) -0.962579 - -31506, // 312.12(deg) -0.961512 - -31471, // 312.3(deg) -0.960426 - -31435, // 312.48(deg) -0.959323 - -31398, // 312.66(deg) -0.958202 - -31361, // 312.84(deg) -0.957063 - -31323, // 313.02(deg) -0.955906 - -31284, // 313.2(deg) -0.954730 - -31245, // 313.38(deg) -0.953536 - -31205, // 313.56(deg) -0.952323 - -31165, // 313.74(deg) -0.951092 - -31124, // 313.92(deg) -0.949842 - -31082, // 314.1(deg) -0.948573 - -31040, // 314.28(deg) -0.947286 - -30997, // 314.46(deg) -0.945979 - -30954, // 314.64(deg) -0.944654 - -30910, // 314.82(deg) -0.943309 - -30865, // 315(deg) -0.941945 - -30820, // 315.18(deg) -0.940562 - -30774, // 315.36(deg) -0.939160 - -30727, // 315.54(deg) -0.937738 - -30680, // 315.72(deg) -0.936297 - -30632, // 315.9(deg) -0.934836 - -30584, // 316.08(deg) -0.933356 - -30535, // 316.26(deg) -0.931855 - -30485, // 316.44(deg) -0.930335 - -30434, // 316.62(deg) -0.928795 - -30383, // 316.8(deg) -0.927236 - -30331, // 316.98(deg) -0.925656 - -30279, // 317.16(deg) -0.924056 - -30226, // 317.34(deg) -0.922436 - -30172, // 317.52(deg) -0.920796 - -30118, // 317.7(deg) -0.919135 - -30063, // 317.88(deg) -0.917454 - -30007, // 318.06(deg) -0.915753 - -29950, // 318.24(deg) -0.914031 - -29893, // 318.42(deg) -0.912289 - -29836, // 318.6(deg) -0.910526 - -29777, // 318.78(deg) -0.908742 - -29718, // 318.96(deg) -0.906938 - -29658, // 319.14(deg) -0.905113 - -29598, // 319.32(deg) -0.903268 - -29537, // 319.5(deg) -0.901401 - -29475, // 319.68(deg) -0.899513 - -29412, // 319.86(deg) -0.897605 - -29349, // 320.04(deg) -0.895675 - -29285, // 320.22(deg) -0.893725 - -29220, // 320.4(deg) -0.891753 - -29155, // 320.58(deg) -0.889760 - -29089, // 320.76(deg) -0.887746 - -29022, // 320.94(deg) -0.885711 - -28955, // 321.12(deg) -0.883655 - -28887, // 321.3(deg) -0.881577 - -28818, // 321.48(deg) -0.879478 - -28749, // 321.66(deg) -0.877357 - -28679, // 321.84(deg) -0.875215 - -28608, // 322.02(deg) -0.873052 - -28536, // 322.2(deg) -0.870867 - -28464, // 322.38(deg) -0.868660 - -28391, // 322.56(deg) -0.866432 - -28317, // 322.74(deg) -0.864182 - -28243, // 322.92(deg) -0.861911 - -28167, // 323.1(deg) -0.859618 - -28092, // 323.28(deg) -0.857304 - -28015, // 323.46(deg) -0.854967 - -27938, // 323.64(deg) -0.852610 - -27860, // 323.82(deg) -0.850230 - -27781, // 324(deg) -0.847828 - -27702, // 324.18(deg) -0.845405 - -27622, // 324.36(deg) -0.842960 - -27541, // 324.54(deg) -0.840493 - -27459, // 324.72(deg) -0.838005 - -27377, // 324.9(deg) -0.835494 - -27294, // 325.08(deg) -0.832962 - -27210, // 325.26(deg) -0.830408 - -27126, // 325.44(deg) -0.827832 - -27041, // 325.62(deg) -0.825234 - -26955, // 325.8(deg) -0.822614 - -26868, // 325.98(deg) -0.819973 - -26781, // 326.16(deg) -0.817309 - -26693, // 326.34(deg) -0.814624 - -26604, // 326.52(deg) -0.811917 - -26515, // 326.7(deg) -0.809188 - -26425, // 326.88(deg) -0.806437 - -26334, // 327.06(deg) -0.803664 - -26242, // 327.24(deg) -0.800869 - -26150, // 327.42(deg) -0.798053 - -26057, // 327.6(deg) -0.795214 - -25963, // 327.78(deg) -0.792354 - -25869, // 327.96(deg) -0.789472 - -25774, // 328.14(deg) -0.786569 - -25678, // 328.32(deg) -0.783643 - -25581, // 328.5(deg) -0.780696 - -25484, // 328.68(deg) -0.777727 - -25386, // 328.86(deg) -0.774736 - -25287, // 329.04(deg) -0.771723 - -25188, // 329.22(deg) -0.768689 - -25088, // 329.4(deg) -0.765633 - -24987, // 329.58(deg) -0.762555 - -24885, // 329.76(deg) -0.759456 - -24783, // 329.94(deg) -0.756336 - -24680, // 330.12(deg) -0.753193 - -24576, // 330.3(deg) -0.750029 - -24472, // 330.48(deg) -0.746844 - -24367, // 330.66(deg) -0.743637 - -24261, // 330.84(deg) -0.740409 - -24155, // 331.02(deg) -0.737159 - -24048, // 331.2(deg) -0.733889 - -23940, // 331.38(deg) -0.730596 - -23831, // 331.56(deg) -0.727283 - -23722, // 331.74(deg) -0.723948 - -23612, // 331.92(deg) -0.720592 - -23501, // 332.1(deg) -0.717215 - -23390, // 332.28(deg) -0.713817 - -23278, // 332.46(deg) -0.710398 - -23165, // 332.64(deg) -0.706958 - -23052, // 332.82(deg) -0.703497 - -22938, // 333(deg) -0.700015 - -22823, // 333.18(deg) -0.696512 - -22707, // 333.36(deg) -0.692988 - -22591, // 333.54(deg) -0.689444 - -22474, // 333.72(deg) -0.685879 - -22357, // 333.9(deg) -0.682294 - -22239, // 334.08(deg) -0.678688 - -22120, // 334.26(deg) -0.675061 - -22000, // 334.44(deg) -0.671414 - -21880, // 334.62(deg) -0.667747 - -21759, // 334.8(deg) -0.664059 - -21638, // 334.98(deg) -0.660352 - -21516, // 335.16(deg) -0.656624 - -21393, // 335.34(deg) -0.652876 - -21269, // 335.52(deg) -0.649108 - -21145, // 335.7(deg) -0.645320 - -21021, // 335.88(deg) -0.641512 - -20895, // 336.06(deg) -0.637685 - -20769, // 336.24(deg) -0.633838 - -20642, // 336.42(deg) -0.629971 - -20515, // 336.6(deg) -0.626085 - -20387, // 336.78(deg) -0.622179 - -20258, // 336.96(deg) -0.618254 - -20129, // 337.14(deg) -0.614310 - -19999, // 337.32(deg) -0.610346 - -19869, // 337.5(deg) -0.606364 - -19738, // 337.68(deg) -0.602362 - -19606, // 337.86(deg) -0.598342 - -19474, // 338.04(deg) -0.594303 - -19341, // 338.22(deg) -0.590245 - -19207, // 338.4(deg) -0.586168 - -19073, // 338.58(deg) -0.582073 - -18938, // 338.76(deg) -0.577959 - -18803, // 338.94(deg) -0.573827 - -18667, // 339.12(deg) -0.569677 - -18530, // 339.3(deg) -0.565509 - -18393, // 339.48(deg) -0.561322 - -18255, // 339.66(deg) -0.557118 - -18117, // 339.84(deg) -0.552896 - -17978, // 340.02(deg) -0.548656 - -17838, // 340.2(deg) -0.544398 - -17698, // 340.38(deg) -0.540123 - -17558, // 340.56(deg) -0.535831 - -17416, // 340.74(deg) -0.531521 - -17275, // 340.92(deg) -0.527195 - -17132, // 341.1(deg) -0.522851 - -16989, // 341.28(deg) -0.518490 - -16846, // 341.46(deg) -0.514112 - -16702, // 341.64(deg) -0.509718 - -16557, // 341.82(deg) -0.505307 - -16412, // 342(deg) -0.500880 - -16267, // 342.18(deg) -0.496436 - -16121, // 342.36(deg) -0.491976 - -15974, // 342.54(deg) -0.487500 - -15827, // 342.72(deg) -0.483008 - -15679, // 342.9(deg) -0.478500 - -15531, // 343.08(deg) -0.473977 - -15382, // 343.26(deg) -0.469437 - -15233, // 343.44(deg) -0.464883 - -15083, // 343.62(deg) -0.460313 - -14933, // 343.8(deg) -0.455728 - -14782, // 343.98(deg) -0.451127 - -14631, // 344.16(deg) -0.446512 - -14479, // 344.34(deg) -0.441882 - -14327, // 344.52(deg) -0.437238 - -14174, // 344.7(deg) -0.432579 - -14021, // 344.88(deg) -0.427905 - -13867, // 345.06(deg) -0.423217 - -13713, // 345.24(deg) -0.418515 - -13559, // 345.42(deg) -0.413799 - -13404, // 345.6(deg) -0.409070 - -13248, // 345.78(deg) -0.404326 - -13093, // 345.96(deg) -0.399569 - -12936, // 346.14(deg) -0.394799 - -12780, // 346.32(deg) -0.390016 - -12622, // 346.5(deg) -0.385219 - -12465, // 346.68(deg) -0.380409 - -12307, // 346.86(deg) -0.375587 - -12148, // 347.04(deg) -0.370752 - -11989, // 347.22(deg) -0.365904 - -11830, // 347.4(deg) -0.361044 - -11671, // 347.58(deg) -0.356172 - -11511, // 347.76(deg) -0.351288 - -11350, // 347.94(deg) -0.346392 - -11189, // 348.12(deg) -0.341484 - -11028, // 348.3(deg) -0.336565 - -10866, // 348.48(deg) -0.331634 - -10705, // 348.66(deg) -0.326692 - -10542, // 348.84(deg) -0.321739 - -10380, // 349.02(deg) -0.316775 - -10217, // 349.2(deg) -0.311800 - -10053, // 349.38(deg) -0.306814 - -9889, // 349.56(deg) -0.301818 - -9725, // 349.74(deg) -0.296812 - -9561, // 349.92(deg) -0.291795 - -9396, // 350.1(deg) -0.286769 - -9231, // 350.28(deg) -0.281733 - -9066, // 350.46(deg) -0.276687 - -8900, // 350.64(deg) -0.271631 - -8734, // 350.82(deg) -0.266567 - -8568, // 351(deg) -0.261493 - -8402, // 351.18(deg) -0.256410 - -8235, // 351.36(deg) -0.251318 - -8068, // 351.54(deg) -0.246218 - -7900, // 351.72(deg) -0.241109 - -7732, // 351.9(deg) -0.235992 - -7565, // 352.08(deg) -0.230867 - -7396, // 352.26(deg) -0.225734 - -7228, // 352.44(deg) -0.220593 - -7059, // 352.62(deg) -0.215445 - -6890, // 352.8(deg) -0.210289 - -6721, // 352.98(deg) -0.205125 - -6552, // 353.16(deg) -0.199955 - -6382, // 353.34(deg) -0.194778 - -6212, // 353.52(deg) -0.189594 - -6042, // 353.7(deg) -0.184403 - -5872, // 353.88(deg) -0.179207 - -5701, // 354.06(deg) -0.174003 - -5531, // 354.24(deg) -0.168794 - -5360, // 354.42(deg) -0.163579 - -5189, // 354.6(deg) -0.158359 - -5017, // 354.78(deg) -0.153133 - -4846, // 354.96(deg) -0.147901 - -4674, // 355.14(deg) -0.142664 - -4503, // 355.32(deg) -0.137423 - -4331, // 355.5(deg) -0.132177 - -4159, // 355.68(deg) -0.126926 - -3986, // 355.86(deg) -0.121670 - -3814, // 356.04(deg) -0.116411 - -3642, // 356.22(deg) -0.111147 - -3469, // 356.4(deg) -0.105880 - -3296, // 356.58(deg) -0.100608 - -3123, // 356.76(deg) -0.095334 - -2950, // 356.94(deg) -0.090056 - -2777, // 357.12(deg) -0.084775 - -2604, // 357.3(deg) -0.079491 - -2431, // 357.48(deg) -0.074204 - -2258, // 357.66(deg) -0.068914 - -2084, // 357.84(deg) -0.063622 - -1911, // 358.02(deg) -0.058328 - -1737, // 358.2(deg) -0.053032 - -1564, // 358.38(deg) -0.047734 - -1390, // 358.56(deg) -0.042435 - -1216, // 358.74(deg) -0.037134 - -1043, // 358.92(deg) -0.031831 - -869, // 359.1(deg) -0.026528 - -695, // 359.28(deg) -0.021223 - -521, // 359.46(deg) -0.015918 - -347, // 359.64(deg) -0.010612 - -173, // 359.82(deg) -0.005306 + 0, // 0(deg) 0.000000 + 173, // 0.18(deg) 0.005306 + 347, // 0.36(deg) 0.010612 + 521, // 0.54(deg) 0.015918 + 695, // 0.72(deg) 0.021223 + 869, // 0.9(deg) 0.026528 + 1043, // 1.08(deg) 0.031831 + 1216, // 1.26(deg) 0.037134 + 1390, // 1.44(deg) 0.042435 + 1564, // 1.62(deg) 0.047734 + 1737, // 1.8(deg) 0.053032 + 1911, // 1.98(deg) 0.058328 + 2084, // 2.16(deg) 0.063622 + 2258, // 2.34(deg) 0.068914 + 2431, // 2.52(deg) 0.074204 + 2604, // 2.7(deg) 0.079491 + 2777, // 2.88(deg) 0.084775 + 2950, // 3.06(deg) 0.090056 + 3123, // 3.24(deg) 0.095334 + 3296, // 3.42(deg) 0.100608 + 3469, // 3.6(deg) 0.105880 + 3642, // 3.78(deg) 0.111147 + 3814, // 3.96(deg) 0.116411 + 3986, // 4.14(deg) 0.121670 + 4159, // 4.32(deg) 0.126926 + 4331, // 4.5(deg) 0.132177 + 4503, // 4.68(deg) 0.137423 + 4674, // 4.86(deg) 0.142664 + 4846, // 5.04(deg) 0.147901 + 5017, // 5.22(deg) 0.153133 + 5189, // 5.4(deg) 0.158359 + 5360, // 5.58(deg) 0.163579 + 5531, // 5.76(deg) 0.168794 + 5701, // 5.94(deg) 0.174003 + 5872, // 6.12(deg) 0.179207 + 6042, // 6.3(deg) 0.184403 + 6212, // 6.48(deg) 0.189594 + 6382, // 6.66(deg) 0.194778 + 6552, // 6.84(deg) 0.199955 + 6721, // 7.02(deg) 0.205125 + 6890, // 7.2(deg) 0.210289 + 7059, // 7.38(deg) 0.215445 + 7228, // 7.56(deg) 0.220593 + 7396, // 7.74(deg) 0.225734 + 7565, // 7.92(deg) 0.230867 + 7732, // 8.1(deg) 0.235992 + 7900, // 8.28(deg) 0.241109 + 8068, // 8.46(deg) 0.246218 + 8235, // 8.64(deg) 0.251318 + 8402, // 8.82(deg) 0.256410 + 8568, // 9(deg) 0.261493 + 8734, // 9.18(deg) 0.266567 + 8900, // 9.36(deg) 0.271631 + 9066, // 9.54(deg) 0.276687 + 9231, // 9.72(deg) 0.281733 + 9396, // 9.9(deg) 0.286769 + 9561, // 10.08(deg) 0.291795 + 9725, // 10.26(deg) 0.296812 + 9889, // 10.44(deg) 0.301818 + 10053, // 10.62(deg) 0.306814 + 10217, // 10.8(deg) 0.311800 + 10380, // 10.98(deg) 0.316775 + 10542, // 11.16(deg) 0.321739 + 10705, // 11.34(deg) 0.326692 + 10866, // 11.52(deg) 0.331634 + 11028, // 11.7(deg) 0.336565 + 11189, // 11.88(deg) 0.341484 + 11350, // 12.06(deg) 0.346392 + 11511, // 12.24(deg) 0.351288 + 11671, // 12.42(deg) 0.356172 + 11830, // 12.6(deg) 0.361044 + 11989, // 12.78(deg) 0.365904 + 12148, // 12.96(deg) 0.370752 + 12307, // 13.14(deg) 0.375587 + 12465, // 13.32(deg) 0.380409 + 12622, // 13.5(deg) 0.385219 + 12780, // 13.68(deg) 0.390016 + 12936, // 13.86(deg) 0.394799 + 13093, // 14.04(deg) 0.399569 + 13248, // 14.22(deg) 0.404326 + 13404, // 14.4(deg) 0.409070 + 13559, // 14.58(deg) 0.413799 + 13713, // 14.76(deg) 0.418515 + 13867, // 14.94(deg) 0.423217 + 14021, // 15.12(deg) 0.427905 + 14174, // 15.3(deg) 0.432579 + 14327, // 15.48(deg) 0.437238 + 14479, // 15.66(deg) 0.441882 + 14631, // 15.84(deg) 0.446512 + 14782, // 16.02(deg) 0.451127 + 14933, // 16.2(deg) 0.455728 + 15083, // 16.38(deg) 0.460313 + 15233, // 16.56(deg) 0.464883 + 15382, // 16.74(deg) 0.469437 + 15531, // 16.92(deg) 0.473977 + 15679, // 17.1(deg) 0.478500 + 15827, // 17.28(deg) 0.483008 + 15974, // 17.46(deg) 0.487500 + 16121, // 17.64(deg) 0.491976 + 16267, // 17.82(deg) 0.496436 + 16412, // 18(deg) 0.500880 + 16557, // 18.18(deg) 0.505307 + 16702, // 18.36(deg) 0.509718 + 16846, // 18.54(deg) 0.514112 + 16989, // 18.72(deg) 0.518490 + 17132, // 18.9(deg) 0.522851 + 17275, // 19.08(deg) 0.527195 + 17416, // 19.26(deg) 0.531521 + 17558, // 19.44(deg) 0.535831 + 17698, // 19.62(deg) 0.540123 + 17838, // 19.8(deg) 0.544398 + 17978, // 19.98(deg) 0.548656 + 18117, // 20.16(deg) 0.552896 + 18255, // 20.34(deg) 0.557118 + 18393, // 20.52(deg) 0.561322 + 18530, // 20.7(deg) 0.565509 + 18667, // 20.88(deg) 0.569677 + 18803, // 21.06(deg) 0.573827 + 18938, // 21.24(deg) 0.577959 + 19073, // 21.42(deg) 0.582073 + 19207, // 21.6(deg) 0.586168 + 19341, // 21.78(deg) 0.590245 + 19474, // 21.96(deg) 0.594303 + 19606, // 22.14(deg) 0.598342 + 19738, // 22.32(deg) 0.602362 + 19869, // 22.5(deg) 0.606364 + 19999, // 22.68(deg) 0.610346 + 20129, // 22.86(deg) 0.614310 + 20258, // 23.04(deg) 0.618254 + 20387, // 23.22(deg) 0.622179 + 20515, // 23.4(deg) 0.626085 + 20642, // 23.58(deg) 0.629971 + 20769, // 23.76(deg) 0.633838 + 20895, // 23.94(deg) 0.637685 + 21021, // 24.12(deg) 0.641512 + 21145, // 24.3(deg) 0.645320 + 21269, // 24.48(deg) 0.649108 + 21393, // 24.66(deg) 0.652876 + 21516, // 24.84(deg) 0.656624 + 21638, // 25.02(deg) 0.660352 + 21759, // 25.2(deg) 0.664059 + 21880, // 25.38(deg) 0.667747 + 22000, // 25.56(deg) 0.671414 + 22120, // 25.74(deg) 0.675061 + 22239, // 25.92(deg) 0.678688 + 22357, // 26.1(deg) 0.682294 + 22474, // 26.28(deg) 0.685879 + 22591, // 26.46(deg) 0.689444 + 22707, // 26.64(deg) 0.692988 + 22823, // 26.82(deg) 0.696512 + 22938, // 27(deg) 0.700015 + 23052, // 27.18(deg) 0.703497 + 23165, // 27.36(deg) 0.706958 + 23278, // 27.54(deg) 0.710398 + 23390, // 27.72(deg) 0.713817 + 23501, // 27.9(deg) 0.717215 + 23612, // 28.08(deg) 0.720592 + 23722, // 28.26(deg) 0.723948 + 23831, // 28.44(deg) 0.727283 + 23940, // 28.62(deg) 0.730596 + 24048, // 28.8(deg) 0.733889 + 24155, // 28.98(deg) 0.737159 + 24261, // 29.16(deg) 0.740409 + 24367, // 29.34(deg) 0.743637 + 24472, // 29.52(deg) 0.746844 + 24576, // 29.7(deg) 0.750029 + 24680, // 29.88(deg) 0.753193 + 24783, // 30.06(deg) 0.756336 + 24885, // 30.24(deg) 0.759456 + 24987, // 30.42(deg) 0.762555 + 25088, // 30.6(deg) 0.765633 + 25188, // 30.78(deg) 0.768689 + 25287, // 30.96(deg) 0.771723 + 25386, // 31.14(deg) 0.774736 + 25484, // 31.32(deg) 0.777727 + 25581, // 31.5(deg) 0.780696 + 25678, // 31.68(deg) 0.783643 + 25774, // 31.86(deg) 0.786569 + 25869, // 32.04(deg) 0.789472 + 25963, // 32.22(deg) 0.792354 + 26057, // 32.4(deg) 0.795214 + 26150, // 32.58(deg) 0.798053 + 26242, // 32.76(deg) 0.800869 + 26334, // 32.94(deg) 0.803664 + 26425, // 33.12(deg) 0.806437 + 26515, // 33.3(deg) 0.809188 + 26604, // 33.48(deg) 0.811917 + 26693, // 33.66(deg) 0.814624 + 26781, // 33.84(deg) 0.817309 + 26868, // 34.02(deg) 0.819973 + 26955, // 34.2(deg) 0.822614 + 27041, // 34.38(deg) 0.825234 + 27126, // 34.56(deg) 0.827832 + 27210, // 34.74(deg) 0.830408 + 27294, // 34.92(deg) 0.832962 + 27377, // 35.1(deg) 0.835494 + 27459, // 35.28(deg) 0.838005 + 27541, // 35.46(deg) 0.840493 + 27622, // 35.64(deg) 0.842960 + 27702, // 35.82(deg) 0.845405 + 27781, // 36(deg) 0.847828 + 27860, // 36.18(deg) 0.850230 + 27938, // 36.36(deg) 0.852610 + 28015, // 36.54(deg) 0.854967 + 28092, // 36.72(deg) 0.857304 + 28167, // 36.9(deg) 0.859618 + 28243, // 37.08(deg) 0.861911 + 28317, // 37.26(deg) 0.864182 + 28391, // 37.44(deg) 0.866432 + 28464, // 37.62(deg) 0.868660 + 28536, // 37.8(deg) 0.870867 + 28608, // 37.98(deg) 0.873052 + 28679, // 38.16(deg) 0.875215 + 28749, // 38.34(deg) 0.877357 + 28818, // 38.52(deg) 0.879478 + 28887, // 38.7(deg) 0.881577 + 28955, // 38.88(deg) 0.883655 + 29022, // 39.06(deg) 0.885711 + 29089, // 39.24(deg) 0.887746 + 29155, // 39.42(deg) 0.889760 + 29220, // 39.6(deg) 0.891753 + 29285, // 39.78(deg) 0.893725 + 29349, // 39.96(deg) 0.895675 + 29412, // 40.14(deg) 0.897605 + 29475, // 40.32(deg) 0.899513 + 29537, // 40.5(deg) 0.901401 + 29598, // 40.68(deg) 0.903268 + 29658, // 40.86(deg) 0.905113 + 29718, // 41.04(deg) 0.906938 + 29777, // 41.22(deg) 0.908742 + 29836, // 41.4(deg) 0.910526 + 29893, // 41.58(deg) 0.912289 + 29950, // 41.76(deg) 0.914031 + 30007, // 41.94(deg) 0.915753 + 30063, // 42.12(deg) 0.917454 + 30118, // 42.3(deg) 0.919135 + 30172, // 42.48(deg) 0.920796 + 30226, // 42.66(deg) 0.922436 + 30279, // 42.84(deg) 0.924056 + 30331, // 43.02(deg) 0.925656 + 30383, // 43.2(deg) 0.927236 + 30434, // 43.38(deg) 0.928795 + 30485, // 43.56(deg) 0.930335 + 30535, // 43.74(deg) 0.931855 + 30584, // 43.92(deg) 0.933356 + 30632, // 44.1(deg) 0.934836 + 30680, // 44.28(deg) 0.936297 + 30727, // 44.46(deg) 0.937738 + 30774, // 44.64(deg) 0.939160 + 30820, // 44.82(deg) 0.940562 + 30865, // 45(deg) 0.941945 + 30910, // 45.18(deg) 0.943309 + 30954, // 45.36(deg) 0.944654 + 30997, // 45.54(deg) 0.945979 + 31040, // 45.72(deg) 0.947286 + 31082, // 45.9(deg) 0.948573 + 31124, // 46.08(deg) 0.949842 + 31165, // 46.26(deg) 0.951092 + 31205, // 46.44(deg) 0.952323 + 31245, // 46.62(deg) 0.953536 + 31284, // 46.8(deg) 0.954730 + 31323, // 46.98(deg) 0.955906 + 31361, // 47.16(deg) 0.957063 + 31398, // 47.34(deg) 0.958202 + 31435, // 47.52(deg) 0.959323 + 31471, // 47.7(deg) 0.960426 + 31506, // 47.88(deg) 0.961512 + 31541, // 48.06(deg) 0.962579 + 31576, // 48.24(deg) 0.963628 + 31609, // 48.42(deg) 0.964660 + 31643, // 48.6(deg) 0.965675 + 31675, // 48.78(deg) 0.966672 + 31707, // 48.96(deg) 0.967651 + 31739, // 49.14(deg) 0.968613 + 31770, // 49.32(deg) 0.969559 + 31800, // 49.5(deg) 0.970487 + 31830, // 49.68(deg) 0.971398 + 31860, // 49.86(deg) 0.972292 + 31888, // 50.04(deg) 0.973170 + 31917, // 50.22(deg) 0.974031 + 31944, // 50.4(deg) 0.974875 + 31971, // 50.58(deg) 0.975703 + 31998, // 50.76(deg) 0.976515 + 32024, // 50.94(deg) 0.977310 + 32050, // 51.12(deg) 0.978090 + 32075, // 51.3(deg) 0.978853 + 32099, // 51.48(deg) 0.979601 + 32123, // 51.66(deg) 0.980333 + 32147, // 51.84(deg) 0.981049 + 32169, // 52.02(deg) 0.981750 + 32192, // 52.2(deg) 0.982435 + 32214, // 52.38(deg) 0.983105 + 32235, // 52.56(deg) 0.983760 + 32256, // 52.74(deg) 0.984400 + 32277, // 52.92(deg) 0.985025 + 32297, // 53.1(deg) 0.985635 + 32316, // 53.28(deg) 0.986230 + 32335, // 53.46(deg) 0.986811 + 32354, // 53.64(deg) 0.987377 + 32372, // 53.82(deg) 0.987929 + 32390, // 54(deg) 0.988467 + 32407, // 54.18(deg) 0.988990 + 32423, // 54.36(deg) 0.989500 + 32440, // 54.54(deg) 0.989995 + 32455, // 54.72(deg) 0.990477 + 32471, // 54.9(deg) 0.990946 + 32486, // 55.08(deg) 0.991400 + 32500, // 55.26(deg) 0.991842 + 32514, // 55.44(deg) 0.992270 + 32528, // 55.62(deg) 0.992685 + 32541, // 55.8(deg) 0.993087 + 32554, // 55.98(deg) 0.993476 + 32566, // 56.16(deg) 0.993853 + 32578, // 56.34(deg) 0.994217 + 32590, // 56.52(deg) 0.994568 + 32601, // 56.7(deg) 0.994907 + 32611, // 56.88(deg) 0.995234 + 32622, // 57.06(deg) 0.995548 + 32632, // 57.24(deg) 0.995851 + 32641, // 57.42(deg) 0.996142 + 32650, // 57.6(deg) 0.996421 + 32659, // 57.78(deg) 0.996688 + 32667, // 57.96(deg) 0.996944 + 32675, // 58.14(deg) 0.997189 + 32683, // 58.32(deg) 0.997422 + 32690, // 58.5(deg) 0.997645 + 32697, // 58.68(deg) 0.997856 + 32704, // 58.86(deg) 0.998057 + 32710, // 59.04(deg) 0.998246 + 32716, // 59.22(deg) 0.998426 + 32721, // 59.4(deg) 0.998595 + 32727, // 59.58(deg) 0.998753 + 32732, // 59.76(deg) 0.998902 + 32736, // 59.94(deg) 0.999040 + 32740, // 60.12(deg) 0.999168 + 32744, // 60.3(deg) 0.999287 + 32748, // 60.48(deg) 0.999396 + 32751, // 60.66(deg) 0.999496 + 32754, // 60.84(deg) 0.999586 + 32757, // 61.02(deg) 0.999667 + 32759, // 61.2(deg) 0.999739 + 32761, // 61.38(deg) 0.999801 + 32763, // 61.56(deg) 0.999855 + 32764, // 61.74(deg) 0.999901 + 32765, // 61.92(deg) 0.999937 + 32766, // 62.1(deg) 0.999966 + 32767, // 62.28(deg) 0.999985 + 32767, // 62.46(deg) 0.999997 + 32767, // 62.64(deg) 1.000001 + 32767, // 62.82(deg) 0.999996 + 32767, // 63(deg) 0.999984 + 32766, // 63.18(deg) 0.999965 + 32765, // 63.36(deg) 0.999937 + 32764, // 63.54(deg) 0.999903 + 32763, // 63.72(deg) 0.999861 + 32761, // 63.9(deg) 0.999812 + 32759, // 64.08(deg) 0.999756 + 32757, // 64.26(deg) 0.999693 + 32755, // 64.44(deg) 0.999623 + 32753, // 64.62(deg) 0.999546 + 32750, // 64.8(deg) 0.999464 + 32747, // 64.98(deg) 0.999374 + 32744, // 65.16(deg) 0.999279 + 32741, // 65.34(deg) 0.999177 + 32737, // 65.52(deg) 0.999070 + 32733, // 65.7(deg) 0.998957 + 32729, // 65.88(deg) 0.998837 + 32725, // 66.06(deg) 0.998713 + 32721, // 66.24(deg) 0.998583 + 32717, // 66.42(deg) 0.998447 + 32712, // 66.6(deg) 0.998307 + 32707, // 66.78(deg) 0.998161 + 32702, // 66.96(deg) 0.998010 + 32697, // 67.14(deg) 0.997855 + 32692, // 67.32(deg) 0.997694 + 32687, // 67.5(deg) 0.997530 + 32681, // 67.68(deg) 0.997360 + 32675, // 67.86(deg) 0.997187 + 32669, // 68.04(deg) 0.997009 + 32664, // 68.22(deg) 0.996827 + 32657, // 68.4(deg) 0.996641 + 32651, // 68.58(deg) 0.996452 + 32645, // 68.76(deg) 0.996258 + 32638, // 68.94(deg) 0.996061 + 32632, // 69.12(deg) 0.995861 + 32625, // 69.3(deg) 0.995657 + 32618, // 69.48(deg) 0.995450 + 32612, // 69.66(deg) 0.995240 + 32605, // 69.84(deg) 0.995027 + 32597, // 70.02(deg) 0.994811 + 32590, // 70.2(deg) 0.994592 + 32583, // 70.38(deg) 0.994371 + 32576, // 70.56(deg) 0.994147 + 32568, // 70.74(deg) 0.993920 + 32561, // 70.92(deg) 0.993692 + 32553, // 71.1(deg) 0.993461 + 32546, // 71.28(deg) 0.993228 + 32538, // 71.46(deg) 0.992993 + 32530, // 71.64(deg) 0.992756 + 32522, // 71.82(deg) 0.992518 + 32514, // 72(deg) 0.992278 + 32507, // 72.18(deg) 0.992036 + 32499, // 72.36(deg) 0.991793 + 32491, // 72.54(deg) 0.991549 + 32483, // 72.72(deg) 0.991304 + 32474, // 72.9(deg) 0.991057 + 32466, // 73.08(deg) 0.990810 + 32458, // 73.26(deg) 0.990561 + 32450, // 73.44(deg) 0.990312 + 32442, // 73.62(deg) 0.990062 + 32434, // 73.8(deg) 0.989812 + 32425, // 73.98(deg) 0.989561 + 32417, // 74.16(deg) 0.989310 + 32409, // 74.34(deg) 0.989059 + 32401, // 74.52(deg) 0.988807 + 32392, // 74.7(deg) 0.988556 + 32384, // 74.88(deg) 0.988304 + 32376, // 75.06(deg) 0.988053 + 32368, // 75.24(deg) 0.987802 + 32360, // 75.42(deg) 0.987551 + 32351, // 75.6(deg) 0.987300 + 32343, // 75.78(deg) 0.987051 + 32335, // 75.96(deg) 0.986801 + 32327, // 76.14(deg) 0.986553 + 32319, // 76.32(deg) 0.986305 + 32311, // 76.5(deg) 0.986058 + 32303, // 76.68(deg) 0.985813 + 32295, // 76.86(deg) 0.985568 + 32287, // 77.04(deg) 0.985324 + 32279, // 77.22(deg) 0.985082 + 32271, // 77.4(deg) 0.984841 + 32263, // 77.58(deg) 0.984601 + 32255, // 77.76(deg) 0.984363 + 32247, // 77.94(deg) 0.984127 + 32240, // 78.12(deg) 0.983892 + 32232, // 78.3(deg) 0.983659 + 32224, // 78.48(deg) 0.983427 + 32217, // 78.66(deg) 0.983198 + 32209, // 78.84(deg) 0.982971 + 32202, // 79.02(deg) 0.982745 + 32195, // 79.2(deg) 0.982522 + 32188, // 79.38(deg) 0.982301 + 32180, // 79.56(deg) 0.982082 + 32173, // 79.74(deg) 0.981866 + 32166, // 79.92(deg) 0.981652 + 32159, // 80.1(deg) 0.981440 + 32152, // 80.28(deg) 0.981231 + 32146, // 80.46(deg) 0.981025 + 32139, // 80.64(deg) 0.980821 + 32132, // 80.82(deg) 0.980620 + 32126, // 81(deg) 0.980422 + 32120, // 81.18(deg) 0.980227 + 32113, // 81.36(deg) 0.980035 + 32107, // 81.54(deg) 0.979845 + 32101, // 81.72(deg) 0.979659 + 32095, // 81.9(deg) 0.979476 + 32089, // 82.08(deg) 0.979296 + 32083, // 82.26(deg) 0.979120 + 32078, // 82.44(deg) 0.978946 + 32072, // 82.62(deg) 0.978776 + 32067, // 82.8(deg) 0.978609 + 32061, // 82.98(deg) 0.978446 + 32056, // 83.16(deg) 0.978286 + 32051, // 83.34(deg) 0.978130 + 32046, // 83.52(deg) 0.977978 + 32041, // 83.7(deg) 0.977829 + 32036, // 83.88(deg) 0.977683 + 32032, // 84.06(deg) 0.977542 + 32027, // 84.24(deg) 0.977404 + 32023, // 84.42(deg) 0.977270 + 32018, // 84.6(deg) 0.977140 + 32014, // 84.78(deg) 0.977014 + 32010, // 84.96(deg) 0.976891 + 32006, // 85.14(deg) 0.976773 + 32003, // 85.32(deg) 0.976659 + 31999, // 85.5(deg) 0.976548 + 31996, // 85.68(deg) 0.976442 + 31992, // 85.86(deg) 0.976340 + 31989, // 86.04(deg) 0.976242 + 31986, // 86.22(deg) 0.976148 + 31983, // 86.4(deg) 0.976058 + 31980, // 86.58(deg) 0.975973 + 31978, // 86.76(deg) 0.975891 + 31975, // 86.94(deg) 0.975814 + 31973, // 87.12(deg) 0.975742 + 31970, // 87.3(deg) 0.975673 + 31968, // 87.48(deg) 0.975609 + 31966, // 87.66(deg) 0.975549 + 31964, // 87.84(deg) 0.975494 + 31963, // 88.02(deg) 0.975443 + 31961, // 88.2(deg) 0.975396 + 31960, // 88.38(deg) 0.975354 + 31959, // 88.56(deg) 0.975316 + 31958, // 88.74(deg) 0.975283 + 31957, // 88.92(deg) 0.975254 + 31956, // 89.1(deg) 0.975229 + 31955, // 89.28(deg) 0.975209 + 31955, // 89.46(deg) 0.975194 + 31954, // 89.64(deg) 0.975182 + 31954, // 89.82(deg) 0.975176 + 31954, // 90(deg) 0.975174 + 31954, // 90.18(deg) 0.975176 + 31954, // 90.36(deg) 0.975182 + 31955, // 90.54(deg) 0.975194 + 31955, // 90.72(deg) 0.975209 + 31956, // 90.9(deg) 0.975229 + 31957, // 91.08(deg) 0.975254 + 31958, // 91.26(deg) 0.975283 + 31959, // 91.44(deg) 0.975316 + 31960, // 91.62(deg) 0.975354 + 31961, // 91.8(deg) 0.975396 + 31963, // 91.98(deg) 0.975443 + 31964, // 92.16(deg) 0.975494 + 31966, // 92.34(deg) 0.975549 + 31968, // 92.52(deg) 0.975609 + 31970, // 92.7(deg) 0.975673 + 31973, // 92.88(deg) 0.975742 + 31975, // 93.06(deg) 0.975814 + 31978, // 93.24(deg) 0.975891 + 31980, // 93.42(deg) 0.975973 + 31983, // 93.6(deg) 0.976058 + 31986, // 93.78(deg) 0.976148 + 31989, // 93.96(deg) 0.976242 + 31992, // 94.14(deg) 0.976340 + 31996, // 94.32(deg) 0.976442 + 31999, // 94.5(deg) 0.976548 + 32003, // 94.68(deg) 0.976659 + 32006, // 94.86(deg) 0.976773 + 32010, // 95.04(deg) 0.976891 + 32014, // 95.22(deg) 0.977014 + 32018, // 95.4(deg) 0.977140 + 32023, // 95.58(deg) 0.977270 + 32027, // 95.76(deg) 0.977404 + 32032, // 95.94(deg) 0.977542 + 32036, // 96.12(deg) 0.977683 + 32041, // 96.3(deg) 0.977829 + 32046, // 96.48(deg) 0.977978 + 32051, // 96.66(deg) 0.978130 + 32056, // 96.84(deg) 0.978286 + 32061, // 97.02(deg) 0.978446 + 32067, // 97.2(deg) 0.978609 + 32072, // 97.38(deg) 0.978776 + 32078, // 97.56(deg) 0.978946 + 32083, // 97.74(deg) 0.979120 + 32089, // 97.92(deg) 0.979296 + 32095, // 98.1(deg) 0.979476 + 32101, // 98.28(deg) 0.979659 + 32107, // 98.46(deg) 0.979845 + 32113, // 98.64(deg) 0.980035 + 32120, // 98.82(deg) 0.980227 + 32126, // 99(deg) 0.980422 + 32132, // 99.18(deg) 0.980620 + 32139, // 99.36(deg) 0.980821 + 32146, // 99.54(deg) 0.981025 + 32152, // 99.72(deg) 0.981231 + 32159, // 99.9(deg) 0.981440 + 32166, // 100.08(deg) 0.981652 + 32173, // 100.26(deg) 0.981866 + 32180, // 100.44(deg) 0.982082 + 32188, // 100.62(deg) 0.982301 + 32195, // 100.8(deg) 0.982522 + 32202, // 100.98(deg) 0.982745 + 32209, // 101.16(deg) 0.982971 + 32217, // 101.34(deg) 0.983198 + 32224, // 101.52(deg) 0.983427 + 32232, // 101.7(deg) 0.983659 + 32240, // 101.88(deg) 0.983892 + 32247, // 102.06(deg) 0.984127 + 32255, // 102.24(deg) 0.984363 + 32263, // 102.42(deg) 0.984601 + 32271, // 102.6(deg) 0.984841 + 32279, // 102.78(deg) 0.985082 + 32287, // 102.96(deg) 0.985324 + 32295, // 103.14(deg) 0.985568 + 32303, // 103.32(deg) 0.985813 + 32311, // 103.5(deg) 0.986058 + 32319, // 103.68(deg) 0.986305 + 32327, // 103.86(deg) 0.986553 + 32335, // 104.04(deg) 0.986801 + 32343, // 104.22(deg) 0.987051 + 32351, // 104.4(deg) 0.987300 + 32360, // 104.58(deg) 0.987551 + 32368, // 104.76(deg) 0.987802 + 32376, // 104.94(deg) 0.988053 + 32384, // 105.12(deg) 0.988304 + 32392, // 105.3(deg) 0.988556 + 32401, // 105.48(deg) 0.988807 + 32409, // 105.66(deg) 0.989059 + 32417, // 105.84(deg) 0.989310 + 32425, // 106.02(deg) 0.989561 + 32434, // 106.2(deg) 0.989812 + 32442, // 106.38(deg) 0.990062 + 32450, // 106.56(deg) 0.990312 + 32458, // 106.74(deg) 0.990561 + 32466, // 106.92(deg) 0.990810 + 32474, // 107.1(deg) 0.991057 + 32483, // 107.28(deg) 0.991304 + 32491, // 107.46(deg) 0.991549 + 32499, // 107.64(deg) 0.991793 + 32507, // 107.82(deg) 0.992036 + 32514, // 108(deg) 0.992278 + 32522, // 108.18(deg) 0.992518 + 32530, // 108.36(deg) 0.992756 + 32538, // 108.54(deg) 0.992993 + 32546, // 108.72(deg) 0.993228 + 32553, // 108.9(deg) 0.993461 + 32561, // 109.08(deg) 0.993692 + 32568, // 109.26(deg) 0.993920 + 32576, // 109.44(deg) 0.994147 + 32583, // 109.62(deg) 0.994371 + 32590, // 109.8(deg) 0.994592 + 32597, // 109.98(deg) 0.994811 + 32605, // 110.16(deg) 0.995027 + 32612, // 110.34(deg) 0.995240 + 32618, // 110.52(deg) 0.995450 + 32625, // 110.7(deg) 0.995657 + 32632, // 110.88(deg) 0.995861 + 32638, // 111.06(deg) 0.996061 + 32645, // 111.24(deg) 0.996258 + 32651, // 111.42(deg) 0.996452 + 32657, // 111.6(deg) 0.996641 + 32664, // 111.78(deg) 0.996827 + 32669, // 111.96(deg) 0.997009 + 32675, // 112.14(deg) 0.997187 + 32681, // 112.32(deg) 0.997360 + 32687, // 112.5(deg) 0.997530 + 32692, // 112.68(deg) 0.997694 + 32697, // 112.86(deg) 0.997855 + 32702, // 113.04(deg) 0.998010 + 32707, // 113.22(deg) 0.998161 + 32712, // 113.4(deg) 0.998307 + 32717, // 113.58(deg) 0.998447 + 32721, // 113.76(deg) 0.998583 + 32725, // 113.94(deg) 0.998713 + 32729, // 114.12(deg) 0.998837 + 32733, // 114.3(deg) 0.998957 + 32737, // 114.48(deg) 0.999070 + 32741, // 114.66(deg) 0.999177 + 32744, // 114.84(deg) 0.999279 + 32747, // 115.02(deg) 0.999374 + 32750, // 115.2(deg) 0.999464 + 32753, // 115.38(deg) 0.999546 + 32755, // 115.56(deg) 0.999623 + 32757, // 115.74(deg) 0.999693 + 32759, // 115.92(deg) 0.999756 + 32761, // 116.1(deg) 0.999812 + 32763, // 116.28(deg) 0.999861 + 32764, // 116.46(deg) 0.999903 + 32765, // 116.64(deg) 0.999937 + 32766, // 116.82(deg) 0.999965 + 32767, // 117(deg) 0.999984 + 32767, // 117.18(deg) 0.999996 + 32767, // 117.36(deg) 1.000001 + 32767, // 117.54(deg) 0.999997 + 32767, // 117.72(deg) 0.999985 + 32766, // 117.9(deg) 0.999966 + 32765, // 118.08(deg) 0.999937 + 32764, // 118.26(deg) 0.999901 + 32763, // 118.44(deg) 0.999855 + 32761, // 118.62(deg) 0.999801 + 32759, // 118.8(deg) 0.999739 + 32757, // 118.98(deg) 0.999667 + 32754, // 119.16(deg) 0.999586 + 32751, // 119.34(deg) 0.999496 + 32748, // 119.52(deg) 0.999396 + 32744, // 119.7(deg) 0.999287 + 32740, // 119.88(deg) 0.999168 + 32736, // 120.06(deg) 0.999040 + 32732, // 120.24(deg) 0.998902 + 32727, // 120.42(deg) 0.998753 + 32721, // 120.6(deg) 0.998595 + 32716, // 120.78(deg) 0.998426 + 32710, // 120.96(deg) 0.998246 + 32704, // 121.14(deg) 0.998057 + 32697, // 121.32(deg) 0.997856 + 32690, // 121.5(deg) 0.997645 + 32683, // 121.68(deg) 0.997422 + 32675, // 121.86(deg) 0.997189 + 32667, // 122.04(deg) 0.996944 + 32659, // 122.22(deg) 0.996688 + 32650, // 122.4(deg) 0.996421 + 32641, // 122.58(deg) 0.996142 + 32632, // 122.76(deg) 0.995851 + 32622, // 122.94(deg) 0.995548 + 32611, // 123.12(deg) 0.995234 + 32601, // 123.3(deg) 0.994907 + 32590, // 123.48(deg) 0.994568 + 32578, // 123.66(deg) 0.994217 + 32566, // 123.84(deg) 0.993853 + 32554, // 124.02(deg) 0.993476 + 32541, // 124.2(deg) 0.993087 + 32528, // 124.38(deg) 0.992685 + 32514, // 124.56(deg) 0.992270 + 32500, // 124.74(deg) 0.991842 + 32486, // 124.92(deg) 0.991400 + 32471, // 125.1(deg) 0.990946 + 32455, // 125.28(deg) 0.990477 + 32440, // 125.46(deg) 0.989995 + 32423, // 125.64(deg) 0.989500 + 32407, // 125.82(deg) 0.988990 + 32390, // 126(deg) 0.988467 + 32372, // 126.18(deg) 0.987929 + 32354, // 126.36(deg) 0.987377 + 32335, // 126.54(deg) 0.986811 + 32316, // 126.72(deg) 0.986230 + 32297, // 126.9(deg) 0.985635 + 32277, // 127.08(deg) 0.985025 + 32256, // 127.26(deg) 0.984400 + 32235, // 127.44(deg) 0.983760 + 32214, // 127.62(deg) 0.983105 + 32192, // 127.8(deg) 0.982435 + 32169, // 127.98(deg) 0.981750 + 32147, // 128.16(deg) 0.981049 + 32123, // 128.34(deg) 0.980333 + 32099, // 128.52(deg) 0.979601 + 32075, // 128.7(deg) 0.978853 + 32050, // 128.88(deg) 0.978090 + 32024, // 129.06(deg) 0.977310 + 31998, // 129.24(deg) 0.976515 + 31971, // 129.42(deg) 0.975703 + 31944, // 129.6(deg) 0.974875 + 31917, // 129.78(deg) 0.974031 + 31888, // 129.96(deg) 0.973170 + 31860, // 130.14(deg) 0.972292 + 31830, // 130.32(deg) 0.971398 + 31800, // 130.5(deg) 0.970487 + 31770, // 130.68(deg) 0.969559 + 31739, // 130.86(deg) 0.968613 + 31707, // 131.04(deg) 0.967651 + 31675, // 131.22(deg) 0.966672 + 31643, // 131.4(deg) 0.965675 + 31609, // 131.58(deg) 0.964660 + 31576, // 131.76(deg) 0.963628 + 31541, // 131.94(deg) 0.962579 + 31506, // 132.12(deg) 0.961512 + 31471, // 132.3(deg) 0.960426 + 31435, // 132.48(deg) 0.959323 + 31398, // 132.66(deg) 0.958202 + 31361, // 132.84(deg) 0.957063 + 31323, // 133.02(deg) 0.955906 + 31284, // 133.2(deg) 0.954730 + 31245, // 133.38(deg) 0.953536 + 31205, // 133.56(deg) 0.952323 + 31165, // 133.74(deg) 0.951092 + 31124, // 133.92(deg) 0.949842 + 31082, // 134.1(deg) 0.948573 + 31040, // 134.28(deg) 0.947286 + 30997, // 134.46(deg) 0.945979 + 30954, // 134.64(deg) 0.944654 + 30910, // 134.82(deg) 0.943309 + 30865, // 135(deg) 0.941945 + 30820, // 135.18(deg) 0.940562 + 30774, // 135.36(deg) 0.939160 + 30727, // 135.54(deg) 0.937738 + 30680, // 135.72(deg) 0.936297 + 30632, // 135.9(deg) 0.934836 + 30584, // 136.08(deg) 0.933356 + 30535, // 136.26(deg) 0.931855 + 30485, // 136.44(deg) 0.930335 + 30434, // 136.62(deg) 0.928795 + 30383, // 136.8(deg) 0.927236 + 30331, // 136.98(deg) 0.925656 + 30279, // 137.16(deg) 0.924056 + 30226, // 137.34(deg) 0.922436 + 30172, // 137.52(deg) 0.920796 + 30118, // 137.7(deg) 0.919135 + 30063, // 137.88(deg) 0.917454 + 30007, // 138.06(deg) 0.915753 + 29950, // 138.24(deg) 0.914031 + 29893, // 138.42(deg) 0.912289 + 29836, // 138.6(deg) 0.910526 + 29777, // 138.78(deg) 0.908742 + 29718, // 138.96(deg) 0.906938 + 29658, // 139.14(deg) 0.905113 + 29598, // 139.32(deg) 0.903268 + 29537, // 139.5(deg) 0.901401 + 29475, // 139.68(deg) 0.899513 + 29412, // 139.86(deg) 0.897605 + 29349, // 140.04(deg) 0.895675 + 29285, // 140.22(deg) 0.893725 + 29220, // 140.4(deg) 0.891753 + 29155, // 140.58(deg) 0.889760 + 29089, // 140.76(deg) 0.887746 + 29022, // 140.94(deg) 0.885711 + 28955, // 141.12(deg) 0.883655 + 28887, // 141.3(deg) 0.881577 + 28818, // 141.48(deg) 0.879478 + 28749, // 141.66(deg) 0.877357 + 28679, // 141.84(deg) 0.875215 + 28608, // 142.02(deg) 0.873052 + 28536, // 142.2(deg) 0.870867 + 28464, // 142.38(deg) 0.868660 + 28391, // 142.56(deg) 0.866432 + 28317, // 142.74(deg) 0.864182 + 28243, // 142.92(deg) 0.861911 + 28167, // 143.1(deg) 0.859618 + 28092, // 143.28(deg) 0.857304 + 28015, // 143.46(deg) 0.854967 + 27938, // 143.64(deg) 0.852610 + 27860, // 143.82(deg) 0.850230 + 27781, // 144(deg) 0.847828 + 27702, // 144.18(deg) 0.845405 + 27622, // 144.36(deg) 0.842960 + 27541, // 144.54(deg) 0.840493 + 27459, // 144.72(deg) 0.838005 + 27377, // 144.9(deg) 0.835494 + 27294, // 145.08(deg) 0.832962 + 27210, // 145.26(deg) 0.830408 + 27126, // 145.44(deg) 0.827832 + 27041, // 145.62(deg) 0.825234 + 26955, // 145.8(deg) 0.822614 + 26868, // 145.98(deg) 0.819973 + 26781, // 146.16(deg) 0.817309 + 26693, // 146.34(deg) 0.814624 + 26604, // 146.52(deg) 0.811917 + 26515, // 146.7(deg) 0.809188 + 26425, // 146.88(deg) 0.806437 + 26334, // 147.06(deg) 0.803664 + 26242, // 147.24(deg) 0.800869 + 26150, // 147.42(deg) 0.798053 + 26057, // 147.6(deg) 0.795214 + 25963, // 147.78(deg) 0.792354 + 25869, // 147.96(deg) 0.789472 + 25774, // 148.14(deg) 0.786569 + 25678, // 148.32(deg) 0.783643 + 25581, // 148.5(deg) 0.780696 + 25484, // 148.68(deg) 0.777727 + 25386, // 148.86(deg) 0.774736 + 25287, // 149.04(deg) 0.771723 + 25188, // 149.22(deg) 0.768689 + 25088, // 149.4(deg) 0.765633 + 24987, // 149.58(deg) 0.762555 + 24885, // 149.76(deg) 0.759456 + 24783, // 149.94(deg) 0.756336 + 24680, // 150.12(deg) 0.753193 + 24576, // 150.3(deg) 0.750029 + 24472, // 150.48(deg) 0.746844 + 24367, // 150.66(deg) 0.743637 + 24261, // 150.84(deg) 0.740409 + 24155, // 151.02(deg) 0.737159 + 24048, // 151.2(deg) 0.733889 + 23940, // 151.38(deg) 0.730596 + 23831, // 151.56(deg) 0.727283 + 23722, // 151.74(deg) 0.723948 + 23612, // 151.92(deg) 0.720592 + 23501, // 152.1(deg) 0.717215 + 23390, // 152.28(deg) 0.713817 + 23278, // 152.46(deg) 0.710398 + 23165, // 152.64(deg) 0.706958 + 23052, // 152.82(deg) 0.703497 + 22938, // 153(deg) 0.700015 + 22823, // 153.18(deg) 0.696512 + 22707, // 153.36(deg) 0.692988 + 22591, // 153.54(deg) 0.689444 + 22474, // 153.72(deg) 0.685879 + 22357, // 153.9(deg) 0.682294 + 22239, // 154.08(deg) 0.678688 + 22120, // 154.26(deg) 0.675061 + 22000, // 154.44(deg) 0.671414 + 21880, // 154.62(deg) 0.667747 + 21759, // 154.8(deg) 0.664059 + 21638, // 154.98(deg) 0.660352 + 21516, // 155.16(deg) 0.656624 + 21393, // 155.34(deg) 0.652876 + 21269, // 155.52(deg) 0.649108 + 21145, // 155.7(deg) 0.645320 + 21021, // 155.88(deg) 0.641512 + 20895, // 156.06(deg) 0.637685 + 20769, // 156.24(deg) 0.633838 + 20642, // 156.42(deg) 0.629971 + 20515, // 156.6(deg) 0.626085 + 20387, // 156.78(deg) 0.622179 + 20258, // 156.96(deg) 0.618254 + 20129, // 157.14(deg) 0.614310 + 19999, // 157.32(deg) 0.610346 + 19869, // 157.5(deg) 0.606364 + 19738, // 157.68(deg) 0.602362 + 19606, // 157.86(deg) 0.598342 + 19474, // 158.04(deg) 0.594303 + 19341, // 158.22(deg) 0.590245 + 19207, // 158.4(deg) 0.586168 + 19073, // 158.58(deg) 0.582073 + 18938, // 158.76(deg) 0.577959 + 18803, // 158.94(deg) 0.573827 + 18667, // 159.12(deg) 0.569677 + 18530, // 159.3(deg) 0.565509 + 18393, // 159.48(deg) 0.561322 + 18255, // 159.66(deg) 0.557118 + 18117, // 159.84(deg) 0.552896 + 17978, // 160.02(deg) 0.548656 + 17838, // 160.2(deg) 0.544398 + 17698, // 160.38(deg) 0.540123 + 17558, // 160.56(deg) 0.535831 + 17416, // 160.74(deg) 0.531521 + 17275, // 160.92(deg) 0.527195 + 17132, // 161.1(deg) 0.522851 + 16989, // 161.28(deg) 0.518490 + 16846, // 161.46(deg) 0.514112 + 16702, // 161.64(deg) 0.509718 + 16557, // 161.82(deg) 0.505307 + 16412, // 162(deg) 0.500880 + 16267, // 162.18(deg) 0.496436 + 16121, // 162.36(deg) 0.491976 + 15974, // 162.54(deg) 0.487500 + 15827, // 162.72(deg) 0.483008 + 15679, // 162.9(deg) 0.478500 + 15531, // 163.08(deg) 0.473977 + 15382, // 163.26(deg) 0.469437 + 15233, // 163.44(deg) 0.464883 + 15083, // 163.62(deg) 0.460313 + 14933, // 163.8(deg) 0.455728 + 14782, // 163.98(deg) 0.451127 + 14631, // 164.16(deg) 0.446512 + 14479, // 164.34(deg) 0.441882 + 14327, // 164.52(deg) 0.437238 + 14174, // 164.7(deg) 0.432579 + 14021, // 164.88(deg) 0.427905 + 13867, // 165.06(deg) 0.423217 + 13713, // 165.24(deg) 0.418515 + 13559, // 165.42(deg) 0.413799 + 13404, // 165.6(deg) 0.409070 + 13248, // 165.78(deg) 0.404326 + 13093, // 165.96(deg) 0.399569 + 12936, // 166.14(deg) 0.394799 + 12780, // 166.32(deg) 0.390016 + 12622, // 166.5(deg) 0.385219 + 12465, // 166.68(deg) 0.380409 + 12307, // 166.86(deg) 0.375587 + 12148, // 167.04(deg) 0.370752 + 11989, // 167.22(deg) 0.365904 + 11830, // 167.4(deg) 0.361044 + 11671, // 167.58(deg) 0.356172 + 11511, // 167.76(deg) 0.351288 + 11350, // 167.94(deg) 0.346392 + 11189, // 168.12(deg) 0.341484 + 11028, // 168.3(deg) 0.336565 + 10866, // 168.48(deg) 0.331634 + 10705, // 168.66(deg) 0.326692 + 10542, // 168.84(deg) 0.321739 + 10380, // 169.02(deg) 0.316775 + 10217, // 169.2(deg) 0.311800 + 10053, // 169.38(deg) 0.306814 + 9889, // 169.56(deg) 0.301818 + 9725, // 169.74(deg) 0.296812 + 9561, // 169.92(deg) 0.291795 + 9396, // 170.1(deg) 0.286769 + 9231, // 170.28(deg) 0.281733 + 9066, // 170.46(deg) 0.276687 + 8900, // 170.64(deg) 0.271631 + 8734, // 170.82(deg) 0.266567 + 8568, // 171(deg) 0.261493 + 8402, // 171.18(deg) 0.256410 + 8235, // 171.36(deg) 0.251318 + 8068, // 171.54(deg) 0.246218 + 7900, // 171.72(deg) 0.241109 + 7732, // 171.9(deg) 0.235992 + 7565, // 172.08(deg) 0.230867 + 7396, // 172.26(deg) 0.225734 + 7228, // 172.44(deg) 0.220593 + 7059, // 172.62(deg) 0.215445 + 6890, // 172.8(deg) 0.210289 + 6721, // 172.98(deg) 0.205125 + 6552, // 173.16(deg) 0.199955 + 6382, // 173.34(deg) 0.194778 + 6212, // 173.52(deg) 0.189594 + 6042, // 173.7(deg) 0.184403 + 5872, // 173.88(deg) 0.179207 + 5701, // 174.06(deg) 0.174003 + 5531, // 174.24(deg) 0.168794 + 5360, // 174.42(deg) 0.163579 + 5189, // 174.6(deg) 0.158359 + 5017, // 174.78(deg) 0.153133 + 4846, // 174.96(deg) 0.147901 + 4674, // 175.14(deg) 0.142664 + 4503, // 175.32(deg) 0.137423 + 4331, // 175.5(deg) 0.132177 + 4159, // 175.68(deg) 0.126926 + 3986, // 175.86(deg) 0.121670 + 3814, // 176.04(deg) 0.116411 + 3642, // 176.22(deg) 0.111147 + 3469, // 176.4(deg) 0.105880 + 3296, // 176.58(deg) 0.100608 + 3123, // 176.76(deg) 0.095334 + 2950, // 176.94(deg) 0.090056 + 2777, // 177.12(deg) 0.084775 + 2604, // 177.3(deg) 0.079491 + 2431, // 177.48(deg) 0.074204 + 2258, // 177.66(deg) 0.068914 + 2084, // 177.84(deg) 0.063622 + 1911, // 178.02(deg) 0.058328 + 1737, // 178.2(deg) 0.053032 + 1564, // 178.38(deg) 0.047734 + 1390, // 178.56(deg) 0.042435 + 1216, // 178.74(deg) 0.037134 + 1043, // 178.92(deg) 0.031831 + 869, // 179.1(deg) 0.026528 + 695, // 179.28(deg) 0.021223 + 521, // 179.46(deg) 0.015918 + 347, // 179.64(deg) 0.010612 + 173, // 179.82(deg) 0.005306 + 0, // 180(deg) 0.000000 + -173, // 180.18(deg) -0.005306 + -347, // 180.36(deg) -0.010612 + -521, // 180.54(deg) -0.015918 + -695, // 180.72(deg) -0.021223 + -869, // 180.9(deg) -0.026528 + -1043, // 181.08(deg) -0.031831 + -1216, // 181.26(deg) -0.037134 + -1390, // 181.44(deg) -0.042435 + -1564, // 181.62(deg) -0.047734 + -1737, // 181.8(deg) -0.053032 + -1911, // 181.98(deg) -0.058328 + -2084, // 182.16(deg) -0.063622 + -2258, // 182.34(deg) -0.068914 + -2431, // 182.52(deg) -0.074204 + -2604, // 182.7(deg) -0.079491 + -2777, // 182.88(deg) -0.084775 + -2950, // 183.06(deg) -0.090056 + -3123, // 183.24(deg) -0.095334 + -3296, // 183.42(deg) -0.100608 + -3469, // 183.6(deg) -0.105880 + -3642, // 183.78(deg) -0.111147 + -3814, // 183.96(deg) -0.116411 + -3986, // 184.14(deg) -0.121670 + -4159, // 184.32(deg) -0.126926 + -4331, // 184.5(deg) -0.132177 + -4503, // 184.68(deg) -0.137423 + -4674, // 184.86(deg) -0.142664 + -4846, // 185.04(deg) -0.147901 + -5017, // 185.22(deg) -0.153133 + -5189, // 185.4(deg) -0.158359 + -5360, // 185.58(deg) -0.163579 + -5531, // 185.76(deg) -0.168794 + -5701, // 185.94(deg) -0.174003 + -5872, // 186.12(deg) -0.179207 + -6042, // 186.3(deg) -0.184403 + -6212, // 186.48(deg) -0.189594 + -6382, // 186.66(deg) -0.194778 + -6552, // 186.84(deg) -0.199955 + -6721, // 187.02(deg) -0.205125 + -6890, // 187.2(deg) -0.210289 + -7059, // 187.38(deg) -0.215445 + -7228, // 187.56(deg) -0.220593 + -7396, // 187.74(deg) -0.225734 + -7565, // 187.92(deg) -0.230867 + -7732, // 188.1(deg) -0.235992 + -7900, // 188.28(deg) -0.241109 + -8068, // 188.46(deg) -0.246218 + -8235, // 188.64(deg) -0.251318 + -8402, // 188.82(deg) -0.256410 + -8568, // 189(deg) -0.261493 + -8734, // 189.18(deg) -0.266567 + -8900, // 189.36(deg) -0.271631 + -9066, // 189.54(deg) -0.276687 + -9231, // 189.72(deg) -0.281733 + -9396, // 189.9(deg) -0.286769 + -9561, // 190.08(deg) -0.291795 + -9725, // 190.26(deg) -0.296812 + -9889, // 190.44(deg) -0.301818 + -10053, // 190.62(deg) -0.306814 + -10217, // 190.8(deg) -0.311800 + -10380, // 190.98(deg) -0.316775 + -10542, // 191.16(deg) -0.321739 + -10705, // 191.34(deg) -0.326692 + -10866, // 191.52(deg) -0.331634 + -11028, // 191.7(deg) -0.336565 + -11189, // 191.88(deg) -0.341484 + -11350, // 192.06(deg) -0.346392 + -11511, // 192.24(deg) -0.351288 + -11671, // 192.42(deg) -0.356172 + -11830, // 192.6(deg) -0.361044 + -11989, // 192.78(deg) -0.365904 + -12148, // 192.96(deg) -0.370752 + -12307, // 193.14(deg) -0.375587 + -12465, // 193.32(deg) -0.380409 + -12622, // 193.5(deg) -0.385219 + -12780, // 193.68(deg) -0.390016 + -12936, // 193.86(deg) -0.394799 + -13093, // 194.04(deg) -0.399569 + -13248, // 194.22(deg) -0.404326 + -13404, // 194.4(deg) -0.409070 + -13559, // 194.58(deg) -0.413799 + -13713, // 194.76(deg) -0.418515 + -13867, // 194.94(deg) -0.423217 + -14021, // 195.12(deg) -0.427905 + -14174, // 195.3(deg) -0.432579 + -14327, // 195.48(deg) -0.437238 + -14479, // 195.66(deg) -0.441882 + -14631, // 195.84(deg) -0.446512 + -14782, // 196.02(deg) -0.451127 + -14933, // 196.2(deg) -0.455728 + -15083, // 196.38(deg) -0.460313 + -15233, // 196.56(deg) -0.464883 + -15382, // 196.74(deg) -0.469437 + -15531, // 196.92(deg) -0.473977 + -15679, // 197.1(deg) -0.478500 + -15827, // 197.28(deg) -0.483008 + -15974, // 197.46(deg) -0.487500 + -16121, // 197.64(deg) -0.491976 + -16267, // 197.82(deg) -0.496436 + -16412, // 198(deg) -0.500880 + -16557, // 198.18(deg) -0.505307 + -16702, // 198.36(deg) -0.509718 + -16846, // 198.54(deg) -0.514112 + -16989, // 198.72(deg) -0.518490 + -17132, // 198.9(deg) -0.522851 + -17275, // 199.08(deg) -0.527195 + -17416, // 199.26(deg) -0.531521 + -17558, // 199.44(deg) -0.535831 + -17698, // 199.62(deg) -0.540123 + -17838, // 199.8(deg) -0.544398 + -17978, // 199.98(deg) -0.548656 + -18117, // 200.16(deg) -0.552896 + -18255, // 200.34(deg) -0.557118 + -18393, // 200.52(deg) -0.561322 + -18530, // 200.7(deg) -0.565509 + -18667, // 200.88(deg) -0.569677 + -18803, // 201.06(deg) -0.573827 + -18938, // 201.24(deg) -0.577959 + -19073, // 201.42(deg) -0.582073 + -19207, // 201.6(deg) -0.586168 + -19341, // 201.78(deg) -0.590245 + -19474, // 201.96(deg) -0.594303 + -19606, // 202.14(deg) -0.598342 + -19738, // 202.32(deg) -0.602362 + -19869, // 202.5(deg) -0.606364 + -19999, // 202.68(deg) -0.610346 + -20129, // 202.86(deg) -0.614310 + -20258, // 203.04(deg) -0.618254 + -20387, // 203.22(deg) -0.622179 + -20515, // 203.4(deg) -0.626085 + -20642, // 203.58(deg) -0.629971 + -20769, // 203.76(deg) -0.633838 + -20895, // 203.94(deg) -0.637685 + -21021, // 204.12(deg) -0.641512 + -21145, // 204.3(deg) -0.645320 + -21269, // 204.48(deg) -0.649108 + -21393, // 204.66(deg) -0.652876 + -21516, // 204.84(deg) -0.656624 + -21638, // 205.02(deg) -0.660352 + -21759, // 205.2(deg) -0.664059 + -21880, // 205.38(deg) -0.667747 + -22000, // 205.56(deg) -0.671414 + -22120, // 205.74(deg) -0.675061 + -22239, // 205.92(deg) -0.678688 + -22357, // 206.1(deg) -0.682294 + -22474, // 206.28(deg) -0.685879 + -22591, // 206.46(deg) -0.689444 + -22707, // 206.64(deg) -0.692988 + -22823, // 206.82(deg) -0.696512 + -22938, // 207(deg) -0.700015 + -23052, // 207.18(deg) -0.703497 + -23165, // 207.36(deg) -0.706958 + -23278, // 207.54(deg) -0.710398 + -23390, // 207.72(deg) -0.713817 + -23501, // 207.9(deg) -0.717215 + -23612, // 208.08(deg) -0.720592 + -23722, // 208.26(deg) -0.723948 + -23831, // 208.44(deg) -0.727283 + -23940, // 208.62(deg) -0.730596 + -24048, // 208.8(deg) -0.733889 + -24155, // 208.98(deg) -0.737159 + -24261, // 209.16(deg) -0.740409 + -24367, // 209.34(deg) -0.743637 + -24472, // 209.52(deg) -0.746844 + -24576, // 209.7(deg) -0.750029 + -24680, // 209.88(deg) -0.753193 + -24783, // 210.06(deg) -0.756336 + -24885, // 210.24(deg) -0.759456 + -24987, // 210.42(deg) -0.762555 + -25088, // 210.6(deg) -0.765633 + -25188, // 210.78(deg) -0.768689 + -25287, // 210.96(deg) -0.771723 + -25386, // 211.14(deg) -0.774736 + -25484, // 211.32(deg) -0.777727 + -25581, // 211.5(deg) -0.780696 + -25678, // 211.68(deg) -0.783643 + -25774, // 211.86(deg) -0.786569 + -25869, // 212.04(deg) -0.789472 + -25963, // 212.22(deg) -0.792354 + -26057, // 212.4(deg) -0.795214 + -26150, // 212.58(deg) -0.798053 + -26242, // 212.76(deg) -0.800869 + -26334, // 212.94(deg) -0.803664 + -26425, // 213.12(deg) -0.806437 + -26515, // 213.3(deg) -0.809188 + -26604, // 213.48(deg) -0.811917 + -26693, // 213.66(deg) -0.814624 + -26781, // 213.84(deg) -0.817309 + -26868, // 214.02(deg) -0.819973 + -26955, // 214.2(deg) -0.822614 + -27041, // 214.38(deg) -0.825234 + -27126, // 214.56(deg) -0.827832 + -27210, // 214.74(deg) -0.830408 + -27294, // 214.92(deg) -0.832962 + -27377, // 215.1(deg) -0.835494 + -27459, // 215.28(deg) -0.838005 + -27541, // 215.46(deg) -0.840493 + -27622, // 215.64(deg) -0.842960 + -27702, // 215.82(deg) -0.845405 + -27781, // 216(deg) -0.847828 + -27860, // 216.18(deg) -0.850230 + -27938, // 216.36(deg) -0.852610 + -28015, // 216.54(deg) -0.854967 + -28092, // 216.72(deg) -0.857304 + -28167, // 216.9(deg) -0.859618 + -28243, // 217.08(deg) -0.861911 + -28317, // 217.26(deg) -0.864182 + -28391, // 217.44(deg) -0.866432 + -28464, // 217.62(deg) -0.868660 + -28536, // 217.8(deg) -0.870867 + -28608, // 217.98(deg) -0.873052 + -28679, // 218.16(deg) -0.875215 + -28749, // 218.34(deg) -0.877357 + -28818, // 218.52(deg) -0.879478 + -28887, // 218.7(deg) -0.881577 + -28955, // 218.88(deg) -0.883655 + -29022, // 219.06(deg) -0.885711 + -29089, // 219.24(deg) -0.887746 + -29155, // 219.42(deg) -0.889760 + -29220, // 219.6(deg) -0.891753 + -29285, // 219.78(deg) -0.893725 + -29349, // 219.96(deg) -0.895675 + -29412, // 220.14(deg) -0.897605 + -29475, // 220.32(deg) -0.899513 + -29537, // 220.5(deg) -0.901401 + -29598, // 220.68(deg) -0.903268 + -29658, // 220.86(deg) -0.905113 + -29718, // 221.04(deg) -0.906938 + -29777, // 221.22(deg) -0.908742 + -29836, // 221.4(deg) -0.910526 + -29893, // 221.58(deg) -0.912289 + -29950, // 221.76(deg) -0.914031 + -30007, // 221.94(deg) -0.915753 + -30063, // 222.12(deg) -0.917454 + -30118, // 222.3(deg) -0.919135 + -30172, // 222.48(deg) -0.920796 + -30226, // 222.66(deg) -0.922436 + -30279, // 222.84(deg) -0.924056 + -30331, // 223.02(deg) -0.925656 + -30383, // 223.2(deg) -0.927236 + -30434, // 223.38(deg) -0.928795 + -30485, // 223.56(deg) -0.930335 + -30535, // 223.74(deg) -0.931855 + -30584, // 223.92(deg) -0.933356 + -30632, // 224.1(deg) -0.934836 + -30680, // 224.28(deg) -0.936297 + -30727, // 224.46(deg) -0.937738 + -30774, // 224.64(deg) -0.939160 + -30820, // 224.82(deg) -0.940562 + -30865, // 225(deg) -0.941945 + -30910, // 225.18(deg) -0.943309 + -30954, // 225.36(deg) -0.944654 + -30997, // 225.54(deg) -0.945979 + -31040, // 225.72(deg) -0.947286 + -31082, // 225.9(deg) -0.948573 + -31124, // 226.08(deg) -0.949842 + -31165, // 226.26(deg) -0.951092 + -31205, // 226.44(deg) -0.952323 + -31245, // 226.62(deg) -0.953536 + -31284, // 226.8(deg) -0.954730 + -31323, // 226.98(deg) -0.955906 + -31361, // 227.16(deg) -0.957063 + -31398, // 227.34(deg) -0.958202 + -31435, // 227.52(deg) -0.959323 + -31471, // 227.7(deg) -0.960426 + -31506, // 227.88(deg) -0.961512 + -31541, // 228.06(deg) -0.962579 + -31576, // 228.24(deg) -0.963628 + -31609, // 228.42(deg) -0.964660 + -31643, // 228.6(deg) -0.965675 + -31675, // 228.78(deg) -0.966672 + -31707, // 228.96(deg) -0.967651 + -31739, // 229.14(deg) -0.968613 + -31770, // 229.32(deg) -0.969559 + -31800, // 229.5(deg) -0.970487 + -31830, // 229.68(deg) -0.971398 + -31860, // 229.86(deg) -0.972292 + -31888, // 230.04(deg) -0.973170 + -31917, // 230.22(deg) -0.974031 + -31944, // 230.4(deg) -0.974875 + -31971, // 230.58(deg) -0.975703 + -31998, // 230.76(deg) -0.976515 + -32024, // 230.94(deg) -0.977310 + -32050, // 231.12(deg) -0.978090 + -32075, // 231.3(deg) -0.978853 + -32099, // 231.48(deg) -0.979601 + -32123, // 231.66(deg) -0.980333 + -32147, // 231.84(deg) -0.981049 + -32169, // 232.02(deg) -0.981750 + -32192, // 232.2(deg) -0.982435 + -32214, // 232.38(deg) -0.983105 + -32235, // 232.56(deg) -0.983760 + -32256, // 232.74(deg) -0.984400 + -32277, // 232.92(deg) -0.985025 + -32297, // 233.1(deg) -0.985635 + -32316, // 233.28(deg) -0.986230 + -32335, // 233.46(deg) -0.986811 + -32354, // 233.64(deg) -0.987377 + -32372, // 233.82(deg) -0.987929 + -32390, // 234(deg) -0.988467 + -32407, // 234.18(deg) -0.988990 + -32423, // 234.36(deg) -0.989500 + -32440, // 234.54(deg) -0.989995 + -32455, // 234.72(deg) -0.990477 + -32471, // 234.9(deg) -0.990946 + -32486, // 235.08(deg) -0.991400 + -32500, // 235.26(deg) -0.991842 + -32514, // 235.44(deg) -0.992270 + -32528, // 235.62(deg) -0.992685 + -32541, // 235.8(deg) -0.993087 + -32554, // 235.98(deg) -0.993476 + -32566, // 236.16(deg) -0.993853 + -32578, // 236.34(deg) -0.994217 + -32590, // 236.52(deg) -0.994568 + -32601, // 236.7(deg) -0.994907 + -32611, // 236.88(deg) -0.995234 + -32622, // 237.06(deg) -0.995548 + -32632, // 237.24(deg) -0.995851 + -32641, // 237.42(deg) -0.996142 + -32650, // 237.6(deg) -0.996421 + -32659, // 237.78(deg) -0.996688 + -32667, // 237.96(deg) -0.996944 + -32675, // 238.14(deg) -0.997189 + -32683, // 238.32(deg) -0.997422 + -32690, // 238.5(deg) -0.997645 + -32697, // 238.68(deg) -0.997856 + -32704, // 238.86(deg) -0.998057 + -32710, // 239.04(deg) -0.998246 + -32716, // 239.22(deg) -0.998426 + -32721, // 239.4(deg) -0.998595 + -32727, // 239.58(deg) -0.998753 + -32732, // 239.76(deg) -0.998902 + -32736, // 239.94(deg) -0.999040 + -32740, // 240.12(deg) -0.999168 + -32744, // 240.3(deg) -0.999287 + -32748, // 240.48(deg) -0.999396 + -32751, // 240.66(deg) -0.999496 + -32754, // 240.84(deg) -0.999586 + -32757, // 241.02(deg) -0.999667 + -32759, // 241.2(deg) -0.999739 + -32761, // 241.38(deg) -0.999801 + -32763, // 241.56(deg) -0.999855 + -32764, // 241.74(deg) -0.999901 + -32765, // 241.92(deg) -0.999937 + -32766, // 242.1(deg) -0.999966 + -32767, // 242.28(deg) -0.999985 + -32767, // 242.46(deg) -0.999997 + -32768, // 242.64(deg) -1.000001 + -32767, // 242.82(deg) -0.999996 + -32767, // 243(deg) -0.999984 + -32766, // 243.18(deg) -0.999965 + -32765, // 243.36(deg) -0.999937 + -32764, // 243.54(deg) -0.999903 + -32763, // 243.72(deg) -0.999861 + -32761, // 243.9(deg) -0.999812 + -32759, // 244.08(deg) -0.999756 + -32757, // 244.26(deg) -0.999693 + -32755, // 244.44(deg) -0.999623 + -32753, // 244.62(deg) -0.999546 + -32750, // 244.8(deg) -0.999464 + -32747, // 244.98(deg) -0.999374 + -32744, // 245.16(deg) -0.999279 + -32741, // 245.34(deg) -0.999177 + -32737, // 245.52(deg) -0.999070 + -32733, // 245.7(deg) -0.998957 + -32729, // 245.88(deg) -0.998837 + -32725, // 246.06(deg) -0.998713 + -32721, // 246.24(deg) -0.998583 + -32717, // 246.42(deg) -0.998447 + -32712, // 246.6(deg) -0.998307 + -32707, // 246.78(deg) -0.998161 + -32702, // 246.96(deg) -0.998010 + -32697, // 247.14(deg) -0.997855 + -32692, // 247.32(deg) -0.997694 + -32687, // 247.5(deg) -0.997530 + -32681, // 247.68(deg) -0.997360 + -32675, // 247.86(deg) -0.997187 + -32669, // 248.04(deg) -0.997009 + -32664, // 248.22(deg) -0.996827 + -32657, // 248.4(deg) -0.996641 + -32651, // 248.58(deg) -0.996452 + -32645, // 248.76(deg) -0.996258 + -32638, // 248.94(deg) -0.996061 + -32632, // 249.12(deg) -0.995861 + -32625, // 249.3(deg) -0.995657 + -32618, // 249.48(deg) -0.995450 + -32612, // 249.66(deg) -0.995240 + -32605, // 249.84(deg) -0.995027 + -32597, // 250.02(deg) -0.994811 + -32590, // 250.2(deg) -0.994592 + -32583, // 250.38(deg) -0.994371 + -32576, // 250.56(deg) -0.994147 + -32568, // 250.74(deg) -0.993920 + -32561, // 250.92(deg) -0.993692 + -32553, // 251.1(deg) -0.993461 + -32546, // 251.28(deg) -0.993228 + -32538, // 251.46(deg) -0.992993 + -32530, // 251.64(deg) -0.992756 + -32522, // 251.82(deg) -0.992518 + -32514, // 252(deg) -0.992278 + -32507, // 252.18(deg) -0.992036 + -32499, // 252.36(deg) -0.991793 + -32491, // 252.54(deg) -0.991549 + -32483, // 252.72(deg) -0.991304 + -32474, // 252.9(deg) -0.991057 + -32466, // 253.08(deg) -0.990810 + -32458, // 253.26(deg) -0.990561 + -32450, // 253.44(deg) -0.990312 + -32442, // 253.62(deg) -0.990062 + -32434, // 253.8(deg) -0.989812 + -32425, // 253.98(deg) -0.989561 + -32417, // 254.16(deg) -0.989310 + -32409, // 254.34(deg) -0.989059 + -32401, // 254.52(deg) -0.988807 + -32392, // 254.7(deg) -0.988556 + -32384, // 254.88(deg) -0.988304 + -32376, // 255.06(deg) -0.988053 + -32368, // 255.24(deg) -0.987802 + -32360, // 255.42(deg) -0.987551 + -32351, // 255.6(deg) -0.987300 + -32343, // 255.78(deg) -0.987051 + -32335, // 255.96(deg) -0.986801 + -32327, // 256.14(deg) -0.986553 + -32319, // 256.32(deg) -0.986305 + -32311, // 256.5(deg) -0.986058 + -32303, // 256.68(deg) -0.985813 + -32295, // 256.86(deg) -0.985568 + -32287, // 257.04(deg) -0.985324 + -32279, // 257.22(deg) -0.985082 + -32271, // 257.4(deg) -0.984841 + -32263, // 257.58(deg) -0.984601 + -32255, // 257.76(deg) -0.984363 + -32247, // 257.94(deg) -0.984127 + -32240, // 258.12(deg) -0.983892 + -32232, // 258.3(deg) -0.983659 + -32224, // 258.48(deg) -0.983427 + -32217, // 258.66(deg) -0.983198 + -32209, // 258.84(deg) -0.982971 + -32202, // 259.02(deg) -0.982745 + -32195, // 259.2(deg) -0.982522 + -32188, // 259.38(deg) -0.982301 + -32180, // 259.56(deg) -0.982082 + -32173, // 259.74(deg) -0.981866 + -32166, // 259.92(deg) -0.981652 + -32159, // 260.1(deg) -0.981440 + -32152, // 260.28(deg) -0.981231 + -32146, // 260.46(deg) -0.981025 + -32139, // 260.64(deg) -0.980821 + -32132, // 260.82(deg) -0.980620 + -32126, // 261(deg) -0.980422 + -32120, // 261.18(deg) -0.980227 + -32113, // 261.36(deg) -0.980035 + -32107, // 261.54(deg) -0.979845 + -32101, // 261.72(deg) -0.979659 + -32095, // 261.9(deg) -0.979476 + -32089, // 262.08(deg) -0.979296 + -32083, // 262.26(deg) -0.979120 + -32078, // 262.44(deg) -0.978946 + -32072, // 262.62(deg) -0.978776 + -32067, // 262.8(deg) -0.978609 + -32061, // 262.98(deg) -0.978446 + -32056, // 263.16(deg) -0.978286 + -32051, // 263.34(deg) -0.978130 + -32046, // 263.52(deg) -0.977978 + -32041, // 263.7(deg) -0.977829 + -32036, // 263.88(deg) -0.977683 + -32032, // 264.06(deg) -0.977542 + -32027, // 264.24(deg) -0.977404 + -32023, // 264.42(deg) -0.977270 + -32018, // 264.6(deg) -0.977140 + -32014, // 264.78(deg) -0.977014 + -32010, // 264.96(deg) -0.976891 + -32006, // 265.14(deg) -0.976773 + -32003, // 265.32(deg) -0.976659 + -31999, // 265.5(deg) -0.976548 + -31996, // 265.68(deg) -0.976442 + -31992, // 265.86(deg) -0.976340 + -31989, // 266.04(deg) -0.976242 + -31986, // 266.22(deg) -0.976148 + -31983, // 266.4(deg) -0.976058 + -31980, // 266.58(deg) -0.975973 + -31978, // 266.76(deg) -0.975891 + -31975, // 266.94(deg) -0.975814 + -31973, // 267.12(deg) -0.975742 + -31970, // 267.3(deg) -0.975673 + -31968, // 267.48(deg) -0.975609 + -31966, // 267.66(deg) -0.975549 + -31964, // 267.84(deg) -0.975494 + -31963, // 268.02(deg) -0.975443 + -31961, // 268.2(deg) -0.975396 + -31960, // 268.38(deg) -0.975354 + -31959, // 268.56(deg) -0.975316 + -31958, // 268.74(deg) -0.975283 + -31957, // 268.92(deg) -0.975254 + -31956, // 269.1(deg) -0.975229 + -31955, // 269.28(deg) -0.975209 + -31955, // 269.46(deg) -0.975194 + -31954, // 269.64(deg) -0.975182 + -31954, // 269.82(deg) -0.975176 + -31954, // 270(deg) -0.975174 + -31954, // 270.18(deg) -0.975176 + -31954, // 270.36(deg) -0.975182 + -31955, // 270.54(deg) -0.975194 + -31955, // 270.72(deg) -0.975209 + -31956, // 270.9(deg) -0.975229 + -31957, // 271.08(deg) -0.975254 + -31958, // 271.26(deg) -0.975283 + -31959, // 271.44(deg) -0.975316 + -31960, // 271.62(deg) -0.975354 + -31961, // 271.8(deg) -0.975396 + -31963, // 271.98(deg) -0.975443 + -31964, // 272.16(deg) -0.975494 + -31966, // 272.34(deg) -0.975549 + -31968, // 272.52(deg) -0.975609 + -31970, // 272.7(deg) -0.975673 + -31973, // 272.88(deg) -0.975742 + -31975, // 273.06(deg) -0.975814 + -31978, // 273.24(deg) -0.975891 + -31980, // 273.42(deg) -0.975973 + -31983, // 273.6(deg) -0.976058 + -31986, // 273.78(deg) -0.976148 + -31989, // 273.96(deg) -0.976242 + -31992, // 274.14(deg) -0.976340 + -31996, // 274.32(deg) -0.976442 + -31999, // 274.5(deg) -0.976548 + -32003, // 274.68(deg) -0.976659 + -32006, // 274.86(deg) -0.976773 + -32010, // 275.04(deg) -0.976891 + -32014, // 275.22(deg) -0.977014 + -32018, // 275.4(deg) -0.977140 + -32023, // 275.58(deg) -0.977270 + -32027, // 275.76(deg) -0.977404 + -32032, // 275.94(deg) -0.977542 + -32036, // 276.12(deg) -0.977683 + -32041, // 276.3(deg) -0.977829 + -32046, // 276.48(deg) -0.977978 + -32051, // 276.66(deg) -0.978130 + -32056, // 276.84(deg) -0.978286 + -32061, // 277.02(deg) -0.978446 + -32067, // 277.2(deg) -0.978609 + -32072, // 277.38(deg) -0.978776 + -32078, // 277.56(deg) -0.978946 + -32083, // 277.74(deg) -0.979120 + -32089, // 277.92(deg) -0.979296 + -32095, // 278.1(deg) -0.979476 + -32101, // 278.28(deg) -0.979659 + -32107, // 278.46(deg) -0.979845 + -32113, // 278.64(deg) -0.980035 + -32120, // 278.82(deg) -0.980227 + -32126, // 279(deg) -0.980422 + -32132, // 279.18(deg) -0.980620 + -32139, // 279.36(deg) -0.980821 + -32146, // 279.54(deg) -0.981025 + -32152, // 279.72(deg) -0.981231 + -32159, // 279.9(deg) -0.981440 + -32166, // 280.08(deg) -0.981652 + -32173, // 280.26(deg) -0.981866 + -32180, // 280.44(deg) -0.982082 + -32188, // 280.62(deg) -0.982301 + -32195, // 280.8(deg) -0.982522 + -32202, // 280.98(deg) -0.982745 + -32209, // 281.16(deg) -0.982971 + -32217, // 281.34(deg) -0.983198 + -32224, // 281.52(deg) -0.983427 + -32232, // 281.7(deg) -0.983659 + -32240, // 281.88(deg) -0.983892 + -32247, // 282.06(deg) -0.984127 + -32255, // 282.24(deg) -0.984363 + -32263, // 282.42(deg) -0.984601 + -32271, // 282.6(deg) -0.984841 + -32279, // 282.78(deg) -0.985082 + -32287, // 282.96(deg) -0.985324 + -32295, // 283.14(deg) -0.985568 + -32303, // 283.32(deg) -0.985813 + -32311, // 283.5(deg) -0.986058 + -32319, // 283.68(deg) -0.986305 + -32327, // 283.86(deg) -0.986553 + -32335, // 284.04(deg) -0.986801 + -32343, // 284.22(deg) -0.987051 + -32351, // 284.4(deg) -0.987300 + -32360, // 284.58(deg) -0.987551 + -32368, // 284.76(deg) -0.987802 + -32376, // 284.94(deg) -0.988053 + -32384, // 285.12(deg) -0.988304 + -32392, // 285.3(deg) -0.988556 + -32401, // 285.48(deg) -0.988807 + -32409, // 285.66(deg) -0.989059 + -32417, // 285.84(deg) -0.989310 + -32425, // 286.02(deg) -0.989561 + -32434, // 286.2(deg) -0.989812 + -32442, // 286.38(deg) -0.990062 + -32450, // 286.56(deg) -0.990312 + -32458, // 286.74(deg) -0.990561 + -32466, // 286.92(deg) -0.990810 + -32474, // 287.1(deg) -0.991057 + -32483, // 287.28(deg) -0.991304 + -32491, // 287.46(deg) -0.991549 + -32499, // 287.64(deg) -0.991793 + -32507, // 287.82(deg) -0.992036 + -32514, // 288(deg) -0.992278 + -32522, // 288.18(deg) -0.992518 + -32530, // 288.36(deg) -0.992756 + -32538, // 288.54(deg) -0.992993 + -32546, // 288.72(deg) -0.993228 + -32553, // 288.9(deg) -0.993461 + -32561, // 289.08(deg) -0.993692 + -32568, // 289.26(deg) -0.993920 + -32576, // 289.44(deg) -0.994147 + -32583, // 289.62(deg) -0.994371 + -32590, // 289.8(deg) -0.994592 + -32597, // 289.98(deg) -0.994811 + -32605, // 290.16(deg) -0.995027 + -32612, // 290.34(deg) -0.995240 + -32618, // 290.52(deg) -0.995450 + -32625, // 290.7(deg) -0.995657 + -32632, // 290.88(deg) -0.995861 + -32638, // 291.06(deg) -0.996061 + -32645, // 291.24(deg) -0.996258 + -32651, // 291.42(deg) -0.996452 + -32657, // 291.6(deg) -0.996641 + -32664, // 291.78(deg) -0.996827 + -32669, // 291.96(deg) -0.997009 + -32675, // 292.14(deg) -0.997187 + -32681, // 292.32(deg) -0.997360 + -32687, // 292.5(deg) -0.997530 + -32692, // 292.68(deg) -0.997694 + -32697, // 292.86(deg) -0.997855 + -32702, // 293.04(deg) -0.998010 + -32707, // 293.22(deg) -0.998161 + -32712, // 293.4(deg) -0.998307 + -32717, // 293.58(deg) -0.998447 + -32721, // 293.76(deg) -0.998583 + -32725, // 293.94(deg) -0.998713 + -32729, // 294.12(deg) -0.998837 + -32733, // 294.3(deg) -0.998957 + -32737, // 294.48(deg) -0.999070 + -32741, // 294.66(deg) -0.999177 + -32744, // 294.84(deg) -0.999279 + -32747, // 295.02(deg) -0.999374 + -32750, // 295.2(deg) -0.999464 + -32753, // 295.38(deg) -0.999546 + -32755, // 295.56(deg) -0.999623 + -32757, // 295.74(deg) -0.999693 + -32759, // 295.92(deg) -0.999756 + -32761, // 296.1(deg) -0.999812 + -32763, // 296.28(deg) -0.999861 + -32764, // 296.46(deg) -0.999903 + -32765, // 296.64(deg) -0.999937 + -32766, // 296.82(deg) -0.999965 + -32767, // 297(deg) -0.999984 + -32767, // 297.18(deg) -0.999996 + -32768, // 297.36(deg) -1.000001 + -32767, // 297.54(deg) -0.999997 + -32767, // 297.72(deg) -0.999985 + -32766, // 297.9(deg) -0.999966 + -32765, // 298.08(deg) -0.999937 + -32764, // 298.26(deg) -0.999901 + -32763, // 298.44(deg) -0.999855 + -32761, // 298.62(deg) -0.999801 + -32759, // 298.8(deg) -0.999739 + -32757, // 298.98(deg) -0.999667 + -32754, // 299.16(deg) -0.999586 + -32751, // 299.34(deg) -0.999496 + -32748, // 299.52(deg) -0.999396 + -32744, // 299.7(deg) -0.999287 + -32740, // 299.88(deg) -0.999168 + -32736, // 300.06(deg) -0.999040 + -32732, // 300.24(deg) -0.998902 + -32727, // 300.42(deg) -0.998753 + -32721, // 300.6(deg) -0.998595 + -32716, // 300.78(deg) -0.998426 + -32710, // 300.96(deg) -0.998246 + -32704, // 301.14(deg) -0.998057 + -32697, // 301.32(deg) -0.997856 + -32690, // 301.5(deg) -0.997645 + -32683, // 301.68(deg) -0.997422 + -32675, // 301.86(deg) -0.997189 + -32667, // 302.04(deg) -0.996944 + -32659, // 302.22(deg) -0.996688 + -32650, // 302.4(deg) -0.996421 + -32641, // 302.58(deg) -0.996142 + -32632, // 302.76(deg) -0.995851 + -32622, // 302.94(deg) -0.995548 + -32611, // 303.12(deg) -0.995234 + -32601, // 303.3(deg) -0.994907 + -32590, // 303.48(deg) -0.994568 + -32578, // 303.66(deg) -0.994217 + -32566, // 303.84(deg) -0.993853 + -32554, // 304.02(deg) -0.993476 + -32541, // 304.2(deg) -0.993087 + -32528, // 304.38(deg) -0.992685 + -32514, // 304.56(deg) -0.992270 + -32500, // 304.74(deg) -0.991842 + -32486, // 304.92(deg) -0.991400 + -32471, // 305.1(deg) -0.990946 + -32455, // 305.28(deg) -0.990477 + -32440, // 305.46(deg) -0.989995 + -32423, // 305.64(deg) -0.989500 + -32407, // 305.82(deg) -0.988990 + -32390, // 306(deg) -0.988467 + -32372, // 306.18(deg) -0.987929 + -32354, // 306.36(deg) -0.987377 + -32335, // 306.54(deg) -0.986811 + -32316, // 306.72(deg) -0.986230 + -32297, // 306.9(deg) -0.985635 + -32277, // 307.08(deg) -0.985025 + -32256, // 307.26(deg) -0.984400 + -32235, // 307.44(deg) -0.983760 + -32214, // 307.62(deg) -0.983105 + -32192, // 307.8(deg) -0.982435 + -32169, // 307.98(deg) -0.981750 + -32147, // 308.16(deg) -0.981049 + -32123, // 308.34(deg) -0.980333 + -32099, // 308.52(deg) -0.979601 + -32075, // 308.7(deg) -0.978853 + -32050, // 308.88(deg) -0.978090 + -32024, // 309.06(deg) -0.977310 + -31998, // 309.24(deg) -0.976515 + -31971, // 309.42(deg) -0.975703 + -31944, // 309.6(deg) -0.974875 + -31917, // 309.78(deg) -0.974031 + -31888, // 309.96(deg) -0.973170 + -31860, // 310.14(deg) -0.972292 + -31830, // 310.32(deg) -0.971398 + -31800, // 310.5(deg) -0.970487 + -31770, // 310.68(deg) -0.969559 + -31739, // 310.86(deg) -0.968613 + -31707, // 311.04(deg) -0.967651 + -31675, // 311.22(deg) -0.966672 + -31643, // 311.4(deg) -0.965675 + -31609, // 311.58(deg) -0.964660 + -31576, // 311.76(deg) -0.963628 + -31541, // 311.94(deg) -0.962579 + -31506, // 312.12(deg) -0.961512 + -31471, // 312.3(deg) -0.960426 + -31435, // 312.48(deg) -0.959323 + -31398, // 312.66(deg) -0.958202 + -31361, // 312.84(deg) -0.957063 + -31323, // 313.02(deg) -0.955906 + -31284, // 313.2(deg) -0.954730 + -31245, // 313.38(deg) -0.953536 + -31205, // 313.56(deg) -0.952323 + -31165, // 313.74(deg) -0.951092 + -31124, // 313.92(deg) -0.949842 + -31082, // 314.1(deg) -0.948573 + -31040, // 314.28(deg) -0.947286 + -30997, // 314.46(deg) -0.945979 + -30954, // 314.64(deg) -0.944654 + -30910, // 314.82(deg) -0.943309 + -30865, // 315(deg) -0.941945 + -30820, // 315.18(deg) -0.940562 + -30774, // 315.36(deg) -0.939160 + -30727, // 315.54(deg) -0.937738 + -30680, // 315.72(deg) -0.936297 + -30632, // 315.9(deg) -0.934836 + -30584, // 316.08(deg) -0.933356 + -30535, // 316.26(deg) -0.931855 + -30485, // 316.44(deg) -0.930335 + -30434, // 316.62(deg) -0.928795 + -30383, // 316.8(deg) -0.927236 + -30331, // 316.98(deg) -0.925656 + -30279, // 317.16(deg) -0.924056 + -30226, // 317.34(deg) -0.922436 + -30172, // 317.52(deg) -0.920796 + -30118, // 317.7(deg) -0.919135 + -30063, // 317.88(deg) -0.917454 + -30007, // 318.06(deg) -0.915753 + -29950, // 318.24(deg) -0.914031 + -29893, // 318.42(deg) -0.912289 + -29836, // 318.6(deg) -0.910526 + -29777, // 318.78(deg) -0.908742 + -29718, // 318.96(deg) -0.906938 + -29658, // 319.14(deg) -0.905113 + -29598, // 319.32(deg) -0.903268 + -29537, // 319.5(deg) -0.901401 + -29475, // 319.68(deg) -0.899513 + -29412, // 319.86(deg) -0.897605 + -29349, // 320.04(deg) -0.895675 + -29285, // 320.22(deg) -0.893725 + -29220, // 320.4(deg) -0.891753 + -29155, // 320.58(deg) -0.889760 + -29089, // 320.76(deg) -0.887746 + -29022, // 320.94(deg) -0.885711 + -28955, // 321.12(deg) -0.883655 + -28887, // 321.3(deg) -0.881577 + -28818, // 321.48(deg) -0.879478 + -28749, // 321.66(deg) -0.877357 + -28679, // 321.84(deg) -0.875215 + -28608, // 322.02(deg) -0.873052 + -28536, // 322.2(deg) -0.870867 + -28464, // 322.38(deg) -0.868660 + -28391, // 322.56(deg) -0.866432 + -28317, // 322.74(deg) -0.864182 + -28243, // 322.92(deg) -0.861911 + -28167, // 323.1(deg) -0.859618 + -28092, // 323.28(deg) -0.857304 + -28015, // 323.46(deg) -0.854967 + -27938, // 323.64(deg) -0.852610 + -27860, // 323.82(deg) -0.850230 + -27781, // 324(deg) -0.847828 + -27702, // 324.18(deg) -0.845405 + -27622, // 324.36(deg) -0.842960 + -27541, // 324.54(deg) -0.840493 + -27459, // 324.72(deg) -0.838005 + -27377, // 324.9(deg) -0.835494 + -27294, // 325.08(deg) -0.832962 + -27210, // 325.26(deg) -0.830408 + -27126, // 325.44(deg) -0.827832 + -27041, // 325.62(deg) -0.825234 + -26955, // 325.8(deg) -0.822614 + -26868, // 325.98(deg) -0.819973 + -26781, // 326.16(deg) -0.817309 + -26693, // 326.34(deg) -0.814624 + -26604, // 326.52(deg) -0.811917 + -26515, // 326.7(deg) -0.809188 + -26425, // 326.88(deg) -0.806437 + -26334, // 327.06(deg) -0.803664 + -26242, // 327.24(deg) -0.800869 + -26150, // 327.42(deg) -0.798053 + -26057, // 327.6(deg) -0.795214 + -25963, // 327.78(deg) -0.792354 + -25869, // 327.96(deg) -0.789472 + -25774, // 328.14(deg) -0.786569 + -25678, // 328.32(deg) -0.783643 + -25581, // 328.5(deg) -0.780696 + -25484, // 328.68(deg) -0.777727 + -25386, // 328.86(deg) -0.774736 + -25287, // 329.04(deg) -0.771723 + -25188, // 329.22(deg) -0.768689 + -25088, // 329.4(deg) -0.765633 + -24987, // 329.58(deg) -0.762555 + -24885, // 329.76(deg) -0.759456 + -24783, // 329.94(deg) -0.756336 + -24680, // 330.12(deg) -0.753193 + -24576, // 330.3(deg) -0.750029 + -24472, // 330.48(deg) -0.746844 + -24367, // 330.66(deg) -0.743637 + -24261, // 330.84(deg) -0.740409 + -24155, // 331.02(deg) -0.737159 + -24048, // 331.2(deg) -0.733889 + -23940, // 331.38(deg) -0.730596 + -23831, // 331.56(deg) -0.727283 + -23722, // 331.74(deg) -0.723948 + -23612, // 331.92(deg) -0.720592 + -23501, // 332.1(deg) -0.717215 + -23390, // 332.28(deg) -0.713817 + -23278, // 332.46(deg) -0.710398 + -23165, // 332.64(deg) -0.706958 + -23052, // 332.82(deg) -0.703497 + -22938, // 333(deg) -0.700015 + -22823, // 333.18(deg) -0.696512 + -22707, // 333.36(deg) -0.692988 + -22591, // 333.54(deg) -0.689444 + -22474, // 333.72(deg) -0.685879 + -22357, // 333.9(deg) -0.682294 + -22239, // 334.08(deg) -0.678688 + -22120, // 334.26(deg) -0.675061 + -22000, // 334.44(deg) -0.671414 + -21880, // 334.62(deg) -0.667747 + -21759, // 334.8(deg) -0.664059 + -21638, // 334.98(deg) -0.660352 + -21516, // 335.16(deg) -0.656624 + -21393, // 335.34(deg) -0.652876 + -21269, // 335.52(deg) -0.649108 + -21145, // 335.7(deg) -0.645320 + -21021, // 335.88(deg) -0.641512 + -20895, // 336.06(deg) -0.637685 + -20769, // 336.24(deg) -0.633838 + -20642, // 336.42(deg) -0.629971 + -20515, // 336.6(deg) -0.626085 + -20387, // 336.78(deg) -0.622179 + -20258, // 336.96(deg) -0.618254 + -20129, // 337.14(deg) -0.614310 + -19999, // 337.32(deg) -0.610346 + -19869, // 337.5(deg) -0.606364 + -19738, // 337.68(deg) -0.602362 + -19606, // 337.86(deg) -0.598342 + -19474, // 338.04(deg) -0.594303 + -19341, // 338.22(deg) -0.590245 + -19207, // 338.4(deg) -0.586168 + -19073, // 338.58(deg) -0.582073 + -18938, // 338.76(deg) -0.577959 + -18803, // 338.94(deg) -0.573827 + -18667, // 339.12(deg) -0.569677 + -18530, // 339.3(deg) -0.565509 + -18393, // 339.48(deg) -0.561322 + -18255, // 339.66(deg) -0.557118 + -18117, // 339.84(deg) -0.552896 + -17978, // 340.02(deg) -0.548656 + -17838, // 340.2(deg) -0.544398 + -17698, // 340.38(deg) -0.540123 + -17558, // 340.56(deg) -0.535831 + -17416, // 340.74(deg) -0.531521 + -17275, // 340.92(deg) -0.527195 + -17132, // 341.1(deg) -0.522851 + -16989, // 341.28(deg) -0.518490 + -16846, // 341.46(deg) -0.514112 + -16702, // 341.64(deg) -0.509718 + -16557, // 341.82(deg) -0.505307 + -16412, // 342(deg) -0.500880 + -16267, // 342.18(deg) -0.496436 + -16121, // 342.36(deg) -0.491976 + -15974, // 342.54(deg) -0.487500 + -15827, // 342.72(deg) -0.483008 + -15679, // 342.9(deg) -0.478500 + -15531, // 343.08(deg) -0.473977 + -15382, // 343.26(deg) -0.469437 + -15233, // 343.44(deg) -0.464883 + -15083, // 343.62(deg) -0.460313 + -14933, // 343.8(deg) -0.455728 + -14782, // 343.98(deg) -0.451127 + -14631, // 344.16(deg) -0.446512 + -14479, // 344.34(deg) -0.441882 + -14327, // 344.52(deg) -0.437238 + -14174, // 344.7(deg) -0.432579 + -14021, // 344.88(deg) -0.427905 + -13867, // 345.06(deg) -0.423217 + -13713, // 345.24(deg) -0.418515 + -13559, // 345.42(deg) -0.413799 + -13404, // 345.6(deg) -0.409070 + -13248, // 345.78(deg) -0.404326 + -13093, // 345.96(deg) -0.399569 + -12936, // 346.14(deg) -0.394799 + -12780, // 346.32(deg) -0.390016 + -12622, // 346.5(deg) -0.385219 + -12465, // 346.68(deg) -0.380409 + -12307, // 346.86(deg) -0.375587 + -12148, // 347.04(deg) -0.370752 + -11989, // 347.22(deg) -0.365904 + -11830, // 347.4(deg) -0.361044 + -11671, // 347.58(deg) -0.356172 + -11511, // 347.76(deg) -0.351288 + -11350, // 347.94(deg) -0.346392 + -11189, // 348.12(deg) -0.341484 + -11028, // 348.3(deg) -0.336565 + -10866, // 348.48(deg) -0.331634 + -10705, // 348.66(deg) -0.326692 + -10542, // 348.84(deg) -0.321739 + -10380, // 349.02(deg) -0.316775 + -10217, // 349.2(deg) -0.311800 + -10053, // 349.38(deg) -0.306814 + -9889, // 349.56(deg) -0.301818 + -9725, // 349.74(deg) -0.296812 + -9561, // 349.92(deg) -0.291795 + -9396, // 350.1(deg) -0.286769 + -9231, // 350.28(deg) -0.281733 + -9066, // 350.46(deg) -0.276687 + -8900, // 350.64(deg) -0.271631 + -8734, // 350.82(deg) -0.266567 + -8568, // 351(deg) -0.261493 + -8402, // 351.18(deg) -0.256410 + -8235, // 351.36(deg) -0.251318 + -8068, // 351.54(deg) -0.246218 + -7900, // 351.72(deg) -0.241109 + -7732, // 351.9(deg) -0.235992 + -7565, // 352.08(deg) -0.230867 + -7396, // 352.26(deg) -0.225734 + -7228, // 352.44(deg) -0.220593 + -7059, // 352.62(deg) -0.215445 + -6890, // 352.8(deg) -0.210289 + -6721, // 352.98(deg) -0.205125 + -6552, // 353.16(deg) -0.199955 + -6382, // 353.34(deg) -0.194778 + -6212, // 353.52(deg) -0.189594 + -6042, // 353.7(deg) -0.184403 + -5872, // 353.88(deg) -0.179207 + -5701, // 354.06(deg) -0.174003 + -5531, // 354.24(deg) -0.168794 + -5360, // 354.42(deg) -0.163579 + -5189, // 354.6(deg) -0.158359 + -5017, // 354.78(deg) -0.153133 + -4846, // 354.96(deg) -0.147901 + -4674, // 355.14(deg) -0.142664 + -4503, // 355.32(deg) -0.137423 + -4331, // 355.5(deg) -0.132177 + -4159, // 355.68(deg) -0.126926 + -3986, // 355.86(deg) -0.121670 + -3814, // 356.04(deg) -0.116411 + -3642, // 356.22(deg) -0.111147 + -3469, // 356.4(deg) -0.105880 + -3296, // 356.58(deg) -0.100608 + -3123, // 356.76(deg) -0.095334 + -2950, // 356.94(deg) -0.090056 + -2777, // 357.12(deg) -0.084775 + -2604, // 357.3(deg) -0.079491 + -2431, // 357.48(deg) -0.074204 + -2258, // 357.66(deg) -0.068914 + -2084, // 357.84(deg) -0.063622 + -1911, // 358.02(deg) -0.058328 + -1737, // 358.2(deg) -0.053032 + -1564, // 358.38(deg) -0.047734 + -1390, // 358.56(deg) -0.042435 + -1216, // 358.74(deg) -0.037134 + -1043, // 358.92(deg) -0.031831 + -869, // 359.1(deg) -0.026528 + -695, // 359.28(deg) -0.021223 + -521, // 359.46(deg) -0.015918 + -347, // 359.64(deg) -0.010612 + -173, // 359.82(deg) -0.005306 }; diff --git a/tfrog-motordriver/mathSin2048.c b/tfrog-motordriver/mathSin2048.c index a0626c5..b75502b 100644 --- a/tfrog-motordriver/mathSin2048.c +++ b/tfrog-motordriver/mathSin2048.c @@ -1,2050 +1,2050 @@ -const short sin2048[ 2048 ] = { - 0, // 0(deg) 0.000000 - 169, // 0.175781(deg) 0.005182 - 339, // 0.351562(deg) 0.010364 - 509, // 0.527344(deg) 0.015545 - 679, // 0.703125(deg) 0.020726 - 848, // 0.878906(deg) 0.025906 - 1018, // 1.05469(deg) 0.031085 - 1188, // 1.23047(deg) 0.036264 - 1357, // 1.40625(deg) 0.041441 - 1527, // 1.58203(deg) 0.046617 - 1697, // 1.75781(deg) 0.051791 - 1866, // 1.93359(deg) 0.056963 - 2035, // 2.10938(deg) 0.062134 - 2205, // 2.28516(deg) 0.067302 - 2374, // 2.46094(deg) 0.072468 - 2543, // 2.63672(deg) 0.077632 - 2712, // 2.8125(deg) 0.082793 - 2882, // 2.98828(deg) 0.087952 - 3050, // 3.16406(deg) 0.093107 - 3219, // 3.33984(deg) 0.098260 - 3388, // 3.51562(deg) 0.103409 - 3557, // 3.69141(deg) 0.108555 - 3725, // 3.86719(deg) 0.113697 - 3894, // 4.04297(deg) 0.118836 - 4062, // 4.21875(deg) 0.123970 - 4230, // 4.39453(deg) 0.129100 - 4398, // 4.57031(deg) 0.134226 - 4566, // 4.74609(deg) 0.139348 - 4733, // 4.92188(deg) 0.144465 - 4901, // 5.09766(deg) 0.149577 - 5068, // 5.27344(deg) 0.154685 - 5235, // 5.44922(deg) 0.159787 - 5402, // 5.625(deg) 0.164884 - 5569, // 5.80078(deg) 0.169975 - 5736, // 5.97656(deg) 0.175061 - 5902, // 6.15234(deg) 0.180141 - 6069, // 6.32812(deg) 0.185215 - 6235, // 6.50391(deg) 0.190283 - 6401, // 6.67969(deg) 0.195344 - 6566, // 6.85547(deg) 0.200400 - 6732, // 7.03125(deg) 0.205448 - 6897, // 7.20703(deg) 0.210490 - 7062, // 7.38281(deg) 0.215525 - 7227, // 7.55859(deg) 0.220553 - 7391, // 7.73438(deg) 0.225573 - 7555, // 7.91016(deg) 0.230587 - 7719, // 8.08594(deg) 0.235592 - 7883, // 8.26172(deg) 0.240590 - 8047, // 8.4375(deg) 0.245580 - 8210, // 8.61328(deg) 0.250562 - 8373, // 8.78906(deg) 0.255535 - 8536, // 8.96484(deg) 0.260501 - 8698, // 9.14062(deg) 0.265457 - 8860, // 9.31641(deg) 0.270406 - 9022, // 9.49219(deg) 0.275345 - 9184, // 9.66797(deg) 0.280275 - 9345, // 9.84375(deg) 0.285196 - 9506, // 10.0195(deg) 0.290108 - 9666, // 10.1953(deg) 0.295010 - 9827, // 10.3711(deg) 0.299903 - 9987, // 10.5469(deg) 0.304786 - 10146, // 10.7227(deg) 0.309659 - 10306, // 10.8984(deg) 0.314522 - 10465, // 11.0742(deg) 0.319374 - 10623, // 11.25(deg) 0.324217 - 10782, // 11.4258(deg) 0.329048 - 10940, // 11.6016(deg) 0.333870 - 11097, // 11.7773(deg) 0.338680 - 11255, // 11.9531(deg) 0.343479 - 11412, // 12.1289(deg) 0.348268 - 11568, // 12.3047(deg) 0.353045 - 11724, // 12.4805(deg) 0.357810 - 11880, // 12.6562(deg) 0.362564 - 12035, // 12.832(deg) 0.367307 - 12190, // 13.0078(deg) 0.372037 - 12345, // 13.1836(deg) 0.376756 - 12499, // 13.3594(deg) 0.381463 - 12653, // 13.5352(deg) 0.386157 - 12807, // 13.7109(deg) 0.390839 - 12960, // 13.8867(deg) 0.395508 - 13112, // 14.0625(deg) 0.400165 - 13264, // 14.2383(deg) 0.404809 - 13416, // 14.4141(deg) 0.409440 - 13567, // 14.5898(deg) 0.414058 - 13718, // 14.7656(deg) 0.418663 - 13869, // 14.9414(deg) 0.423254 - 14019, // 15.1172(deg) 0.427832 - 14168, // 15.293(deg) 0.432396 - 14317, // 15.4688(deg) 0.436947 - 14466, // 15.6445(deg) 0.441484 - 14614, // 15.8203(deg) 0.446007 - 14762, // 15.9961(deg) 0.450515 - 14909, // 16.1719(deg) 0.455010 - 15056, // 16.3477(deg) 0.459490 - 15202, // 16.5234(deg) 0.463956 - 15348, // 16.6992(deg) 0.468407 - 15494, // 16.875(deg) 0.472843 - 15639, // 17.0508(deg) 0.477265 - 15783, // 17.2266(deg) 0.481671 - 15927, // 17.4023(deg) 0.486063 - 16070, // 17.5781(deg) 0.490439 - 16213, // 17.7539(deg) 0.494800 - 16356, // 17.9297(deg) 0.499146 - 16497, // 18.1055(deg) 0.503476 - 16639, // 18.2812(deg) 0.507790 - 16780, // 18.457(deg) 0.512089 - 16920, // 18.6328(deg) 0.516372 - 17060, // 18.8086(deg) 0.520638 - 17199, // 18.9844(deg) 0.524889 - 17338, // 19.1602(deg) 0.529124 - 17476, // 19.3359(deg) 0.533342 - 17614, // 19.5117(deg) 0.537543 - 17751, // 19.6875(deg) 0.541729 - 17887, // 19.8633(deg) 0.545897 - 18024, // 20.0391(deg) 0.550049 - 18159, // 20.2148(deg) 0.554184 - 18294, // 20.3906(deg) 0.558302 - 18428, // 20.5664(deg) 0.562403 - 18562, // 20.7422(deg) 0.566487 - 18695, // 20.918(deg) 0.570554 - 18828, // 21.0938(deg) 0.574603 - 18960, // 21.2695(deg) 0.578635 - 19092, // 21.4453(deg) 0.582650 - 19223, // 21.6211(deg) 0.586647 - 19353, // 21.7969(deg) 0.590626 - 19483, // 21.9727(deg) 0.594587 - 19612, // 22.1484(deg) 0.598531 - 19741, // 22.3242(deg) 0.602456 - 19869, // 22.5(deg) 0.606364 - 19996, // 22.6758(deg) 0.610253 - 20123, // 22.8516(deg) 0.614125 - 20249, // 23.0273(deg) 0.617978 - 20375, // 23.2031(deg) 0.621812 - 20500, // 23.3789(deg) 0.625628 - 20625, // 23.5547(deg) 0.629426 - 20748, // 23.7305(deg) 0.633205 - 20872, // 23.9062(deg) 0.636965 - 20994, // 24.082(deg) 0.640707 - 21116, // 24.2578(deg) 0.644429 - 21238, // 24.4336(deg) 0.648133 - 21358, // 24.6094(deg) 0.651818 - 21478, // 24.7852(deg) 0.655484 - 21598, // 24.9609(deg) 0.659131 - 21717, // 25.1367(deg) 0.662758 - 21835, // 25.3125(deg) 0.666366 - 21953, // 25.4883(deg) 0.669955 - 22070, // 25.6641(deg) 0.673525 - 22186, // 25.8398(deg) 0.677075 - 22302, // 26.0156(deg) 0.680606 - 22417, // 26.1914(deg) 0.684117 - 22531, // 26.3672(deg) 0.687608 - 22645, // 26.543(deg) 0.691080 - 22758, // 26.7188(deg) 0.694532 - 22870, // 26.8945(deg) 0.697965 - 22982, // 27.0703(deg) 0.701377 - 23093, // 27.2461(deg) 0.704770 - 23204, // 27.4219(deg) 0.708143 - 23314, // 27.5977(deg) 0.711495 - 23423, // 27.7734(deg) 0.714828 - 23532, // 27.9492(deg) 0.718141 - 23639, // 28.125(deg) 0.721433 - 23747, // 28.3008(deg) 0.724705 - 23853, // 28.4766(deg) 0.727958 - 23959, // 28.6523(deg) 0.731189 - 24064, // 28.8281(deg) 0.734401 - 24169, // 29.0039(deg) 0.737592 - 24273, // 29.1797(deg) 0.740763 - 24376, // 29.3555(deg) 0.743914 - 24479, // 29.5312(deg) 0.747044 - 24581, // 29.707(deg) 0.750153 - 24682, // 29.8828(deg) 0.753242 - 24782, // 30.0586(deg) 0.756311 - 24882, // 30.2344(deg) 0.759359 - 24981, // 30.4102(deg) 0.762386 - 25080, // 30.5859(deg) 0.765393 - 25178, // 30.7617(deg) 0.768379 - 25275, // 30.9375(deg) 0.771345 - 25371, // 31.1133(deg) 0.774290 - 25467, // 31.2891(deg) 0.777214 - 25562, // 31.4648(deg) 0.780117 - 25657, // 31.6406(deg) 0.783000 - 25751, // 31.8164(deg) 0.785862 - 25844, // 31.9922(deg) 0.788703 - 25936, // 32.168(deg) 0.791523 - 26028, // 32.3438(deg) 0.794323 - 26119, // 32.5195(deg) 0.797102 - 26209, // 32.6953(deg) 0.799860 - 26299, // 32.8711(deg) 0.802597 - 26388, // 33.0469(deg) 0.805313 - 26476, // 33.2227(deg) 0.808008 - 26564, // 33.3984(deg) 0.810683 - 26651, // 33.5742(deg) 0.813337 - 26737, // 33.75(deg) 0.815969 - 26823, // 33.9258(deg) 0.818581 - 26908, // 34.1016(deg) 0.821172 - 26992, // 34.2773(deg) 0.823743 - 27075, // 34.4531(deg) 0.826292 - 27158, // 34.6289(deg) 0.828821 - 27240, // 34.8047(deg) 0.831328 - 27322, // 34.9805(deg) 0.833815 - 27403, // 35.1562(deg) 0.836281 - 27483, // 35.332(deg) 0.838726 - 27562, // 35.5078(deg) 0.841151 - 27641, // 35.6836(deg) 0.843554 - 27719, // 35.8594(deg) 0.845937 - 27797, // 36.0352(deg) 0.848299 - 27873, // 36.2109(deg) 0.850640 - 27949, // 36.3867(deg) 0.852961 - 28025, // 36.5625(deg) 0.855261 - 28099, // 36.7383(deg) 0.857540 - 28173, // 36.9141(deg) 0.859798 - 28247, // 37.0898(deg) 0.862036 - 28319, // 37.2656(deg) 0.864253 - 28391, // 37.4414(deg) 0.866450 - 28463, // 37.6172(deg) 0.868625 - 28533, // 37.793(deg) 0.870781 - 28603, // 37.9688(deg) 0.872916 - 28672, // 38.1445(deg) 0.875030 - 28741, // 38.3203(deg) 0.877124 - 28809, // 38.4961(deg) 0.879197 - 28876, // 38.6719(deg) 0.881250 - 28943, // 38.8477(deg) 0.883283 - 29009, // 39.0234(deg) 0.885295 - 29074, // 39.1992(deg) 0.887287 - 29139, // 39.375(deg) 0.889259 - 29203, // 39.5508(deg) 0.891210 - 29266, // 39.7266(deg) 0.893142 - 29329, // 39.9023(deg) 0.895053 - 29391, // 40.0781(deg) 0.896944 - 29452, // 40.2539(deg) 0.898815 - 29513, // 40.4297(deg) 0.900666 - 29573, // 40.6055(deg) 0.902497 - 29632, // 40.7812(deg) 0.904308 - 29691, // 40.957(deg) 0.906100 - 29749, // 41.1328(deg) 0.907871 - 29806, // 41.3086(deg) 0.909623 - 29863, // 41.4844(deg) 0.911355 - 29919, // 41.6602(deg) 0.913067 - 29974, // 41.8359(deg) 0.914760 - 30029, // 42.0117(deg) 0.916433 - 30083, // 42.1875(deg) 0.918087 - 30137, // 42.3633(deg) 0.919721 - 30190, // 42.5391(deg) 0.921336 - 30242, // 42.7148(deg) 0.922932 - 30294, // 42.8906(deg) 0.924508 - 30345, // 43.0664(deg) 0.926065 - 30395, // 43.2422(deg) 0.927603 - 30445, // 43.418(deg) 0.929122 - 30494, // 43.5938(deg) 0.930622 - 30543, // 43.7695(deg) 0.932103 - 30591, // 43.9453(deg) 0.933565 - 30638, // 44.1211(deg) 0.935008 - 30685, // 44.2969(deg) 0.936433 - 30731, // 44.4727(deg) 0.937839 - 30776, // 44.6484(deg) 0.939226 - 30821, // 44.8242(deg) 0.940595 - 30865, // 45(deg) 0.941945 - 30909, // 45.1758(deg) 0.943277 - 30952, // 45.3516(deg) 0.944591 - 30994, // 45.5273(deg) 0.945887 - 31036, // 45.7031(deg) 0.947164 - 31077, // 45.8789(deg) 0.948423 - 31118, // 46.0547(deg) 0.949665 - 31158, // 46.2305(deg) 0.950888 - 31198, // 46.4062(deg) 0.952094 - 31237, // 46.582(deg) 0.953281 - 31275, // 46.7578(deg) 0.954452 - 31313, // 46.9336(deg) 0.955604 - 31350, // 47.1094(deg) 0.956739 - 31387, // 47.2852(deg) 0.957857 - 31423, // 47.4609(deg) 0.958958 - 31458, // 47.6367(deg) 0.960041 - 31493, // 47.8125(deg) 0.961107 - 31527, // 47.9883(deg) 0.962156 - 31561, // 48.1641(deg) 0.963188 - 31595, // 48.3398(deg) 0.964203 - 31627, // 48.5156(deg) 0.965201 - 31659, // 48.6914(deg) 0.966183 - 31691, // 48.8672(deg) 0.967148 - 31722, // 49.043(deg) 0.968097 - 31753, // 49.2188(deg) 0.969029 - 31783, // 49.3945(deg) 0.969945 - 31812, // 49.5703(deg) 0.970845 - 31841, // 49.7461(deg) 0.971728 - 31870, // 49.9219(deg) 0.972596 - 31897, // 50.0977(deg) 0.973447 - 31925, // 50.2734(deg) 0.974283 - 31952, // 50.4492(deg) 0.975103 - 31978, // 50.625(deg) 0.975908 - 32004, // 50.8008(deg) 0.976697 - 32029, // 50.9766(deg) 0.977470 - 32054, // 51.1523(deg) 0.978228 - 32078, // 51.3281(deg) 0.978971 - 32102, // 51.5039(deg) 0.979699 - 32126, // 51.6797(deg) 0.980412 - 32149, // 51.8555(deg) 0.981110 - 32171, // 52.0312(deg) 0.981793 - 32193, // 52.207(deg) 0.982462 - 32214, // 52.3828(deg) 0.983116 - 32235, // 52.5586(deg) 0.983755 - 32256, // 52.7344(deg) 0.984380 - 32276, // 52.9102(deg) 0.984991 - 32295, // 53.0859(deg) 0.985588 - 32314, // 53.2617(deg) 0.986170 - 32333, // 53.4375(deg) 0.986739 - 32351, // 53.6133(deg) 0.987294 - 32369, // 53.7891(deg) 0.987835 - 32386, // 53.9648(deg) 0.988363 - 32403, // 54.1406(deg) 0.988877 - 32419, // 54.3164(deg) 0.989377 - 32435, // 54.4922(deg) 0.989865 - 32451, // 54.668(deg) 0.990339 - 32466, // 54.8438(deg) 0.990801 - 32481, // 55.0195(deg) 0.991249 - 32495, // 55.1953(deg) 0.991685 - 32509, // 55.3711(deg) 0.992108 - 32522, // 55.5469(deg) 0.992518 - 32535, // 55.7227(deg) 0.992916 - 32548, // 55.8984(deg) 0.993302 - 32560, // 56.0742(deg) 0.993675 - 32572, // 56.25(deg) 0.994036 - 32584, // 56.4258(deg) 0.994386 - 32595, // 56.6016(deg) 0.994723 - 32605, // 56.7773(deg) 0.995049 - 32616, // 56.9531(deg) 0.995363 - 32625, // 57.1289(deg) 0.995666 - 32635, // 57.3047(deg) 0.995957 - 32644, // 57.4805(deg) 0.996237 - 32653, // 57.6562(deg) 0.996506 - 32661, // 57.832(deg) 0.996763 - 32670, // 58.0078(deg) 0.997010 - 32677, // 58.1836(deg) 0.997246 - 32685, // 58.3594(deg) 0.997472 - 32692, // 58.5352(deg) 0.997687 - 32698, // 58.7109(deg) 0.997891 - 32705, // 58.8867(deg) 0.998085 - 32711, // 59.0625(deg) 0.998269 - 32716, // 59.2383(deg) 0.998443 - 32722, // 59.4141(deg) 0.998607 - 32727, // 59.5898(deg) 0.998762 - 32732, // 59.7656(deg) 0.998906 - 32736, // 59.9414(deg) 0.999041 - 32740, // 60.1172(deg) 0.999166 - 32744, // 60.293(deg) 0.999283 - 32747, // 60.4688(deg) 0.999390 - 32751, // 60.6445(deg) 0.999488 - 32754, // 60.8203(deg) 0.999576 - 32756, // 60.9961(deg) 0.999657 - 32759, // 61.1719(deg) 0.999728 - 32761, // 61.3477(deg) 0.999791 - 32762, // 61.5234(deg) 0.999845 - 32764, // 61.6992(deg) 0.999891 - 32765, // 61.875(deg) 0.999929 - 32766, // 62.0508(deg) 0.999959 - 32767, // 62.2266(deg) 0.999980 - 32767, // 62.4023(deg) 0.999994 - 32767, // 62.5781(deg) 1.000000 - 32767, // 62.7539(deg) 0.999999 - 32767, // 62.9297(deg) 0.999990 - 32767, // 63.1055(deg) 0.999974 - 32766, // 63.2812(deg) 0.999950 - 32765, // 63.457(deg) 0.999920 - 32764, // 63.6328(deg) 0.999882 - 32762, // 63.8086(deg) 0.999837 - 32760, // 63.9844(deg) 0.999786 - 32759, // 64.1602(deg) 0.999728 - 32756, // 64.3359(deg) 0.999664 - 32754, // 64.5117(deg) 0.999593 - 32752, // 64.6875(deg) 0.999516 - 32749, // 64.8633(deg) 0.999433 - 32746, // 65.0391(deg) 0.999344 - 32743, // 65.2148(deg) 0.999249 - 32740, // 65.3906(deg) 0.999148 - 32736, // 65.5664(deg) 0.999041 - 32732, // 65.7422(deg) 0.998929 - 32729, // 65.918(deg) 0.998812 - 32725, // 66.0938(deg) 0.998689 - 32720, // 66.2695(deg) 0.998561 - 32716, // 66.4453(deg) 0.998428 - 32711, // 66.6211(deg) 0.998290 - 32707, // 66.7969(deg) 0.998147 - 32702, // 66.9727(deg) 0.997999 - 32697, // 67.1484(deg) 0.997847 - 32692, // 67.3242(deg) 0.997691 - 32687, // 67.5(deg) 0.997530 - 32681, // 67.6758(deg) 0.997364 - 32676, // 67.8516(deg) 0.997195 - 32670, // 68.0273(deg) 0.997022 - 32664, // 68.2031(deg) 0.996844 - 32658, // 68.3789(deg) 0.996663 - 32652, // 68.5547(deg) 0.996479 - 32646, // 68.7305(deg) 0.996290 - 32640, // 68.9062(deg) 0.996099 - 32633, // 69.082(deg) 0.995903 - 32627, // 69.2578(deg) 0.995705 - 32620, // 69.4336(deg) 0.995504 - 32613, // 69.6094(deg) 0.995299 - 32607, // 69.7852(deg) 0.995092 - 32600, // 69.9609(deg) 0.994882 - 32593, // 70.1367(deg) 0.994669 - 32586, // 70.3125(deg) 0.994454 - 32579, // 70.4883(deg) 0.994236 - 32571, // 70.6641(deg) 0.994016 - 32564, // 70.8398(deg) 0.993794 - 32557, // 71.0156(deg) 0.993569 - 32549, // 71.1914(deg) 0.993343 - 32542, // 71.3672(deg) 0.993114 - 32534, // 71.543(deg) 0.992884 - 32527, // 71.7188(deg) 0.992652 - 32519, // 71.8945(deg) 0.992419 - 32511, // 72.0703(deg) 0.992184 - 32504, // 72.2461(deg) 0.991947 - 32496, // 72.4219(deg) 0.991709 - 32488, // 72.5977(deg) 0.991471 - 32480, // 72.7734(deg) 0.991231 - 32472, // 72.9492(deg) 0.990989 - 32464, // 73.125(deg) 0.990748 - 32456, // 73.3008(deg) 0.990505 - 32448, // 73.4766(deg) 0.990261 - 32440, // 73.6523(deg) 0.990017 - 32432, // 73.8281(deg) 0.989773 - 32424, // 74.0039(deg) 0.989528 - 32416, // 74.1797(deg) 0.989283 - 32408, // 74.3555(deg) 0.989037 - 32400, // 74.5312(deg) 0.988791 - 32392, // 74.707(deg) 0.988546 - 32384, // 74.8828(deg) 0.988300 - 32376, // 75.0586(deg) 0.988055 - 32368, // 75.2344(deg) 0.987809 - 32360, // 75.4102(deg) 0.987565 - 32352, // 75.5859(deg) 0.987320 - 32344, // 75.7617(deg) 0.987076 - 32336, // 75.9375(deg) 0.986833 - 32328, // 76.1133(deg) 0.986590 - 32320, // 76.2891(deg) 0.986348 - 32312, // 76.4648(deg) 0.986107 - 32304, // 76.6406(deg) 0.985866 - 32297, // 76.8164(deg) 0.985627 - 32289, // 76.9922(deg) 0.985389 - 32281, // 77.168(deg) 0.985152 - 32273, // 77.3438(deg) 0.984916 - 32266, // 77.5195(deg) 0.984682 - 32258, // 77.6953(deg) 0.984449 - 32250, // 77.8711(deg) 0.984217 - 32243, // 78.0469(deg) 0.983987 - 32235, // 78.2227(deg) 0.983759 - 32228, // 78.3984(deg) 0.983532 - 32221, // 78.5742(deg) 0.983307 - 32213, // 78.75(deg) 0.983084 - 32206, // 78.9258(deg) 0.982863 - 32199, // 79.1016(deg) 0.982644 - 32192, // 79.2773(deg) 0.982427 - 32185, // 79.4531(deg) 0.982212 - 32178, // 79.6289(deg) 0.981999 - 32171, // 79.8047(deg) 0.981789 - 32164, // 79.9805(deg) 0.981580 - 32157, // 80.1562(deg) 0.981375 - 32151, // 80.332(deg) 0.981171 - 32144, // 80.5078(deg) 0.980971 - 32137, // 80.6836(deg) 0.980772 - 32131, // 80.8594(deg) 0.980577 - 32125, // 81.0352(deg) 0.980384 - 32118, // 81.2109(deg) 0.980194 - 32112, // 81.3867(deg) 0.980006 - 32106, // 81.5625(deg) 0.979822 - 32100, // 81.7383(deg) 0.979641 - 32095, // 81.9141(deg) 0.979462 - 32089, // 82.0898(deg) 0.979286 - 32083, // 82.2656(deg) 0.979114 - 32078, // 82.4414(deg) 0.978945 - 32072, // 82.6172(deg) 0.978779 - 32067, // 82.793(deg) 0.978616 - 32062, // 82.9688(deg) 0.978456 - 32056, // 83.1445(deg) 0.978300 - 32051, // 83.3203(deg) 0.978147 - 32047, // 83.4961(deg) 0.977998 - 32042, // 83.6719(deg) 0.977852 - 32037, // 83.8477(deg) 0.977709 - 32033, // 84.0234(deg) 0.977570 - 32028, // 84.1992(deg) 0.977435 - 32024, // 84.375(deg) 0.977303 - 32020, // 84.5508(deg) 0.977175 - 32015, // 84.7266(deg) 0.977051 - 32012, // 84.9023(deg) 0.976930 - 32008, // 85.0781(deg) 0.976813 - 32004, // 85.2539(deg) 0.976700 - 32000, // 85.4297(deg) 0.976591 - 31997, // 85.6055(deg) 0.976486 - 31994, // 85.7812(deg) 0.976384 - 31990, // 85.957(deg) 0.976287 - 31987, // 86.1328(deg) 0.976193 - 31984, // 86.3086(deg) 0.976103 - 31982, // 86.4844(deg) 0.976018 - 31979, // 86.6602(deg) 0.975936 - 31976, // 86.8359(deg) 0.975858 - 31974, // 87.0117(deg) 0.975785 - 31972, // 87.1875(deg) 0.975716 - 31970, // 87.3633(deg) 0.975650 - 31968, // 87.5391(deg) 0.975589 - 31966, // 87.7148(deg) 0.975532 - 31964, // 87.8906(deg) 0.975479 - 31962, // 88.0664(deg) 0.975431 - 31961, // 88.2422(deg) 0.975386 - 31960, // 88.418(deg) 0.975346 - 31958, // 88.5938(deg) 0.975310 - 31957, // 88.7695(deg) 0.975278 - 31956, // 88.9453(deg) 0.975250 - 31956, // 89.1211(deg) 0.975227 - 31955, // 89.2969(deg) 0.975208 - 31955, // 89.4727(deg) 0.975193 - 31954, // 89.6484(deg) 0.975182 - 31954, // 89.8242(deg) 0.975176 - 31954, // 90(deg) 0.975174 - 31954, // 90.1758(deg) 0.975176 - 31954, // 90.3516(deg) 0.975182 - 31955, // 90.5273(deg) 0.975193 - 31955, // 90.7031(deg) 0.975208 - 31956, // 90.8789(deg) 0.975227 - 31956, // 91.0547(deg) 0.975250 - 31957, // 91.2305(deg) 0.975278 - 31958, // 91.4062(deg) 0.975310 - 31960, // 91.582(deg) 0.975346 - 31961, // 91.7578(deg) 0.975386 - 31962, // 91.9336(deg) 0.975431 - 31964, // 92.1094(deg) 0.975479 - 31966, // 92.2852(deg) 0.975532 - 31968, // 92.4609(deg) 0.975589 - 31970, // 92.6367(deg) 0.975650 - 31972, // 92.8125(deg) 0.975716 - 31974, // 92.9883(deg) 0.975785 - 31976, // 93.1641(deg) 0.975858 - 31979, // 93.3398(deg) 0.975936 - 31982, // 93.5156(deg) 0.976018 - 31984, // 93.6914(deg) 0.976103 - 31987, // 93.8672(deg) 0.976193 - 31990, // 94.043(deg) 0.976287 - 31994, // 94.2188(deg) 0.976384 - 31997, // 94.3945(deg) 0.976486 - 32000, // 94.5703(deg) 0.976591 - 32004, // 94.7461(deg) 0.976700 - 32008, // 94.9219(deg) 0.976813 - 32012, // 95.0977(deg) 0.976930 - 32015, // 95.2734(deg) 0.977051 - 32020, // 95.4492(deg) 0.977175 - 32024, // 95.625(deg) 0.977303 - 32028, // 95.8008(deg) 0.977435 - 32033, // 95.9766(deg) 0.977570 - 32037, // 96.1523(deg) 0.977709 - 32042, // 96.3281(deg) 0.977852 - 32047, // 96.5039(deg) 0.977998 - 32051, // 96.6797(deg) 0.978147 - 32056, // 96.8555(deg) 0.978300 - 32062, // 97.0312(deg) 0.978456 - 32067, // 97.207(deg) 0.978616 - 32072, // 97.3828(deg) 0.978779 - 32078, // 97.5586(deg) 0.978945 - 32083, // 97.7344(deg) 0.979114 - 32089, // 97.9102(deg) 0.979286 - 32095, // 98.0859(deg) 0.979462 - 32100, // 98.2617(deg) 0.979641 - 32106, // 98.4375(deg) 0.979822 - 32112, // 98.6133(deg) 0.980006 - 32118, // 98.7891(deg) 0.980194 - 32125, // 98.9648(deg) 0.980384 - 32131, // 99.1406(deg) 0.980577 - 32137, // 99.3164(deg) 0.980772 - 32144, // 99.4922(deg) 0.980971 - 32151, // 99.668(deg) 0.981171 - 32157, // 99.8438(deg) 0.981375 - 32164, // 100.02(deg) 0.981580 - 32171, // 100.195(deg) 0.981789 - 32178, // 100.371(deg) 0.981999 - 32185, // 100.547(deg) 0.982212 - 32192, // 100.723(deg) 0.982427 - 32199, // 100.898(deg) 0.982644 - 32206, // 101.074(deg) 0.982863 - 32213, // 101.25(deg) 0.983084 - 32221, // 101.426(deg) 0.983307 - 32228, // 101.602(deg) 0.983532 - 32235, // 101.777(deg) 0.983759 - 32243, // 101.953(deg) 0.983987 - 32250, // 102.129(deg) 0.984217 - 32258, // 102.305(deg) 0.984449 - 32266, // 102.48(deg) 0.984682 - 32273, // 102.656(deg) 0.984916 - 32281, // 102.832(deg) 0.985152 - 32289, // 103.008(deg) 0.985389 - 32297, // 103.184(deg) 0.985627 - 32304, // 103.359(deg) 0.985866 - 32312, // 103.535(deg) 0.986107 - 32320, // 103.711(deg) 0.986348 - 32328, // 103.887(deg) 0.986590 - 32336, // 104.062(deg) 0.986833 - 32344, // 104.238(deg) 0.987076 - 32352, // 104.414(deg) 0.987320 - 32360, // 104.59(deg) 0.987565 - 32368, // 104.766(deg) 0.987809 - 32376, // 104.941(deg) 0.988055 - 32384, // 105.117(deg) 0.988300 - 32392, // 105.293(deg) 0.988546 - 32400, // 105.469(deg) 0.988791 - 32408, // 105.645(deg) 0.989037 - 32416, // 105.82(deg) 0.989283 - 32424, // 105.996(deg) 0.989528 - 32432, // 106.172(deg) 0.989773 - 32440, // 106.348(deg) 0.990017 - 32448, // 106.523(deg) 0.990261 - 32456, // 106.699(deg) 0.990505 - 32464, // 106.875(deg) 0.990748 - 32472, // 107.051(deg) 0.990989 - 32480, // 107.227(deg) 0.991231 - 32488, // 107.402(deg) 0.991471 - 32496, // 107.578(deg) 0.991709 - 32504, // 107.754(deg) 0.991947 - 32511, // 107.93(deg) 0.992184 - 32519, // 108.105(deg) 0.992419 - 32527, // 108.281(deg) 0.992652 - 32534, // 108.457(deg) 0.992884 - 32542, // 108.633(deg) 0.993114 - 32549, // 108.809(deg) 0.993343 - 32557, // 108.984(deg) 0.993569 - 32564, // 109.16(deg) 0.993794 - 32571, // 109.336(deg) 0.994016 - 32579, // 109.512(deg) 0.994236 - 32586, // 109.688(deg) 0.994454 - 32593, // 109.863(deg) 0.994669 - 32600, // 110.039(deg) 0.994882 - 32607, // 110.215(deg) 0.995092 - 32613, // 110.391(deg) 0.995299 - 32620, // 110.566(deg) 0.995504 - 32627, // 110.742(deg) 0.995705 - 32633, // 110.918(deg) 0.995903 - 32640, // 111.094(deg) 0.996099 - 32646, // 111.27(deg) 0.996290 - 32652, // 111.445(deg) 0.996479 - 32658, // 111.621(deg) 0.996663 - 32664, // 111.797(deg) 0.996844 - 32670, // 111.973(deg) 0.997022 - 32676, // 112.148(deg) 0.997195 - 32681, // 112.324(deg) 0.997364 - 32687, // 112.5(deg) 0.997530 - 32692, // 112.676(deg) 0.997691 - 32697, // 112.852(deg) 0.997847 - 32702, // 113.027(deg) 0.997999 - 32707, // 113.203(deg) 0.998147 - 32711, // 113.379(deg) 0.998290 - 32716, // 113.555(deg) 0.998428 - 32720, // 113.73(deg) 0.998561 - 32725, // 113.906(deg) 0.998689 - 32729, // 114.082(deg) 0.998812 - 32732, // 114.258(deg) 0.998929 - 32736, // 114.434(deg) 0.999041 - 32740, // 114.609(deg) 0.999148 - 32743, // 114.785(deg) 0.999249 - 32746, // 114.961(deg) 0.999344 - 32749, // 115.137(deg) 0.999433 - 32752, // 115.312(deg) 0.999516 - 32754, // 115.488(deg) 0.999593 - 32756, // 115.664(deg) 0.999664 - 32759, // 115.84(deg) 0.999728 - 32760, // 116.016(deg) 0.999786 - 32762, // 116.191(deg) 0.999837 - 32764, // 116.367(deg) 0.999882 - 32765, // 116.543(deg) 0.999920 - 32766, // 116.719(deg) 0.999950 - 32767, // 116.895(deg) 0.999974 - 32767, // 117.07(deg) 0.999990 - 32767, // 117.246(deg) 0.999999 - 32767, // 117.422(deg) 1.000000 - 32767, // 117.598(deg) 0.999994 - 32767, // 117.773(deg) 0.999980 - 32766, // 117.949(deg) 0.999959 - 32765, // 118.125(deg) 0.999929 - 32764, // 118.301(deg) 0.999891 - 32762, // 118.477(deg) 0.999845 - 32761, // 118.652(deg) 0.999791 - 32759, // 118.828(deg) 0.999728 - 32756, // 119.004(deg) 0.999657 - 32754, // 119.18(deg) 0.999576 - 32751, // 119.355(deg) 0.999488 - 32747, // 119.531(deg) 0.999390 - 32744, // 119.707(deg) 0.999283 - 32740, // 119.883(deg) 0.999166 - 32736, // 120.059(deg) 0.999041 - 32732, // 120.234(deg) 0.998906 - 32727, // 120.41(deg) 0.998762 - 32722, // 120.586(deg) 0.998607 - 32716, // 120.762(deg) 0.998443 - 32711, // 120.938(deg) 0.998269 - 32705, // 121.113(deg) 0.998085 - 32698, // 121.289(deg) 0.997891 - 32692, // 121.465(deg) 0.997687 - 32685, // 121.641(deg) 0.997472 - 32677, // 121.816(deg) 0.997246 - 32670, // 121.992(deg) 0.997010 - 32661, // 122.168(deg) 0.996763 - 32653, // 122.344(deg) 0.996506 - 32644, // 122.52(deg) 0.996237 - 32635, // 122.695(deg) 0.995957 - 32625, // 122.871(deg) 0.995666 - 32616, // 123.047(deg) 0.995363 - 32605, // 123.223(deg) 0.995049 - 32595, // 123.398(deg) 0.994723 - 32584, // 123.574(deg) 0.994386 - 32572, // 123.75(deg) 0.994036 - 32560, // 123.926(deg) 0.993675 - 32548, // 124.102(deg) 0.993302 - 32535, // 124.277(deg) 0.992916 - 32522, // 124.453(deg) 0.992518 - 32509, // 124.629(deg) 0.992108 - 32495, // 124.805(deg) 0.991685 - 32481, // 124.98(deg) 0.991249 - 32466, // 125.156(deg) 0.990801 - 32451, // 125.332(deg) 0.990339 - 32435, // 125.508(deg) 0.989865 - 32419, // 125.684(deg) 0.989377 - 32403, // 125.859(deg) 0.988877 - 32386, // 126.035(deg) 0.988363 - 32369, // 126.211(deg) 0.987835 - 32351, // 126.387(deg) 0.987294 - 32333, // 126.562(deg) 0.986739 - 32314, // 126.738(deg) 0.986170 - 32295, // 126.914(deg) 0.985588 - 32276, // 127.09(deg) 0.984991 - 32256, // 127.266(deg) 0.984380 - 32235, // 127.441(deg) 0.983755 - 32214, // 127.617(deg) 0.983116 - 32193, // 127.793(deg) 0.982462 - 32171, // 127.969(deg) 0.981793 - 32149, // 128.145(deg) 0.981110 - 32126, // 128.32(deg) 0.980412 - 32102, // 128.496(deg) 0.979699 - 32078, // 128.672(deg) 0.978971 - 32054, // 128.848(deg) 0.978228 - 32029, // 129.023(deg) 0.977470 - 32004, // 129.199(deg) 0.976697 - 31978, // 129.375(deg) 0.975908 - 31952, // 129.551(deg) 0.975103 - 31925, // 129.727(deg) 0.974283 - 31897, // 129.902(deg) 0.973447 - 31870, // 130.078(deg) 0.972596 - 31841, // 130.254(deg) 0.971728 - 31812, // 130.43(deg) 0.970845 - 31783, // 130.605(deg) 0.969945 - 31753, // 130.781(deg) 0.969029 - 31722, // 130.957(deg) 0.968097 - 31691, // 131.133(deg) 0.967148 - 31659, // 131.309(deg) 0.966183 - 31627, // 131.484(deg) 0.965201 - 31595, // 131.66(deg) 0.964203 - 31561, // 131.836(deg) 0.963188 - 31527, // 132.012(deg) 0.962156 - 31493, // 132.188(deg) 0.961107 - 31458, // 132.363(deg) 0.960041 - 31423, // 132.539(deg) 0.958958 - 31387, // 132.715(deg) 0.957857 - 31350, // 132.891(deg) 0.956739 - 31313, // 133.066(deg) 0.955604 - 31275, // 133.242(deg) 0.954452 - 31237, // 133.418(deg) 0.953281 - 31198, // 133.594(deg) 0.952094 - 31158, // 133.77(deg) 0.950888 - 31118, // 133.945(deg) 0.949665 - 31077, // 134.121(deg) 0.948423 - 31036, // 134.297(deg) 0.947164 - 30994, // 134.473(deg) 0.945887 - 30952, // 134.648(deg) 0.944591 - 30909, // 134.824(deg) 0.943277 - 30865, // 135(deg) 0.941945 - 30821, // 135.176(deg) 0.940595 - 30776, // 135.352(deg) 0.939226 - 30731, // 135.527(deg) 0.937839 - 30685, // 135.703(deg) 0.936433 - 30638, // 135.879(deg) 0.935008 - 30591, // 136.055(deg) 0.933565 - 30543, // 136.23(deg) 0.932103 - 30494, // 136.406(deg) 0.930622 - 30445, // 136.582(deg) 0.929122 - 30395, // 136.758(deg) 0.927603 - 30345, // 136.934(deg) 0.926065 - 30294, // 137.109(deg) 0.924508 - 30242, // 137.285(deg) 0.922932 - 30190, // 137.461(deg) 0.921336 - 30137, // 137.637(deg) 0.919721 - 30083, // 137.812(deg) 0.918087 - 30029, // 137.988(deg) 0.916433 - 29974, // 138.164(deg) 0.914760 - 29919, // 138.34(deg) 0.913067 - 29863, // 138.516(deg) 0.911355 - 29806, // 138.691(deg) 0.909623 - 29749, // 138.867(deg) 0.907871 - 29691, // 139.043(deg) 0.906100 - 29632, // 139.219(deg) 0.904308 - 29573, // 139.395(deg) 0.902497 - 29513, // 139.57(deg) 0.900666 - 29452, // 139.746(deg) 0.898815 - 29391, // 139.922(deg) 0.896944 - 29329, // 140.098(deg) 0.895053 - 29266, // 140.273(deg) 0.893142 - 29203, // 140.449(deg) 0.891210 - 29139, // 140.625(deg) 0.889259 - 29074, // 140.801(deg) 0.887287 - 29009, // 140.977(deg) 0.885295 - 28943, // 141.152(deg) 0.883283 - 28876, // 141.328(deg) 0.881250 - 28809, // 141.504(deg) 0.879197 - 28741, // 141.68(deg) 0.877124 - 28672, // 141.855(deg) 0.875030 - 28603, // 142.031(deg) 0.872916 - 28533, // 142.207(deg) 0.870781 - 28463, // 142.383(deg) 0.868625 - 28391, // 142.559(deg) 0.866450 - 28319, // 142.734(deg) 0.864253 - 28247, // 142.91(deg) 0.862036 - 28173, // 143.086(deg) 0.859798 - 28099, // 143.262(deg) 0.857540 - 28025, // 143.438(deg) 0.855261 - 27949, // 143.613(deg) 0.852961 - 27873, // 143.789(deg) 0.850640 - 27797, // 143.965(deg) 0.848299 - 27719, // 144.141(deg) 0.845937 - 27641, // 144.316(deg) 0.843554 - 27562, // 144.492(deg) 0.841151 - 27483, // 144.668(deg) 0.838726 - 27403, // 144.844(deg) 0.836281 - 27322, // 145.02(deg) 0.833815 - 27240, // 145.195(deg) 0.831328 - 27158, // 145.371(deg) 0.828821 - 27075, // 145.547(deg) 0.826292 - 26992, // 145.723(deg) 0.823743 - 26908, // 145.898(deg) 0.821172 - 26823, // 146.074(deg) 0.818581 - 26737, // 146.25(deg) 0.815969 - 26651, // 146.426(deg) 0.813337 - 26564, // 146.602(deg) 0.810683 - 26476, // 146.777(deg) 0.808008 - 26388, // 146.953(deg) 0.805313 - 26299, // 147.129(deg) 0.802597 - 26209, // 147.305(deg) 0.799860 - 26119, // 147.48(deg) 0.797102 - 26028, // 147.656(deg) 0.794323 - 25936, // 147.832(deg) 0.791523 - 25844, // 148.008(deg) 0.788703 - 25751, // 148.184(deg) 0.785862 - 25657, // 148.359(deg) 0.783000 - 25562, // 148.535(deg) 0.780117 - 25467, // 148.711(deg) 0.777214 - 25371, // 148.887(deg) 0.774290 - 25275, // 149.062(deg) 0.771345 - 25178, // 149.238(deg) 0.768379 - 25080, // 149.414(deg) 0.765393 - 24981, // 149.59(deg) 0.762386 - 24882, // 149.766(deg) 0.759359 - 24782, // 149.941(deg) 0.756311 - 24682, // 150.117(deg) 0.753242 - 24581, // 150.293(deg) 0.750153 - 24479, // 150.469(deg) 0.747044 - 24376, // 150.645(deg) 0.743914 - 24273, // 150.82(deg) 0.740763 - 24169, // 150.996(deg) 0.737592 - 24064, // 151.172(deg) 0.734401 - 23959, // 151.348(deg) 0.731189 - 23853, // 151.523(deg) 0.727958 - 23747, // 151.699(deg) 0.724705 - 23639, // 151.875(deg) 0.721433 - 23532, // 152.051(deg) 0.718141 - 23423, // 152.227(deg) 0.714828 - 23314, // 152.402(deg) 0.711495 - 23204, // 152.578(deg) 0.708143 - 23093, // 152.754(deg) 0.704770 - 22982, // 152.93(deg) 0.701377 - 22870, // 153.105(deg) 0.697965 - 22758, // 153.281(deg) 0.694532 - 22645, // 153.457(deg) 0.691080 - 22531, // 153.633(deg) 0.687608 - 22417, // 153.809(deg) 0.684117 - 22302, // 153.984(deg) 0.680606 - 22186, // 154.16(deg) 0.677075 - 22070, // 154.336(deg) 0.673525 - 21953, // 154.512(deg) 0.669955 - 21835, // 154.688(deg) 0.666366 - 21717, // 154.863(deg) 0.662758 - 21598, // 155.039(deg) 0.659131 - 21478, // 155.215(deg) 0.655484 - 21358, // 155.391(deg) 0.651818 - 21238, // 155.566(deg) 0.648133 - 21116, // 155.742(deg) 0.644429 - 20994, // 155.918(deg) 0.640707 - 20872, // 156.094(deg) 0.636965 - 20748, // 156.27(deg) 0.633205 - 20625, // 156.445(deg) 0.629426 - 20500, // 156.621(deg) 0.625628 - 20375, // 156.797(deg) 0.621812 - 20249, // 156.973(deg) 0.617978 - 20123, // 157.148(deg) 0.614125 - 19996, // 157.324(deg) 0.610253 - 19869, // 157.5(deg) 0.606364 - 19741, // 157.676(deg) 0.602456 - 19612, // 157.852(deg) 0.598531 - 19483, // 158.027(deg) 0.594587 - 19353, // 158.203(deg) 0.590626 - 19223, // 158.379(deg) 0.586647 - 19092, // 158.555(deg) 0.582650 - 18960, // 158.73(deg) 0.578635 - 18828, // 158.906(deg) 0.574603 - 18695, // 159.082(deg) 0.570554 - 18562, // 159.258(deg) 0.566487 - 18428, // 159.434(deg) 0.562403 - 18294, // 159.609(deg) 0.558302 - 18159, // 159.785(deg) 0.554184 - 18024, // 159.961(deg) 0.550049 - 17887, // 160.137(deg) 0.545897 - 17751, // 160.312(deg) 0.541729 - 17614, // 160.488(deg) 0.537543 - 17476, // 160.664(deg) 0.533342 - 17338, // 160.84(deg) 0.529124 - 17199, // 161.016(deg) 0.524889 - 17060, // 161.191(deg) 0.520638 - 16920, // 161.367(deg) 0.516372 - 16780, // 161.543(deg) 0.512089 - 16639, // 161.719(deg) 0.507790 - 16497, // 161.895(deg) 0.503476 - 16356, // 162.07(deg) 0.499146 - 16213, // 162.246(deg) 0.494800 - 16070, // 162.422(deg) 0.490439 - 15927, // 162.598(deg) 0.486063 - 15783, // 162.773(deg) 0.481671 - 15639, // 162.949(deg) 0.477265 - 15494, // 163.125(deg) 0.472843 - 15348, // 163.301(deg) 0.468407 - 15202, // 163.477(deg) 0.463956 - 15056, // 163.652(deg) 0.459490 - 14909, // 163.828(deg) 0.455010 - 14762, // 164.004(deg) 0.450515 - 14614, // 164.18(deg) 0.446007 - 14466, // 164.355(deg) 0.441484 - 14317, // 164.531(deg) 0.436947 - 14168, // 164.707(deg) 0.432396 - 14019, // 164.883(deg) 0.427832 - 13869, // 165.059(deg) 0.423254 - 13718, // 165.234(deg) 0.418663 - 13567, // 165.41(deg) 0.414058 - 13416, // 165.586(deg) 0.409440 - 13264, // 165.762(deg) 0.404809 - 13112, // 165.938(deg) 0.400165 - 12960, // 166.113(deg) 0.395508 - 12807, // 166.289(deg) 0.390839 - 12653, // 166.465(deg) 0.386157 - 12499, // 166.641(deg) 0.381463 - 12345, // 166.816(deg) 0.376756 - 12190, // 166.992(deg) 0.372037 - 12035, // 167.168(deg) 0.367307 - 11880, // 167.344(deg) 0.362564 - 11724, // 167.52(deg) 0.357810 - 11568, // 167.695(deg) 0.353045 - 11412, // 167.871(deg) 0.348268 - 11255, // 168.047(deg) 0.343479 - 11097, // 168.223(deg) 0.338680 - 10940, // 168.398(deg) 0.333870 - 10782, // 168.574(deg) 0.329048 - 10623, // 168.75(deg) 0.324217 - 10465, // 168.926(deg) 0.319374 - 10306, // 169.102(deg) 0.314522 - 10146, // 169.277(deg) 0.309659 - 9987, // 169.453(deg) 0.304786 - 9827, // 169.629(deg) 0.299903 - 9666, // 169.805(deg) 0.295010 - 9506, // 169.98(deg) 0.290108 - 9345, // 170.156(deg) 0.285196 - 9184, // 170.332(deg) 0.280275 - 9022, // 170.508(deg) 0.275345 - 8860, // 170.684(deg) 0.270406 - 8698, // 170.859(deg) 0.265457 - 8536, // 171.035(deg) 0.260501 - 8373, // 171.211(deg) 0.255535 - 8210, // 171.387(deg) 0.250562 - 8047, // 171.562(deg) 0.245580 - 7883, // 171.738(deg) 0.240590 - 7719, // 171.914(deg) 0.235592 - 7555, // 172.09(deg) 0.230587 - 7391, // 172.266(deg) 0.225573 - 7227, // 172.441(deg) 0.220553 - 7062, // 172.617(deg) 0.215525 - 6897, // 172.793(deg) 0.210490 - 6732, // 172.969(deg) 0.205448 - 6566, // 173.145(deg) 0.200400 - 6401, // 173.32(deg) 0.195344 - 6235, // 173.496(deg) 0.190283 - 6069, // 173.672(deg) 0.185215 - 5902, // 173.848(deg) 0.180141 - 5736, // 174.023(deg) 0.175061 - 5569, // 174.199(deg) 0.169975 - 5402, // 174.375(deg) 0.164884 - 5235, // 174.551(deg) 0.159787 - 5068, // 174.727(deg) 0.154685 - 4901, // 174.902(deg) 0.149577 - 4733, // 175.078(deg) 0.144465 - 4566, // 175.254(deg) 0.139348 - 4398, // 175.43(deg) 0.134226 - 4230, // 175.605(deg) 0.129100 - 4062, // 175.781(deg) 0.123970 - 3894, // 175.957(deg) 0.118836 - 3725, // 176.133(deg) 0.113697 - 3557, // 176.309(deg) 0.108555 - 3388, // 176.484(deg) 0.103409 - 3219, // 176.66(deg) 0.098260 - 3050, // 176.836(deg) 0.093107 - 2882, // 177.012(deg) 0.087952 - 2712, // 177.188(deg) 0.082793 - 2543, // 177.363(deg) 0.077632 - 2374, // 177.539(deg) 0.072468 - 2205, // 177.715(deg) 0.067302 - 2035, // 177.891(deg) 0.062134 - 1866, // 178.066(deg) 0.056963 - 1697, // 178.242(deg) 0.051791 - 1527, // 178.418(deg) 0.046617 - 1357, // 178.594(deg) 0.041441 - 1188, // 178.77(deg) 0.036264 - 1018, // 178.945(deg) 0.031085 - 848, // 179.121(deg) 0.025906 - 679, // 179.297(deg) 0.020726 - 509, // 179.473(deg) 0.015545 - 339, // 179.648(deg) 0.010364 - 169, // 179.824(deg) 0.005182 - 0, // 180(deg) 0.000000 - -169, // 180.176(deg) -0.005182 - -339, // 180.352(deg) -0.010364 - -509, // 180.527(deg) -0.015545 - -679, // 180.703(deg) -0.020726 - -848, // 180.879(deg) -0.025906 - -1018, // 181.055(deg) -0.031085 - -1188, // 181.23(deg) -0.036264 - -1357, // 181.406(deg) -0.041441 - -1527, // 181.582(deg) -0.046617 - -1697, // 181.758(deg) -0.051791 - -1866, // 181.934(deg) -0.056963 - -2035, // 182.109(deg) -0.062134 - -2205, // 182.285(deg) -0.067302 - -2374, // 182.461(deg) -0.072468 - -2543, // 182.637(deg) -0.077632 - -2712, // 182.812(deg) -0.082793 - -2882, // 182.988(deg) -0.087952 - -3050, // 183.164(deg) -0.093107 - -3219, // 183.34(deg) -0.098260 - -3388, // 183.516(deg) -0.103409 - -3557, // 183.691(deg) -0.108555 - -3725, // 183.867(deg) -0.113697 - -3894, // 184.043(deg) -0.118836 - -4062, // 184.219(deg) -0.123970 - -4230, // 184.395(deg) -0.129100 - -4398, // 184.57(deg) -0.134226 - -4566, // 184.746(deg) -0.139348 - -4733, // 184.922(deg) -0.144465 - -4901, // 185.098(deg) -0.149577 - -5068, // 185.273(deg) -0.154685 - -5235, // 185.449(deg) -0.159787 - -5402, // 185.625(deg) -0.164884 - -5569, // 185.801(deg) -0.169975 - -5736, // 185.977(deg) -0.175061 - -5902, // 186.152(deg) -0.180141 - -6069, // 186.328(deg) -0.185215 - -6235, // 186.504(deg) -0.190283 - -6401, // 186.68(deg) -0.195344 - -6566, // 186.855(deg) -0.200400 - -6732, // 187.031(deg) -0.205448 - -6897, // 187.207(deg) -0.210490 - -7062, // 187.383(deg) -0.215525 - -7227, // 187.559(deg) -0.220553 - -7391, // 187.734(deg) -0.225573 - -7555, // 187.91(deg) -0.230587 - -7719, // 188.086(deg) -0.235592 - -7883, // 188.262(deg) -0.240590 - -8047, // 188.438(deg) -0.245580 - -8210, // 188.613(deg) -0.250562 - -8373, // 188.789(deg) -0.255535 - -8536, // 188.965(deg) -0.260501 - -8698, // 189.141(deg) -0.265457 - -8860, // 189.316(deg) -0.270406 - -9022, // 189.492(deg) -0.275345 - -9184, // 189.668(deg) -0.280275 - -9345, // 189.844(deg) -0.285196 - -9506, // 190.02(deg) -0.290108 - -9666, // 190.195(deg) -0.295010 - -9827, // 190.371(deg) -0.299903 - -9987, // 190.547(deg) -0.304786 - -10146, // 190.723(deg) -0.309659 - -10306, // 190.898(deg) -0.314522 - -10465, // 191.074(deg) -0.319374 - -10623, // 191.25(deg) -0.324217 - -10782, // 191.426(deg) -0.329048 - -10940, // 191.602(deg) -0.333870 - -11097, // 191.777(deg) -0.338680 - -11255, // 191.953(deg) -0.343479 - -11412, // 192.129(deg) -0.348268 - -11568, // 192.305(deg) -0.353045 - -11724, // 192.48(deg) -0.357810 - -11880, // 192.656(deg) -0.362564 - -12035, // 192.832(deg) -0.367307 - -12190, // 193.008(deg) -0.372037 - -12345, // 193.184(deg) -0.376756 - -12499, // 193.359(deg) -0.381463 - -12653, // 193.535(deg) -0.386157 - -12807, // 193.711(deg) -0.390839 - -12960, // 193.887(deg) -0.395508 - -13112, // 194.062(deg) -0.400165 - -13264, // 194.238(deg) -0.404809 - -13416, // 194.414(deg) -0.409440 - -13567, // 194.59(deg) -0.414058 - -13718, // 194.766(deg) -0.418663 - -13869, // 194.941(deg) -0.423254 - -14019, // 195.117(deg) -0.427832 - -14168, // 195.293(deg) -0.432396 - -14317, // 195.469(deg) -0.436947 - -14466, // 195.645(deg) -0.441484 - -14614, // 195.82(deg) -0.446007 - -14762, // 195.996(deg) -0.450515 - -14909, // 196.172(deg) -0.455010 - -15056, // 196.348(deg) -0.459490 - -15202, // 196.523(deg) -0.463956 - -15348, // 196.699(deg) -0.468407 - -15494, // 196.875(deg) -0.472843 - -15639, // 197.051(deg) -0.477265 - -15783, // 197.227(deg) -0.481671 - -15927, // 197.402(deg) -0.486063 - -16070, // 197.578(deg) -0.490439 - -16213, // 197.754(deg) -0.494800 - -16356, // 197.93(deg) -0.499146 - -16497, // 198.105(deg) -0.503476 - -16639, // 198.281(deg) -0.507790 - -16780, // 198.457(deg) -0.512089 - -16920, // 198.633(deg) -0.516372 - -17060, // 198.809(deg) -0.520638 - -17199, // 198.984(deg) -0.524889 - -17338, // 199.16(deg) -0.529124 - -17476, // 199.336(deg) -0.533342 - -17614, // 199.512(deg) -0.537543 - -17751, // 199.688(deg) -0.541729 - -17887, // 199.863(deg) -0.545897 - -18024, // 200.039(deg) -0.550049 - -18159, // 200.215(deg) -0.554184 - -18294, // 200.391(deg) -0.558302 - -18428, // 200.566(deg) -0.562403 - -18562, // 200.742(deg) -0.566487 - -18695, // 200.918(deg) -0.570554 - -18828, // 201.094(deg) -0.574603 - -18960, // 201.27(deg) -0.578635 - -19092, // 201.445(deg) -0.582650 - -19223, // 201.621(deg) -0.586647 - -19353, // 201.797(deg) -0.590626 - -19483, // 201.973(deg) -0.594587 - -19612, // 202.148(deg) -0.598531 - -19741, // 202.324(deg) -0.602456 - -19869, // 202.5(deg) -0.606364 - -19996, // 202.676(deg) -0.610253 - -20123, // 202.852(deg) -0.614125 - -20249, // 203.027(deg) -0.617978 - -20375, // 203.203(deg) -0.621812 - -20500, // 203.379(deg) -0.625628 - -20625, // 203.555(deg) -0.629426 - -20748, // 203.73(deg) -0.633205 - -20872, // 203.906(deg) -0.636965 - -20994, // 204.082(deg) -0.640707 - -21116, // 204.258(deg) -0.644429 - -21238, // 204.434(deg) -0.648133 - -21358, // 204.609(deg) -0.651818 - -21478, // 204.785(deg) -0.655484 - -21598, // 204.961(deg) -0.659131 - -21717, // 205.137(deg) -0.662758 - -21835, // 205.312(deg) -0.666366 - -21953, // 205.488(deg) -0.669955 - -22070, // 205.664(deg) -0.673525 - -22186, // 205.84(deg) -0.677075 - -22302, // 206.016(deg) -0.680606 - -22417, // 206.191(deg) -0.684117 - -22531, // 206.367(deg) -0.687608 - -22645, // 206.543(deg) -0.691080 - -22758, // 206.719(deg) -0.694532 - -22870, // 206.895(deg) -0.697965 - -22982, // 207.07(deg) -0.701377 - -23093, // 207.246(deg) -0.704770 - -23204, // 207.422(deg) -0.708143 - -23314, // 207.598(deg) -0.711495 - -23423, // 207.773(deg) -0.714828 - -23532, // 207.949(deg) -0.718141 - -23639, // 208.125(deg) -0.721433 - -23747, // 208.301(deg) -0.724705 - -23853, // 208.477(deg) -0.727958 - -23959, // 208.652(deg) -0.731189 - -24064, // 208.828(deg) -0.734401 - -24169, // 209.004(deg) -0.737592 - -24273, // 209.18(deg) -0.740763 - -24376, // 209.355(deg) -0.743914 - -24479, // 209.531(deg) -0.747044 - -24581, // 209.707(deg) -0.750153 - -24682, // 209.883(deg) -0.753242 - -24782, // 210.059(deg) -0.756311 - -24882, // 210.234(deg) -0.759359 - -24981, // 210.41(deg) -0.762386 - -25080, // 210.586(deg) -0.765393 - -25178, // 210.762(deg) -0.768379 - -25275, // 210.938(deg) -0.771345 - -25371, // 211.113(deg) -0.774290 - -25467, // 211.289(deg) -0.777214 - -25562, // 211.465(deg) -0.780117 - -25657, // 211.641(deg) -0.783000 - -25751, // 211.816(deg) -0.785862 - -25844, // 211.992(deg) -0.788703 - -25936, // 212.168(deg) -0.791523 - -26028, // 212.344(deg) -0.794323 - -26119, // 212.52(deg) -0.797102 - -26209, // 212.695(deg) -0.799860 - -26299, // 212.871(deg) -0.802597 - -26388, // 213.047(deg) -0.805313 - -26476, // 213.223(deg) -0.808008 - -26564, // 213.398(deg) -0.810683 - -26651, // 213.574(deg) -0.813337 - -26737, // 213.75(deg) -0.815969 - -26823, // 213.926(deg) -0.818581 - -26908, // 214.102(deg) -0.821172 - -26992, // 214.277(deg) -0.823743 - -27075, // 214.453(deg) -0.826292 - -27158, // 214.629(deg) -0.828821 - -27240, // 214.805(deg) -0.831328 - -27322, // 214.98(deg) -0.833815 - -27403, // 215.156(deg) -0.836281 - -27483, // 215.332(deg) -0.838726 - -27562, // 215.508(deg) -0.841151 - -27641, // 215.684(deg) -0.843554 - -27719, // 215.859(deg) -0.845937 - -27797, // 216.035(deg) -0.848299 - -27873, // 216.211(deg) -0.850640 - -27949, // 216.387(deg) -0.852961 - -28025, // 216.562(deg) -0.855261 - -28099, // 216.738(deg) -0.857540 - -28173, // 216.914(deg) -0.859798 - -28247, // 217.09(deg) -0.862036 - -28319, // 217.266(deg) -0.864253 - -28391, // 217.441(deg) -0.866450 - -28463, // 217.617(deg) -0.868625 - -28533, // 217.793(deg) -0.870781 - -28603, // 217.969(deg) -0.872916 - -28672, // 218.145(deg) -0.875030 - -28741, // 218.32(deg) -0.877124 - -28809, // 218.496(deg) -0.879197 - -28876, // 218.672(deg) -0.881250 - -28943, // 218.848(deg) -0.883283 - -29009, // 219.023(deg) -0.885295 - -29074, // 219.199(deg) -0.887287 - -29139, // 219.375(deg) -0.889259 - -29203, // 219.551(deg) -0.891210 - -29266, // 219.727(deg) -0.893142 - -29329, // 219.902(deg) -0.895053 - -29391, // 220.078(deg) -0.896944 - -29452, // 220.254(deg) -0.898815 - -29513, // 220.43(deg) -0.900666 - -29573, // 220.605(deg) -0.902497 - -29632, // 220.781(deg) -0.904308 - -29691, // 220.957(deg) -0.906100 - -29749, // 221.133(deg) -0.907871 - -29806, // 221.309(deg) -0.909623 - -29863, // 221.484(deg) -0.911355 - -29919, // 221.66(deg) -0.913067 - -29974, // 221.836(deg) -0.914760 - -30029, // 222.012(deg) -0.916433 - -30083, // 222.188(deg) -0.918087 - -30137, // 222.363(deg) -0.919721 - -30190, // 222.539(deg) -0.921336 - -30242, // 222.715(deg) -0.922932 - -30294, // 222.891(deg) -0.924508 - -30345, // 223.066(deg) -0.926065 - -30395, // 223.242(deg) -0.927603 - -30445, // 223.418(deg) -0.929122 - -30494, // 223.594(deg) -0.930622 - -30543, // 223.77(deg) -0.932103 - -30591, // 223.945(deg) -0.933565 - -30638, // 224.121(deg) -0.935008 - -30685, // 224.297(deg) -0.936433 - -30731, // 224.473(deg) -0.937839 - -30776, // 224.648(deg) -0.939226 - -30821, // 224.824(deg) -0.940595 - -30865, // 225(deg) -0.941945 - -30909, // 225.176(deg) -0.943277 - -30952, // 225.352(deg) -0.944591 - -30994, // 225.527(deg) -0.945887 - -31036, // 225.703(deg) -0.947164 - -31077, // 225.879(deg) -0.948423 - -31118, // 226.055(deg) -0.949665 - -31158, // 226.23(deg) -0.950888 - -31198, // 226.406(deg) -0.952094 - -31237, // 226.582(deg) -0.953281 - -31275, // 226.758(deg) -0.954452 - -31313, // 226.934(deg) -0.955604 - -31350, // 227.109(deg) -0.956739 - -31387, // 227.285(deg) -0.957857 - -31423, // 227.461(deg) -0.958958 - -31458, // 227.637(deg) -0.960041 - -31493, // 227.812(deg) -0.961107 - -31527, // 227.988(deg) -0.962156 - -31561, // 228.164(deg) -0.963188 - -31595, // 228.34(deg) -0.964203 - -31627, // 228.516(deg) -0.965201 - -31659, // 228.691(deg) -0.966183 - -31691, // 228.867(deg) -0.967148 - -31722, // 229.043(deg) -0.968097 - -31753, // 229.219(deg) -0.969029 - -31783, // 229.395(deg) -0.969945 - -31812, // 229.57(deg) -0.970845 - -31841, // 229.746(deg) -0.971728 - -31870, // 229.922(deg) -0.972596 - -31897, // 230.098(deg) -0.973447 - -31925, // 230.273(deg) -0.974283 - -31952, // 230.449(deg) -0.975103 - -31978, // 230.625(deg) -0.975908 - -32004, // 230.801(deg) -0.976697 - -32029, // 230.977(deg) -0.977470 - -32054, // 231.152(deg) -0.978228 - -32078, // 231.328(deg) -0.978971 - -32102, // 231.504(deg) -0.979699 - -32126, // 231.68(deg) -0.980412 - -32149, // 231.855(deg) -0.981110 - -32171, // 232.031(deg) -0.981793 - -32193, // 232.207(deg) -0.982462 - -32214, // 232.383(deg) -0.983116 - -32235, // 232.559(deg) -0.983755 - -32256, // 232.734(deg) -0.984380 - -32276, // 232.91(deg) -0.984991 - -32295, // 233.086(deg) -0.985588 - -32314, // 233.262(deg) -0.986170 - -32333, // 233.438(deg) -0.986739 - -32351, // 233.613(deg) -0.987294 - -32369, // 233.789(deg) -0.987835 - -32386, // 233.965(deg) -0.988363 - -32403, // 234.141(deg) -0.988877 - -32419, // 234.316(deg) -0.989377 - -32435, // 234.492(deg) -0.989865 - -32451, // 234.668(deg) -0.990339 - -32466, // 234.844(deg) -0.990801 - -32481, // 235.02(deg) -0.991249 - -32495, // 235.195(deg) -0.991685 - -32509, // 235.371(deg) -0.992108 - -32522, // 235.547(deg) -0.992518 - -32535, // 235.723(deg) -0.992916 - -32548, // 235.898(deg) -0.993302 - -32560, // 236.074(deg) -0.993675 - -32572, // 236.25(deg) -0.994036 - -32584, // 236.426(deg) -0.994386 - -32595, // 236.602(deg) -0.994723 - -32605, // 236.777(deg) -0.995049 - -32616, // 236.953(deg) -0.995363 - -32625, // 237.129(deg) -0.995666 - -32635, // 237.305(deg) -0.995957 - -32644, // 237.48(deg) -0.996237 - -32653, // 237.656(deg) -0.996506 - -32661, // 237.832(deg) -0.996763 - -32670, // 238.008(deg) -0.997010 - -32677, // 238.184(deg) -0.997246 - -32685, // 238.359(deg) -0.997472 - -32692, // 238.535(deg) -0.997687 - -32698, // 238.711(deg) -0.997891 - -32705, // 238.887(deg) -0.998085 - -32711, // 239.062(deg) -0.998269 - -32716, // 239.238(deg) -0.998443 - -32722, // 239.414(deg) -0.998607 - -32727, // 239.59(deg) -0.998762 - -32732, // 239.766(deg) -0.998906 - -32736, // 239.941(deg) -0.999041 - -32740, // 240.117(deg) -0.999166 - -32744, // 240.293(deg) -0.999283 - -32747, // 240.469(deg) -0.999390 - -32751, // 240.645(deg) -0.999488 - -32754, // 240.82(deg) -0.999576 - -32756, // 240.996(deg) -0.999657 - -32759, // 241.172(deg) -0.999728 - -32761, // 241.348(deg) -0.999791 - -32762, // 241.523(deg) -0.999845 - -32764, // 241.699(deg) -0.999891 - -32765, // 241.875(deg) -0.999929 - -32766, // 242.051(deg) -0.999959 - -32767, // 242.227(deg) -0.999980 - -32767, // 242.402(deg) -0.999994 - -32768, // 242.578(deg) -1.000000 - -32767, // 242.754(deg) -0.999999 - -32767, // 242.93(deg) -0.999990 - -32767, // 243.105(deg) -0.999974 - -32766, // 243.281(deg) -0.999950 - -32765, // 243.457(deg) -0.999920 - -32764, // 243.633(deg) -0.999882 - -32762, // 243.809(deg) -0.999837 - -32760, // 243.984(deg) -0.999786 - -32759, // 244.16(deg) -0.999728 - -32756, // 244.336(deg) -0.999664 - -32754, // 244.512(deg) -0.999593 - -32752, // 244.688(deg) -0.999516 - -32749, // 244.863(deg) -0.999433 - -32746, // 245.039(deg) -0.999344 - -32743, // 245.215(deg) -0.999249 - -32740, // 245.391(deg) -0.999148 - -32736, // 245.566(deg) -0.999041 - -32732, // 245.742(deg) -0.998929 - -32729, // 245.918(deg) -0.998812 - -32725, // 246.094(deg) -0.998689 - -32720, // 246.27(deg) -0.998561 - -32716, // 246.445(deg) -0.998428 - -32711, // 246.621(deg) -0.998290 - -32707, // 246.797(deg) -0.998147 - -32702, // 246.973(deg) -0.997999 - -32697, // 247.148(deg) -0.997847 - -32692, // 247.324(deg) -0.997691 - -32687, // 247.5(deg) -0.997530 - -32681, // 247.676(deg) -0.997364 - -32676, // 247.852(deg) -0.997195 - -32670, // 248.027(deg) -0.997022 - -32664, // 248.203(deg) -0.996844 - -32658, // 248.379(deg) -0.996663 - -32652, // 248.555(deg) -0.996479 - -32646, // 248.73(deg) -0.996290 - -32640, // 248.906(deg) -0.996099 - -32633, // 249.082(deg) -0.995903 - -32627, // 249.258(deg) -0.995705 - -32620, // 249.434(deg) -0.995504 - -32613, // 249.609(deg) -0.995299 - -32607, // 249.785(deg) -0.995092 - -32600, // 249.961(deg) -0.994882 - -32593, // 250.137(deg) -0.994669 - -32586, // 250.312(deg) -0.994454 - -32579, // 250.488(deg) -0.994236 - -32571, // 250.664(deg) -0.994016 - -32564, // 250.84(deg) -0.993794 - -32557, // 251.016(deg) -0.993569 - -32549, // 251.191(deg) -0.993343 - -32542, // 251.367(deg) -0.993114 - -32534, // 251.543(deg) -0.992884 - -32527, // 251.719(deg) -0.992652 - -32519, // 251.895(deg) -0.992419 - -32511, // 252.07(deg) -0.992184 - -32504, // 252.246(deg) -0.991947 - -32496, // 252.422(deg) -0.991709 - -32488, // 252.598(deg) -0.991471 - -32480, // 252.773(deg) -0.991231 - -32472, // 252.949(deg) -0.990989 - -32464, // 253.125(deg) -0.990748 - -32456, // 253.301(deg) -0.990505 - -32448, // 253.477(deg) -0.990261 - -32440, // 253.652(deg) -0.990017 - -32432, // 253.828(deg) -0.989773 - -32424, // 254.004(deg) -0.989528 - -32416, // 254.18(deg) -0.989283 - -32408, // 254.355(deg) -0.989037 - -32400, // 254.531(deg) -0.988791 - -32392, // 254.707(deg) -0.988546 - -32384, // 254.883(deg) -0.988300 - -32376, // 255.059(deg) -0.988055 - -32368, // 255.234(deg) -0.987809 - -32360, // 255.41(deg) -0.987565 - -32352, // 255.586(deg) -0.987320 - -32344, // 255.762(deg) -0.987076 - -32336, // 255.938(deg) -0.986833 - -32328, // 256.113(deg) -0.986590 - -32320, // 256.289(deg) -0.986348 - -32312, // 256.465(deg) -0.986107 - -32304, // 256.641(deg) -0.985866 - -32297, // 256.816(deg) -0.985627 - -32289, // 256.992(deg) -0.985389 - -32281, // 257.168(deg) -0.985152 - -32273, // 257.344(deg) -0.984916 - -32266, // 257.52(deg) -0.984682 - -32258, // 257.695(deg) -0.984449 - -32250, // 257.871(deg) -0.984217 - -32243, // 258.047(deg) -0.983987 - -32235, // 258.223(deg) -0.983759 - -32228, // 258.398(deg) -0.983532 - -32221, // 258.574(deg) -0.983307 - -32213, // 258.75(deg) -0.983084 - -32206, // 258.926(deg) -0.982863 - -32199, // 259.102(deg) -0.982644 - -32192, // 259.277(deg) -0.982427 - -32185, // 259.453(deg) -0.982212 - -32178, // 259.629(deg) -0.981999 - -32171, // 259.805(deg) -0.981789 - -32164, // 259.98(deg) -0.981580 - -32157, // 260.156(deg) -0.981375 - -32151, // 260.332(deg) -0.981171 - -32144, // 260.508(deg) -0.980971 - -32137, // 260.684(deg) -0.980772 - -32131, // 260.859(deg) -0.980577 - -32125, // 261.035(deg) -0.980384 - -32118, // 261.211(deg) -0.980194 - -32112, // 261.387(deg) -0.980006 - -32106, // 261.562(deg) -0.979822 - -32100, // 261.738(deg) -0.979641 - -32095, // 261.914(deg) -0.979462 - -32089, // 262.09(deg) -0.979286 - -32083, // 262.266(deg) -0.979114 - -32078, // 262.441(deg) -0.978945 - -32072, // 262.617(deg) -0.978779 - -32067, // 262.793(deg) -0.978616 - -32062, // 262.969(deg) -0.978456 - -32056, // 263.145(deg) -0.978300 - -32051, // 263.32(deg) -0.978147 - -32047, // 263.496(deg) -0.977998 - -32042, // 263.672(deg) -0.977852 - -32037, // 263.848(deg) -0.977709 - -32033, // 264.023(deg) -0.977570 - -32028, // 264.199(deg) -0.977435 - -32024, // 264.375(deg) -0.977303 - -32020, // 264.551(deg) -0.977175 - -32015, // 264.727(deg) -0.977051 - -32012, // 264.902(deg) -0.976930 - -32008, // 265.078(deg) -0.976813 - -32004, // 265.254(deg) -0.976700 - -32000, // 265.43(deg) -0.976591 - -31997, // 265.605(deg) -0.976486 - -31994, // 265.781(deg) -0.976384 - -31990, // 265.957(deg) -0.976287 - -31987, // 266.133(deg) -0.976193 - -31984, // 266.309(deg) -0.976103 - -31982, // 266.484(deg) -0.976018 - -31979, // 266.66(deg) -0.975936 - -31976, // 266.836(deg) -0.975858 - -31974, // 267.012(deg) -0.975785 - -31972, // 267.188(deg) -0.975716 - -31970, // 267.363(deg) -0.975650 - -31968, // 267.539(deg) -0.975589 - -31966, // 267.715(deg) -0.975532 - -31964, // 267.891(deg) -0.975479 - -31962, // 268.066(deg) -0.975431 - -31961, // 268.242(deg) -0.975386 - -31960, // 268.418(deg) -0.975346 - -31958, // 268.594(deg) -0.975310 - -31957, // 268.77(deg) -0.975278 - -31956, // 268.945(deg) -0.975250 - -31956, // 269.121(deg) -0.975227 - -31955, // 269.297(deg) -0.975208 - -31955, // 269.473(deg) -0.975193 - -31954, // 269.648(deg) -0.975182 - -31954, // 269.824(deg) -0.975176 - -31954, // 270(deg) -0.975174 - -31954, // 270.176(deg) -0.975176 - -31954, // 270.352(deg) -0.975182 - -31955, // 270.527(deg) -0.975193 - -31955, // 270.703(deg) -0.975208 - -31956, // 270.879(deg) -0.975227 - -31956, // 271.055(deg) -0.975250 - -31957, // 271.23(deg) -0.975278 - -31958, // 271.406(deg) -0.975310 - -31960, // 271.582(deg) -0.975346 - -31961, // 271.758(deg) -0.975386 - -31962, // 271.934(deg) -0.975431 - -31964, // 272.109(deg) -0.975479 - -31966, // 272.285(deg) -0.975532 - -31968, // 272.461(deg) -0.975589 - -31970, // 272.637(deg) -0.975650 - -31972, // 272.812(deg) -0.975716 - -31974, // 272.988(deg) -0.975785 - -31976, // 273.164(deg) -0.975858 - -31979, // 273.34(deg) -0.975936 - -31982, // 273.516(deg) -0.976018 - -31984, // 273.691(deg) -0.976103 - -31987, // 273.867(deg) -0.976193 - -31990, // 274.043(deg) -0.976287 - -31994, // 274.219(deg) -0.976384 - -31997, // 274.395(deg) -0.976486 - -32000, // 274.57(deg) -0.976591 - -32004, // 274.746(deg) -0.976700 - -32008, // 274.922(deg) -0.976813 - -32012, // 275.098(deg) -0.976930 - -32015, // 275.273(deg) -0.977051 - -32020, // 275.449(deg) -0.977175 - -32024, // 275.625(deg) -0.977303 - -32028, // 275.801(deg) -0.977435 - -32033, // 275.977(deg) -0.977570 - -32037, // 276.152(deg) -0.977709 - -32042, // 276.328(deg) -0.977852 - -32047, // 276.504(deg) -0.977998 - -32051, // 276.68(deg) -0.978147 - -32056, // 276.855(deg) -0.978300 - -32062, // 277.031(deg) -0.978456 - -32067, // 277.207(deg) -0.978616 - -32072, // 277.383(deg) -0.978779 - -32078, // 277.559(deg) -0.978945 - -32083, // 277.734(deg) -0.979114 - -32089, // 277.91(deg) -0.979286 - -32095, // 278.086(deg) -0.979462 - -32100, // 278.262(deg) -0.979641 - -32106, // 278.438(deg) -0.979822 - -32112, // 278.613(deg) -0.980006 - -32118, // 278.789(deg) -0.980194 - -32125, // 278.965(deg) -0.980384 - -32131, // 279.141(deg) -0.980577 - -32137, // 279.316(deg) -0.980772 - -32144, // 279.492(deg) -0.980971 - -32151, // 279.668(deg) -0.981171 - -32157, // 279.844(deg) -0.981375 - -32164, // 280.02(deg) -0.981580 - -32171, // 280.195(deg) -0.981789 - -32178, // 280.371(deg) -0.981999 - -32185, // 280.547(deg) -0.982212 - -32192, // 280.723(deg) -0.982427 - -32199, // 280.898(deg) -0.982644 - -32206, // 281.074(deg) -0.982863 - -32213, // 281.25(deg) -0.983084 - -32221, // 281.426(deg) -0.983307 - -32228, // 281.602(deg) -0.983532 - -32235, // 281.777(deg) -0.983759 - -32243, // 281.953(deg) -0.983987 - -32250, // 282.129(deg) -0.984217 - -32258, // 282.305(deg) -0.984449 - -32266, // 282.48(deg) -0.984682 - -32273, // 282.656(deg) -0.984916 - -32281, // 282.832(deg) -0.985152 - -32289, // 283.008(deg) -0.985389 - -32297, // 283.184(deg) -0.985627 - -32304, // 283.359(deg) -0.985866 - -32312, // 283.535(deg) -0.986107 - -32320, // 283.711(deg) -0.986348 - -32328, // 283.887(deg) -0.986590 - -32336, // 284.062(deg) -0.986833 - -32344, // 284.238(deg) -0.987076 - -32352, // 284.414(deg) -0.987320 - -32360, // 284.59(deg) -0.987565 - -32368, // 284.766(deg) -0.987809 - -32376, // 284.941(deg) -0.988055 - -32384, // 285.117(deg) -0.988300 - -32392, // 285.293(deg) -0.988546 - -32400, // 285.469(deg) -0.988791 - -32408, // 285.645(deg) -0.989037 - -32416, // 285.82(deg) -0.989283 - -32424, // 285.996(deg) -0.989528 - -32432, // 286.172(deg) -0.989773 - -32440, // 286.348(deg) -0.990017 - -32448, // 286.523(deg) -0.990261 - -32456, // 286.699(deg) -0.990505 - -32464, // 286.875(deg) -0.990748 - -32472, // 287.051(deg) -0.990989 - -32480, // 287.227(deg) -0.991231 - -32488, // 287.402(deg) -0.991471 - -32496, // 287.578(deg) -0.991709 - -32504, // 287.754(deg) -0.991947 - -32511, // 287.93(deg) -0.992184 - -32519, // 288.105(deg) -0.992419 - -32527, // 288.281(deg) -0.992652 - -32534, // 288.457(deg) -0.992884 - -32542, // 288.633(deg) -0.993114 - -32549, // 288.809(deg) -0.993343 - -32557, // 288.984(deg) -0.993569 - -32564, // 289.16(deg) -0.993794 - -32571, // 289.336(deg) -0.994016 - -32579, // 289.512(deg) -0.994236 - -32586, // 289.688(deg) -0.994454 - -32593, // 289.863(deg) -0.994669 - -32600, // 290.039(deg) -0.994882 - -32607, // 290.215(deg) -0.995092 - -32613, // 290.391(deg) -0.995299 - -32620, // 290.566(deg) -0.995504 - -32627, // 290.742(deg) -0.995705 - -32633, // 290.918(deg) -0.995903 - -32640, // 291.094(deg) -0.996099 - -32646, // 291.27(deg) -0.996290 - -32652, // 291.445(deg) -0.996479 - -32658, // 291.621(deg) -0.996663 - -32664, // 291.797(deg) -0.996844 - -32670, // 291.973(deg) -0.997022 - -32676, // 292.148(deg) -0.997195 - -32681, // 292.324(deg) -0.997364 - -32687, // 292.5(deg) -0.997530 - -32692, // 292.676(deg) -0.997691 - -32697, // 292.852(deg) -0.997847 - -32702, // 293.027(deg) -0.997999 - -32707, // 293.203(deg) -0.998147 - -32711, // 293.379(deg) -0.998290 - -32716, // 293.555(deg) -0.998428 - -32720, // 293.73(deg) -0.998561 - -32725, // 293.906(deg) -0.998689 - -32729, // 294.082(deg) -0.998812 - -32732, // 294.258(deg) -0.998929 - -32736, // 294.434(deg) -0.999041 - -32740, // 294.609(deg) -0.999148 - -32743, // 294.785(deg) -0.999249 - -32746, // 294.961(deg) -0.999344 - -32749, // 295.137(deg) -0.999433 - -32752, // 295.312(deg) -0.999516 - -32754, // 295.488(deg) -0.999593 - -32756, // 295.664(deg) -0.999664 - -32759, // 295.84(deg) -0.999728 - -32760, // 296.016(deg) -0.999786 - -32762, // 296.191(deg) -0.999837 - -32764, // 296.367(deg) -0.999882 - -32765, // 296.543(deg) -0.999920 - -32766, // 296.719(deg) -0.999950 - -32767, // 296.895(deg) -0.999974 - -32767, // 297.07(deg) -0.999990 - -32767, // 297.246(deg) -0.999999 - -32768, // 297.422(deg) -1.000000 - -32767, // 297.598(deg) -0.999994 - -32767, // 297.773(deg) -0.999980 - -32766, // 297.949(deg) -0.999959 - -32765, // 298.125(deg) -0.999929 - -32764, // 298.301(deg) -0.999891 - -32762, // 298.477(deg) -0.999845 - -32761, // 298.652(deg) -0.999791 - -32759, // 298.828(deg) -0.999728 - -32756, // 299.004(deg) -0.999657 - -32754, // 299.18(deg) -0.999576 - -32751, // 299.355(deg) -0.999488 - -32747, // 299.531(deg) -0.999390 - -32744, // 299.707(deg) -0.999283 - -32740, // 299.883(deg) -0.999166 - -32736, // 300.059(deg) -0.999041 - -32732, // 300.234(deg) -0.998906 - -32727, // 300.41(deg) -0.998762 - -32722, // 300.586(deg) -0.998607 - -32716, // 300.762(deg) -0.998443 - -32711, // 300.938(deg) -0.998269 - -32705, // 301.113(deg) -0.998085 - -32698, // 301.289(deg) -0.997891 - -32692, // 301.465(deg) -0.997687 - -32685, // 301.641(deg) -0.997472 - -32677, // 301.816(deg) -0.997246 - -32670, // 301.992(deg) -0.997010 - -32661, // 302.168(deg) -0.996763 - -32653, // 302.344(deg) -0.996506 - -32644, // 302.52(deg) -0.996237 - -32635, // 302.695(deg) -0.995957 - -32625, // 302.871(deg) -0.995666 - -32616, // 303.047(deg) -0.995363 - -32605, // 303.223(deg) -0.995049 - -32595, // 303.398(deg) -0.994723 - -32584, // 303.574(deg) -0.994386 - -32572, // 303.75(deg) -0.994036 - -32560, // 303.926(deg) -0.993675 - -32548, // 304.102(deg) -0.993302 - -32535, // 304.277(deg) -0.992916 - -32522, // 304.453(deg) -0.992518 - -32509, // 304.629(deg) -0.992108 - -32495, // 304.805(deg) -0.991685 - -32481, // 304.98(deg) -0.991249 - -32466, // 305.156(deg) -0.990801 - -32451, // 305.332(deg) -0.990339 - -32435, // 305.508(deg) -0.989865 - -32419, // 305.684(deg) -0.989377 - -32403, // 305.859(deg) -0.988877 - -32386, // 306.035(deg) -0.988363 - -32369, // 306.211(deg) -0.987835 - -32351, // 306.387(deg) -0.987294 - -32333, // 306.562(deg) -0.986739 - -32314, // 306.738(deg) -0.986170 - -32295, // 306.914(deg) -0.985588 - -32276, // 307.09(deg) -0.984991 - -32256, // 307.266(deg) -0.984380 - -32235, // 307.441(deg) -0.983755 - -32214, // 307.617(deg) -0.983116 - -32193, // 307.793(deg) -0.982462 - -32171, // 307.969(deg) -0.981793 - -32149, // 308.145(deg) -0.981110 - -32126, // 308.32(deg) -0.980412 - -32102, // 308.496(deg) -0.979699 - -32078, // 308.672(deg) -0.978971 - -32054, // 308.848(deg) -0.978228 - -32029, // 309.023(deg) -0.977470 - -32004, // 309.199(deg) -0.976697 - -31978, // 309.375(deg) -0.975908 - -31952, // 309.551(deg) -0.975103 - -31925, // 309.727(deg) -0.974283 - -31897, // 309.902(deg) -0.973447 - -31870, // 310.078(deg) -0.972596 - -31841, // 310.254(deg) -0.971728 - -31812, // 310.43(deg) -0.970845 - -31783, // 310.605(deg) -0.969945 - -31753, // 310.781(deg) -0.969029 - -31722, // 310.957(deg) -0.968097 - -31691, // 311.133(deg) -0.967148 - -31659, // 311.309(deg) -0.966183 - -31627, // 311.484(deg) -0.965201 - -31595, // 311.66(deg) -0.964203 - -31561, // 311.836(deg) -0.963188 - -31527, // 312.012(deg) -0.962156 - -31493, // 312.188(deg) -0.961107 - -31458, // 312.363(deg) -0.960041 - -31423, // 312.539(deg) -0.958958 - -31387, // 312.715(deg) -0.957857 - -31350, // 312.891(deg) -0.956739 - -31313, // 313.066(deg) -0.955604 - -31275, // 313.242(deg) -0.954452 - -31237, // 313.418(deg) -0.953281 - -31198, // 313.594(deg) -0.952094 - -31158, // 313.77(deg) -0.950888 - -31118, // 313.945(deg) -0.949665 - -31077, // 314.121(deg) -0.948423 - -31036, // 314.297(deg) -0.947164 - -30994, // 314.473(deg) -0.945887 - -30952, // 314.648(deg) -0.944591 - -30909, // 314.824(deg) -0.943277 - -30865, // 315(deg) -0.941945 - -30821, // 315.176(deg) -0.940595 - -30776, // 315.352(deg) -0.939226 - -30731, // 315.527(deg) -0.937839 - -30685, // 315.703(deg) -0.936433 - -30638, // 315.879(deg) -0.935008 - -30591, // 316.055(deg) -0.933565 - -30543, // 316.23(deg) -0.932103 - -30494, // 316.406(deg) -0.930622 - -30445, // 316.582(deg) -0.929122 - -30395, // 316.758(deg) -0.927603 - -30345, // 316.934(deg) -0.926065 - -30294, // 317.109(deg) -0.924508 - -30242, // 317.285(deg) -0.922932 - -30190, // 317.461(deg) -0.921336 - -30137, // 317.637(deg) -0.919721 - -30083, // 317.812(deg) -0.918087 - -30029, // 317.988(deg) -0.916433 - -29974, // 318.164(deg) -0.914760 - -29919, // 318.34(deg) -0.913067 - -29863, // 318.516(deg) -0.911355 - -29806, // 318.691(deg) -0.909623 - -29749, // 318.867(deg) -0.907871 - -29691, // 319.043(deg) -0.906100 - -29632, // 319.219(deg) -0.904308 - -29573, // 319.395(deg) -0.902497 - -29513, // 319.57(deg) -0.900666 - -29452, // 319.746(deg) -0.898815 - -29391, // 319.922(deg) -0.896944 - -29329, // 320.098(deg) -0.895053 - -29266, // 320.273(deg) -0.893142 - -29203, // 320.449(deg) -0.891210 - -29139, // 320.625(deg) -0.889259 - -29074, // 320.801(deg) -0.887287 - -29009, // 320.977(deg) -0.885295 - -28943, // 321.152(deg) -0.883283 - -28876, // 321.328(deg) -0.881250 - -28809, // 321.504(deg) -0.879197 - -28741, // 321.68(deg) -0.877124 - -28672, // 321.855(deg) -0.875030 - -28603, // 322.031(deg) -0.872916 - -28533, // 322.207(deg) -0.870781 - -28463, // 322.383(deg) -0.868625 - -28391, // 322.559(deg) -0.866450 - -28319, // 322.734(deg) -0.864253 - -28247, // 322.91(deg) -0.862036 - -28173, // 323.086(deg) -0.859798 - -28099, // 323.262(deg) -0.857540 - -28025, // 323.438(deg) -0.855261 - -27949, // 323.613(deg) -0.852961 - -27873, // 323.789(deg) -0.850640 - -27797, // 323.965(deg) -0.848299 - -27719, // 324.141(deg) -0.845937 - -27641, // 324.316(deg) -0.843554 - -27562, // 324.492(deg) -0.841151 - -27483, // 324.668(deg) -0.838726 - -27403, // 324.844(deg) -0.836281 - -27322, // 325.02(deg) -0.833815 - -27240, // 325.195(deg) -0.831328 - -27158, // 325.371(deg) -0.828821 - -27075, // 325.547(deg) -0.826292 - -26992, // 325.723(deg) -0.823743 - -26908, // 325.898(deg) -0.821172 - -26823, // 326.074(deg) -0.818581 - -26737, // 326.25(deg) -0.815969 - -26651, // 326.426(deg) -0.813337 - -26564, // 326.602(deg) -0.810683 - -26476, // 326.777(deg) -0.808008 - -26388, // 326.953(deg) -0.805313 - -26299, // 327.129(deg) -0.802597 - -26209, // 327.305(deg) -0.799860 - -26119, // 327.48(deg) -0.797102 - -26028, // 327.656(deg) -0.794323 - -25936, // 327.832(deg) -0.791523 - -25844, // 328.008(deg) -0.788703 - -25751, // 328.184(deg) -0.785862 - -25657, // 328.359(deg) -0.783000 - -25562, // 328.535(deg) -0.780117 - -25467, // 328.711(deg) -0.777214 - -25371, // 328.887(deg) -0.774290 - -25275, // 329.062(deg) -0.771345 - -25178, // 329.238(deg) -0.768379 - -25080, // 329.414(deg) -0.765393 - -24981, // 329.59(deg) -0.762386 - -24882, // 329.766(deg) -0.759359 - -24782, // 329.941(deg) -0.756311 - -24682, // 330.117(deg) -0.753242 - -24581, // 330.293(deg) -0.750153 - -24479, // 330.469(deg) -0.747044 - -24376, // 330.645(deg) -0.743914 - -24273, // 330.82(deg) -0.740763 - -24169, // 330.996(deg) -0.737592 - -24064, // 331.172(deg) -0.734401 - -23959, // 331.348(deg) -0.731189 - -23853, // 331.523(deg) -0.727958 - -23747, // 331.699(deg) -0.724705 - -23639, // 331.875(deg) -0.721433 - -23532, // 332.051(deg) -0.718141 - -23423, // 332.227(deg) -0.714828 - -23314, // 332.402(deg) -0.711495 - -23204, // 332.578(deg) -0.708143 - -23093, // 332.754(deg) -0.704770 - -22982, // 332.93(deg) -0.701377 - -22870, // 333.105(deg) -0.697965 - -22758, // 333.281(deg) -0.694532 - -22645, // 333.457(deg) -0.691080 - -22531, // 333.633(deg) -0.687608 - -22417, // 333.809(deg) -0.684117 - -22302, // 333.984(deg) -0.680606 - -22186, // 334.16(deg) -0.677075 - -22070, // 334.336(deg) -0.673525 - -21953, // 334.512(deg) -0.669955 - -21835, // 334.688(deg) -0.666366 - -21717, // 334.863(deg) -0.662758 - -21598, // 335.039(deg) -0.659131 - -21478, // 335.215(deg) -0.655484 - -21358, // 335.391(deg) -0.651818 - -21238, // 335.566(deg) -0.648133 - -21116, // 335.742(deg) -0.644429 - -20994, // 335.918(deg) -0.640707 - -20872, // 336.094(deg) -0.636965 - -20748, // 336.27(deg) -0.633205 - -20625, // 336.445(deg) -0.629426 - -20500, // 336.621(deg) -0.625628 - -20375, // 336.797(deg) -0.621812 - -20249, // 336.973(deg) -0.617978 - -20123, // 337.148(deg) -0.614125 - -19996, // 337.324(deg) -0.610253 - -19869, // 337.5(deg) -0.606364 - -19741, // 337.676(deg) -0.602456 - -19612, // 337.852(deg) -0.598531 - -19483, // 338.027(deg) -0.594587 - -19353, // 338.203(deg) -0.590626 - -19223, // 338.379(deg) -0.586647 - -19092, // 338.555(deg) -0.582650 - -18960, // 338.73(deg) -0.578635 - -18828, // 338.906(deg) -0.574603 - -18695, // 339.082(deg) -0.570554 - -18562, // 339.258(deg) -0.566487 - -18428, // 339.434(deg) -0.562403 - -18294, // 339.609(deg) -0.558302 - -18159, // 339.785(deg) -0.554184 - -18024, // 339.961(deg) -0.550049 - -17887, // 340.137(deg) -0.545897 - -17751, // 340.312(deg) -0.541729 - -17614, // 340.488(deg) -0.537543 - -17476, // 340.664(deg) -0.533342 - -17338, // 340.84(deg) -0.529124 - -17199, // 341.016(deg) -0.524889 - -17060, // 341.191(deg) -0.520638 - -16920, // 341.367(deg) -0.516372 - -16780, // 341.543(deg) -0.512089 - -16639, // 341.719(deg) -0.507790 - -16497, // 341.895(deg) -0.503476 - -16356, // 342.07(deg) -0.499146 - -16213, // 342.246(deg) -0.494800 - -16070, // 342.422(deg) -0.490439 - -15927, // 342.598(deg) -0.486063 - -15783, // 342.773(deg) -0.481671 - -15639, // 342.949(deg) -0.477265 - -15494, // 343.125(deg) -0.472843 - -15348, // 343.301(deg) -0.468407 - -15202, // 343.477(deg) -0.463956 - -15056, // 343.652(deg) -0.459490 - -14909, // 343.828(deg) -0.455010 - -14762, // 344.004(deg) -0.450515 - -14614, // 344.18(deg) -0.446007 - -14466, // 344.355(deg) -0.441484 - -14317, // 344.531(deg) -0.436947 - -14168, // 344.707(deg) -0.432396 - -14019, // 344.883(deg) -0.427832 - -13869, // 345.059(deg) -0.423254 - -13718, // 345.234(deg) -0.418663 - -13567, // 345.41(deg) -0.414058 - -13416, // 345.586(deg) -0.409440 - -13264, // 345.762(deg) -0.404809 - -13112, // 345.938(deg) -0.400165 - -12960, // 346.113(deg) -0.395508 - -12807, // 346.289(deg) -0.390839 - -12653, // 346.465(deg) -0.386157 - -12499, // 346.641(deg) -0.381463 - -12345, // 346.816(deg) -0.376756 - -12190, // 346.992(deg) -0.372037 - -12035, // 347.168(deg) -0.367307 - -11880, // 347.344(deg) -0.362564 - -11724, // 347.52(deg) -0.357810 - -11568, // 347.695(deg) -0.353045 - -11412, // 347.871(deg) -0.348268 - -11255, // 348.047(deg) -0.343479 - -11097, // 348.223(deg) -0.338680 - -10940, // 348.398(deg) -0.333870 - -10782, // 348.574(deg) -0.329048 - -10623, // 348.75(deg) -0.324217 - -10465, // 348.926(deg) -0.319374 - -10306, // 349.102(deg) -0.314522 - -10146, // 349.277(deg) -0.309659 - -9987, // 349.453(deg) -0.304786 - -9827, // 349.629(deg) -0.299903 - -9666, // 349.805(deg) -0.295010 - -9506, // 349.98(deg) -0.290108 - -9345, // 350.156(deg) -0.285196 - -9184, // 350.332(deg) -0.280275 - -9022, // 350.508(deg) -0.275345 - -8860, // 350.684(deg) -0.270406 - -8698, // 350.859(deg) -0.265457 - -8536, // 351.035(deg) -0.260501 - -8373, // 351.211(deg) -0.255535 - -8210, // 351.387(deg) -0.250562 - -8047, // 351.562(deg) -0.245580 - -7883, // 351.738(deg) -0.240590 - -7719, // 351.914(deg) -0.235592 - -7555, // 352.09(deg) -0.230587 - -7391, // 352.266(deg) -0.225573 - -7227, // 352.441(deg) -0.220553 - -7062, // 352.617(deg) -0.215525 - -6897, // 352.793(deg) -0.210490 - -6732, // 352.969(deg) -0.205448 - -6566, // 353.145(deg) -0.200400 - -6401, // 353.32(deg) -0.195344 - -6235, // 353.496(deg) -0.190283 - -6069, // 353.672(deg) -0.185215 - -5902, // 353.848(deg) -0.180141 - -5736, // 354.023(deg) -0.175061 - -5569, // 354.199(deg) -0.169975 - -5402, // 354.375(deg) -0.164884 - -5235, // 354.551(deg) -0.159787 - -5068, // 354.727(deg) -0.154685 - -4901, // 354.902(deg) -0.149577 - -4733, // 355.078(deg) -0.144465 - -4566, // 355.254(deg) -0.139348 - -4398, // 355.43(deg) -0.134226 - -4230, // 355.605(deg) -0.129100 - -4062, // 355.781(deg) -0.123970 - -3894, // 355.957(deg) -0.118836 - -3725, // 356.133(deg) -0.113697 - -3557, // 356.309(deg) -0.108555 - -3388, // 356.484(deg) -0.103409 - -3219, // 356.66(deg) -0.098260 - -3050, // 356.836(deg) -0.093107 - -2882, // 357.012(deg) -0.087952 - -2712, // 357.188(deg) -0.082793 - -2543, // 357.363(deg) -0.077632 - -2374, // 357.539(deg) -0.072468 - -2205, // 357.715(deg) -0.067302 - -2035, // 357.891(deg) -0.062134 - -1866, // 358.066(deg) -0.056963 - -1697, // 358.242(deg) -0.051791 - -1527, // 358.418(deg) -0.046617 - -1357, // 358.594(deg) -0.041441 - -1188, // 358.77(deg) -0.036264 - -1018, // 358.945(deg) -0.031085 - -848, // 359.121(deg) -0.025906 - -679, // 359.297(deg) -0.020726 - -509, // 359.473(deg) -0.015545 - -339, // 359.648(deg) -0.010364 - -169, // 359.824(deg) -0.005182 +const short sin2048[2048] = { + 0, // 0(deg) 0.000000 + 169, // 0.175781(deg) 0.005182 + 339, // 0.351562(deg) 0.010364 + 509, // 0.527344(deg) 0.015545 + 679, // 0.703125(deg) 0.020726 + 848, // 0.878906(deg) 0.025906 + 1018, // 1.05469(deg) 0.031085 + 1188, // 1.23047(deg) 0.036264 + 1357, // 1.40625(deg) 0.041441 + 1527, // 1.58203(deg) 0.046617 + 1697, // 1.75781(deg) 0.051791 + 1866, // 1.93359(deg) 0.056963 + 2035, // 2.10938(deg) 0.062134 + 2205, // 2.28516(deg) 0.067302 + 2374, // 2.46094(deg) 0.072468 + 2543, // 2.63672(deg) 0.077632 + 2712, // 2.8125(deg) 0.082793 + 2882, // 2.98828(deg) 0.087952 + 3050, // 3.16406(deg) 0.093107 + 3219, // 3.33984(deg) 0.098260 + 3388, // 3.51562(deg) 0.103409 + 3557, // 3.69141(deg) 0.108555 + 3725, // 3.86719(deg) 0.113697 + 3894, // 4.04297(deg) 0.118836 + 4062, // 4.21875(deg) 0.123970 + 4230, // 4.39453(deg) 0.129100 + 4398, // 4.57031(deg) 0.134226 + 4566, // 4.74609(deg) 0.139348 + 4733, // 4.92188(deg) 0.144465 + 4901, // 5.09766(deg) 0.149577 + 5068, // 5.27344(deg) 0.154685 + 5235, // 5.44922(deg) 0.159787 + 5402, // 5.625(deg) 0.164884 + 5569, // 5.80078(deg) 0.169975 + 5736, // 5.97656(deg) 0.175061 + 5902, // 6.15234(deg) 0.180141 + 6069, // 6.32812(deg) 0.185215 + 6235, // 6.50391(deg) 0.190283 + 6401, // 6.67969(deg) 0.195344 + 6566, // 6.85547(deg) 0.200400 + 6732, // 7.03125(deg) 0.205448 + 6897, // 7.20703(deg) 0.210490 + 7062, // 7.38281(deg) 0.215525 + 7227, // 7.55859(deg) 0.220553 + 7391, // 7.73438(deg) 0.225573 + 7555, // 7.91016(deg) 0.230587 + 7719, // 8.08594(deg) 0.235592 + 7883, // 8.26172(deg) 0.240590 + 8047, // 8.4375(deg) 0.245580 + 8210, // 8.61328(deg) 0.250562 + 8373, // 8.78906(deg) 0.255535 + 8536, // 8.96484(deg) 0.260501 + 8698, // 9.14062(deg) 0.265457 + 8860, // 9.31641(deg) 0.270406 + 9022, // 9.49219(deg) 0.275345 + 9184, // 9.66797(deg) 0.280275 + 9345, // 9.84375(deg) 0.285196 + 9506, // 10.0195(deg) 0.290108 + 9666, // 10.1953(deg) 0.295010 + 9827, // 10.3711(deg) 0.299903 + 9987, // 10.5469(deg) 0.304786 + 10146, // 10.7227(deg) 0.309659 + 10306, // 10.8984(deg) 0.314522 + 10465, // 11.0742(deg) 0.319374 + 10623, // 11.25(deg) 0.324217 + 10782, // 11.4258(deg) 0.329048 + 10940, // 11.6016(deg) 0.333870 + 11097, // 11.7773(deg) 0.338680 + 11255, // 11.9531(deg) 0.343479 + 11412, // 12.1289(deg) 0.348268 + 11568, // 12.3047(deg) 0.353045 + 11724, // 12.4805(deg) 0.357810 + 11880, // 12.6562(deg) 0.362564 + 12035, // 12.832(deg) 0.367307 + 12190, // 13.0078(deg) 0.372037 + 12345, // 13.1836(deg) 0.376756 + 12499, // 13.3594(deg) 0.381463 + 12653, // 13.5352(deg) 0.386157 + 12807, // 13.7109(deg) 0.390839 + 12960, // 13.8867(deg) 0.395508 + 13112, // 14.0625(deg) 0.400165 + 13264, // 14.2383(deg) 0.404809 + 13416, // 14.4141(deg) 0.409440 + 13567, // 14.5898(deg) 0.414058 + 13718, // 14.7656(deg) 0.418663 + 13869, // 14.9414(deg) 0.423254 + 14019, // 15.1172(deg) 0.427832 + 14168, // 15.293(deg) 0.432396 + 14317, // 15.4688(deg) 0.436947 + 14466, // 15.6445(deg) 0.441484 + 14614, // 15.8203(deg) 0.446007 + 14762, // 15.9961(deg) 0.450515 + 14909, // 16.1719(deg) 0.455010 + 15056, // 16.3477(deg) 0.459490 + 15202, // 16.5234(deg) 0.463956 + 15348, // 16.6992(deg) 0.468407 + 15494, // 16.875(deg) 0.472843 + 15639, // 17.0508(deg) 0.477265 + 15783, // 17.2266(deg) 0.481671 + 15927, // 17.4023(deg) 0.486063 + 16070, // 17.5781(deg) 0.490439 + 16213, // 17.7539(deg) 0.494800 + 16356, // 17.9297(deg) 0.499146 + 16497, // 18.1055(deg) 0.503476 + 16639, // 18.2812(deg) 0.507790 + 16780, // 18.457(deg) 0.512089 + 16920, // 18.6328(deg) 0.516372 + 17060, // 18.8086(deg) 0.520638 + 17199, // 18.9844(deg) 0.524889 + 17338, // 19.1602(deg) 0.529124 + 17476, // 19.3359(deg) 0.533342 + 17614, // 19.5117(deg) 0.537543 + 17751, // 19.6875(deg) 0.541729 + 17887, // 19.8633(deg) 0.545897 + 18024, // 20.0391(deg) 0.550049 + 18159, // 20.2148(deg) 0.554184 + 18294, // 20.3906(deg) 0.558302 + 18428, // 20.5664(deg) 0.562403 + 18562, // 20.7422(deg) 0.566487 + 18695, // 20.918(deg) 0.570554 + 18828, // 21.0938(deg) 0.574603 + 18960, // 21.2695(deg) 0.578635 + 19092, // 21.4453(deg) 0.582650 + 19223, // 21.6211(deg) 0.586647 + 19353, // 21.7969(deg) 0.590626 + 19483, // 21.9727(deg) 0.594587 + 19612, // 22.1484(deg) 0.598531 + 19741, // 22.3242(deg) 0.602456 + 19869, // 22.5(deg) 0.606364 + 19996, // 22.6758(deg) 0.610253 + 20123, // 22.8516(deg) 0.614125 + 20249, // 23.0273(deg) 0.617978 + 20375, // 23.2031(deg) 0.621812 + 20500, // 23.3789(deg) 0.625628 + 20625, // 23.5547(deg) 0.629426 + 20748, // 23.7305(deg) 0.633205 + 20872, // 23.9062(deg) 0.636965 + 20994, // 24.082(deg) 0.640707 + 21116, // 24.2578(deg) 0.644429 + 21238, // 24.4336(deg) 0.648133 + 21358, // 24.6094(deg) 0.651818 + 21478, // 24.7852(deg) 0.655484 + 21598, // 24.9609(deg) 0.659131 + 21717, // 25.1367(deg) 0.662758 + 21835, // 25.3125(deg) 0.666366 + 21953, // 25.4883(deg) 0.669955 + 22070, // 25.6641(deg) 0.673525 + 22186, // 25.8398(deg) 0.677075 + 22302, // 26.0156(deg) 0.680606 + 22417, // 26.1914(deg) 0.684117 + 22531, // 26.3672(deg) 0.687608 + 22645, // 26.543(deg) 0.691080 + 22758, // 26.7188(deg) 0.694532 + 22870, // 26.8945(deg) 0.697965 + 22982, // 27.0703(deg) 0.701377 + 23093, // 27.2461(deg) 0.704770 + 23204, // 27.4219(deg) 0.708143 + 23314, // 27.5977(deg) 0.711495 + 23423, // 27.7734(deg) 0.714828 + 23532, // 27.9492(deg) 0.718141 + 23639, // 28.125(deg) 0.721433 + 23747, // 28.3008(deg) 0.724705 + 23853, // 28.4766(deg) 0.727958 + 23959, // 28.6523(deg) 0.731189 + 24064, // 28.8281(deg) 0.734401 + 24169, // 29.0039(deg) 0.737592 + 24273, // 29.1797(deg) 0.740763 + 24376, // 29.3555(deg) 0.743914 + 24479, // 29.5312(deg) 0.747044 + 24581, // 29.707(deg) 0.750153 + 24682, // 29.8828(deg) 0.753242 + 24782, // 30.0586(deg) 0.756311 + 24882, // 30.2344(deg) 0.759359 + 24981, // 30.4102(deg) 0.762386 + 25080, // 30.5859(deg) 0.765393 + 25178, // 30.7617(deg) 0.768379 + 25275, // 30.9375(deg) 0.771345 + 25371, // 31.1133(deg) 0.774290 + 25467, // 31.2891(deg) 0.777214 + 25562, // 31.4648(deg) 0.780117 + 25657, // 31.6406(deg) 0.783000 + 25751, // 31.8164(deg) 0.785862 + 25844, // 31.9922(deg) 0.788703 + 25936, // 32.168(deg) 0.791523 + 26028, // 32.3438(deg) 0.794323 + 26119, // 32.5195(deg) 0.797102 + 26209, // 32.6953(deg) 0.799860 + 26299, // 32.8711(deg) 0.802597 + 26388, // 33.0469(deg) 0.805313 + 26476, // 33.2227(deg) 0.808008 + 26564, // 33.3984(deg) 0.810683 + 26651, // 33.5742(deg) 0.813337 + 26737, // 33.75(deg) 0.815969 + 26823, // 33.9258(deg) 0.818581 + 26908, // 34.1016(deg) 0.821172 + 26992, // 34.2773(deg) 0.823743 + 27075, // 34.4531(deg) 0.826292 + 27158, // 34.6289(deg) 0.828821 + 27240, // 34.8047(deg) 0.831328 + 27322, // 34.9805(deg) 0.833815 + 27403, // 35.1562(deg) 0.836281 + 27483, // 35.332(deg) 0.838726 + 27562, // 35.5078(deg) 0.841151 + 27641, // 35.6836(deg) 0.843554 + 27719, // 35.8594(deg) 0.845937 + 27797, // 36.0352(deg) 0.848299 + 27873, // 36.2109(deg) 0.850640 + 27949, // 36.3867(deg) 0.852961 + 28025, // 36.5625(deg) 0.855261 + 28099, // 36.7383(deg) 0.857540 + 28173, // 36.9141(deg) 0.859798 + 28247, // 37.0898(deg) 0.862036 + 28319, // 37.2656(deg) 0.864253 + 28391, // 37.4414(deg) 0.866450 + 28463, // 37.6172(deg) 0.868625 + 28533, // 37.793(deg) 0.870781 + 28603, // 37.9688(deg) 0.872916 + 28672, // 38.1445(deg) 0.875030 + 28741, // 38.3203(deg) 0.877124 + 28809, // 38.4961(deg) 0.879197 + 28876, // 38.6719(deg) 0.881250 + 28943, // 38.8477(deg) 0.883283 + 29009, // 39.0234(deg) 0.885295 + 29074, // 39.1992(deg) 0.887287 + 29139, // 39.375(deg) 0.889259 + 29203, // 39.5508(deg) 0.891210 + 29266, // 39.7266(deg) 0.893142 + 29329, // 39.9023(deg) 0.895053 + 29391, // 40.0781(deg) 0.896944 + 29452, // 40.2539(deg) 0.898815 + 29513, // 40.4297(deg) 0.900666 + 29573, // 40.6055(deg) 0.902497 + 29632, // 40.7812(deg) 0.904308 + 29691, // 40.957(deg) 0.906100 + 29749, // 41.1328(deg) 0.907871 + 29806, // 41.3086(deg) 0.909623 + 29863, // 41.4844(deg) 0.911355 + 29919, // 41.6602(deg) 0.913067 + 29974, // 41.8359(deg) 0.914760 + 30029, // 42.0117(deg) 0.916433 + 30083, // 42.1875(deg) 0.918087 + 30137, // 42.3633(deg) 0.919721 + 30190, // 42.5391(deg) 0.921336 + 30242, // 42.7148(deg) 0.922932 + 30294, // 42.8906(deg) 0.924508 + 30345, // 43.0664(deg) 0.926065 + 30395, // 43.2422(deg) 0.927603 + 30445, // 43.418(deg) 0.929122 + 30494, // 43.5938(deg) 0.930622 + 30543, // 43.7695(deg) 0.932103 + 30591, // 43.9453(deg) 0.933565 + 30638, // 44.1211(deg) 0.935008 + 30685, // 44.2969(deg) 0.936433 + 30731, // 44.4727(deg) 0.937839 + 30776, // 44.6484(deg) 0.939226 + 30821, // 44.8242(deg) 0.940595 + 30865, // 45(deg) 0.941945 + 30909, // 45.1758(deg) 0.943277 + 30952, // 45.3516(deg) 0.944591 + 30994, // 45.5273(deg) 0.945887 + 31036, // 45.7031(deg) 0.947164 + 31077, // 45.8789(deg) 0.948423 + 31118, // 46.0547(deg) 0.949665 + 31158, // 46.2305(deg) 0.950888 + 31198, // 46.4062(deg) 0.952094 + 31237, // 46.582(deg) 0.953281 + 31275, // 46.7578(deg) 0.954452 + 31313, // 46.9336(deg) 0.955604 + 31350, // 47.1094(deg) 0.956739 + 31387, // 47.2852(deg) 0.957857 + 31423, // 47.4609(deg) 0.958958 + 31458, // 47.6367(deg) 0.960041 + 31493, // 47.8125(deg) 0.961107 + 31527, // 47.9883(deg) 0.962156 + 31561, // 48.1641(deg) 0.963188 + 31595, // 48.3398(deg) 0.964203 + 31627, // 48.5156(deg) 0.965201 + 31659, // 48.6914(deg) 0.966183 + 31691, // 48.8672(deg) 0.967148 + 31722, // 49.043(deg) 0.968097 + 31753, // 49.2188(deg) 0.969029 + 31783, // 49.3945(deg) 0.969945 + 31812, // 49.5703(deg) 0.970845 + 31841, // 49.7461(deg) 0.971728 + 31870, // 49.9219(deg) 0.972596 + 31897, // 50.0977(deg) 0.973447 + 31925, // 50.2734(deg) 0.974283 + 31952, // 50.4492(deg) 0.975103 + 31978, // 50.625(deg) 0.975908 + 32004, // 50.8008(deg) 0.976697 + 32029, // 50.9766(deg) 0.977470 + 32054, // 51.1523(deg) 0.978228 + 32078, // 51.3281(deg) 0.978971 + 32102, // 51.5039(deg) 0.979699 + 32126, // 51.6797(deg) 0.980412 + 32149, // 51.8555(deg) 0.981110 + 32171, // 52.0312(deg) 0.981793 + 32193, // 52.207(deg) 0.982462 + 32214, // 52.3828(deg) 0.983116 + 32235, // 52.5586(deg) 0.983755 + 32256, // 52.7344(deg) 0.984380 + 32276, // 52.9102(deg) 0.984991 + 32295, // 53.0859(deg) 0.985588 + 32314, // 53.2617(deg) 0.986170 + 32333, // 53.4375(deg) 0.986739 + 32351, // 53.6133(deg) 0.987294 + 32369, // 53.7891(deg) 0.987835 + 32386, // 53.9648(deg) 0.988363 + 32403, // 54.1406(deg) 0.988877 + 32419, // 54.3164(deg) 0.989377 + 32435, // 54.4922(deg) 0.989865 + 32451, // 54.668(deg) 0.990339 + 32466, // 54.8438(deg) 0.990801 + 32481, // 55.0195(deg) 0.991249 + 32495, // 55.1953(deg) 0.991685 + 32509, // 55.3711(deg) 0.992108 + 32522, // 55.5469(deg) 0.992518 + 32535, // 55.7227(deg) 0.992916 + 32548, // 55.8984(deg) 0.993302 + 32560, // 56.0742(deg) 0.993675 + 32572, // 56.25(deg) 0.994036 + 32584, // 56.4258(deg) 0.994386 + 32595, // 56.6016(deg) 0.994723 + 32605, // 56.7773(deg) 0.995049 + 32616, // 56.9531(deg) 0.995363 + 32625, // 57.1289(deg) 0.995666 + 32635, // 57.3047(deg) 0.995957 + 32644, // 57.4805(deg) 0.996237 + 32653, // 57.6562(deg) 0.996506 + 32661, // 57.832(deg) 0.996763 + 32670, // 58.0078(deg) 0.997010 + 32677, // 58.1836(deg) 0.997246 + 32685, // 58.3594(deg) 0.997472 + 32692, // 58.5352(deg) 0.997687 + 32698, // 58.7109(deg) 0.997891 + 32705, // 58.8867(deg) 0.998085 + 32711, // 59.0625(deg) 0.998269 + 32716, // 59.2383(deg) 0.998443 + 32722, // 59.4141(deg) 0.998607 + 32727, // 59.5898(deg) 0.998762 + 32732, // 59.7656(deg) 0.998906 + 32736, // 59.9414(deg) 0.999041 + 32740, // 60.1172(deg) 0.999166 + 32744, // 60.293(deg) 0.999283 + 32747, // 60.4688(deg) 0.999390 + 32751, // 60.6445(deg) 0.999488 + 32754, // 60.8203(deg) 0.999576 + 32756, // 60.9961(deg) 0.999657 + 32759, // 61.1719(deg) 0.999728 + 32761, // 61.3477(deg) 0.999791 + 32762, // 61.5234(deg) 0.999845 + 32764, // 61.6992(deg) 0.999891 + 32765, // 61.875(deg) 0.999929 + 32766, // 62.0508(deg) 0.999959 + 32767, // 62.2266(deg) 0.999980 + 32767, // 62.4023(deg) 0.999994 + 32767, // 62.5781(deg) 1.000000 + 32767, // 62.7539(deg) 0.999999 + 32767, // 62.9297(deg) 0.999990 + 32767, // 63.1055(deg) 0.999974 + 32766, // 63.2812(deg) 0.999950 + 32765, // 63.457(deg) 0.999920 + 32764, // 63.6328(deg) 0.999882 + 32762, // 63.8086(deg) 0.999837 + 32760, // 63.9844(deg) 0.999786 + 32759, // 64.1602(deg) 0.999728 + 32756, // 64.3359(deg) 0.999664 + 32754, // 64.5117(deg) 0.999593 + 32752, // 64.6875(deg) 0.999516 + 32749, // 64.8633(deg) 0.999433 + 32746, // 65.0391(deg) 0.999344 + 32743, // 65.2148(deg) 0.999249 + 32740, // 65.3906(deg) 0.999148 + 32736, // 65.5664(deg) 0.999041 + 32732, // 65.7422(deg) 0.998929 + 32729, // 65.918(deg) 0.998812 + 32725, // 66.0938(deg) 0.998689 + 32720, // 66.2695(deg) 0.998561 + 32716, // 66.4453(deg) 0.998428 + 32711, // 66.6211(deg) 0.998290 + 32707, // 66.7969(deg) 0.998147 + 32702, // 66.9727(deg) 0.997999 + 32697, // 67.1484(deg) 0.997847 + 32692, // 67.3242(deg) 0.997691 + 32687, // 67.5(deg) 0.997530 + 32681, // 67.6758(deg) 0.997364 + 32676, // 67.8516(deg) 0.997195 + 32670, // 68.0273(deg) 0.997022 + 32664, // 68.2031(deg) 0.996844 + 32658, // 68.3789(deg) 0.996663 + 32652, // 68.5547(deg) 0.996479 + 32646, // 68.7305(deg) 0.996290 + 32640, // 68.9062(deg) 0.996099 + 32633, // 69.082(deg) 0.995903 + 32627, // 69.2578(deg) 0.995705 + 32620, // 69.4336(deg) 0.995504 + 32613, // 69.6094(deg) 0.995299 + 32607, // 69.7852(deg) 0.995092 + 32600, // 69.9609(deg) 0.994882 + 32593, // 70.1367(deg) 0.994669 + 32586, // 70.3125(deg) 0.994454 + 32579, // 70.4883(deg) 0.994236 + 32571, // 70.6641(deg) 0.994016 + 32564, // 70.8398(deg) 0.993794 + 32557, // 71.0156(deg) 0.993569 + 32549, // 71.1914(deg) 0.993343 + 32542, // 71.3672(deg) 0.993114 + 32534, // 71.543(deg) 0.992884 + 32527, // 71.7188(deg) 0.992652 + 32519, // 71.8945(deg) 0.992419 + 32511, // 72.0703(deg) 0.992184 + 32504, // 72.2461(deg) 0.991947 + 32496, // 72.4219(deg) 0.991709 + 32488, // 72.5977(deg) 0.991471 + 32480, // 72.7734(deg) 0.991231 + 32472, // 72.9492(deg) 0.990989 + 32464, // 73.125(deg) 0.990748 + 32456, // 73.3008(deg) 0.990505 + 32448, // 73.4766(deg) 0.990261 + 32440, // 73.6523(deg) 0.990017 + 32432, // 73.8281(deg) 0.989773 + 32424, // 74.0039(deg) 0.989528 + 32416, // 74.1797(deg) 0.989283 + 32408, // 74.3555(deg) 0.989037 + 32400, // 74.5312(deg) 0.988791 + 32392, // 74.707(deg) 0.988546 + 32384, // 74.8828(deg) 0.988300 + 32376, // 75.0586(deg) 0.988055 + 32368, // 75.2344(deg) 0.987809 + 32360, // 75.4102(deg) 0.987565 + 32352, // 75.5859(deg) 0.987320 + 32344, // 75.7617(deg) 0.987076 + 32336, // 75.9375(deg) 0.986833 + 32328, // 76.1133(deg) 0.986590 + 32320, // 76.2891(deg) 0.986348 + 32312, // 76.4648(deg) 0.986107 + 32304, // 76.6406(deg) 0.985866 + 32297, // 76.8164(deg) 0.985627 + 32289, // 76.9922(deg) 0.985389 + 32281, // 77.168(deg) 0.985152 + 32273, // 77.3438(deg) 0.984916 + 32266, // 77.5195(deg) 0.984682 + 32258, // 77.6953(deg) 0.984449 + 32250, // 77.8711(deg) 0.984217 + 32243, // 78.0469(deg) 0.983987 + 32235, // 78.2227(deg) 0.983759 + 32228, // 78.3984(deg) 0.983532 + 32221, // 78.5742(deg) 0.983307 + 32213, // 78.75(deg) 0.983084 + 32206, // 78.9258(deg) 0.982863 + 32199, // 79.1016(deg) 0.982644 + 32192, // 79.2773(deg) 0.982427 + 32185, // 79.4531(deg) 0.982212 + 32178, // 79.6289(deg) 0.981999 + 32171, // 79.8047(deg) 0.981789 + 32164, // 79.9805(deg) 0.981580 + 32157, // 80.1562(deg) 0.981375 + 32151, // 80.332(deg) 0.981171 + 32144, // 80.5078(deg) 0.980971 + 32137, // 80.6836(deg) 0.980772 + 32131, // 80.8594(deg) 0.980577 + 32125, // 81.0352(deg) 0.980384 + 32118, // 81.2109(deg) 0.980194 + 32112, // 81.3867(deg) 0.980006 + 32106, // 81.5625(deg) 0.979822 + 32100, // 81.7383(deg) 0.979641 + 32095, // 81.9141(deg) 0.979462 + 32089, // 82.0898(deg) 0.979286 + 32083, // 82.2656(deg) 0.979114 + 32078, // 82.4414(deg) 0.978945 + 32072, // 82.6172(deg) 0.978779 + 32067, // 82.793(deg) 0.978616 + 32062, // 82.9688(deg) 0.978456 + 32056, // 83.1445(deg) 0.978300 + 32051, // 83.3203(deg) 0.978147 + 32047, // 83.4961(deg) 0.977998 + 32042, // 83.6719(deg) 0.977852 + 32037, // 83.8477(deg) 0.977709 + 32033, // 84.0234(deg) 0.977570 + 32028, // 84.1992(deg) 0.977435 + 32024, // 84.375(deg) 0.977303 + 32020, // 84.5508(deg) 0.977175 + 32015, // 84.7266(deg) 0.977051 + 32012, // 84.9023(deg) 0.976930 + 32008, // 85.0781(deg) 0.976813 + 32004, // 85.2539(deg) 0.976700 + 32000, // 85.4297(deg) 0.976591 + 31997, // 85.6055(deg) 0.976486 + 31994, // 85.7812(deg) 0.976384 + 31990, // 85.957(deg) 0.976287 + 31987, // 86.1328(deg) 0.976193 + 31984, // 86.3086(deg) 0.976103 + 31982, // 86.4844(deg) 0.976018 + 31979, // 86.6602(deg) 0.975936 + 31976, // 86.8359(deg) 0.975858 + 31974, // 87.0117(deg) 0.975785 + 31972, // 87.1875(deg) 0.975716 + 31970, // 87.3633(deg) 0.975650 + 31968, // 87.5391(deg) 0.975589 + 31966, // 87.7148(deg) 0.975532 + 31964, // 87.8906(deg) 0.975479 + 31962, // 88.0664(deg) 0.975431 + 31961, // 88.2422(deg) 0.975386 + 31960, // 88.418(deg) 0.975346 + 31958, // 88.5938(deg) 0.975310 + 31957, // 88.7695(deg) 0.975278 + 31956, // 88.9453(deg) 0.975250 + 31956, // 89.1211(deg) 0.975227 + 31955, // 89.2969(deg) 0.975208 + 31955, // 89.4727(deg) 0.975193 + 31954, // 89.6484(deg) 0.975182 + 31954, // 89.8242(deg) 0.975176 + 31954, // 90(deg) 0.975174 + 31954, // 90.1758(deg) 0.975176 + 31954, // 90.3516(deg) 0.975182 + 31955, // 90.5273(deg) 0.975193 + 31955, // 90.7031(deg) 0.975208 + 31956, // 90.8789(deg) 0.975227 + 31956, // 91.0547(deg) 0.975250 + 31957, // 91.2305(deg) 0.975278 + 31958, // 91.4062(deg) 0.975310 + 31960, // 91.582(deg) 0.975346 + 31961, // 91.7578(deg) 0.975386 + 31962, // 91.9336(deg) 0.975431 + 31964, // 92.1094(deg) 0.975479 + 31966, // 92.2852(deg) 0.975532 + 31968, // 92.4609(deg) 0.975589 + 31970, // 92.6367(deg) 0.975650 + 31972, // 92.8125(deg) 0.975716 + 31974, // 92.9883(deg) 0.975785 + 31976, // 93.1641(deg) 0.975858 + 31979, // 93.3398(deg) 0.975936 + 31982, // 93.5156(deg) 0.976018 + 31984, // 93.6914(deg) 0.976103 + 31987, // 93.8672(deg) 0.976193 + 31990, // 94.043(deg) 0.976287 + 31994, // 94.2188(deg) 0.976384 + 31997, // 94.3945(deg) 0.976486 + 32000, // 94.5703(deg) 0.976591 + 32004, // 94.7461(deg) 0.976700 + 32008, // 94.9219(deg) 0.976813 + 32012, // 95.0977(deg) 0.976930 + 32015, // 95.2734(deg) 0.977051 + 32020, // 95.4492(deg) 0.977175 + 32024, // 95.625(deg) 0.977303 + 32028, // 95.8008(deg) 0.977435 + 32033, // 95.9766(deg) 0.977570 + 32037, // 96.1523(deg) 0.977709 + 32042, // 96.3281(deg) 0.977852 + 32047, // 96.5039(deg) 0.977998 + 32051, // 96.6797(deg) 0.978147 + 32056, // 96.8555(deg) 0.978300 + 32062, // 97.0312(deg) 0.978456 + 32067, // 97.207(deg) 0.978616 + 32072, // 97.3828(deg) 0.978779 + 32078, // 97.5586(deg) 0.978945 + 32083, // 97.7344(deg) 0.979114 + 32089, // 97.9102(deg) 0.979286 + 32095, // 98.0859(deg) 0.979462 + 32100, // 98.2617(deg) 0.979641 + 32106, // 98.4375(deg) 0.979822 + 32112, // 98.6133(deg) 0.980006 + 32118, // 98.7891(deg) 0.980194 + 32125, // 98.9648(deg) 0.980384 + 32131, // 99.1406(deg) 0.980577 + 32137, // 99.3164(deg) 0.980772 + 32144, // 99.4922(deg) 0.980971 + 32151, // 99.668(deg) 0.981171 + 32157, // 99.8438(deg) 0.981375 + 32164, // 100.02(deg) 0.981580 + 32171, // 100.195(deg) 0.981789 + 32178, // 100.371(deg) 0.981999 + 32185, // 100.547(deg) 0.982212 + 32192, // 100.723(deg) 0.982427 + 32199, // 100.898(deg) 0.982644 + 32206, // 101.074(deg) 0.982863 + 32213, // 101.25(deg) 0.983084 + 32221, // 101.426(deg) 0.983307 + 32228, // 101.602(deg) 0.983532 + 32235, // 101.777(deg) 0.983759 + 32243, // 101.953(deg) 0.983987 + 32250, // 102.129(deg) 0.984217 + 32258, // 102.305(deg) 0.984449 + 32266, // 102.48(deg) 0.984682 + 32273, // 102.656(deg) 0.984916 + 32281, // 102.832(deg) 0.985152 + 32289, // 103.008(deg) 0.985389 + 32297, // 103.184(deg) 0.985627 + 32304, // 103.359(deg) 0.985866 + 32312, // 103.535(deg) 0.986107 + 32320, // 103.711(deg) 0.986348 + 32328, // 103.887(deg) 0.986590 + 32336, // 104.062(deg) 0.986833 + 32344, // 104.238(deg) 0.987076 + 32352, // 104.414(deg) 0.987320 + 32360, // 104.59(deg) 0.987565 + 32368, // 104.766(deg) 0.987809 + 32376, // 104.941(deg) 0.988055 + 32384, // 105.117(deg) 0.988300 + 32392, // 105.293(deg) 0.988546 + 32400, // 105.469(deg) 0.988791 + 32408, // 105.645(deg) 0.989037 + 32416, // 105.82(deg) 0.989283 + 32424, // 105.996(deg) 0.989528 + 32432, // 106.172(deg) 0.989773 + 32440, // 106.348(deg) 0.990017 + 32448, // 106.523(deg) 0.990261 + 32456, // 106.699(deg) 0.990505 + 32464, // 106.875(deg) 0.990748 + 32472, // 107.051(deg) 0.990989 + 32480, // 107.227(deg) 0.991231 + 32488, // 107.402(deg) 0.991471 + 32496, // 107.578(deg) 0.991709 + 32504, // 107.754(deg) 0.991947 + 32511, // 107.93(deg) 0.992184 + 32519, // 108.105(deg) 0.992419 + 32527, // 108.281(deg) 0.992652 + 32534, // 108.457(deg) 0.992884 + 32542, // 108.633(deg) 0.993114 + 32549, // 108.809(deg) 0.993343 + 32557, // 108.984(deg) 0.993569 + 32564, // 109.16(deg) 0.993794 + 32571, // 109.336(deg) 0.994016 + 32579, // 109.512(deg) 0.994236 + 32586, // 109.688(deg) 0.994454 + 32593, // 109.863(deg) 0.994669 + 32600, // 110.039(deg) 0.994882 + 32607, // 110.215(deg) 0.995092 + 32613, // 110.391(deg) 0.995299 + 32620, // 110.566(deg) 0.995504 + 32627, // 110.742(deg) 0.995705 + 32633, // 110.918(deg) 0.995903 + 32640, // 111.094(deg) 0.996099 + 32646, // 111.27(deg) 0.996290 + 32652, // 111.445(deg) 0.996479 + 32658, // 111.621(deg) 0.996663 + 32664, // 111.797(deg) 0.996844 + 32670, // 111.973(deg) 0.997022 + 32676, // 112.148(deg) 0.997195 + 32681, // 112.324(deg) 0.997364 + 32687, // 112.5(deg) 0.997530 + 32692, // 112.676(deg) 0.997691 + 32697, // 112.852(deg) 0.997847 + 32702, // 113.027(deg) 0.997999 + 32707, // 113.203(deg) 0.998147 + 32711, // 113.379(deg) 0.998290 + 32716, // 113.555(deg) 0.998428 + 32720, // 113.73(deg) 0.998561 + 32725, // 113.906(deg) 0.998689 + 32729, // 114.082(deg) 0.998812 + 32732, // 114.258(deg) 0.998929 + 32736, // 114.434(deg) 0.999041 + 32740, // 114.609(deg) 0.999148 + 32743, // 114.785(deg) 0.999249 + 32746, // 114.961(deg) 0.999344 + 32749, // 115.137(deg) 0.999433 + 32752, // 115.312(deg) 0.999516 + 32754, // 115.488(deg) 0.999593 + 32756, // 115.664(deg) 0.999664 + 32759, // 115.84(deg) 0.999728 + 32760, // 116.016(deg) 0.999786 + 32762, // 116.191(deg) 0.999837 + 32764, // 116.367(deg) 0.999882 + 32765, // 116.543(deg) 0.999920 + 32766, // 116.719(deg) 0.999950 + 32767, // 116.895(deg) 0.999974 + 32767, // 117.07(deg) 0.999990 + 32767, // 117.246(deg) 0.999999 + 32767, // 117.422(deg) 1.000000 + 32767, // 117.598(deg) 0.999994 + 32767, // 117.773(deg) 0.999980 + 32766, // 117.949(deg) 0.999959 + 32765, // 118.125(deg) 0.999929 + 32764, // 118.301(deg) 0.999891 + 32762, // 118.477(deg) 0.999845 + 32761, // 118.652(deg) 0.999791 + 32759, // 118.828(deg) 0.999728 + 32756, // 119.004(deg) 0.999657 + 32754, // 119.18(deg) 0.999576 + 32751, // 119.355(deg) 0.999488 + 32747, // 119.531(deg) 0.999390 + 32744, // 119.707(deg) 0.999283 + 32740, // 119.883(deg) 0.999166 + 32736, // 120.059(deg) 0.999041 + 32732, // 120.234(deg) 0.998906 + 32727, // 120.41(deg) 0.998762 + 32722, // 120.586(deg) 0.998607 + 32716, // 120.762(deg) 0.998443 + 32711, // 120.938(deg) 0.998269 + 32705, // 121.113(deg) 0.998085 + 32698, // 121.289(deg) 0.997891 + 32692, // 121.465(deg) 0.997687 + 32685, // 121.641(deg) 0.997472 + 32677, // 121.816(deg) 0.997246 + 32670, // 121.992(deg) 0.997010 + 32661, // 122.168(deg) 0.996763 + 32653, // 122.344(deg) 0.996506 + 32644, // 122.52(deg) 0.996237 + 32635, // 122.695(deg) 0.995957 + 32625, // 122.871(deg) 0.995666 + 32616, // 123.047(deg) 0.995363 + 32605, // 123.223(deg) 0.995049 + 32595, // 123.398(deg) 0.994723 + 32584, // 123.574(deg) 0.994386 + 32572, // 123.75(deg) 0.994036 + 32560, // 123.926(deg) 0.993675 + 32548, // 124.102(deg) 0.993302 + 32535, // 124.277(deg) 0.992916 + 32522, // 124.453(deg) 0.992518 + 32509, // 124.629(deg) 0.992108 + 32495, // 124.805(deg) 0.991685 + 32481, // 124.98(deg) 0.991249 + 32466, // 125.156(deg) 0.990801 + 32451, // 125.332(deg) 0.990339 + 32435, // 125.508(deg) 0.989865 + 32419, // 125.684(deg) 0.989377 + 32403, // 125.859(deg) 0.988877 + 32386, // 126.035(deg) 0.988363 + 32369, // 126.211(deg) 0.987835 + 32351, // 126.387(deg) 0.987294 + 32333, // 126.562(deg) 0.986739 + 32314, // 126.738(deg) 0.986170 + 32295, // 126.914(deg) 0.985588 + 32276, // 127.09(deg) 0.984991 + 32256, // 127.266(deg) 0.984380 + 32235, // 127.441(deg) 0.983755 + 32214, // 127.617(deg) 0.983116 + 32193, // 127.793(deg) 0.982462 + 32171, // 127.969(deg) 0.981793 + 32149, // 128.145(deg) 0.981110 + 32126, // 128.32(deg) 0.980412 + 32102, // 128.496(deg) 0.979699 + 32078, // 128.672(deg) 0.978971 + 32054, // 128.848(deg) 0.978228 + 32029, // 129.023(deg) 0.977470 + 32004, // 129.199(deg) 0.976697 + 31978, // 129.375(deg) 0.975908 + 31952, // 129.551(deg) 0.975103 + 31925, // 129.727(deg) 0.974283 + 31897, // 129.902(deg) 0.973447 + 31870, // 130.078(deg) 0.972596 + 31841, // 130.254(deg) 0.971728 + 31812, // 130.43(deg) 0.970845 + 31783, // 130.605(deg) 0.969945 + 31753, // 130.781(deg) 0.969029 + 31722, // 130.957(deg) 0.968097 + 31691, // 131.133(deg) 0.967148 + 31659, // 131.309(deg) 0.966183 + 31627, // 131.484(deg) 0.965201 + 31595, // 131.66(deg) 0.964203 + 31561, // 131.836(deg) 0.963188 + 31527, // 132.012(deg) 0.962156 + 31493, // 132.188(deg) 0.961107 + 31458, // 132.363(deg) 0.960041 + 31423, // 132.539(deg) 0.958958 + 31387, // 132.715(deg) 0.957857 + 31350, // 132.891(deg) 0.956739 + 31313, // 133.066(deg) 0.955604 + 31275, // 133.242(deg) 0.954452 + 31237, // 133.418(deg) 0.953281 + 31198, // 133.594(deg) 0.952094 + 31158, // 133.77(deg) 0.950888 + 31118, // 133.945(deg) 0.949665 + 31077, // 134.121(deg) 0.948423 + 31036, // 134.297(deg) 0.947164 + 30994, // 134.473(deg) 0.945887 + 30952, // 134.648(deg) 0.944591 + 30909, // 134.824(deg) 0.943277 + 30865, // 135(deg) 0.941945 + 30821, // 135.176(deg) 0.940595 + 30776, // 135.352(deg) 0.939226 + 30731, // 135.527(deg) 0.937839 + 30685, // 135.703(deg) 0.936433 + 30638, // 135.879(deg) 0.935008 + 30591, // 136.055(deg) 0.933565 + 30543, // 136.23(deg) 0.932103 + 30494, // 136.406(deg) 0.930622 + 30445, // 136.582(deg) 0.929122 + 30395, // 136.758(deg) 0.927603 + 30345, // 136.934(deg) 0.926065 + 30294, // 137.109(deg) 0.924508 + 30242, // 137.285(deg) 0.922932 + 30190, // 137.461(deg) 0.921336 + 30137, // 137.637(deg) 0.919721 + 30083, // 137.812(deg) 0.918087 + 30029, // 137.988(deg) 0.916433 + 29974, // 138.164(deg) 0.914760 + 29919, // 138.34(deg) 0.913067 + 29863, // 138.516(deg) 0.911355 + 29806, // 138.691(deg) 0.909623 + 29749, // 138.867(deg) 0.907871 + 29691, // 139.043(deg) 0.906100 + 29632, // 139.219(deg) 0.904308 + 29573, // 139.395(deg) 0.902497 + 29513, // 139.57(deg) 0.900666 + 29452, // 139.746(deg) 0.898815 + 29391, // 139.922(deg) 0.896944 + 29329, // 140.098(deg) 0.895053 + 29266, // 140.273(deg) 0.893142 + 29203, // 140.449(deg) 0.891210 + 29139, // 140.625(deg) 0.889259 + 29074, // 140.801(deg) 0.887287 + 29009, // 140.977(deg) 0.885295 + 28943, // 141.152(deg) 0.883283 + 28876, // 141.328(deg) 0.881250 + 28809, // 141.504(deg) 0.879197 + 28741, // 141.68(deg) 0.877124 + 28672, // 141.855(deg) 0.875030 + 28603, // 142.031(deg) 0.872916 + 28533, // 142.207(deg) 0.870781 + 28463, // 142.383(deg) 0.868625 + 28391, // 142.559(deg) 0.866450 + 28319, // 142.734(deg) 0.864253 + 28247, // 142.91(deg) 0.862036 + 28173, // 143.086(deg) 0.859798 + 28099, // 143.262(deg) 0.857540 + 28025, // 143.438(deg) 0.855261 + 27949, // 143.613(deg) 0.852961 + 27873, // 143.789(deg) 0.850640 + 27797, // 143.965(deg) 0.848299 + 27719, // 144.141(deg) 0.845937 + 27641, // 144.316(deg) 0.843554 + 27562, // 144.492(deg) 0.841151 + 27483, // 144.668(deg) 0.838726 + 27403, // 144.844(deg) 0.836281 + 27322, // 145.02(deg) 0.833815 + 27240, // 145.195(deg) 0.831328 + 27158, // 145.371(deg) 0.828821 + 27075, // 145.547(deg) 0.826292 + 26992, // 145.723(deg) 0.823743 + 26908, // 145.898(deg) 0.821172 + 26823, // 146.074(deg) 0.818581 + 26737, // 146.25(deg) 0.815969 + 26651, // 146.426(deg) 0.813337 + 26564, // 146.602(deg) 0.810683 + 26476, // 146.777(deg) 0.808008 + 26388, // 146.953(deg) 0.805313 + 26299, // 147.129(deg) 0.802597 + 26209, // 147.305(deg) 0.799860 + 26119, // 147.48(deg) 0.797102 + 26028, // 147.656(deg) 0.794323 + 25936, // 147.832(deg) 0.791523 + 25844, // 148.008(deg) 0.788703 + 25751, // 148.184(deg) 0.785862 + 25657, // 148.359(deg) 0.783000 + 25562, // 148.535(deg) 0.780117 + 25467, // 148.711(deg) 0.777214 + 25371, // 148.887(deg) 0.774290 + 25275, // 149.062(deg) 0.771345 + 25178, // 149.238(deg) 0.768379 + 25080, // 149.414(deg) 0.765393 + 24981, // 149.59(deg) 0.762386 + 24882, // 149.766(deg) 0.759359 + 24782, // 149.941(deg) 0.756311 + 24682, // 150.117(deg) 0.753242 + 24581, // 150.293(deg) 0.750153 + 24479, // 150.469(deg) 0.747044 + 24376, // 150.645(deg) 0.743914 + 24273, // 150.82(deg) 0.740763 + 24169, // 150.996(deg) 0.737592 + 24064, // 151.172(deg) 0.734401 + 23959, // 151.348(deg) 0.731189 + 23853, // 151.523(deg) 0.727958 + 23747, // 151.699(deg) 0.724705 + 23639, // 151.875(deg) 0.721433 + 23532, // 152.051(deg) 0.718141 + 23423, // 152.227(deg) 0.714828 + 23314, // 152.402(deg) 0.711495 + 23204, // 152.578(deg) 0.708143 + 23093, // 152.754(deg) 0.704770 + 22982, // 152.93(deg) 0.701377 + 22870, // 153.105(deg) 0.697965 + 22758, // 153.281(deg) 0.694532 + 22645, // 153.457(deg) 0.691080 + 22531, // 153.633(deg) 0.687608 + 22417, // 153.809(deg) 0.684117 + 22302, // 153.984(deg) 0.680606 + 22186, // 154.16(deg) 0.677075 + 22070, // 154.336(deg) 0.673525 + 21953, // 154.512(deg) 0.669955 + 21835, // 154.688(deg) 0.666366 + 21717, // 154.863(deg) 0.662758 + 21598, // 155.039(deg) 0.659131 + 21478, // 155.215(deg) 0.655484 + 21358, // 155.391(deg) 0.651818 + 21238, // 155.566(deg) 0.648133 + 21116, // 155.742(deg) 0.644429 + 20994, // 155.918(deg) 0.640707 + 20872, // 156.094(deg) 0.636965 + 20748, // 156.27(deg) 0.633205 + 20625, // 156.445(deg) 0.629426 + 20500, // 156.621(deg) 0.625628 + 20375, // 156.797(deg) 0.621812 + 20249, // 156.973(deg) 0.617978 + 20123, // 157.148(deg) 0.614125 + 19996, // 157.324(deg) 0.610253 + 19869, // 157.5(deg) 0.606364 + 19741, // 157.676(deg) 0.602456 + 19612, // 157.852(deg) 0.598531 + 19483, // 158.027(deg) 0.594587 + 19353, // 158.203(deg) 0.590626 + 19223, // 158.379(deg) 0.586647 + 19092, // 158.555(deg) 0.582650 + 18960, // 158.73(deg) 0.578635 + 18828, // 158.906(deg) 0.574603 + 18695, // 159.082(deg) 0.570554 + 18562, // 159.258(deg) 0.566487 + 18428, // 159.434(deg) 0.562403 + 18294, // 159.609(deg) 0.558302 + 18159, // 159.785(deg) 0.554184 + 18024, // 159.961(deg) 0.550049 + 17887, // 160.137(deg) 0.545897 + 17751, // 160.312(deg) 0.541729 + 17614, // 160.488(deg) 0.537543 + 17476, // 160.664(deg) 0.533342 + 17338, // 160.84(deg) 0.529124 + 17199, // 161.016(deg) 0.524889 + 17060, // 161.191(deg) 0.520638 + 16920, // 161.367(deg) 0.516372 + 16780, // 161.543(deg) 0.512089 + 16639, // 161.719(deg) 0.507790 + 16497, // 161.895(deg) 0.503476 + 16356, // 162.07(deg) 0.499146 + 16213, // 162.246(deg) 0.494800 + 16070, // 162.422(deg) 0.490439 + 15927, // 162.598(deg) 0.486063 + 15783, // 162.773(deg) 0.481671 + 15639, // 162.949(deg) 0.477265 + 15494, // 163.125(deg) 0.472843 + 15348, // 163.301(deg) 0.468407 + 15202, // 163.477(deg) 0.463956 + 15056, // 163.652(deg) 0.459490 + 14909, // 163.828(deg) 0.455010 + 14762, // 164.004(deg) 0.450515 + 14614, // 164.18(deg) 0.446007 + 14466, // 164.355(deg) 0.441484 + 14317, // 164.531(deg) 0.436947 + 14168, // 164.707(deg) 0.432396 + 14019, // 164.883(deg) 0.427832 + 13869, // 165.059(deg) 0.423254 + 13718, // 165.234(deg) 0.418663 + 13567, // 165.41(deg) 0.414058 + 13416, // 165.586(deg) 0.409440 + 13264, // 165.762(deg) 0.404809 + 13112, // 165.938(deg) 0.400165 + 12960, // 166.113(deg) 0.395508 + 12807, // 166.289(deg) 0.390839 + 12653, // 166.465(deg) 0.386157 + 12499, // 166.641(deg) 0.381463 + 12345, // 166.816(deg) 0.376756 + 12190, // 166.992(deg) 0.372037 + 12035, // 167.168(deg) 0.367307 + 11880, // 167.344(deg) 0.362564 + 11724, // 167.52(deg) 0.357810 + 11568, // 167.695(deg) 0.353045 + 11412, // 167.871(deg) 0.348268 + 11255, // 168.047(deg) 0.343479 + 11097, // 168.223(deg) 0.338680 + 10940, // 168.398(deg) 0.333870 + 10782, // 168.574(deg) 0.329048 + 10623, // 168.75(deg) 0.324217 + 10465, // 168.926(deg) 0.319374 + 10306, // 169.102(deg) 0.314522 + 10146, // 169.277(deg) 0.309659 + 9987, // 169.453(deg) 0.304786 + 9827, // 169.629(deg) 0.299903 + 9666, // 169.805(deg) 0.295010 + 9506, // 169.98(deg) 0.290108 + 9345, // 170.156(deg) 0.285196 + 9184, // 170.332(deg) 0.280275 + 9022, // 170.508(deg) 0.275345 + 8860, // 170.684(deg) 0.270406 + 8698, // 170.859(deg) 0.265457 + 8536, // 171.035(deg) 0.260501 + 8373, // 171.211(deg) 0.255535 + 8210, // 171.387(deg) 0.250562 + 8047, // 171.562(deg) 0.245580 + 7883, // 171.738(deg) 0.240590 + 7719, // 171.914(deg) 0.235592 + 7555, // 172.09(deg) 0.230587 + 7391, // 172.266(deg) 0.225573 + 7227, // 172.441(deg) 0.220553 + 7062, // 172.617(deg) 0.215525 + 6897, // 172.793(deg) 0.210490 + 6732, // 172.969(deg) 0.205448 + 6566, // 173.145(deg) 0.200400 + 6401, // 173.32(deg) 0.195344 + 6235, // 173.496(deg) 0.190283 + 6069, // 173.672(deg) 0.185215 + 5902, // 173.848(deg) 0.180141 + 5736, // 174.023(deg) 0.175061 + 5569, // 174.199(deg) 0.169975 + 5402, // 174.375(deg) 0.164884 + 5235, // 174.551(deg) 0.159787 + 5068, // 174.727(deg) 0.154685 + 4901, // 174.902(deg) 0.149577 + 4733, // 175.078(deg) 0.144465 + 4566, // 175.254(deg) 0.139348 + 4398, // 175.43(deg) 0.134226 + 4230, // 175.605(deg) 0.129100 + 4062, // 175.781(deg) 0.123970 + 3894, // 175.957(deg) 0.118836 + 3725, // 176.133(deg) 0.113697 + 3557, // 176.309(deg) 0.108555 + 3388, // 176.484(deg) 0.103409 + 3219, // 176.66(deg) 0.098260 + 3050, // 176.836(deg) 0.093107 + 2882, // 177.012(deg) 0.087952 + 2712, // 177.188(deg) 0.082793 + 2543, // 177.363(deg) 0.077632 + 2374, // 177.539(deg) 0.072468 + 2205, // 177.715(deg) 0.067302 + 2035, // 177.891(deg) 0.062134 + 1866, // 178.066(deg) 0.056963 + 1697, // 178.242(deg) 0.051791 + 1527, // 178.418(deg) 0.046617 + 1357, // 178.594(deg) 0.041441 + 1188, // 178.77(deg) 0.036264 + 1018, // 178.945(deg) 0.031085 + 848, // 179.121(deg) 0.025906 + 679, // 179.297(deg) 0.020726 + 509, // 179.473(deg) 0.015545 + 339, // 179.648(deg) 0.010364 + 169, // 179.824(deg) 0.005182 + 0, // 180(deg) 0.000000 + -169, // 180.176(deg) -0.005182 + -339, // 180.352(deg) -0.010364 + -509, // 180.527(deg) -0.015545 + -679, // 180.703(deg) -0.020726 + -848, // 180.879(deg) -0.025906 + -1018, // 181.055(deg) -0.031085 + -1188, // 181.23(deg) -0.036264 + -1357, // 181.406(deg) -0.041441 + -1527, // 181.582(deg) -0.046617 + -1697, // 181.758(deg) -0.051791 + -1866, // 181.934(deg) -0.056963 + -2035, // 182.109(deg) -0.062134 + -2205, // 182.285(deg) -0.067302 + -2374, // 182.461(deg) -0.072468 + -2543, // 182.637(deg) -0.077632 + -2712, // 182.812(deg) -0.082793 + -2882, // 182.988(deg) -0.087952 + -3050, // 183.164(deg) -0.093107 + -3219, // 183.34(deg) -0.098260 + -3388, // 183.516(deg) -0.103409 + -3557, // 183.691(deg) -0.108555 + -3725, // 183.867(deg) -0.113697 + -3894, // 184.043(deg) -0.118836 + -4062, // 184.219(deg) -0.123970 + -4230, // 184.395(deg) -0.129100 + -4398, // 184.57(deg) -0.134226 + -4566, // 184.746(deg) -0.139348 + -4733, // 184.922(deg) -0.144465 + -4901, // 185.098(deg) -0.149577 + -5068, // 185.273(deg) -0.154685 + -5235, // 185.449(deg) -0.159787 + -5402, // 185.625(deg) -0.164884 + -5569, // 185.801(deg) -0.169975 + -5736, // 185.977(deg) -0.175061 + -5902, // 186.152(deg) -0.180141 + -6069, // 186.328(deg) -0.185215 + -6235, // 186.504(deg) -0.190283 + -6401, // 186.68(deg) -0.195344 + -6566, // 186.855(deg) -0.200400 + -6732, // 187.031(deg) -0.205448 + -6897, // 187.207(deg) -0.210490 + -7062, // 187.383(deg) -0.215525 + -7227, // 187.559(deg) -0.220553 + -7391, // 187.734(deg) -0.225573 + -7555, // 187.91(deg) -0.230587 + -7719, // 188.086(deg) -0.235592 + -7883, // 188.262(deg) -0.240590 + -8047, // 188.438(deg) -0.245580 + -8210, // 188.613(deg) -0.250562 + -8373, // 188.789(deg) -0.255535 + -8536, // 188.965(deg) -0.260501 + -8698, // 189.141(deg) -0.265457 + -8860, // 189.316(deg) -0.270406 + -9022, // 189.492(deg) -0.275345 + -9184, // 189.668(deg) -0.280275 + -9345, // 189.844(deg) -0.285196 + -9506, // 190.02(deg) -0.290108 + -9666, // 190.195(deg) -0.295010 + -9827, // 190.371(deg) -0.299903 + -9987, // 190.547(deg) -0.304786 + -10146, // 190.723(deg) -0.309659 + -10306, // 190.898(deg) -0.314522 + -10465, // 191.074(deg) -0.319374 + -10623, // 191.25(deg) -0.324217 + -10782, // 191.426(deg) -0.329048 + -10940, // 191.602(deg) -0.333870 + -11097, // 191.777(deg) -0.338680 + -11255, // 191.953(deg) -0.343479 + -11412, // 192.129(deg) -0.348268 + -11568, // 192.305(deg) -0.353045 + -11724, // 192.48(deg) -0.357810 + -11880, // 192.656(deg) -0.362564 + -12035, // 192.832(deg) -0.367307 + -12190, // 193.008(deg) -0.372037 + -12345, // 193.184(deg) -0.376756 + -12499, // 193.359(deg) -0.381463 + -12653, // 193.535(deg) -0.386157 + -12807, // 193.711(deg) -0.390839 + -12960, // 193.887(deg) -0.395508 + -13112, // 194.062(deg) -0.400165 + -13264, // 194.238(deg) -0.404809 + -13416, // 194.414(deg) -0.409440 + -13567, // 194.59(deg) -0.414058 + -13718, // 194.766(deg) -0.418663 + -13869, // 194.941(deg) -0.423254 + -14019, // 195.117(deg) -0.427832 + -14168, // 195.293(deg) -0.432396 + -14317, // 195.469(deg) -0.436947 + -14466, // 195.645(deg) -0.441484 + -14614, // 195.82(deg) -0.446007 + -14762, // 195.996(deg) -0.450515 + -14909, // 196.172(deg) -0.455010 + -15056, // 196.348(deg) -0.459490 + -15202, // 196.523(deg) -0.463956 + -15348, // 196.699(deg) -0.468407 + -15494, // 196.875(deg) -0.472843 + -15639, // 197.051(deg) -0.477265 + -15783, // 197.227(deg) -0.481671 + -15927, // 197.402(deg) -0.486063 + -16070, // 197.578(deg) -0.490439 + -16213, // 197.754(deg) -0.494800 + -16356, // 197.93(deg) -0.499146 + -16497, // 198.105(deg) -0.503476 + -16639, // 198.281(deg) -0.507790 + -16780, // 198.457(deg) -0.512089 + -16920, // 198.633(deg) -0.516372 + -17060, // 198.809(deg) -0.520638 + -17199, // 198.984(deg) -0.524889 + -17338, // 199.16(deg) -0.529124 + -17476, // 199.336(deg) -0.533342 + -17614, // 199.512(deg) -0.537543 + -17751, // 199.688(deg) -0.541729 + -17887, // 199.863(deg) -0.545897 + -18024, // 200.039(deg) -0.550049 + -18159, // 200.215(deg) -0.554184 + -18294, // 200.391(deg) -0.558302 + -18428, // 200.566(deg) -0.562403 + -18562, // 200.742(deg) -0.566487 + -18695, // 200.918(deg) -0.570554 + -18828, // 201.094(deg) -0.574603 + -18960, // 201.27(deg) -0.578635 + -19092, // 201.445(deg) -0.582650 + -19223, // 201.621(deg) -0.586647 + -19353, // 201.797(deg) -0.590626 + -19483, // 201.973(deg) -0.594587 + -19612, // 202.148(deg) -0.598531 + -19741, // 202.324(deg) -0.602456 + -19869, // 202.5(deg) -0.606364 + -19996, // 202.676(deg) -0.610253 + -20123, // 202.852(deg) -0.614125 + -20249, // 203.027(deg) -0.617978 + -20375, // 203.203(deg) -0.621812 + -20500, // 203.379(deg) -0.625628 + -20625, // 203.555(deg) -0.629426 + -20748, // 203.73(deg) -0.633205 + -20872, // 203.906(deg) -0.636965 + -20994, // 204.082(deg) -0.640707 + -21116, // 204.258(deg) -0.644429 + -21238, // 204.434(deg) -0.648133 + -21358, // 204.609(deg) -0.651818 + -21478, // 204.785(deg) -0.655484 + -21598, // 204.961(deg) -0.659131 + -21717, // 205.137(deg) -0.662758 + -21835, // 205.312(deg) -0.666366 + -21953, // 205.488(deg) -0.669955 + -22070, // 205.664(deg) -0.673525 + -22186, // 205.84(deg) -0.677075 + -22302, // 206.016(deg) -0.680606 + -22417, // 206.191(deg) -0.684117 + -22531, // 206.367(deg) -0.687608 + -22645, // 206.543(deg) -0.691080 + -22758, // 206.719(deg) -0.694532 + -22870, // 206.895(deg) -0.697965 + -22982, // 207.07(deg) -0.701377 + -23093, // 207.246(deg) -0.704770 + -23204, // 207.422(deg) -0.708143 + -23314, // 207.598(deg) -0.711495 + -23423, // 207.773(deg) -0.714828 + -23532, // 207.949(deg) -0.718141 + -23639, // 208.125(deg) -0.721433 + -23747, // 208.301(deg) -0.724705 + -23853, // 208.477(deg) -0.727958 + -23959, // 208.652(deg) -0.731189 + -24064, // 208.828(deg) -0.734401 + -24169, // 209.004(deg) -0.737592 + -24273, // 209.18(deg) -0.740763 + -24376, // 209.355(deg) -0.743914 + -24479, // 209.531(deg) -0.747044 + -24581, // 209.707(deg) -0.750153 + -24682, // 209.883(deg) -0.753242 + -24782, // 210.059(deg) -0.756311 + -24882, // 210.234(deg) -0.759359 + -24981, // 210.41(deg) -0.762386 + -25080, // 210.586(deg) -0.765393 + -25178, // 210.762(deg) -0.768379 + -25275, // 210.938(deg) -0.771345 + -25371, // 211.113(deg) -0.774290 + -25467, // 211.289(deg) -0.777214 + -25562, // 211.465(deg) -0.780117 + -25657, // 211.641(deg) -0.783000 + -25751, // 211.816(deg) -0.785862 + -25844, // 211.992(deg) -0.788703 + -25936, // 212.168(deg) -0.791523 + -26028, // 212.344(deg) -0.794323 + -26119, // 212.52(deg) -0.797102 + -26209, // 212.695(deg) -0.799860 + -26299, // 212.871(deg) -0.802597 + -26388, // 213.047(deg) -0.805313 + -26476, // 213.223(deg) -0.808008 + -26564, // 213.398(deg) -0.810683 + -26651, // 213.574(deg) -0.813337 + -26737, // 213.75(deg) -0.815969 + -26823, // 213.926(deg) -0.818581 + -26908, // 214.102(deg) -0.821172 + -26992, // 214.277(deg) -0.823743 + -27075, // 214.453(deg) -0.826292 + -27158, // 214.629(deg) -0.828821 + -27240, // 214.805(deg) -0.831328 + -27322, // 214.98(deg) -0.833815 + -27403, // 215.156(deg) -0.836281 + -27483, // 215.332(deg) -0.838726 + -27562, // 215.508(deg) -0.841151 + -27641, // 215.684(deg) -0.843554 + -27719, // 215.859(deg) -0.845937 + -27797, // 216.035(deg) -0.848299 + -27873, // 216.211(deg) -0.850640 + -27949, // 216.387(deg) -0.852961 + -28025, // 216.562(deg) -0.855261 + -28099, // 216.738(deg) -0.857540 + -28173, // 216.914(deg) -0.859798 + -28247, // 217.09(deg) -0.862036 + -28319, // 217.266(deg) -0.864253 + -28391, // 217.441(deg) -0.866450 + -28463, // 217.617(deg) -0.868625 + -28533, // 217.793(deg) -0.870781 + -28603, // 217.969(deg) -0.872916 + -28672, // 218.145(deg) -0.875030 + -28741, // 218.32(deg) -0.877124 + -28809, // 218.496(deg) -0.879197 + -28876, // 218.672(deg) -0.881250 + -28943, // 218.848(deg) -0.883283 + -29009, // 219.023(deg) -0.885295 + -29074, // 219.199(deg) -0.887287 + -29139, // 219.375(deg) -0.889259 + -29203, // 219.551(deg) -0.891210 + -29266, // 219.727(deg) -0.893142 + -29329, // 219.902(deg) -0.895053 + -29391, // 220.078(deg) -0.896944 + -29452, // 220.254(deg) -0.898815 + -29513, // 220.43(deg) -0.900666 + -29573, // 220.605(deg) -0.902497 + -29632, // 220.781(deg) -0.904308 + -29691, // 220.957(deg) -0.906100 + -29749, // 221.133(deg) -0.907871 + -29806, // 221.309(deg) -0.909623 + -29863, // 221.484(deg) -0.911355 + -29919, // 221.66(deg) -0.913067 + -29974, // 221.836(deg) -0.914760 + -30029, // 222.012(deg) -0.916433 + -30083, // 222.188(deg) -0.918087 + -30137, // 222.363(deg) -0.919721 + -30190, // 222.539(deg) -0.921336 + -30242, // 222.715(deg) -0.922932 + -30294, // 222.891(deg) -0.924508 + -30345, // 223.066(deg) -0.926065 + -30395, // 223.242(deg) -0.927603 + -30445, // 223.418(deg) -0.929122 + -30494, // 223.594(deg) -0.930622 + -30543, // 223.77(deg) -0.932103 + -30591, // 223.945(deg) -0.933565 + -30638, // 224.121(deg) -0.935008 + -30685, // 224.297(deg) -0.936433 + -30731, // 224.473(deg) -0.937839 + -30776, // 224.648(deg) -0.939226 + -30821, // 224.824(deg) -0.940595 + -30865, // 225(deg) -0.941945 + -30909, // 225.176(deg) -0.943277 + -30952, // 225.352(deg) -0.944591 + -30994, // 225.527(deg) -0.945887 + -31036, // 225.703(deg) -0.947164 + -31077, // 225.879(deg) -0.948423 + -31118, // 226.055(deg) -0.949665 + -31158, // 226.23(deg) -0.950888 + -31198, // 226.406(deg) -0.952094 + -31237, // 226.582(deg) -0.953281 + -31275, // 226.758(deg) -0.954452 + -31313, // 226.934(deg) -0.955604 + -31350, // 227.109(deg) -0.956739 + -31387, // 227.285(deg) -0.957857 + -31423, // 227.461(deg) -0.958958 + -31458, // 227.637(deg) -0.960041 + -31493, // 227.812(deg) -0.961107 + -31527, // 227.988(deg) -0.962156 + -31561, // 228.164(deg) -0.963188 + -31595, // 228.34(deg) -0.964203 + -31627, // 228.516(deg) -0.965201 + -31659, // 228.691(deg) -0.966183 + -31691, // 228.867(deg) -0.967148 + -31722, // 229.043(deg) -0.968097 + -31753, // 229.219(deg) -0.969029 + -31783, // 229.395(deg) -0.969945 + -31812, // 229.57(deg) -0.970845 + -31841, // 229.746(deg) -0.971728 + -31870, // 229.922(deg) -0.972596 + -31897, // 230.098(deg) -0.973447 + -31925, // 230.273(deg) -0.974283 + -31952, // 230.449(deg) -0.975103 + -31978, // 230.625(deg) -0.975908 + -32004, // 230.801(deg) -0.976697 + -32029, // 230.977(deg) -0.977470 + -32054, // 231.152(deg) -0.978228 + -32078, // 231.328(deg) -0.978971 + -32102, // 231.504(deg) -0.979699 + -32126, // 231.68(deg) -0.980412 + -32149, // 231.855(deg) -0.981110 + -32171, // 232.031(deg) -0.981793 + -32193, // 232.207(deg) -0.982462 + -32214, // 232.383(deg) -0.983116 + -32235, // 232.559(deg) -0.983755 + -32256, // 232.734(deg) -0.984380 + -32276, // 232.91(deg) -0.984991 + -32295, // 233.086(deg) -0.985588 + -32314, // 233.262(deg) -0.986170 + -32333, // 233.438(deg) -0.986739 + -32351, // 233.613(deg) -0.987294 + -32369, // 233.789(deg) -0.987835 + -32386, // 233.965(deg) -0.988363 + -32403, // 234.141(deg) -0.988877 + -32419, // 234.316(deg) -0.989377 + -32435, // 234.492(deg) -0.989865 + -32451, // 234.668(deg) -0.990339 + -32466, // 234.844(deg) -0.990801 + -32481, // 235.02(deg) -0.991249 + -32495, // 235.195(deg) -0.991685 + -32509, // 235.371(deg) -0.992108 + -32522, // 235.547(deg) -0.992518 + -32535, // 235.723(deg) -0.992916 + -32548, // 235.898(deg) -0.993302 + -32560, // 236.074(deg) -0.993675 + -32572, // 236.25(deg) -0.994036 + -32584, // 236.426(deg) -0.994386 + -32595, // 236.602(deg) -0.994723 + -32605, // 236.777(deg) -0.995049 + -32616, // 236.953(deg) -0.995363 + -32625, // 237.129(deg) -0.995666 + -32635, // 237.305(deg) -0.995957 + -32644, // 237.48(deg) -0.996237 + -32653, // 237.656(deg) -0.996506 + -32661, // 237.832(deg) -0.996763 + -32670, // 238.008(deg) -0.997010 + -32677, // 238.184(deg) -0.997246 + -32685, // 238.359(deg) -0.997472 + -32692, // 238.535(deg) -0.997687 + -32698, // 238.711(deg) -0.997891 + -32705, // 238.887(deg) -0.998085 + -32711, // 239.062(deg) -0.998269 + -32716, // 239.238(deg) -0.998443 + -32722, // 239.414(deg) -0.998607 + -32727, // 239.59(deg) -0.998762 + -32732, // 239.766(deg) -0.998906 + -32736, // 239.941(deg) -0.999041 + -32740, // 240.117(deg) -0.999166 + -32744, // 240.293(deg) -0.999283 + -32747, // 240.469(deg) -0.999390 + -32751, // 240.645(deg) -0.999488 + -32754, // 240.82(deg) -0.999576 + -32756, // 240.996(deg) -0.999657 + -32759, // 241.172(deg) -0.999728 + -32761, // 241.348(deg) -0.999791 + -32762, // 241.523(deg) -0.999845 + -32764, // 241.699(deg) -0.999891 + -32765, // 241.875(deg) -0.999929 + -32766, // 242.051(deg) -0.999959 + -32767, // 242.227(deg) -0.999980 + -32767, // 242.402(deg) -0.999994 + -32768, // 242.578(deg) -1.000000 + -32767, // 242.754(deg) -0.999999 + -32767, // 242.93(deg) -0.999990 + -32767, // 243.105(deg) -0.999974 + -32766, // 243.281(deg) -0.999950 + -32765, // 243.457(deg) -0.999920 + -32764, // 243.633(deg) -0.999882 + -32762, // 243.809(deg) -0.999837 + -32760, // 243.984(deg) -0.999786 + -32759, // 244.16(deg) -0.999728 + -32756, // 244.336(deg) -0.999664 + -32754, // 244.512(deg) -0.999593 + -32752, // 244.688(deg) -0.999516 + -32749, // 244.863(deg) -0.999433 + -32746, // 245.039(deg) -0.999344 + -32743, // 245.215(deg) -0.999249 + -32740, // 245.391(deg) -0.999148 + -32736, // 245.566(deg) -0.999041 + -32732, // 245.742(deg) -0.998929 + -32729, // 245.918(deg) -0.998812 + -32725, // 246.094(deg) -0.998689 + -32720, // 246.27(deg) -0.998561 + -32716, // 246.445(deg) -0.998428 + -32711, // 246.621(deg) -0.998290 + -32707, // 246.797(deg) -0.998147 + -32702, // 246.973(deg) -0.997999 + -32697, // 247.148(deg) -0.997847 + -32692, // 247.324(deg) -0.997691 + -32687, // 247.5(deg) -0.997530 + -32681, // 247.676(deg) -0.997364 + -32676, // 247.852(deg) -0.997195 + -32670, // 248.027(deg) -0.997022 + -32664, // 248.203(deg) -0.996844 + -32658, // 248.379(deg) -0.996663 + -32652, // 248.555(deg) -0.996479 + -32646, // 248.73(deg) -0.996290 + -32640, // 248.906(deg) -0.996099 + -32633, // 249.082(deg) -0.995903 + -32627, // 249.258(deg) -0.995705 + -32620, // 249.434(deg) -0.995504 + -32613, // 249.609(deg) -0.995299 + -32607, // 249.785(deg) -0.995092 + -32600, // 249.961(deg) -0.994882 + -32593, // 250.137(deg) -0.994669 + -32586, // 250.312(deg) -0.994454 + -32579, // 250.488(deg) -0.994236 + -32571, // 250.664(deg) -0.994016 + -32564, // 250.84(deg) -0.993794 + -32557, // 251.016(deg) -0.993569 + -32549, // 251.191(deg) -0.993343 + -32542, // 251.367(deg) -0.993114 + -32534, // 251.543(deg) -0.992884 + -32527, // 251.719(deg) -0.992652 + -32519, // 251.895(deg) -0.992419 + -32511, // 252.07(deg) -0.992184 + -32504, // 252.246(deg) -0.991947 + -32496, // 252.422(deg) -0.991709 + -32488, // 252.598(deg) -0.991471 + -32480, // 252.773(deg) -0.991231 + -32472, // 252.949(deg) -0.990989 + -32464, // 253.125(deg) -0.990748 + -32456, // 253.301(deg) -0.990505 + -32448, // 253.477(deg) -0.990261 + -32440, // 253.652(deg) -0.990017 + -32432, // 253.828(deg) -0.989773 + -32424, // 254.004(deg) -0.989528 + -32416, // 254.18(deg) -0.989283 + -32408, // 254.355(deg) -0.989037 + -32400, // 254.531(deg) -0.988791 + -32392, // 254.707(deg) -0.988546 + -32384, // 254.883(deg) -0.988300 + -32376, // 255.059(deg) -0.988055 + -32368, // 255.234(deg) -0.987809 + -32360, // 255.41(deg) -0.987565 + -32352, // 255.586(deg) -0.987320 + -32344, // 255.762(deg) -0.987076 + -32336, // 255.938(deg) -0.986833 + -32328, // 256.113(deg) -0.986590 + -32320, // 256.289(deg) -0.986348 + -32312, // 256.465(deg) -0.986107 + -32304, // 256.641(deg) -0.985866 + -32297, // 256.816(deg) -0.985627 + -32289, // 256.992(deg) -0.985389 + -32281, // 257.168(deg) -0.985152 + -32273, // 257.344(deg) -0.984916 + -32266, // 257.52(deg) -0.984682 + -32258, // 257.695(deg) -0.984449 + -32250, // 257.871(deg) -0.984217 + -32243, // 258.047(deg) -0.983987 + -32235, // 258.223(deg) -0.983759 + -32228, // 258.398(deg) -0.983532 + -32221, // 258.574(deg) -0.983307 + -32213, // 258.75(deg) -0.983084 + -32206, // 258.926(deg) -0.982863 + -32199, // 259.102(deg) -0.982644 + -32192, // 259.277(deg) -0.982427 + -32185, // 259.453(deg) -0.982212 + -32178, // 259.629(deg) -0.981999 + -32171, // 259.805(deg) -0.981789 + -32164, // 259.98(deg) -0.981580 + -32157, // 260.156(deg) -0.981375 + -32151, // 260.332(deg) -0.981171 + -32144, // 260.508(deg) -0.980971 + -32137, // 260.684(deg) -0.980772 + -32131, // 260.859(deg) -0.980577 + -32125, // 261.035(deg) -0.980384 + -32118, // 261.211(deg) -0.980194 + -32112, // 261.387(deg) -0.980006 + -32106, // 261.562(deg) -0.979822 + -32100, // 261.738(deg) -0.979641 + -32095, // 261.914(deg) -0.979462 + -32089, // 262.09(deg) -0.979286 + -32083, // 262.266(deg) -0.979114 + -32078, // 262.441(deg) -0.978945 + -32072, // 262.617(deg) -0.978779 + -32067, // 262.793(deg) -0.978616 + -32062, // 262.969(deg) -0.978456 + -32056, // 263.145(deg) -0.978300 + -32051, // 263.32(deg) -0.978147 + -32047, // 263.496(deg) -0.977998 + -32042, // 263.672(deg) -0.977852 + -32037, // 263.848(deg) -0.977709 + -32033, // 264.023(deg) -0.977570 + -32028, // 264.199(deg) -0.977435 + -32024, // 264.375(deg) -0.977303 + -32020, // 264.551(deg) -0.977175 + -32015, // 264.727(deg) -0.977051 + -32012, // 264.902(deg) -0.976930 + -32008, // 265.078(deg) -0.976813 + -32004, // 265.254(deg) -0.976700 + -32000, // 265.43(deg) -0.976591 + -31997, // 265.605(deg) -0.976486 + -31994, // 265.781(deg) -0.976384 + -31990, // 265.957(deg) -0.976287 + -31987, // 266.133(deg) -0.976193 + -31984, // 266.309(deg) -0.976103 + -31982, // 266.484(deg) -0.976018 + -31979, // 266.66(deg) -0.975936 + -31976, // 266.836(deg) -0.975858 + -31974, // 267.012(deg) -0.975785 + -31972, // 267.188(deg) -0.975716 + -31970, // 267.363(deg) -0.975650 + -31968, // 267.539(deg) -0.975589 + -31966, // 267.715(deg) -0.975532 + -31964, // 267.891(deg) -0.975479 + -31962, // 268.066(deg) -0.975431 + -31961, // 268.242(deg) -0.975386 + -31960, // 268.418(deg) -0.975346 + -31958, // 268.594(deg) -0.975310 + -31957, // 268.77(deg) -0.975278 + -31956, // 268.945(deg) -0.975250 + -31956, // 269.121(deg) -0.975227 + -31955, // 269.297(deg) -0.975208 + -31955, // 269.473(deg) -0.975193 + -31954, // 269.648(deg) -0.975182 + -31954, // 269.824(deg) -0.975176 + -31954, // 270(deg) -0.975174 + -31954, // 270.176(deg) -0.975176 + -31954, // 270.352(deg) -0.975182 + -31955, // 270.527(deg) -0.975193 + -31955, // 270.703(deg) -0.975208 + -31956, // 270.879(deg) -0.975227 + -31956, // 271.055(deg) -0.975250 + -31957, // 271.23(deg) -0.975278 + -31958, // 271.406(deg) -0.975310 + -31960, // 271.582(deg) -0.975346 + -31961, // 271.758(deg) -0.975386 + -31962, // 271.934(deg) -0.975431 + -31964, // 272.109(deg) -0.975479 + -31966, // 272.285(deg) -0.975532 + -31968, // 272.461(deg) -0.975589 + -31970, // 272.637(deg) -0.975650 + -31972, // 272.812(deg) -0.975716 + -31974, // 272.988(deg) -0.975785 + -31976, // 273.164(deg) -0.975858 + -31979, // 273.34(deg) -0.975936 + -31982, // 273.516(deg) -0.976018 + -31984, // 273.691(deg) -0.976103 + -31987, // 273.867(deg) -0.976193 + -31990, // 274.043(deg) -0.976287 + -31994, // 274.219(deg) -0.976384 + -31997, // 274.395(deg) -0.976486 + -32000, // 274.57(deg) -0.976591 + -32004, // 274.746(deg) -0.976700 + -32008, // 274.922(deg) -0.976813 + -32012, // 275.098(deg) -0.976930 + -32015, // 275.273(deg) -0.977051 + -32020, // 275.449(deg) -0.977175 + -32024, // 275.625(deg) -0.977303 + -32028, // 275.801(deg) -0.977435 + -32033, // 275.977(deg) -0.977570 + -32037, // 276.152(deg) -0.977709 + -32042, // 276.328(deg) -0.977852 + -32047, // 276.504(deg) -0.977998 + -32051, // 276.68(deg) -0.978147 + -32056, // 276.855(deg) -0.978300 + -32062, // 277.031(deg) -0.978456 + -32067, // 277.207(deg) -0.978616 + -32072, // 277.383(deg) -0.978779 + -32078, // 277.559(deg) -0.978945 + -32083, // 277.734(deg) -0.979114 + -32089, // 277.91(deg) -0.979286 + -32095, // 278.086(deg) -0.979462 + -32100, // 278.262(deg) -0.979641 + -32106, // 278.438(deg) -0.979822 + -32112, // 278.613(deg) -0.980006 + -32118, // 278.789(deg) -0.980194 + -32125, // 278.965(deg) -0.980384 + -32131, // 279.141(deg) -0.980577 + -32137, // 279.316(deg) -0.980772 + -32144, // 279.492(deg) -0.980971 + -32151, // 279.668(deg) -0.981171 + -32157, // 279.844(deg) -0.981375 + -32164, // 280.02(deg) -0.981580 + -32171, // 280.195(deg) -0.981789 + -32178, // 280.371(deg) -0.981999 + -32185, // 280.547(deg) -0.982212 + -32192, // 280.723(deg) -0.982427 + -32199, // 280.898(deg) -0.982644 + -32206, // 281.074(deg) -0.982863 + -32213, // 281.25(deg) -0.983084 + -32221, // 281.426(deg) -0.983307 + -32228, // 281.602(deg) -0.983532 + -32235, // 281.777(deg) -0.983759 + -32243, // 281.953(deg) -0.983987 + -32250, // 282.129(deg) -0.984217 + -32258, // 282.305(deg) -0.984449 + -32266, // 282.48(deg) -0.984682 + -32273, // 282.656(deg) -0.984916 + -32281, // 282.832(deg) -0.985152 + -32289, // 283.008(deg) -0.985389 + -32297, // 283.184(deg) -0.985627 + -32304, // 283.359(deg) -0.985866 + -32312, // 283.535(deg) -0.986107 + -32320, // 283.711(deg) -0.986348 + -32328, // 283.887(deg) -0.986590 + -32336, // 284.062(deg) -0.986833 + -32344, // 284.238(deg) -0.987076 + -32352, // 284.414(deg) -0.987320 + -32360, // 284.59(deg) -0.987565 + -32368, // 284.766(deg) -0.987809 + -32376, // 284.941(deg) -0.988055 + -32384, // 285.117(deg) -0.988300 + -32392, // 285.293(deg) -0.988546 + -32400, // 285.469(deg) -0.988791 + -32408, // 285.645(deg) -0.989037 + -32416, // 285.82(deg) -0.989283 + -32424, // 285.996(deg) -0.989528 + -32432, // 286.172(deg) -0.989773 + -32440, // 286.348(deg) -0.990017 + -32448, // 286.523(deg) -0.990261 + -32456, // 286.699(deg) -0.990505 + -32464, // 286.875(deg) -0.990748 + -32472, // 287.051(deg) -0.990989 + -32480, // 287.227(deg) -0.991231 + -32488, // 287.402(deg) -0.991471 + -32496, // 287.578(deg) -0.991709 + -32504, // 287.754(deg) -0.991947 + -32511, // 287.93(deg) -0.992184 + -32519, // 288.105(deg) -0.992419 + -32527, // 288.281(deg) -0.992652 + -32534, // 288.457(deg) -0.992884 + -32542, // 288.633(deg) -0.993114 + -32549, // 288.809(deg) -0.993343 + -32557, // 288.984(deg) -0.993569 + -32564, // 289.16(deg) -0.993794 + -32571, // 289.336(deg) -0.994016 + -32579, // 289.512(deg) -0.994236 + -32586, // 289.688(deg) -0.994454 + -32593, // 289.863(deg) -0.994669 + -32600, // 290.039(deg) -0.994882 + -32607, // 290.215(deg) -0.995092 + -32613, // 290.391(deg) -0.995299 + -32620, // 290.566(deg) -0.995504 + -32627, // 290.742(deg) -0.995705 + -32633, // 290.918(deg) -0.995903 + -32640, // 291.094(deg) -0.996099 + -32646, // 291.27(deg) -0.996290 + -32652, // 291.445(deg) -0.996479 + -32658, // 291.621(deg) -0.996663 + -32664, // 291.797(deg) -0.996844 + -32670, // 291.973(deg) -0.997022 + -32676, // 292.148(deg) -0.997195 + -32681, // 292.324(deg) -0.997364 + -32687, // 292.5(deg) -0.997530 + -32692, // 292.676(deg) -0.997691 + -32697, // 292.852(deg) -0.997847 + -32702, // 293.027(deg) -0.997999 + -32707, // 293.203(deg) -0.998147 + -32711, // 293.379(deg) -0.998290 + -32716, // 293.555(deg) -0.998428 + -32720, // 293.73(deg) -0.998561 + -32725, // 293.906(deg) -0.998689 + -32729, // 294.082(deg) -0.998812 + -32732, // 294.258(deg) -0.998929 + -32736, // 294.434(deg) -0.999041 + -32740, // 294.609(deg) -0.999148 + -32743, // 294.785(deg) -0.999249 + -32746, // 294.961(deg) -0.999344 + -32749, // 295.137(deg) -0.999433 + -32752, // 295.312(deg) -0.999516 + -32754, // 295.488(deg) -0.999593 + -32756, // 295.664(deg) -0.999664 + -32759, // 295.84(deg) -0.999728 + -32760, // 296.016(deg) -0.999786 + -32762, // 296.191(deg) -0.999837 + -32764, // 296.367(deg) -0.999882 + -32765, // 296.543(deg) -0.999920 + -32766, // 296.719(deg) -0.999950 + -32767, // 296.895(deg) -0.999974 + -32767, // 297.07(deg) -0.999990 + -32767, // 297.246(deg) -0.999999 + -32768, // 297.422(deg) -1.000000 + -32767, // 297.598(deg) -0.999994 + -32767, // 297.773(deg) -0.999980 + -32766, // 297.949(deg) -0.999959 + -32765, // 298.125(deg) -0.999929 + -32764, // 298.301(deg) -0.999891 + -32762, // 298.477(deg) -0.999845 + -32761, // 298.652(deg) -0.999791 + -32759, // 298.828(deg) -0.999728 + -32756, // 299.004(deg) -0.999657 + -32754, // 299.18(deg) -0.999576 + -32751, // 299.355(deg) -0.999488 + -32747, // 299.531(deg) -0.999390 + -32744, // 299.707(deg) -0.999283 + -32740, // 299.883(deg) -0.999166 + -32736, // 300.059(deg) -0.999041 + -32732, // 300.234(deg) -0.998906 + -32727, // 300.41(deg) -0.998762 + -32722, // 300.586(deg) -0.998607 + -32716, // 300.762(deg) -0.998443 + -32711, // 300.938(deg) -0.998269 + -32705, // 301.113(deg) -0.998085 + -32698, // 301.289(deg) -0.997891 + -32692, // 301.465(deg) -0.997687 + -32685, // 301.641(deg) -0.997472 + -32677, // 301.816(deg) -0.997246 + -32670, // 301.992(deg) -0.997010 + -32661, // 302.168(deg) -0.996763 + -32653, // 302.344(deg) -0.996506 + -32644, // 302.52(deg) -0.996237 + -32635, // 302.695(deg) -0.995957 + -32625, // 302.871(deg) -0.995666 + -32616, // 303.047(deg) -0.995363 + -32605, // 303.223(deg) -0.995049 + -32595, // 303.398(deg) -0.994723 + -32584, // 303.574(deg) -0.994386 + -32572, // 303.75(deg) -0.994036 + -32560, // 303.926(deg) -0.993675 + -32548, // 304.102(deg) -0.993302 + -32535, // 304.277(deg) -0.992916 + -32522, // 304.453(deg) -0.992518 + -32509, // 304.629(deg) -0.992108 + -32495, // 304.805(deg) -0.991685 + -32481, // 304.98(deg) -0.991249 + -32466, // 305.156(deg) -0.990801 + -32451, // 305.332(deg) -0.990339 + -32435, // 305.508(deg) -0.989865 + -32419, // 305.684(deg) -0.989377 + -32403, // 305.859(deg) -0.988877 + -32386, // 306.035(deg) -0.988363 + -32369, // 306.211(deg) -0.987835 + -32351, // 306.387(deg) -0.987294 + -32333, // 306.562(deg) -0.986739 + -32314, // 306.738(deg) -0.986170 + -32295, // 306.914(deg) -0.985588 + -32276, // 307.09(deg) -0.984991 + -32256, // 307.266(deg) -0.984380 + -32235, // 307.441(deg) -0.983755 + -32214, // 307.617(deg) -0.983116 + -32193, // 307.793(deg) -0.982462 + -32171, // 307.969(deg) -0.981793 + -32149, // 308.145(deg) -0.981110 + -32126, // 308.32(deg) -0.980412 + -32102, // 308.496(deg) -0.979699 + -32078, // 308.672(deg) -0.978971 + -32054, // 308.848(deg) -0.978228 + -32029, // 309.023(deg) -0.977470 + -32004, // 309.199(deg) -0.976697 + -31978, // 309.375(deg) -0.975908 + -31952, // 309.551(deg) -0.975103 + -31925, // 309.727(deg) -0.974283 + -31897, // 309.902(deg) -0.973447 + -31870, // 310.078(deg) -0.972596 + -31841, // 310.254(deg) -0.971728 + -31812, // 310.43(deg) -0.970845 + -31783, // 310.605(deg) -0.969945 + -31753, // 310.781(deg) -0.969029 + -31722, // 310.957(deg) -0.968097 + -31691, // 311.133(deg) -0.967148 + -31659, // 311.309(deg) -0.966183 + -31627, // 311.484(deg) -0.965201 + -31595, // 311.66(deg) -0.964203 + -31561, // 311.836(deg) -0.963188 + -31527, // 312.012(deg) -0.962156 + -31493, // 312.188(deg) -0.961107 + -31458, // 312.363(deg) -0.960041 + -31423, // 312.539(deg) -0.958958 + -31387, // 312.715(deg) -0.957857 + -31350, // 312.891(deg) -0.956739 + -31313, // 313.066(deg) -0.955604 + -31275, // 313.242(deg) -0.954452 + -31237, // 313.418(deg) -0.953281 + -31198, // 313.594(deg) -0.952094 + -31158, // 313.77(deg) -0.950888 + -31118, // 313.945(deg) -0.949665 + -31077, // 314.121(deg) -0.948423 + -31036, // 314.297(deg) -0.947164 + -30994, // 314.473(deg) -0.945887 + -30952, // 314.648(deg) -0.944591 + -30909, // 314.824(deg) -0.943277 + -30865, // 315(deg) -0.941945 + -30821, // 315.176(deg) -0.940595 + -30776, // 315.352(deg) -0.939226 + -30731, // 315.527(deg) -0.937839 + -30685, // 315.703(deg) -0.936433 + -30638, // 315.879(deg) -0.935008 + -30591, // 316.055(deg) -0.933565 + -30543, // 316.23(deg) -0.932103 + -30494, // 316.406(deg) -0.930622 + -30445, // 316.582(deg) -0.929122 + -30395, // 316.758(deg) -0.927603 + -30345, // 316.934(deg) -0.926065 + -30294, // 317.109(deg) -0.924508 + -30242, // 317.285(deg) -0.922932 + -30190, // 317.461(deg) -0.921336 + -30137, // 317.637(deg) -0.919721 + -30083, // 317.812(deg) -0.918087 + -30029, // 317.988(deg) -0.916433 + -29974, // 318.164(deg) -0.914760 + -29919, // 318.34(deg) -0.913067 + -29863, // 318.516(deg) -0.911355 + -29806, // 318.691(deg) -0.909623 + -29749, // 318.867(deg) -0.907871 + -29691, // 319.043(deg) -0.906100 + -29632, // 319.219(deg) -0.904308 + -29573, // 319.395(deg) -0.902497 + -29513, // 319.57(deg) -0.900666 + -29452, // 319.746(deg) -0.898815 + -29391, // 319.922(deg) -0.896944 + -29329, // 320.098(deg) -0.895053 + -29266, // 320.273(deg) -0.893142 + -29203, // 320.449(deg) -0.891210 + -29139, // 320.625(deg) -0.889259 + -29074, // 320.801(deg) -0.887287 + -29009, // 320.977(deg) -0.885295 + -28943, // 321.152(deg) -0.883283 + -28876, // 321.328(deg) -0.881250 + -28809, // 321.504(deg) -0.879197 + -28741, // 321.68(deg) -0.877124 + -28672, // 321.855(deg) -0.875030 + -28603, // 322.031(deg) -0.872916 + -28533, // 322.207(deg) -0.870781 + -28463, // 322.383(deg) -0.868625 + -28391, // 322.559(deg) -0.866450 + -28319, // 322.734(deg) -0.864253 + -28247, // 322.91(deg) -0.862036 + -28173, // 323.086(deg) -0.859798 + -28099, // 323.262(deg) -0.857540 + -28025, // 323.438(deg) -0.855261 + -27949, // 323.613(deg) -0.852961 + -27873, // 323.789(deg) -0.850640 + -27797, // 323.965(deg) -0.848299 + -27719, // 324.141(deg) -0.845937 + -27641, // 324.316(deg) -0.843554 + -27562, // 324.492(deg) -0.841151 + -27483, // 324.668(deg) -0.838726 + -27403, // 324.844(deg) -0.836281 + -27322, // 325.02(deg) -0.833815 + -27240, // 325.195(deg) -0.831328 + -27158, // 325.371(deg) -0.828821 + -27075, // 325.547(deg) -0.826292 + -26992, // 325.723(deg) -0.823743 + -26908, // 325.898(deg) -0.821172 + -26823, // 326.074(deg) -0.818581 + -26737, // 326.25(deg) -0.815969 + -26651, // 326.426(deg) -0.813337 + -26564, // 326.602(deg) -0.810683 + -26476, // 326.777(deg) -0.808008 + -26388, // 326.953(deg) -0.805313 + -26299, // 327.129(deg) -0.802597 + -26209, // 327.305(deg) -0.799860 + -26119, // 327.48(deg) -0.797102 + -26028, // 327.656(deg) -0.794323 + -25936, // 327.832(deg) -0.791523 + -25844, // 328.008(deg) -0.788703 + -25751, // 328.184(deg) -0.785862 + -25657, // 328.359(deg) -0.783000 + -25562, // 328.535(deg) -0.780117 + -25467, // 328.711(deg) -0.777214 + -25371, // 328.887(deg) -0.774290 + -25275, // 329.062(deg) -0.771345 + -25178, // 329.238(deg) -0.768379 + -25080, // 329.414(deg) -0.765393 + -24981, // 329.59(deg) -0.762386 + -24882, // 329.766(deg) -0.759359 + -24782, // 329.941(deg) -0.756311 + -24682, // 330.117(deg) -0.753242 + -24581, // 330.293(deg) -0.750153 + -24479, // 330.469(deg) -0.747044 + -24376, // 330.645(deg) -0.743914 + -24273, // 330.82(deg) -0.740763 + -24169, // 330.996(deg) -0.737592 + -24064, // 331.172(deg) -0.734401 + -23959, // 331.348(deg) -0.731189 + -23853, // 331.523(deg) -0.727958 + -23747, // 331.699(deg) -0.724705 + -23639, // 331.875(deg) -0.721433 + -23532, // 332.051(deg) -0.718141 + -23423, // 332.227(deg) -0.714828 + -23314, // 332.402(deg) -0.711495 + -23204, // 332.578(deg) -0.708143 + -23093, // 332.754(deg) -0.704770 + -22982, // 332.93(deg) -0.701377 + -22870, // 333.105(deg) -0.697965 + -22758, // 333.281(deg) -0.694532 + -22645, // 333.457(deg) -0.691080 + -22531, // 333.633(deg) -0.687608 + -22417, // 333.809(deg) -0.684117 + -22302, // 333.984(deg) -0.680606 + -22186, // 334.16(deg) -0.677075 + -22070, // 334.336(deg) -0.673525 + -21953, // 334.512(deg) -0.669955 + -21835, // 334.688(deg) -0.666366 + -21717, // 334.863(deg) -0.662758 + -21598, // 335.039(deg) -0.659131 + -21478, // 335.215(deg) -0.655484 + -21358, // 335.391(deg) -0.651818 + -21238, // 335.566(deg) -0.648133 + -21116, // 335.742(deg) -0.644429 + -20994, // 335.918(deg) -0.640707 + -20872, // 336.094(deg) -0.636965 + -20748, // 336.27(deg) -0.633205 + -20625, // 336.445(deg) -0.629426 + -20500, // 336.621(deg) -0.625628 + -20375, // 336.797(deg) -0.621812 + -20249, // 336.973(deg) -0.617978 + -20123, // 337.148(deg) -0.614125 + -19996, // 337.324(deg) -0.610253 + -19869, // 337.5(deg) -0.606364 + -19741, // 337.676(deg) -0.602456 + -19612, // 337.852(deg) -0.598531 + -19483, // 338.027(deg) -0.594587 + -19353, // 338.203(deg) -0.590626 + -19223, // 338.379(deg) -0.586647 + -19092, // 338.555(deg) -0.582650 + -18960, // 338.73(deg) -0.578635 + -18828, // 338.906(deg) -0.574603 + -18695, // 339.082(deg) -0.570554 + -18562, // 339.258(deg) -0.566487 + -18428, // 339.434(deg) -0.562403 + -18294, // 339.609(deg) -0.558302 + -18159, // 339.785(deg) -0.554184 + -18024, // 339.961(deg) -0.550049 + -17887, // 340.137(deg) -0.545897 + -17751, // 340.312(deg) -0.541729 + -17614, // 340.488(deg) -0.537543 + -17476, // 340.664(deg) -0.533342 + -17338, // 340.84(deg) -0.529124 + -17199, // 341.016(deg) -0.524889 + -17060, // 341.191(deg) -0.520638 + -16920, // 341.367(deg) -0.516372 + -16780, // 341.543(deg) -0.512089 + -16639, // 341.719(deg) -0.507790 + -16497, // 341.895(deg) -0.503476 + -16356, // 342.07(deg) -0.499146 + -16213, // 342.246(deg) -0.494800 + -16070, // 342.422(deg) -0.490439 + -15927, // 342.598(deg) -0.486063 + -15783, // 342.773(deg) -0.481671 + -15639, // 342.949(deg) -0.477265 + -15494, // 343.125(deg) -0.472843 + -15348, // 343.301(deg) -0.468407 + -15202, // 343.477(deg) -0.463956 + -15056, // 343.652(deg) -0.459490 + -14909, // 343.828(deg) -0.455010 + -14762, // 344.004(deg) -0.450515 + -14614, // 344.18(deg) -0.446007 + -14466, // 344.355(deg) -0.441484 + -14317, // 344.531(deg) -0.436947 + -14168, // 344.707(deg) -0.432396 + -14019, // 344.883(deg) -0.427832 + -13869, // 345.059(deg) -0.423254 + -13718, // 345.234(deg) -0.418663 + -13567, // 345.41(deg) -0.414058 + -13416, // 345.586(deg) -0.409440 + -13264, // 345.762(deg) -0.404809 + -13112, // 345.938(deg) -0.400165 + -12960, // 346.113(deg) -0.395508 + -12807, // 346.289(deg) -0.390839 + -12653, // 346.465(deg) -0.386157 + -12499, // 346.641(deg) -0.381463 + -12345, // 346.816(deg) -0.376756 + -12190, // 346.992(deg) -0.372037 + -12035, // 347.168(deg) -0.367307 + -11880, // 347.344(deg) -0.362564 + -11724, // 347.52(deg) -0.357810 + -11568, // 347.695(deg) -0.353045 + -11412, // 347.871(deg) -0.348268 + -11255, // 348.047(deg) -0.343479 + -11097, // 348.223(deg) -0.338680 + -10940, // 348.398(deg) -0.333870 + -10782, // 348.574(deg) -0.329048 + -10623, // 348.75(deg) -0.324217 + -10465, // 348.926(deg) -0.319374 + -10306, // 349.102(deg) -0.314522 + -10146, // 349.277(deg) -0.309659 + -9987, // 349.453(deg) -0.304786 + -9827, // 349.629(deg) -0.299903 + -9666, // 349.805(deg) -0.295010 + -9506, // 349.98(deg) -0.290108 + -9345, // 350.156(deg) -0.285196 + -9184, // 350.332(deg) -0.280275 + -9022, // 350.508(deg) -0.275345 + -8860, // 350.684(deg) -0.270406 + -8698, // 350.859(deg) -0.265457 + -8536, // 351.035(deg) -0.260501 + -8373, // 351.211(deg) -0.255535 + -8210, // 351.387(deg) -0.250562 + -8047, // 351.562(deg) -0.245580 + -7883, // 351.738(deg) -0.240590 + -7719, // 351.914(deg) -0.235592 + -7555, // 352.09(deg) -0.230587 + -7391, // 352.266(deg) -0.225573 + -7227, // 352.441(deg) -0.220553 + -7062, // 352.617(deg) -0.215525 + -6897, // 352.793(deg) -0.210490 + -6732, // 352.969(deg) -0.205448 + -6566, // 353.145(deg) -0.200400 + -6401, // 353.32(deg) -0.195344 + -6235, // 353.496(deg) -0.190283 + -6069, // 353.672(deg) -0.185215 + -5902, // 353.848(deg) -0.180141 + -5736, // 354.023(deg) -0.175061 + -5569, // 354.199(deg) -0.169975 + -5402, // 354.375(deg) -0.164884 + -5235, // 354.551(deg) -0.159787 + -5068, // 354.727(deg) -0.154685 + -4901, // 354.902(deg) -0.149577 + -4733, // 355.078(deg) -0.144465 + -4566, // 355.254(deg) -0.139348 + -4398, // 355.43(deg) -0.134226 + -4230, // 355.605(deg) -0.129100 + -4062, // 355.781(deg) -0.123970 + -3894, // 355.957(deg) -0.118836 + -3725, // 356.133(deg) -0.113697 + -3557, // 356.309(deg) -0.108555 + -3388, // 356.484(deg) -0.103409 + -3219, // 356.66(deg) -0.098260 + -3050, // 356.836(deg) -0.093107 + -2882, // 357.012(deg) -0.087952 + -2712, // 357.188(deg) -0.082793 + -2543, // 357.363(deg) -0.077632 + -2374, // 357.539(deg) -0.072468 + -2205, // 357.715(deg) -0.067302 + -2035, // 357.891(deg) -0.062134 + -1866, // 358.066(deg) -0.056963 + -1697, // 358.242(deg) -0.051791 + -1527, // 358.418(deg) -0.046617 + -1357, // 358.594(deg) -0.041441 + -1188, // 358.77(deg) -0.036264 + -1018, // 358.945(deg) -0.031085 + -848, // 359.121(deg) -0.025906 + -679, // 359.297(deg) -0.020726 + -509, // 359.473(deg) -0.015545 + -339, // 359.648(deg) -0.010364 + -169, // 359.824(deg) -0.005182 }; diff --git a/tfrog-motordriver/power.c b/tfrog-motordriver/power.c index 9bd73b3..7e7823c 100644 --- a/tfrog-motordriver/power.c +++ b/tfrog-motordriver/power.c @@ -10,72 +10,72 @@ #include "power.h" -//------------------------------------------------------------------------------ -/// Put the CPU in 32kHz, disable PLL, main oscillator -/// Put voltage regulator in standby mode -//------------------------------------------------------------------------------ -void LowPowerMode(void) +// ------------------------------------------------------------------------------ +// / Put the CPU in 32kHz, disable PLL, main oscillator +// / Put voltage regulator in standby mode +// ------------------------------------------------------------------------------ +void LowPowerMode( void ) { - // MCK=48MHz to MCK=32kHz - // MCK = SLCK/2 : change source first from 48 000 000 to 18. / 2 = 9M - AT91C_BASE_PMC->PMC_MCKR = AT91C_PMC_PRES_CLK_2; - while( !( AT91C_BASE_PMC->PMC_SR & AT91C_PMC_MCKRDY ) ); - // MCK=SLCK : then change prescaler - AT91C_BASE_PMC->PMC_MCKR = AT91C_PMC_CSS_SLOW_CLK; - while( !( AT91C_BASE_PMC->PMC_SR & AT91C_PMC_MCKRDY ) ); - // disable PLL - AT91C_BASE_PMC->PMC_PLLR = 0; - // Disable Main Oscillator - AT91C_BASE_PMC->PMC_MOR = 0; + // MCK=48MHz to MCK=32kHz + // MCK = SLCK/2 : change source first from 48 000 000 to 18. / 2 = 9M + AT91C_BASE_PMC->PMC_MCKR = AT91C_PMC_PRES_CLK_2; + while( !( AT91C_BASE_PMC->PMC_SR & AT91C_PMC_MCKRDY ) ); + // MCK=SLCK : then change prescaler + AT91C_BASE_PMC->PMC_MCKR = AT91C_PMC_CSS_SLOW_CLK; + while( !( AT91C_BASE_PMC->PMC_SR & AT91C_PMC_MCKRDY ) ); + // disable PLL + AT91C_BASE_PMC->PMC_PLLR = 0; + // Disable Main Oscillator + AT91C_BASE_PMC->PMC_MOR = 0; - // Voltage regulator in standby mode : Enable VREG Low Power Mode - AT91C_BASE_VREG->VREG_MR |= AT91C_VREG_PSTDBY; + // Voltage regulator in standby mode : Enable VREG Low Power Mode + AT91C_BASE_VREG->VREG_MR |= AT91C_VREG_PSTDBY; - PMC_DisableProcessorClock(); + PMC_DisableProcessorClock( ); } -//------------------------------------------------------------------------------ -/// Put voltage regulator in normal mode -/// Return the CPU to normal speed 48MHz, enable PLL, main oscillator -//------------------------------------------------------------------------------ -void NormalPowerMode(void) + +// ------------------------------------------------------------------------------ +// / Put voltage regulator in normal mode +// / Return the CPU to normal speed 48MHz, enable PLL, main oscillator +// ------------------------------------------------------------------------------ +void NormalPowerMode( void ) { - // Voltage regulator in normal mode : Disable VREG Low Power Mode - AT91C_BASE_VREG->VREG_MR &= ~AT91C_VREG_PSTDBY; + // Voltage regulator in normal mode : Disable VREG Low Power Mode + AT91C_BASE_VREG->VREG_MR &= ~AT91C_VREG_PSTDBY; - // MCK=32kHz to MCK=48MHz - // enable Main Oscillator - AT91C_BASE_PMC->PMC_MOR = (( (AT91C_CKGR_OSCOUNT & (0x06 <<8)) | AT91C_CKGR_MOSCEN )); - while( !( AT91C_BASE_PMC->PMC_SR & AT91C_PMC_MOSCS ) ); + // MCK=32kHz to MCK=48MHz + // enable Main Oscillator + AT91C_BASE_PMC->PMC_MOR = ( ( ( AT91C_CKGR_OSCOUNT & ( 0x06 << 8 ) ) | AT91C_CKGR_MOSCEN ) ); + while( !( AT91C_BASE_PMC->PMC_SR & AT91C_PMC_MOSCS ) ); - // enable PLL@96MHz - AT91C_BASE_PMC->PMC_PLLR = ((AT91C_CKGR_DIV & 0x0E) | - (AT91C_CKGR_PLLCOUNT & (28<<8)) | - (AT91C_CKGR_MUL & (0x48<<16))); - while( !( AT91C_BASE_PMC->PMC_SR & AT91C_PMC_LOCK ) ); - while( !( AT91C_BASE_PMC->PMC_SR & AT91C_PMC_MCKRDY ) ); - AT91C_BASE_CKGR->CKGR_PLLR |= AT91C_CKGR_USBDIV_1 ; - // MCK=SLCK/2 : change prescaler first - AT91C_BASE_PMC->PMC_MCKR = AT91C_PMC_PRES_CLK_2; - while( !( AT91C_BASE_PMC->PMC_SR & AT91C_PMC_MCKRDY ) ); - // MCK=PLLCK/2 : then change source - AT91C_BASE_PMC->PMC_MCKR |= AT91C_PMC_CSS_PLL_CLK ; - while( !( AT91C_BASE_PMC->PMC_SR & AT91C_PMC_MCKRDY ) ); + // enable PLL@96MHz + AT91C_BASE_PMC->PMC_PLLR = ( ( AT91C_CKGR_DIV & 0x0E ) | + ( AT91C_CKGR_PLLCOUNT & ( 28 << 8 ) ) | ( AT91C_CKGR_MUL & ( 0x48 << 16 ) ) ); + while( !( AT91C_BASE_PMC->PMC_SR & AT91C_PMC_LOCK ) ); + while( !( AT91C_BASE_PMC->PMC_SR & AT91C_PMC_MCKRDY ) ); + AT91C_BASE_CKGR->CKGR_PLLR |= AT91C_CKGR_USBDIV_1; + // MCK=SLCK/2 : change prescaler first + AT91C_BASE_PMC->PMC_MCKR = AT91C_PMC_PRES_CLK_2; + while( !( AT91C_BASE_PMC->PMC_SR & AT91C_PMC_MCKRDY ) ); + // MCK=PLLCK/2 : then change source + AT91C_BASE_PMC->PMC_MCKR |= AT91C_PMC_CSS_PLL_CLK; + while( !( AT91C_BASE_PMC->PMC_SR & AT91C_PMC_MCKRDY ) ); } -//------------------------------------------------------------------------------ -// Callbacks re-implementation -//------------------------------------------------------------------------------ -//------------------------------------------------------------------------------ -/// Invoked when the USB device leaves the Suspended state. By default, -/// configures the LEDs. -//------------------------------------------------------------------------------ -void USBDCallbacks_Resumed(void) +// ------------------------------------------------------------------------------ +// Callbacks re-implementation +// ------------------------------------------------------------------------------ +// ------------------------------------------------------------------------------ +// / Invoked when the USB device leaves the Suspended state. By default, +// / configures the LEDs. +// ------------------------------------------------------------------------------ +void USBDCallbacks_Resumed( void ) { } -//------------------------------------------------------------------------------ -/// Invoked when the USB device gets suspended. By default, turns off all LEDs. -//------------------------------------------------------------------------------ -void USBDCallbacks_Suspended(void) +// ------------------------------------------------------------------------------ +// / Invoked when the USB device gets suspended. By default, turns off all LEDs. +// ------------------------------------------------------------------------------ +void USBDCallbacks_Suspended( void ) { } diff --git a/tfrog-motordriver/power.h b/tfrog-motordriver/power.h index 5e06225..a8a6037 100644 --- a/tfrog-motordriver/power.h +++ b/tfrog-motordriver/power.h @@ -1,7 +1,7 @@ #ifndef __POWER_H__ #define __POWER_H__ -void LowPowerMode(void); -void NormalPowerMode(void); +void LowPowerMode( void ); +void NormalPowerMode( void ); -#endif \ No newline at end of file +#endif diff --git a/tfrog-motordriver/registerFPGA.h b/tfrog-motordriver/registerFPGA.h index a3cfe27..b568235 100644 --- a/tfrog-motordriver/registerFPGA.h +++ b/tfrog-motordriver/registerFPGA.h @@ -2,58 +2,58 @@ #ifndef __REGISTER_FPGA_H__ #define __REGISTER_FPGA_H__ - typedef volatile unsigned short TVREG; // Mapping(0x00-0x7F) -// 0x00-0x0F General Information -// 0x10-0x1F Motor1 Control Registers -// 0x20-0x2F Motor2 Control Registers +// 0x00-0x0F General Information +// 0x10-0x1F Motor1 Control Registers +// 0x20-0x2F Motor2 Control Registers typedef volatile struct _REG_GENERAL { - TVREG ID; // 0x0 FPGA識別用 - TVREG OUTPUT_ENABLE; // 0x1 モータ出力有効/無効 - TVREG Reserved0[6]; // 0x2-0x7 予約 + TVREG ID; // 0x0 FPGA識別用 + TVREG OUTPUT_ENABLE; // 0x1 モータ出力有効/無効 + TVREG Reserved0[6]; // 0x2-0x7 予約 struct { - TVREG COUNT_ENABLE; // 0x8 三角波カウント有効/無効 - TVREG HALF_PERIOD; // 0x9 PWM半周期クロック数(48MHz) - TVREG COUNT; // 0xA 三角波カウント値 - TVREG DEADTIME; // 0xB デッドタイム生成長 + TVREG COUNT_ENABLE; // 0x8 三角波カウント有効/無効 + TVREG HALF_PERIOD; // 0x9 PWM半周期クロック数(48MHz) + TVREG COUNT; // 0xA 三角波カウント値 + TVREG DEADTIME; // 0xB デッドタイム生成長 } PWM; - TVREG Reserved1[4]; // 0xC-0xF 予約 + TVREG Reserved1[4]; // 0xC-0xF 予約 } REG_GENERAL; typedef volatile struct _REG_MOTOR { - TVREG ENCODER; // 0x0 エンコーダ4逓倍アップダウンカウント値 - TVREG Reserved0[2]; // 0x1-0x2 予約 - struct{ - unsigned HALL : 3;// - ホール素子状態 - unsigned Reserved :12;// - 予約 - unsigned Z : 1;// - Z相信号 - } __attribute__ ((packed)) ROT_DETECTER; // 0x3 絶対角信号 - struct{ - TVREG H; // ハイサイドコンパレートレベル - TVREG L; // ハイサイドコンパレートレベル - } PWM[3]; // 0x4-0x9 - TVREG Reserved1[5]; // 0xA-0xE 予約 - TVREG INVERT; // 0xF 反転 + TVREG ENCODER; // 0x0 エンコーダ4逓倍アップダウンカウント値 + TVREG Reserved0[2]; // 0x1-0x2 予約 + struct + { + unsigned HALL:3; // - ホール素子状態 + unsigned Reserved:12; // - 予約 + unsigned Z:1; // - Z相信号 + } __attribute__ ( ( packed ) ) ROT_DETECTER; // 0x3 絶対角信号 + struct + { + TVREG H; // ハイサイドコンパレートレベル + TVREG L; // ハイサイドコンパレートレベル + } PWM[3]; // 0x4-0x9 + TVREG Reserved1[5]; // 0xA-0xE 予約 + TVREG INVERT; // 0xF 反転 } REG_MOTOR; -typedef volatile struct _THEVA_REG{ - REG_GENERAL GENERAL; // 0x00 - TVREG Reserved0[16]; // 0x10-0x1F - REG_MOTOR MOTOR[2]; // 0x20-0x3F - TVREG Reserved1[48]; // 0x40-0x6F - TVREG PORT[16]; // 0x70-0x7F +typedef volatile struct _THEVA_REG +{ + REG_GENERAL GENERAL; // 0x00 + TVREG Reserved0[16]; // 0x10-0x1F + REG_MOTOR MOTOR[2]; // 0x20-0x3F + TVREG Reserved1[48]; // 0x40-0x6F + TVREG PORT[16]; // 0x70-0x7F } THEVA_REG; - #define THEVA (*((THEVA_REG*)0x10000000)) - #define HALL_U (0x01) #define HALL_V (0x02) #define HALL_W (0x04)