mirror of https://github.com/lianthony/NT4.0
You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
882 lines
27 KiB
882 lines
27 KiB
// TITLE("Alpha AXP ArcTangent")
|
|
//++
|
|
//
|
|
// Copyright (c) 1993, 1994 Digital Equipment Corporation
|
|
//
|
|
// Module Name:
|
|
//
|
|
// atan.s
|
|
//
|
|
// Abstract:
|
|
//
|
|
// This module implements a high-performance Alpha AXP specific routine
|
|
// for IEEE double format arctangent.
|
|
//
|
|
// Author:
|
|
//
|
|
// Andy Garside
|
|
//
|
|
// Environment:
|
|
//
|
|
// User mode.
|
|
//
|
|
// Revision History:
|
|
//
|
|
// Thomas Van Baak (tvb) 12-Feb-1994
|
|
//
|
|
// Adapted for NT.
|
|
//
|
|
//--
|
|
|
|
#include "ksalpha.h"
|
|
|
|
//
|
|
// Define stack frame.
|
|
//
|
|
|
|
.struct 0
|
|
Temp: .space 8 // save argument
|
|
.space 8 // for 16-byte stack alignment
|
|
FrameLength:
|
|
|
|
//
|
|
// Define lower and upper 32-bit parts of 64-bit double.
|
|
//
|
|
|
|
#define LowPart 0x0
|
|
#define HighPart 0x4
|
|
|
|
//
|
|
// Define offsets into atan table.
|
|
//
|
|
|
|
#define ATAN_INF 0xf18
|
|
#define ATAN_INF_LO 0xf20
|
|
#define POLY_COEF_1 0xf30
|
|
#define POLY_COEF_2 0xf38
|
|
#define POLY_COEF_3 0xf40
|
|
#define POLY_COEF_4 0xf48
|
|
#define POLY_COEF_5 0xf50
|
|
#define POLY_COEF_6 0xf58
|
|
#define POLY_COEF_7 0xf60
|
|
#define REDUCE_COEF_1 0xf68
|
|
#define REDUCE_COEF_2 0xf70
|
|
#define REDUCE_COEF_3 0xf78
|
|
#define LARGE_COEF_1 0xf80
|
|
#define LARGE_COEF_2 0xf88
|
|
#define LARGE_COEF_3 0xf90
|
|
|
|
SBTTL("Arc Tangent")
|
|
|
|
//++
|
|
//
|
|
// double
|
|
// atan (
|
|
// IN double x
|
|
// )
|
|
//
|
|
// Routine Description:
|
|
//
|
|
// This function returns the arctangent of the given double argument.
|
|
//
|
|
// Arguments:
|
|
//
|
|
// x (f16) - Supplies the argument value.
|
|
//
|
|
// Return Value:
|
|
//
|
|
// The double arctangent result is returned as the function value in f0.
|
|
//
|
|
//--
|
|
|
|
NESTED_ENTRY(atan, FrameLength, ra)
|
|
|
|
lda sp, -FrameLength(sp) // allocate stack frame
|
|
|
|
PROLOGUE_END
|
|
|
|
cpys f31, f16, f1
|
|
ldah v0, 1(zero)
|
|
lda v0, -0xf2(v0)
|
|
stt f1, Temp(sp)
|
|
ldl t0, Temp + HighPart(sp)
|
|
lda t1, __atan_t_table
|
|
sra t0, 14, t0
|
|
subl t0, v0, v0
|
|
lda t0, -0x244(v0) // MIN_LARGE_INDEX
|
|
blt v0, poly
|
|
|
|
bge t0, large
|
|
|
|
//
|
|
// reduce range
|
|
//
|
|
|
|
addl t1, v0, t0
|
|
ldt f14, REDUCE_COEF_1(t1)
|
|
ldt f13, REDUCE_COEF_3(t1)
|
|
ldq_u t2, 0(t0)
|
|
ldt f11, One
|
|
extbl t2, t0, t0
|
|
addl t0, t0, t0
|
|
s8addl t0, t1, t0
|
|
ldt f0, 0x248(t0) // ATAN_TABLE
|
|
lda t0, 0x248(t0)
|
|
mult f1, f0, f10
|
|
subt f1, f0, f0
|
|
addt f10, f11, f10
|
|
divt f0, f10, f0
|
|
ldt f10, REDUCE_COEF_2(t1)
|
|
mult f0, f0, f11
|
|
mult f11, f11, f12
|
|
mult f10, f11, f10
|
|
mult f0, f11, f11
|
|
mult f13, f12, f12
|
|
ldt f13, 8(t0)
|
|
addt f10, f14, f10
|
|
addt f12, f10, f10
|
|
mult f11, f10, f10
|
|
addt f0, f10, f0
|
|
addt f0, f13, f0
|
|
cpys f16, f0, f14
|
|
cpys f14, f14, f0
|
|
br zero, done
|
|
|
|
//
|
|
// large range
|
|
//
|
|
|
|
large: lda t1, -0xdd1(v0) // MIN_CONSTANT_INDEX
|
|
bge t1, const
|
|
|
|
ldt f12, One
|
|
lda t0, __atan_t_table
|
|
ldt f10, LARGE_COEF_2(t0)
|
|
divt f12, f1, f1
|
|
ldt f0, LARGE_COEF_1(t0)
|
|
ldt f14, LARGE_COEF_3(t0)
|
|
ldt f12, ATAN_INF_LO(t0)
|
|
mult f1, f1, f11
|
|
mult f11, f11, f13
|
|
mult f10, f11, f10
|
|
mult f1, f11, f11
|
|
subt f1, f12, f1
|
|
mult f14, f13, f13
|
|
ldt f14, ATAN_INF(t0)
|
|
addt f10, f0, f0
|
|
addt f13, f0, f0
|
|
mult f11, f0, f0
|
|
addt f1, f0, f0
|
|
subt f14, f0, f0
|
|
cpys f16, f0, f10
|
|
cpys f10, f10, f0
|
|
br zero, done
|
|
|
|
//
|
|
// constant range
|
|
//
|
|
|
|
const: ldah t2, 1(zero)
|
|
lda t2, 0xb2(t2) // see if index too big
|
|
cmplt v0, t2, v0
|
|
bne v0, retinf
|
|
|
|
stt f16, Temp(sp)
|
|
ldl t0, Temp + HighPart(sp)
|
|
ldl t2, Temp(sp)
|
|
ldah v0, 0x10(zero)
|
|
lda v0, -1(v0)
|
|
and t0, v0, v0
|
|
bis v0, t2, v0
|
|
bne v0, retarg
|
|
|
|
//
|
|
// return_atan_of_inf
|
|
//
|
|
|
|
retinf: ldt f13, __atan_t_table + ATAN_INF
|
|
cpys f16, f13, f0
|
|
br zero, done
|
|
|
|
//
|
|
// poly range
|
|
//
|
|
|
|
poly: lda v0, 0x5e0(v0) // MAX_SMALL_INDEX
|
|
blt v0, retarg
|
|
|
|
mult f16, f16, f12
|
|
lda t0, __atan_t_table
|
|
ldt f1, POLY_COEF_2(t0)
|
|
ldt f14, POLY_COEF_4(t0)
|
|
ldt f10, POLY_COEF_5(t0)
|
|
mult f12, f12, f11
|
|
ldt f15, POLY_COEF_1(t0)
|
|
mult f1, f12, f1
|
|
ldt f17, POLY_COEF_3(t0)
|
|
mult f14, f12, f14
|
|
ldt f13, POLY_COEF_6(t0)
|
|
ldt f0, POLY_COEF_7(t0)
|
|
mult f13, f12, f13
|
|
mult f10, f11, f10
|
|
mult f0, f11, f0
|
|
addt f1, f15, f1
|
|
mult f17, f11, f17
|
|
mult f11, f11, f15
|
|
mult f16, f12, f12
|
|
addt f14, f10, f10
|
|
addt f13, f0, f0
|
|
addt f1, f17, f1
|
|
mult f10, f11, f10
|
|
mult f0, f15, f0
|
|
addt f1, f10, f1
|
|
addt f0, f1, f0
|
|
mult f12, f0, f0
|
|
addt f16, f0, f0
|
|
br zero, done
|
|
|
|
|
|
//
|
|
// Return original argument as result.
|
|
//
|
|
|
|
retarg: cpys f16, f16, f0
|
|
|
|
//
|
|
// Return with result in f0.
|
|
//
|
|
|
|
done:
|
|
lda sp, FrameLength(sp) // deallocate stack frame
|
|
ret zero, (ra) // return
|
|
|
|
.end atan
|
|
|
|
.rdata
|
|
.align 3
|
|
|
|
//
|
|
// Define floating point constants.
|
|
//
|
|
|
|
One: .double 1.0
|
|
|
|
//
|
|
// This table is exported since it is also used by atan2.
|
|
//
|
|
|
|
.align 3
|
|
.globl __atan_t_table
|
|
|
|
__atan_t_table:
|
|
|
|
//
|
|
// Indices
|
|
//
|
|
|
|
.long 0x03020100
|
|
.long 0x07060504
|
|
.long 0x0b0a0908
|
|
.long 0x0f0e0d0c
|
|
.long 0x13121110
|
|
.long 0x17161514
|
|
.long 0x1b1a1918
|
|
.long 0x1f1e1d1c
|
|
.long 0x23222120
|
|
.long 0x27262524
|
|
.long 0x2b2a2928
|
|
.long 0x2e2d2d2c
|
|
.long 0x31302f2e
|
|
.long 0x35343332
|
|
.long 0x39383736
|
|
.long 0x3d3c3b3a
|
|
.long 0x41403f3e
|
|
.long 0x45444342
|
|
.long 0x49484746
|
|
.long 0x4d4c4b4a
|
|
.long 0x51504f4e
|
|
.long 0x55545352
|
|
.long 0x59585756
|
|
.long 0x5d5c5b5a
|
|
.long 0x61605f5e
|
|
.long 0x63626261
|
|
.long 0x65646463
|
|
.long 0x67666665
|
|
.long 0x6a696867
|
|
.long 0x6e6d6c6b
|
|
.long 0x7271706f
|
|
.long 0x76757473
|
|
.long 0x7a797877
|
|
.long 0x7e7d7c7b
|
|
.long 0x8281807f
|
|
.long 0x86858483
|
|
.long 0x89888887
|
|
.long 0x8b8a8a89
|
|
.long 0x8d8c8c8b
|
|
.long 0x8f8e8e8d
|
|
.long 0x9190908f
|
|
.long 0x93929291
|
|
.long 0x95949493
|
|
.long 0x96969695
|
|
.long 0x99989797
|
|
.long 0x9d9c9b9a
|
|
.long 0xa1a09f9e
|
|
.long 0xa3a2a2a1
|
|
.long 0xa5a4a4a3
|
|
.long 0xa7a6a6a5
|
|
.long 0xa9a8a8a7
|
|
.long 0xabaaaaa9
|
|
.long 0xacacabab
|
|
.long 0xadadadac
|
|
.long 0xafaeaeae
|
|
.long 0xb0b0afaf
|
|
.long 0xb1b1b0b0
|
|
.long 0xb2b2b1b1
|
|
.long 0xb3b3b2b2
|
|
.long 0xb4b3b3b3
|
|
.long 0xb5b4b4b4
|
|
.long 0xb6b6b6b5
|
|
.long 0xb8b7b7b7
|
|
.long 0xb9b9b8b8
|
|
.long 0xbabab9b9
|
|
.long 0xbbbbbaba
|
|
.long 0xbcbbbbbb
|
|
.long 0xbcbcbcbc
|
|
.long 0xbdbdbdbd
|
|
.long 0xbebebdbd
|
|
.long 0xbebebebe
|
|
.long 0xbfbfbfbe
|
|
.long 0xbfbfbfbf
|
|
.long 0xc0c0c0bf
|
|
.long 0xc0c0c0c0
|
|
.long 0xc1c1c0c0
|
|
.long 0xc1c1c1c1
|
|
.long 0xc2c2c2c1
|
|
.long 0xc3c2c2c2
|
|
.long 0xc3c3c3c3
|
|
.long 0xc4c3c3c3
|
|
.long 0xc4c4c4c4
|
|
.long 0xc4c4c4c4
|
|
.long 0xc5c5c5c4
|
|
.long 0xc5c5c5c5
|
|
.long 0xc5c5c5c5
|
|
.long 0xc6c6c5c5
|
|
.long 0xc6c6c6c6
|
|
.long 0xc6c6c6c6
|
|
.long 0xc6c6c6c6
|
|
.long 0xc6c6c6c6
|
|
.long 0xc7c7c7c7
|
|
.long 0xc7c7c7c7
|
|
.long 0xc7c7c7c7
|
|
.long 0xc8c7c7c7
|
|
.long 0xc8c8c8c8
|
|
.long 0xc8c8c8c8
|
|
.long 0xc8c8c8c8
|
|
.long 0xc8c8c8c8
|
|
.long 0xc9c9c8c8
|
|
.long 0xc9c9c9c9
|
|
.long 0xc9c9c9c9
|
|
.long 0xc9c9c9c9
|
|
.long 0xc9c9c9c9
|
|
.long 0xc9c9c9c9
|
|
.long 0xc9c9c9c9
|
|
.long 0xc9c9c9c9
|
|
.long 0xc9c9c9c9
|
|
.long 0xcacacaca
|
|
.long 0xcacacaca
|
|
.long 0xcacacaca
|
|
.long 0xcacacaca
|
|
.long 0xcacacaca
|
|
.long 0xcacacaca
|
|
.long 0xcacacaca
|
|
.long 0xcacacaca
|
|
.long 0xcacacaca
|
|
.long 0xcbcbcaca
|
|
.long 0xcbcbcbcb
|
|
.long 0xcbcbcbcb
|
|
.long 0xcbcbcbcb
|
|
.long 0xcbcbcbcb
|
|
.long 0xcbcbcbcb
|
|
.long 0xcbcbcbcb
|
|
.long 0xcbcbcbcb
|
|
.long 0xcbcbcbcb
|
|
.long 0xcbcbcbcb
|
|
.long 0xcbcbcbcb
|
|
.long 0xcbcbcbcb
|
|
.long 0xcbcbcbcb
|
|
.long 0xcbcbcbcb
|
|
.long 0xcbcbcbcb
|
|
.long 0xcbcbcbcb
|
|
.long 0xcbcbcbcb
|
|
.long 0xcbcbcbcb
|
|
.long 0xcbcbcbcb
|
|
.long 0xcbcbcbcb
|
|
.long 0xcbcbcbcb
|
|
.long 0xcbcbcbcb
|
|
.long 0xcbcbcbcb
|
|
.long 0xcccccccc
|
|
.long 0xcccccccc
|
|
.long 0xcccccccc
|
|
.long 0xcccccccc
|
|
.long 0xcccccccc
|
|
.long 0x00000000
|
|
|
|
//
|
|
// table of m, atan(m)
|
|
//
|
|
|
|
.double 1.5355248400422339e-001
|
|
.double 1.5236243595325524e-001
|
|
.double 1.5552158817919209e-001
|
|
.double 1.5428561088659756e-001
|
|
.double 1.5749071068375525e-001
|
|
.double 1.5620765397022107e-001
|
|
.double 1.5945985174286212e-001
|
|
.double 1.5812855223376682e-001
|
|
.double 1.6142901158120504e-001
|
|
.double 1.6004829275559573e-001
|
|
.double 1.6339819042320866e-001
|
|
.double 1.6196686266324070e-001
|
|
.double 1.6536738849303570e-001
|
|
.double 1.6388424913386970e-001
|
|
.double 1.6733660601457914e-001
|
|
.double 1.6580043939473066e-001
|
|
.double 1.6930584321147152e-001
|
|
.double 1.6771542072360776e-001
|
|
.double 1.7127510030705803e-001
|
|
.double 1.6962918044923750e-001
|
|
.double 1.7324437752441801e-001
|
|
.double 1.7154170595176652e-001
|
|
.double 1.7521367508635091e-001
|
|
.double 1.7345298466316975e-001
|
|
.double 1.7718299321537423e-001
|
|
.double 1.7536300406767497e-001
|
|
.double 1.7915233213372153e-001
|
|
.double 1.7727175170218212e-001
|
|
.double 1.8112169206334361e-001
|
|
.double 1.7917921515668045e-001
|
|
.double 1.8309107322589921e-001
|
|
.double 1.8108538207465014e-001
|
|
.double 1.8506047584275731e-001
|
|
.double 1.8299024015346987e-001
|
|
.double 1.8702990013499132e-001
|
|
.double 1.8489377714481120e-001
|
|
.double 1.8899934632336557e-001
|
|
.double 1.8679598085502003e-001
|
|
.double 1.9096881462840698e-001
|
|
.double 1.8869683914557503e-001
|
|
.double 1.9293830527024586e-001
|
|
.double 1.9059633993331765e-001
|
|
.double 1.9490781846877406e-001
|
|
.double 1.9249447119098312e-001
|
|
.double 1.9687735444355606e-001
|
|
.double 1.9439122094748745e-001
|
|
.double 1.9884691341385727e-001
|
|
.double 1.9628657728832211e-001
|
|
.double 2.0081649559861969e-001
|
|
.double 1.9818052835589239e-001
|
|
.double 2.0278610121648225e-001
|
|
.double 2.0007306234989339e-001
|
|
.double 2.0475573048576073e-001
|
|
.double 2.0196416752764149e-001
|
|
.double 2.0672538362445764e-001
|
|
.double 2.0385383220442907e-001
|
|
.double 2.0869506085024936e-001
|
|
.double 2.0574204475385199e-001
|
|
.double 2.1066476238049245e-001
|
|
.double 2.0762879360814970e-001
|
|
.double 2.1263448843221744e-001
|
|
.double 2.0951406725852789e-001
|
|
.double 2.1460423922213120e-001
|
|
.double 2.1139785425548374e-001
|
|
.double 2.1657401496660342e-001
|
|
.double 2.1328014320911035e-001
|
|
.double 2.1854381588167510e-001
|
|
.double 2.1516092278941668e-001
|
|
.double 2.2051364218304903e-001
|
|
.double 2.1704018172662459e-001
|
|
.double 2.2248349408610146e-001
|
|
.double 2.1891790881148054e-001
|
|
.double 2.2445337180585717e-001
|
|
.double 2.2079409289552671e-001
|
|
.double 2.2642327555699829e-001
|
|
.double 2.2266872289139872e-001
|
|
.double 2.2839320555389561e-001
|
|
.double 2.2454178777313910e-001
|
|
.double 2.3036316201052537e-001
|
|
.double 2.2641327657639609e-001
|
|
.double 2.3233314514054382e-001
|
|
.double 2.2828317839876702e-001
|
|
.double 2.3430315515726335e-001
|
|
.double 2.3015148240004227e-001
|
|
.double 2.3627319227362892e-001
|
|
.double 2.3201817780244399e-001
|
|
.double 2.3824325670223515e-001
|
|
.double 2.3388325389089790e-001
|
|
.double 2.4021334865532848e-001
|
|
.double 2.3574670001328502e-001
|
|
.double 2.4218346834479032e-001
|
|
.double 2.3760850558066995e-001
|
|
.double 2.4612379177854776e-001
|
|
.double 2.4132715301206165e-001
|
|
.double 2.5006422869130918e-001
|
|
.double 2.4503911274623447e-001
|
|
.double 2.5203449022822305e-001
|
|
.double 2.4689255893254244e-001
|
|
.double 2.5597510051142724e-001
|
|
.double 2.5059433291856392e-001
|
|
.double 2.5991582846749378e-001
|
|
.double 2.5428921511209990e-001
|
|
.double 2.6385667576350508e-001
|
|
.double 2.5797712569279457e-001
|
|
.double 2.6779764406045437e-001
|
|
.double 2.6165798588799988e-001
|
|
.double 2.7173873501326334e-001
|
|
.double 2.6533171797836824e-001
|
|
.double 2.7567995027061964e-001
|
|
.double 2.6899824530292393e-001
|
|
.double 2.7962129147501918e-001
|
|
.double 2.7265749226397429e-001
|
|
.double 2.8356276026265581e-001
|
|
.double 2.7630938433152924e-001
|
|
.double 2.8750435826340059e-001
|
|
.double 2.7995384804745721e-001
|
|
.double 2.9144608710072656e-001
|
|
.double 2.8359081102924566e-001
|
|
.double 2.9538794839168914e-001
|
|
.double 2.8722020197347103e-001
|
|
.double 2.9932994374684735e-001
|
|
.double 2.9084195065887453e-001
|
|
.double 3.0327207477022777e-001
|
|
.double 2.9445598794914085e-001
|
|
.double 3.0721434305929912e-001
|
|
.double 2.9806224579535306e-001
|
|
.double 3.1115675020490474e-001
|
|
.double 3.0166065723807844e-001
|
|
.double 3.1509929779121809e-001
|
|
.double 3.0525115640914857e-001
|
|
.double 3.1904198739572476e-001
|
|
.double 3.0883367853313998e-001
|
|
.double 3.2298482058916428e-001
|
|
.double 3.1240815992849819e-001
|
|
.double 3.2692779893548751e-001
|
|
.double 3.1597453800835984e-001
|
|
.double 3.3087092399184592e-001
|
|
.double 3.1953275128109132e-001
|
|
.double 3.3481419730851864e-001
|
|
.double 3.2308273935046272e-001
|
|
.double 3.3875762042890090e-001
|
|
.double 3.2662444291557313e-001
|
|
.double 3.4270119488946582e-001
|
|
.double 3.3015780377045167e-001
|
|
.double 3.4664492221974780e-001
|
|
.double 3.3368276480338221e-001
|
|
.double 3.5058880394226560e-001
|
|
.double 3.3719926999588284e-001
|
|
.double 3.5453284157253667e-001
|
|
.double 3.4070726442148014e-001
|
|
.double 3.5847703661905733e-001
|
|
.double 3.4420669424417044e-001
|
|
.double 3.6242139058320622e-001
|
|
.double 3.4769750671653560e-001
|
|
.double 3.6636590495929278e-001
|
|
.double 3.5117965017771474e-001
|
|
.double 3.7031058123450267e-001
|
|
.double 3.5465307405101643e-001
|
|
.double 3.7425542088887304e-001
|
|
.double 3.5811772884129434e-001
|
|
.double 3.7820042539523707e-001
|
|
.double 3.6157356613203800e-001
|
|
.double 3.8214559621934541e-001
|
|
.double 3.6502053858236522e-001
|
|
.double 3.8609093481959766e-001
|
|
.double 3.6845859992342517e-001
|
|
.double 3.9003644264724363e-001
|
|
.double 3.7188770495496976e-001
|
|
.double 3.9398212114627240e-001
|
|
.double 3.7530780954141402e-001
|
|
.double 3.9792797175340849e-001
|
|
.double 3.7871887060775766e-001
|
|
.double 4.0187399589809220e-001
|
|
.double 3.8212084613526559e-001
|
|
.double 4.0582019500246991e-001
|
|
.double 3.8551369515693501e-001
|
|
.double 4.0976657048137899e-001
|
|
.double 3.8889737775274108e-001
|
|
.double 4.1371312374235236e-001
|
|
.double 3.9227185504468803e-001
|
|
.double 4.1765985618556611e-001
|
|
.double 3.9563708919160545e-001
|
|
.double 4.2160676920387552e-001
|
|
.double 3.9899304338381947e-001
|
|
.double 4.2555386418276547e-001
|
|
.double 4.0233968183755547e-001
|
|
.double 4.2950114250038729e-001
|
|
.double 4.0567696978922430e-001
|
|
.double 4.3344860552750974e-001
|
|
.double 4.0900487348945086e-001
|
|
.double 4.3739625462752746e-001
|
|
.double 4.1232336019697230e-001
|
|
.double 4.4134409115647377e-001
|
|
.double 4.1563239817236564e-001
|
|
.double 4.4529211646299088e-001
|
|
.double 4.1893195667157090e-001
|
|
.double 4.5318873876639293e-001
|
|
.double 4.2550251720217980e-001
|
|
.double 4.6108613217920819e-001
|
|
.double 4.3203481548843342e-001
|
|
.double 4.6898430722472922e-001
|
|
.double 4.3852864071650399e-001
|
|
.double 4.7688327430812050e-001
|
|
.double 4.4498379732613808e-001
|
|
.double 4.8478304371653724e-001
|
|
.double 4.5140010476930359e-001
|
|
.double 4.9268362561922469e-001
|
|
.double 4.5777739726103206e-001
|
|
.double 5.0058503006778432e-001
|
|
.double 4.6411552352325064e-001
|
|
.double 5.0453604385581541e-001
|
|
.double 4.6726985594612491e-001
|
|
.double 5.1243870071325748e-001
|
|
.double 4.7354898030362186e-001
|
|
.double 5.2034220473268367e-001
|
|
.double 4.7978862196590671e-001
|
|
.double 5.2824656555629101e-001
|
|
.double 4.8598867832338383e-001
|
|
.double 5.3615179271017821e-001
|
|
.double 4.9214906004903236e-001
|
|
.double 5.4405789560483941e-001
|
|
.double 4.9826969081401601e-001
|
|
.double 5.5196488353568340e-001
|
|
.double 5.0435050700000683e-001
|
|
.double 5.5987276568356159e-001
|
|
.double 5.1039145740874092e-001
|
|
.double 5.6778155111542927e-001
|
|
.double 5.1639250296941264e-001
|
|
.double 5.7569124878490574e-001
|
|
.double 5.2235361644422107e-001
|
|
.double 5.8360186753303733e-001
|
|
.double 5.2827478213277490e-001
|
|
.double 5.9151341608890706e-001
|
|
.double 5.3415599557554083e-001
|
|
.double 5.9942590307042987e-001
|
|
.double 5.3999726325702790e-001
|
|
.double 6.0733933698512588e-001
|
|
.double 5.4579860230896726e-001
|
|
.double 6.1525372623089158e-001
|
|
.double 5.5156004021390115e-001
|
|
.double 6.2316907909682573e-001
|
|
.double 5.5728161450960134e-001
|
|
.double 6.3108540376411404e-001
|
|
.double 5.6296337249467798e-001
|
|
.double 6.3900270830686567e-001
|
|
.double 5.6860537093564145e-001
|
|
.double 6.4692100069300273e-001
|
|
.double 5.7420767577581244e-001
|
|
.double 6.5484028878522904e-001
|
|
.double 5.7977036184639996e-001
|
|
.double 6.6276058034191265e-001
|
|
.double 5.8529351257991435e-001
|
|
.double 6.7068188301809273e-001
|
|
.double 5.9077721972633057e-001
|
|
.double 6.7860420436639635e-001
|
|
.double 5.9622158307209971e-001
|
|
.double 6.8652755183808556e-001
|
|
.double 6.0162671016239366e-001
|
|
.double 6.9445193278400708e-001
|
|
.double 6.0699271602663973e-001
|
|
.double 7.0237735445565164e-001
|
|
.double 6.1231972290768610e-001
|
|
.double 7.1030382400613368e-001
|
|
.double 6.1760785999465095e-001
|
|
.double 7.1823134849130543e-001
|
|
.double 6.2285726315976664e-001
|
|
.double 7.2615993487071206e-001
|
|
.double 6.2806807469917436e-001
|
|
.double 7.3408959000871321e-001
|
|
.double 6.3324044307802407e-001
|
|
.double 7.4202032067552715e-001
|
|
.double 6.3837452267984052e-001
|
|
.double 7.4995213354821244e-001
|
|
.double 6.4347047356027798e-001
|
|
.double 7.6581903216136837e-001
|
|
.double 6.5354865629575443e-001
|
|
.double 7.8169033744456895e-001
|
|
.double 6.6347637610648558e-001
|
|
.double 7.9756609957470270e-001
|
|
.double 6.7325509358925351e-001
|
|
.double 8.1344636734328057e-001
|
|
.double 6.8288633806304899e-001
|
|
.double 8.2933118819147211e-001
|
|
.double 6.9237170082828436e-001
|
|
.double 8.4522060824488088e-001
|
|
.double 7.0171282873931906e-001
|
|
.double 8.6111467234814298e-001
|
|
.double 7.1091141809055203e-001
|
|
.double 8.7701342409900629e-001
|
|
.double 7.1996920881421278e-001
|
|
.double 8.9291690588282036e-001
|
|
.double 7.2888797898706914e-001
|
|
.double 9.0882515890560212e-001
|
|
.double 7.3766953964025872e-001
|
|
.double 9.2473822322778765e-001
|
|
.double 7.4631572986747752e-001
|
|
.double 9.4065613779674118e-001
|
|
.double 7.5482841222342667e-001
|
|
.double 9.5657894047909242e-001
|
|
.double 7.6320946840524795e-001
|
|
.double 9.7250666809235886e-001
|
|
.double 7.7146079520806365e-001
|
|
.double 9.9640757179857808e-001
|
|
.double 7.8359871904813783e-001
|
|
.double 1.0123477662106497e+000
|
|
.double 7.9153408654898494e-001
|
|
.double 1.0282930065975109e+000
|
|
.double 7.9934643006362416e-001
|
|
.double 1.0442433254321561e+000
|
|
.double 8.0703767115598279e-001
|
|
.double 1.0601987543019136e+000
|
|
.double 8.1460972871741655e-001
|
|
.double 1.0761593239359200e+000
|
|
.double 8.2206451646712742e-001
|
|
.double 1.0921250642322042e+000
|
|
.double 8.2940394065219647e-001
|
|
.double 1.1080960042837751e+000
|
|
.double 8.3662989793684506e-001
|
|
.double 1.1240721724040819e+000
|
|
.double 8.4374427347116965e-001
|
|
.double 1.1400535961519611e+000
|
|
.double 8.5074893912966976e-001
|
|
.double 1.1560403023557917e+000
|
|
.double 8.5764575190995740e-001
|
|
.double 1.1880296659320808e+000
|
|
.double 8.7112316388210831e-001
|
|
.double 1.2200404640247038e+000
|
|
.double 8.8419101620372653e-001
|
|
.double 1.2520728872705937e+000
|
|
.double 8.9686349887653072e-001
|
|
.double 1.2841271167089126e+000
|
|
.double 9.0915445688978058e-001
|
|
.double 1.3162033243984250e+000
|
|
.double 9.2107736858648426e-001
|
|
.double 1.3483016739966118e+000
|
|
.double 9.3264532972485459e-001
|
|
.double 1.3804223213026274e+000
|
|
.double 9.4387104245016884e-001
|
|
.double 1.4125654147650204e+000
|
|
.double 9.5476680847240347e-001
|
|
.double 1.4447310959575739e+000
|
|
.double 9.6534452582212138e-001
|
|
.double 1.4769195000229485e+000
|
|
.double 9.7561568862694747e-001
|
|
.double 1.5252449924236093e+000
|
|
.double 9.9047179921019246e-001
|
|
.double 1.5736223129440838e+000
|
|
.double 1.0046987952523838e+000
|
|
.double 1.6220518482036179e+000
|
|
.double 1.0183304846548173e+000
|
|
.double 1.6705339614358272e+000
|
|
.double 1.0313987782295579e+000
|
|
.double 1.7190689946814175e+000
|
|
.double 1.0439337627979282e+000
|
|
.double 1.7838652477841976e+000
|
|
.double 1.0598662298339001e+000
|
|
.double 1.8487568705321733e+000
|
|
.double 1.0749634150447689e+000
|
|
.double 1.9137445321043374e+000
|
|
.double 1.0892830552328896e+000
|
|
.double 1.9951151143237842e+000
|
|
.double 1.1061698282655272e+000
|
|
.double 2.0766378750592405e+000
|
|
.double 1.1220193029527641e+000
|
|
.double 2.1419663687581529e+000
|
|
.double 1.1340098135689110e+000
|
|
.double 2.2401441155497896e+000
|
|
.double 1.1509403173125212e+000
|
|
.double 2.3385453087436905e+000
|
|
.double 1.1667117718174038e+000
|
|
.double 2.4371714724301077e+000
|
|
.double 1.1814322708247920e+000
|
|
.double 2.5690254496685805e+000
|
|
.double 1.1995890899144255e+000
|
|
.double 2.7012851246360814e+000
|
|
.double 1.2162456309906018e+000
|
|
.double 2.8671848136736733e+000
|
|
.double 1.2352139791159169e+000
|
|
.double 3.0337286825933503e+000
|
|
.double 1.2523848414028640e+000
|
|
.double 3.2344390781066932e+000
|
|
.double 1.2709456743012855e+000
|
|
.double 3.4697948808564751e+000
|
|
.double 1.2901987053917314e+000
|
|
.double 3.7403633162267851e+000
|
|
.double 1.3095526166650662e+000
|
|
.double 4.0468035358478183e+000
|
|
.double 1.3285408170404023e+000
|
|
.double 4.3898707100328336e+000
|
|
.double 1.3468211249075761e+000
|
|
.double 4.8051827486338796e+000
|
|
.double 1.3656163032815085e+000
|
|
.double 5.3651964370400229e+000
|
|
.double 1.3865243098539592e+000
|
|
.double 6.0754885617421879e+000
|
|
.double 1.4076632048189699e+000
|
|
.double 7.0163874932087893e+000
|
|
.double 1.4292262718246274e+000
|
|
.double 8.3530110964301372e+000
|
|
.double 1.4516460893659640e+000
|
|
.double 1.0199215339979428e+001
|
|
.double 1.4730619487601273e+000
|
|
.double 1.3282700889621619e+001
|
|
.double 1.4956521911510898e+000
|
|
.double 1.9351193695758720e+001
|
|
.double 1.5191658543189086e+000
|
|
.double 3.5680505204950208e+001
|
|
.double 1.5427771524815408e+000
|
|
.double 7.1244387842511500e+001
|
|
.double 1.5567610551550020e+000
|
|
|
|
//
|
|
// hi and lo pieces of pi/2
|
|
//
|
|
|
|
.double 1.5707963267948966e+000
|
|
.double 6.1232339957367660e-017
|
|
|
|
//
|
|
// pi
|
|
//
|
|
|
|
.double 3.1415926535897931e+000
|
|
|
|
//
|
|
// reduce range coefs
|
|
//
|
|
|
|
.double -3.3333333333333259e-001
|
|
.double 1.9999999999930743e-001
|
|
.double -1.4285714261780827e-001
|
|
.double 1.1111107045818812e-001
|
|
.double -9.0905335038737295e-002
|
|
.double 7.6730212431403905e-002
|
|
.double -6.1467058390548932e-002
|
|
|
|
//
|
|
// reduce range coefs
|
|
//
|
|
|
|
.double -3.3333333333324405e-001
|
|
.double 1.9999999697587109e-001
|
|
.double -1.4282435376697181e-001
|
|
|
|
//
|
|
// large range coefs
|
|
//
|
|
|
|
.double -3.3333333333324200e-001
|
|
.double 1.9999999692877043e-001
|
|
.double -1.4282409942371077e-001
|
|
|
|
//
|
|
// End of table.
|
|
//
|