gen_sin_table.py 711 B

12345678910111213141516171819202122232425
  1. import math
  2. def generate_sin_table(num_points = 4096 + 1):
  3. y_step = 1.0 / (num_points - 1)
  4. sin_table = []
  5. for i in range(num_points):
  6. y = i * y_step
  7. x = math.asin(y)
  8. x = max(0, min(x, math.pi / 2))
  9. sin_table.append(x)
  10. return sin_table
  11. if __name__ == "__main__":
  12. sin_table = generate_sin_table()
  13. print(len(sin_table))
  14. # print(sin_table)
  15. filepath = 'include/pocketpy/common/_sin_table.h'
  16. with open(filepath, 'w') as f:
  17. f.write('static const double _sin_table[] = {')
  18. for i, val in enumerate(sin_table):
  19. if i % 8 == 0:
  20. f.write('\n ')
  21. f.write(str(val) + ', ')
  22. f.write('\n};\n')