Windows NT 4.0 source code leak
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.
 
 
 
 
 
 

912 lines
33 KiB

// TITLE("Alpha AXP Logarithm Base 10")
//++
//
// Copyright (c) 1991, 1993, 1994 Digital Equipment Corporation
//
// Module Name:
//
// log10.s
//
// Abstract:
//
// This module implements a high-performance Alpha AXP specific routine
// for IEEE double format logarithm base 10.
//
// Author:
//
// Martha Jaffe 1-May-1991
//
// Environment:
//
// User mode.
//
// Revision History:
//
// Thomas Van Baak (tvb) 9-Feb-1994
//
// Adapted for NT.
//
//--
#include "ksalpha.h"
//
// Define DPML exception record for NT.
//
.struct 0
ErErr: .space 4 // error code
ErCxt: .space 4 // context
ErPlat: .space 4 // platform
ErEnv: .space 4 // environment
ErRet: .space 4 // return value pointer
ErName: .space 4 // function name
ErType: .space 8 // flags and fill
ErVal: .space 8 // return value
ErArg0: .space 8 // arg 0
ErArg1: .space 8 // arg 1
ErArg2: .space 8 // arg 2
ErArg3: .space 8 // arg 3
DpmlExceptionLength:
//
// Define stack frame.
//
.struct 0
Temp: .space 8 // save argument
ExRec: .space DpmlExceptionLength // exception record
.space 0 // for 16-byte stack alignment
FrameLength:
//
// Define lower and upper 32-bit parts of 64-bit double.
//
#define LowPart 0x0
#define HighPart 0x4
SBTTL("Logarithm Base 10")
//++
//
// double
// log10 (
// IN double x
// )
//
// Routine Description:
//
// This function returns the logarithm base 10 of the given double argument.
//
// Arguments:
//
// x (f16) - Supplies the argument value.
//
// Return Value:
//
// The double logarithm base 10 result is returned as the function value
// in f0.
//
//--
NESTED_ENTRY(log10, FrameLength, ra)
lda sp, -FrameLength(sp) // allocate stack frame
mov ra, t7 // save return address
PROLOGUE_END
//
// Fetch the sign, exponent, and highest fraction bits as an integer.
//
stt f16, Temp(sp)
ldl t1, Temp + HighPart(sp)
lda t0, log10_table
ldah v0, 0x3fee(zero)
subl t1, v0, v0 // screen = hi_x - T1
ldt f1, 0(t0) // Load 1.0 as early as possible
ldah t2, 3(zero) // T2_MINUS_T1
cmpult v0, t2, v0 // if screen < T2_MINUS_T1
bne v0, near_1 // then goto near_1
sra t1, 20, v0
sra t1, 8, t2
cpyse f1, f16, f10 // Create a scaled-down x
subl v0, 1, t4
lda t5, 0x7fe(zero)
lda t3, 0xfe0(zero)
cmpult t4, t5, t4 // Screen out bad x
and t2, t3, t2
beq t4, getf // Branch if denorm
lda t6, 0x3ff(zero) // Get the unbiased, ...
subl v0, t6, t6 // ... IEEE-style exponent m.
br zero, denorms_rejoin
//
// Isolate the fraction field f of x, where 1 <= f < 2.
//
getf: ldah t5, -0x8000(zero)
ldah t4, 0x7ff0(zero)
and t1, t5, t5
and t1, t4, v0
beq t5, eval_poly_1 // Screen infs and NaNs
bne v0, eval_poly_0 // Skip if normal
// Report either 0x834 or 0x835, depending on whether it's an inf or NaN
ldt f10, Two53
cpyse f10, f16, f0
subt f0, f10, f0
fbne f0, x0834 // Oops, NaN
x0835: ldah v0, 0x800(zero)
lda v0, 0x35(v0)
br zero, x08xx
x0834:
ldah v0, 0x800(zero)
lda v0, 0x34(v0)
x08xx: stt f16, ExRec + ErArg0(sp)
lda t6, log10Name
stl t6, ExRec + ErName(sp)
stl v0, ExRec + ErErr(sp)
lda v0, ExRec(sp)
bsr ra, __dpml_exception
ldt f0, 0(v0)
br zero, done
//
// Get index bits
//
eval_poly_0:
stt f16, Temp(sp) // f->int thru memory
ldl ra, Temp(sp)
ldah v0, 0x10(zero)
ldl t2, Temp + HighPart(sp)
lda v0, -1(v0)
and t2, v0, v0
bis v0, ra, v0
and t2, t4, t6
cmpult zero, v0, v0 // materialize sign bit
cmpeq t6, t4, t4
beq t4, x0834 // Again, check the range
and t4, v0, t4
beq t4, x0834
retarg: cpys f16, f16, f0
br zero, done
//
// Prepare variable for the far poly
//
eval_poly_1:
ldah t4, 0x7ff0(zero)
and t1, t4, t1
bne t1, retarg
ldt f10, Two53
cpyse f10, f16, f0
subt f0, f10, f11
fbeq f11, x0835
stt f11, Temp(sp)
cpyse f1, f11, f10
ldl t1, Temp + HighPart(sp)
lda t2, 0x832(zero)
sra t1, 8, t5
sra t1, 20, t1 // Shift the high mantissa bits
and t5, t3, t3 // And isolate them
subl t1, t2, t6 // Remove `bias' from n
mov t3, t2 // We'll index the table with t2
denorms_rejoin:
addl t0, t2, t2 // Index into the table
ldt f1, 0x98(t0) // Load c4
ldt f16, 0xf8(t2) // Load Fj after t2 is available
ldt f0, 0x100(t2) // Load 1/Fj
stq t6, Temp(sp) // Store n
subt f10, f16, f10 // Subtract Fj
ldt f16, Temp(sp) // Load n
ldt f12, 0x90(t0) // Load c3
ldt f15, 0x88(t0) // Load c2
cvtqt f16, f16 // Convert n back to float
ldt f17, 0xa0(t0) // Load c5
mult f10, f0, f0 // Multiply by 1/Fj -> z
ldt f10, 0xa8(t0) // Load c6
mult f0, f0, f11 // z^2
mult f1, f0, f1 // c4 z
mult f10, f0, f10 // c z
mult f11, f11, f13 // z^4
mult f11, f0, f14 // z^3
addt f12, f1, f1 // c3 + c4 z
ldt f12, 0xd0(t0) // Load log(2)_lo
mult f11, f15, f11 // z^2 c2
addt f17, f10, f10 // c5 + c6 z
ldt f15, 0x110(t2)
ldt f17, 0xc8(t0) // Load log(2)_hi
mult f12, f16, f12 // n*log(2)_lo
mult f13, f0, f13 // z^5
mult f14, f1, f1 // z^3 (c3 + c4 z)
ldt f14, 0xd8(t0)
mult f16, f17, f16 // n*log(2)_hi
addt f12, f15, f12 // n*log(2)_lo + log(F)_lo
ldt f15, 0x108(t2)
mult f0, f14, f0
addt f11, f1, f1 // z^2 c2 + z^3 (c3 + c4 z)
mult f13, f10, f10 // z^5 (c5 + c6 z)
addt f16, f15, f15 // m*log(2)_hi + log(F)_hi
addt f12, f0, f0
addt f1, f10, f1 // z^2 c2 + ... z^6 c6
addt f0, f1, f0 // n*log(2)_lo + log(F)_lo + poly
addt f0, f15, f0 // n*log(2) + log(F) + poly
br zero, done
//
// Near 1, m = 0, so we drop the m*log(2) terms.
// But to maintain accuracy, if no backup precision is available,
// split z into hi and lo parts.
//
near_1:
subt f16, f1, f1 // Subtract 1 (exact)
ldt f11, 0x18(t0) // Load odd coefficients
ldt f13, Two29
ldt f17, 0x28(t0)
ldt f16, 0x10(t0)
ldt f18, 0x20(t0)
cpys f1, f13, f12
ldt f13, 0x38(t0)
cpys f1, f1, f15 // z^2
ldt f19, 0x30(t0)
mult f1, f1, f14
ldt f20, 0x58(t0)
mult f1, f11, f11
mult f1, f17, f17
mult f1, f13, f13
mult f1, f20, f20
addt f15, f12, f15
mult f14, f1, f0
mult f14, f14, f10
addt f11, f16, f11
addt f17, f18, f17
addt f13, f19, f13
subt f15, f12, f12
ldt f19, 0x48(t0)
mult f14, f0, f16
mult f0, f10, f18
mult f0, f11, f0
mult f10, f1, f15
mult f10, f14, f14
mult f12, f12, f11
mult f16, f17, f16
ldt f17, Half
mult f1, f19, f19
mult f18, f13, f13
ldt f18, 0x40(t0)
mult f15, f10, f15
mult f14, f1, f14
mult f11, f17, f11
addt f0, f16, f0
subt f1, f12, f16
addt f19, f18, f18
ldt f19, 0x50(t0)
addt f1, f12, f12
mult f14, f10, f10
subt f1, f11, f1
ldt f14, 0xe0(t0)
addt f0, f13, f0
ldt f13, 0xf0(t0)
addt f20, f19, f19
mult f15, f18, f15
mult f12, f16, f12
ldt f18, 0xd8(t0)
cvtts f1, f11 // Do the mult in high and low parts
mult f10, f19, f10
addt f0, f15, f0
mult f12, f17, f12
subt f1, f11, f1 // The low part
mult f11, f13, f13 // Mult hi
mult f11, f14, f11
addt f0, f10, f0
mult f12, f18, f12
mult f1, f18, f1 // Mult lo
subt f0, f12, f0
addt f0, f1, f0 // Add lo product
addt f0, f13, f0 // _Now_ add high product
addt f0, f11, f0 // The rest is fine
//
// Done!
//
done:
lda sp, FrameLength(sp) // deallocate stack frame
ret zero, (t7) // return through saved ra in t7
.end log10
.rdata
.align 3
//
// Define floating point constants.
//
Half: .double 0.5
Two29: .quad 0x41c0000000000000 // 2^29 (536870912)
Two53: .quad 0x4340000000000000 // 2^53 (9007199254740992)
//
// Function name for dpml_exception.
//
log10Name:
.ascii "log10\0"
//
// Lookup table for log10.
//
.align 4
log10_table:
// 1.0 in working precision
.double 1.0000000000000000e+000
// poly coeffs for TWO_PATH, near 1
.double -2.1714724095162591e-001
.double 1.4476482730108503e-001
.double -1.0857362047581537e-001
.double 8.6858896377427067e-002
.double -7.2382413645518701e-002
.double 6.2042072361751348e-002
.double -5.4286814693113541e-002
.double 4.8253207196292662e-002
.double -4.3427532690713110e-002
.double 3.9875334541624938e-002
.double -3.6585409973116101e-002
.double 3.6191206825271258e-002
.double 5.4286810235891743e-003
.double 9.6940738065545891e-004
.double 1.8848909038419727e-004
.double 3.8940762182296921e-005
// poly coeffs for TWO_PATH, away from 1
.double -2.1714724095162594e-001
.double 1.4476482729295831e-001
.double -1.0857362046531732e-001
.double 8.6860316430547854e-002
.double -7.2383833702936592e-002
.double 3.6191206825271674e-002
.double 5.4286810097452865e-003
.double 9.6949937116583870e-004
// log of 2 in hi and lo parts
.double 3.0102999566406652e-001
.double -8.5323443170571066e-014
// log of e, in hi and lo parts
.double 4.3429448190325182e-001
.double 4.3429448455572128e-001
.double 1.0983196502167651e-017
.double -2.6524694553078553e-009
// Table of F, 1/F, and hi and lo log of F
.double 1.0039062500000000e+000 // row 0
.double 9.9610894941634243e-001
.double 1.6931580194068374e-003
.double 3.8138041759466050e-014
.double 1.0117187500000000e+000 // row 1
.double 9.8841698841698844e-001
.double 5.0597987694800395e-003
.double -7.7773671249150176e-014
.double 1.0195312500000000e+000
.double 9.8084291187739459e-001
.double 8.4005420264929853e-003
.double -6.1585101698164946e-014
.double 1.0273437500000000e+000
.double 9.7338403041825095e-001
.double 1.1715783177805861e-002
.double 1.0244650263202214e-013
.double 1.0351562500000000e+000
.double 9.6603773584905661e-001
.double 1.5005908624971198e-002
.double -1.2909441545846259e-014
.double 1.0429687500000000e+000
.double 9.5880149812734083e-001
.double 1.8271296052716934e-002
.double 8.7259536842955739e-015
.double 1.0507812500000000e+000
.double 9.5167286245353155e-001
.double 2.1512314690653511e-002
.double -9.5092829302083433e-014
.double 1.0585937500000000e+000
.double 9.4464944649446492e-001
.double 2.4729325562475424e-002
.double 8.0744017029277640e-014
.double 1.0664062500000000e+000
.double 9.3772893772893773e-001
.double 2.7922681728796306e-002
.double 1.1016967045376735e-013
.double 1.0742187500000000e+000
.double 9.3090909090909091e-001
.double 3.1092728518387958e-002
.double 2.5131020316238211e-014
.double 1.0820312500000000e+000
.double 9.2418772563176899e-001
.double 3.4239803752598164e-002
.double 8.2851246893013341e-016
.double 1.0898437500000000e+000
.double 9.1756272401433692e-001
.double 3.7364237961810431e-002
.double -6.2438896306063030e-014
.double 1.0976562500000000e+000
.double 9.1103202846975084e-001
.double 4.0466354593263532e-002
.double -3.3200415384730550e-014
.double 1.1054687500000000e+000
.double 9.0459363957597172e-001
.double 4.3546470212504573e-002
.double -6.3899433744960902e-014
.double 1.1132812500000000e+000
.double 8.9824561403508774e-001
.double 4.6604894696656629e-002
.double 4.0128137886518359e-015
.double 1.1210937500000000e+000
.double 8.9198606271777003e-001
.double 4.9641931422229391e-002
.double -8.6627079666029577e-014
.double 1.1289062500000000e+000 // row 32
.double 8.8581314878892736e-001
.double 5.2657877444744372e-002
.double -4.6076671467354740e-014
.double 1.1367187500000000e+000
.double 8.7972508591065290e-001
.double 5.5653023674040014e-002
.double 1.7713212406847493e-014
.double 1.1445312500000000e+000
.double 8.7372013651877134e-001
.double 5.8627655042300830e-002
.double -4.0935712101973142e-014
.double 1.1523437500000000e+000
.double 8.6779661016949150e-001
.double 6.1582050666402210e-002
.double -8.8777144458530814e-014
.double 1.1601562500000000e+000
.double 8.6195286195286192e-001
.double 6.4516484005253005e-002
.double 1.0978561820475473e-013
.double 1.1679687500000000e+000
.double 8.5618729096989965e-001
.double 6.7431223012590635e-002
.double -1.0548970701762625e-014
.double 1.1757812500000000e+000
.double 8.5049833887043191e-001
.double 7.0326530282045496e-002
.double -5.1700871049188391e-014
.double 1.1835937500000000e+000
.double 8.4488448844884489e-001
.double 7.3202663190386374e-002
.double 6.9075379282565748e-014
.double 1.1914062500000000e+000
.double 8.3934426229508197e-001
.double 7.6059874034854147e-002
.double 8.2130077344161123e-014
.double 1.1992187500000000e+000
.double 8.3387622149837137e-001
.double 7.8898410165265886e-002
.double 7.1036582403713468e-014
.double 1.2070312500000000e+000
.double 8.2847896440129454e-001
.double 8.1718514112935736e-002
.double 4.9344562866294779e-014
.double 1.2148437500000000e+000
.double 8.2315112540192925e-001
.double 8.4520423715048310e-002
.double -6.0365688882138538e-014
.double 1.2226562500000000e+000
.double 8.1789137380191690e-001
.double 8.7304372234711991e-002
.double -1.1306794275205778e-013
.double 1.2304687500000000e+000
.double 8.1269841269841270e-001
.double 9.0070588477829006e-002
.double -7.8057190597576649e-014
.double 1.2382812500000000e+000
.double 8.0757097791798105e-001
.double 9.2819296905872761e-002
.double 2.9171571423880465e-014
.double 1.2460937500000000e+000
.double 8.0250783699059558e-001
.double 9.5550717745254587e-002
.double 7.6978874642083809e-014
.double 1.2539062500000000e+000 // row 64
.double 7.9750778816199375e-001
.double 9.8265067093052494e-002
.double -2.9977454325636676e-014
.double 1.2617187500000000e+000
.double 7.9256965944272451e-001
.double 1.0096255701932932e-001
.double -7.5995881654636293e-014
.double 1.2695312500000000e+000
.double 7.8769230769230769e-001
.double 1.0364339566694980e-001
.double 7.5016853454684971e-014
.double 1.2773437500000000e+000
.double 7.8287461773700306e-001
.double 1.0630778734844171e-001
.double -5.1960682886781393e-015
.double 1.2851562500000000e+000
.double 7.7811550151975684e-001
.double 1.0895593263808223e-001
.double 4.2502137993246911e-014
.double 1.2929687500000000e+000
.double 7.7341389728096677e-001
.double 1.1158802846375693e-001
.double 1.1224937633010701e-013
.double 1.3007812500000000e+000
.double 7.6876876876876876e-001
.double 1.1420426819449858e-001
.double -2.8271890359716029e-014
.double 1.3085937500000000e+000
.double 7.6417910447761195e-001
.double 1.1680484172507022e-001
.double -7.4541446562998513e-014
.double 1.3164062500000000e+000
.double 7.5964391691394662e-001
.double 1.1938993555941124e-001
.double 7.7822341509243432e-014
.double 1.3242187500000000e+000
.double 7.5516224188790559e-001
.double 1.2195973289112771e-001
.double 1.0488384232834887e-013
.double 1.3320312500000000e+000
.double 7.5073313782991202e-001
.double 1.2451441368057203e-001
.double 7.6125080034185725e-014
.double 1.3398437500000000e+000
.double 7.4635568513119532e-001
.double 1.2705415473101311e-001
.double -9.2183206060576902e-014
.double 1.3476562500000000e+000
.double 7.4202898550724639e-001
.double 1.2957912976139596e-001
.double 2.8597843690125436e-014
.double 1.3554687500000000e+000
.double 7.3775216138328525e-001
.double 1.3208950947910125e-001
.double -7.7095683834893825e-014
.double 1.3632812500000000e+000
.double 7.3352435530085958e-001
.double 1.3458546164724794e-001
.double 8.2395576103574202e-014
.double 1.3710937500000000e+000
.double 7.2934472934472938e-001
.double 1.3706715115404222e-001
.double -6.7702224100030562e-014
.double 1.3789062500000000e+000 // row 96
.double 7.2521246458923516e-001
.double 1.3953474007598743e-001
.double -1.4425221661004675e-014
.double 1.3867187500000000e+000
.double 7.2112676056338032e-001
.double 1.4198838774314027e-001
.double 1.0426394002127905e-013
.double 1.3945312500000000e+000
.double 7.1708683473389356e-001
.double 1.4442825080027433e-001
.double 6.9307789402367274e-014
.double 1.4023437500000000e+000
.double 7.1309192200557103e-001
.double 1.4685448326645201e-001
.double 1.7578878109644966e-014
.double 1.4101562500000000e+000
.double 7.0914127423822715e-001
.double 1.4926723659391428e-001
.double -1.0591509184191785e-013
.double 1.4179687500000000e+000
.double 7.0523415977961434e-001
.double 1.5166665972424198e-001
.double 2.0975919101771430e-014
.double 1.4257812500000000e+000
.double 7.0136986301369864e-001
.double 1.5405289914451714e-001
.double 1.0800275641969783e-013
.double 1.4335937500000000e+000
.double 6.9754768392370570e-001
.double 1.5642609894030102e-001
.double -6.1240859626408548e-014
.double 1.4414062500000000e+000
.double 6.9376693766937669e-001
.double 1.5878640084724793e-001
.double -3.7125298776595440e-014
.double 1.4492187500000000e+000
.double 6.9002695417789761e-001
.double 1.6113394430317385e-001
.double 2.2466323880587632e-014
.double 1.4570312500000000e+000
.double 6.8632707774798929e-001
.double 1.6346886649694170e-001
.double -1.0365666433479815e-013
.double 1.4648437500000000e+000
.double 6.8266666666666664e-001
.double 1.6579130241598250e-001
.double -1.1321000759665903e-013
.double 1.4726562500000000e+000
.double 6.7904509283819625e-001
.double 1.6810138489404380e-001
.double -1.0050896766270149e-013
.double 1.4804687500000000e+000
.double 6.7546174142480209e-001
.double 1.7039924465620970e-001
.double 1.3077268785973317e-014
.double 1.4882812500000000e+000
.double 6.7191601049868765e-001
.double 1.7268501036369344e-001
.double 7.6303457216343226e-014
.double 1.4960937500000000e+000 // row 127
.double 6.6840731070496084e-001
.double 1.7495880865681102e-001
.double -3.7837011297347936e-014
//
.double 1.5039062500000000e+000 // row 128
.double 6.6493506493506493e-001
.double 1.7722076419659061e-001
.double 6.0506785742672106e-014
.double 1.5117187500000000e+000
.double 6.6149870801033595e-001
.double 1.7947099970706404e-001
.double -2.1990901597542469e-015
.double 1.5195312500000000e+000
.double 6.5809768637532129e-001
.double 1.8170963601392032e-001
.double -6.2142519690429475e-014
.double 1.5273437500000000e+000
.double 6.5473145780051156e-001
.double 1.8393679208406866e-001
.double -5.1410851753162693e-014
.double 1.5351562500000000e+000
.double 6.5139949109414763e-001
.double 1.8615258506360988e-001
.double -3.2740274772316513e-014
.double 1.5429687500000000e+000
.double 6.4810126582278482e-001
.double 1.8835713031467094e-001
.double -6.0268625781366657e-014
.double 1.5507812500000000e+000
.double 6.4483627204030225e-001
.double 1.9055054145132999e-001
.double -6.4486938075512777e-014
.double 1.5585937500000000e+000
.double 6.4160401002506262e-001
.double 1.9273293037485928e-001
.double 3.9388579215085728e-014
.double 1.5664062500000000e+000
.double 6.3840399002493764e-001
.double 1.9490440730828595e-001
.double 4.6790775628349175e-014
.double 1.5742187500000000e+000
.double 6.3523573200992556e-001
.double 1.9706508082936125e-001
.double -1.0136276227059958e-013
.double 1.5820312500000000e+000
.double 6.3209876543209875e-001
.double 1.9921505790284755e-001
.double -2.8555409708142505e-014
.double 1.5898437500000000e+000
.double 6.2899262899262898e-001
.double 2.0135444391326018e-001
.double 1.1029208598053272e-013
.double 1.5976562500000000e+000
.double 6.2591687041564792e-001
.double 2.0348334269556290e-001
.double -7.0654651972775882e-014
.double 1.6054687500000000e+000
.double 6.2287104622871048e-001
.double 2.0560185656427166e-001
.double -5.2012531877479611e-014
.double 1.6132812500000000e+000
.double 6.1985472154963683e-001
.double 2.0771008634460486e-001
.double -5.3401379032096916e-014
.double 1.6210937500000000e+000
.double 6.1686746987951813e-001
.double 2.0980813140022292e-001
.double 2.0227726258388914e-014
.double 1.6289062500000000e+000 // row 160
.double 6.1390887290167862e-001
.double 2.1189608966187734e-001
.double 3.0615637233164826e-014
.double 1.6367187500000000e+000
.double 6.1097852028639621e-001
.double 2.1397405765446820e-001
.double -2.2449001876879735e-014
.double 1.6445312500000000e+000
.double 6.0807600950118768e-001
.double 2.1604213052387422e-001
.double -5.5474936976441291e-014
.double 1.6523437500000000e+000
.double 6.0520094562647753e-001
.double 2.1810040206310077e-001
.double 9.2003918882681055e-014
.double 1.6601562500000000e+000
.double 6.0235294117647054e-001
.double 2.2014896473842782e-001
.double 3.4154972403284904e-014
.double 1.6679687500000000e+000
.double 5.9953161592505855e-001
.double 2.2218790971328417e-001
.double -1.0986783267263705e-013
.double 1.6757812500000000e+000
.double 5.9673659673659674e-001
.double 2.2421732687280382e-001
.double 7.0861752240218193e-014
.double 1.6835937500000000e+000
.double 5.9396751740139209e-001
.double 2.2623730484883708e-001
.double 4.4954903465882407e-014
.double 1.6914062500000000e+000
.double 5.9122401847575057e-001
.double 2.2824793104155106e-001
.double -3.5174398507191329e-014
.double 1.6992187500000000e+000
.double 5.8850574712643677e-001
.double 2.3024929164284913e-001
.double -6.1362153270813425e-014
.double 1.7070312500000000e+000
.double 5.8581235697940504e-001
.double 2.3224147165865361e-001
.double -8.1330061940444252e-014
.double 1.7148437500000000e+000
.double 5.8314350797266512e-001
.double 2.3422455493027883e-001
.double -7.0187452689804572e-015
.double 1.7226562500000000e+000
.double 5.8049886621315194e-001
.double 2.3619862415603166e-001
.double -4.2681425171142758e-014
.double 1.7304687500000000e+000
.double 5.7787810383747173e-001
.double 2.3816376091122038e-001
.double -3.8053714699203643e-016
.double 1.7382812500000000e+000
.double 5.7528089887640455e-001
.double 2.4012004566907308e-001
.double 8.9489021116470891e-015
.double 1.7460937500000000e+000
.double 5.7270693512304249e-001
.double 2.4206755782006439e-001
.double 2.2519806172357142e-014
.double 1.7539062500000000e+000 // row 192
.double 5.7015590200445432e-001
.double 2.4400637569146966e-001
.double 3.9563235136158044e-015
.double 1.7617187500000000e+000
.double 5.6762749445676275e-001
.double 2.4593657656600953e-001
.double 1.0143867756365332e-013
.double 1.7695312500000000e+000
.double 5.6512141280353201e-001
.double 2.4785823670094942e-001
.double 3.2893280777775821e-014
.double 1.7773437500000000e+000
.double 5.6263736263736264e-001
.double 2.4977143134515245e-001
.double 1.1039261888111886e-013
.double 1.7851562500000000e+000
.double 5.6017505470459517e-001
.double 2.5167623475795153e-001
.double 4.9127105345619272e-014
.double 1.7929687500000000e+000
.double 5.5773420479302838e-001
.double 2.5357272022552024e-001
.double -1.0856410515143064e-013
.double 1.8007812500000000e+000
.double 5.5531453362255967e-001
.double 2.5546096007769847e-001
.double 1.0010989541644841e-013
.double 1.8085937500000000e+000
.double 5.5291576673866094e-001
.double 2.5734102570618234e-001
.double -7.8761888363386944e-014
.double 1.8164062500000000e+000
.double 5.5053763440860215e-001
.double 2.5921298757816658e-001
.double -6.2215947878711509e-014
.double 1.8242187500000000e+000
.double 5.4817987152034264e-001
.double 2.6107691525430710e-001
.double -4.4494514587443047e-014
.double 1.8320312500000000e+000
.double 5.4584221748400852e-001
.double 2.6293287740327287e-001
.double -3.9165681136564615e-014
.double 1.8398437500000000e+000
.double 5.4352441613588109e-001
.double 2.6478094181697998e-001
.double 6.6636790574456454e-014
.double 1.8476562500000000e+000
.double 5.4122621564482032e-001
.double 2.6662117542605301e-001
.double -9.1008789262737551e-014
.double 1.8554687500000000e+000
.double 5.3894736842105262e-001
.double 2.6845364431301277e-001
.double 4.2357622160033502e-015
.double 1.8632812500000000e+000
.double 5.3668763102725370e-001
.double 2.7027841372819239e-001
.double 7.1968104770021779e-014
.double 1.8710937500000000e+000
.double 5.3444676409185798e-001
.double 2.7209554810269765e-001
.double 1.6009813385998178e-014
.double 1.8789062500000000e+000 // row 224
.double 5.3222453222453225e-001
.double 2.7390511106204940e-001
.double -6.7195756324252579e-014
.double 1.8867187500000000e+000
.double 5.3002070393374745e-001
.double 2.7570716543959861e-001
.double 6.3973609116559328e-014
.double 1.8945312500000000e+000
.double 5.2783505154639176e-001
.double 2.7750177329039616e-001
.double 1.7936160834199008e-014
.double 1.9023437500000000e+000
.double 5.2566735112936347e-001
.double 2.7928899590278888e-001
.double -4.1127874854455486e-015
.double 1.9101562500000000e+000
.double 5.2351738241308798e-001
.double 2.8106889381183464e-001
.double -6.3958157821339126e-014
.double 1.9179687500000000e+000
.double 5.2138492871690423e-001
.double 2.8284152681112573e-001
.double -6.8208667990807859e-015
.double 1.9257812500000000e+000
.double 5.1926977687626774e-001
.double 2.8460695396529445e-001
.double 8.6002826729130499e-014
.double 1.9335937500000000e+000
.double 5.1717171717171717e-001
.double 2.8636523362160915e-001
.double 1.1000856663210625e-013
.double 1.9414062500000000e+000
.double 5.1509054325955739e-001
.double 2.8811642342157029e-001
.double -8.7733969995519119e-014
.double 1.9492187500000000e+000
.double 5.1302605210420837e-001
.double 2.8986058031159700e-001
.double -5.6652309650791293e-014
.double 1.9570312500000000e+000
.double 5.1097804391217561e-001
.double 2.9159776055530529e-001
.double 9.0870189902074631e-014
.double 1.9648437500000000e+000
.double 5.0894632206759438e-001
.double 2.9332801974396716e-001
.double 1.1067434010922574e-013
.double 1.9726562500000000e+000
.double 5.0693069306930694e-001
.double 2.9505141280674252e-001
.double 6.9298327709917256e-014
.double 1.9804687500000000e+000
.double 5.0493096646942803e-001
.double 2.9676799402159304e-001
.double -1.0662609006456711e-013
.double 1.9882812500000000e+000
.double 5.0294695481335949e-001
.double 2.9847781702483189e-001
.double 7.7291935644916260e-014
.double 1.9960937500000000e+000
.double 5.0097847358121328e-001
.double 3.0018093482294717e-001
.double -8.3995153597100334e-014
//
// End of table.
//