Print this page
11210 libm should be cstyle(1ONBLD) clean

Split Close
Expand all
Collapse all
          --- old/usr/src/lib/libm/common/C/cbrt.c
          +++ new/usr/src/lib/libm/common/C/cbrt.c
↓ open down ↓ 14 lines elided ↑ open up ↑
  15   15   * If applicable, add the following below this CDDL HEADER, with the
  16   16   * fields enclosed by brackets "[]" replaced with your own identifying
  17   17   * information: Portions Copyright [yyyy] [name of copyright owner]
  18   18   *
  19   19   * CDDL HEADER END
  20   20   */
  21   21  
  22   22  /*
  23   23   * Copyright 2011 Nexenta Systems, Inc.  All rights reserved.
  24   24   */
       25 +
  25   26  /*
  26   27   * Copyright 2006 Sun Microsystems, Inc.  All rights reserved.
  27   28   * Use is subject to license terms.
  28   29   */
  29   30  
  30   31  #include "libm_macros.h"
  31   32  
  32      -/* INDENT OFF */
  33   33  
  34   34  /*
  35   35   *  cbrt: double precision cube root
  36   36   *
  37   37   *  Algorithm: bit hacking, table lookup, and polynomial approximation
  38   38   *
  39   39   *  For normal x, write x = s*2^(3j)*z where s = +/-1, j is an integer,
  40   40   *  and 1 <= z < 8.  Let y := s*2^j.  From a table, find u such that
  41   41   *  u^3 is computable exactly and |(z-u^3)/u^3| <~ 2^-8.  We construct
  42   42   *  y, z, and the table index from x by a few integer operations.
↓ open down ↓ 10 lines elided ↑ open up ↑
  53   53   *
  54   54   *  2. cbrt(+/-inf) = +/-inf and cbrt(NaN) is NaN.
  55   55   */
  56   56  
  57   57  /*
  58   58   * for i = 0, ..., 385
  59   59   *   form x(i) with high word 0x3ff00000 + (i << 13) and low word 0;
  60   60   *   then TBL[i] = cbrt(x(i)) rounded to 17 significant bits
  61   61   */
  62   62  static const double __libm_TBL_cbrt[] = {
  63      - 1.00000000000000000e+00, 1.00259399414062500e+00, 1.00518798828125000e+00,
  64      - 1.00775146484375000e+00, 1.01031494140625000e+00, 1.01284790039062500e+00,
  65      - 1.01538085937500000e+00, 1.01791381835937500e+00, 1.02041625976562500e+00,
  66      - 1.02290344238281250e+00, 1.02539062500000000e+00, 1.02786254882812500e+00,
  67      - 1.03031921386718750e+00, 1.03277587890625000e+00, 1.03520202636718750e+00,
  68      - 1.03762817382812500e+00, 1.04003906250000000e+00, 1.04244995117187500e+00,
  69      - 1.04483032226562500e+00, 1.04721069335937500e+00, 1.04959106445312500e+00,
  70      - 1.05194091796875000e+00, 1.05429077148437500e+00, 1.05662536621093750e+00,
  71      - 1.05895996093750000e+00, 1.06127929687500000e+00, 1.06358337402343750e+00,
  72      - 1.06587219238281250e+00, 1.06816101074218750e+00, 1.07044982910156250e+00,
  73      - 1.07270812988281250e+00, 1.07496643066406250e+00, 1.07722473144531250e+00,
  74      - 1.07945251464843750e+00, 1.08168029785156250e+00, 1.08390808105468750e+00,
  75      - 1.08612060546875000e+00, 1.08831787109375000e+00, 1.09051513671875000e+00,
  76      - 1.09269714355468750e+00, 1.09487915039062500e+00, 1.09704589843750000e+00,
  77      - 1.09921264648437500e+00, 1.10136413574218750e+00, 1.10350036621093750e+00,
  78      - 1.10563659667968750e+00, 1.10775756835937500e+00, 1.10987854003906250e+00,
  79      - 1.11198425292968750e+00, 1.11408996582031250e+00, 1.11618041992187500e+00,
  80      - 1.11827087402343750e+00, 1.12034606933593750e+00, 1.12242126464843750e+00,
  81      - 1.12448120117187500e+00, 1.12654113769531250e+00, 1.12858581542968750e+00,
  82      - 1.13063049316406250e+00, 1.13265991210937500e+00, 1.13468933105468750e+00,
  83      - 1.13670349121093750e+00, 1.13871765136718750e+00, 1.14073181152343750e+00,
  84      - 1.14273071289062500e+00, 1.14471435546875000e+00, 1.14669799804687500e+00,
  85      - 1.14868164062500000e+00, 1.15065002441406250e+00, 1.15260314941406250e+00,
  86      - 1.15457153320312500e+00, 1.15650939941406250e+00, 1.15846252441406250e+00,
  87      - 1.16040039062500000e+00, 1.16232299804687500e+00, 1.16424560546875000e+00,
  88      - 1.16616821289062500e+00, 1.16807556152343750e+00, 1.16998291015625000e+00,
  89      - 1.17189025878906250e+00, 1.17378234863281250e+00, 1.17567443847656250e+00,
  90      - 1.17755126953125000e+00, 1.17942810058593750e+00, 1.18128967285156250e+00,
  91      - 1.18315124511718750e+00, 1.18501281738281250e+00, 1.18685913085937500e+00,
  92      - 1.18870544433593750e+00, 1.19055175781250000e+00, 1.19238281250000000e+00,
  93      - 1.19421386718750000e+00, 1.19602966308593750e+00, 1.19786071777343750e+00,
  94      - 1.19966125488281250e+00, 1.20147705078125000e+00, 1.20327758789062500e+00,
  95      - 1.20507812500000000e+00, 1.20686340332031250e+00, 1.20864868164062500e+00,
  96      - 1.21043395996093750e+00, 1.21220397949218750e+00, 1.21397399902343750e+00,
  97      - 1.21572875976562500e+00, 1.21749877929687500e+00, 1.21925354003906250e+00,
  98      - 1.22099304199218750e+00, 1.22274780273437500e+00, 1.22448730468750000e+00,
  99      - 1.22621154785156250e+00, 1.22795104980468750e+00, 1.22967529296875000e+00,
 100      - 1.23138427734375000e+00, 1.23310852050781250e+00, 1.23481750488281250e+00,
 101      - 1.23652648925781250e+00, 1.23822021484375000e+00, 1.23991394042968750e+00,
 102      - 1.24160766601562500e+00, 1.24330139160156250e+00, 1.24497985839843750e+00,
 103      - 1.24665832519531250e+00, 1.24833679199218750e+00, 1.25000000000000000e+00,
 104      - 1.25166320800781250e+00, 1.25332641601562500e+00, 1.25497436523437500e+00,
 105      - 1.25663757324218750e+00, 1.25828552246093750e+00, 1.25991821289062500e+00,
 106      - 1.26319885253906250e+00, 1.26644897460937500e+00, 1.26968383789062500e+00,
 107      - 1.27290344238281250e+00, 1.27612304687500000e+00, 1.27931213378906250e+00,
 108      - 1.28248596191406250e+00, 1.28564453125000000e+00, 1.28878784179687500e+00,
 109      - 1.29191589355468750e+00, 1.29502868652343750e+00, 1.29812622070312500e+00,
 110      - 1.30120849609375000e+00, 1.30427551269531250e+00, 1.30732727050781250e+00,
 111      - 1.31036376953125000e+00, 1.31340026855468750e+00, 1.31640625000000000e+00,
 112      - 1.31941223144531250e+00, 1.32238769531250000e+00, 1.32536315917968750e+00,
 113      - 1.32832336425781250e+00, 1.33126831054687500e+00, 1.33419799804687500e+00,
 114      - 1.33712768554687500e+00, 1.34002685546875000e+00, 1.34292602539062500e+00,
 115      - 1.34580993652343750e+00, 1.34867858886718750e+00, 1.35153198242187500e+00,
 116      - 1.35437011718750000e+00, 1.35720825195312500e+00, 1.36003112792968750e+00,
 117      - 1.36283874511718750e+00, 1.36564636230468750e+00, 1.36842346191406250e+00,
 118      - 1.37120056152343750e+00, 1.37396240234375000e+00, 1.37672424316406250e+00,
 119      - 1.37945556640625000e+00, 1.38218688964843750e+00, 1.38491821289062500e+00,
 120      - 1.38761901855468750e+00, 1.39031982421875000e+00, 1.39302062988281250e+00,
 121      - 1.39569091796875000e+00, 1.39836120605468750e+00, 1.40101623535156250e+00,
 122      - 1.40367126464843750e+00, 1.40631103515625000e+00, 1.40893554687500000e+00,
 123      - 1.41156005859375000e+00, 1.41416931152343750e+00, 1.41676330566406250e+00,
 124      - 1.41935729980468750e+00, 1.42193603515625000e+00, 1.42449951171875000e+00,
 125      - 1.42706298828125000e+00, 1.42962646484375000e+00, 1.43215942382812500e+00,
 126      - 1.43469238281250000e+00, 1.43722534179687500e+00, 1.43974304199218750e+00,
 127      - 1.44224548339843750e+00, 1.44474792480468750e+00, 1.44723510742187500e+00,
 128      - 1.44972229003906250e+00, 1.45219421386718750e+00, 1.45466613769531250e+00,
 129      - 1.45712280273437500e+00, 1.45956420898437500e+00, 1.46200561523437500e+00,
 130      - 1.46444702148437500e+00, 1.46687316894531250e+00, 1.46928405761718750e+00,
 131      - 1.47169494628906250e+00, 1.47409057617187500e+00, 1.47648620605468750e+00,
 132      - 1.47886657714843750e+00, 1.48124694824218750e+00, 1.48361206054687500e+00,
 133      - 1.48597717285156250e+00, 1.48834228515625000e+00, 1.49067687988281250e+00,
 134      - 1.49302673339843750e+00, 1.49536132812500000e+00, 1.49768066406250000e+00,
 135      - 1.50000000000000000e+00, 1.50230407714843750e+00, 1.50460815429687500e+00,
 136      - 1.50691223144531250e+00, 1.50920104980468750e+00, 1.51148986816406250e+00,
 137      - 1.51376342773437500e+00, 1.51603698730468750e+00, 1.51829528808593750e+00,
 138      - 1.52055358886718750e+00, 1.52279663085937500e+00, 1.52503967285156250e+00,
 139      - 1.52728271484375000e+00, 1.52951049804687500e+00, 1.53173828125000000e+00,
 140      - 1.53395080566406250e+00, 1.53616333007812500e+00, 1.53836059570312500e+00,
 141      - 1.54055786132812500e+00, 1.54275512695312500e+00, 1.54493713378906250e+00,
 142      - 1.54711914062500000e+00, 1.54928588867187500e+00, 1.55145263671875000e+00,
 143      - 1.55361938476562500e+00, 1.55577087402343750e+00, 1.55792236328125000e+00,
 144      - 1.56005859375000000e+00, 1.56219482421875000e+00, 1.56433105468750000e+00,
 145      - 1.56645202636718750e+00, 1.56857299804687500e+00, 1.57069396972656250e+00,
 146      - 1.57279968261718750e+00, 1.57490539550781250e+00, 1.57699584960937500e+00,
 147      - 1.57908630371093750e+00, 1.58117675781250000e+00, 1.58325195312500000e+00,
 148      - 1.58532714843750000e+00, 1.58740234375000000e+00, 1.59152221679687500e+00,
 149      - 1.59562683105468750e+00, 1.59970092773437500e+00, 1.60375976562500000e+00,
 150      - 1.60780334472656250e+00, 1.61183166503906250e+00, 1.61582946777343750e+00,
 151      - 1.61981201171875000e+00, 1.62376403808593750e+00, 1.62770080566406250e+00,
 152      - 1.63162231445312500e+00, 1.63552856445312500e+00, 1.63941955566406250e+00,
 153      - 1.64328002929687500e+00, 1.64714050292968750e+00, 1.65097045898437500e+00,
 154      - 1.65476989746093750e+00, 1.65856933593750000e+00, 1.66235351562500000e+00,
 155      - 1.66610717773437500e+00, 1.66986083984375000e+00, 1.67358398437500000e+00,
 156      - 1.67729187011718750e+00, 1.68098449707031250e+00, 1.68466186523437500e+00,
 157      - 1.68832397460937500e+00, 1.69197082519531250e+00, 1.69560241699218750e+00,
 158      - 1.69921875000000000e+00, 1.70281982421875000e+00, 1.70640563964843750e+00,
 159      - 1.70997619628906250e+00, 1.71353149414062500e+00, 1.71707153320312500e+00,
 160      - 1.72059631347656250e+00, 1.72410583496093750e+00, 1.72760009765625000e+00,
 161      - 1.73109436035156250e+00, 1.73455810546875000e+00, 1.73800659179687500e+00,
 162      - 1.74145507812500000e+00, 1.74488830566406250e+00, 1.74829101562500000e+00,
 163      - 1.75169372558593750e+00, 1.75508117675781250e+00, 1.75846862792968750e+00,
 164      - 1.76182556152343750e+00, 1.76516723632812500e+00, 1.76850891113281250e+00,
 165      - 1.77183532714843750e+00, 1.77514648437500000e+00, 1.77844238281250000e+00,
 166      - 1.78173828125000000e+00, 1.78500366210937500e+00, 1.78826904296875000e+00,
 167      - 1.79151916503906250e+00, 1.79476928710937500e+00, 1.79798889160156250e+00,
 168      - 1.80120849609375000e+00, 1.80441284179687500e+00, 1.80760192871093750e+00,
 169      - 1.81079101562500000e+00, 1.81396484375000000e+00, 1.81712341308593750e+00,
 170      - 1.82026672363281250e+00, 1.82341003417968750e+00, 1.82653808593750000e+00,
 171      - 1.82965087890625000e+00, 1.83276367187500000e+00, 1.83586120605468750e+00,
 172      - 1.83894348144531250e+00, 1.84201049804687500e+00, 1.84507751464843750e+00,
 173      - 1.84812927246093750e+00, 1.85118103027343750e+00, 1.85421752929687500e+00,
 174      - 1.85723876953125000e+00, 1.86026000976562500e+00, 1.86326599121093750e+00,
 175      - 1.86625671386718750e+00, 1.86924743652343750e+00, 1.87222290039062500e+00,
 176      - 1.87518310546875000e+00, 1.87814331054687500e+00, 1.88108825683593750e+00,
 177      - 1.88403320312500000e+00, 1.88696289062500000e+00, 1.88987731933593750e+00,
 178      - 1.89279174804687500e+00, 1.89569091796875000e+00, 1.89859008789062500e+00,
 179      - 1.90147399902343750e+00, 1.90435791015625000e+00, 1.90722656250000000e+00,
 180      - 1.91007995605468750e+00, 1.91293334960937500e+00, 1.91577148437500000e+00,
 181      - 1.91860961914062500e+00, 1.92143249511718750e+00, 1.92425537109375000e+00,
 182      - 1.92706298828125000e+00, 1.92985534667968750e+00, 1.93264770507812500e+00,
 183      - 1.93544006347656250e+00, 1.93821716308593750e+00, 1.94097900390625000e+00,
 184      - 1.94374084472656250e+00, 1.94650268554687500e+00, 1.94924926757812500e+00,
 185      - 1.95198059082031250e+00, 1.95471191406250000e+00, 1.95742797851562500e+00,
 186      - 1.96014404296875000e+00, 1.96286010742187500e+00, 1.96556091308593750e+00,
 187      - 1.96824645996093750e+00, 1.97093200683593750e+00, 1.97361755371093750e+00,
 188      - 1.97628784179687500e+00, 1.97894287109375000e+00, 1.98159790039062500e+00,
 189      - 1.98425292968750000e+00, 1.98689270019531250e+00, 1.98953247070312500e+00,
 190      - 1.99215698242187500e+00, 1.99478149414062500e+00, 1.99739074707031250e+00,
 191      - 2.00000000000000000e+00,
       63 +        1.00000000000000000e+00, 1.00259399414062500e+00,
       64 +        1.00518798828125000e+00, 1.00775146484375000e+00,
       65 +        1.01031494140625000e+00, 1.01284790039062500e+00,
       66 +        1.01538085937500000e+00, 1.01791381835937500e+00,
       67 +        1.02041625976562500e+00, 1.02290344238281250e+00,
       68 +        1.02539062500000000e+00, 1.02786254882812500e+00,
       69 +        1.03031921386718750e+00, 1.03277587890625000e+00,
       70 +        1.03520202636718750e+00, 1.03762817382812500e+00,
       71 +        1.04003906250000000e+00, 1.04244995117187500e+00,
       72 +        1.04483032226562500e+00, 1.04721069335937500e+00,
       73 +        1.04959106445312500e+00, 1.05194091796875000e+00,
       74 +        1.05429077148437500e+00, 1.05662536621093750e+00,
       75 +        1.05895996093750000e+00, 1.06127929687500000e+00,
       76 +        1.06358337402343750e+00, 1.06587219238281250e+00,
       77 +        1.06816101074218750e+00, 1.07044982910156250e+00,
       78 +        1.07270812988281250e+00, 1.07496643066406250e+00,
       79 +        1.07722473144531250e+00, 1.07945251464843750e+00,
       80 +        1.08168029785156250e+00, 1.08390808105468750e+00,
       81 +        1.08612060546875000e+00, 1.08831787109375000e+00,
       82 +        1.09051513671875000e+00, 1.09269714355468750e+00,
       83 +        1.09487915039062500e+00, 1.09704589843750000e+00,
       84 +        1.09921264648437500e+00, 1.10136413574218750e+00,
       85 +        1.10350036621093750e+00, 1.10563659667968750e+00,
       86 +        1.10775756835937500e+00, 1.10987854003906250e+00,
       87 +        1.11198425292968750e+00, 1.11408996582031250e+00,
       88 +        1.11618041992187500e+00, 1.11827087402343750e+00,
       89 +        1.12034606933593750e+00, 1.12242126464843750e+00,
       90 +        1.12448120117187500e+00, 1.12654113769531250e+00,
       91 +        1.12858581542968750e+00, 1.13063049316406250e+00,
       92 +        1.13265991210937500e+00, 1.13468933105468750e+00,
       93 +        1.13670349121093750e+00, 1.13871765136718750e+00,
       94 +        1.14073181152343750e+00, 1.14273071289062500e+00,
       95 +        1.14471435546875000e+00, 1.14669799804687500e+00,
       96 +        1.14868164062500000e+00, 1.15065002441406250e+00,
       97 +        1.15260314941406250e+00, 1.15457153320312500e+00,
       98 +        1.15650939941406250e+00, 1.15846252441406250e+00,
       99 +        1.16040039062500000e+00, 1.16232299804687500e+00,
      100 +        1.16424560546875000e+00, 1.16616821289062500e+00,
      101 +        1.16807556152343750e+00, 1.16998291015625000e+00,
      102 +        1.17189025878906250e+00, 1.17378234863281250e+00,
      103 +        1.17567443847656250e+00, 1.17755126953125000e+00,
      104 +        1.17942810058593750e+00, 1.18128967285156250e+00,
      105 +        1.18315124511718750e+00, 1.18501281738281250e+00,
      106 +        1.18685913085937500e+00, 1.18870544433593750e+00,
      107 +        1.19055175781250000e+00, 1.19238281250000000e+00,
      108 +        1.19421386718750000e+00, 1.19602966308593750e+00,
      109 +        1.19786071777343750e+00, 1.19966125488281250e+00,
      110 +        1.20147705078125000e+00, 1.20327758789062500e+00,
      111 +        1.20507812500000000e+00, 1.20686340332031250e+00,
      112 +        1.20864868164062500e+00, 1.21043395996093750e+00,
      113 +        1.21220397949218750e+00, 1.21397399902343750e+00,
      114 +        1.21572875976562500e+00, 1.21749877929687500e+00,
      115 +        1.21925354003906250e+00, 1.22099304199218750e+00,
      116 +        1.22274780273437500e+00, 1.22448730468750000e+00,
      117 +        1.22621154785156250e+00, 1.22795104980468750e+00,
      118 +        1.22967529296875000e+00, 1.23138427734375000e+00,
      119 +        1.23310852050781250e+00, 1.23481750488281250e+00,
      120 +        1.23652648925781250e+00, 1.23822021484375000e+00,
      121 +        1.23991394042968750e+00, 1.24160766601562500e+00,
      122 +        1.24330139160156250e+00, 1.24497985839843750e+00,
      123 +        1.24665832519531250e+00, 1.24833679199218750e+00,
      124 +        1.25000000000000000e+00, 1.25166320800781250e+00,
      125 +        1.25332641601562500e+00, 1.25497436523437500e+00,
      126 +        1.25663757324218750e+00, 1.25828552246093750e+00,
      127 +        1.25991821289062500e+00, 1.26319885253906250e+00,
      128 +        1.26644897460937500e+00, 1.26968383789062500e+00,
      129 +        1.27290344238281250e+00, 1.27612304687500000e+00,
      130 +        1.27931213378906250e+00, 1.28248596191406250e+00,
      131 +        1.28564453125000000e+00, 1.28878784179687500e+00,
      132 +        1.29191589355468750e+00, 1.29502868652343750e+00,
      133 +        1.29812622070312500e+00, 1.30120849609375000e+00,
      134 +        1.30427551269531250e+00, 1.30732727050781250e+00,
      135 +        1.31036376953125000e+00, 1.31340026855468750e+00,
      136 +        1.31640625000000000e+00, 1.31941223144531250e+00,
      137 +        1.32238769531250000e+00, 1.32536315917968750e+00,
      138 +        1.32832336425781250e+00, 1.33126831054687500e+00,
      139 +        1.33419799804687500e+00, 1.33712768554687500e+00,
      140 +        1.34002685546875000e+00, 1.34292602539062500e+00,
      141 +        1.34580993652343750e+00, 1.34867858886718750e+00,
      142 +        1.35153198242187500e+00, 1.35437011718750000e+00,
      143 +        1.35720825195312500e+00, 1.36003112792968750e+00,
      144 +        1.36283874511718750e+00, 1.36564636230468750e+00,
      145 +        1.36842346191406250e+00, 1.37120056152343750e+00,
      146 +        1.37396240234375000e+00, 1.37672424316406250e+00,
      147 +        1.37945556640625000e+00, 1.38218688964843750e+00,
      148 +        1.38491821289062500e+00, 1.38761901855468750e+00,
      149 +        1.39031982421875000e+00, 1.39302062988281250e+00,
      150 +        1.39569091796875000e+00, 1.39836120605468750e+00,
      151 +        1.40101623535156250e+00, 1.40367126464843750e+00,
      152 +        1.40631103515625000e+00, 1.40893554687500000e+00,
      153 +        1.41156005859375000e+00, 1.41416931152343750e+00,
      154 +        1.41676330566406250e+00, 1.41935729980468750e+00,
      155 +        1.42193603515625000e+00, 1.42449951171875000e+00,
      156 +        1.42706298828125000e+00, 1.42962646484375000e+00,
      157 +        1.43215942382812500e+00, 1.43469238281250000e+00,
      158 +        1.43722534179687500e+00, 1.43974304199218750e+00,
      159 +        1.44224548339843750e+00, 1.44474792480468750e+00,
      160 +        1.44723510742187500e+00, 1.44972229003906250e+00,
      161 +        1.45219421386718750e+00, 1.45466613769531250e+00,
      162 +        1.45712280273437500e+00, 1.45956420898437500e+00,
      163 +        1.46200561523437500e+00, 1.46444702148437500e+00,
      164 +        1.46687316894531250e+00, 1.46928405761718750e+00,
      165 +        1.47169494628906250e+00, 1.47409057617187500e+00,
      166 +        1.47648620605468750e+00, 1.47886657714843750e+00,
      167 +        1.48124694824218750e+00, 1.48361206054687500e+00,
      168 +        1.48597717285156250e+00, 1.48834228515625000e+00,
      169 +        1.49067687988281250e+00, 1.49302673339843750e+00,
      170 +        1.49536132812500000e+00, 1.49768066406250000e+00,
      171 +        1.50000000000000000e+00, 1.50230407714843750e+00,
      172 +        1.50460815429687500e+00, 1.50691223144531250e+00,
      173 +        1.50920104980468750e+00, 1.51148986816406250e+00,
      174 +        1.51376342773437500e+00, 1.51603698730468750e+00,
      175 +        1.51829528808593750e+00, 1.52055358886718750e+00,
      176 +        1.52279663085937500e+00, 1.52503967285156250e+00,
      177 +        1.52728271484375000e+00, 1.52951049804687500e+00,
      178 +        1.53173828125000000e+00, 1.53395080566406250e+00,
      179 +        1.53616333007812500e+00, 1.53836059570312500e+00,
      180 +        1.54055786132812500e+00, 1.54275512695312500e+00,
      181 +        1.54493713378906250e+00, 1.54711914062500000e+00,
      182 +        1.54928588867187500e+00, 1.55145263671875000e+00,
      183 +        1.55361938476562500e+00, 1.55577087402343750e+00,
      184 +        1.55792236328125000e+00, 1.56005859375000000e+00,
      185 +        1.56219482421875000e+00, 1.56433105468750000e+00,
      186 +        1.56645202636718750e+00, 1.56857299804687500e+00,
      187 +        1.57069396972656250e+00, 1.57279968261718750e+00,
      188 +        1.57490539550781250e+00, 1.57699584960937500e+00,
      189 +        1.57908630371093750e+00, 1.58117675781250000e+00,
      190 +        1.58325195312500000e+00, 1.58532714843750000e+00,
      191 +        1.58740234375000000e+00, 1.59152221679687500e+00,
      192 +        1.59562683105468750e+00, 1.59970092773437500e+00,
      193 +        1.60375976562500000e+00, 1.60780334472656250e+00,
      194 +        1.61183166503906250e+00, 1.61582946777343750e+00,
      195 +        1.61981201171875000e+00, 1.62376403808593750e+00,
      196 +        1.62770080566406250e+00, 1.63162231445312500e+00,
      197 +        1.63552856445312500e+00, 1.63941955566406250e+00,
      198 +        1.64328002929687500e+00, 1.64714050292968750e+00,
      199 +        1.65097045898437500e+00, 1.65476989746093750e+00,
      200 +        1.65856933593750000e+00, 1.66235351562500000e+00,
      201 +        1.66610717773437500e+00, 1.66986083984375000e+00,
      202 +        1.67358398437500000e+00, 1.67729187011718750e+00,
      203 +        1.68098449707031250e+00, 1.68466186523437500e+00,
      204 +        1.68832397460937500e+00, 1.69197082519531250e+00,
      205 +        1.69560241699218750e+00, 1.69921875000000000e+00,
      206 +        1.70281982421875000e+00, 1.70640563964843750e+00,
      207 +        1.70997619628906250e+00, 1.71353149414062500e+00,
      208 +        1.71707153320312500e+00, 1.72059631347656250e+00,
      209 +        1.72410583496093750e+00, 1.72760009765625000e+00,
      210 +        1.73109436035156250e+00, 1.73455810546875000e+00,
      211 +        1.73800659179687500e+00, 1.74145507812500000e+00,
      212 +        1.74488830566406250e+00, 1.74829101562500000e+00,
      213 +        1.75169372558593750e+00, 1.75508117675781250e+00,
      214 +        1.75846862792968750e+00, 1.76182556152343750e+00,
      215 +        1.76516723632812500e+00, 1.76850891113281250e+00,
      216 +        1.77183532714843750e+00, 1.77514648437500000e+00,
      217 +        1.77844238281250000e+00, 1.78173828125000000e+00,
      218 +        1.78500366210937500e+00, 1.78826904296875000e+00,
      219 +        1.79151916503906250e+00, 1.79476928710937500e+00,
      220 +        1.79798889160156250e+00, 1.80120849609375000e+00,
      221 +        1.80441284179687500e+00, 1.80760192871093750e+00,
      222 +        1.81079101562500000e+00, 1.81396484375000000e+00,
      223 +        1.81712341308593750e+00, 1.82026672363281250e+00,
      224 +        1.82341003417968750e+00, 1.82653808593750000e+00,
      225 +        1.82965087890625000e+00, 1.83276367187500000e+00,
      226 +        1.83586120605468750e+00, 1.83894348144531250e+00,
      227 +        1.84201049804687500e+00, 1.84507751464843750e+00,
      228 +        1.84812927246093750e+00, 1.85118103027343750e+00,
      229 +        1.85421752929687500e+00, 1.85723876953125000e+00,
      230 +        1.86026000976562500e+00, 1.86326599121093750e+00,
      231 +        1.86625671386718750e+00, 1.86924743652343750e+00,
      232 +        1.87222290039062500e+00, 1.87518310546875000e+00,
      233 +        1.87814331054687500e+00, 1.88108825683593750e+00,
      234 +        1.88403320312500000e+00, 1.88696289062500000e+00,
      235 +        1.88987731933593750e+00, 1.89279174804687500e+00,
      236 +        1.89569091796875000e+00, 1.89859008789062500e+00,
      237 +        1.90147399902343750e+00, 1.90435791015625000e+00,
      238 +        1.90722656250000000e+00, 1.91007995605468750e+00,
      239 +        1.91293334960937500e+00, 1.91577148437500000e+00,
      240 +        1.91860961914062500e+00, 1.92143249511718750e+00,
      241 +        1.92425537109375000e+00, 1.92706298828125000e+00,
      242 +        1.92985534667968750e+00, 1.93264770507812500e+00,
      243 +        1.93544006347656250e+00, 1.93821716308593750e+00,
      244 +        1.94097900390625000e+00, 1.94374084472656250e+00,
      245 +        1.94650268554687500e+00, 1.94924926757812500e+00,
      246 +        1.95198059082031250e+00, 1.95471191406250000e+00,
      247 +        1.95742797851562500e+00, 1.96014404296875000e+00,
      248 +        1.96286010742187500e+00, 1.96556091308593750e+00,
      249 +        1.96824645996093750e+00, 1.97093200683593750e+00,
      250 +        1.97361755371093750e+00, 1.97628784179687500e+00,
      251 +        1.97894287109375000e+00, 1.98159790039062500e+00,
      252 +        1.98425292968750000e+00, 1.98689270019531250e+00,
      253 +        1.98953247070312500e+00, 1.99215698242187500e+00,
      254 +        1.99478149414062500e+00, 1.99739074707031250e+00,
      255 +        2.00000000000000000e+00,
 192  256  };
 193  257  
 194  258  /*
 195  259   * The polynomial p(x) := p1*x + p2*x^2 + ... + p6*x^6 satisfies
 196  260   *
 197  261   * |(1+x)^(1/3) - 1 - p(x)| < 2^-63  for |x| < 0.003914
 198  262   */
 199  263  static const double C[] = {
 200      -         3.33333333333333340735623180707664400321413178600e-0001,
      264 +        3.33333333333333340735623180707664400321413178600e-0001,
 201  265          -1.11111111111111111992797989129069515334791432304e-0001,
 202      -         6.17283950578506695710302115234720605072083379082e-0002,
      266 +        6.17283950578506695710302115234720605072083379082e-0002,
 203  267          -4.11522633731005164138964638666647311514892319010e-0002,
 204      -         3.01788343105268728151735586597807324859173704847e-0002,
      268 +        3.01788343105268728151735586597807324859173704847e-0002,
 205  269          -2.34723340038386971009665073968507263074215090751e-0002,
 206  270          18014398509481984.0
 207  271  };
 208  272  
 209      -#define p1                      C[0]
 210      -#define p2                      C[1]
 211      -#define p3                      C[2]
 212      -#define p4                      C[3]
 213      -#define p5                      C[4]
 214      -#define p6                      C[5]
 215      -#define two54           C[6]
      273 +#define p1              C[0]
      274 +#define p2              C[1]
      275 +#define p3              C[2]
      276 +#define p4              C[3]
      277 +#define p5              C[4]
      278 +#define p6              C[5]
      279 +#define two54           C[6]
 216  280  
 217      -/* INDENT ON */
 218  281  
 219  282  #pragma weak cbrt = __cbrt
 220  283  
 221      -double __cbrt(double x)
      284 +double
      285 +__cbrt(double x)
 222  286  {
 223  287          union {
 224      -                unsigned int    i[2];
 225      -                double                  d;
      288 +                unsigned int i[2];
      289 +                double d;
 226  290          } xx, yy;
 227      -        double                  t, u, w;
 228      -        unsigned int    hx, sx, ex, j, offset;
      291 +
      292 +        double t, u, w;
      293 +        unsigned int hx, sx, ex, j, offset;
 229  294  
 230  295          xx.d = x;
 231  296          hx = xx.i[HIWORD] & ~0x80000000;
 232  297          sx = xx.i[HIWORD] & 0x80000000;
 233  298  
 234  299          /* handle special cases */
 235      -        if (hx >= 0x7ff00000) /* x is inf or nan */
      300 +        if (hx >= 0x7ff00000)           /* x is inf or nan */
 236  301  #if defined(FPADD_TRAPS_INCOMPLETE_ON_NAN)
 237      -                return hx >= 0x7ff80000 ? x : x + x;
 238      -                /* assumes sparc-like QNaN */
      302 +                return (hx >= 0x7ff80000 ? x : x + x);
      303 +
      304 +        /* assumes sparc-like QNaN */
 239  305  #else
 240      -                return x + x;
      306 +                return (x + x);
 241  307  #endif
 242  308  
 243      -        if (hx < 0x00100000) { /* x is subnormal or zero */
      309 +        if (hx < 0x00100000) {          /* x is subnormal or zero */
 244  310                  if ((hx | xx.i[LOWORD]) == 0)
 245      -                        return x;
      311 +                        return (x);
 246  312  
 247  313                  /* scale x to normal range */
 248  314                  xx.d = x * two54;
 249  315                  hx = xx.i[HIWORD] & ~0x80000000;
 250  316                  offset = 0x29800000;
 251      -        }
 252      -        else
      317 +        } else {
 253  318                  offset = 0x2aa00000;
      319 +        }
 254  320  
 255  321          ex = hx & 0x7ff00000;
 256  322          j = (ex >> 2) + (ex >> 4) + (ex >> 6);
 257  323          j = j + (j >> 6);
 258      -        j = 0x7ff00000 & (j + 0x2aa00); /* j is ex/3 */
      324 +        j = 0x7ff00000 & (j + 0x2aa00); /* j is ex/3 */
 259  325          hx -= (j + j + j);
 260  326          xx.i[HIWORD] = 0x3ff00000 + hx;
 261  327  
 262  328          u = __libm_TBL_cbrt[(hx + 0x1000) >> 13];
 263  329          w = u * u * u;
 264  330          t = (xx.d - w) / w;
 265  331  
 266  332          yy.i[HIWORD] = sx | (j + offset);
 267  333          yy.i[LOWORD] = 0;
 268  334  
 269  335          w = t * t;
 270      -        return yy.d * (u + u * (t * (p1 + t * p2 + w * p3) +
 271      -                (w * w) * (p4 + t * p5 + w * p6)));
      336 +        return (yy.d * (u + u * (t * (p1 + t * p2 + w * p3) + (w * w) *
      337 +            (p4 + t * p5 + w * p6))));
 272  338  }
    
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX