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

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

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

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

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

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

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