Перейти к содержимому
Oleshe

NumLua

Рекомендуемые сообщения

Мне понадобились функций библиотеки из python numpy, поэтому настрадавшись я сделал тот-же функционал но на луа.

nl.array(a,b,c) -- создаёт список из заданных нами переменных

nl.dot(array,array) -- перемножает одну таблицу на другую и плюсует все что в них осталось

nl.exp(array or number) -- экспонента всех элементов таблицы или экспонента числа, с ней и настрадался

Я не знаю какие еще функций там есть, если вам будет надо я добавлю.

Прописка:  pastebin get QiHTzdQ8 /lib/numlua.lua

Результат в питоне и здесь отличаться на сотнях тысячных!! (148.4131591 а у нас 148.41315908646)

Изменено пользователем Oleshe
Про разность результатов

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
7 минут назад, Oleshe сказал:

Я не знаю какие еще функций там есть, если у вам будет надо я добавлю.

Такие несложные функции каждый программист обычно сам пишет.

Возможно, этот код кому-то пригодится в качестве учебного пособия, но для этого его потребуется немного поправить.

 

15 минут назад, Oleshe сказал:

Результат в питоне и здесь отличаться на сотнях тысячных!! (148.4131591 а у нас 148.41315908646)

Повысить точность вычислений можно, выбросив эту строчку: local help = 2.7182818284, а help ^ array заменив на math.exp(array).

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
1 минуту назад, eu_tomat сказал:

Повысить точность вычислений можно, выбросив эту строчку: local help = 2.7182818284, а help ^ array заменив на math.exp(array).

Можно скомбинировать эти два варианта: сделать число e как локальную переменную:

local _e = math.exp(1)

Тогда не придется постоянно вызывать math.exp(), и это немножко прибавит производительности.

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
6 минут назад, vford сказал:

Можно скомбинировать эти два варианта: сделать число e как локальную переменную:

Тогда не придется постоянно вызывать math.exp(), и это немножко прибавит производительности.

Этот трюк полезен, когда в первую очередь важна скорость вычислений, а точность вычислений при этом не особо важна. Но в математической библиотеке его использование нежелательно из-за увеличения погрешности вычислений.

= math.exp(2) - math.exp(1)^2
8.8817841970013e-16

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Присоединяйтесь к обсуждению

Вы можете написать сейчас и зарегистрироваться позже. Если у вас есть аккаунт, авторизуйтесь, чтобы опубликовать от имени своего аккаунта.

Гость
Ответить в тему...

×   Вы вставили отформатированное содержимое.   Удалить форматирование

  Разрешено использовать не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отобразить как ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставлять изображения напрямую. Загружайте или вставляйте изображения по ссылке.


×
×
  • Создать...