| Index: tools/generate-trig-table.py | 
| diff --git a/tools/concatenate-files.py b/tools/generate-trig-table.py | 
| similarity index 53% | 
| copy from tools/concatenate-files.py | 
| copy to tools/generate-trig-table.py | 
| index 86bdf5638366ad5ee681ae2e4ab89499e4ebe18e..0a4fe2861831cce741874d4379cac5f854ee817b 100644 | 
| --- a/tools/concatenate-files.py | 
| +++ b/tools/generate-trig-table.py | 
| @@ -1,6 +1,6 @@ | 
| #!/usr/bin/env python | 
| # | 
| -# Copyright 2014 the V8 project authors. All rights reserved. | 
| +# Copyright 2013 the V8 project authors. All rights reserved. | 
| # Redistribution and use in source and binary forms, with or without | 
| # modification, are permitted provided that the following conditions are | 
| # met: | 
| @@ -27,49 +27,57 @@ | 
| # (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE | 
| # OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. | 
|  | 
| -# This utility concatenates several files into one. On Unix-like systems | 
| -# it is equivalent to: | 
| -#   cat file1 file2 file3 ...files... > target | 
| -# | 
| -# The reason for writing a seperate utility is that 'cat' is not available | 
| -# on all supported build platforms, but Python is, and hence this provides | 
| -# us with an easy and uniform way of doing this on all platforms. | 
| +# This is a utility for populating the lookup table for the | 
| +# approximation of trigonometric functions. | 
| + | 
| +import sys, math | 
|  | 
| -import optparse | 
| +SAMPLES = 1800 | 
|  | 
| +TEMPLATE = """\ | 
| +// Copyright 2013 Google Inc. All Rights Reserved. | 
|  | 
| -def Concatenate(filenames): | 
| -  """Concatenate files. | 
| +// This file was generated from a python script. | 
|  | 
| -  Args: | 
| -    files: Array of file names. | 
| -           The last name is the target; all earlier ones are sources. | 
| +#include "src/v8.h" | 
| +#include "src/trig-table.h" | 
|  | 
| -  Returns: | 
| -    True, if the operation was successful. | 
| -  """ | 
| -  if len(filenames) < 2: | 
| -    print "An error occured generating %s:\nNothing to do." % filenames[-1] | 
| -    return False | 
| +namespace v8 { | 
| +namespace internal { | 
|  | 
| -  try: | 
| -    with open(filenames[-1], "wb") as target: | 
| -      for filename in filenames[:-1]: | 
| -        with open(filename, "rb") as current: | 
| -          target.write(current.read()) | 
| -    return True | 
| -  except IOError as e: | 
| -    print "An error occured when writing %s:\n%s" % (filenames[-1], e) | 
| -    return False | 
| +  const double TrigonometricLookupTable::kSinTable[] = | 
| +      { %(sine_table)s }; | 
| +  const double TrigonometricLookupTable::kCosXIntervalTable[] = | 
| +      { %(cosine_table)s }; | 
| +  const int TrigonometricLookupTable::kSamples = %(samples)i; | 
| +  const int TrigonometricLookupTable::kTableSize = %(table_size)i; | 
| +  const double TrigonometricLookupTable::kSamplesOverPiHalf = | 
| +      %(samples_over_pi_half)s; | 
|  | 
| +} }  // v8::internal | 
| +""" | 
|  | 
| def main(): | 
| -  parser = optparse.OptionParser() | 
| -  parser.set_usage("""Concatenate several files into one. | 
| -      Equivalent to: cat file1 ... > target.""") | 
| -  (options, args) = parser.parse_args() | 
| -  exit(0 if Concatenate(args) else 1) | 
| +  pi_half = math.pi / 2 | 
| +  interval = pi_half / SAMPLES | 
| +  sin = [] | 
| +  cos_times_interval = [] | 
| +  table_size = SAMPLES + 2 | 
| + | 
| +  for i in range(0, table_size): | 
| +    sample = i * interval | 
| +    sin.append(repr(math.sin(sample))) | 
| +    cos_times_interval.append(repr(math.cos(sample) * interval)) | 
|  | 
| +  output_file = sys.argv[1] | 
| +  output = open(str(output_file), "w") | 
| +  output.write(TEMPLATE % { | 
| +    'sine_table': ','.join(sin), | 
| +    'cosine_table': ','.join(cos_times_interval), | 
| +    'samples': SAMPLES, | 
| +    'table_size': table_size, | 
| +    'samples_over_pi_half': repr(SAMPLES / pi_half) | 
| +  }) | 
|  | 
| if __name__ == "__main__": | 
| main() | 
|  |