Тест производительности МК-161 - золотое сечение

| рубрика «Программы» | автор Дробышев
Метки: ,

Программа рассчитывает либо 512 знаков золотого сечения и результат помещает в регистры, либо 12288 знаков и результат размещает в блокноте. Эмулятор Павла Петрова на моем ноутбуке в первом случае отрабатывает 7-8 секунд на максимальной скорости, а во втором - около 320 секунд. Вычислительная сложность где-то N log(N). Хотелось бы знать, сколько будет работать реальная машинка и корректно ли. С блокнотом лучше не экспериментировать, т.к. по документации он рассчитан на ограниченное число перезаписей.

Фишки следующие:

  • квадратный корень из пяти вычисляется итерациями, каждая итерация практически удваивает число знаков;
  • для реализации умножения длинных чисел используется быстрое преобразование Фурье (БПФ);
  • БПФ оформлено рекурсивно;
  • для этого потребовался программный стек для передачи параметров в рекурсивную функцию;
  • раз есть стек, то и для других подпрограмм параметры можно класть на стек.

Итого около 2000 шагов кода. Не знаю, есть ли зарубежные калькуляторы, на которых можно руками запрограммировать БПФ.

Исходный текс, MKL


blog comments powered by Disqus