Форум программистов, компьютерный форум, киберфорум
Наши страницы
Erlang, OTP
Войти
Регистрация
Восстановить пароль
 
zonick
1 / 1 / 0
Регистрация: 12.09.2017
Сообщений: 2
#1

[very, very, very, .] large integer - Erlang

12.09.2017, 12:41. Просмотров 301. Ответов 3
Метки нет (Все метки)

Здравствуйте !
В своей работе мне требуются огромные числа 3 в степени N. N может достигать 10000000 и даже больше.
Пока все работало нормально, но вчера я получил неприятную неожиданность когда возводил в квадрат 3^(около 15 миллионов) -

http://www.cyberforum.ru/c-beginners/thread392679.html
** exception error: a system limit has been reached

in operator */2

Возведение в квадрат всего лишь умножение X*X.
Например:

Код
> T1 = fem:po3(N), T2 = T1*T1, ok.
Код
fem:po3
- это моя функция степеней 3. Работает нормально (вероятно тоже до определенного N, пока не натыкался).
Но сейчас не об этом...

Вопросы:
1. Что за 'limit' такой, который срабатывает при умножении large integers ?
2. Могу ли я этот 'limit' где-то увеличить (при старте Эрланга или еще где) ?

Мое железо - Supermicro server with two Intel(r) Xeon(r) CPU E5-2640 2.50GHz (24 virtual processors), 64 GB RAM, 10 SAS HDD (10000 rpm).
Running Oracle Solaris 11.3 and Erlang 20.0 starts as

> screen -S FEM erl -smp +S -2:-2 +P 33554432 +K true +A 32 +a 32 -name fem@Krusning.eyear.me -kernel net_ticktime 600 -kernel inet_dist_listen_min 10000 inet_dist_listen_max 10000 -mnesia dir '"/export/projeKCts/fem"' -mnesia dump_log_write_threshold 40000 -mnesia dc_dump_limit 40 -s ping diva


Спасибо !

Николай
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
12.09.2017, 12:41
Я подобрал для вас темы с готовыми решениями и ответами на вопрос [very, very, very, .] large integer (Erlang):

Integer is too large при использовании большого числа
я вроде Numerics прописал а мне надо будет вводить число 50 миллиардов в кубе....

Warning: integer constant is too large for "long" type
Можете пояснить и написать, что нужно сделать в коде, чтобы компилятор не...

Ошибка "integer constant is too large for 'long' type"
#include "Blockdll.h" #include <Windows.h> #include <iostream> using...

Нельзя преобразовать тип function(a: integer;b: integer):integer к real
unit matr1; interface type matr2=array of real; matr3=array of real; ...

Нельзя преобразовать тип function(z: integer;w: integer;e: integer): real к real
program pract18; uses crt; var x,a,i,k:integer; y:real; function prm1...

3
cybersatyr
Заблокирован
12.09.2017, 13:11 #2
erlang не подходит для числодробилки, об этом авторы предупреждают сразу. Поэтому либо искать готовые решения на erlang, либо ffi + сишка. Распространенный сишный ништяк.
0
zonick
1 / 1 / 0
Регистрация: 12.09.2017
Сообщений: 2
12.09.2017, 13:47  [ТС] #3
эрланг прекрасно подходит для числодробилки для целых и +, -, div, rem. он НЕ подходит для сложной математики да еще с floata-ми, согласен. но перемножить два целых числа по МИЛЛИОНУ цифр - да фигня - секунды на моем железе... что я и делаю. перемножить два числа по 10 МИЛЛИОНОВ, ну минута, ну две ... да хоть 10. меня это устраивает. я не буду городить винегрет из сишника, GMP + MPFR и поливать это эрлангом ... порочно это. просто вопрос был - где ОН заткнулся, я готов хоть исходники поправить, только подскажите где )))

спасибо

PS. ЛИСП (Chez Scheme) умножает это (10 мильенов на 10 мильенов цифр) за 20 минут. Процессорные вентиляторы воют на три этажа слышно ))) Но это опять порочно спаривать Эрланг с Лиспом. Эрлаанг это может, я уверен, только где-то что-то надо увеличить )))

Добавлено через 3 минуты
хотя можно попробовать GMP, если что
спасибо
1
cybersatyr
Заблокирован
12.09.2017, 14:06 #4
Вот доки по лимитам.

Добавлено через 3 минуты
Цитата Сообщение от zonick Посмотреть сообщение
GMP + MPFR и поливать это эрлангом ... порочно это
Сектантство. Цеплять сишку не порочно никогда.
0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
12.09.2017, 14:06
Привет! Вот еще темы с решениями:

Вывести двоичный код вводимого числа(integer) и наоборот из двоичного в integer.
Напишите плиззз программу, которая выводит двоичный код вводимого...

Как отобразить два Integer в один Integer используя HashMap?
Имею ввиду, как ввести два ключа, по которым получается третий ключ такого же...

Help function TCustomWinSocket.ReceiveBuf(var Buf; Count: Integer): Integer;
Здраствуй всезнающий All! Хочу задать вопрос относительно function...

Написать программу, содержащую функцию getInt(name:string; k:integer):integer
Ребята, помогите пожалуйста с задачей! Написать программу, содержащую функцию...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
4
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2018, vBulletin Solutions, Inc.
Рейтинг@Mail.ru