~ubuntu-branches/ubuntu/quantal/lightning-extension/quantal

« back to all changes in this revision

Viewing changes to mozilla/mfbt/double-conversion/cached-powers.h

  • Committer: Package Import Robot
  • Author(s): Chris Coulson
  • Date: 2012-06-20 23:50:32 UTC
  • mfrom: (1.3.2)
  • Revision ID: package-import@ubuntu.com-20120620235032-fx5tuhrswvsju9z3
Tags: 1.6~b1+build1-0ubuntu1
New upstream release from the beta channel (CALENDAR_1_6b1_BUILD1)

Show diffs side-by-side

added added

removed removed

Lines of Context:
 
1
// Copyright 2010 the V8 project authors. All rights reserved.
 
2
// Redistribution and use in source and binary forms, with or without
 
3
// modification, are permitted provided that the following conditions are
 
4
// met:
 
5
//
 
6
//     * Redistributions of source code must retain the above copyright
 
7
//       notice, this list of conditions and the following disclaimer.
 
8
//     * Redistributions in binary form must reproduce the above
 
9
//       copyright notice, this list of conditions and the following
 
10
//       disclaimer in the documentation and/or other materials provided
 
11
//       with the distribution.
 
12
//     * Neither the name of Google Inc. nor the names of its
 
13
//       contributors may be used to endorse or promote products derived
 
14
//       from this software without specific prior written permission.
 
15
//
 
16
// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
 
17
// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
 
18
// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
 
19
// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
 
20
// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
 
21
// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
 
22
// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
 
23
// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
 
24
// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
 
25
// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
 
26
// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
 
27
 
 
28
#ifndef DOUBLE_CONVERSION_CACHED_POWERS_H_
 
29
#define DOUBLE_CONVERSION_CACHED_POWERS_H_
 
30
 
 
31
#include "diy-fp.h"
 
32
 
 
33
namespace double_conversion {
 
34
 
 
35
class PowersOfTenCache {
 
36
 public:
 
37
 
 
38
  // Not all powers of ten are cached. The decimal exponent of two neighboring
 
39
  // cached numbers will differ by kDecimalExponentDistance.
 
40
  static const int kDecimalExponentDistance;
 
41
 
 
42
  static const int kMinDecimalExponent;
 
43
  static const int kMaxDecimalExponent;
 
44
 
 
45
  // Returns a cached power-of-ten with a binary exponent in the range
 
46
  // [min_exponent; max_exponent] (boundaries included).
 
47
  static void GetCachedPowerForBinaryExponentRange(int min_exponent,
 
48
                                                   int max_exponent,
 
49
                                                   DiyFp* power,
 
50
                                                   int* decimal_exponent);
 
51
 
 
52
  // Returns a cached power of ten x ~= 10^k such that
 
53
  //   k <= decimal_exponent < k + kCachedPowersDecimalDistance.
 
54
  // The given decimal_exponent must satisfy
 
55
  //   kMinDecimalExponent <= requested_exponent, and
 
56
  //   requested_exponent < kMaxDecimalExponent + kDecimalExponentDistance.
 
57
  static void GetCachedPowerForDecimalExponent(int requested_exponent,
 
58
                                               DiyFp* power,
 
59
                                               int* found_exponent);
 
60
};
 
61
 
 
62
}  // namespace double_conversion
 
63
 
 
64
#endif  // DOUBLE_CONVERSION_CACHED_POWERS_H_